From ba842903ef57d7eb2bf9121859547d581a340f64 Mon Sep 17 00:00:00 2001 From: alazzaro Date: Mon, 9 Dec 2024 16:43:15 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20cp2k/dbc?= =?UTF-8?q?sr@6cb9d1e9d17d52bc0096ae4149b74a6651125801=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- develop/interface/acc_devmem_dev2host.html | 24 +- develop/interface/acc_devmem_host2dev.html | 48 +- develop/interface/acc_hostmem_allocate.html | 36 +- develop/interface/acc_hostmem_deallocate.html | 24 +- develop/interface/allocate_any.html | 210 +- develop/interface/array_data.html | 2 +- develop/interface/array_exists.html | 2 +- develop/interface/array_get.html | 4 +- develop/interface/array_hold.html | 2 +- develop/interface/array_new.html | 12 +- develop/interface/array_nullify.html | 2 +- develop/interface/array_release.html | 2 +- develop/interface/array_size.html | 2 +- develop/interface/block_add.html | 16 +- develop/interface/block_buffer_add_block.html | 30 +- .../interface/block_buffer_add_block~2.html | 24 +- .../block_buffer_get_next_block.html | 4 +- develop/interface/btree_add.html | 24 +- develop/interface/btree_delete.html | 16 +- develop/interface/btree_find.html | 24 +- develop/interface/btree_new.html | 8 +- develop/interface/create_block.html | 30 +- develop/interface/csr_create.html | 26 +- develop/interface/dbcsr_abort_interface.html | 2 +- develop/interface/dbcsr_add.html | 16 +- develop/interface/dbcsr_add_on_diag.html | 8 +- develop/interface/dbcsr_add_on_diag~2.html | 16 +- develop/interface/dbcsr_add~2.html | 22 +- develop/interface/dbcsr_block_copy.html | 32 +- develop/interface/dbcsr_block_transpose.html | 48 +- develop/interface/dbcsr_build_row_index.html | 10 +- develop/interface/dbcsr_conform_scalar.html | 16 +- develop/interface/dbcsr_count_row_index.html | 10 +- develop/interface/dbcsr_create.html | 42 +- develop/interface/dbcsr_create~2.html | 64 +- develop/interface/dbcsr_csr_create.html | 26 +- develop/interface/dbcsr_data_clear.html | 18 +- develop/interface/dbcsr_data_copy.html | 36 +- develop/interface/dbcsr_data_get_sizes.html | 18 +- develop/interface/dbcsr_data_set.html | 40 +- develop/interface/dbcsr_data_set_pointer.html | 38 +- develop/interface/dbcsr_distribution_new.html | 40 +- develop/interface/dbcsr_dot.html | 16 +- develop/interface/dbcsr_dot~2.html | 24 +- develop/interface/dbcsr_filter.html | 40 +- develop/interface/dbcsr_get_block_p.html | 1280 +- develop/interface/dbcsr_get_block_p~2.html | 1280 +- develop/interface/dbcsr_get_data.html | 64 +- develop/interface/dbcsr_get_data_cptr.html | 32 +- develop/interface/dbcsr_get_data_p.html | 128 +- develop/interface/dbcsr_get_data_p~2.html | 124 +- develop/interface/dbcsr_get_diag.html | 8 +- develop/interface/dbcsr_get_diag~2.html | 8 +- develop/interface/dbcsr_get_wms_data_p.html | 32 +- develop/interface/dbcsr_hybrid_alltoall.html | 72 +- develop/interface/dbcsr_init_lib.html | 12 +- .../interface/dbcsr_iterator_next_block.html | 1783 +- .../dbcsr_iterator_next_block~2.html | 1765 +- develop/interface/dbcsr_mp_new.html | 20 +- develop/interface/dbcsr_multiply.html | 459 +- develop/interface/dbcsr_multiply~2.html | 479 +- develop/interface/dbcsr_norm.html | 4 +- develop/interface/dbcsr_printmat.html | 40 +- develop/interface/dbcsr_put_block.html | 786 +- develop/interface/dbcsr_put_block~2.html | 782 +- develop/interface/dbcsr_reserve_block2d.html | 134 +- .../interface/dbcsr_reserve_block2d~2.html | 134 +- develop/interface/dbcsr_scalar.html | 8 +- develop/interface/dbcsr_scalar_get_value.html | 8 +- develop/interface/dbcsr_scale.html | 16 +- develop/interface/dbcsr_scale_by_vector.html | 16 +- .../interface/dbcsr_scale_by_vector~2.html | 20 +- develop/interface/dbcsr_scale~2.html | 20 +- develop/interface/dbcsr_set.html | 16 +- .../interface/dbcsr_set_block_pointer.html | 30 +- develop/interface/dbcsr_set_diag.html | 8 +- develop/interface/dbcsr_set_diag~2.html | 8 +- develop/interface/dbcsr_set~2.html | 16 +- develop/interface/dbcsr_t_create.html | 36 +- develop/interface/dbcsr_t_filter.html | 24 +- develop/interface/dbcsr_t_get_block.html | 224 +- develop/interface/dbcsr_t_put_block.html | 154 +- develop/interface/dbcsr_t_reserve_blocks.html | 24 +- develop/interface/dbcsr_t_set.html | 8 +- develop/interface/dbcsr_tas_blk_size_t.html | 2 +- develop/interface/dbcsr_tas_create.html | 20 +- develop/interface/dbcsr_tas_dist_repl.html | 2 +- develop/interface/dbcsr_tas_filter.html | 32 +- develop/interface/dbcsr_tas_get_block_p.html | 16 +- .../interface/dbcsr_tas_get_block_p~2.html | 64 +- .../dbcsr_tas_iterator_next_block.html | 32 +- .../dbcsr_tas_iterator_next_block~2.html | 64 +- develop/interface/dbcsr_tas_mp_comm.html | 6 +- develop/interface/dbcsr_tas_put_block.html | 14 +- develop/interface/dbcsr_tas_put_block~2.html | 56 +- .../interface/dbcsr_tas_reserve_blocks.html | 8 +- develop/interface/dbcsr_tas_set.html | 16 +- develop/interface/dbcsr_to_string.html | 6 +- develop/interface/dbcsr_trace.html | 8 +- develop/interface/dbcsr_trace~2.html | 16 +- develop/interface/dbcsr_warn_interface.html | 2 +- develop/interface/dict_get.html | 4 +- develop/interface/dict_haskey.html | 4 +- develop/interface/dict_init.html | 4 +- develop/interface/dict_set.html | 8 +- develop/interface/dist_rowcols.html | 4 +- ...ist_sparse_tensor_to_repl_dense_array.html | 12 +- develop/interface/ensure_array_size.html | 84 +- develop/interface/get_ith_array.html | 6 +- develop/interface/list_clear.html | 8 +- develop/interface/list_del.html | 16 +- develop/interface/list_destroy.html | 8 +- develop/interface/list_get.html | 16 +- develop/interface/list_init.html | 16 +- develop/interface/list_insert.html | 22 +- develop/interface/list_isready.html | 8 +- develop/interface/list_peek.html | 8 +- develop/interface/list_pop.html | 8 +- develop/interface/list_push.html | 14 +- develop/interface/list_set.html | 22 +- develop/interface/list_size.html | 8 +- develop/interface/memory_allocate.html | 48 +- develop/interface/memory_copy.html | 12 +- develop/interface/memory_deallocate.html | 24 +- develop/interface/memory_zero.html | 12 +- develop/interface/mp_allgather.html | 276 +- develop/interface/mp_allocate.html | 36 +- develop/interface/mp_alltoall.html | 192 +- develop/interface/mp_bcast.html | 168 +- develop/interface/mp_deallocate.html | 24 +- develop/interface/mp_environ.html | 4 +- develop/interface/mp_file_read_at_all.html | 52 +- develop/interface/mp_file_write_at.html | 52 +- develop/interface/mp_file_write_at_all.html | 52 +- develop/interface/mp_gather.html | 108 +- develop/interface/mp_gatherv.html | 36 +- develop/interface/mp_iallgather.html | 432 +- develop/interface/mp_ibcast.html | 96 +- develop/interface/mp_irecv.html | 140 +- develop/interface/mp_iscatter.html | 168 +- develop/interface/mp_isend.html | 140 +- develop/interface/mp_isendrecv.html | 192 +- develop/interface/mp_isum.html | 42 +- develop/interface/mp_max.html | 48 +- develop/interface/mp_maxloc.html | 4 +- develop/interface/mp_min.html | 48 +- develop/interface/mp_minloc.html | 4 +- develop/interface/mp_prod.html | 24 +- develop/interface/mp_recv.html | 96 +- develop/interface/mp_rget.html | 108 +- develop/interface/mp_send.html | 96 +- develop/interface/mp_sendrecv.html | 60 +- develop/interface/mp_sum.html | 200 +- develop/interface/mp_sum_partial.html | 36 +- develop/interface/mp_test.html | 2 +- develop/interface/mp_type_make.html | 12 +- develop/interface/mp_win_create.html | 36 +- develop/interface/pointer_view.html | 28 +- develop/interface/roctxmarka.html | 2 +- develop/interface/roctxrangepusha.html | 2 +- develop/interface/rowcol_data.html | 2 +- develop/interface/rowcol_dist.html | 2 +- develop/interface/sort.html | 24 +- develop/interface/swap.html | 78 +- develop/interface/swap~2.html | 78 +- develop/interface/timeset_interface.html | 4 +- develop/interface/timestop_interface.html | 2 +- develop/lists/procedures.html | 350 +- develop/lists/types.html | 40 +- develop/module/dbcsr_acc_device.html | 4 +- develop/module/dbcsr_acc_devmem.html | 172 +- develop/module/dbcsr_acc_event.html | 22 +- develop/module/dbcsr_acc_hostmem.html | 130 +- develop/module/dbcsr_acc_init.html | 4 +- develop/module/dbcsr_acc_operations.html | 42 +- develop/module/dbcsr_acc_stream.html | 22 +- develop/module/dbcsr_acc_timings.html | 12 +- develop/module/dbcsr_allocate_wrap.html | 420 +- develop/module/dbcsr_api.html | 2776 +- develop/module/dbcsr_api_c.html | 214 +- develop/module/dbcsr_array_list_methods.html | 50 +- develop/module/dbcsr_array_sort.html | 56 +- develop/module/dbcsr_array_types.html | 60 +- develop/module/dbcsr_base_hooks.html | 32 +- develop/module/dbcsr_blas_operations.html | 24 +- develop/module/dbcsr_block_access.html | 998 +- develop/module/dbcsr_block_operations.html | 614 +- develop/module/dbcsr_btree.html | 520 +- develop/module/dbcsr_config.html | 62 +- develop/module/dbcsr_csr_conversions.html | 160 +- develop/module/dbcsr_cuda_profiling.html | 4 +- develop/module/dbcsr_data_methods.html | 42 +- develop/module/dbcsr_data_methods_low.html | 498 +- develop/module/dbcsr_data_operations.html | 44 +- develop/module/dbcsr_data_types.html | 50 +- develop/module/dbcsr_dict.html | 90 +- develop/module/dbcsr_dist_methods.html | 192 +- develop/module/dbcsr_dist_operations.html | 122 +- develop/module/dbcsr_dist_util.html | 72 +- develop/module/dbcsr_error_handling.html | 26 +- develop/module/dbcsr_files.html | 20 +- develop/module/dbcsr_hip_profiling.html | 4 +- develop/module/dbcsr_index_operations.html | 158 +- develop/module/dbcsr_io.html | 144 +- develop/module/dbcsr_iter_types.html | 14 +- develop/module/dbcsr_iterator_operations.html | 546 +- develop/module/dbcsr_kinds.html | 10 +- develop/module/dbcsr_lib.html | 60 +- develop/module/dbcsr_list.html | 164 +- develop/module/dbcsr_list_callstackentry.html | 52 +- develop/module/dbcsr_list_routinereport.html | 44 +- develop/module/dbcsr_list_routinestat.html | 52 +- develop/module/dbcsr_list_timerenv.html | 54 +- develop/module/dbcsr_log_handling.html | 54 +- develop/module/dbcsr_machine_internal.html | 4 +- develop/module/dbcsr_mem_methods.html | 38 +- develop/module/dbcsr_methods.html | 104 +- develop/module/dbcsr_min_heap.html | 38 +- develop/module/dbcsr_mm.html | 80 +- develop/module/dbcsr_mm_3d.html | 146 +- develop/module/dbcsr_mm_accdrv.html | 66 +- develop/module/dbcsr_mm_cannon.html | 268 +- develop/module/dbcsr_mm_common.html | 116 +- develop/module/dbcsr_mm_csr.html | 154 +- develop/module/dbcsr_mm_dist_operations.html | 96 +- develop/module/dbcsr_mm_hostdrv.html | 164 +- develop/module/dbcsr_mm_multrec.html | 200 +- develop/module/dbcsr_mm_sched.html | 68 +- develop/module/dbcsr_mm_types.html | 16 +- develop/module/dbcsr_mp_methods.html | 96 +- develop/module/dbcsr_mp_operations.html | 270 +- develop/module/dbcsr_mpiwrap.html | 6102 ++-- develop/module/dbcsr_multiply_api.html | 320 +- develop/module/dbcsr_operations.html | 700 +- develop/module/dbcsr_print_messages.html | 10 +- develop/module/dbcsr_ptr_util.html | 430 +- develop/module/dbcsr_string_utilities.html | 10 +- develop/module/dbcsr_tas_base.html | 790 +- develop/module/dbcsr_tas_global.html | 72 +- develop/module/dbcsr_tas_io.html | 36 +- develop/module/dbcsr_tas_mm.html | 190 +- develop/module/dbcsr_tas_reshape_ops.html | 156 +- develop/module/dbcsr_tas_split.html | 104 +- develop/module/dbcsr_tas_test.html | 92 +- develop/module/dbcsr_tas_types.html | 58 +- develop/module/dbcsr_tas_util.html | 26 +- develop/module/dbcsr_tensor.html | 346 +- develop/module/dbcsr_tensor_api.html | 22 +- develop/module/dbcsr_tensor_api_c.html | 42 +- develop/module/dbcsr_tensor_block.html | 1038 +- develop/module/dbcsr_tensor_index.html | 84 +- develop/module/dbcsr_tensor_io.html | 56 +- develop/module/dbcsr_tensor_reshape.html | 118 +- develop/module/dbcsr_tensor_split.html | 50 +- develop/module/dbcsr_tensor_test.html | 146 +- develop/module/dbcsr_tensor_types.html | 354 +- develop/module/dbcsr_test_methods.html | 80 +- .../module/dbcsr_test_scale_by_vector.html | 36 +- develop/module/dbcsr_tests.html | 94 +- develop/module/dbcsr_timings.html | 44 +- develop/module/dbcsr_timings_base_type.html | 10 +- develop/module/dbcsr_timings_report.html | 30 +- develop/module/dbcsr_timings_types.html | 10 +- develop/module/dbcsr_toollib.html | 82 +- develop/module/dbcsr_transformations.html | 150 +- develop/module/dbcsr_types.html | 184 +- develop/module/dbcsr_work_operations.html | 212 +- develop/proc/acc_calculate_norms.html | 6 +- develop/proc/acc_devmem_allocate_bytes.html | 2 +- develop/proc/acc_devmem_allocated.html | 4 +- develop/proc/acc_devmem_cptr.html | 4 +- develop/proc/acc_devmem_deallocate.html | 2 +- .../proc/acc_devmem_ensure_size_bytes.html | 6 +- develop/proc/acc_devmem_info.html | 2 +- develop/proc/acc_devmem_set_cptr.html | 2 +- develop/proc/acc_devmem_setzero_bytes.html | 2 +- develop/proc/acc_devmem_size_in_bytes.html | 4 +- develop/proc/acc_event_create.html | 2 +- develop/proc/acc_event_destroy.html | 2 +- develop/proc/acc_event_query.html | 4 +- develop/proc/acc_event_record.html | 4 +- develop/proc/acc_event_synchronize.html | 2 +- develop/proc/acc_hostmem_alloc_c4.html | 4 +- develop/proc/acc_hostmem_alloc_c4_2d.html | 2 +- develop/proc/acc_hostmem_alloc_c8.html | 4 +- develop/proc/acc_hostmem_alloc_c8_2d.html | 2 +- develop/proc/acc_hostmem_alloc_i4.html | 4 +- develop/proc/acc_hostmem_alloc_i4_2d.html | 2 +- develop/proc/acc_hostmem_alloc_i8.html | 4 +- develop/proc/acc_hostmem_alloc_i8_2d.html | 2 +- develop/proc/acc_hostmem_alloc_r4.html | 4 +- develop/proc/acc_hostmem_alloc_r4_2d.html | 2 +- develop/proc/acc_hostmem_alloc_r8.html | 4 +- develop/proc/acc_hostmem_alloc_r8_2d.html | 2 +- develop/proc/acc_hostmem_dealloc_c4.html | 2 +- develop/proc/acc_hostmem_dealloc_c4_2d.html | 2 +- develop/proc/acc_hostmem_dealloc_c8.html | 2 +- develop/proc/acc_hostmem_dealloc_c8_2d.html | 2 +- develop/proc/acc_hostmem_dealloc_i4.html | 2 +- develop/proc/acc_hostmem_dealloc_i4_2d.html | 2 +- develop/proc/acc_hostmem_dealloc_i8.html | 2 +- develop/proc/acc_hostmem_dealloc_i8_2d.html | 2 +- develop/proc/acc_hostmem_dealloc_r4.html | 2 +- develop/proc/acc_hostmem_dealloc_r4_2d.html | 2 +- develop/proc/acc_hostmem_dealloc_r8.html | 2 +- develop/proc/acc_hostmem_dealloc_r8_2d.html | 2 +- develop/proc/acc_stream_associated.html | 4 +- develop/proc/acc_stream_cptr.html | 4 +- develop/proc/acc_stream_create.html | 4 +- develop/proc/acc_stream_destroy.html | 2 +- develop/proc/acc_stream_equal.html | 4 +- develop/proc/acc_stream_priority_range.html | 2 +- develop/proc/acc_stream_synchronize.html | 2 +- develop/proc/acc_stream_wait_event.html | 2 +- develop/proc/acc_transpose_blocks.html | 16 +- develop/proc/accept_pgrid_dims.html | 2 +- develop/proc/add_timer_env.html | 2 +- develop/proc/add_work_coordinate.html | 8 +- develop/proc/align_tensor.html | 4 +- develop/proc/allocate_1d_c_dp.html | 6 +- develop/proc/allocate_1d_c_sp.html | 6 +- develop/proc/allocate_1d_i.html | 6 +- develop/proc/allocate_1d_r_dp.html | 6 +- develop/proc/allocate_1d_r_sp.html | 6 +- develop/proc/allocate_2d_c_dp.html | 6 +- develop/proc/allocate_2d_c_sp.html | 6 +- develop/proc/allocate_2d_i.html | 6 +- develop/proc/allocate_2d_r_dp.html | 6 +- develop/proc/allocate_2d_r_sp.html | 6 +- develop/proc/allocate_3d_c_dp.html | 6 +- develop/proc/allocate_3d_c_sp.html | 6 +- develop/proc/allocate_3d_i.html | 6 +- develop/proc/allocate_3d_r_dp.html | 6 +- develop/proc/allocate_3d_r_sp.html | 6 +- develop/proc/allocate_4d_c_dp.html | 6 +- develop/proc/allocate_4d_c_sp.html | 6 +- develop/proc/allocate_4d_i.html | 6 +- develop/proc/allocate_4d_r_dp.html | 6 +- develop/proc/allocate_4d_r_sp.html | 6 +- develop/proc/allocate_5d_c_dp.html | 6 +- develop/proc/allocate_5d_c_sp.html | 6 +- develop/proc/allocate_5d_i.html | 6 +- develop/proc/allocate_5d_r_dp.html | 6 +- develop/proc/allocate_5d_r_sp.html | 6 +- develop/proc/allocate_6d_c_dp.html | 6 +- develop/proc/allocate_6d_c_sp.html | 6 +- develop/proc/allocate_6d_i.html | 6 +- develop/proc/allocate_6d_r_dp.html | 6 +- develop/proc/allocate_6d_r_sp.html | 6 +- develop/proc/allocate_7d_c_dp.html | 6 +- develop/proc/allocate_7d_c_sp.html | 6 +- develop/proc/allocate_7d_i.html | 6 +- develop/proc/allocate_7d_r_dp.html | 6 +- develop/proc/allocate_7d_r_sp.html | 6 +- develop/proc/allocate_and_get_ith_array.html | 6 +- develop/proc/arb_dist.html | 2 +- develop/proc/arb_rowcols.html | 4 +- develop/proc/array_data_i1d.html | 4 +- develop/proc/array_exists_i1d.html | 2 +- develop/proc/array_get_i1.html | 4 +- develop/proc/array_get_i1d.html | 4 +- develop/proc/array_hold_i1d.html | 2 +- develop/proc/array_new_i1d.html | 6 +- develop/proc/array_new_i1d_lb.html | 6 +- develop/proc/array_nullify_i1d.html | 2 +- develop/proc/array_release_i1d.html | 2 +- develop/proc/array_size_i1d.html | 2 +- develop/proc/array_sublist.html | 2 +- develop/proc/assign_preconnection.html | 2 +- develop/proc/atoi.html | 2 +- develop/proc/atol.html | 2 +- develop/proc/ator.html | 2 +- develop/proc/blas_process_mm_stack_c.html | 8 +- develop/proc/blas_process_mm_stack_d.html | 8 +- develop/proc/blas_process_mm_stack_s.html | 8 +- develop/proc/blas_process_mm_stack_z.html | 8 +- develop/proc/blk_dims_tensor.html | 2 +- develop/proc/blk_size_arb.html | 2 +- develop/proc/blk_size_one.html | 2 +- develop/proc/blk_size_repl.html | 2 +- develop/proc/block_add_anytype.html | 2 +- develop/proc/block_add_anytype_bounds.html | 6 +- develop/proc/block_add_c.html | 2 +- develop/proc/block_add_d.html | 2 +- develop/proc/block_add_s.html | 2 +- develop/proc/block_add_z.html | 2 +- develop/proc/block_buffer_add_anyd_block.html | 4 +- develop/proc/block_buffer_add_area_block.html | 6 +- develop/proc/block_buffer_add_block_c_dp.html | 6 +- .../proc/block_buffer_add_block_c_dp~2.html | 6 +- develop/proc/block_buffer_add_block_c_sp.html | 6 +- .../proc/block_buffer_add_block_c_sp~2.html | 6 +- develop/proc/block_buffer_add_block_r_dp.html | 6 +- .../proc/block_buffer_add_block_r_dp~2.html | 6 +- develop/proc/block_buffer_add_block_r_sp.html | 6 +- .../proc/block_buffer_add_block_r_sp~2.html | 6 +- develop/proc/block_buffer_blocks_left.html | 2 +- develop/proc/block_buffer_create.html | 6 +- develop/proc/block_buffer_create~2.html | 6 +- develop/proc/block_buffer_destroy.html | 2 +- develop/proc/block_buffer_get_index.html | 2 +- develop/proc/block_buffer_get_index~2.html | 2 +- .../block_buffer_get_next_anyd_block.html | 6 +- .../block_buffer_get_next_area_block.html | 4 +- .../block_buffer_get_next_block_c_dp.html | 4 +- .../block_buffer_get_next_block_c_dp~2.html | 6 +- .../block_buffer_get_next_block_c_sp.html | 4 +- .../block_buffer_get_next_block_c_sp~2.html | 6 +- .../block_buffer_get_next_block_r_dp.html | 4 +- .../block_buffer_get_next_block_r_dp~2.html | 6 +- .../block_buffer_get_next_block_r_sp.html | 4 +- .../block_buffer_get_next_block_r_sp~2.html | 6 +- develop/proc/block_copy_1d1d_c.html | 2 +- develop/proc/block_copy_1d1d_d.html | 2 +- develop/proc/block_copy_1d1d_s.html | 2 +- develop/proc/block_copy_1d1d_z.html | 2 +- develop/proc/block_copy_1d2d_c.html | 2 +- develop/proc/block_copy_1d2d_d.html | 2 +- develop/proc/block_copy_1d2d_s.html | 2 +- develop/proc/block_copy_1d2d_z.html | 2 +- develop/proc/block_copy_2d1d_c.html | 2 +- develop/proc/block_copy_2d1d_d.html | 2 +- develop/proc/block_copy_2d1d_s.html | 2 +- develop/proc/block_copy_2d1d_z.html | 2 +- develop/proc/block_copy_2d2d_c.html | 2 +- develop/proc/block_copy_2d2d_d.html | 2 +- develop/proc/block_copy_2d2d_s.html | 2 +- develop/proc/block_copy_2d2d_z.html | 2 +- develop/proc/block_copy_c.html | 2 +- develop/proc/block_copy_d.html | 2 +- develop/proc/block_copy_s.html | 2 +- develop/proc/block_copy_z.html | 2 +- develop/proc/block_index_global_to_local.html | 8 +- develop/proc/block_index_local_to_global.html | 8 +- develop/proc/block_minabsdiff.html | 4 +- develop/proc/block_partial_copy_1d2d_c.html | 10 +- develop/proc/block_partial_copy_1d2d_d.html | 10 +- develop/proc/block_partial_copy_1d2d_s.html | 10 +- develop/proc/block_partial_copy_1d2d_z.html | 10 +- develop/proc/block_partial_copy_2d1d_c.html | 14 +- develop/proc/block_partial_copy_2d1d_d.html | 14 +- develop/proc/block_partial_copy_2d1d_s.html | 14 +- develop/proc/block_partial_copy_2d1d_z.html | 14 +- develop/proc/block_partial_copy_2d2d_c.html | 10 +- develop/proc/block_partial_copy_2d2d_d.html | 10 +- develop/proc/block_partial_copy_2d2d_s.html | 10 +- develop/proc/block_partial_copy_2d2d_z.html | 10 +- develop/proc/block_partial_copy_c.html | 14 +- develop/proc/block_partial_copy_d.html | 14 +- develop/proc/block_partial_copy_s.html | 14 +- develop/proc/block_partial_copy_z.html | 14 +- develop/proc/block_size.html | 4 +- develop/proc/block_transpose_copy_1d2d_c.html | 2 +- develop/proc/block_transpose_copy_1d2d_d.html | 2 +- develop/proc/block_transpose_copy_1d2d_s.html | 2 +- develop/proc/block_transpose_copy_1d2d_z.html | 2 +- develop/proc/block_transpose_copy_2d1d_c.html | 2 +- develop/proc/block_transpose_copy_2d1d_d.html | 2 +- develop/proc/block_transpose_copy_2d1d_s.html | 2 +- develop/proc/block_transpose_copy_2d1d_z.html | 2 +- develop/proc/block_transpose_copy_c.html | 2 +- develop/proc/block_transpose_copy_d.html | 2 +- develop/proc/block_transpose_copy_s.html | 2 +- develop/proc/block_transpose_copy_z.html | 2 +- develop/proc/block_transpose_inplace_c.html | 2 +- develop/proc/block_transpose_inplace_d.html | 2 +- develop/proc/block_transpose_inplace_s.html | 2 +- develop/proc/block_transpose_inplace_z.html | 2 +- develop/proc/bswap.html | 4 +- develop/proc/btree_add_i8_cp2d.html | 6 +- develop/proc/btree_add_i8_dp2d.html | 6 +- develop/proc/btree_add_i8_sp2d.html | 6 +- develop/proc/btree_add_i8_zp2d.html | 6 +- develop/proc/btree_add_into_i8_cp2d.html | 8 +- develop/proc/btree_add_into_i8_dp2d.html | 8 +- develop/proc/btree_add_into_i8_sp2d.html | 8 +- develop/proc/btree_add_into_i8_zp2d.html | 8 +- .../proc/btree_adopt_subtrees_i8_cp2d.html | 2 +- .../proc/btree_adopt_subtrees_i8_dp2d.html | 2 +- .../proc/btree_adopt_subtrees_i8_sp2d.html | 2 +- .../proc/btree_adopt_subtrees_i8_zp2d.html | 2 +- develop/proc/btree_delete_i8_cp2d.html | 4 +- develop/proc/btree_delete_i8_dp2d.html | 4 +- develop/proc/btree_delete_i8_sp2d.html | 4 +- develop/proc/btree_delete_i8_zp2d.html | 4 +- develop/proc/btree_delete_node_i8_cp2d.html | 8 +- develop/proc/btree_delete_node_i8_dp2d.html | 8 +- develop/proc/btree_delete_node_i8_sp2d.html | 8 +- develop/proc/btree_delete_node_i8_zp2d.html | 8 +- develop/proc/btree_find_full_i8_cp2d.html | 4 +- develop/proc/btree_find_full_i8_dp2d.html | 4 +- develop/proc/btree_find_full_i8_sp2d.html | 4 +- develop/proc/btree_find_full_i8_zp2d.html | 4 +- develop/proc/btree_find_i8_cp2d.html | 6 +- develop/proc/btree_find_i8_dp2d.html | 6 +- develop/proc/btree_find_i8_sp2d.html | 6 +- develop/proc/btree_find_i8_zp2d.html | 6 +- develop/proc/btree_find_leaf_i8_cp2d.html | 4 +- develop/proc/btree_find_leaf_i8_dp2d.html | 4 +- develop/proc/btree_find_leaf_i8_sp2d.html | 4 +- develop/proc/btree_find_leaf_i8_zp2d.html | 4 +- develop/proc/btree_free_node_i8_cp2d.html | 2 +- develop/proc/btree_free_node_i8_dp2d.html | 2 +- develop/proc/btree_free_node_i8_sp2d.html | 2 +- develop/proc/btree_free_node_i8_zp2d.html | 2 +- .../proc/btree_left_insertion_i8_cp2d.html | 8 +- .../proc/btree_left_insertion_i8_dp2d.html | 8 +- .../proc/btree_left_insertion_i8_sp2d.html | 8 +- .../proc/btree_left_insertion_i8_zp2d.html | 8 +- develop/proc/btree_new_i8_cp2d.html | 2 +- develop/proc/btree_new_i8_dp2d.html | 2 +- develop/proc/btree_new_i8_sp2d.html | 2 +- develop/proc/btree_new_i8_zp2d.html | 2 +- develop/proc/btree_new_node_i8_cp2d.html | 2 +- develop/proc/btree_new_node_i8_dp2d.html | 2 +- develop/proc/btree_new_node_i8_sp2d.html | 2 +- develop/proc/btree_new_node_i8_zp2d.html | 2 +- develop/proc/btree_new_root_i8_cp2d.html | 4 +- develop/proc/btree_new_root_i8_dp2d.html | 4 +- develop/proc/btree_new_root_i8_sp2d.html | 4 +- develop/proc/btree_new_root_i8_zp2d.html | 4 +- .../proc/btree_node_find_ge_pos_i8_cp2d.html | 4 +- .../proc/btree_node_find_ge_pos_i8_dp2d.html | 4 +- .../proc/btree_node_find_ge_pos_i8_sp2d.html | 4 +- .../proc/btree_node_find_ge_pos_i8_zp2d.html | 4 +- .../proc/btree_node_find_gt_pos_i8_cp2d.html | 4 +- .../proc/btree_node_find_gt_pos_i8_dp2d.html | 4 +- .../proc/btree_node_find_gt_pos_i8_sp2d.html | 4 +- .../proc/btree_node_find_gt_pos_i8_zp2d.html | 4 +- .../proc/btree_node_find_gte_pos_i8_cp2d.html | 4 +- .../proc/btree_node_find_gte_pos_i8_dp2d.html | 4 +- .../proc/btree_node_find_gte_pos_i8_sp2d.html | 4 +- .../proc/btree_node_find_gte_pos_i8_zp2d.html | 4 +- .../proc/btree_right_insertion_i8_cp2d.html | 8 +- .../proc/btree_right_insertion_i8_dp2d.html | 8 +- .../proc/btree_right_insertion_i8_sp2d.html | 8 +- .../proc/btree_right_insertion_i8_zp2d.html | 8 +- .../proc/btree_simple_insertion_i8_cp2d.html | 8 +- .../proc/btree_simple_insertion_i8_dp2d.html | 8 +- .../proc/btree_simple_insertion_i8_sp2d.html | 8 +- .../proc/btree_simple_insertion_i8_zp2d.html | 8 +- develop/proc/buffer_init.html | 10 +- develop/proc/buffer_matrices_ensure_size.html | 2 +- develop/proc/buffer_release.html | 2 +- develop/proc/build_csr_index.html | 2 +- develop/proc/c_dbcsr_add_on_diag_c.html | 2 +- develop/proc/c_dbcsr_add_on_diag_d.html | 2 +- develop/proc/c_dbcsr_add_on_diag_s.html | 2 +- develop/proc/c_dbcsr_add_on_diag_z.html | 2 +- develop/proc/c_dbcsr_binary_write.html | 2 +- develop/proc/c_dbcsr_checksum.html | 2 +- .../proc/c_dbcsr_complete_redistribute.html | 2 +- develop/proc/c_dbcsr_create_new.html | 4 +- develop/proc/c_dbcsr_create_template.html | 4 +- develop/proc/c_dbcsr_distribute.html | 2 +- develop/proc/c_dbcsr_filter.html | 2 +- develop/proc/c_dbcsr_finalize.html | 2 +- develop/proc/c_dbcsr_frobenius_norm.html | 2 +- .../proc/c_dbcsr_function_of_elements.html | 2 +- develop/proc/c_dbcsr_gershgorin_norm.html | 2 +- develop/proc/c_dbcsr_get_block_diag.html | 2 +- .../proc/c_dbcsr_get_block_notrans_p_c.html | 2 +- .../proc/c_dbcsr_get_block_notrans_p_d.html | 2 +- .../proc/c_dbcsr_get_block_notrans_p_s.html | 2 +- .../proc/c_dbcsr_get_block_notrans_p_z.html | 2 +- develop/proc/c_dbcsr_get_block_p_c.html | 2 +- develop/proc/c_dbcsr_get_block_p_d.html | 2 +- develop/proc/c_dbcsr_get_block_p_s.html | 2 +- develop/proc/c_dbcsr_get_block_p_z.html | 2 +- develop/proc/c_dbcsr_get_col_blk_offset.html | 2 +- develop/proc/c_dbcsr_get_col_blk_size.html | 2 +- develop/proc/c_dbcsr_get_data_c.html | 4 +- develop/proc/c_dbcsr_get_data_d.html | 4 +- develop/proc/c_dbcsr_get_data_s.html | 4 +- develop/proc/c_dbcsr_get_data_size.html | 2 +- develop/proc/c_dbcsr_get_data_type.html | 2 +- develop/proc/c_dbcsr_get_data_z.html | 4 +- develop/proc/c_dbcsr_get_diag_c.html | 2 +- develop/proc/c_dbcsr_get_diag_d.html | 2 +- develop/proc/c_dbcsr_get_diag_s.html | 2 +- develop/proc/c_dbcsr_get_diag_z.html | 2 +- develop/proc/c_dbcsr_get_distribution.html | 2 +- develop/proc/c_dbcsr_get_group.html | 2 +- develop/proc/c_dbcsr_get_info.html | 10 +- develop/proc/c_dbcsr_get_local_cols.html | 4 +- develop/proc/c_dbcsr_get_local_rows.html | 4 +- develop/proc/c_dbcsr_get_matrix_type.html | 2 +- develop/proc/c_dbcsr_get_name.html | 2 +- develop/proc/c_dbcsr_get_num_blocks.html | 2 +- develop/proc/c_dbcsr_get_occupation.html | 2 +- develop/proc/c_dbcsr_get_proc_col_dist.html | 2 +- develop/proc/c_dbcsr_get_proc_row_dist.html | 2 +- develop/proc/c_dbcsr_get_row_blk_offset.html | 2 +- develop/proc/c_dbcsr_get_row_blk_size.html | 2 +- .../proc/c_dbcsr_get_stored_coordinates.html | 8 +- develop/proc/c_dbcsr_has_symmetry.html | 4 +- develop/proc/c_dbcsr_init_lib.html | 2 +- develop/proc/c_dbcsr_init_random.html | 2 +- .../c_dbcsr_iterator_next_block_index.html | 2 +- develop/proc/c_dbcsr_iterator_start.html | 2 +- develop/proc/c_dbcsr_maxabs.html | 2 +- develop/proc/c_dbcsr_nblkcols_local.html | 2 +- develop/proc/c_dbcsr_nblkcols_total.html | 2 +- develop/proc/c_dbcsr_nblkrows_local.html | 2 +- develop/proc/c_dbcsr_nblkrows_total.html | 2 +- develop/proc/c_dbcsr_nfullcols_total.html | 2 +- develop/proc/c_dbcsr_nfullrows_total.html | 2 +- develop/proc/c_dbcsr_norm_scalar.html | 2 +- develop/proc/c_dbcsr_print.html | 2 +- develop/proc/c_dbcsr_print_block_sum.html | 2 +- develop/proc/c_dbcsr_put_block2d_c.html | 2 +- develop/proc/c_dbcsr_put_block2d_d.html | 2 +- develop/proc/c_dbcsr_put_block2d_s.html | 2 +- develop/proc/c_dbcsr_put_block2d_z.html | 2 +- develop/proc/c_dbcsr_release.html | 2 +- develop/proc/c_dbcsr_replicate_all.html | 2 +- develop/proc/c_dbcsr_reserve_all_blocks.html | 2 +- develop/proc/c_dbcsr_reserve_block2d_c.html | 2 +- develop/proc/c_dbcsr_reserve_block2d_d.html | 2 +- develop/proc/c_dbcsr_reserve_block2d_s.html | 2 +- develop/proc/c_dbcsr_reserve_block2d_z.html | 2 +- develop/proc/c_dbcsr_reserve_blocks.html | 2 +- develop/proc/c_dbcsr_reserve_diag_blocks.html | 2 +- develop/proc/c_dbcsr_set_c.html | 2 +- develop/proc/c_dbcsr_set_d.html | 2 +- develop/proc/c_dbcsr_set_diag_c.html | 2 +- develop/proc/c_dbcsr_set_diag_d.html | 2 +- develop/proc/c_dbcsr_set_diag_s.html | 2 +- develop/proc/c_dbcsr_set_diag_z.html | 2 +- develop/proc/c_dbcsr_set_s.html | 2 +- develop/proc/c_dbcsr_set_z.html | 2 +- develop/proc/c_dbcsr_setname.html | 2 +- develop/proc/c_dbcsr_sum_replicated.html | 2 +- develop/proc/c_dbcsr_t_create_template.html | 2 +- develop/proc/c_dbcsr_t_get_data_c_dp.html | 2 +- develop/proc/c_dbcsr_t_get_data_c_sp.html | 2 +- develop/proc/c_dbcsr_t_get_data_r_dp.html | 2 +- develop/proc/c_dbcsr_t_get_data_r_sp.html | 2 +- develop/proc/c_dbcsr_t_get_mapping_info.html | 8 +- develop/proc/c_dbcsr_t_nblks_local.html | 2 +- develop/proc/c_dbcsr_t_nblks_total.html | 2 +- .../proc/c_dbcsr_t_pgrid_create_expert.html | 2 +- .../proc/c_dbcsr_t_reserve_blocks_index.html | 2 +- develop/proc/c_dbcsr_triu.html | 2 +- develop/proc/c_dbcsr_valid_index.html | 2 +- develop/proc/c_f_string~2.html | 2 +- develop/proc/calc_norms_c.html | 4 +- develop/proc/calc_norms_d.html | 4 +- develop/proc/calc_norms_s.html | 4 +- develop/proc/calc_norms_z.html | 4 +- develop/proc/calculate_norms.html | 6 +- develop/proc/call_rec_sort_index.html | 8 +- develop/proc/can_quickly_finalize.html | 2 +- .../proc/change_capacity_callstackentry.html | 4 +- .../change_capacity_i4tuple_callstat.html | 2 +- .../proc/change_capacity_routinereport.html | 4 +- develop/proc/change_capacity_routinestat.html | 4 +- develop/proc/change_capacity_str_i4.html | 2 +- develop/proc/change_capacity_timerenv.html | 4 +- develop/proc/change_split.html | 14 +- develop/proc/checker_square_proc.html | 10 +- develop/proc/checker_tr.html | 6 +- develop/proc/collect_reports_from_ranks.html | 2 +- develop/proc/combine_pgrid_index.html | 2 +- develop/proc/combine_tensor_index.html | 2 +- develop/proc/compat_map.html | 2 +- develop/proc/compress.html | 4 +- develop/proc/compx_to_dbcsr_scalar.html | 6 +- develop/proc/conf_par_env_value.html | 4 +- develop/proc/convert_brd_to_csr.html | 2 +- develop/proc/convert_csr_to_brd.html | 2 +- develop/proc/convert_csr_to_dbcsr.html | 4 +- develop/proc/convert_dbcsr_to_csr.html | 4 +- develop/proc/convert_offsets_to_sizes.html | 2 +- develop/proc/convert_sizes_to_offsets.html | 2 +- develop/proc/convert_to_new_pgrid.html | 8 +- develop/proc/count_mpi_statistics.html | 2 +- develop/proc/create_array_list.html | 4 +- develop/proc/create_batches.html | 2 +- develop/proc/create_block_data_c_dp.html | 6 +- develop/proc/create_block_data_c_sp.html | 6 +- develop/proc/create_block_data_r_dp.html | 6 +- develop/proc/create_block_data_r_sp.html | 6 +- develop/proc/create_block_nodata.html | 6 +- develop/proc/create_block_nodata_c_dp.html | 4 +- develop/proc/create_block_nodata_c_sp.html | 4 +- develop/proc/create_block_nodata_r_dp.html | 4 +- develop/proc/create_block_nodata_r_sp.html | 4 +- develop/proc/create_block_norms_matrix.html | 6 +- develop/proc/create_nd_to_2d_mapping.html | 12 +- .../csr_assert_consistency_with_dbcsr.html | 4 +- develop/proc/csr_conversion_test.html | 8 +- develop/proc/csr_create_from_brd.html | 2 +- develop/proc/csr_create_from_dbcsr.html | 10 +- develop/proc/csr_create_new.html | 122 +- develop/proc/csr_create_new~2.html | 116 +- develop/proc/csr_create_nzerow.html | 2 +- develop/proc/csr_create_template.html | 4 +- develop/proc/csr_destroy.html | 2 +- develop/proc/csr_print_sparsity.html | 4 +- develop/proc/csr_write.html | 6 +- develop/proc/cuda_nvtx_range_push.html | 2 +- develop/proc/cyclic_dist.html | 2 +- develop/proc/cyclic_rowcols.html | 4 +- develop/proc/dbcsr_1d_d_sort.html | 6 +- develop/proc/dbcsr_1d_d_sort_low.html | 6 +- develop/proc/dbcsr_1d_i4_sort.html | 6 +- develop/proc/dbcsr_1d_i4_sort_low.html | 6 +- develop/proc/dbcsr_1d_i8_sort.html | 6 +- develop/proc/dbcsr_1d_i8_sort_low.html | 6 +- develop/proc/dbcsr_1d_s_sort.html | 6 +- develop/proc/dbcsr_1d_s_sort_low.html | 6 +- develop/proc/dbcsr__a.html | 2 +- develop/proc/dbcsr__b.html | 4 +- develop/proc/dbcsr__l.html | 2 +- develop/proc/dbcsr__w.html | 4 +- develop/proc/dbcsr_abort.html | 2 +- develop/proc/dbcsr_abort_handler.html | 2 +- develop/proc/dbcsr_acc_do_mm_stack.html | 14 +- develop/proc/dbcsr_acc_get_ndevices.html | 2 +- develop/proc/dbcsr_acc_set_active_device.html | 11 +- develop/proc/dbcsr_acc_transpose.html | 16 +- develop/proc/dbcsr_add_anytype.html | 6 +- develop/proc/dbcsr_add_anytype_c.html | 12 +- develop/proc/dbcsr_add_anytype_d.html | 12 +- develop/proc/dbcsr_add_anytype_s.html | 12 +- develop/proc/dbcsr_add_anytype_z.html | 12 +- develop/proc/dbcsr_add_block_node.html | 4 +- develop/proc/dbcsr_add_block_node~2.html | 4 +- develop/proc/dbcsr_add_c.html | 4 +- develop/proc/dbcsr_add_c~2.html | 4 +- develop/proc/dbcsr_add_d.html | 4 +- develop/proc/dbcsr_add_d~2.html | 4 +- develop/proc/dbcsr_add_on_diag_c.html | 2 +- develop/proc/dbcsr_add_on_diag_c~2.html | 4 +- develop/proc/dbcsr_add_on_diag_d.html | 2 +- develop/proc/dbcsr_add_on_diag_ds.html | 4 +- develop/proc/dbcsr_add_on_diag_d~2.html | 4 +- develop/proc/dbcsr_add_on_diag_s.html | 2 +- develop/proc/dbcsr_add_on_diag_s~2.html | 4 +- develop/proc/dbcsr_add_on_diag_z.html | 2 +- develop/proc/dbcsr_add_on_diag_z~2.html | 4 +- develop/proc/dbcsr_add_s.html | 4 +- develop/proc/dbcsr_add_s~2.html | 4 +- develop/proc/dbcsr_add_wm_from_matrix.html | 2 +- develop/proc/dbcsr_add_work_coordinate.html | 10 +- develop/proc/dbcsr_add_z.html | 4 +- develop/proc/dbcsr_add_z~2.html | 4 +- develop/proc/dbcsr_addto_index_array.html | 4 +- develop/proc/dbcsr_allgatherv.html | 6 +- develop/proc/dbcsr_binary_read.html | 2 +- develop/proc/dbcsr_binary_read~2.html | 2 +- develop/proc/dbcsr_binary_write.html | 2 +- develop/proc/dbcsr_binary_write~2.html | 2 +- develop/proc/dbcsr_blk_col_offset.html | 6 +- develop/proc/dbcsr_blk_column_size.html | 2 +- develop/proc/dbcsr_blk_row_offset.html | 6 +- develop/proc/dbcsr_blk_row_size.html | 6 +- develop/proc/dbcsr_block_conjg.html | 8 +- develop/proc/dbcsr_block_copy_aa.html | 10 +- develop/proc/dbcsr_block_in_limits.html | 4 +- develop/proc/dbcsr_block_partial_copy.html | 14 +- develop/proc/dbcsr_block_real_neg.html | 8 +- develop/proc/dbcsr_block_scale.html | 8 +- develop/proc/dbcsr_block_transpose_a.html | 6 +- develop/proc/dbcsr_block_transpose_aa.html | 10 +- develop/proc/dbcsr_build_row_index_copy.html | 6 +- .../proc/dbcsr_build_row_index_inplace.html | 4 +- develop/proc/dbcsr_calc_block_sizes.html | 10 +- develop/proc/dbcsr_checksum.html | 6 +- develop/proc/dbcsr_checksum~2.html | 8 +- develop/proc/dbcsr_clear.html | 2 +- develop/proc/dbcsr_clearfrom_index_array.html | 2 +- develop/proc/dbcsr_clear~2.html | 2 +- develop/proc/dbcsr_col_block_offsets.html | 2 +- develop/proc/dbcsr_col_block_sizes.html | 2 +- develop/proc/dbcsr_complete_redistribute.html | 433 +- .../proc/dbcsr_complete_redistribute~2.html | 431 +- develop/proc/dbcsr_conjg.html | 2 +- develop/proc/dbcsr_convert_csr_to_dbcsr.html | 4 +- develop/proc/dbcsr_convert_dbcsr_to_csr.html | 4 +- develop/proc/dbcsr_copy.html | 10 +- develop/proc/dbcsr_copy_into_existing.html | 4 +- .../proc/dbcsr_copy_into_existing_sym.html | 4 +- develop/proc/dbcsr_copy_into_existing~2.html | 4 +- develop/proc/dbcsr_copy_sort_data.html | 16 +- develop/proc/dbcsr_copy_submatrix.html | 8 +- develop/proc/dbcsr_copy~2.html | 10 +- develop/proc/dbcsr_count_row_index_copy.html | 6 +- .../proc/dbcsr_count_row_index_inplace.html | 4 +- develop/proc/dbcsr_create_brd.html | 4 +- develop/proc/dbcsr_create_image_dist.html | 2 +- develop/proc/dbcsr_create_new.html | 20 +- develop/proc/dbcsr_create_new~2.html | 34 +- develop/proc/dbcsr_create_template.html | 22 +- develop/proc/dbcsr_create_template~2.html | 30 +- develop/proc/dbcsr_crop_matrix.html | 4 +- develop/proc/dbcsr_csr_create_from_dbcsr.html | 10 +- develop/proc/dbcsr_data_area.html | 4 +- develop/proc/dbcsr_data_clear0.html | 8 +- develop/proc/dbcsr_data_clear_nt.html | 10 +- develop/proc/dbcsr_data_clear_pointer.html | 2 +- develop/proc/dbcsr_data_copy_aa.html | 8 +- develop/proc/dbcsr_data_copy_aa2.html | 4 +- develop/proc/dbcsr_data_copyall.html | 2 +- develop/proc/dbcsr_data_dev2host.html | 2 +- develop/proc/dbcsr_data_ensure_size.html | 8 +- develop/proc/dbcsr_data_exists.html | 4 +- develop/proc/dbcsr_data_get_memory_type.html | 4 +- develop/proc/dbcsr_data_get_size.html | 4 +- .../proc/dbcsr_data_get_size_referenced.html | 2 +- develop/proc/dbcsr_data_get_sizes_1.html | 4 +- develop/proc/dbcsr_data_get_sizes_2.html | 8 +- develop/proc/dbcsr_data_get_sizes_any.html | 6 +- develop/proc/dbcsr_data_get_type.html | 4 +- develop/proc/dbcsr_data_hold.html | 2 +- develop/proc/dbcsr_data_host2dev.html | 2 +- develop/proc/dbcsr_data_init.html | 2 +- develop/proc/dbcsr_data_new.html | 8 +- develop/proc/dbcsr_data_release.html | 2 +- develop/proc/dbcsr_data_set_ac.html | 8 +- develop/proc/dbcsr_data_set_ad.html | 8 +- develop/proc/dbcsr_data_set_as.html | 8 +- develop/proc/dbcsr_data_set_az.html | 8 +- .../proc/dbcsr_data_set_size_referenced.html | 2 +- develop/proc/dbcsr_data_valid.html | 4 +- develop/proc/dbcsr_data_verify_bounds.html | 6 +- develop/proc/dbcsr_data_zero.html | 6 +- .../proc/dbcsr_datablock_redistribute.html | 12 +- develop/proc/dbcsr_datatype_sizeof.html | 4 +- develop/proc/dbcsr_deallocate_matrix.html | 2 +- .../proc/dbcsr_default_logger_stack_size.html | 2 +- develop/proc/dbcsr_destroy.html | 2 +- develop/proc/dbcsr_desymmetrize.html | 4 +- develop/proc/dbcsr_desymmetrize_deep.html | 2 +- develop/proc/dbcsr_dist_bin.html | 4 +- develop/proc/dbcsr_dist_release_locals.html | 2 +- develop/proc/dbcsr_distribute.html | 131 +- develop/proc/dbcsr_distribute~2.html | 133 +- develop/proc/dbcsr_distribution.html | 4 +- develop/proc/dbcsr_distribution_col_dist.html | 4 +- develop/proc/dbcsr_distribution_get.html | 81 +- .../dbcsr_distribution_get_num_images_1d.html | 6 +- develop/proc/dbcsr_distribution_get~2.html | 75 +- .../proc/dbcsr_distribution_has_threads.html | 4 +- develop/proc/dbcsr_distribution_hold.html | 21 +- develop/proc/dbcsr_distribution_hold~2.html | 21 +- .../proc/dbcsr_distribution_local_cols.html | 4 +- .../dbcsr_distribution_local_cols_obj.html | 4 +- .../proc/dbcsr_distribution_local_rows.html | 4 +- .../dbcsr_distribution_local_rows_obj.html | 4 +- .../proc/dbcsr_distribution_make_threads.html | 2 +- .../proc/dbcsr_distribution_max_col_dist.html | 4 +- .../proc/dbcsr_distribution_max_row_dist.html | 4 +- develop/proc/dbcsr_distribution_mp.html | 4 +- develop/proc/dbcsr_distribution_ncols.html | 4 +- develop/proc/dbcsr_distribution_new.html | 14 +- develop/proc/dbcsr_distribution_new_low.html | 14 +- develop/proc/dbcsr_distribution_new_obj.html | 12 +- .../proc/dbcsr_distribution_new_template.html | 14 +- .../proc/dbcsr_distribution_nlocal_cols.html | 2 +- .../proc/dbcsr_distribution_nlocal_rows.html | 2 +- .../proc/dbcsr_distribution_no_threads.html | 2 +- develop/proc/dbcsr_distribution_nrows.html | 4 +- .../proc/dbcsr_distribution_num_threads.html | 4 +- .../proc/dbcsr_distribution_processor.html | 8 +- develop/proc/dbcsr_distribution_release.html | 2 +- .../proc/dbcsr_distribution_release~2.html | 2 +- develop/proc/dbcsr_distribution_row_dist.html | 4 +- .../proc/dbcsr_distribution_thread_dist.html | 4 +- develop/proc/dbcsr_dot_c.html | 4 +- develop/proc/dbcsr_dot_c~2.html | 6 +- develop/proc/dbcsr_dot_d.html | 4 +- develop/proc/dbcsr_dot_d~2.html | 6 +- develop/proc/dbcsr_dot_s.html | 4 +- develop/proc/dbcsr_dot_sd.html | 6 +- develop/proc/dbcsr_dot_s~2.html | 6 +- develop/proc/dbcsr_dot_z.html | 4 +- develop/proc/dbcsr_dot_z~2.html | 6 +- develop/proc/dbcsr_expand_row_index.html | 8 +- develop/proc/dbcsr_expand_row_index_2d.html | 6 +- develop/proc/dbcsr_fill_wm_from_matrix.html | 2 +- develop/proc/dbcsr_filter.html | 8 +- develop/proc/dbcsr_filter_anytype.html | 8 +- develop/proc/dbcsr_filter_c.html | 8 +- develop/proc/dbcsr_filter_d.html | 8 +- develop/proc/dbcsr_filter_s.html | 8 +- develop/proc/dbcsr_filter_z.html | 8 +- develop/proc/dbcsr_finalize.html | 2 +- develop/proc/dbcsr_finalize~2.html | 2 +- develop/proc/dbcsr_find_column.html | 8 +- develop/proc/dbcsr_frobenius_norm.html | 6 +- develop/proc/dbcsr_frobenius_norm~2.html | 6 +- develop/proc/dbcsr_function_of_elements.html | 2 +- .../proc/dbcsr_function_of_elements~2.html | 2 +- develop/proc/dbcsr_gatherv_any.html | 12 +- develop/proc/dbcsr_gershgorin_norm.html | 4 +- develop/proc/dbcsr_gershgorin_norm~2.html | 4 +- .../proc/dbcsr_get_2d_block_notrans_p_c.html | 14 +- .../proc/dbcsr_get_2d_block_notrans_p_d.html | 14 +- .../proc/dbcsr_get_2d_block_notrans_p_s.html | 14 +- .../proc/dbcsr_get_2d_block_notrans_p_z.html | 14 +- develop/proc/dbcsr_get_2d_block_p_c.html | 128 +- develop/proc/dbcsr_get_2d_block_p_c~2.html | 128 +- develop/proc/dbcsr_get_2d_block_p_d.html | 128 +- develop/proc/dbcsr_get_2d_block_p_d~2.html | 128 +- develop/proc/dbcsr_get_2d_block_p_s.html | 128 +- develop/proc/dbcsr_get_2d_block_p_s~2.html | 128 +- develop/proc/dbcsr_get_2d_block_p_z.html | 126 +- develop/proc/dbcsr_get_2d_block_p_z~2.html | 128 +- develop/proc/dbcsr_get_block_diag.html | 2 +- develop/proc/dbcsr_get_block_diag~2.html | 2 +- develop/proc/dbcsr_get_block_index.html | 12 +- develop/proc/dbcsr_get_block_notrans_p_c.html | 14 +- develop/proc/dbcsr_get_block_notrans_p_d.html | 14 +- develop/proc/dbcsr_get_block_notrans_p_s.html | 14 +- develop/proc/dbcsr_get_block_notrans_p_z.html | 14 +- develop/proc/dbcsr_get_block_p_area.html | 16 +- develop/proc/dbcsr_get_block_p_c.html | 110 +- develop/proc/dbcsr_get_block_p_c~2.html | 108 +- develop/proc/dbcsr_get_block_p_d.html | 110 +- develop/proc/dbcsr_get_block_p_d~2.html | 108 +- develop/proc/dbcsr_get_block_p_s.html | 110 +- develop/proc/dbcsr_get_block_p_s~2.html | 110 +- develop/proc/dbcsr_get_block_p_z.html | 108 +- develop/proc/dbcsr_get_block_p_z~2.html | 110 +- develop/proc/dbcsr_get_data_c.html | 10 +- develop/proc/dbcsr_get_data_c_c.html | 10 +- develop/proc/dbcsr_get_data_c_d.html | 10 +- develop/proc/dbcsr_get_data_c_s.html | 10 +- develop/proc/dbcsr_get_data_c_z.html | 10 +- develop/proc/dbcsr_get_data_d.html | 10 +- develop/proc/dbcsr_get_data_memory_type.html | 2 +- develop/proc/dbcsr_get_data_p_2d_c.html | 8 +- develop/proc/dbcsr_get_data_p_2d_d.html | 8 +- develop/proc/dbcsr_get_data_p_2d_s.html | 8 +- develop/proc/dbcsr_get_data_p_2d_z.html | 8 +- develop/proc/dbcsr_get_data_p_c.html | 8 +- develop/proc/dbcsr_get_data_p_d.html | 8 +- develop/proc/dbcsr_get_data_p_s.html | 8 +- develop/proc/dbcsr_get_data_p_z.html | 8 +- develop/proc/dbcsr_get_data_s.html | 10 +- develop/proc/dbcsr_get_data_size.html | 4 +- develop/proc/dbcsr_get_data_size_used.html | 4 +- develop/proc/dbcsr_get_data_size~2.html | 4 +- develop/proc/dbcsr_get_data_type.html | 4 +- develop/proc/dbcsr_get_data_type~2.html | 4 +- develop/proc/dbcsr_get_data_z.html | 10 +- develop/proc/dbcsr_get_default_config.html | 4 +- develop/proc/dbcsr_get_default_logger.html | 2 +- develop/proc/dbcsr_get_diag_c.html | 2 +- develop/proc/dbcsr_get_diag_c~2.html | 2 +- develop/proc/dbcsr_get_diag_d.html | 2 +- develop/proc/dbcsr_get_diag_d~2.html | 2 +- develop/proc/dbcsr_get_diag_s.html | 2 +- develop/proc/dbcsr_get_diag_s~2.html | 2 +- develop/proc/dbcsr_get_diag_z.html | 2 +- develop/proc/dbcsr_get_diag_z~2.html | 2 +- develop/proc/dbcsr_get_global_col_map.html | 4 +- develop/proc/dbcsr_get_global_row_map.html | 4 +- develop/proc/dbcsr_get_index_memory_type.html | 2 +- develop/proc/dbcsr_get_info.html | 48 +- develop/proc/dbcsr_get_info~2.html | 50 +- develop/proc/dbcsr_get_local_cols.html | 4 +- develop/proc/dbcsr_get_local_rows.html | 4 +- develop/proc/dbcsr_get_matrix_type.html | 4 +- develop/proc/dbcsr_get_matrix_type~2.html | 4 +- develop/proc/dbcsr_get_num_blocks.html | 4 +- develop/proc/dbcsr_get_num_blocks~2.html | 4 +- develop/proc/dbcsr_get_nze.html | 2 +- develop/proc/dbcsr_get_occupation.html | 4 +- develop/proc/dbcsr_get_occupation~2.html | 4 +- develop/proc/dbcsr_get_replication_type.html | 2 +- develop/proc/dbcsr_get_stored_block_info.html | 12 +- .../proc/dbcsr_get_stored_coordinates.html | 58 +- .../proc/dbcsr_get_stored_coordinates~2.html | 58 +- develop/proc/dbcsr_get_wms_data_c.html | 10 +- develop/proc/dbcsr_get_wms_data_d.html | 10 +- develop/proc/dbcsr_get_wms_data_s.html | 10 +- develop/proc/dbcsr_get_wms_data_z.html | 10 +- develop/proc/dbcsr_hadamard_product.html | 6 +- develop/proc/dbcsr_hadamard_product~2.html | 6 +- develop/proc/dbcsr_has_local_row_index.html | 2 +- .../proc/dbcsr_has_same_block_structure.html | 4 +- develop/proc/dbcsr_has_symmetry.html | 2 +- develop/proc/dbcsr_has_symmetry~2.html | 2 +- develop/proc/dbcsr_heap_fill.html | 2 +- develop/proc/dbcsr_heap_get_first.html | 6 +- develop/proc/dbcsr_heap_new.html | 2 +- develop/proc/dbcsr_heap_pop.html | 6 +- develop/proc/dbcsr_heap_reset_first.html | 2 +- develop/proc/dbcsr_heap_reset_node.html | 4 +- develop/proc/dbcsr_ibcast_any.html | 8 +- develop/proc/dbcsr_impose_sparsity.html | 2 +- develop/proc/dbcsr_index_checksum.html | 4 +- develop/proc/dbcsr_index_compact.html | 2 +- develop/proc/dbcsr_index_prune_deleted.html | 2 +- develop/proc/dbcsr_init_lib_def.html | 6 +- develop/proc/dbcsr_init_lib_hooks.html | 6 +- develop/proc/dbcsr_init_lib_pre.html | 6 +- develop/proc/dbcsr_init_p.html | 2 +- develop/proc/dbcsr_init_random.html | 4 +- develop/proc/dbcsr_init_random~2.html | 4 +- develop/proc/dbcsr_init_wm.html | 4 +- develop/proc/dbcsr_int_to_string.html | 4 +- develop/proc/dbcsr_irecv_any.html | 10 +- develop/proc/dbcsr_iscatterv_any.html | 16 +- develop/proc/dbcsr_isend_any.html | 10 +- develop/proc/dbcsr_isendrecv_any.html | 14 +- develop/proc/dbcsr_iterator_blocks_left.html | 20 +- .../proc/dbcsr_iterator_blocks_left~2.html | 20 +- .../proc/dbcsr_iterator_next_1d_block_c.html | 20 +- .../proc/dbcsr_iterator_next_1d_block_d.html | 20 +- ...bcsr_iterator_next_1d_block_notrans_c.html | 18 +- ...bcsr_iterator_next_1d_block_notrans_d.html | 18 +- ...bcsr_iterator_next_1d_block_notrans_s.html | 18 +- ...bcsr_iterator_next_1d_block_notrans_z.html | 18 +- .../proc/dbcsr_iterator_next_1d_block_s.html | 20 +- .../proc/dbcsr_iterator_next_1d_block_z.html | 20 +- .../proc/dbcsr_iterator_next_2d_block_c.html | 20 +- .../proc/dbcsr_iterator_next_2d_block_d.html | 20 +- ...bcsr_iterator_next_2d_block_notrans_c.html | 18 +- ...bcsr_iterator_next_2d_block_notrans_d.html | 18 +- ...bcsr_iterator_next_2d_block_notrans_s.html | 18 +- ...bcsr_iterator_next_2d_block_notrans_z.html | 18 +- .../proc/dbcsr_iterator_next_2d_block_s.html | 20 +- .../proc/dbcsr_iterator_next_2d_block_z.html | 20 +- .../proc/dbcsr_iterator_next_block_index.html | 10 +- develop/proc/dbcsr_iterator_seek.html | 4 +- develop/proc/dbcsr_iterator_start.html | 270 +- develop/proc/dbcsr_iterator_start~2.html | 270 +- develop/proc/dbcsr_iterator_stop.html | 50 +- develop/proc/dbcsr_iterator_stop~2.html | 50 +- develop/proc/dbcsr_lapack_larnv.html | 8 +- develop/proc/dbcsr_logger_create.html | 4 +- .../proc/dbcsr_logger_generate_filename.html | 4 +- .../dbcsr_logger_get_default_io_unit.html | 2 +- .../dbcsr_logger_get_default_unit_nr.html | 4 +- develop/proc/dbcsr_logger_get_unit_nr.html | 4 +- develop/proc/dbcsr_logger_would_log.html | 2 +- develop/proc/dbcsr_logical_to_string.html | 4 +- develop/proc/dbcsr_make_1dist_dense.html | 6 +- develop/proc/dbcsr_make_buffers.html | 4 +- develop/proc/dbcsr_make_dbcsr_index.html | 8 +- develop/proc/dbcsr_make_dense.html | 8 +- develop/proc/dbcsr_make_dense_low.html | 4 +- develop/proc/dbcsr_make_dists_dense.html | 6 +- develop/proc/dbcsr_make_images.html | 2 +- develop/proc/dbcsr_make_images_dense.html | 6 +- develop/proc/dbcsr_make_index_canonical.html | 2 +- develop/proc/dbcsr_make_index_exist.html | 2 +- develop/proc/dbcsr_make_index_list.html | 2 +- develop/proc/dbcsr_make_index_local_row.html | 2 +- develop/proc/dbcsr_make_null_dist.html | 8 +- develop/proc/dbcsr_make_null_mp.html | 4 +- .../proc/dbcsr_make_random_block_sizes.html | 2 +- develop/proc/dbcsr_make_random_matrix.html | 16 +- develop/proc/dbcsr_make_undense.html | 12 +- .../proc/dbcsr_make_untransposed_blocks.html | 2 +- develop/proc/dbcsr_max_col_size.html | 4 +- develop/proc/dbcsr_max_row_size.html | 4 +- develop/proc/dbcsr_maxabs.html | 4 +- develop/proc/dbcsr_maxabs~2.html | 4 +- develop/proc/dbcsr_may_be_dense.html | 2 +- develop/proc/dbcsr_mempool_add.html | 2 +- develop/proc/dbcsr_mempool_clear.html | 2 +- develop/proc/dbcsr_mempool_create.html | 2 +- develop/proc/dbcsr_mempool_destruct.html | 2 +- develop/proc/dbcsr_mempool_get.html | 4 +- .../proc/dbcsr_mempool_limit_capacity.html | 4 +- develop/proc/dbcsr_memtype_equal.html | 2 +- develop/proc/dbcsr_memtype_setup.html | 10 +- develop/proc/dbcsr_merge_all.html | 4 +- develop/proc/dbcsr_merge_single_wm.html | 2 +- .../proc/dbcsr_mm_accdrv_dev2host_init.html | 2 +- develop/proc/dbcsr_mm_accdrv_finalize.html | 2 +- develop/proc/dbcsr_mm_accdrv_init.html | 8 +- develop/proc/dbcsr_mm_accdrv_process.html | 14 +- develop/proc/dbcsr_mm_csr_dev2host_init.html | 2 +- develop/proc/dbcsr_mm_csr_finalize.html | 2 +- develop/proc/dbcsr_mm_csr_init.html | 12 +- develop/proc/dbcsr_mm_csr_multiply.html | 24 +- develop/proc/dbcsr_mm_csr_multiply_low.html | 26 +- develop/proc/dbcsr_mm_csr_purge_stacks.html | 6 +- develop/proc/dbcsr_mm_csr_red3d.html | 12 +- develop/proc/dbcsr_mm_hostdrv_init.html | 4 +- develop/proc/dbcsr_mm_hostdrv_process.html | 12 +- .../proc/dbcsr_mm_multrec_dev2host_init.html | 2 +- develop/proc/dbcsr_mm_multrec_finalize.html | 2 +- develop/proc/dbcsr_mm_multrec_get_nblks.html | 4 +- develop/proc/dbcsr_mm_multrec_get_nze.html | 4 +- develop/proc/dbcsr_mm_multrec_init.html | 20 +- develop/proc/dbcsr_mm_multrec_multiply.html | 10 +- develop/proc/dbcsr_mm_multrec_red3d.html | 6 +- develop/proc/dbcsr_mm_sched_begin_burst.html | 2 +- .../proc/dbcsr_mm_sched_dev2host_init.html | 2 +- develop/proc/dbcsr_mm_sched_finalize.html | 2 +- develop/proc/dbcsr_mm_sched_init.html | 8 +- .../proc/dbcsr_mm_sched_print_statistics.html | 4 +- develop/proc/dbcsr_mm_sched_process.html | 8 +- .../dbcsr_mm_sched_set_orig_datasize.html | 2 +- develop/proc/dbcsr_mp_active.html | 2 +- develop/proc/dbcsr_mp_environ.html | 2 +- develop/proc/dbcsr_mp_get_process.html | 6 +- develop/proc/dbcsr_mp_grid_remove.html | 2 +- develop/proc/dbcsr_mp_grid_setup.html | 56 +- develop/proc/dbcsr_mp_grid_setup~2.html | 56 +- develop/proc/dbcsr_mp_group.html | 4 +- develop/proc/dbcsr_mp_has_subgroups.html | 2 +- develop/proc/dbcsr_mp_hold.html | 2 +- develop/proc/dbcsr_mp_init.html | 2 +- develop/proc/dbcsr_mp_make_env.html | 8 +- develop/proc/dbcsr_mp_my_col_group.html | 2 +- develop/proc/dbcsr_mp_my_row_group.html | 2 +- develop/proc/dbcsr_mp_mynode.html | 2 +- develop/proc/dbcsr_mp_mypcol.html | 4 +- develop/proc/dbcsr_mp_myprow.html | 4 +- develop/proc/dbcsr_mp_new_grid.html | 14 +- develop/proc/dbcsr_mp_new_group.html | 6 +- develop/proc/dbcsr_mp_new_transposed.html | 2 +- develop/proc/dbcsr_mp_npcols.html | 4 +- develop/proc/dbcsr_mp_nprows.html | 4 +- develop/proc/dbcsr_mp_numnodes.html | 4 +- develop/proc/dbcsr_mp_pgrid.html | 4 +- develop/proc/dbcsr_mp_release.html | 2 +- develop/proc/dbcsr_mp_type_from_anytype.html | 2 +- develop/proc/dbcsr_multiply_c.html | 84 +- develop/proc/dbcsr_multiply_c~2.html | 88 +- develop/proc/dbcsr_multiply_d.html | 104 +- develop/proc/dbcsr_multiply_d~2.html | 106 +- develop/proc/dbcsr_multiply_generic.html | 22 +- .../proc/dbcsr_multiply_print_statistics.html | 4 +- develop/proc/dbcsr_multiply_s.html | 82 +- develop/proc/dbcsr_multiply_s~2.html | 88 +- develop/proc/dbcsr_multiply_z.html | 84 +- develop/proc/dbcsr_multiply_z~2.html | 88 +- develop/proc/dbcsr_mutable_new.html | 2 +- develop/proc/dbcsr_name.html | 4 +- develop/proc/dbcsr_nblkcols_local.html | 4 +- develop/proc/dbcsr_nblkcols_local~2.html | 2 +- develop/proc/dbcsr_nblkcols_total.html | 4 +- develop/proc/dbcsr_nblkcols_total~2.html | 4 +- develop/proc/dbcsr_nblkrows_local.html | 4 +- develop/proc/dbcsr_nblkrows_local~2.html | 2 +- develop/proc/dbcsr_nblkrows_total.html | 4 +- develop/proc/dbcsr_nblkrows_total~2.html | 4 +- develop/proc/dbcsr_new_image_dist.html | 4 +- develop/proc/dbcsr_new_transposed.html | 12 +- develop/proc/dbcsr_nfullcols_local.html | 4 +- develop/proc/dbcsr_nfullcols_total.html | 4 +- develop/proc/dbcsr_nfullcols_total~2.html | 4 +- develop/proc/dbcsr_nfullrows_local.html | 4 +- develop/proc/dbcsr_nfullrows_total.html | 4 +- develop/proc/dbcsr_nfullrows_total~2.html | 4 +- develop/proc/dbcsr_norm_r8_vec.html | 2 +- develop/proc/dbcsr_norm_r8_vec~2.html | 2 +- develop/proc/dbcsr_norm_scalar.html | 2 +- develop/proc/dbcsr_norm_scalar~2.html | 2 +- develop/proc/dbcsr_norm_vec.html | 2 +- develop/proc/dbcsr_pack_meta.html | 4 +- develop/proc/dbcsr_print.html | 6 +- develop/proc/dbcsr_print_block_sum.html | 4 +- develop/proc/dbcsr_print_block_sum~2.html | 4 +- develop/proc/dbcsr_print_config.html | 2 +- develop/proc/dbcsr_print_statistics~2.html | 4 +- develop/proc/dbcsr_printmat_matlab_c.html | 8 +- develop/proc/dbcsr_printmat_matlab_d.html | 8 +- develop/proc/dbcsr_printmat_matlab_s.html | 8 +- develop/proc/dbcsr_printmat_matlab_z.html | 8 +- develop/proc/dbcsr_print~2.html | 6 +- develop/proc/dbcsr_put_block2d_c.html | 114 +- develop/proc/dbcsr_put_block2d_c~2.html | 114 +- develop/proc/dbcsr_put_block2d_d.html | 114 +- develop/proc/dbcsr_put_block2d_d~2.html | 114 +- develop/proc/dbcsr_put_block2d_s.html | 114 +- develop/proc/dbcsr_put_block2d_s~2.html | 112 +- develop/proc/dbcsr_put_block2d_z.html | 114 +- develop/proc/dbcsr_put_block2d_z~2.html | 114 +- develop/proc/dbcsr_put_block_area.html | 16 +- develop/proc/dbcsr_put_block_c.html | 250 +- develop/proc/dbcsr_put_block_c~2.html | 250 +- develop/proc/dbcsr_put_block_d.html | 250 +- develop/proc/dbcsr_put_block_d~2.html | 250 +- develop/proc/dbcsr_put_block_s.html | 250 +- develop/proc/dbcsr_put_block_s~2.html | 248 +- develop/proc/dbcsr_put_block_z.html | 250 +- develop/proc/dbcsr_put_block_z~2.html | 250 +- develop/proc/dbcsr_random_dist.html | 6 +- develop/proc/dbcsr_real_dp_to_string.html | 4 +- develop/proc/dbcsr_redistribute.html | 4 +- develop/proc/dbcsr_release.html | 2 +- develop/proc/dbcsr_release_locals.html | 2 +- develop/proc/dbcsr_release_p.html | 2 +- develop/proc/dbcsr_release~2.html | 2 +- develop/proc/dbcsr_remove_block.html | 8 +- .../dbcsr_repl_get_stored_coordinates.html | 6 +- develop/proc/dbcsr_replicate.html | 2 +- develop/proc/dbcsr_replicate_all.html | 19 +- develop/proc/dbcsr_replicate_all~2.html | 19 +- develop/proc/dbcsr_repoint_index.html | 2 +- develop/proc/dbcsr_reserve_all_blocks.html | 72 +- develop/proc/dbcsr_reserve_all_blocks~2.html | 72 +- develop/proc/dbcsr_reserve_block2d_c.html | 129 +- develop/proc/dbcsr_reserve_block2d_c~2.html | 129 +- develop/proc/dbcsr_reserve_block2d_d.html | 129 +- develop/proc/dbcsr_reserve_block2d_d~2.html | 129 +- develop/proc/dbcsr_reserve_block2d_s.html | 129 +- develop/proc/dbcsr_reserve_block2d_s~2.html | 129 +- develop/proc/dbcsr_reserve_block2d_z.html | 129 +- develop/proc/dbcsr_reserve_block2d_z~2.html | 129 +- develop/proc/dbcsr_reserve_blocks.html | 175 +- develop/proc/dbcsr_reserve_blocks~2.html | 175 +- develop/proc/dbcsr_reserve_diag_blocks.html | 53 +- develop/proc/dbcsr_reserve_diag_blocks~2.html | 53 +- develop/proc/dbcsr_reset_locals.html | 2 +- develop/proc/dbcsr_reset_vlocals.html | 2 +- develop/proc/dbcsr_rget_any.html | 18 +- develop/proc/dbcsr_row_block_offsets.html | 2 +- develop/proc/dbcsr_row_block_sizes.html | 2 +- develop/proc/dbcsr_run_tests.html | 247 +- develop/proc/dbcsr_run_tests~2.html | 247 +- develop/proc/dbcsr_scalar_are_equal.html | 2 +- develop/proc/dbcsr_scalar_c.html | 2 +- develop/proc/dbcsr_scalar_d.html | 2 +- develop/proc/dbcsr_scalar_fill_all.html | 2 +- develop/proc/dbcsr_scalar_get_type.html | 4 +- develop/proc/dbcsr_scalar_get_value_c.html | 2 +- develop/proc/dbcsr_scalar_get_value_d.html | 2 +- develop/proc/dbcsr_scalar_get_value_s.html | 2 +- develop/proc/dbcsr_scalar_get_value_z.html | 2 +- develop/proc/dbcsr_scalar_multiply.html | 2 +- develop/proc/dbcsr_scalar_one.html | 4 +- develop/proc/dbcsr_scalar_s.html | 2 +- develop/proc/dbcsr_scalar_set_type.html | 4 +- develop/proc/dbcsr_scalar_z.html | 2 +- develop/proc/dbcsr_scalar_zero.html | 4 +- develop/proc/dbcsr_scale_anytype.html | 4 +- .../proc/dbcsr_scale_by_vector_anytype.html | 4 +- develop/proc/dbcsr_scale_by_vector_c.html | 4 +- develop/proc/dbcsr_scale_by_vector_c~2.html | 4 +- develop/proc/dbcsr_scale_by_vector_d.html | 4 +- develop/proc/dbcsr_scale_by_vector_d~2.html | 4 +- develop/proc/dbcsr_scale_by_vector_s.html | 4 +- develop/proc/dbcsr_scale_by_vector_s~2.html | 4 +- develop/proc/dbcsr_scale_by_vector_z.html | 4 +- develop/proc/dbcsr_scale_by_vector_z~2.html | 4 +- develop/proc/dbcsr_scale_c.html | 4 +- develop/proc/dbcsr_scale_c~2.html | 4 +- develop/proc/dbcsr_scale_d.html | 4 +- develop/proc/dbcsr_scale_d~2.html | 4 +- develop/proc/dbcsr_scale_s.html | 4 +- develop/proc/dbcsr_scale_s~2.html | 4 +- develop/proc/dbcsr_scale_z.html | 4 +- develop/proc/dbcsr_scale_z~2.html | 4 +- develop/proc/dbcsr_sendrecv_any.html | 10 +- .../proc/dbcsr_set_block_pointer_2d_c.html | 6 +- .../proc/dbcsr_set_block_pointer_2d_d.html | 6 +- .../proc/dbcsr_set_block_pointer_2d_s.html | 6 +- .../proc/dbcsr_set_block_pointer_2d_z.html | 6 +- develop/proc/dbcsr_set_block_pointer_any.html | 6 +- develop/proc/dbcsr_set_c.html | 4 +- develop/proc/dbcsr_set_config.html | 4 +- develop/proc/dbcsr_set_c~2.html | 4 +- develop/proc/dbcsr_set_d.html | 4 +- develop/proc/dbcsr_set_diag_c.html | 2 +- develop/proc/dbcsr_set_diag_c~2.html | 2 +- develop/proc/dbcsr_set_diag_d.html | 2 +- develop/proc/dbcsr_set_diag_d~2.html | 2 +- develop/proc/dbcsr_set_diag_s.html | 2 +- develop/proc/dbcsr_set_diag_s~2.html | 2 +- develop/proc/dbcsr_set_diag_z.html | 2 +- develop/proc/dbcsr_set_diag_z~2.html | 2 +- develop/proc/dbcsr_set_d~2.html | 4 +- develop/proc/dbcsr_set_s.html | 4 +- develop/proc/dbcsr_set_s~2.html | 4 +- develop/proc/dbcsr_set_work_size.html | 2 +- develop/proc/dbcsr_set_z.html | 4 +- develop/proc/dbcsr_set_z~2.html | 4 +- develop/proc/dbcsr_setname.html | 2 +- develop/proc/dbcsr_setname~2.html | 4 +- develop/proc/dbcsr_sort_data.html | 10 +- develop/proc/dbcsr_sort_indices.html | 8 +- develop/proc/dbcsr_special_finalize.html | 2 +- develop/proc/dbcsr_sum_replicated.html | 2 +- develop/proc/dbcsr_sum_replicated~2.html | 2 +- develop/proc/dbcsr_switch_data_area.html | 4 +- develop/proc/dbcsr_t_align_index.html | 6 +- ...bcsr_t_allocate_and_get_2d_block_c_dp.html | 8 +- ...bcsr_t_allocate_and_get_2d_block_c_sp.html | 8 +- ...bcsr_t_allocate_and_get_2d_block_r_dp.html | 8 +- ...bcsr_t_allocate_and_get_2d_block_r_sp.html | 8 +- ...bcsr_t_allocate_and_get_3d_block_c_dp.html | 8 +- ...bcsr_t_allocate_and_get_3d_block_c_sp.html | 8 +- ...bcsr_t_allocate_and_get_3d_block_r_dp.html | 8 +- ...bcsr_t_allocate_and_get_3d_block_r_sp.html | 8 +- ...bcsr_t_allocate_and_get_4d_block_c_dp.html | 8 +- ...bcsr_t_allocate_and_get_4d_block_c_sp.html | 8 +- ...bcsr_t_allocate_and_get_4d_block_r_dp.html | 8 +- ...bcsr_t_allocate_and_get_4d_block_r_sp.html | 8 +- .../dbcsr_t_batched_contract_finalize.html | 4 +- .../proc/dbcsr_t_batched_contract_init.html | 2 +- develop/proc/dbcsr_t_blk_offsets.html | 2 +- develop/proc/dbcsr_t_blk_size.html | 2 +- develop/proc/dbcsr_t_blk_sizes.html | 2 +- develop/proc/dbcsr_t_change_pgrid.html | 8 +- develop/proc/dbcsr_t_change_pgrid_2d.html | 14 +- develop/proc/dbcsr_t_checksum.html | 6 +- develop/proc/dbcsr_t_communicate_buffer.html | 2 +- develop/proc/dbcsr_t_contract.html | 42 +- develop/proc/dbcsr_t_contract_expert.html | 46 +- develop/proc/dbcsr_t_contract_index.html | 34 +- develop/proc/dbcsr_t_contract_test.html | 34 +- develop/proc/dbcsr_t_copy.html | 12 +- .../dbcsr_t_copy_contraction_storage.html | 4 +- develop/proc/dbcsr_t_copy_expert.html | 12 +- .../proc/dbcsr_t_copy_matrix_to_tensor.html | 6 +- develop/proc/dbcsr_t_copy_nocomm.html | 6 +- .../proc/dbcsr_t_copy_tensor_to_matrix.html | 6 +- develop/proc/dbcsr_t_create_matrix.html | 6 +- develop/proc/dbcsr_t_create_new.html | 18 +- develop/proc/dbcsr_t_create_template.html | 12 +- develop/proc/dbcsr_t_crop.html | 8 +- develop/proc/dbcsr_t_default_distvec.html | 6 +- .../proc/dbcsr_t_distribution_destroy.html | 2 +- develop/proc/dbcsr_t_distribution_hold.html | 2 +- develop/proc/dbcsr_t_distribution_new.html | 12 +- .../proc/dbcsr_t_distribution_new_expert.html | 16 +- develop/proc/dbcsr_t_distribution_remap.html | 6 +- develop/proc/dbcsr_t_equal.html | 4 +- develop/proc/dbcsr_t_filter_c_dp.html | 6 +- develop/proc/dbcsr_t_filter_c_sp.html | 6 +- develop/proc/dbcsr_t_filter_r_dp.html | 6 +- develop/proc/dbcsr_t_filter_r_sp.html | 6 +- develop/proc/dbcsr_t_get_2d_block_c_dp.html | 10 +- develop/proc/dbcsr_t_get_2d_block_c_sp.html | 10 +- develop/proc/dbcsr_t_get_2d_block_r_dp.html | 10 +- develop/proc/dbcsr_t_get_2d_block_r_sp.html | 10 +- develop/proc/dbcsr_t_get_3d_block_c_dp.html | 10 +- develop/proc/dbcsr_t_get_3d_block_c_sp.html | 10 +- develop/proc/dbcsr_t_get_3d_block_r_dp.html | 10 +- develop/proc/dbcsr_t_get_3d_block_r_sp.html | 10 +- develop/proc/dbcsr_t_get_4d_block_c_dp.html | 10 +- develop/proc/dbcsr_t_get_4d_block_c_sp.html | 10 +- develop/proc/dbcsr_t_get_4d_block_r_dp.html | 10 +- develop/proc/dbcsr_t_get_4d_block_r_sp.html | 10 +- develop/proc/dbcsr_t_get_anyd_block.html | 8 +- develop/proc/dbcsr_t_get_anyd_block_c_dp.html | 8 +- develop/proc/dbcsr_t_get_anyd_block_c_sp.html | 8 +- develop/proc/dbcsr_t_get_anyd_block_r_dp.html | 8 +- develop/proc/dbcsr_t_get_anyd_block_r_sp.html | 8 +- develop/proc/dbcsr_t_get_data_size.html | 2 +- develop/proc/dbcsr_t_get_data_type.html | 2 +- develop/proc/dbcsr_t_get_info.html | 18 +- develop/proc/dbcsr_t_get_mapping_info.html | 20 +- develop/proc/dbcsr_t_get_num_blocks.html | 2 +- .../proc/dbcsr_t_get_num_blocks_total.html | 2 +- .../proc/dbcsr_t_get_stored_coordinates.html | 4 +- develop/proc/dbcsr_t_inverse_order.html | 2 +- .../proc/dbcsr_t_iterator_blocks_left.html | 2 +- develop/proc/dbcsr_t_iterator_next_block.html | 12 +- develop/proc/dbcsr_t_iterator_start.html | 4 +- develop/proc/dbcsr_t_iterator_stop.html | 2 +- .../proc/dbcsr_t_make_compatible_blocks.html | 2 +- .../proc/dbcsr_t_map_bounds_to_tensors.html | 26 +- develop/proc/dbcsr_t_mp_dims_create.html | 4 +- develop/proc/dbcsr_t_nblks_local.html | 2 +- develop/proc/dbcsr_t_nblks_total.html | 2 +- develop/proc/dbcsr_t_nd_mp_comm.html | 14 +- develop/proc/dbcsr_t_nd_mp_comm~2.html | 2 +- develop/proc/dbcsr_t_nd_mp_free.html | 2 +- develop/proc/dbcsr_t_permute_index.html | 6 +- develop/proc/dbcsr_t_pgrid_change_dims.html | 4 +- develop/proc/dbcsr_t_pgrid_create.html | 8 +- develop/proc/dbcsr_t_pgrid_create_expert.html | 16 +- .../proc/dbcsr_t_pgrid_create_expert~2.html | 6 +- develop/proc/dbcsr_t_pgrid_create~2.html | 4 +- develop/proc/dbcsr_t_pgrid_destroy.html | 2 +- develop/proc/dbcsr_t_pgrid_remap.html | 4 +- .../proc/dbcsr_t_pgrid_set_strict_split.html | 2 +- .../proc/dbcsr_t_print_contraction_index.html | 8 +- develop/proc/dbcsr_t_put_2d_block_c_dp.html | 12 +- develop/proc/dbcsr_t_put_2d_block_c_sp.html | 12 +- develop/proc/dbcsr_t_put_2d_block_r_dp.html | 12 +- develop/proc/dbcsr_t_put_2d_block_r_sp.html | 12 +- develop/proc/dbcsr_t_put_3d_block_c_dp.html | 12 +- develop/proc/dbcsr_t_put_3d_block_c_sp.html | 12 +- develop/proc/dbcsr_t_put_3d_block_r_dp.html | 12 +- develop/proc/dbcsr_t_put_3d_block_r_sp.html | 12 +- develop/proc/dbcsr_t_put_4d_block_c_dp.html | 12 +- develop/proc/dbcsr_t_put_4d_block_c_sp.html | 12 +- develop/proc/dbcsr_t_put_4d_block_r_dp.html | 12 +- develop/proc/dbcsr_t_put_4d_block_r_sp.html | 12 +- develop/proc/dbcsr_t_put_anyd_block.html | 10 +- develop/proc/dbcsr_t_put_anyd_block_c_dp.html | 10 +- develop/proc/dbcsr_t_put_anyd_block_c_sp.html | 10 +- develop/proc/dbcsr_t_put_anyd_block_r_dp.html | 10 +- develop/proc/dbcsr_t_put_anyd_block_r_sp.html | 10 +- develop/proc/dbcsr_t_remap.html | 20 +- .../proc/dbcsr_t_reserve_blocks_index.html | 10 +- .../dbcsr_t_reserve_blocks_index_array.html | 2 +- ...csr_t_reserve_blocks_matrix_to_tensor.html | 4 +- .../proc/dbcsr_t_reserve_blocks_template.html | 4 +- ...csr_t_reserve_blocks_tensor_to_matrix.html | 4 +- .../proc/dbcsr_t_reserved_block_indices.html | 2 +- develop/proc/dbcsr_t_reshape.html | 8 +- develop/proc/dbcsr_t_scale.html | 2 +- develop/proc/dbcsr_t_set_c_dp.html | 2 +- develop/proc/dbcsr_t_set_c_sp.html | 2 +- develop/proc/dbcsr_t_set_r_dp.html | 2 +- develop/proc/dbcsr_t_set_r_sp.html | 2 +- develop/proc/dbcsr_t_setup_test_tensor.html | 12 +- develop/proc/dbcsr_t_split_blocks.html | 8 +- .../proc/dbcsr_t_split_blocks_generic.html | 14 +- develop/proc/dbcsr_t_split_copyback.html | 4 +- develop/proc/dbcsr_t_test_formats.html | 24 +- develop/proc/dbcsr_t_write_block.html | 18 +- develop/proc/dbcsr_t_write_block_indices.html | 2 +- develop/proc/dbcsr_t_write_blocks.html | 4 +- develop/proc/dbcsr_t_write_split_info.html | 4 +- develop/proc/dbcsr_t_write_tensor_dist.html | 4 +- develop/proc/dbcsr_t_write_tensor_info.html | 6 +- .../proc/dbcsr_tas_batched_mm_complete.html | 2 +- .../proc/dbcsr_tas_batched_mm_finalize.html | 2 +- develop/proc/dbcsr_tas_batched_mm_init.html | 2 +- develop/proc/dbcsr_tas_benchmark_mm.html | 16 +- develop/proc/dbcsr_tas_blk_sizes.html | 10 +- develop/proc/dbcsr_tas_checksum.html | 6 +- develop/proc/dbcsr_tas_clear.html | 2 +- .../proc/dbcsr_tas_communicate_buffer.html | 2 +- develop/proc/dbcsr_tas_convert_to_tas.html | 2 +- develop/proc/dbcsr_tas_copy.html | 6 +- develop/proc/dbcsr_tas_create_new.html | 12 +- develop/proc/dbcsr_tas_create_split.html | 10 +- .../dbcsr_tas_create_split_rows_or_cols.html | 6 +- develop/proc/dbcsr_tas_create_template.html | 8 +- develop/proc/dbcsr_tas_default_distvec.html | 8 +- develop/proc/dbcsr_tas_destroy.html | 2 +- develop/proc/dbcsr_tas_dist_arb_default.html | 2 +- .../proc/dbcsr_tas_distribution_destroy.html | 2 +- develop/proc/dbcsr_tas_distribution_new.html | 8 +- develop/proc/dbcsr_tas_filter_c_dp.html | 8 +- develop/proc/dbcsr_tas_filter_c_sp.html | 8 +- develop/proc/dbcsr_tas_filter_r_dp.html | 8 +- develop/proc/dbcsr_tas_filter_r_sp.html | 8 +- develop/proc/dbcsr_tas_finalize.html | 2 +- develop/proc/dbcsr_tas_get_block_p_area.html | 16 +- develop/proc/dbcsr_tas_get_block_p_c_dp.html | 16 +- develop/proc/dbcsr_tas_get_block_p_c_sp.html | 16 +- develop/proc/dbcsr_tas_get_block_p_r_dp.html | 16 +- develop/proc/dbcsr_tas_get_block_p_r_sp.html | 16 +- develop/proc/dbcsr_tas_get_data_size.html | 4 +- develop/proc/dbcsr_tas_get_data_type.html | 4 +- develop/proc/dbcsr_tas_get_info.html | 36 +- develop/proc/dbcsr_tas_get_num_blocks.html | 4 +- .../proc/dbcsr_tas_get_num_blocks_total.html | 4 +- develop/proc/dbcsr_tas_get_nze.html | 2 +- develop/proc/dbcsr_tas_get_nze_total.html | 2 +- develop/proc/dbcsr_tas_get_split_info.html | 10 +- .../dbcsr_tas_get_stored_coordinates.html | 8 +- develop/proc/dbcsr_tas_info.html | 2 +- develop/proc/dbcsr_tas_info_hold.html | 2 +- .../proc/dbcsr_tas_iterator_blocks_left.html | 2 +- .../dbcsr_tas_iterator_next_area_block.html | 16 +- .../dbcsr_tas_iterator_next_block_c_dp.html | 16 +- .../dbcsr_tas_iterator_next_block_c_sp.html | 16 +- .../dbcsr_tas_iterator_next_block_index.html | 16 +- .../dbcsr_tas_iterator_next_block_r_dp.html | 16 +- .../dbcsr_tas_iterator_next_block_r_sp.html | 16 +- develop/proc/dbcsr_tas_iterator_start.html | 4 +- develop/proc/dbcsr_tas_iterator_stop.html | 2 +- develop/proc/dbcsr_tas_merge.html | 6 +- develop/proc/dbcsr_tas_mp_comm.html | 6 +- .../dbcsr_tas_mp_comm_from_matrix_sizes.html | 6 +- develop/proc/dbcsr_tas_mp_dims.html | 6 +- develop/proc/dbcsr_tas_multiply.html | 32 +- develop/proc/dbcsr_tas_nblkcols_local.html | 2 +- develop/proc/dbcsr_tas_nblkcols_total.html | 4 +- develop/proc/dbcsr_tas_nblkrows_local.html | 4 +- develop/proc/dbcsr_tas_nblkrows_total.html | 4 +- develop/proc/dbcsr_tas_nfullcols_total.html | 4 +- develop/proc/dbcsr_tas_nfullrows_total.html | 4 +- develop/proc/dbcsr_tas_put_block_area.html | 14 +- develop/proc/dbcsr_tas_put_block_c_dp.html | 14 +- develop/proc/dbcsr_tas_put_block_c_sp.html | 14 +- develop/proc/dbcsr_tas_put_block_r_dp.html | 14 +- develop/proc/dbcsr_tas_put_block_r_sp.html | 14 +- develop/proc/dbcsr_tas_random_bsizes.html | 4 +- develop/proc/dbcsr_tas_release_info.html | 2 +- develop/proc/dbcsr_tas_replicate.html | 8 +- .../proc/dbcsr_tas_reserve_blocks_index.html | 4 +- .../dbcsr_tas_reserve_blocks_template.html | 4 +- develop/proc/dbcsr_tas_reshape.html | 8 +- develop/proc/dbcsr_tas_result_index.html | 20 +- develop/proc/dbcsr_tas_set_batched_state.html | 2 +- develop/proc/dbcsr_tas_set_c_dp.html | 4 +- develop/proc/dbcsr_tas_set_c_sp.html | 4 +- develop/proc/dbcsr_tas_set_r_dp.html | 4 +- develop/proc/dbcsr_tas_set_r_sp.html | 4 +- develop/proc/dbcsr_tas_set_strict_split.html | 2 +- develop/proc/dbcsr_tas_setup_test_matrix.html | 12 +- develop/proc/dbcsr_tas_test_mm.html | 18 +- develop/proc/dbcsr_tas_write_dist.html | 6 +- develop/proc/dbcsr_tas_write_matrix_info.html | 6 +- develop/proc/dbcsr_tas_write_split_info.html | 6 +- develop/proc/dbcsr_test_scale_by_vectors.html | 10 +- develop/proc/dbcsr_to_csr_filter.html | 67 +- develop/proc/dbcsr_to_csr_filter~2.html | 67 +- develop/proc/dbcsr_to_dense_local.html | 2 +- develop/proc/dbcsr_trace_c.html | 2 +- develop/proc/dbcsr_trace_c~2.html | 4 +- develop/proc/dbcsr_trace_d.html | 2 +- develop/proc/dbcsr_trace_d~2.html | 4 +- develop/proc/dbcsr_trace_s.html | 2 +- develop/proc/dbcsr_trace_sd.html | 4 +- develop/proc/dbcsr_trace_s~2.html | 4 +- develop/proc/dbcsr_trace_z.html | 2 +- develop/proc/dbcsr_trace_z~2.html | 4 +- develop/proc/dbcsr_transposed.html | 56 +- develop/proc/dbcsr_transposed~2.html | 56 +- develop/proc/dbcsr_triu.html | 2 +- develop/proc/dbcsr_triu~2.html | 2 +- develop/proc/dbcsr_type_1d_to_2d.html | 2 +- develop/proc/dbcsr_type_2d_to_1d.html | 2 +- develop/proc/dbcsr_type_is_2d.html | 2 +- develop/proc/dbcsr_unpack_meta.html | 4 +- .../dbcsr_update_contiguous_blocks_c.html | 12 +- .../dbcsr_update_contiguous_blocks_d.html | 12 +- .../dbcsr_update_contiguous_blocks_s.html | 12 +- .../dbcsr_update_contiguous_blocks_z.html | 12 +- develop/proc/dbcsr_use_mutable.html | 2 +- develop/proc/dbcsr_valid_index.html | 2 +- develop/proc/dbcsr_valid_index~2.html | 2 +- develop/proc/dbcsr_verify_matrix.html | 6 +- develop/proc/dbcsr_verify_matrix~2.html | 4 +- develop/proc/dbcsr_warn.html | 2 +- develop/proc/dbcsr_warn_handler.html | 2 +- develop/proc/dbcsr_win_create_any.html | 6 +- develop/proc/dbcsr_work_create.html | 6 +- develop/proc/dbcsr_work_create~2.html | 6 +- develop/proc/dbcsr_work_destroy_all.html | 2 +- develop/proc/dbcsr_zero.html | 21 +- develop/proc/delete_preconnection.html | 2 +- develop/proc/destroy_array_list.html | 2 +- develop/proc/destroy_block.html | 2 +- develop/proc/destroy_block_c_dp.html | 2 +- develop/proc/destroy_block_c_sp.html | 2 +- develop/proc/destroy_block_r_dp.html | 2 +- develop/proc/destroy_block_r_sp.html | 2 +- develop/proc/destroy_nd_to_2d_mapping.html | 2 +- develop/proc/dev2host_c4_1d.html | 4 +- develop/proc/dev2host_c8_1d.html | 4 +- develop/proc/dev2host_i4_1d.html | 4 +- develop/proc/dev2host_i8_1d.html | 4 +- develop/proc/dev2host_r4_1d.html | 4 +- develop/proc/dev2host_r8_1d.html | 4 +- develop/proc/dict_i4tuple_callstat_get.html | 4 +- .../proc/dict_i4tuple_callstat_haskey.html | 4 +- develop/proc/dict_i4tuple_callstat_init.html | 2 +- develop/proc/dict_i4tuple_callstat_set.html | 4 +- develop/proc/dict_i4tuple_callstat_size.html | 2 +- develop/proc/dict_str_i4_get.html | 4 +- develop/proc/dict_str_i4_haskey.html | 4 +- develop/proc/dict_str_i4_init.html | 2 +- develop/proc/dict_str_i4_set.html | 4 +- develop/proc/dict_str_i4_size.html | 2 +- develop/proc/dims_tensor.html | 2 +- develop/proc/dist_compatible.html | 2 +- ...se_tensor_to_repl_dense_2d_array_r_dp.html | 4 +- ...se_tensor_to_repl_dense_3d_array_r_dp.html | 4 +- ...se_tensor_to_repl_dense_4d_array_r_dp.html | 4 +- develop/proc/distribute_lpt_random.html | 2 +- develop/proc/ensure_array_size_c.html | 14 +- develop/proc/ensure_array_size_d.html | 14 +- develop/proc/ensure_array_size_i.html | 14 +- develop/proc/ensure_array_size_l.html | 14 +- develop/proc/ensure_array_size_s.html | 14 +- develop/proc/ensure_array_size_z.html | 14 +- develop/proc/ensure_product_wm_cleared.html | 2 +- develop/proc/enumerate_blk_sizes.html | 2 +- develop/proc/enumerate_block_elements.html | 4 +- develop/proc/f_dbcsr_timeset.html | 4 +- develop/proc/f_dbcsr_timestop.html | 2 +- develop/proc/factorial.html | 2 +- develop/proc/file_exists.html | 2 +- develop/proc/fill_hash_tables.html | 6 +- develop/proc/find_all_local_elements.html | 6 +- develop/proc/find_block_of_element.html | 6 +- develop/proc/find_cut_col.html | 6 +- develop/proc/find_cut_row.html | 6 +- develop/proc/find_first_valid_block.html | 4 +- develop/proc/find_proper_position.html | 10 +- develop/proc/find_proper_position_caller.html | 2 +- develop/proc/find_proper_row.html | 6 +- develop/proc/flush_stacks.html | 6 +- develop/proc/frame_block_limit.html | 2 +- develop/proc/gcd.html | 4 +- develop/proc/get_2d_indices_pgrid.html | 2 +- develop/proc/get_2d_indices_tensor.html | 2 +- develop/proc/get_array_elements.html | 4 +- develop/proc/get_arrays.html | 2 +- develop/proc/get_data_2d_c.html | 8 +- develop/proc/get_data_2d_d.html | 8 +- develop/proc/get_data_2d_s.html | 8 +- develop/proc/get_data_2d_z.html | 8 +- develop/proc/get_data_c.html | 8 +- develop/proc/get_data_d.html | 8 +- develop/proc/get_data_s.html | 8 +- develop/proc/get_data_z.html | 8 +- develop/proc/get_ith_array.html | 6 +- develop/proc/get_left_child.html | 2 +- develop/proc/get_mp_perf_env.html | 2 +- develop/proc/get_nd_indices_pgrid.html | 2 +- develop/proc/get_nd_indices_tensor.html | 2 +- develop/proc/get_opt_nsplit.html | 4 +- develop/proc/get_parent.html | 2 +- develop/proc/get_rank3d.html | 6 +- develop/proc/get_stored_canonical.html | 10 +- develop/proc/get_timer_env.html | 2 +- develop/proc/get_unit_number.html | 2 +- develop/proc/get_value.html | 4 +- develop/proc/group_to_mrowcol.html | 2 +- develop/proc/group_to_world_proc_map.html | 4 +- develop/proc/has_mp_perf_env.html | 2 +- develop/proc/hash_i4tuple.html | 2 +- develop/proc/hash_str.html | 2 +- develop/proc/hash_table_add.html | 4 +- develop/proc/hash_table_get.html | 4 +- develop/proc/host2dev_c4_1d.html | 4 +- develop/proc/host2dev_c4_2d.html | 4 +- develop/proc/host2dev_c8_1d.html | 4 +- develop/proc/host2dev_c8_2d.html | 4 +- develop/proc/host2dev_i4_1d.html | 4 +- develop/proc/host2dev_i4_2d.html | 4 +- develop/proc/host2dev_i8_1d.html | 4 +- develop/proc/host2dev_i8_2d.html | 4 +- develop/proc/host2dev_r4_1d.html | 4 +- develop/proc/host2dev_r4_2d.html | 4 +- develop/proc/host2dev_r8_1d.html | 4 +- develop/proc/host2dev_r8_2d.html | 4 +- develop/proc/hybrid_alltoall_any.html | 12 +- develop/proc/hybrid_alltoall_c1.html | 12 +- develop/proc/hybrid_alltoall_d1.html | 12 +- develop/proc/hybrid_alltoall_i1.html | 12 +- develop/proc/hybrid_alltoall_s1.html | 12 +- develop/proc/hybrid_alltoall_z1.html | 12 +- develop/proc/i8_bsearch.html | 6 +- develop/proc/image_calculator.html | 14 +- develop/proc/integer_to_string.html | 2 +- develop/proc/internal_data_allocate.html | 4 +- develop/proc/internal_data_deallocate.html | 2 +- develop/proc/internal_mm_c_nn.html | 6 +- develop/proc/internal_mm_d_nn.html | 6 +- develop/proc/internal_mm_s_nn.html | 6 +- develop/proc/internal_mm_z_nn.html | 6 +- develop/proc/internal_process_mm_stack_c.html | 8 +- develop/proc/internal_process_mm_stack_d.html | 8 +- develop/proc/internal_process_mm_stack_s.html | 8 +- develop/proc/internal_process_mm_stack_z.html | 8 +- develop/proc/iswap.html | 4 +- develop/proc/iterator_advance.html | 2 +- develop/proc/iterator_next_1d_block_c.html | 20 +- develop/proc/iterator_next_1d_block_d.html | 20 +- develop/proc/iterator_next_1d_block_s.html | 20 +- develop/proc/iterator_next_1d_block_z.html | 20 +- develop/proc/iterator_next_2d_block_c.html | 20 +- develop/proc/iterator_next_2d_block_d.html | 20 +- develop/proc/iterator_next_2d_block_s.html | 20 +- develop/proc/iterator_next_2d_block_z.html | 20 +- develop/proc/iterator_next_area_block.html | 20 +- develop/proc/iterator_next_block_index.html | 20 +- develop/proc/joaat_hash.html | 2 +- develop/proc/lcm.html | 4 +- develop/proc/list_callstackentry_clear.html | 2 +- develop/proc/list_callstackentry_del.html | 4 +- develop/proc/list_callstackentry_destroy.html | 2 +- develop/proc/list_callstackentry_get.html | 6 +- develop/proc/list_callstackentry_init.html | 4 +- develop/proc/list_callstackentry_insert.html | 6 +- develop/proc/list_callstackentry_isready.html | 4 +- develop/proc/list_callstackentry_peek.html | 4 +- develop/proc/list_callstackentry_pop.html | 4 +- develop/proc/list_callstackentry_push.html | 4 +- develop/proc/list_callstackentry_set.html | 6 +- develop/proc/list_callstackentry_size.html | 4 +- develop/proc/list_routinereport_clear.html | 2 +- develop/proc/list_routinereport_del.html | 4 +- develop/proc/list_routinereport_destroy.html | 2 +- develop/proc/list_routinereport_get.html | 4 +- develop/proc/list_routinereport_init.html | 4 +- develop/proc/list_routinereport_insert.html | 4 +- develop/proc/list_routinereport_isready.html | 2 +- develop/proc/list_routinereport_peek.html | 2 +- develop/proc/list_routinereport_pop.html | 2 +- develop/proc/list_routinereport_push.html | 2 +- develop/proc/list_routinereport_set.html | 4 +- develop/proc/list_routinereport_size.html | 4 +- develop/proc/list_routinestat_clear.html | 2 +- develop/proc/list_routinestat_del.html | 4 +- develop/proc/list_routinestat_destroy.html | 2 +- develop/proc/list_routinestat_get.html | 6 +- develop/proc/list_routinestat_init.html | 4 +- develop/proc/list_routinestat_insert.html | 6 +- develop/proc/list_routinestat_isready.html | 4 +- develop/proc/list_routinestat_peek.html | 4 +- develop/proc/list_routinestat_pop.html | 4 +- develop/proc/list_routinestat_push.html | 4 +- develop/proc/list_routinestat_set.html | 6 +- develop/proc/list_routinestat_size.html | 4 +- develop/proc/list_timerenv_clear.html | 2 +- develop/proc/list_timerenv_del.html | 4 +- develop/proc/list_timerenv_destroy.html | 2 +- develop/proc/list_timerenv_get.html | 6 +- develop/proc/list_timerenv_init.html | 4 +- develop/proc/list_timerenv_insert.html | 6 +- develop/proc/list_timerenv_isready.html | 4 +- develop/proc/list_timerenv_peek.html | 4 +- develop/proc/list_timerenv_pop.html | 4 +- develop/proc/list_timerenv_push.html | 4 +- develop/proc/list_timerenv_set.html | 6 +- develop/proc/list_timerenv_size.html | 4 +- develop/proc/local_filter.html | 8 +- develop/proc/local_filter_sp.html | 8 +- develop/proc/m_getarg.html | 2 +- develop/proc/m_mov.html | 2 +- develop/proc/make_buffers.html | 2 +- develop/proc/make_conformant_scalar_c.html | 4 +- develop/proc/make_conformant_scalar_d.html | 4 +- develop/proc/make_conformant_scalar_s.html | 4 +- develop/proc/make_conformant_scalar_z.html | 4 +- develop/proc/make_coordinate_tuple.html | 2 +- develop/proc/make_dense_data.html | 8 +- develop/proc/make_dense_index.html | 12 +- develop/proc/make_index_canonical.html | 4 +- develop/proc/make_index_triangular.html | 4 +- develop/proc/make_layers_3d_ab.html | 4 +- develop/proc/make_layers_3d_c_reduction.html | 2 +- develop/proc/make_m2s.html | 16 +- develop/proc/make_meta.html | 4 +- develop/proc/make_random_dbcsr_matrix.html | 14 +- develop/proc/make_threads.html | 2 +- develop/proc/make_undense_data.html | 8 +- develop/proc/make_undense_index.html | 10 +- develop/proc/make_vdistribution.html | 4 +- develop/proc/map_all_local_elements.html | 4 +- develop/proc/map_most_common.html | 2 +- develop/proc/matching_prime.html | 4 +- develop/proc/mem_alloc_c.html | 4 +- develop/proc/mem_alloc_c_2d.html | 4 +- develop/proc/mem_alloc_d.html | 4 +- develop/proc/mem_alloc_d_2d.html | 4 +- develop/proc/mem_alloc_i.html | 4 +- develop/proc/mem_alloc_i_2d.html | 4 +- develop/proc/mem_alloc_l.html | 4 +- develop/proc/mem_alloc_l_2d.html | 4 +- develop/proc/mem_alloc_s.html | 4 +- develop/proc/mem_alloc_s_2d.html | 4 +- develop/proc/mem_alloc_z.html | 4 +- develop/proc/mem_alloc_z_2d.html | 4 +- develop/proc/mem_copy_c.html | 10 +- develop/proc/mem_copy_d.html | 10 +- develop/proc/mem_copy_i.html | 10 +- develop/proc/mem_copy_l.html | 10 +- develop/proc/mem_copy_s.html | 10 +- develop/proc/mem_copy_z.html | 10 +- develop/proc/mem_dealloc_c.html | 2 +- develop/proc/mem_dealloc_c_2d.html | 2 +- develop/proc/mem_dealloc_d.html | 2 +- develop/proc/mem_dealloc_d_2d.html | 2 +- develop/proc/mem_dealloc_i.html | 2 +- develop/proc/mem_dealloc_i_2d.html | 2 +- develop/proc/mem_dealloc_l.html | 2 +- develop/proc/mem_dealloc_l_2d.html | 2 +- develop/proc/mem_dealloc_s.html | 2 +- develop/proc/mem_dealloc_s_2d.html | 2 +- develop/proc/mem_dealloc_z.html | 2 +- develop/proc/mem_dealloc_z_2d.html | 2 +- develop/proc/mem_zero_c.html | 8 +- develop/proc/mem_zero_d.html | 8 +- develop/proc/mem_zero_i.html | 8 +- develop/proc/mem_zero_l.html | 8 +- develop/proc/mem_zero_s.html | 8 +- develop/proc/mem_zero_z.html | 8 +- develop/proc/mempool_collect_garbage.html | 2 +- develop/proc/merge_index.html | 4 +- develop/proc/merge_index_arrays.html | 6 +- develop/proc/meta_from_dist.html | 8 +- develop/proc/mostly_non_transposed.html | 2 +- develop/proc/mp_allgather_c.html | 6 +- develop/proc/mp_allgather_c12.html | 6 +- develop/proc/mp_allgather_c2.html | 6 +- develop/proc/mp_allgather_c22.html | 6 +- develop/proc/mp_allgather_c23.html | 6 +- develop/proc/mp_allgather_c34.html | 6 +- develop/proc/mp_allgather_d.html | 6 +- develop/proc/mp_allgather_d12.html | 6 +- develop/proc/mp_allgather_d2.html | 6 +- develop/proc/mp_allgather_d22.html | 6 +- develop/proc/mp_allgather_d23.html | 6 +- develop/proc/mp_allgather_d34.html | 6 +- develop/proc/mp_allgather_i.html | 6 +- develop/proc/mp_allgather_i12.html | 6 +- develop/proc/mp_allgather_i2.html | 6 +- develop/proc/mp_allgather_i22.html | 6 +- develop/proc/mp_allgather_i23.html | 6 +- develop/proc/mp_allgather_i34.html | 6 +- develop/proc/mp_allgather_l.html | 6 +- develop/proc/mp_allgather_l12.html | 6 +- develop/proc/mp_allgather_l2.html | 6 +- develop/proc/mp_allgather_l22.html | 6 +- develop/proc/mp_allgather_l23.html | 6 +- develop/proc/mp_allgather_l34.html | 6 +- develop/proc/mp_allgather_r.html | 6 +- develop/proc/mp_allgather_r12.html | 6 +- develop/proc/mp_allgather_r2.html | 6 +- develop/proc/mp_allgather_r22.html | 6 +- develop/proc/mp_allgather_r23.html | 6 +- develop/proc/mp_allgather_r34.html | 6 +- develop/proc/mp_allgather_z.html | 6 +- develop/proc/mp_allgather_z12.html | 6 +- develop/proc/mp_allgather_z2.html | 6 +- develop/proc/mp_allgather_z22.html | 6 +- develop/proc/mp_allgather_z23.html | 6 +- develop/proc/mp_allgather_z34.html | 6 +- develop/proc/mp_allgatherv_cv.html | 10 +- develop/proc/mp_allgatherv_dv.html | 10 +- develop/proc/mp_allgatherv_iv.html | 10 +- develop/proc/mp_allgatherv_lv.html | 10 +- develop/proc/mp_allgatherv_rv.html | 10 +- develop/proc/mp_allgatherv_zv.html | 10 +- develop/proc/mp_allocate_c.html | 6 +- develop/proc/mp_allocate_d.html | 6 +- develop/proc/mp_allocate_i.html | 6 +- develop/proc/mp_allocate_l.html | 6 +- develop/proc/mp_allocate_r.html | 6 +- develop/proc/mp_allocate_z.html | 6 +- develop/proc/mp_alltoall_c.html | 6 +- develop/proc/mp_alltoall_c11v.html | 14 +- develop/proc/mp_alltoall_c22.html | 6 +- develop/proc/mp_alltoall_c44.html | 6 +- develop/proc/mp_alltoall_d.html | 6 +- develop/proc/mp_alltoall_d11v.html | 14 +- develop/proc/mp_alltoall_d22.html | 6 +- develop/proc/mp_alltoall_d44.html | 6 +- develop/proc/mp_alltoall_i.html | 6 +- develop/proc/mp_alltoall_i11v.html | 14 +- develop/proc/mp_alltoall_i22.html | 6 +- develop/proc/mp_alltoall_i44.html | 6 +- develop/proc/mp_alltoall_l.html | 6 +- develop/proc/mp_alltoall_l11v.html | 14 +- develop/proc/mp_alltoall_l22.html | 6 +- develop/proc/mp_alltoall_l44.html | 6 +- develop/proc/mp_alltoall_r.html | 6 +- develop/proc/mp_alltoall_r11v.html | 14 +- develop/proc/mp_alltoall_r22.html | 6 +- develop/proc/mp_alltoall_r44.html | 6 +- develop/proc/mp_alltoall_z.html | 6 +- develop/proc/mp_alltoall_z11v.html | 14 +- develop/proc/mp_alltoall_z22.html | 6 +- develop/proc/mp_alltoall_z44.html | 6 +- develop/proc/mp_bcast_am.html | 6 +- develop/proc/mp_bcast_av.html | 6 +- develop/proc/mp_bcast_b.html | 6 +- develop/proc/mp_bcast_bv.html | 6 +- develop/proc/mp_bcast_c.html | 6 +- develop/proc/mp_bcast_c3.html | 6 +- develop/proc/mp_bcast_cm.html | 6 +- develop/proc/mp_bcast_cv.html | 6 +- develop/proc/mp_bcast_d.html | 6 +- develop/proc/mp_bcast_d3.html | 6 +- develop/proc/mp_bcast_dm.html | 6 +- develop/proc/mp_bcast_dv.html | 6 +- develop/proc/mp_bcast_i.html | 6 +- develop/proc/mp_bcast_i3.html | 6 +- develop/proc/mp_bcast_im.html | 6 +- develop/proc/mp_bcast_iv.html | 6 +- develop/proc/mp_bcast_l.html | 6 +- develop/proc/mp_bcast_l3.html | 6 +- develop/proc/mp_bcast_lm.html | 6 +- develop/proc/mp_bcast_lv.html | 6 +- develop/proc/mp_bcast_r.html | 6 +- develop/proc/mp_bcast_r3.html | 6 +- develop/proc/mp_bcast_rm.html | 6 +- develop/proc/mp_bcast_rv.html | 6 +- develop/proc/mp_bcast_z.html | 6 +- develop/proc/mp_bcast_z3.html | 6 +- develop/proc/mp_bcast_zm.html | 6 +- develop/proc/mp_bcast_zv.html | 6 +- develop/proc/mp_cart_coords.html | 2 +- develop/proc/mp_cart_create.html | 2 +- develop/proc/mp_cart_rank.html | 4 +- develop/proc/mp_cart_sub.html | 2 +- develop/proc/mp_comm_compare.html | 2 +- develop/proc/mp_comm_free.html | 2 +- develop/proc/mp_comm_split.html | 2 +- develop/proc/mp_comm_split_direct.html | 4 +- develop/proc/mp_deallocate_c.html | 4 +- develop/proc/mp_deallocate_d.html | 4 +- develop/proc/mp_deallocate_i.html | 4 +- develop/proc/mp_deallocate_l.html | 4 +- develop/proc/mp_deallocate_r.html | 4 +- develop/proc/mp_deallocate_z.html | 4 +- develop/proc/mp_environ_c2.html | 4 +- develop/proc/mp_environ_pgrid.html | 4 +- develop/proc/mp_file_delete.html | 4 +- develop/proc/mp_file_get_position.html | 2 +- develop/proc/mp_file_open.html | 4 +- develop/proc/mp_file_read_at_all_c.html | 4 +- develop/proc/mp_file_read_at_all_ch.html | 4 +- develop/proc/mp_file_read_at_all_cv.html | 4 +- develop/proc/mp_file_read_at_all_d.html | 4 +- develop/proc/mp_file_read_at_all_dv.html | 4 +- develop/proc/mp_file_read_at_all_i.html | 4 +- develop/proc/mp_file_read_at_all_iv.html | 4 +- develop/proc/mp_file_read_at_all_l.html | 4 +- develop/proc/mp_file_read_at_all_lv.html | 4 +- develop/proc/mp_file_read_at_all_r.html | 4 +- develop/proc/mp_file_read_at_all_rv.html | 4 +- develop/proc/mp_file_read_at_all_z.html | 4 +- develop/proc/mp_file_read_at_all_zv.html | 4 +- develop/proc/mp_file_write_at_all_c.html | 4 +- develop/proc/mp_file_write_at_all_ch.html | 4 +- develop/proc/mp_file_write_at_all_cv.html | 4 +- develop/proc/mp_file_write_at_all_d.html | 4 +- develop/proc/mp_file_write_at_all_dv.html | 4 +- develop/proc/mp_file_write_at_all_i.html | 4 +- develop/proc/mp_file_write_at_all_iv.html | 4 +- develop/proc/mp_file_write_at_all_l.html | 4 +- develop/proc/mp_file_write_at_all_lv.html | 4 +- develop/proc/mp_file_write_at_all_r.html | 4 +- develop/proc/mp_file_write_at_all_rv.html | 4 +- develop/proc/mp_file_write_at_all_z.html | 4 +- develop/proc/mp_file_write_at_all_zv.html | 4 +- develop/proc/mp_file_write_at_c.html | 4 +- develop/proc/mp_file_write_at_ch.html | 4 +- develop/proc/mp_file_write_at_cv.html | 4 +- develop/proc/mp_file_write_at_d.html | 4 +- develop/proc/mp_file_write_at_dv.html | 4 +- develop/proc/mp_file_write_at_i.html | 4 +- develop/proc/mp_file_write_at_iv.html | 4 +- develop/proc/mp_file_write_at_l.html | 4 +- develop/proc/mp_file_write_at_lv.html | 4 +- develop/proc/mp_file_write_at_r.html | 4 +- develop/proc/mp_file_write_at_rv.html | 4 +- develop/proc/mp_file_write_at_z.html | 4 +- develop/proc/mp_file_write_at_zv.html | 4 +- develop/proc/mp_gather_c.html | 6 +- develop/proc/mp_gather_cm.html | 6 +- develop/proc/mp_gather_cv.html | 6 +- develop/proc/mp_gather_d.html | 6 +- develop/proc/mp_gather_dm.html | 6 +- develop/proc/mp_gather_dv.html | 6 +- develop/proc/mp_gather_i.html | 6 +- develop/proc/mp_gather_im.html | 6 +- develop/proc/mp_gather_iv.html | 6 +- develop/proc/mp_gather_l.html | 6 +- develop/proc/mp_gather_lm.html | 6 +- develop/proc/mp_gather_lv.html | 6 +- develop/proc/mp_gather_r.html | 6 +- develop/proc/mp_gather_rm.html | 6 +- develop/proc/mp_gather_rv.html | 6 +- develop/proc/mp_gather_z.html | 6 +- develop/proc/mp_gather_zm.html | 6 +- develop/proc/mp_gather_zv.html | 6 +- develop/proc/mp_gatherv_cv.html | 6 +- develop/proc/mp_gatherv_dv.html | 6 +- develop/proc/mp_gatherv_iv.html | 6 +- develop/proc/mp_gatherv_lv.html | 6 +- develop/proc/mp_gatherv_rv.html | 6 +- develop/proc/mp_gatherv_zv.html | 6 +- develop/proc/mp_get_comm_handle.html | 2 +- develop/proc/mp_get_info_handle.html | 2 +- develop/proc/mp_get_library_version.html | 2 +- develop/proc/mp_get_processor_name.html | 2 +- develop/proc/mp_get_request_handle.html | 2 +- develop/proc/mp_get_win_handle.html | 2 +- develop/proc/mp_iallgather_c.html | 8 +- develop/proc/mp_iallgather_c11.html | 8 +- develop/proc/mp_iallgather_c13.html | 8 +- develop/proc/mp_iallgather_c22.html | 8 +- develop/proc/mp_iallgather_c24.html | 8 +- develop/proc/mp_iallgather_c33.html | 8 +- develop/proc/mp_iallgather_d.html | 8 +- develop/proc/mp_iallgather_d11.html | 8 +- develop/proc/mp_iallgather_d13.html | 8 +- develop/proc/mp_iallgather_d22.html | 8 +- develop/proc/mp_iallgather_d24.html | 8 +- develop/proc/mp_iallgather_d33.html | 8 +- develop/proc/mp_iallgather_i.html | 8 +- develop/proc/mp_iallgather_i11.html | 8 +- develop/proc/mp_iallgather_i13.html | 8 +- develop/proc/mp_iallgather_i22.html | 8 +- develop/proc/mp_iallgather_i24.html | 8 +- develop/proc/mp_iallgather_i33.html | 8 +- develop/proc/mp_iallgather_l.html | 8 +- develop/proc/mp_iallgather_l11.html | 8 +- develop/proc/mp_iallgather_l13.html | 8 +- develop/proc/mp_iallgather_l22.html | 8 +- develop/proc/mp_iallgather_l24.html | 8 +- develop/proc/mp_iallgather_l33.html | 8 +- develop/proc/mp_iallgather_r.html | 8 +- develop/proc/mp_iallgather_r11.html | 8 +- develop/proc/mp_iallgather_r13.html | 8 +- develop/proc/mp_iallgather_r22.html | 8 +- develop/proc/mp_iallgather_r24.html | 8 +- develop/proc/mp_iallgather_r33.html | 8 +- develop/proc/mp_iallgather_z.html | 8 +- develop/proc/mp_iallgather_z11.html | 8 +- develop/proc/mp_iallgather_z13.html | 8 +- develop/proc/mp_iallgather_z22.html | 8 +- develop/proc/mp_iallgather_z24.html | 8 +- develop/proc/mp_iallgather_z33.html | 8 +- develop/proc/mp_iallgatherv_cv.html | 12 +- develop/proc/mp_iallgatherv_cv2.html | 12 +- develop/proc/mp_iallgatherv_dv.html | 12 +- develop/proc/mp_iallgatherv_dv2.html | 12 +- develop/proc/mp_iallgatherv_iv.html | 12 +- develop/proc/mp_iallgatherv_iv2.html | 12 +- develop/proc/mp_iallgatherv_lv.html | 12 +- develop/proc/mp_iallgatherv_lv2.html | 12 +- develop/proc/mp_iallgatherv_rv.html | 12 +- develop/proc/mp_iallgatherv_rv2.html | 12 +- develop/proc/mp_iallgatherv_zv.html | 12 +- develop/proc/mp_iallgatherv_zv2.html | 12 +- develop/proc/mp_ibcast_c.html | 8 +- develop/proc/mp_ibcast_cv.html | 8 +- develop/proc/mp_ibcast_d.html | 8 +- develop/proc/mp_ibcast_dv.html | 8 +- develop/proc/mp_ibcast_i.html | 8 +- develop/proc/mp_ibcast_iv.html | 8 +- develop/proc/mp_ibcast_l.html | 8 +- develop/proc/mp_ibcast_lv.html | 8 +- develop/proc/mp_ibcast_r.html | 8 +- develop/proc/mp_ibcast_rv.html | 8 +- develop/proc/mp_ibcast_z.html | 8 +- develop/proc/mp_ibcast_zv.html | 8 +- develop/proc/mp_irecv_bv.html | 10 +- develop/proc/mp_irecv_cm2.html | 10 +- develop/proc/mp_irecv_custom.html | 10 +- develop/proc/mp_irecv_cv.html | 10 +- develop/proc/mp_irecv_dm2.html | 10 +- develop/proc/mp_irecv_dv.html | 10 +- develop/proc/mp_irecv_im2.html | 10 +- develop/proc/mp_irecv_iv.html | 10 +- develop/proc/mp_irecv_lm2.html | 10 +- develop/proc/mp_irecv_lv.html | 10 +- develop/proc/mp_irecv_rm2.html | 10 +- develop/proc/mp_irecv_rv.html | 10 +- develop/proc/mp_irecv_zm2.html | 10 +- develop/proc/mp_irecv_zv.html | 10 +- develop/proc/mp_iscatter_c.html | 8 +- develop/proc/mp_iscatter_cv2.html | 8 +- develop/proc/mp_iscatter_d.html | 8 +- develop/proc/mp_iscatter_dv2.html | 8 +- develop/proc/mp_iscatter_i.html | 8 +- develop/proc/mp_iscatter_iv2.html | 8 +- develop/proc/mp_iscatter_l.html | 8 +- develop/proc/mp_iscatter_lv2.html | 8 +- develop/proc/mp_iscatter_r.html | 8 +- develop/proc/mp_iscatter_rv2.html | 8 +- develop/proc/mp_iscatter_z.html | 8 +- develop/proc/mp_iscatter_zv2.html | 8 +- develop/proc/mp_iscatterv_cv.html | 12 +- develop/proc/mp_iscatterv_dv.html | 12 +- develop/proc/mp_iscatterv_iv.html | 12 +- develop/proc/mp_iscatterv_lv.html | 12 +- develop/proc/mp_iscatterv_rv.html | 12 +- develop/proc/mp_iscatterv_zv.html | 12 +- develop/proc/mp_isend_bv.html | 10 +- develop/proc/mp_isend_cm2.html | 10 +- develop/proc/mp_isend_custom.html | 10 +- develop/proc/mp_isend_cv.html | 10 +- develop/proc/mp_isend_dm2.html | 10 +- develop/proc/mp_isend_dv.html | 10 +- develop/proc/mp_isend_im2.html | 10 +- develop/proc/mp_isend_iv.html | 10 +- develop/proc/mp_isend_lm2.html | 10 +- develop/proc/mp_isend_lv.html | 10 +- develop/proc/mp_isend_rm2.html | 10 +- develop/proc/mp_isend_rv.html | 10 +- develop/proc/mp_isend_zm2.html | 10 +- develop/proc/mp_isend_zv.html | 10 +- develop/proc/mp_isendrecv_c.html | 16 +- develop/proc/mp_isendrecv_cv.html | 16 +- develop/proc/mp_isendrecv_d.html | 16 +- develop/proc/mp_isendrecv_dv.html | 16 +- develop/proc/mp_isendrecv_i.html | 16 +- develop/proc/mp_isendrecv_iv.html | 16 +- develop/proc/mp_isendrecv_l.html | 16 +- develop/proc/mp_isendrecv_lv.html | 16 +- develop/proc/mp_isendrecv_r.html | 16 +- develop/proc/mp_isendrecv_rv.html | 16 +- develop/proc/mp_isendrecv_z.html | 16 +- develop/proc/mp_isendrecv_zv.html | 16 +- develop/proc/mp_isum_bv.html | 6 +- develop/proc/mp_isum_cv.html | 6 +- develop/proc/mp_isum_dv.html | 6 +- develop/proc/mp_isum_iv.html | 6 +- develop/proc/mp_isum_lv.html | 6 +- develop/proc/mp_isum_rv.html | 6 +- develop/proc/mp_isum_zv.html | 6 +- develop/proc/mp_isync.html | 4 +- develop/proc/mp_max_c.html | 4 +- develop/proc/mp_max_cv.html | 4 +- develop/proc/mp_max_d.html | 4 +- develop/proc/mp_max_dv.html | 4 +- develop/proc/mp_max_i.html | 4 +- develop/proc/mp_max_iv.html | 4 +- develop/proc/mp_max_l.html | 4 +- develop/proc/mp_max_lv.html | 4 +- develop/proc/mp_max_r.html | 4 +- develop/proc/mp_max_rv.html | 4 +- develop/proc/mp_max_z.html | 4 +- develop/proc/mp_max_zv.html | 4 +- develop/proc/mp_maxloc_dv.html | 4 +- develop/proc/mp_min_c.html | 4 +- develop/proc/mp_min_cv.html | 4 +- develop/proc/mp_min_d.html | 4 +- develop/proc/mp_min_dv.html | 4 +- develop/proc/mp_min_i.html | 4 +- develop/proc/mp_min_iv.html | 4 +- develop/proc/mp_min_l.html | 4 +- develop/proc/mp_min_lv.html | 4 +- develop/proc/mp_min_r.html | 4 +- develop/proc/mp_min_rv.html | 4 +- develop/proc/mp_min_z.html | 4 +- develop/proc/mp_min_zv.html | 4 +- develop/proc/mp_minloc_dv.html | 4 +- develop/proc/mp_perf_env_describe.html | 2 +- develop/proc/mp_probe.html | 6 +- develop/proc/mp_prod_c.html | 4 +- develop/proc/mp_prod_d.html | 4 +- develop/proc/mp_prod_i.html | 4 +- develop/proc/mp_prod_l.html | 4 +- develop/proc/mp_prod_r.html | 4 +- develop/proc/mp_prod_z.html | 4 +- develop/proc/mp_recv_c.html | 8 +- develop/proc/mp_recv_cv.html | 8 +- develop/proc/mp_recv_d.html | 8 +- develop/proc/mp_recv_dv.html | 8 +- develop/proc/mp_recv_i.html | 8 +- develop/proc/mp_recv_iv.html | 8 +- develop/proc/mp_recv_l.html | 8 +- develop/proc/mp_recv_lv.html | 8 +- develop/proc/mp_recv_r.html | 8 +- develop/proc/mp_recv_rv.html | 8 +- develop/proc/mp_recv_z.html | 8 +- develop/proc/mp_recv_zv.html | 8 +- develop/proc/mp_reordering.html | 2 +- develop/proc/mp_rget_cv.html | 26 +- develop/proc/mp_rget_dv.html | 26 +- develop/proc/mp_rget_iv.html | 26 +- develop/proc/mp_rget_lv.html | 26 +- develop/proc/mp_rget_rv.html | 26 +- develop/proc/mp_rget_zv.html | 26 +- develop/proc/mp_send_c.html | 8 +- develop/proc/mp_send_cv.html | 8 +- develop/proc/mp_send_d.html | 8 +- develop/proc/mp_send_dv.html | 8 +- develop/proc/mp_send_i.html | 8 +- develop/proc/mp_send_iv.html | 8 +- develop/proc/mp_send_l.html | 8 +- develop/proc/mp_send_lv.html | 8 +- develop/proc/mp_send_r.html | 8 +- develop/proc/mp_send_rv.html | 8 +- develop/proc/mp_send_z.html | 8 +- develop/proc/mp_send_zv.html | 8 +- develop/proc/mp_sendrecv_cv.html | 10 +- develop/proc/mp_sendrecv_dv.html | 10 +- develop/proc/mp_sendrecv_iv.html | 10 +- develop/proc/mp_sendrecv_lv.html | 10 +- develop/proc/mp_sendrecv_rv.html | 10 +- develop/proc/mp_sendrecv_zv.html | 10 +- develop/proc/mp_set_comm_handle.html | 4 +- develop/proc/mp_set_file_handle.html | 2 +- develop/proc/mp_set_info_handle.html | 4 +- develop/proc/mp_set_request_handle.html | 4 +- develop/proc/mp_set_win_handle.html | 4 +- develop/proc/mp_stop.html | 2 +- develop/proc/mp_sum_b.html | 4 +- develop/proc/mp_sum_bv.html | 4 +- develop/proc/mp_sum_c.html | 4 +- develop/proc/mp_sum_cm.html | 4 +- develop/proc/mp_sum_cm3.html | 4 +- develop/proc/mp_sum_cm4.html | 4 +- develop/proc/mp_sum_cv.html | 4 +- develop/proc/mp_sum_d.html | 4 +- develop/proc/mp_sum_dm.html | 4 +- develop/proc/mp_sum_dm3.html | 4 +- develop/proc/mp_sum_dm4.html | 4 +- develop/proc/mp_sum_dv.html | 4 +- develop/proc/mp_sum_i.html | 4 +- develop/proc/mp_sum_im.html | 4 +- develop/proc/mp_sum_im3.html | 4 +- develop/proc/mp_sum_im4.html | 4 +- develop/proc/mp_sum_iv.html | 4 +- develop/proc/mp_sum_l.html | 4 +- develop/proc/mp_sum_lm.html | 4 +- develop/proc/mp_sum_lm3.html | 4 +- develop/proc/mp_sum_lm4.html | 4 +- develop/proc/mp_sum_lv.html | 4 +- develop/proc/mp_sum_partial_cm.html | 6 +- develop/proc/mp_sum_partial_dm.html | 6 +- develop/proc/mp_sum_partial_im.html | 6 +- develop/proc/mp_sum_partial_lm.html | 6 +- develop/proc/mp_sum_partial_rm.html | 6 +- develop/proc/mp_sum_partial_zm.html | 6 +- develop/proc/mp_sum_r.html | 4 +- develop/proc/mp_sum_rm.html | 4 +- develop/proc/mp_sum_rm3.html | 4 +- develop/proc/mp_sum_rm4.html | 4 +- develop/proc/mp_sum_root_cm.html | 6 +- develop/proc/mp_sum_root_cv.html | 6 +- develop/proc/mp_sum_root_dm.html | 6 +- develop/proc/mp_sum_root_dv.html | 6 +- develop/proc/mp_sum_root_im.html | 6 +- develop/proc/mp_sum_root_iv.html | 6 +- develop/proc/mp_sum_root_lm.html | 6 +- develop/proc/mp_sum_root_lv.html | 6 +- develop/proc/mp_sum_root_rm.html | 6 +- develop/proc/mp_sum_root_rv.html | 6 +- develop/proc/mp_sum_root_zm.html | 6 +- develop/proc/mp_sum_root_zv.html | 6 +- develop/proc/mp_sum_rv.html | 4 +- develop/proc/mp_sum_z.html | 4 +- develop/proc/mp_sum_zm.html | 4 +- develop/proc/mp_sum_zm3.html | 4 +- develop/proc/mp_sum_zm4.html | 4 +- develop/proc/mp_sum_zv.html | 4 +- develop/proc/mp_sync.html | 2 +- develop/proc/mp_test_1.html | 2 +- develop/proc/mp_type_indexed_make_c.html | 2 +- develop/proc/mp_type_indexed_make_d.html | 2 +- develop/proc/mp_type_indexed_make_i.html | 2 +- develop/proc/mp_type_indexed_make_l.html | 2 +- develop/proc/mp_type_indexed_make_r.html | 2 +- develop/proc/mp_type_indexed_make_z.html | 2 +- develop/proc/mp_type_make_c.html | 2 +- develop/proc/mp_type_make_d.html | 2 +- develop/proc/mp_type_make_i.html | 2 +- develop/proc/mp_type_make_l.html | 2 +- develop/proc/mp_type_make_r.html | 2 +- develop/proc/mp_type_make_z.html | 2 +- develop/proc/mp_wait.html | 2 +- develop/proc/mp_win_create_cv.html | 6 +- develop/proc/mp_win_create_dv.html | 6 +- develop/proc/mp_win_create_iv.html | 6 +- develop/proc/mp_win_create_lv.html | 6 +- develop/proc/mp_win_create_rv.html | 6 +- develop/proc/mp_win_create_zv.html | 6 +- develop/proc/mp_win_flush_all.html | 2 +- develop/proc/mp_win_free.html | 2 +- develop/proc/mp_win_lock_all.html | 2 +- develop/proc/mp_win_unlock_all.html | 2 +- develop/proc/mp_world_init.html | 2 +- develop/proc/multiply_3d.html | 14 +- develop/proc/multiply_cannon.html | 8 +- develop/proc/multiply_cannon_g2g.html | 8 +- develop/proc/multrec_filtering.html | 2 +- develop/proc/multrec_filtering_c.html | 18 +- develop/proc/multrec_filtering_d.html | 18 +- develop/proc/multrec_filtering_s.html | 18 +- develop/proc/multrec_filtering_z.html | 18 +- develop/proc/my_checker_tr.html | 6 +- develop/proc/ndims_iterator.html | 2 +- develop/proc/ndims_mapping.html | 2 +- develop/proc/ndims_mapping_column.html | 2 +- develop/proc/ndims_mapping_row.html | 2 +- develop/proc/new_dbcsr_tas_blk_size_t.html | 2 +- develop/proc/new_dbcsr_tas_dist_repl.html | 2 +- develop/proc/next_linebreak.html | 8 +- develop/proc/number_of_arrays.html | 2 +- develop/proc/open_file.html | 4 +- develop/proc/opt_pgrid.html | 6 +- develop/proc/ordered_search.html | 12 +- develop/proc/pd_blk_cs.html | 4 +- develop/proc/permute.html | 4 +- develop/proc/permute_index.html | 2 +- develop/proc/pointer_view_a.html | 4 +- develop/proc/pointer_view_c.html | 4 +- develop/proc/pointer_view_d.html | 4 +- develop/proc/pointer_view_i.html | 4 +- develop/proc/pointer_view_l.html | 4 +- develop/proc/pointer_view_s.html | 4 +- develop/proc/pointer_view_z.html | 4 +- develop/proc/prep_output_unit.html | 8 +- develop/proc/prep_output_unit~2.html | 8 +- develop/proc/prepare_buffers_c.html | 38 +- develop/proc/prepare_buffers_d.html | 38 +- develop/proc/prepare_buffers_s.html | 38 +- develop/proc/prepare_buffers_z.html | 38 +- develop/proc/print_abort_message.html | 4 +- develop/proc/print_kind_info.html | 2 +- develop/proc/print_message.html | 6 +- develop/proc/print_preconnection_list.html | 2 +- develop/proc/print_reports.html | 6 +- develop/proc/print_source.html | 2 +- develop/proc/print_stack.html | 2 +- develop/proc/printmat_c.html | 10 +- develop/proc/printmat_d.html | 10 +- develop/proc/printmat_s.html | 10 +- develop/proc/printmat_z.html | 10 +- develop/proc/product_matrix_size_guess.html | 14 +- develop/proc/quick_finalize.html | 2 +- develop/proc/random_blk_sizes.html | 4 +- develop/proc/random_dist.html | 8 +- develop/proc/random_dist~2.html | 4 +- develop/proc/random_dist~3.html | 12 +- develop/proc/rebin_distribution.html | 12 +- develop/proc/rebin_imaged_distribution.html | 12 +- develop/proc/rec_sort_index.html | 12 +- develop/proc/rec_split.html | 6 +- develop/proc/redistribute_and_sum.html | 6 +- develop/proc/reimage_distribution.html | 6 +- develop/proc/remap_layers3d.html | 2 +- develop/proc/remap_local2global.html | 8 +- develop/proc/reorder_arrays.html | 2 +- develop/proc/repl_dist.html | 4 +- develop/proc/repl_rowcols.html | 4 +- develop/proc/reshape_mm_compatible.html | 193 +- develop/proc/reshape_mm_compatible~2.html | 189 +- develop/proc/reshape_mm_small.html | 110 +- develop/proc/reshape_mm_small~2.html | 112 +- develop/proc/reshape_mm_template.html | 12 +- develop/proc/rma_transfer.html | 4 +- develop/proc/routine_name2id.html | 4 +- develop/proc/set_conf_par_int.html | 2 +- develop/proc/set_conf_par_logical.html | 2 +- develop/proc/set_conf_par_mm_driver.html | 2 +- develop/proc/set_conf_par_real.html | 2 +- develop/proc/set_data_area_area.html | 6 +- develop/proc/set_data_p_2d_c.html | 4 +- develop/proc/set_data_p_2d_d.html | 4 +- develop/proc/set_data_p_2d_s.html | 4 +- develop/proc/set_data_p_2d_z.html | 4 +- develop/proc/set_data_p_c.html | 4 +- develop/proc/set_data_p_d.html | 4 +- develop/proc/set_data_p_s.html | 4 +- develop/proc/set_data_p_z.html | 4 +- develop/proc/set_hashed_i4tuple_callstat.html | 4 +- develop/proc/set_hashed_str_i4.html | 4 +- develop/proc/set_larnv_seed.html | 10 +- develop/proc/setup_buffer_matrices.html | 2 +- develop/proc/setup_buffer_matrix.html | 6 +- develop/proc/setup_buffer_matrix_image.html | 4 +- develop/proc/setup_buffers.html | 6 +- develop/proc/setup_rec_index_2d.html | 2 +- develop/proc/setup_rec_index_images.html | 2 +- develop/proc/sgn.html | 4 +- develop/proc/sizes_2d.html | 4 +- develop/proc/sizes_of_arrays.html | 2 +- develop/proc/smm_process_mm_stack_c.html | 10 +- develop/proc/smm_process_mm_stack_d.html | 10 +- develop/proc/smm_process_mm_stack_s.html | 10 +- develop/proc/smm_process_mm_stack_z.html | 10 +- develop/proc/sparse_multrec.html | 16 +- develop/proc/split_factor_estimate.html | 6 +- develop/proc/split_pgrid_index.html | 2 +- develop/proc/split_tensor_index.html | 2 +- develop/proc/stack_binning.html | 2 +- develop/proc/stack_sort.html | 2 +- develop/proc/stats_add.html | 8 +- develop/proc/stats_collect_from_ranks.html | 2 +- develop/proc/stats_print_report.html | 2 +- develop/proc/str2int.html | 4 +- develop/proc/stream_array_force_size.html | 2 +- develop/proc/sum_of_arrays.html | 2 +- develop/proc/swap_i.html | 2 +- develop/proc/swap_i8.html | 2 +- develop/proc/symmetry_consistent.html | 4 +- develop/proc/tas_blk_size_t.html | 2 +- develop/proc/tas_dist_t.html | 2 +- develop/proc/tas_rowcols_t.html | 4 +- develop/proc/test_binary_io.html | 4 +- develop/proc/test_multiplies_multiproc.html | 26 +- develop/proc/test_scale_by_vector.html | 6 +- develop/proc/timer_env_create.html | 2 +- develop/proc/timer_env_release.html | 2 +- develop/proc/timer_env_retain.html | 2 +- develop/proc/timeset.html | 4 +- develop/proc/timeset_handler.html | 4 +- develop/proc/timestop.html | 2 +- develop/proc/timestop_handler.html | 2 +- develop/proc/timings_report_callgraph.html | 2 +- develop/proc/timings_report_print.html | 4 +- develop/proc/timings_setup_tracing.html | 8 +- develop/proc/transpose_index_local.html | 2 +- develop/proc/update_contraction_storage.html | 4 +- develop/proc/update_row_info.html | 2 +- develop/proc/uppercase.html | 2 +- develop/proc/v_to_p_i_dist.html | 2 +- develop/proc/v_to_p_i_dist_o.html | 2 +- develop/proc/win_setup.html | 2 +- develop/proc/within_limits.html | 4 +- develop/proc/world_to_group_proc_map.html | 4 +- develop/proc/write_1d_data_obj.html | 2 +- develop/proc/write_matrix_dense.html | 4 +- develop/program/dbcsr_example_1.html | 68 +- develop/program/dbcsr_example_2.html | 94 +- develop/program/dbcsr_example_3.html | 116 +- develop/program/dbcsr_performance_driver.html | 64 +- develop/program/dbcsr_tas_unittest.html | 42 +- develop/program/dbcsr_tensor_example_1.html | 172 +- develop/program/dbcsr_tensor_unittest.html | 104 +- .../program/dbcsr_test_csr_conversions.html | 106 +- develop/program/dbcsr_unittest.html | 70 +- develop/program/dbcsr_unittest_1.html | 64 +- develop/program/dbcsr_unittest_2.html | 62 +- develop/program/dbcsr_unittest_3.html | 62 +- develop/sourcefile/dbcsr_acc_device.f.html | 197 +- develop/sourcefile/dbcsr_allocate_wrap.f.html | 2 +- develop/sourcefile/dbcsr_array_sort.f.html | 2 +- develop/sourcefile/dbcsr_dict.f.html | 2 +- develop/sourcefile/dbcsr_list.f.html | 2 +- .../dbcsr_list_routinereport.f.html | 2 +- .../sourcefile/dbcsr_list_routinestat.f.html | 2 +- develop/sourcefile/dbcsr_mpiwrap.f.html | 27370 ++++++++-------- develop/sourcefile/dbcsr_operations.f.html | 8393 +++-- develop/sourcefile/dbcsr_ptr_util.f.html | 3786 ++- develop/sourcefile/dbcsr_tensor.f.html | 4 +- develop/sourcefile/dbcsr_tensor_block.f.html | 2 +- .../sourcefile/dbcsr_tensor_reshape.f.html | 4 +- develop/sourcefile/dbcsr_tensor_split.f.html | 4 +- develop/sourcefile/dbcsr_tensor_test.f.html | 2 +- develop/sourcefile/dbcsr_tensor_types.f.html | 2 +- .../libsmm_acc_timer_multiply.cpp.html | 2000 +- .../libsmm_acc_unittest_multiply.cpp.html | 5144 +-- develop/src/dbcsr_acc_device.F | 13 +- develop/src/dbcsr_allocate_wrap.F | 2 +- develop/src/dbcsr_array_sort.F | 2 +- develop/src/dbcsr_dict.F | 2 +- develop/src/dbcsr_list.F | 2 +- develop/src/dbcsr_list_routinereport.F | 2 +- develop/src/dbcsr_list_routinestat.F | 2 +- develop/src/dbcsr_mpiwrap.F | 38 +- develop/src/dbcsr_operations.F | 33 +- develop/src/dbcsr_ptr_util.F | 102 +- develop/src/dbcsr_tensor.F | 4 +- develop/src/dbcsr_tensor_block.F | 2 +- develop/src/dbcsr_tensor_reshape.F | 4 +- develop/src/dbcsr_tensor_split.F | 4 +- develop/src/dbcsr_tensor_test.F | 2 +- develop/src/dbcsr_tensor_types.F | 2 +- develop/src/libsmm_acc_timer_multiply.cpp | 1982 +- develop/src/libsmm_acc_unittest_multiply.cpp | 1986 +- develop/type/acc_event_type.html | 4 +- develop/type/acc_stream_type.html | 4 +- develop/type/array_i1d_obj.html | 4 +- develop/type/array_i1d_type.html | 4 +- develop/type/array_list.html | 4 +- develop/type/block_buffer_type.html | 8 +- develop/type/block_buffer_type~2.html | 8 +- develop/type/block_nd.html | 20 +- develop/type/block_nd_c_dp.html | 8 +- develop/type/block_nd_c_sp.html | 8 +- develop/type/block_nd_r_dp.html | 8 +- develop/type/block_nd_r_sp.html | 8 +- develop/type/block_parameters.html | 20 +- develop/type/block_parameters~2.html | 20 +- develop/type/btree_data_cp2d.html | 8 +- develop/type/btree_data_dp2d.html | 8 +- develop/type/btree_data_sp2d.html | 8 +- develop/type/btree_data_zp2d.html | 8 +- develop/type/btree_i8_cp2d.html | 4 +- develop/type/btree_i8_dp2d.html | 4 +- develop/type/btree_i8_sp2d.html | 4 +- develop/type/btree_i8_zp2d.html | 4 +- develop/type/btree_node_i8_cp2d.html | 12 +- develop/type/btree_node_i8_dp2d.html | 12 +- develop/type/btree_node_i8_sp2d.html | 12 +- develop/type/btree_node_i8_zp2d.html | 12 +- develop/type/btree_node_p_i8_cp2d.html | 4 +- develop/type/btree_node_p_i8_dp2d.html | 4 +- develop/type/btree_node_p_i8_sp2d.html | 4 +- develop/type/btree_node_p_i8_zp2d.html | 4 +- .../type/btree_node_structure_i8_cp2d.html | 16 +- .../type/btree_node_structure_i8_dp2d.html | 16 +- .../type/btree_node_structure_i8_sp2d.html | 16 +- .../type/btree_node_structure_i8_zp2d.html | 16 +- develop/type/callstack_entry_type.html | 4 +- develop/type/conf_par.html | 8 +- develop/type/conf_par_int.html | 12 +- develop/type/conf_par_logical.html | 12 +- develop/type/conf_par_mm_driver.html | 12 +- develop/type/conf_par_real.html | 12 +- develop/type/csr_data_area_type.html | 20 +- develop/type/csr_p_type.html | 4 +- develop/type/csr_type.html | 28 +- develop/type/dbcsr_1d_array_type.html | 4 +- develop/type/dbcsr_2d_array_type.html | 4 +- develop/type/dbcsr_block_buffer_obj.html | 4 +- develop/type/dbcsr_block_buffer_type.html | 12 +- develop/type/dbcsr_buffer.html | 20 +- develop/type/dbcsr_buffers.html | 8 +- develop/type/dbcsr_data_area_type.html | 24 +- develop/type/dbcsr_data_obj.html | 4 +- develop/type/dbcsr_distribution_obj.html | 4 +- develop/type/dbcsr_distribution_type.html | 44 +- develop/type/dbcsr_heap_node.html | 8 +- develop/type/dbcsr_heap_node_e.html | 4 +- develop/type/dbcsr_heap_type.html | 8 +- develop/type/dbcsr_imagedistribution_obj.html | 4 +- .../type/dbcsr_imagedistribution_type.html | 16 +- develop/type/dbcsr_iteration_info_type.html | 12 +- develop/type/dbcsr_iterator.html | 72 +- develop/type/dbcsr_layers_3d_c_reduction.html | 8 +- develop/type/dbcsr_logger_p_type.html | 4 +- develop/type/dbcsr_logger_type.html | 16 +- develop/type/dbcsr_mempool_entry_type.html | 8 +- develop/type/dbcsr_mempool_type.html | 8 +- develop/type/dbcsr_memtype_type.html | 24 +- develop/type/dbcsr_memtype_type_p.html | 4 +- develop/type/dbcsr_mm_accdrv_type.html | 12 +- develop/type/dbcsr_mm_csr_type.html | 20 +- develop/type/dbcsr_mm_hostdrv_type.html | 4 +- develop/type/dbcsr_mm_multrec_type.html | 48 +- develop/type/dbcsr_mm_multrec_type_p.html | 4 +- develop/type/dbcsr_mm_sched_type.html | 8 +- develop/type/dbcsr_mp_obj.html | 4 +- develop/type/dbcsr_mp_type.html | 36 +- develop/type/dbcsr_mpi_statistics_type.html | 8 +- develop/type/dbcsr_mutable_obj.html | 4 +- develop/type/dbcsr_mutable_type.html | 8 +- develop/type/dbcsr_p_type.html | 4 +- develop/type/dbcsr_scalar_type.html | 16 +- develop/type/dbcsr_t_contraction_storage.html | 4 +- develop/type/dbcsr_t_distribution_type.html | 12 +- develop/type/dbcsr_t_iterator_type.html | 12 +- develop/type/dbcsr_t_pgrid_type.html | 8 +- develop/type/dbcsr_t_type.html | 24 +- develop/type/dbcsr_tas_blk_size_arb.html | 4 +- develop/type/dbcsr_tas_blk_size_one.html | 4 +- develop/type/dbcsr_tas_blk_size_repl.html | 4 +- develop/type/dbcsr_tas_blk_size_t.html | 14 +- develop/type/dbcsr_tas_dist_arb.html | 4 +- develop/type/dbcsr_tas_dist_cyclic.html | 4 +- develop/type/dbcsr_tas_dist_repl.html | 10 +- develop/type/dbcsr_tas_dist_t.html | 8 +- develop/type/dbcsr_tas_distribution.html | 4 +- develop/type/dbcsr_tas_distribution_type.html | 16 +- develop/type/dbcsr_tas_iterator.html | 12 +- develop/type/dbcsr_tas_rowcol_data.html | 4 +- develop/type/dbcsr_tas_split_info.html | 32 +- develop/type/dbcsr_tas_type.html | 36 +- develop/type/dbcsr_type.html | 104 +- develop/type/dbcsr_type_p.html | 4 +- develop/type/dbcsr_work_type.html | 20 +- develop/type/dgemm_join.html | 28 +- develop/type/dgemm_join~2.html | 28 +- .../type/dict_i4tuple_callstat_item_type.html | 8 +- develop/type/dict_i4tuple_callstat_type.html | 4 +- develop/type/dict_str_i4_item_type.html | 8 +- develop/type/dict_str_i4_type.html | 4 +- develop/type/ele_type.html | 8 +- develop/type/hash_table_type.html | 4 +- develop/type/i_array_p.html | 4 +- develop/type/list_callstackentry_type.html | 8 +- develop/type/list_routinereport_type.html | 8 +- develop/type/list_routinestat_type.html | 8 +- develop/type/list_timerenv_type.html | 8 +- develop/type/mn_local_sizes.html | 4 +- develop/type/mp_comm_type.html | 4 +- develop/type/mp_file_indexing_meta_type.html | 4 +- develop/type/mp_file_type.html | 4 +- develop/type/mp_indexing_meta_type.html | 4 +- develop/type/mp_info_type.html | 4 +- develop/type/mp_perf_env_type.html | 4 +- develop/type/mp_perf_type.html | 4 +- develop/type/mp_request_type.html | 4 +- develop/type/mp_type_descriptor_type.html | 16 +- develop/type/mp_win_type.html | 4 +- develop/type/nd_to_2d_mapping.html | 36 +- develop/type/preconnection_type.html | 4 +- .../private_item_p_type_callstackentry.html | 4 +- .../private_item_p_type_i4tuple_callstat.html | 4 +- .../private_item_p_type_routinereport.html | 4 +- .../type/private_item_p_type_routinestat.html | 4 +- develop/type/private_item_p_type_str_i4.html | 4 +- .../type/private_item_p_type_timerenv.html | 4 +- .../private_item_type_callstackentry.html | 4 +- .../private_item_type_i4tuple_callstat.html | 12 +- .../type/private_item_type_routinestat.html | 4 +- develop/type/private_item_type_str_i4.html | 12 +- develop/type/private_item_type_timerenv.html | 4 +- develop/type/routine_report_type.html | 4 +- develop/type/routine_stat_type.html | 12 +- develop/type/stack_buffer_type.html | 8 +- develop/type/stack_descriptor_type.html | 24 +- develop/type/stats_type.html | 4 +- develop/type/thread_private_type.html | 4 +- develop/type/timer_env_type.html | 16 +- 2590 files changed, 57597 insertions(+), 57963 deletions(-) diff --git a/develop/interface/acc_devmem_dev2host.html b/develop/interface/acc_devmem_dev2host.html index 33b469f1ab7..927214c9b67 100644 --- a/develop/interface/acc_devmem_dev2host.html +++ b/develop/interface/acc_devmem_dev2host.html @@ -175,7 +175,7 @@

Arguments

- + type(acc_devmem_type), intent(in) @@ -190,7 +190,7 @@

Arguments

- + integer(kind=int_4), @@ -245,7 +245,7 @@

Arguments

- + type(acc_devmem_type), intent(in) @@ -260,7 +260,7 @@

Arguments

- + integer(kind=int_8), @@ -315,7 +315,7 @@

Arguments

- + type(acc_devmem_type), intent(in) @@ -330,7 +330,7 @@

Arguments

- + real(kind=real_4), @@ -385,7 +385,7 @@

Arguments

- + type(acc_devmem_type), intent(in) @@ -400,7 +400,7 @@

Arguments

- + real(kind=real_8), @@ -455,7 +455,7 @@

Arguments

- + type(acc_devmem_type), intent(in) @@ -470,7 +470,7 @@

Arguments

- + complex(kind=real_4), @@ -525,7 +525,7 @@

Arguments

- + type(acc_devmem_type), intent(in) @@ -540,7 +540,7 @@

Arguments

- + complex(kind=real_8), diff --git a/develop/interface/acc_devmem_host2dev.html b/develop/interface/acc_devmem_host2dev.html index a0501ff45e8..8aa3a52831f 100644 --- a/develop/interface/acc_devmem_host2dev.html +++ b/develop/interface/acc_devmem_host2dev.html @@ -181,7 +181,7 @@

Arguments

- + type(acc_devmem_type), intent(in) @@ -196,7 +196,7 @@

Arguments

- + integer(kind=int_4), @@ -251,7 +251,7 @@

Arguments

- + type(acc_devmem_type), intent(in) @@ -266,7 +266,7 @@

Arguments

- + integer(kind=int_8), @@ -321,7 +321,7 @@

Arguments

- + type(acc_devmem_type), intent(in) @@ -336,7 +336,7 @@

Arguments

- + real(kind=real_4), @@ -391,7 +391,7 @@

Arguments

- + type(acc_devmem_type), intent(in) @@ -406,7 +406,7 @@

Arguments

- + real(kind=real_8), @@ -461,7 +461,7 @@

Arguments

- + type(acc_devmem_type), intent(in) @@ -476,7 +476,7 @@

Arguments

- + complex(kind=real_4), @@ -531,7 +531,7 @@

Arguments

- + type(acc_devmem_type), intent(in) @@ -546,7 +546,7 @@

Arguments

- + complex(kind=real_8), @@ -601,7 +601,7 @@

Arguments

- + type(acc_devmem_type), intent(in) @@ -616,7 +616,7 @@

Arguments

- + integer(kind=int_4), @@ -671,7 +671,7 @@

Arguments

- + type(acc_devmem_type), intent(in) @@ -686,7 +686,7 @@

Arguments

- + integer(kind=int_8), @@ -741,7 +741,7 @@

Arguments

- + type(acc_devmem_type), intent(in) @@ -756,7 +756,7 @@

Arguments

- + real(kind=real_4), @@ -811,7 +811,7 @@

Arguments

- + type(acc_devmem_type), intent(in) @@ -826,7 +826,7 @@

Arguments

- + real(kind=real_8), @@ -881,7 +881,7 @@

Arguments

- + type(acc_devmem_type), intent(in) @@ -896,7 +896,7 @@

Arguments

- + complex(kind=real_4), @@ -951,7 +951,7 @@

Arguments

- + type(acc_devmem_type), intent(in) @@ -966,7 +966,7 @@

Arguments

- + complex(kind=real_8), diff --git a/develop/interface/acc_hostmem_allocate.html b/develop/interface/acc_hostmem_allocate.html index 3d36a9f3461..ce778e04d90 100644 --- a/develop/interface/acc_hostmem_allocate.html +++ b/develop/interface/acc_hostmem_allocate.html @@ -196,7 +196,7 @@

Arguments

- + integer, intent(in) @@ -211,7 +211,7 @@

Arguments

- + type(acc_stream_type), intent(in) @@ -266,7 +266,7 @@

Arguments

- + integer, intent(in) @@ -281,7 +281,7 @@

Arguments

- + type(acc_stream_type), intent(in) @@ -336,7 +336,7 @@

Arguments

- + integer, intent(in) @@ -351,7 +351,7 @@

Arguments

- + type(acc_stream_type), intent(in) @@ -406,7 +406,7 @@

Arguments

- + integer, intent(in) @@ -421,7 +421,7 @@

Arguments

- + type(acc_stream_type), intent(in) @@ -476,7 +476,7 @@

Arguments

- + integer, intent(in) @@ -491,7 +491,7 @@

Arguments

- + type(acc_stream_type), intent(in) @@ -546,7 +546,7 @@

Arguments

- + integer, intent(in) @@ -561,7 +561,7 @@

Arguments

- + type(acc_stream_type), intent(in) @@ -648,7 +648,7 @@

Arguments

- + type(acc_stream_type), intent(in) @@ -735,7 +735,7 @@

Arguments

- + type(acc_stream_type), intent(in) @@ -822,7 +822,7 @@

Arguments

- + type(acc_stream_type), intent(in) @@ -909,7 +909,7 @@

Arguments

- + type(acc_stream_type), intent(in) @@ -996,7 +996,7 @@

Arguments

- + type(acc_stream_type), intent(in) @@ -1083,7 +1083,7 @@

Arguments

- + type(acc_stream_type), intent(in) diff --git a/develop/interface/acc_hostmem_deallocate.html b/develop/interface/acc_hostmem_deallocate.html index e16f0d6da1a..f58b1002c97 100644 --- a/develop/interface/acc_hostmem_deallocate.html +++ b/develop/interface/acc_hostmem_deallocate.html @@ -196,7 +196,7 @@

Arguments

- + type(acc_stream_type), intent(in) @@ -251,7 +251,7 @@

Arguments

- + type(acc_stream_type), intent(in) @@ -306,7 +306,7 @@

Arguments

- + type(acc_stream_type), intent(in) @@ -361,7 +361,7 @@

Arguments

- + type(acc_stream_type), intent(in) @@ -416,7 +416,7 @@

Arguments

- + type(acc_stream_type), intent(in) @@ -471,7 +471,7 @@

Arguments

- + type(acc_stream_type), intent(in) @@ -526,7 +526,7 @@

Arguments

- + type(acc_stream_type), intent(in) @@ -581,7 +581,7 @@

Arguments

- + type(acc_stream_type), intent(in) @@ -636,7 +636,7 @@

Arguments

- + type(acc_stream_type), intent(in) @@ -691,7 +691,7 @@

Arguments

- + type(acc_stream_type), intent(in) @@ -746,7 +746,7 @@

Arguments

- + type(acc_stream_type), intent(in) @@ -801,7 +801,7 @@

Arguments

- + type(acc_stream_type), intent(in) diff --git a/develop/interface/allocate_any.html b/develop/interface/allocate_any.html index a66bf76c14b..e14a7438025 100644 --- a/develop/interface/allocate_any.html +++ b/develop/interface/allocate_any.html @@ -204,7 +204,7 @@

Arguments

- + real(kind=real_8), intent(out), @@ -234,7 +234,7 @@

Arguments

- + real(kind=real_8), intent(in), @@ -249,7 +249,7 @@

Arguments

- + integer, intent(in), @@ -289,7 +289,7 @@

Arguments

- + real(kind=real_8), intent(out), @@ -319,7 +319,7 @@

Arguments

- + real(kind=real_8), intent(in), @@ -334,7 +334,7 @@

Arguments

- + integer, intent(in), @@ -374,7 +374,7 @@

Arguments

- + real(kind=real_8), intent(out), @@ -404,7 +404,7 @@

Arguments

- + real(kind=real_8), intent(in), @@ -419,7 +419,7 @@

Arguments

- + integer, intent(in), @@ -459,7 +459,7 @@

Arguments

- + real(kind=real_8), intent(out), @@ -489,7 +489,7 @@

Arguments

- + real(kind=real_8), intent(in), @@ -504,7 +504,7 @@

Arguments

- + integer, intent(in), @@ -544,7 +544,7 @@

Arguments

- + real(kind=real_8), intent(out), @@ -574,7 +574,7 @@

Arguments

- + real(kind=real_8), intent(in), @@ -589,7 +589,7 @@

Arguments

- + integer, intent(in), @@ -629,7 +629,7 @@

Arguments

- + real(kind=real_8), intent(out), @@ -659,7 +659,7 @@

Arguments

- + real(kind=real_8), intent(in), @@ -674,7 +674,7 @@

Arguments

- + integer, intent(in), @@ -714,7 +714,7 @@

Arguments

- + real(kind=real_8), intent(out), @@ -744,7 +744,7 @@

Arguments

- + real(kind=real_8), intent(in), @@ -759,7 +759,7 @@

Arguments

- + integer, intent(in), @@ -799,7 +799,7 @@

Arguments

- + real(kind=real_4), intent(out), @@ -829,7 +829,7 @@

Arguments

- + real(kind=real_4), intent(in), @@ -844,7 +844,7 @@

Arguments

- + integer, intent(in), @@ -884,7 +884,7 @@

Arguments

- + real(kind=real_4), intent(out), @@ -914,7 +914,7 @@

Arguments

- + real(kind=real_4), intent(in), @@ -929,7 +929,7 @@

Arguments

- + integer, intent(in), @@ -969,7 +969,7 @@

Arguments

- + real(kind=real_4), intent(out), @@ -999,7 +999,7 @@

Arguments

- + real(kind=real_4), intent(in), @@ -1014,7 +1014,7 @@

Arguments

- + integer, intent(in), @@ -1054,7 +1054,7 @@

Arguments

- + real(kind=real_4), intent(out), @@ -1084,7 +1084,7 @@

Arguments

- + real(kind=real_4), intent(in), @@ -1099,7 +1099,7 @@

Arguments

- + integer, intent(in), @@ -1139,7 +1139,7 @@

Arguments

- + real(kind=real_4), intent(out), @@ -1169,7 +1169,7 @@

Arguments

- + real(kind=real_4), intent(in), @@ -1184,7 +1184,7 @@

Arguments

- + integer, intent(in), @@ -1224,7 +1224,7 @@

Arguments

- + real(kind=real_4), intent(out), @@ -1254,7 +1254,7 @@

Arguments

- + real(kind=real_4), intent(in), @@ -1269,7 +1269,7 @@

Arguments

- + integer, intent(in), @@ -1309,7 +1309,7 @@

Arguments

- + real(kind=real_4), intent(out), @@ -1339,7 +1339,7 @@

Arguments

- + real(kind=real_4), intent(in), @@ -1354,7 +1354,7 @@

Arguments

- + integer, intent(in), @@ -1394,7 +1394,7 @@

Arguments

- + complex(kind=real_8), intent(out), @@ -1424,7 +1424,7 @@

Arguments

- + complex(kind=real_8), intent(in), @@ -1439,7 +1439,7 @@

Arguments

- + integer, intent(in), @@ -1479,7 +1479,7 @@

Arguments

- + complex(kind=real_8), intent(out), @@ -1509,7 +1509,7 @@

Arguments

- + complex(kind=real_8), intent(in), @@ -1524,7 +1524,7 @@

Arguments

- + integer, intent(in), @@ -1564,7 +1564,7 @@

Arguments

- + complex(kind=real_8), intent(out), @@ -1594,7 +1594,7 @@

Arguments

- + complex(kind=real_8), intent(in), @@ -1609,7 +1609,7 @@

Arguments

- + integer, intent(in), @@ -1649,7 +1649,7 @@

Arguments

- + complex(kind=real_8), intent(out), @@ -1679,7 +1679,7 @@

Arguments

- + complex(kind=real_8), intent(in), @@ -1694,7 +1694,7 @@

Arguments

- + integer, intent(in), @@ -1734,7 +1734,7 @@

Arguments

- + complex(kind=real_8), intent(out), @@ -1764,7 +1764,7 @@

Arguments

- + complex(kind=real_8), intent(in), @@ -1779,7 +1779,7 @@

Arguments

- + integer, intent(in), @@ -1819,7 +1819,7 @@

Arguments

- + complex(kind=real_8), intent(out), @@ -1849,7 +1849,7 @@

Arguments

- + complex(kind=real_8), intent(in), @@ -1864,7 +1864,7 @@

Arguments

- + integer, intent(in), @@ -1904,7 +1904,7 @@

Arguments

- + complex(kind=real_8), intent(out), @@ -1934,7 +1934,7 @@

Arguments

- + complex(kind=real_8), intent(in), @@ -1949,7 +1949,7 @@

Arguments

- + integer, intent(in), @@ -1989,7 +1989,7 @@

Arguments

- + complex(kind=real_4), intent(out), @@ -2019,7 +2019,7 @@

Arguments

- + complex(kind=real_4), intent(in), @@ -2034,7 +2034,7 @@

Arguments

- + integer, intent(in), @@ -2074,7 +2074,7 @@

Arguments

- + complex(kind=real_4), intent(out), @@ -2104,7 +2104,7 @@

Arguments

- + complex(kind=real_4), intent(in), @@ -2119,7 +2119,7 @@

Arguments

- + integer, intent(in), @@ -2159,7 +2159,7 @@

Arguments

- + complex(kind=real_4), intent(out), @@ -2189,7 +2189,7 @@

Arguments

- + complex(kind=real_4), intent(in), @@ -2204,7 +2204,7 @@

Arguments

- + integer, intent(in), @@ -2244,7 +2244,7 @@

Arguments

- + complex(kind=real_4), intent(out), @@ -2274,7 +2274,7 @@

Arguments

- + complex(kind=real_4), intent(in), @@ -2289,7 +2289,7 @@

Arguments

- + integer, intent(in), @@ -2329,7 +2329,7 @@

Arguments

- + complex(kind=real_4), intent(out), @@ -2359,7 +2359,7 @@

Arguments

- + complex(kind=real_4), intent(in), @@ -2374,7 +2374,7 @@

Arguments

- + integer, intent(in), @@ -2414,7 +2414,7 @@

Arguments

- + complex(kind=real_4), intent(out), @@ -2444,7 +2444,7 @@

Arguments

- + complex(kind=real_4), intent(in), @@ -2459,7 +2459,7 @@

Arguments

- + integer, intent(in), @@ -2499,7 +2499,7 @@

Arguments

- + complex(kind=real_4), intent(out), @@ -2529,7 +2529,7 @@

Arguments

- + complex(kind=real_4), intent(in), @@ -2544,7 +2544,7 @@

Arguments

- + integer, intent(in), @@ -2584,7 +2584,7 @@

Arguments

- + integer, intent(out), @@ -2614,7 +2614,7 @@

Arguments

- + integer, intent(in), @@ -2629,7 +2629,7 @@

Arguments

- + integer, intent(in), @@ -2669,7 +2669,7 @@

Arguments

- + integer, intent(out), @@ -2699,7 +2699,7 @@

Arguments

- + integer, intent(in), @@ -2714,7 +2714,7 @@

Arguments

- + integer, intent(in), @@ -2754,7 +2754,7 @@

Arguments

- + integer, intent(out), @@ -2784,7 +2784,7 @@

Arguments

- + integer, intent(in), @@ -2799,7 +2799,7 @@

Arguments

- + integer, intent(in), @@ -2839,7 +2839,7 @@

Arguments

- + integer, intent(out), @@ -2869,7 +2869,7 @@

Arguments

- + integer, intent(in), @@ -2884,7 +2884,7 @@

Arguments

- + integer, intent(in), @@ -2924,7 +2924,7 @@

Arguments

- + integer, intent(out), @@ -2954,7 +2954,7 @@

Arguments

- + integer, intent(in), @@ -2969,7 +2969,7 @@

Arguments

- + integer, intent(in), @@ -3009,7 +3009,7 @@

Arguments

- + integer, intent(out), @@ -3039,7 +3039,7 @@

Arguments

- + integer, intent(in), @@ -3054,7 +3054,7 @@

Arguments

- + integer, intent(in), @@ -3094,7 +3094,7 @@

Arguments

- + integer, intent(out), @@ -3124,7 +3124,7 @@

Arguments

- + integer, intent(in), @@ -3139,7 +3139,7 @@

Arguments

- + integer, intent(in), diff --git a/develop/interface/array_data.html b/develop/interface/array_data.html index 5f0be5d9da0..b056dbb963c 100644 --- a/develop/interface/array_data.html +++ b/develop/interface/array_data.html @@ -170,7 +170,7 @@

Arguments

- + type(array_i1d_obj), intent(in) diff --git a/develop/interface/array_exists.html b/develop/interface/array_exists.html index 42a462febdb..3819bf6689d 100644 --- a/develop/interface/array_exists.html +++ b/develop/interface/array_exists.html @@ -170,7 +170,7 @@

Arguments

- + type(array_i1d_obj), intent(in) diff --git a/develop/interface/array_get.html b/develop/interface/array_get.html index 8ab6502bbde..dd8b9ca12ed 100644 --- a/develop/interface/array_get.html +++ b/develop/interface/array_get.html @@ -171,7 +171,7 @@

Arguments

- + type(array_i1d_obj), intent(in) @@ -231,7 +231,7 @@

Arguments

- + integer, intent(in), diff --git a/develop/interface/array_hold.html b/develop/interface/array_hold.html index 99d84b662a8..d77859243e9 100644 --- a/develop/interface/array_hold.html +++ b/develop/interface/array_hold.html @@ -170,7 +170,7 @@

Arguments

- + type(array_i1d_obj), intent(inout) diff --git a/develop/interface/array_new.html b/develop/interface/array_new.html index ac29576f008..5f0aedb3e17 100644 --- a/develop/interface/array_new.html +++ b/develop/interface/array_new.html @@ -171,7 +171,7 @@

Arguments

- + type(array_i1d_obj), intent(out) @@ -186,7 +186,7 @@

Arguments

- + integer, @@ -201,7 +201,7 @@

Arguments

- + logical, intent(in), @@ -241,7 +241,7 @@

Arguments

- + type(array_i1d_obj), intent(out) @@ -256,7 +256,7 @@

Arguments

- + integer, intent(in), @@ -271,7 +271,7 @@

Arguments

- + integer, intent(in) diff --git a/develop/interface/array_nullify.html b/develop/interface/array_nullify.html index 788d1dc4aca..3741efc72bf 100644 --- a/develop/interface/array_nullify.html +++ b/develop/interface/array_nullify.html @@ -170,7 +170,7 @@

Arguments

- + type(array_i1d_obj), intent(inout) diff --git a/develop/interface/array_release.html b/develop/interface/array_release.html index 7aaa8910209..1b6e3cff5f4 100644 --- a/develop/interface/array_release.html +++ b/develop/interface/array_release.html @@ -170,7 +170,7 @@

Arguments

- + type(array_i1d_obj), intent(inout) diff --git a/develop/interface/array_size.html b/develop/interface/array_size.html index d20027df5b0..39394280134 100644 --- a/develop/interface/array_size.html +++ b/develop/interface/array_size.html @@ -170,7 +170,7 @@

Arguments

- + type(array_i1d_obj), intent(in) diff --git a/develop/interface/block_add.html b/develop/interface/block_add.html index 3f80d982a64..14c6f298edf 100644 --- a/develop/interface/block_add.html +++ b/develop/interface/block_add.html @@ -205,7 +205,7 @@

Arguments

- + integer, intent(in), @@ -275,7 +275,7 @@

Arguments

- + integer, intent(in) @@ -290,7 +290,7 @@

Arguments

- + integer, intent(in) @@ -305,7 +305,7 @@

Arguments

- + integer, intent(in) @@ -375,7 +375,7 @@

Arguments

- + integer, intent(in) @@ -445,7 +445,7 @@

Arguments

- + integer, intent(in) @@ -515,7 +515,7 @@

Arguments

- + integer, intent(in) @@ -585,7 +585,7 @@

Arguments

- + integer, intent(in) diff --git a/develop/interface/block_buffer_add_block.html b/develop/interface/block_buffer_add_block.html index 328c0394f30..9b262038061 100644 --- a/develop/interface/block_buffer_add_block.html +++ b/develop/interface/block_buffer_add_block.html @@ -174,7 +174,7 @@

Arguments

- + type(block_buffer_type), intent(inout) @@ -204,7 +204,7 @@

Arguments

- + type(dbcsr_data_obj), intent(in) @@ -219,7 +219,7 @@

Arguments

- + logical, intent(in), @@ -259,7 +259,7 @@

Arguments

- + type(block_buffer_type), intent(inout) @@ -289,7 +289,7 @@

Arguments

- + real(kind=real_8), intent(in), @@ -304,7 +304,7 @@

Arguments

- + logical, intent(in), @@ -344,7 +344,7 @@

Arguments

- + type(block_buffer_type), intent(inout) @@ -374,7 +374,7 @@

Arguments

- + real(kind=real_4), intent(in), @@ -389,7 +389,7 @@

Arguments

- + logical, intent(in), @@ -429,7 +429,7 @@

Arguments

- + type(block_buffer_type), intent(inout) @@ -459,7 +459,7 @@

Arguments

- + complex(kind=real_8), intent(in), @@ -474,7 +474,7 @@

Arguments

- + logical, intent(in), @@ -514,7 +514,7 @@

Arguments

- + type(block_buffer_type), intent(inout) @@ -544,7 +544,7 @@

Arguments

- + complex(kind=real_4), intent(in), @@ -559,7 +559,7 @@

Arguments

- + logical, intent(in), diff --git a/develop/interface/block_buffer_add_block~2.html b/develop/interface/block_buffer_add_block~2.html index 7cabb1267e6..f75c535bf1e 100644 --- a/develop/interface/block_buffer_add_block~2.html +++ b/develop/interface/block_buffer_add_block~2.html @@ -188,7 +188,7 @@

Arguments

- + integer, intent(in) @@ -203,7 +203,7 @@

Arguments

- + integer, intent(in), @@ -218,7 +218,7 @@

Arguments

- + real(kind=real_8), intent(in), @@ -273,7 +273,7 @@

Arguments

- + integer, intent(in) @@ -288,7 +288,7 @@

Arguments

- + integer, intent(in), @@ -303,7 +303,7 @@

Arguments

- + real(kind=real_4), intent(in), @@ -358,7 +358,7 @@

Arguments

- + integer, intent(in) @@ -373,7 +373,7 @@

Arguments

- + integer, intent(in), @@ -388,7 +388,7 @@

Arguments

- + complex(kind=real_8), intent(in), @@ -443,7 +443,7 @@

Arguments

- + integer, intent(in) @@ -458,7 +458,7 @@

Arguments

- + integer, intent(in), @@ -473,7 +473,7 @@

Arguments

- + complex(kind=real_4), intent(in), diff --git a/develop/interface/block_buffer_get_next_block.html b/develop/interface/block_buffer_get_next_block.html index 0fee049742b..aacd33846dc 100644 --- a/develop/interface/block_buffer_get_next_block.html +++ b/develop/interface/block_buffer_get_next_block.html @@ -170,7 +170,7 @@

Arguments

- + type(block_buffer_type), intent(inout) @@ -215,7 +215,7 @@

Arguments

- + type(dbcsr_data_obj), intent(inout), diff --git a/develop/interface/btree_add.html b/develop/interface/btree_add.html index a46daa80bbf..7b04e618d92 100644 --- a/develop/interface/btree_add.html +++ b/develop/interface/btree_add.html @@ -188,7 +188,7 @@

Arguments

- + integer(kind=keyt), intent(in) @@ -203,7 +203,7 @@

Arguments

- + type(btree_data_sp2d), intent(in) @@ -218,7 +218,7 @@

Arguments

- + logical, intent(out), @@ -303,7 +303,7 @@

Arguments

- + integer(kind=keyt), intent(in) @@ -318,7 +318,7 @@

Arguments

- + type(btree_data_dp2d), intent(in) @@ -333,7 +333,7 @@

Arguments

- + logical, intent(out), @@ -418,7 +418,7 @@

Arguments

- + integer(kind=keyt), intent(in) @@ -433,7 +433,7 @@

Arguments

- + type(btree_data_cp2d), intent(in) @@ -448,7 +448,7 @@

Arguments

- + logical, intent(out), @@ -533,7 +533,7 @@

Arguments

- + integer(kind=keyt), intent(in) @@ -548,7 +548,7 @@

Arguments

- + type(btree_data_zp2d), intent(in) @@ -563,7 +563,7 @@

Arguments

- + logical, intent(out), diff --git a/develop/interface/btree_delete.html b/develop/interface/btree_delete.html index 970eac53b90..87560ec52db 100644 --- a/develop/interface/btree_delete.html +++ b/develop/interface/btree_delete.html @@ -188,7 +188,7 @@

Arguments

- + integer(kind=keyt), intent(out), @@ -203,7 +203,7 @@

Arguments

- + type(btree_data_sp2d), intent(out), @@ -258,7 +258,7 @@

Arguments

- + integer(kind=keyt), intent(out), @@ -273,7 +273,7 @@

Arguments

- + type(btree_data_dp2d), intent(out), @@ -328,7 +328,7 @@

Arguments

- + integer(kind=keyt), intent(out), @@ -343,7 +343,7 @@

Arguments

- + type(btree_data_cp2d), intent(out), @@ -398,7 +398,7 @@

Arguments

- + integer(kind=keyt), intent(out), @@ -413,7 +413,7 @@

Arguments

- + type(btree_data_zp2d), intent(out), diff --git a/develop/interface/btree_find.html b/develop/interface/btree_find.html index d8a9e8943f8..c14b260aedf 100644 --- a/develop/interface/btree_find.html +++ b/develop/interface/btree_find.html @@ -188,7 +188,7 @@

Arguments

- + integer(kind=keyt), intent(in) @@ -203,7 +203,7 @@

Arguments

- + type(btree_data_sp2d), intent(out) @@ -218,7 +218,7 @@

Arguments

- + logical, intent(out), @@ -273,7 +273,7 @@

Arguments

- + integer(kind=keyt), intent(in) @@ -288,7 +288,7 @@

Arguments

- + type(btree_data_dp2d), intent(out) @@ -303,7 +303,7 @@

Arguments

- + logical, intent(out), @@ -358,7 +358,7 @@

Arguments

- + integer(kind=keyt), intent(in) @@ -373,7 +373,7 @@

Arguments

- + type(btree_data_cp2d), intent(out) @@ -388,7 +388,7 @@

Arguments

- + logical, intent(out), @@ -443,7 +443,7 @@

Arguments

- + integer(kind=keyt), intent(in) @@ -458,7 +458,7 @@

Arguments

- + type(btree_data_zp2d), intent(out) @@ -473,7 +473,7 @@

Arguments

- + logical, intent(out), diff --git a/develop/interface/btree_new.html b/develop/interface/btree_new.html index 6c87f73969a..5c62ba90022 100644 --- a/develop/interface/btree_new.html +++ b/develop/interface/btree_new.html @@ -188,7 +188,7 @@

Arguments

- + integer, intent(in), @@ -243,7 +243,7 @@

Arguments

- + integer, intent(in), @@ -298,7 +298,7 @@

Arguments

- + integer, intent(in), @@ -353,7 +353,7 @@

Arguments

- + integer, intent(in), diff --git a/develop/interface/create_block.html b/develop/interface/create_block.html index 588984f2763..40caf4dd5cf 100644 --- a/develop/interface/create_block.html +++ b/develop/interface/create_block.html @@ -174,7 +174,7 @@

Arguments

- + type(block_nd), intent(out) @@ -189,7 +189,7 @@

Arguments

- + integer, intent(in), @@ -204,7 +204,7 @@

Arguments

- + real(kind=real_8), intent(in), @@ -244,7 +244,7 @@

Arguments

- + type(block_nd), intent(out) @@ -259,7 +259,7 @@

Arguments

- + integer, intent(in), @@ -274,7 +274,7 @@

Arguments

- + real(kind=real_4), intent(in), @@ -314,7 +314,7 @@

Arguments

- + type(block_nd), intent(out) @@ -329,7 +329,7 @@

Arguments

- + integer, intent(in), @@ -344,7 +344,7 @@

Arguments

- + complex(kind=real_8), intent(in), @@ -384,7 +384,7 @@

Arguments

- + type(block_nd), intent(out) @@ -399,7 +399,7 @@

Arguments

- + integer, intent(in), @@ -414,7 +414,7 @@

Arguments

- + complex(kind=real_4), intent(in), @@ -454,7 +454,7 @@

Arguments

- + type(block_nd), intent(out) @@ -469,7 +469,7 @@

Arguments

- + integer, intent(in), @@ -484,7 +484,7 @@

Arguments

- + integer, intent(in) diff --git a/develop/interface/csr_create.html b/develop/interface/csr_create.html index 03f6a31c69e..26d1c15dfcf 100644 --- a/develop/interface/csr_create.html +++ b/develop/interface/csr_create.html @@ -131,8 +131,8 @@

Module Procedures

@@ -152,7 +152,7 @@

private interface csr_create

Module Procedures

-

public subroutine csr_create_new(csr_mat, nrows_total, ncols_total, nze_total, nze_local, nrows_local, mp_group, data_type) +

public subroutine csr_create_new(csr_mat, nrows_total, ncols_total, nze_total, nze_local, nrows_local, mp_group, data_type)

@@ -171,7 +171,7 @@

Arguments

- + type(csr_type), intent(out) @@ -186,7 +186,7 @@

Arguments

- + integer, intent(in) @@ -202,7 +202,7 @@

Arguments

- + integer, intent(in) @@ -218,7 +218,7 @@

Arguments

- + integer(kind=int_8) @@ -233,7 +233,7 @@

Arguments

- + integer, intent(in) @@ -249,7 +249,7 @@

Arguments

- + integer, intent(in) @@ -265,7 +265,7 @@

Arguments

- + type(mp_comm_type), intent(in) @@ -280,7 +280,7 @@

Arguments

- + integer, intent(in), @@ -321,7 +321,7 @@

Arguments

- + type(csr_type), intent(out) @@ -336,7 +336,7 @@

Arguments

- + type(csr_type), intent(in) diff --git a/develop/interface/dbcsr_abort_interface.html b/develop/interface/dbcsr_abort_interface.html index 702f756cc07..40315c99a23 100644 --- a/develop/interface/dbcsr_abort_interface.html +++ b/develop/interface/dbcsr_abort_interface.html @@ -168,7 +168,7 @@

Arguments

- + character(len=*), intent(in) diff --git a/develop/interface/dbcsr_add.html b/develop/interface/dbcsr_add.html index dc18e7d32e8..6358a4e3dc5 100644 --- a/develop/interface/dbcsr_add.html +++ b/develop/interface/dbcsr_add.html @@ -173,7 +173,7 @@

Arguments

- + type(dbcsr_type), intent(inout) @@ -188,7 +188,7 @@

Arguments

- + type(dbcsr_type), intent(in) @@ -258,7 +258,7 @@

Arguments

- + type(dbcsr_type), intent(inout) @@ -273,7 +273,7 @@

Arguments

- + type(dbcsr_type), intent(in) @@ -343,7 +343,7 @@

Arguments

- + type(dbcsr_type), intent(inout) @@ -358,7 +358,7 @@

Arguments

- + type(dbcsr_type), intent(in) @@ -428,7 +428,7 @@

Arguments

- + type(dbcsr_type), intent(inout) @@ -443,7 +443,7 @@

Arguments

- + type(dbcsr_type), intent(in) diff --git a/develop/interface/dbcsr_add_on_diag.html b/develop/interface/dbcsr_add_on_diag.html index f0e1f6b3710..87c9722e288 100644 --- a/develop/interface/dbcsr_add_on_diag.html +++ b/develop/interface/dbcsr_add_on_diag.html @@ -173,7 +173,7 @@

Arguments

- + type(dbcsr_type), intent(inout) @@ -228,7 +228,7 @@

Arguments

- + type(dbcsr_type), intent(inout) @@ -283,7 +283,7 @@

Arguments

- + type(dbcsr_type), intent(inout) @@ -338,7 +338,7 @@

Arguments

- + type(dbcsr_type), intent(inout) diff --git a/develop/interface/dbcsr_add_on_diag~2.html b/develop/interface/dbcsr_add_on_diag~2.html index 110112852be..3615fb45259 100644 --- a/develop/interface/dbcsr_add_on_diag~2.html +++ b/develop/interface/dbcsr_add_on_diag~2.html @@ -173,7 +173,7 @@

Arguments

- + type(dbcsr_type), intent(inout) @@ -188,7 +188,7 @@

Arguments

- + real(kind=real_4), intent(in) @@ -228,7 +228,7 @@

Arguments

- + type(dbcsr_type), intent(inout) @@ -243,7 +243,7 @@

Arguments

- + real(kind=real_8), intent(in) @@ -283,7 +283,7 @@

Arguments

- + type(dbcsr_type), intent(inout) @@ -298,7 +298,7 @@

Arguments

- + complex(kind=real_4), intent(in) @@ -338,7 +338,7 @@

Arguments

- + type(dbcsr_type), intent(inout) @@ -353,7 +353,7 @@

Arguments

- + complex(kind=real_8), intent(in) diff --git a/develop/interface/dbcsr_add~2.html b/develop/interface/dbcsr_add~2.html index 705be5ea912..109581974c4 100644 --- a/develop/interface/dbcsr_add~2.html +++ b/develop/interface/dbcsr_add~2.html @@ -175,7 +175,7 @@

Arguments

- + type(dbcsr_type), intent(inout) @@ -190,7 +190,7 @@

Arguments

- + type(dbcsr_type), intent(in) @@ -235,7 +235,7 @@

Arguments

- + integer(kind=int_8), intent(inout), @@ -275,7 +275,7 @@

Arguments

- + type(dbcsr_type), intent(inout) @@ -290,7 +290,7 @@

Arguments

- + type(dbcsr_type), intent(in) @@ -360,7 +360,7 @@

Arguments

- + type(dbcsr_type), intent(inout) @@ -375,7 +375,7 @@

Arguments

- + type(dbcsr_type), intent(in) @@ -445,7 +445,7 @@

Arguments

- + type(dbcsr_type), intent(inout) @@ -460,7 +460,7 @@

Arguments

- + type(dbcsr_type), intent(in) @@ -530,7 +530,7 @@

Arguments

- + type(dbcsr_type), intent(inout) @@ -545,7 +545,7 @@

Arguments

- + type(dbcsr_type), intent(in) diff --git a/develop/interface/dbcsr_block_copy.html b/develop/interface/dbcsr_block_copy.html index 852b52fdb59..3b527330457 100644 --- a/develop/interface/dbcsr_block_copy.html +++ b/develop/interface/dbcsr_block_copy.html @@ -215,7 +215,7 @@

Arguments

- + integer, intent(in) @@ -302,7 +302,7 @@

Arguments

- + integer, intent(in) @@ -389,7 +389,7 @@

Arguments

- + integer, intent(in) @@ -476,7 +476,7 @@

Arguments

- + integer, intent(in) @@ -563,7 +563,7 @@

Arguments

- + integer, intent(in) @@ -650,7 +650,7 @@

Arguments

- + integer, intent(in) @@ -737,7 +737,7 @@

Arguments

- + integer, intent(in) @@ -824,7 +824,7 @@

Arguments

- + integer, intent(in) @@ -911,7 +911,7 @@

Arguments

- + integer, intent(in) @@ -998,7 +998,7 @@

Arguments

- + integer, intent(in) @@ -1085,7 +1085,7 @@

Arguments

- + integer, intent(in) @@ -1172,7 +1172,7 @@

Arguments

- + integer, intent(in) @@ -1259,7 +1259,7 @@

Arguments

- + integer, intent(in) @@ -1346,7 +1346,7 @@

Arguments

- + integer, intent(in) @@ -1433,7 +1433,7 @@

Arguments

- + integer, intent(in) @@ -1520,7 +1520,7 @@

Arguments

- + integer, intent(in) diff --git a/develop/interface/dbcsr_block_transpose.html b/develop/interface/dbcsr_block_transpose.html index 612ca13196c..b61abc3a116 100644 --- a/develop/interface/dbcsr_block_transpose.html +++ b/develop/interface/dbcsr_block_transpose.html @@ -202,7 +202,7 @@

Arguments

- + integer, intent(in) @@ -274,7 +274,7 @@

Arguments

- + integer, intent(in) @@ -346,7 +346,7 @@

Arguments

- + integer, intent(in) @@ -418,7 +418,7 @@

Arguments

- + integer, intent(in) @@ -505,7 +505,7 @@

Arguments

- + integer, intent(in) @@ -592,7 +592,7 @@

Arguments

- + integer, intent(in) @@ -679,7 +679,7 @@

Arguments

- + integer, intent(in) @@ -766,7 +766,7 @@

Arguments

- + integer, intent(in) @@ -853,7 +853,7 @@

Arguments

- + integer, intent(in) @@ -940,7 +940,7 @@

Arguments

- + integer, intent(in) @@ -1027,7 +1027,7 @@

Arguments

- + integer, intent(in) @@ -1114,7 +1114,7 @@

Arguments

- + integer, intent(in) @@ -1201,7 +1201,7 @@

Arguments

- + integer, intent(in) @@ -1288,7 +1288,7 @@

Arguments

- + integer, intent(in) @@ -1375,7 +1375,7 @@

Arguments

- + integer, intent(in) @@ -1462,7 +1462,7 @@

Arguments

- + integer, intent(in) @@ -1520,7 +1520,7 @@

Arguments

- + type(dbcsr_data_obj), intent(inout) @@ -1535,7 +1535,7 @@

Arguments

- + type(dbcsr_data_obj), intent(in) @@ -1550,7 +1550,7 @@

Arguments

- + integer, intent(in) @@ -1566,7 +1566,7 @@

Arguments

- + integer, intent(in) @@ -1582,7 +1582,7 @@

Arguments

- + integer, intent(in), @@ -1687,7 +1687,7 @@

Arguments

- + type(dbcsr_data_obj), intent(inout) @@ -1702,7 +1702,7 @@

Arguments

- + integer, intent(in) @@ -1718,7 +1718,7 @@

Arguments

- + integer, intent(in) diff --git a/develop/interface/dbcsr_build_row_index.html b/develop/interface/dbcsr_build_row_index.html index df1ab99fe6c..4a6291ec4cd 100644 --- a/develop/interface/dbcsr_build_row_index.html +++ b/develop/interface/dbcsr_build_row_index.html @@ -171,7 +171,7 @@

Arguments

- + integer, intent(in), @@ -186,7 +186,7 @@

Arguments

- + integer, intent(out), @@ -201,7 +201,7 @@

Arguments

- + integer, intent(in) @@ -241,7 +241,7 @@

Arguments

- + integer, intent(inout), @@ -256,7 +256,7 @@

Arguments

- + integer, intent(in) diff --git a/develop/interface/dbcsr_conform_scalar.html b/develop/interface/dbcsr_conform_scalar.html index 078fda7c4b6..a41cf6d45d7 100644 --- a/develop/interface/dbcsr_conform_scalar.html +++ b/develop/interface/dbcsr_conform_scalar.html @@ -174,7 +174,7 @@

Arguments

- + real(kind=real_8), intent(in) @@ -189,7 +189,7 @@

Arguments

- + type(dbcsr_type), intent(in) @@ -235,7 +235,7 @@

Arguments

- + real(kind=real_4), intent(in) @@ -250,7 +250,7 @@

Arguments

- + type(dbcsr_type), intent(in) @@ -296,7 +296,7 @@

Arguments

- + complex(kind=real_4), intent(in) @@ -311,7 +311,7 @@

Arguments

- + type(dbcsr_type), intent(in) @@ -357,7 +357,7 @@

Arguments

- + complex(kind=real_8), intent(in) @@ -372,7 +372,7 @@

Arguments

- + type(dbcsr_type), intent(in) diff --git a/develop/interface/dbcsr_count_row_index.html b/develop/interface/dbcsr_count_row_index.html index 50645841b70..5565f87ff03 100644 --- a/develop/interface/dbcsr_count_row_index.html +++ b/develop/interface/dbcsr_count_row_index.html @@ -171,7 +171,7 @@

Arguments

- + integer, intent(in), @@ -186,7 +186,7 @@

Arguments

- + integer, intent(out), @@ -201,7 +201,7 @@

Arguments

- + integer, intent(in) @@ -241,7 +241,7 @@

Arguments

- + integer, intent(inout), @@ -256,7 +256,7 @@

Arguments

- + integer, intent(in) diff --git a/develop/interface/dbcsr_create.html b/develop/interface/dbcsr_create.html index 7fac5a37da5..5425ed33443 100644 --- a/develop/interface/dbcsr_create.html +++ b/develop/interface/dbcsr_create.html @@ -171,7 +171,7 @@

Arguments

- + type(dbcsr_type), intent(inout) @@ -186,7 +186,7 @@

Arguments

- + character(len=*), intent(in) @@ -201,7 +201,7 @@

Arguments

- + type(dbcsr_distribution_type), intent(in) @@ -216,7 +216,7 @@

Arguments

- + character(len=1), intent(in) @@ -231,7 +231,7 @@

Arguments

- + integer, intent(inout), @@ -246,7 +246,7 @@

Arguments

- + integer, intent(inout), @@ -261,7 +261,7 @@

Arguments

- + integer, intent(in), @@ -276,7 +276,7 @@

Arguments

- + integer, intent(in), @@ -306,7 +306,7 @@

Arguments

- + logical, intent(in), @@ -336,7 +336,7 @@

Arguments

- + character(len=1), intent(in), @@ -376,7 +376,7 @@

Arguments

- + type(dbcsr_type), intent(inout) @@ -391,7 +391,7 @@

Arguments

- + character(len=*), intent(in), @@ -406,7 +406,7 @@

Arguments

- + type(dbcsr_type), intent(in) @@ -421,7 +421,7 @@

Arguments

- + type(dbcsr_distribution_type), intent(in), @@ -436,7 +436,7 @@

Arguments

- + character(len=1), intent(in), @@ -451,7 +451,7 @@

Arguments

- + integer, intent(inout), @@ -466,7 +466,7 @@

Arguments

- + integer, intent(inout), @@ -481,7 +481,7 @@

Arguments

- + integer, intent(in), @@ -496,7 +496,7 @@

Arguments

- + integer, intent(in), @@ -511,7 +511,7 @@

Arguments

- + logical, intent(in), @@ -541,7 +541,7 @@

Arguments

- + character(len=1), intent(in), diff --git a/develop/interface/dbcsr_create~2.html b/develop/interface/dbcsr_create~2.html index 38e29d43f3f..9d5074da142 100644 --- a/develop/interface/dbcsr_create~2.html +++ b/develop/interface/dbcsr_create~2.html @@ -171,7 +171,7 @@

Arguments

- + type(dbcsr_type), intent(inout) @@ -186,7 +186,7 @@

Arguments

- + character(len=*), intent(in) @@ -201,7 +201,7 @@

Arguments

- + type(dbcsr_distribution_obj), intent(in) @@ -216,7 +216,7 @@

Arguments

- + character(len=1), intent(in) @@ -231,7 +231,7 @@

Arguments

- + integer, intent(inout), @@ -246,7 +246,7 @@

Arguments

- + integer, intent(inout), @@ -261,7 +261,7 @@

Arguments

- + type(array_i1d_obj), intent(in), @@ -276,7 +276,7 @@

Arguments

- + type(array_i1d_obj), intent(in), @@ -291,7 +291,7 @@

Arguments

- + integer, intent(in), @@ -307,7 +307,7 @@

Arguments

- + integer, intent(in), @@ -323,7 +323,7 @@

Arguments

- + type(dbcsr_data_obj), intent(in), @@ -338,7 +338,7 @@

Arguments

- + type(dbcsr_memtype_type), intent(in), @@ -400,7 +400,7 @@

Arguments

- + type(array_i1d_obj), intent(in), @@ -415,7 +415,7 @@

Arguments

- + type(array_i1d_obj), intent(in), @@ -430,7 +430,7 @@

Arguments

- + type(dbcsr_distribution_obj), intent(in), @@ -445,7 +445,7 @@

Arguments

- + logical, intent(in), @@ -477,7 +477,7 @@

Arguments

- + logical, intent(in), @@ -549,7 +549,7 @@

Arguments

- + type(dbcsr_type), intent(inout) @@ -579,7 +579,7 @@

Arguments

- + character(len=*), intent(in), @@ -594,7 +594,7 @@

Arguments

- + type(dbcsr_distribution_obj), intent(in), @@ -609,7 +609,7 @@

Arguments

- + character(len=1), intent(in), @@ -624,7 +624,7 @@

Arguments

- + integer, intent(inout), @@ -639,7 +639,7 @@

Arguments

- + integer, intent(inout), @@ -654,7 +654,7 @@

Arguments

- + type(array_i1d_obj), intent(in), @@ -669,7 +669,7 @@

Arguments

- + type(array_i1d_obj), intent(in), @@ -684,7 +684,7 @@

Arguments

- + integer, intent(in), @@ -699,7 +699,7 @@

Arguments

- + integer, intent(in), @@ -714,7 +714,7 @@

Arguments

- + type(dbcsr_data_obj), intent(in), @@ -729,7 +729,7 @@

Arguments

- + type(dbcsr_memtype_type), intent(in), @@ -789,7 +789,7 @@

Arguments

- + type(array_i1d_obj), intent(in), @@ -804,7 +804,7 @@

Arguments

- + type(array_i1d_obj), intent(in), @@ -834,7 +834,7 @@

Arguments

- + logical, intent(in), diff --git a/develop/interface/dbcsr_csr_create.html b/develop/interface/dbcsr_csr_create.html index dcdcec4dc1c..0b3cb273b77 100644 --- a/develop/interface/dbcsr_csr_create.html +++ b/develop/interface/dbcsr_csr_create.html @@ -131,8 +131,8 @@

Module Procedures

@@ -152,7 +152,7 @@

public interface dbcsr_csr_create

Module Procedures

-

private subroutine csr_create_new(csr_mat, nrows_total, ncols_total, nze_total, nze_local, nrows_local, mp_group, data_type) +

private subroutine csr_create_new(csr_mat, nrows_total, ncols_total, nze_total, nze_local, nrows_local, mp_group, data_type)

@@ -171,7 +171,7 @@

Arguments

- + type(dbcsr_csr_type), intent(out) @@ -186,7 +186,7 @@

Arguments

- + integer, intent(in) @@ -201,7 +201,7 @@

Arguments

- + integer, intent(in) @@ -216,7 +216,7 @@

Arguments

- + integer(kind=int_8) @@ -231,7 +231,7 @@

Arguments

- + integer, intent(in) @@ -246,7 +246,7 @@

Arguments

- + integer, intent(in) @@ -261,7 +261,7 @@

Arguments

- + integer, intent(in) @@ -276,7 +276,7 @@

Arguments

- + integer, intent(in), @@ -317,7 +317,7 @@

Arguments

- + type(csr_type), intent(out) @@ -332,7 +332,7 @@

Arguments

- + type(csr_type), intent(in) diff --git a/develop/interface/dbcsr_data_clear.html b/develop/interface/dbcsr_data_clear.html index 1fa2cfb208d..93343192a75 100644 --- a/develop/interface/dbcsr_data_clear.html +++ b/develop/interface/dbcsr_data_clear.html @@ -171,7 +171,7 @@

Arguments

- + type(dbcsr_data_obj), intent(inout) @@ -186,7 +186,7 @@

Arguments

- + integer, intent(in), @@ -201,7 +201,7 @@

Arguments

- + integer, intent(in), @@ -216,7 +216,7 @@

Arguments

- + type(dbcsr_scalar_type), intent(in), @@ -261,7 +261,7 @@

Arguments

- + logical, intent(in) @@ -301,7 +301,7 @@

Arguments

- + type(dbcsr_data_obj), intent(inout) @@ -316,7 +316,7 @@

Arguments

- + integer, intent(in), @@ -332,7 +332,7 @@

Arguments

- + integer, intent(in), @@ -348,7 +348,7 @@

Arguments

- + type(dbcsr_scalar_type), intent(in), diff --git a/develop/interface/dbcsr_data_copy.html b/develop/interface/dbcsr_data_copy.html index 0aeca4c4f0f..1b05f9e90bd 100644 --- a/develop/interface/dbcsr_data_copy.html +++ b/develop/interface/dbcsr_data_copy.html @@ -175,7 +175,7 @@

Arguments

- + type(dbcsr_data_obj), intent(inout) @@ -222,7 +222,7 @@

Arguments

- + type(dbcsr_data_obj), intent(in) @@ -295,7 +295,7 @@

Arguments

- + type(dbcsr_data_obj), intent(inout) @@ -310,7 +310,7 @@

Arguments

- + integer, intent(in) @@ -326,7 +326,7 @@

Arguments

- + integer, intent(in) @@ -342,7 +342,7 @@

Arguments

- + real(kind=real_4), intent(in), @@ -398,7 +398,7 @@

Arguments

- + type(dbcsr_data_obj), intent(inout) @@ -413,7 +413,7 @@

Arguments

- + integer, intent(in) @@ -429,7 +429,7 @@

Arguments

- + integer, intent(in) @@ -445,7 +445,7 @@

Arguments

- + real(kind=real_8), intent(in), @@ -501,7 +501,7 @@

Arguments

- + type(dbcsr_data_obj), intent(inout) @@ -516,7 +516,7 @@

Arguments

- + integer, intent(in) @@ -532,7 +532,7 @@

Arguments

- + integer, intent(in) @@ -548,7 +548,7 @@

Arguments

- + complex(kind=real_4), intent(in), @@ -604,7 +604,7 @@

Arguments

- + type(dbcsr_data_obj), intent(inout) @@ -619,7 +619,7 @@

Arguments

- + integer, intent(in) @@ -635,7 +635,7 @@

Arguments

- + integer, intent(in) @@ -651,7 +651,7 @@

Arguments

- + complex(kind=real_8), intent(in), diff --git a/develop/interface/dbcsr_data_get_sizes.html b/develop/interface/dbcsr_data_get_sizes.html index 48305a93f19..fff7b7bb3ce 100644 --- a/develop/interface/dbcsr_data_get_sizes.html +++ b/develop/interface/dbcsr_data_get_sizes.html @@ -172,7 +172,7 @@

Arguments

- + type(dbcsr_data_obj), intent(in) @@ -187,7 +187,7 @@

Arguments

- + integer, intent(out), @@ -202,7 +202,7 @@

Arguments

- + logical, intent(out) @@ -242,7 +242,7 @@

Arguments

- + type(dbcsr_data_obj), intent(in) @@ -272,7 +272,7 @@

Arguments

- + logical, intent(out) @@ -312,7 +312,7 @@

Arguments

- + type(dbcsr_data_obj), intent(in) @@ -327,7 +327,7 @@

Arguments

- + integer, intent(out) @@ -343,7 +343,7 @@

Arguments

- + integer, intent(out) @@ -359,7 +359,7 @@

Arguments

- + logical, intent(out) diff --git a/develop/interface/dbcsr_data_set.html b/develop/interface/dbcsr_data_set.html index b46caa3154d..0f75505270a 100644 --- a/develop/interface/dbcsr_data_set.html +++ b/develop/interface/dbcsr_data_set.html @@ -175,7 +175,7 @@

Arguments

- + type(dbcsr_data_obj), intent(inout) @@ -190,7 +190,7 @@

Arguments

- + integer, intent(in) @@ -206,7 +206,7 @@

Arguments

- + integer, intent(in) @@ -222,7 +222,7 @@

Arguments

- + type(dbcsr_data_obj), intent(in) @@ -344,7 +344,7 @@

Arguments

- + type(dbcsr_data_obj), intent(inout) @@ -359,7 +359,7 @@

Arguments

- + integer, intent(in) @@ -375,7 +375,7 @@

Arguments

- + integer, intent(in) @@ -391,7 +391,7 @@

Arguments

- + real(kind=real_4), intent(in), @@ -447,7 +447,7 @@

Arguments

- + type(dbcsr_data_obj), intent(inout) @@ -462,7 +462,7 @@

Arguments

- + integer, intent(in) @@ -478,7 +478,7 @@

Arguments

- + integer, intent(in) @@ -494,7 +494,7 @@

Arguments

- + real(kind=real_8), intent(in), @@ -550,7 +550,7 @@

Arguments

- + type(dbcsr_data_obj), intent(inout) @@ -565,7 +565,7 @@

Arguments

- + integer, intent(in) @@ -581,7 +581,7 @@

Arguments

- + integer, intent(in) @@ -597,7 +597,7 @@

Arguments

- + complex(kind=real_4), intent(in), @@ -653,7 +653,7 @@

Arguments

- + type(dbcsr_data_obj), intent(inout) @@ -668,7 +668,7 @@

Arguments

- + integer, intent(in) @@ -684,7 +684,7 @@

Arguments

- + integer, intent(in) @@ -700,7 +700,7 @@

Arguments

- + complex(kind=real_8), intent(in), diff --git a/develop/interface/dbcsr_data_set_pointer.html b/develop/interface/dbcsr_data_set_pointer.html index 80d97bc3879..388a53a25d7 100644 --- a/develop/interface/dbcsr_data_set_pointer.html +++ b/develop/interface/dbcsr_data_set_pointer.html @@ -178,7 +178,7 @@

Arguments

- + type(dbcsr_data_obj), intent(inout) @@ -193,7 +193,7 @@

Arguments

- + real(kind=real_4), @@ -233,7 +233,7 @@

Arguments

- + type(dbcsr_data_obj), intent(inout) @@ -248,7 +248,7 @@

Arguments

- + real(kind=real_8), @@ -288,7 +288,7 @@

Arguments

- + type(dbcsr_data_obj), intent(inout) @@ -303,7 +303,7 @@

Arguments

- + complex(kind=real_4), @@ -343,7 +343,7 @@

Arguments

- + type(dbcsr_data_obj), intent(inout) @@ -358,7 +358,7 @@

Arguments

- + complex(kind=real_8), @@ -398,7 +398,7 @@

Arguments

- + type(dbcsr_data_obj), intent(inout) @@ -413,7 +413,7 @@

Arguments

- + real(kind=real_4), @@ -453,7 +453,7 @@

Arguments

- + type(dbcsr_data_obj), intent(inout) @@ -468,7 +468,7 @@

Arguments

- + real(kind=real_8), @@ -508,7 +508,7 @@

Arguments

- + type(dbcsr_data_obj), intent(inout) @@ -523,7 +523,7 @@

Arguments

- + complex(kind=real_4), @@ -563,7 +563,7 @@

Arguments

- + type(dbcsr_data_obj), intent(inout) @@ -578,7 +578,7 @@

Arguments

- + complex(kind=real_8), @@ -620,7 +620,7 @@

Arguments

- + type(dbcsr_data_obj), intent(inout) @@ -635,7 +635,7 @@

Arguments

- + integer, intent(in) @@ -651,7 +651,7 @@

Arguments

- + integer, intent(in) diff --git a/develop/interface/dbcsr_distribution_new.html b/develop/interface/dbcsr_distribution_new.html index d66b4b8c050..7844f756eef 100644 --- a/develop/interface/dbcsr_distribution_new.html +++ b/develop/interface/dbcsr_distribution_new.html @@ -172,7 +172,7 @@

Arguments

- + type(dbcsr_distribution_obj), intent(out) @@ -187,7 +187,7 @@

Arguments

- + type(dbcsr_distribution_obj), intent(in), @@ -202,7 +202,7 @@

Arguments

- + type(mp_comm_type), intent(in), @@ -217,7 +217,7 @@

Arguments

- + integer, @@ -232,7 +232,7 @@

Arguments

- + integer, intent(in), @@ -247,7 +247,7 @@

Arguments

- + integer, intent(in), @@ -262,7 +262,7 @@

Arguments

- + logical, intent(in), @@ -303,7 +303,7 @@

Arguments

- + type(dbcsr_distribution_obj), intent(out) @@ -318,7 +318,7 @@

Arguments

- + type(dbcsr_mp_obj), intent(in) @@ -333,7 +333,7 @@

Arguments

- + type(array_i1d_obj), intent(in) @@ -348,7 +348,7 @@

Arguments

- + type(array_i1d_obj), intent(in) @@ -363,7 +363,7 @@

Arguments

- + type(array_i1d_obj), intent(in), @@ -378,7 +378,7 @@

Arguments

- + type(array_i1d_obj), intent(in), @@ -418,7 +418,7 @@

Arguments

- + type(dbcsr_distribution_obj), intent(out) @@ -433,7 +433,7 @@

Arguments

- + type(dbcsr_mp_obj), intent(in) @@ -448,7 +448,7 @@

Arguments

- + integer, intent(in), @@ -463,7 +463,7 @@

Arguments

- + integer, intent(in), @@ -478,7 +478,7 @@

Arguments

- + integer, intent(in), @@ -493,7 +493,7 @@

Arguments

- + integer, intent(in), @@ -508,7 +508,7 @@

Arguments

- + logical, diff --git a/develop/interface/dbcsr_dot.html b/develop/interface/dbcsr_dot.html index bc82fbfec13..2c618cb261a 100644 --- a/develop/interface/dbcsr_dot.html +++ b/develop/interface/dbcsr_dot.html @@ -173,7 +173,7 @@

Arguments

- + type(dbcsr_type), intent(in) @@ -188,7 +188,7 @@

Arguments

- + type(dbcsr_type), intent(in) @@ -243,7 +243,7 @@

Arguments

- + type(dbcsr_type), intent(in) @@ -258,7 +258,7 @@

Arguments

- + type(dbcsr_type), intent(in) @@ -313,7 +313,7 @@

Arguments

- + type(dbcsr_type), intent(in) @@ -328,7 +328,7 @@

Arguments

- + type(dbcsr_type), intent(in) @@ -383,7 +383,7 @@

Arguments

- + type(dbcsr_type), intent(in) @@ -398,7 +398,7 @@

Arguments

- + type(dbcsr_type), intent(in) diff --git a/develop/interface/dbcsr_dot~2.html b/develop/interface/dbcsr_dot~2.html index b1a6ab33310..cb978c60667 100644 --- a/develop/interface/dbcsr_dot~2.html +++ b/develop/interface/dbcsr_dot~2.html @@ -173,7 +173,7 @@

Arguments

- + type(dbcsr_type), intent(in) @@ -189,7 +189,7 @@

Arguments

- + type(dbcsr_type), intent(in) @@ -205,7 +205,7 @@

Arguments

- + real(kind=real_4), intent(inout) @@ -246,7 +246,7 @@

Arguments

- + type(dbcsr_type), intent(in) @@ -262,7 +262,7 @@

Arguments

- + type(dbcsr_type), intent(in) @@ -278,7 +278,7 @@

Arguments

- + real(kind=real_8), intent(inout) @@ -318,7 +318,7 @@

Arguments

- + type(dbcsr_type), intent(in) @@ -334,7 +334,7 @@

Arguments

- + type(dbcsr_type), intent(in) @@ -350,7 +350,7 @@

Arguments

- + complex(kind=real_4), intent(inout) @@ -390,7 +390,7 @@

Arguments

- + type(dbcsr_type), intent(in) @@ -406,7 +406,7 @@

Arguments

- + type(dbcsr_type), intent(in) @@ -422,7 +422,7 @@

Arguments

- + complex(kind=real_8), intent(inout) diff --git a/develop/interface/dbcsr_filter.html b/develop/interface/dbcsr_filter.html index 562ee2d7595..a11190cebb5 100644 --- a/develop/interface/dbcsr_filter.html +++ b/develop/interface/dbcsr_filter.html @@ -174,7 +174,7 @@

Arguments

- + type(dbcsr_type), intent(inout) @@ -189,7 +189,7 @@

Arguments

- + type(dbcsr_scalar_type), intent(in) @@ -204,7 +204,7 @@

Arguments

- + integer, intent(in), @@ -219,7 +219,7 @@

Arguments

- + logical, intent(in), @@ -274,7 +274,7 @@

Arguments

- + type(dbcsr_type), intent(inout) @@ -289,7 +289,7 @@

Arguments

- + real(kind=real_4), intent(in) @@ -304,7 +304,7 @@

Arguments

- + integer, intent(in), @@ -319,7 +319,7 @@

Arguments

- + logical, intent(in), @@ -374,7 +374,7 @@

Arguments

- + type(dbcsr_type), intent(inout) @@ -389,7 +389,7 @@

Arguments

- + real(kind=real_8), intent(in) @@ -404,7 +404,7 @@

Arguments

- + integer, intent(in), @@ -419,7 +419,7 @@

Arguments

- + logical, intent(in), @@ -474,7 +474,7 @@

Arguments

- + type(dbcsr_type), intent(inout) @@ -489,7 +489,7 @@

Arguments

- + complex(kind=real_4), intent(in) @@ -504,7 +504,7 @@

Arguments

- + integer, intent(in), @@ -519,7 +519,7 @@

Arguments

- + logical, intent(in), @@ -574,7 +574,7 @@

Arguments

- + type(dbcsr_type), intent(inout) @@ -589,7 +589,7 @@

Arguments

- + complex(kind=real_8), intent(in) @@ -604,7 +604,7 @@

Arguments

- + integer, intent(in), @@ -619,7 +619,7 @@

Arguments

- + logical, intent(in), diff --git a/develop/interface/dbcsr_get_block_p.html b/develop/interface/dbcsr_get_block_p.html index 2d752630255..30ac1322168 100644 --- a/develop/interface/dbcsr_get_block_p.html +++ b/develop/interface/dbcsr_get_block_p.html @@ -74,20 +74,20 @@

dbcsr_get_block_p
  • 5 statements + title="

    0.0% of total for procedures.

    Including implementation: 162 statements, 0.3% of total for procedures.">10 statements
  • - Source File + Source File
  • @@ -163,7 +170,7 @@

    Module Procedures

    -

    Gets a 1-d block from a dbcsr matrix

    +

    Arguments

    @@ -178,8 +185,8 @@

    Arguments

    @@ -203,13 +210,12 @@

    Arguments

    @@ -219,13 +225,12 @@

    Arguments

    @@ -235,12 +240,12 @@

    Arguments

    @@ -250,12 +255,12 @@

    Arguments

    @@ -265,12 +270,12 @@

    Arguments

    @@ -280,13 +285,12 @@

    Arguments

    @@ -296,8 +300,7 @@

    Arguments

    @@ -312,7 +315,7 @@

    Arguments

    -

    Gets a 1-d block from a dbcsr matrix

    +

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -188,12 +195,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the row -the column

    +
    - + integer, intent(in) :: col -

    the row -the column

    +
    - + real(kind=real_8), :: block -

    the block to get (rank-1 array)

    +
    - + logical, intent(out) :: tr -

    whether the data is transposed

    +
    - + logical, intent(out) :: found -

    whether the block exists in the matrix

    +
    - + integer, intent(out), :: row_size -

    logical row size of block -logical column size of block

    +
    - + integer, intent(out), :: col_size -

    logical row size of block -logical column size of block

    +
    @@ -327,8 +330,8 @@

    Arguments

    @@ -352,13 +355,12 @@

    Arguments

    @@ -368,13 +370,12 @@

    Arguments

    @@ -384,12 +385,12 @@

    Arguments

    @@ -399,12 +400,12 @@

    Arguments

    @@ -414,12 +415,12 @@

    Arguments

    @@ -429,13 +430,12 @@

    Arguments

    @@ -445,8 +445,7 @@

    Arguments

    @@ -461,7 +460,7 @@

    Arguments

    -

    Gets a 1-d block from a dbcsr matrix

    +

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -337,12 +340,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the row -the column

    +
    - + integer, intent(in) :: col -

    the row -the column

    +
    - + real(kind=real_4), :: block -

    the block to get (rank-1 array)

    +
    - + logical, intent(out) :: tr -

    whether the data is transposed

    +
    - + logical, intent(out) :: found -

    whether the block exists in the matrix

    +
    - + integer, intent(out), :: row_size -

    logical row size of block -logical column size of block

    +
    - + integer, intent(out), :: col_size -

    logical row size of block -logical column size of block

    +
    @@ -476,8 +475,8 @@

    Arguments

    @@ -501,13 +500,12 @@

    Arguments

    @@ -517,13 +515,12 @@

    Arguments

    @@ -533,12 +530,12 @@

    Arguments

    @@ -548,12 +545,12 @@

    Arguments

    @@ -563,7 +560,7 @@

    Arguments

    @@ -578,13 +575,12 @@

    Arguments

    @@ -594,8 +590,7 @@

    Arguments

    @@ -610,7 +605,7 @@

    Arguments

    -

    Gets a 1-d block from a dbcsr matrix

    +

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -486,12 +485,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the row -the column

    +
    - + integer, intent(in) :: col -

    the row -the column

    +
    - + complex(kind=real_8), :: block -

    the block to get (rank-1 array)

    +
    - + logical, intent(out) :: tr -

    whether the data is transposed

    +
    - + logical, intent(out) :: found -

    whether the block exists in the matrix

    +
    :: row_size -

    logical row size of block -logical column size of block

    +
    - + integer, intent(out), :: col_size -

    logical row size of block -logical column size of block

    +
    @@ -625,8 +620,8 @@

    Arguments

    @@ -650,13 +645,12 @@

    Arguments

    @@ -666,13 +660,12 @@

    Arguments

    @@ -682,12 +675,12 @@

    Arguments

    @@ -697,12 +690,12 @@

    Arguments

    @@ -712,12 +705,12 @@

    Arguments

    @@ -727,13 +720,12 @@

    Arguments

    @@ -743,8 +735,7 @@

    Arguments

    @@ -759,7 +750,7 @@

    Arguments

    -

    Gets a 2-d block from a dbcsr matrix

    +

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -635,12 +630,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the row -the column

    +
    - + integer, intent(in) :: col -

    the row -the column

    +
    - + complex(kind=real_4), :: block -

    the block to get (rank-1 array)

    +
    - + logical, intent(out) :: tr -

    whether the data is transposed

    +
    - + logical, intent(out) :: found -

    whether the block exists in the matrix

    +
    - + integer, intent(out), :: row_size -

    logical row size of block -logical column size of block

    +
    - + integer, intent(out), :: col_size -

    logical row size of block -logical column size of block

    +
    @@ -774,8 +765,8 @@

    Arguments

    @@ -799,13 +790,12 @@

    Arguments

    @@ -815,13 +805,12 @@

    Arguments

    @@ -831,12 +820,12 @@

    Arguments

    @@ -846,12 +835,12 @@

    Arguments

    @@ -861,12 +850,12 @@

    Arguments

    @@ -876,13 +865,12 @@

    Arguments

    @@ -892,8 +880,7 @@

    Arguments

    @@ -908,7 +895,7 @@

    Arguments

    -

    Gets a 2-d block from a dbcsr matrix

    +

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -784,12 +775,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the row -the column

    +
    - + integer, intent(in) :: col -

    the row -the column

    +
    - + real(kind=real_8), :: block -

    the block to get (rank-2 array)

    +
    - + logical, intent(out) :: tr -

    whether the data is transposed

    +
    - + logical, intent(out) :: found -

    whether the block exists in the matrix

    +
    - + integer, intent(out), :: row_size -

    logical row size of block -logical column size of block

    +
    - + integer, intent(out), :: col_size -

    logical row size of block -logical column size of block

    +
    @@ -923,8 +910,8 @@

    Arguments

    @@ -948,13 +935,12 @@

    Arguments

    @@ -964,13 +950,12 @@

    Arguments

    @@ -980,12 +965,12 @@

    Arguments

    @@ -995,12 +980,12 @@

    Arguments

    @@ -1010,12 +995,12 @@

    Arguments

    @@ -1025,13 +1010,12 @@

    Arguments

    @@ -1041,8 +1025,7 @@

    Arguments

    @@ -1057,7 +1040,7 @@

    Arguments

    -

    Gets a 2-d block from a dbcsr matrix

    +

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -933,12 +920,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the row -the column

    +
    - + integer, intent(in) :: col -

    the row -the column

    +
    - + real(kind=real_4), :: block -

    the block to get (rank-2 array)

    +
    - + logical, intent(out) :: tr -

    whether the data is transposed

    +
    - + logical, intent(out) :: found -

    whether the block exists in the matrix

    +
    - + integer, intent(out), :: row_size -

    logical row size of block -logical column size of block

    +
    - + integer, intent(out), :: col_size -

    logical row size of block -logical column size of block

    +
    @@ -1072,8 +1055,8 @@

    Arguments

    @@ -1097,13 +1080,12 @@

    Arguments

    @@ -1113,13 +1095,12 @@

    Arguments

    @@ -1129,12 +1110,12 @@

    Arguments

    @@ -1144,12 +1125,12 @@

    Arguments

    @@ -1159,12 +1140,12 @@

    Arguments

    @@ -1174,8 +1155,7 @@

    Arguments

    @@ -1190,8 +1170,7 @@

    Arguments

    @@ -1206,7 +1185,7 @@

    Arguments

    -

    Gets a 2-d block from a dbcsr matrix

    +

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -1082,12 +1065,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the row -the column

    +
    - + integer, intent(in) :: col -

    the row -the column

    +
    - + complex(kind=real_8), :: block -

    the block to get (rank-2 array)

    +
    - + logical, intent(out) :: tr -

    whether the data is transposed

    +
    - + logical, intent(out) :: found -

    whether the block exists in the matrix

    +
    - + integer, intent(out), :: row_size -

    logical row size of block -logical column size of block

    +
    :: col_size -

    logical row size of block -logical column size of block

    +
    @@ -1221,8 +1200,8 @@

    Arguments

    @@ -1246,13 +1225,12 @@

    Arguments

    @@ -1262,13 +1240,12 @@

    Arguments

    @@ -1278,12 +1255,12 @@

    Arguments

    @@ -1293,12 +1270,12 @@

    Arguments

    @@ -1308,12 +1285,12 @@

    Arguments

    @@ -1323,13 +1300,12 @@

    Arguments

    @@ -1339,8 +1315,7 @@

    Arguments

    @@ -1351,11 +1326,11 @@

    Arguments

    -

    private subroutine dbcsr_get_block_p_area(matrix, row, col, block, tr, found, row_size, col_size) +

    private subroutine dbcsr_get_block_notrans_p_d(matrix, row, col, block, found, row_size, col_size)

    -

    Gets a block from a dbcsr matrix as a data area

    Read more… +

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -1231,12 +1210,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the row -the column

    +
    - + integer, intent(in) :: col -

    the row -the column

    +
    - + complex(kind=real_4), :: block -

    the block to get (rank-2 array)

    +
    - + logical, intent(out) :: tr -

    whether the data is transposed

    +
    - + logical, intent(out) :: found -

    whether the block exists in the matrix

    +
    - + integer, intent(out), :: row_size -

    logical row size of block -logical column size of block

    +
    - + integer, intent(out), :: col_size -

    logical row size of block -logical column size of block

    +
    @@ -1370,8 +1345,8 @@

    Arguments

    @@ -1395,13 +1370,12 @@

    Arguments

    @@ -1411,28 +1385,27 @@

    Arguments

    - + @@ -1440,15 +1413,129 @@

    Arguments

    - + + + + + + + + + + + + + + + + + + + + +
    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -1380,12 +1355,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the row -the column

    +
    - + integer, intent(in) :: col -

    the row -the column

    +
    - - type(dbcsr_data_obj), + + real(kind=real_8), intent(inout) - + DIMENSION(:), POINTER :: block -

    the block to get

    +
    - + logical, intent(out) ::trfound + +
    + + integer, + intent(out),optional + + ::row_size + +
    + + integer, + intent(out),optional + + ::col_size + +
    + + +
    +
    + +
    +

    private subroutine dbcsr_get_block_notrans_p_s(matrix, row, col, block, found, row_size, col_size) +

    +
    + + + +

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1458,13 +1545,12 @@

    Arguments

    @@ -1474,13 +1560,12 @@

    Arguments

    @@ -1490,8 +1575,787 @@

    Arguments

    + + +
    TypeIntentOptional AttributesName
    + + type(dbcsr_type), + intent(in) + + ::matrix + +
    + + integer, + intent(in) + + ::row + +
    + + integer, + intent(in) + + ::col + +
    + + real(kind=real_4), + + DIMENSION(:), POINTER + ::block -

    whether the data is transposed -whether the block exists in the matrix

    +
    - + logical, intent(out) :: found -

    whether the data is transposed -whether the block exists in the matrix

    +
    - + integer, intent(out), :: row_size -

    logical row size of block -logical column size of block

    +
    - + integer, intent(out), :: col_size -

    logical row size of block -logical column size of block

    + +
    + + +
    +
    + +
    +

    private subroutine dbcsr_get_block_notrans_p_z(matrix, row, col, block, found, row_size, col_size) +

    +
    + + + +

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeIntentOptional AttributesName
    + + type(dbcsr_type), + intent(in) + + ::matrix + +
    + + integer, + intent(in) + + ::row + +
    + + integer, + intent(in) + + ::col + +
    + + complex(kind=real_8), + + DIMENSION(:), POINTER + ::block + +
    + + logical, + intent(out) + + ::found + +
    + + integer, + intent(out),optional + + ::row_size + +
    + + integer, + intent(out),optional + + ::col_size + +
    + + +
    +
    + +
    +

    private subroutine dbcsr_get_block_notrans_p_c(matrix, row, col, block, found, row_size, col_size) +

    +
    + + + +

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeIntentOptional AttributesName
    + + type(dbcsr_type), + intent(in) + + ::matrix + +
    + + integer, + intent(in) + + ::row + +
    + + integer, + intent(in) + + ::col + +
    + + complex(kind=real_4), + + DIMENSION(:), POINTER + ::block + +
    + + logical, + intent(out) + + ::found + +
    + + integer, + intent(out),optional + + ::row_size + +
    + + integer, + intent(out),optional + + ::col_size + +
    + + +
    +
    + +
    +

    private subroutine dbcsr_get_2d_block_notrans_p_d(matrix, row, col, block, found, row_size, col_size) +

    +
    + + + +

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeIntentOptional AttributesName
    + + type(dbcsr_type), + intent(inout) + + ::matrix + +
    + + integer, + intent(in) + + ::row + +
    + + integer, + intent(in) + + ::col + +
    + + real(kind=real_8), + + DIMENSION(:, :), POINTER + ::block + +
    + + logical, + intent(out) + + ::found + +
    + + integer, + intent(out),optional + + ::row_size + +
    + + integer, + intent(out),optional + + ::col_size + +
    + + +
    +
    + +
    +

    private subroutine dbcsr_get_2d_block_notrans_p_s(matrix, row, col, block, found, row_size, col_size) +

    +
    + + + +

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeIntentOptional AttributesName
    + + type(dbcsr_type), + intent(inout) + + ::matrix + +
    + + integer, + intent(in) + + ::row + +
    + + integer, + intent(in) + + ::col + +
    + + real(kind=real_4), + + DIMENSION(:, :), POINTER + ::block + +
    + + logical, + intent(out) + + ::found + +
    + + integer, + intent(out),optional + + ::row_size + +
    + + integer, + intent(out),optional + + ::col_size + +
    + + +
    +
    + +
    +

    private subroutine dbcsr_get_2d_block_notrans_p_z(matrix, row, col, block, found, row_size, col_size) +

    +
    + + + +

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeIntentOptional AttributesName
    + + type(dbcsr_type), + intent(inout) + + ::matrix + +
    + + integer, + intent(in) + + ::row + +
    + + integer, + intent(in) + + ::col + +
    + + complex(kind=real_8), + + DIMENSION(:, :), POINTER + ::block + +
    + + logical, + intent(out) + + ::found + +
    + + integer, + intent(out),optional + + ::row_size + +
    + + integer, + intent(out),optional + + ::col_size + +
    + + +
    +
    + +
    +

    private subroutine dbcsr_get_2d_block_notrans_p_c(matrix, row, col, block, found, row_size, col_size) +

    +
    + + + +

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/develop/interface/dbcsr_get_block_p~2.html b/develop/interface/dbcsr_get_block_p~2.html index 68e4b7d4c5a..a760257bb95 100644 --- a/develop/interface/dbcsr_get_block_p~2.html +++ b/develop/interface/dbcsr_get_block_p~2.html @@ -74,20 +74,20 @@

    dbcsr_get_block_p
  • 10 statements + title="

    0.0% of total for procedures.

    Including implementation: 368 statements, 0.6% of total for procedures.">5 statements
  • - Source File + Source File
  • @@ -170,7 +163,7 @@

    Module Procedures

    - +

    Gets a 1-d block from a dbcsr matrix

    Arguments

    TypeIntentOptional AttributesName
    + + type(dbcsr_type), + intent(inout) + + ::matrix + +
    + + integer, + intent(in) + + ::row + +
    + + integer, + intent(in) + + ::col + +
    + + complex(kind=real_4), + + DIMENSION(:, :), POINTER + ::block + +
    + + logical, + intent(out) + + ::found + +
    + + integer, + intent(out),optional + + ::row_size + +
    + + integer, + intent(out),optional + + ::col_size +
    @@ -185,8 +178,8 @@

    Arguments

    @@ -210,12 +203,13 @@

    Arguments

    @@ -225,12 +219,13 @@

    Arguments

    @@ -240,12 +235,12 @@

    Arguments

    @@ -255,12 +250,12 @@

    Arguments

    @@ -270,12 +265,12 @@

    Arguments

    @@ -285,12 +280,13 @@

    Arguments

    @@ -300,7 +296,8 @@

    Arguments

    @@ -315,7 +312,7 @@

    Arguments

    - +

    Gets a 1-d block from a dbcsr matrix

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -195,7 +188,7 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    :: row - +

    the row +the column

    - + integer, intent(in) :: col - +

    the row +the column

    - + real(kind=real_8), :: block - +

    the block to get (rank-1 array)

    - + logical, intent(out) :: tr - +

    whether the data is transposed

    - + logical, intent(out) :: found - +

    whether the block exists in the matrix

    - + integer, intent(out), :: row_size - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: col_size - +

    logical row size of block +logical column size of block

    @@ -330,8 +327,8 @@

    Arguments

    @@ -355,12 +352,13 @@

    Arguments

    @@ -370,12 +368,13 @@

    Arguments

    @@ -385,12 +384,12 @@

    Arguments

    @@ -400,12 +399,12 @@

    Arguments

    @@ -415,12 +414,12 @@

    Arguments

    @@ -430,12 +429,13 @@

    Arguments

    @@ -445,7 +445,8 @@

    Arguments

    @@ -460,7 +461,7 @@

    Arguments

    - +

    Gets a 1-d block from a dbcsr matrix

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -340,12 +337,12 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    - + integer, intent(in) :: row - +

    the row +the column

    - + integer, intent(in) :: col - +

    the row +the column

    - + real(kind=real_4), :: block - +

    the block to get (rank-1 array)

    - + logical, intent(out) :: tr - +

    whether the data is transposed

    - + logical, intent(out) :: found - +

    whether the block exists in the matrix

    - + integer, intent(out), :: row_size - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: col_size - +

    logical row size of block +logical column size of block

    @@ -475,8 +476,8 @@

    Arguments

    @@ -500,12 +501,13 @@

    Arguments

    @@ -515,12 +517,13 @@

    Arguments

    @@ -530,12 +533,12 @@

    Arguments

    @@ -545,12 +548,12 @@

    Arguments

    @@ -560,12 +563,12 @@

    Arguments

    @@ -575,12 +578,13 @@

    Arguments

    @@ -590,7 +594,8 @@

    Arguments

    @@ -605,7 +610,7 @@

    Arguments

    - +

    Gets a 1-d block from a dbcsr matrix

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -485,12 +486,12 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    - + integer, intent(in) :: row - +

    the row +the column

    - + integer, intent(in) :: col - +

    the row +the column

    - + complex(kind=real_8), :: block - +

    the block to get (rank-1 array)

    - + logical, intent(out) :: tr - +

    whether the data is transposed

    - + logical, intent(out) :: found - +

    whether the block exists in the matrix

    - + integer, intent(out), :: row_size - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: col_size - +

    logical row size of block +logical column size of block

    @@ -620,8 +625,8 @@

    Arguments

    @@ -645,12 +650,13 @@

    Arguments

    @@ -660,12 +666,13 @@

    Arguments

    @@ -675,12 +682,12 @@

    Arguments

    @@ -690,12 +697,12 @@

    Arguments

    @@ -705,7 +712,7 @@

    Arguments

    @@ -720,12 +727,13 @@

    Arguments

    @@ -735,7 +743,8 @@

    Arguments

    @@ -750,7 +759,7 @@

    Arguments

    - +

    Gets a 2-d block from a dbcsr matrix

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -630,12 +635,12 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    - + integer, intent(in) :: row - +

    the row +the column

    - + integer, intent(in) :: col - +

    the row +the column

    - + complex(kind=real_4), :: block - +

    the block to get (rank-1 array)

    - + logical, intent(out) :: tr - +

    whether the data is transposed

    - + logical, intent(out) :: found - +

    whether the block exists in the matrix

    :: row_size - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: col_size - +

    logical row size of block +logical column size of block

    @@ -765,8 +774,8 @@

    Arguments

    @@ -790,12 +799,13 @@

    Arguments

    @@ -805,12 +815,13 @@

    Arguments

    @@ -820,12 +831,12 @@

    Arguments

    @@ -835,12 +846,12 @@

    Arguments

    @@ -850,12 +861,12 @@

    Arguments

    @@ -865,12 +876,13 @@

    Arguments

    @@ -880,7 +892,8 @@

    Arguments

    @@ -895,7 +908,7 @@

    Arguments

    - +

    Gets a 2-d block from a dbcsr matrix

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -775,12 +784,12 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    - + integer, intent(in) :: row - +

    the row +the column

    - + integer, intent(in) :: col - +

    the row +the column

    - + real(kind=real_8), :: block - +

    the block to get (rank-2 array)

    - + logical, intent(out) :: tr - +

    whether the data is transposed

    - + logical, intent(out) :: found - +

    whether the block exists in the matrix

    - + integer, intent(out), :: row_size - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: col_size - +

    logical row size of block +logical column size of block

    @@ -910,8 +923,8 @@

    Arguments

    @@ -935,12 +948,13 @@

    Arguments

    @@ -950,12 +964,13 @@

    Arguments

    @@ -965,12 +980,12 @@

    Arguments

    @@ -980,12 +995,12 @@

    Arguments

    @@ -995,12 +1010,12 @@

    Arguments

    @@ -1010,12 +1025,13 @@

    Arguments

    @@ -1025,7 +1041,8 @@

    Arguments

    @@ -1040,7 +1057,7 @@

    Arguments

    - +

    Gets a 2-d block from a dbcsr matrix

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -920,12 +933,12 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    - + integer, intent(in) :: row - +

    the row +the column

    - + integer, intent(in) :: col - +

    the row +the column

    - + real(kind=real_4), :: block - +

    the block to get (rank-2 array)

    - + logical, intent(out) :: tr - +

    whether the data is transposed

    - + logical, intent(out) :: found - +

    whether the block exists in the matrix

    - + integer, intent(out), :: row_size - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: col_size - +

    logical row size of block +logical column size of block

    @@ -1055,8 +1072,8 @@

    Arguments

    @@ -1080,12 +1097,13 @@

    Arguments

    @@ -1095,12 +1113,13 @@

    Arguments

    @@ -1110,12 +1129,12 @@

    Arguments

    @@ -1125,12 +1144,12 @@

    Arguments

    @@ -1140,12 +1159,12 @@

    Arguments

    @@ -1155,12 +1174,13 @@

    Arguments

    @@ -1170,7 +1190,8 @@

    Arguments

    @@ -1185,7 +1206,7 @@

    Arguments

    - +

    Gets a 2-d block from a dbcsr matrix

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -1065,12 +1082,12 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    - + integer, intent(in) :: row - +

    the row +the column

    - + integer, intent(in) :: col - +

    the row +the column

    - + complex(kind=real_8), :: block - +

    the block to get (rank-2 array)

    - + logical, intent(out) :: tr - +

    whether the data is transposed

    - + logical, intent(out) :: found - +

    whether the block exists in the matrix

    - + integer, intent(out), :: row_size - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: col_size - +

    logical row size of block +logical column size of block

    @@ -1200,8 +1221,8 @@

    Arguments

    @@ -1225,12 +1246,13 @@

    Arguments

    @@ -1240,12 +1262,13 @@

    Arguments

    @@ -1255,12 +1278,12 @@

    Arguments

    @@ -1270,12 +1293,12 @@

    Arguments

    @@ -1285,12 +1308,12 @@

    Arguments

    @@ -1300,12 +1323,13 @@

    Arguments

    @@ -1315,7 +1339,8 @@

    Arguments

    @@ -1326,11 +1351,11 @@

    Arguments

    -

    private subroutine dbcsr_get_block_notrans_p_d(matrix, row, col, block, found, row_size, col_size) +

    private subroutine dbcsr_get_block_p_area(matrix, row, col, block, tr, found, row_size, col_size)

    - +

    Gets a block from a dbcsr matrix as a data area

    Read more…

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -1210,12 +1231,12 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    - + integer, intent(in) :: row - +

    the row +the column

    - + integer, intent(in) :: col - +

    the row +the column

    - + complex(kind=real_4), :: block - +

    the block to get (rank-2 array)

    - + logical, intent(out) :: tr - +

    whether the data is transposed

    - + logical, intent(out) :: found - +

    whether the block exists in the matrix

    - + integer, intent(out), :: row_size - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: col_size - +

    logical row size of block +logical column size of block

    @@ -1345,8 +1370,8 @@

    Arguments

    @@ -1370,12 +1395,13 @@

    Arguments

    @@ -1385,27 +1411,28 @@

    Arguments

    - + @@ -1413,129 +1440,15 @@

    Arguments

    - - - - - - - - - - - - - - - - - - - - -
    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -1355,12 +1380,12 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    - + integer, intent(in) :: row - +

    the row +the column

    - + integer, intent(in) :: col - +

    the row +the column

    - - real(kind=real_8), + + type(dbcsr_data_obj), intent(inout) - DIMENSION(:), POINTER + :: block - +

    the block to get

    - + logical, intent(out) ::found - -
    - - integer, - intent(out),optional - - ::row_size - -
    - - integer, - intent(out),optional - - ::col_size - -
    - - -
    -
    - -
    -

    private subroutine dbcsr_get_block_notrans_p_s(matrix, row, col, block, found, row_size, col_size) -

    -
    - - - -

    Arguments

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -1545,12 +1458,13 @@

    Arguments

    @@ -1560,12 +1474,13 @@

    Arguments

    @@ -1575,787 +1490,8 @@

    Arguments

    - - -
    TypeIntentOptional AttributesName
    - - type(dbcsr_type), - intent(in) - - ::matrix - -
    - - integer, - intent(in) - - ::row - -
    - - integer, - intent(in) - - ::col - -
    - - real(kind=real_4), - - DIMENSION(:), POINTER - ::blocktr - +

    whether the data is transposed +whether the block exists in the matrix

    - + logical, intent(out) :: found - +

    whether the data is transposed +whether the block exists in the matrix

    - + integer, intent(out), :: row_size - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: col_size - -
    - - -
    -
    - -
    -

    private subroutine dbcsr_get_block_notrans_p_z(matrix, row, col, block, found, row_size, col_size) -

    -
    - - - -

    Arguments

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeIntentOptional AttributesName
    - - type(dbcsr_type), - intent(in) - - ::matrix - -
    - - integer, - intent(in) - - ::row - -
    - - integer, - intent(in) - - ::col - -
    - - complex(kind=real_8), - - DIMENSION(:), POINTER - ::block - -
    - - logical, - intent(out) - - ::found - -
    - - integer, - intent(out),optional - - ::row_size - -
    - - integer, - intent(out),optional - - ::col_size - -
    - - -
    -
    - -
    -

    private subroutine dbcsr_get_block_notrans_p_c(matrix, row, col, block, found, row_size, col_size) -

    -
    - - - -

    Arguments

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeIntentOptional AttributesName
    - - type(dbcsr_type), - intent(in) - - ::matrix - -
    - - integer, - intent(in) - - ::row - -
    - - integer, - intent(in) - - ::col - -
    - - complex(kind=real_4), - - DIMENSION(:), POINTER - ::block - -
    - - logical, - intent(out) - - ::found - -
    - - integer, - intent(out),optional - - ::row_size - -
    - - integer, - intent(out),optional - - ::col_size - -
    - - -
    -
    - -
    -

    private subroutine dbcsr_get_2d_block_notrans_p_d(matrix, row, col, block, found, row_size, col_size) -

    -
    - - - -

    Arguments

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeIntentOptional AttributesName
    - - type(dbcsr_type), - intent(inout) - - ::matrix - -
    - - integer, - intent(in) - - ::row - -
    - - integer, - intent(in) - - ::col - -
    - - real(kind=real_8), - - DIMENSION(:, :), POINTER - ::block - -
    - - logical, - intent(out) - - ::found - -
    - - integer, - intent(out),optional - - ::row_size - -
    - - integer, - intent(out),optional - - ::col_size - -
    - - -
    -
    - -
    -

    private subroutine dbcsr_get_2d_block_notrans_p_s(matrix, row, col, block, found, row_size, col_size) -

    -
    - - - -

    Arguments

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeIntentOptional AttributesName
    - - type(dbcsr_type), - intent(inout) - - ::matrix - -
    - - integer, - intent(in) - - ::row - -
    - - integer, - intent(in) - - ::col - -
    - - real(kind=real_4), - - DIMENSION(:, :), POINTER - ::block - -
    - - logical, - intent(out) - - ::found - -
    - - integer, - intent(out),optional - - ::row_size - -
    - - integer, - intent(out),optional - - ::col_size - -
    - - -
    -
    - -
    -

    private subroutine dbcsr_get_2d_block_notrans_p_z(matrix, row, col, block, found, row_size, col_size) -

    -
    - - - -

    Arguments

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeIntentOptional AttributesName
    - - type(dbcsr_type), - intent(inout) - - ::matrix - -
    - - integer, - intent(in) - - ::row - -
    - - integer, - intent(in) - - ::col - -
    - - complex(kind=real_8), - - DIMENSION(:, :), POINTER - ::block - -
    - - logical, - intent(out) - - ::found - -
    - - integer, - intent(out),optional - - ::row_size - -
    - - integer, - intent(out),optional - - ::col_size - -
    - - -
    -
    - -
    -

    private subroutine dbcsr_get_2d_block_notrans_p_c(matrix, row, col, block, found, row_size, col_size) -

    -
    - - - -

    Arguments

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/develop/interface/dbcsr_get_data.html b/develop/interface/dbcsr_get_data.html index 6dd8e9297e6..7f79f271afa 100644 --- a/develop/interface/dbcsr_get_data.html +++ b/develop/interface/dbcsr_get_data.html @@ -177,7 +177,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    @@ -207,7 +207,7 @@

    Arguments

    @@ -223,7 +223,7 @@

    Arguments

    @@ -264,7 +264,7 @@

    Arguments

    @@ -279,7 +279,7 @@

    Arguments

    @@ -294,7 +294,7 @@

    Arguments

    @@ -310,7 +310,7 @@

    Arguments

    @@ -351,7 +351,7 @@

    Arguments

    @@ -366,7 +366,7 @@

    Arguments

    @@ -381,7 +381,7 @@

    Arguments

    @@ -397,7 +397,7 @@

    Arguments

    @@ -438,7 +438,7 @@

    Arguments

    @@ -453,7 +453,7 @@

    Arguments

    @@ -468,7 +468,7 @@

    Arguments

    @@ -484,7 +484,7 @@

    Arguments

    @@ -525,7 +525,7 @@

    Arguments

    @@ -540,7 +540,7 @@

    Arguments

    @@ -555,7 +555,7 @@

    Arguments

    @@ -571,7 +571,7 @@

    Arguments

    @@ -612,7 +612,7 @@

    Arguments

    @@ -627,7 +627,7 @@

    Arguments

    @@ -642,7 +642,7 @@

    Arguments

    @@ -658,7 +658,7 @@

    Arguments

    @@ -699,7 +699,7 @@

    Arguments

    @@ -714,7 +714,7 @@

    Arguments

    @@ -729,7 +729,7 @@

    Arguments

    @@ -745,7 +745,7 @@

    Arguments

    @@ -786,7 +786,7 @@

    Arguments

    @@ -801,7 +801,7 @@

    Arguments

    @@ -816,7 +816,7 @@

    Arguments

    @@ -832,7 +832,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_get_data_cptr.html b/develop/interface/dbcsr_get_data_cptr.html index 12d8d1032d5..3dc78360655 100644 --- a/develop/interface/dbcsr_get_data_cptr.html +++ b/develop/interface/dbcsr_get_data_cptr.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -265,7 +265,7 @@

    Arguments

    @@ -280,7 +280,7 @@

    Arguments

    @@ -295,7 +295,7 @@

    Arguments

    @@ -311,7 +311,7 @@

    Arguments

    @@ -357,7 +357,7 @@

    Arguments

    @@ -372,7 +372,7 @@

    Arguments

    @@ -387,7 +387,7 @@

    Arguments

    @@ -403,7 +403,7 @@

    Arguments

    @@ -449,7 +449,7 @@

    Arguments

    @@ -464,7 +464,7 @@

    Arguments

    @@ -479,7 +479,7 @@

    Arguments

    @@ -495,7 +495,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_get_data_p.html b/develop/interface/dbcsr_get_data_p.html index 4b456052f93..30cc0458336 100644 --- a/develop/interface/dbcsr_get_data_p.html +++ b/develop/interface/dbcsr_get_data_p.html @@ -74,20 +74,20 @@

    dbcsr_get_data_p
  • 3 statements + title="

    0.0% of total for procedures.

    Including implementation: 31 statements, 0.1% of total for procedures.">3 statements
  • - Source File + Source File
  • @@ -154,11 +154,11 @@

    public interface dbcsr_get_data_p

    Module Procedures

    -

    private function dbcsr_get_data_c_s(area, select_data_type, lb, ub) result(DATA) +

    private function dbcsr_get_data_s(matrix, select_data_type, lb, ub) result(DATA)

    -

    Returns the single/double precision real/complex data

    Read more… +

    Arguments

    TypeIntentOptional AttributesName
    - - type(dbcsr_type), - intent(inout) - - ::matrix - -
    - - integer, - intent(in) - - ::row - -
    - - integer, - intent(in) - - ::col - -
    - - complex(kind=real_4), - - DIMENSION(:, :), POINTER - ::block - -
    - - logical, - intent(out) - - ::found - -
    - - integer, - intent(out),optional - - ::row_size - -
    - - integer, - intent(out),optional - - ::col_size - +

    logical row size of block +logical column size of block

    - + type(dbcsr_data_obj), intent(in)
    - + real(kind=real_4),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + real(kind=real_8),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + complex(kind=real_4),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + complex(kind=real_8),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + real(kind=real_4),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + real(kind=real_8),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + complex(kind=real_4),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + complex(kind=real_8),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + real(kind=real_4), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + complex(kind=real_4), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + real(kind=real_8), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + complex(kind=real_8), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    @@ -173,22 +173,22 @@

    Arguments

    - + @@ -198,12 +198,12 @@

    Arguments

    @@ -213,13 +213,12 @@

    Arguments

    @@ -229,8 +228,7 @@

    Arguments

    @@ -240,17 +238,17 @@

    Return Value real(kind=real_4), DIMENSION(:), POINTER

    -

    pointer to data

    +
    -

    private function dbcsr_get_data_c_c(area, select_data_type, lb, ub) result(DATA) +

    private function dbcsr_get_data_c(matrix, select_data_type, lb, ub) result(DATA)

    -

    Returns the single/double precision real/complex data

    Read more… +

    Arguments

    - - type(dbcsr_data_obj), + + type(dbcsr_type), intent(in) ::areamatrix -

    data area

    +
    - + real(kind=real_4), intent(in) :: select_data_type -

    force datatype

    +
    - + integer, intent(in), :: lb -

    lower bound for pointer -upper bound for pointer

    +
    - + integer, intent(in), :: ub -

    lower bound for pointer -upper bound for pointer

    +
    @@ -265,22 +263,22 @@

    Arguments

    - + @@ -290,12 +288,12 @@

    Arguments

    @@ -305,13 +303,12 @@

    Arguments

    @@ -321,8 +318,7 @@

    Arguments

    @@ -332,17 +328,17 @@

    Return Value complex(kind=real_4), DIMENSION(:), POINTER

    -

    pointer to data

    +
    -

    private function dbcsr_get_data_c_d(area, select_data_type, lb, ub) result(DATA) +

    private function dbcsr_get_data_d(matrix, select_data_type, lb, ub) result(DATA)

    -

    Returns the single/double precision real/complex data

    Read more… +

    Arguments

    - - type(dbcsr_data_obj), + + type(dbcsr_type), intent(in) ::areamatrix -

    data area

    +
    - + complex(kind=real_4), intent(in) :: select_data_type -

    force datatype

    +
    - + integer, intent(in), :: lb -

    lower bound for pointer -upper bound for pointer

    +
    - + integer, intent(in), :: ub -

    lower bound for pointer -upper bound for pointer

    +
    @@ -357,22 +353,22 @@

    Arguments

    - + @@ -382,12 +378,12 @@

    Arguments

    @@ -397,13 +393,12 @@

    Arguments

    @@ -413,8 +408,7 @@

    Arguments

    @@ -424,17 +418,17 @@

    Return Value real(kind=real_8), DIMENSION(:), POINTER

    -

    pointer to data

    +
    -

    private function dbcsr_get_data_c_z(area, select_data_type, lb, ub) result(DATA) +

    private function dbcsr_get_data_z(matrix, select_data_type, lb, ub) result(DATA)

    -

    Returns the single/double precision real/complex data

    Read more… +

    Arguments

    - - type(dbcsr_data_obj), + + type(dbcsr_type), intent(in) ::areamatrix -

    data area

    +
    - + real(kind=real_8), intent(in) :: select_data_type -

    force datatype

    +
    - + integer, intent(in), :: lb -

    lower bound for pointer -upper bound for pointer

    +
    - + integer, intent(in), :: ub -

    lower bound for pointer -upper bound for pointer

    +
    @@ -449,22 +443,22 @@

    Arguments

    - + @@ -474,12 +468,12 @@

    Arguments

    @@ -489,13 +483,12 @@

    Arguments

    @@ -505,8 +498,7 @@

    Arguments

    @@ -516,7 +508,7 @@

    Return Value complex(kind=real_8), DIMENSION(:), POINTER

    -

    pointer to data

    + diff --git a/develop/interface/dbcsr_get_data_p~2.html b/develop/interface/dbcsr_get_data_p~2.html index 2003ce9bc80..e014f6090bc 100644 --- a/develop/interface/dbcsr_get_data_p~2.html +++ b/develop/interface/dbcsr_get_data_p~2.html @@ -74,20 +74,20 @@

    dbcsr_get_data_p
  • 3 statements + title="

    0.0% of total for procedures.

    Including implementation: 107 statements, 0.2% of total for procedures.">3 statements
  • - Source File + Source File
  • @@ -154,11 +154,11 @@

    public interface dbcsr_get_data_p

    Module Procedures

    -

    private function dbcsr_get_data_s(matrix, select_data_type, lb, ub) result(DATA) +

    private function dbcsr_get_data_c_s(area, select_data_type, lb, ub) result(DATA)

    - +

    Returns the single/double precision real/complex data

    Read more…

    Arguments

    - - type(dbcsr_data_obj), + + type(dbcsr_type), intent(in) ::areamatrix -

    data area

    +
    - + complex(kind=real_8), intent(in) :: select_data_type -

    force datatype

    +
    - + integer, intent(in), :: lb -

    lower bound for pointer -upper bound for pointer

    +
    - + integer, intent(in), :: ub -

    lower bound for pointer -upper bound for pointer

    +
    @@ -173,22 +173,22 @@

    Arguments

    - + @@ -198,12 +198,12 @@

    Arguments

    @@ -213,12 +213,13 @@

    Arguments

    @@ -228,7 +229,8 @@

    Arguments

    @@ -238,17 +240,17 @@

    Return Value real(kind=real_4), DIMENSION(:), POINTER

    - +

    pointer to data

    -

    private function dbcsr_get_data_c(matrix, select_data_type, lb, ub) result(DATA) +

    private function dbcsr_get_data_c_c(area, select_data_type, lb, ub) result(DATA)

    - +

    Returns the single/double precision real/complex data

    Read more…

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_data_obj), intent(in) ::matrixarea - +

    data area

    - + real(kind=real_4), intent(in) :: select_data_type - +

    force datatype

    - + integer, intent(in), :: lb - +

    lower bound for pointer +upper bound for pointer

    - + integer, intent(in), :: ub - +

    lower bound for pointer +upper bound for pointer

    @@ -263,17 +265,17 @@

    Arguments

    - + @@ -288,12 +290,12 @@

    Arguments

    @@ -303,12 +305,13 @@

    Arguments

    @@ -318,7 +321,8 @@

    Arguments

    @@ -328,17 +332,17 @@

    Return Value complex(kind=real_4), DIMENSION(:), POINTER

    - +

    pointer to data

    -

    private function dbcsr_get_data_d(matrix, select_data_type, lb, ub) result(DATA) +

    private function dbcsr_get_data_c_d(area, select_data_type, lb, ub) result(DATA)

    - +

    Returns the single/double precision real/complex data

    Read more…

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_data_obj), intent(in) ::matrixarea - +

    data area

    :: select_data_type - +

    force datatype

    - + integer, intent(in), :: lb - +

    lower bound for pointer +upper bound for pointer

    - + integer, intent(in), :: ub - +

    lower bound for pointer +upper bound for pointer

    @@ -353,22 +357,22 @@

    Arguments

    - + @@ -378,12 +382,12 @@

    Arguments

    @@ -393,7 +397,8 @@

    Arguments

    @@ -408,7 +413,8 @@

    Arguments

    @@ -418,17 +424,17 @@

    Return Value real(kind=real_8), DIMENSION(:), POINTER

    - +

    pointer to data

    -

    private function dbcsr_get_data_z(matrix, select_data_type, lb, ub) result(DATA) +

    private function dbcsr_get_data_c_z(area, select_data_type, lb, ub) result(DATA)

    - +

    Returns the single/double precision real/complex data

    Read more…

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_data_obj), intent(in) ::matrixarea - +

    data area

    - + real(kind=real_8), intent(in) :: select_data_type - +

    force datatype

    - + integer, intent(in), :: lb - +

    lower bound for pointer +upper bound for pointer

    :: ub - +

    lower bound for pointer +upper bound for pointer

    @@ -443,22 +449,22 @@

    Arguments

    - + @@ -468,12 +474,12 @@

    Arguments

    @@ -483,12 +489,13 @@

    Arguments

    @@ -498,7 +505,8 @@

    Arguments

    @@ -508,7 +516,7 @@

    Return Value complex(kind=real_8), DIMENSION(:), POINTER

    - +

    pointer to data

    diff --git a/develop/interface/dbcsr_get_diag.html b/develop/interface/dbcsr_get_diag.html index 1b7fa5e598a..9df43478530 100644 --- a/develop/interface/dbcsr_get_diag.html +++ b/develop/interface/dbcsr_get_diag.html @@ -173,7 +173,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -283,7 +283,7 @@

    Arguments

    @@ -338,7 +338,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_get_diag~2.html b/develop/interface/dbcsr_get_diag~2.html index 65faa8e4b46..4594c98c22f 100644 --- a/develop/interface/dbcsr_get_diag~2.html +++ b/develop/interface/dbcsr_get_diag~2.html @@ -173,7 +173,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -283,7 +283,7 @@

    Arguments

    @@ -338,7 +338,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_get_wms_data_p.html b/develop/interface/dbcsr_get_wms_data_p.html index 79dbbc71a7c..3edabaa2d63 100644 --- a/develop/interface/dbcsr_get_wms_data_p.html +++ b/develop/interface/dbcsr_get_wms_data_p.html @@ -173,7 +173,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    @@ -278,7 +278,7 @@

    Arguments

    @@ -308,7 +308,7 @@

    Arguments

    @@ -323,7 +323,7 @@

    Arguments

    @@ -338,7 +338,7 @@

    Arguments

    @@ -383,7 +383,7 @@

    Arguments

    @@ -413,7 +413,7 @@

    Arguments

    @@ -428,7 +428,7 @@

    Arguments

    @@ -443,7 +443,7 @@

    Arguments

    @@ -488,7 +488,7 @@

    Arguments

    @@ -518,7 +518,7 @@

    Arguments

    @@ -533,7 +533,7 @@

    Arguments

    @@ -548,7 +548,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_hybrid_alltoall.html b/develop/interface/dbcsr_hybrid_alltoall.html index 2c25f71d280..ec449894a09 100644 --- a/develop/interface/dbcsr_hybrid_alltoall.html +++ b/develop/interface/dbcsr_hybrid_alltoall.html @@ -175,7 +175,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    @@ -220,7 +220,7 @@

    Arguments

    @@ -235,7 +235,7 @@

    Arguments

    @@ -250,7 +250,7 @@

    Arguments

    @@ -356,7 +356,7 @@

    Arguments

    @@ -371,7 +371,7 @@

    Arguments

    @@ -386,7 +386,7 @@

    Arguments

    @@ -401,7 +401,7 @@

    Arguments

    @@ -416,7 +416,7 @@

    Arguments

    @@ -431,7 +431,7 @@

    Arguments

    @@ -537,7 +537,7 @@

    Arguments

    @@ -552,7 +552,7 @@

    Arguments

    @@ -567,7 +567,7 @@

    Arguments

    @@ -582,7 +582,7 @@

    Arguments

    @@ -597,7 +597,7 @@

    Arguments

    @@ -612,7 +612,7 @@

    Arguments

    @@ -718,7 +718,7 @@

    Arguments

    @@ -733,7 +733,7 @@

    Arguments

    @@ -748,7 +748,7 @@

    Arguments

    @@ -763,7 +763,7 @@

    Arguments

    @@ -778,7 +778,7 @@

    Arguments

    @@ -793,7 +793,7 @@

    Arguments

    @@ -899,7 +899,7 @@

    Arguments

    @@ -914,7 +914,7 @@

    Arguments

    @@ -929,7 +929,7 @@

    Arguments

    @@ -944,7 +944,7 @@

    Arguments

    @@ -959,7 +959,7 @@

    Arguments

    @@ -974,7 +974,7 @@

    Arguments

    @@ -1080,7 +1080,7 @@

    Arguments

    @@ -1095,7 +1095,7 @@

    Arguments

    @@ -1110,7 +1110,7 @@

    Arguments

    @@ -1125,7 +1125,7 @@

    Arguments

    @@ -1140,7 +1140,7 @@

    Arguments

    @@ -1155,7 +1155,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_init_lib.html b/develop/interface/dbcsr_init_lib.html index a025c06c530..4f96be5b3e6 100644 --- a/develop/interface/dbcsr_init_lib.html +++ b/develop/interface/dbcsr_init_lib.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -245,7 +245,7 @@

    Arguments

    @@ -320,7 +320,7 @@

    Arguments

    @@ -335,7 +335,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_iterator_next_block.html b/develop/interface/dbcsr_iterator_next_block.html index 0b1961fb445..18fd6654b26 100644 --- a/develop/interface/dbcsr_iterator_next_block.html +++ b/develop/interface/dbcsr_iterator_next_block.html @@ -74,20 +74,20 @@

    dbcsr_iterator_next_block
  • 11 statements + title="

    0.0% of total for procedures.

    Including implementation: 371 statements, 0.6% of total for procedures.">4 statements
  • - Source File + Source File
  • @@ -167,7 +160,7 @@

    public interface dbcsr_iterator_next_block

    Module Procedures

    -

    private subroutine dbcsr_iterator_next_block_index(iterator, row, column, blk, blk_p) +

    private subroutine iterator_next_block_index(iterator, row, column, blk, transposed, blk_p, row_size, col_size, row_offset, col_offset)

    @@ -186,8 +179,8 @@

    Arguments

    @@ -218,7 +211,7 @@

    Arguments

    @@ -235,7 +228,7 @@

    Arguments

    @@ -252,7 +245,22 @@

    Arguments

    + + + + + + + + @@ -262,7 +270,87 @@

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -273,11 +361,11 @@

    Arguments

    -

    private subroutine dbcsr_iterator_next_2d_block_d(iterator, row, column, block, transposed, block_number, row_size, col_size, row_offset, col_offset) +

    private subroutine iterator_next_area_block(iterator, row, column, block, transposed, block_number, row_size, col_size, row_offset, col_offset)

    - +

    Gets the next data block encapsulated in an object.

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_data_obj), intent(in) ::matrixarea - +

    data area

    - + complex(kind=real_8), intent(in) :: select_data_type - +

    force datatype

    - + integer, intent(in), :: lb - +

    lower bound for pointer +upper bound for pointer

    - + integer, intent(in), :: ub - +

    lower bound for pointer +upper bound for pointer

    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_4), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_4), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_8), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_8), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - - type(dbcsr_iterator_type), + + type(dbcsr_iterator), intent(inout) @@ -201,7 +194,7 @@

    Arguments

    - + integer, intent(out)
    - + integer, intent(out)
    - + integer, intent(out)
    - + + logical, + intent(out),optional + + ::transposed +

    whether block is transposed

    +
    + integer, intent(out), :: blk_p -

    index into block data array

    +

    index into block data array +logical row size of block +logical column size of block +logical row offset of block +logical column offset of block

    +
    + + integer, + intent(out),optional + + ::row_size +

    index into block data array +logical row size of block +logical column size of block +logical row offset of block +logical column offset of block

    +
    + + integer, + intent(out),optional + + ::col_size +

    index into block data array +logical row size of block +logical column size of block +logical row offset of block +logical column offset of block

    +
    + + integer, + intent(out),optional + + ::row_offset +

    index into block data array +logical row size of block +logical column size of block +logical row offset of block +logical column offset of block

    +
    + + integer, + intent(out),optional + + ::col_offset +

    index into block data array +logical row size of block +logical column size of block +logical row offset of block +logical column offset of block

    @@ -292,8 +380,8 @@

    Arguments

    @@ -317,12 +405,13 @@

    Arguments

    @@ -332,27 +421,28 @@

    Arguments

    - + @@ -362,12 +452,12 @@

    Arguments

    @@ -377,12 +467,16 @@

    Arguments

    @@ -392,12 +486,16 @@

    Arguments

    @@ -407,12 +505,16 @@

    Arguments

    @@ -422,7 +524,11 @@

    Arguments

    @@ -437,7 +543,11 @@

    Arguments

    @@ -448,11 +558,11 @@

    Arguments

    -

    private subroutine dbcsr_iterator_next_2d_block_s(iterator, row, column, block, transposed, block_number, row_size, col_size, row_offset, col_offset) +

    private subroutine iterator_next_2d_block_d(iterator, row, column, block, transposed, block_number, row_size, col_size, row_offset, col_offset)

    - +

    Gets the next data block, single/double precision real/complex

    Arguments

    - - type(dbcsr_iterator_type), + + type(dbcsr_iterator), intent(inout) @@ -302,12 +390,12 @@

    Arguments

    :: iterator - +

    the iterator

    - + integer, intent(out) :: row - +

    row of the data block +column of the data block

    - + integer, intent(out) :: column - +

    row of the data block +column of the data block

    - - real(kind=real_8), + + type(dbcsr_data_obj), intent(inout) - DIMENSION(:, :), POINTER + :: block - +

    encapsulated data

    - + logical, intent(out) :: transposed - +

    whether the block data is transposed

    - + integer, intent(out), :: block_number - +

    block number +logical row size of block +logical column size of block +logical row offset of block +logical column offset of block

    - + integer, intent(out), :: row_size - +

    block number +logical row size of block +logical column size of block +logical row offset of block +logical column offset of block

    - + integer, intent(out), :: col_size - +

    block number +logical row size of block +logical column size of block +logical row offset of block +logical column offset of block

    - + integer, intent(out), :: row_offset - +

    block number +logical row size of block +logical column size of block +logical row offset of block +logical column offset of block

    :: col_offset - +

    block number +logical row size of block +logical column size of block +logical row offset of block +logical column offset of block

    @@ -467,8 +577,8 @@

    Arguments

    @@ -492,12 +602,13 @@

    Arguments

    @@ -507,13 +618,14 @@

    Arguments

    @@ -537,12 +649,12 @@

    Arguments

    @@ -552,12 +664,12 @@

    Arguments

    @@ -567,12 +679,13 @@

    Arguments

    @@ -582,12 +695,13 @@

    Arguments

    @@ -597,12 +711,13 @@

    Arguments

    @@ -612,7 +727,8 @@

    Arguments

    @@ -623,11 +739,11 @@

    Arguments

    -

    private subroutine dbcsr_iterator_next_2d_block_c(iterator, row, column, block, transposed, block_number, row_size, col_size, row_offset, col_offset) +

    private subroutine iterator_next_2d_block_s(iterator, row, column, block, transposed, block_number, row_size, col_size, row_offset, col_offset)

    - +

    Gets the next data block, single/double precision real/complex

    Arguments

    - - type(dbcsr_iterator_type), + + type(dbcsr_iterator), intent(inout) @@ -477,12 +587,12 @@

    Arguments

    :: iterator - +

    the iterator

    - + integer, intent(out) :: row - +

    row of the data block +column of the data block

    - + integer, intent(out) :: column - +

    row of the data block +column of the data block

    - - real(kind=real_4), + + real(kind=real_8), @@ -522,12 +634,12 @@

    Arguments

    :: block - +

    pointer to the data block

    - + logical, intent(out) :: transposed - +

    whether the block data is transposed

    - + integer, intent(out), :: block_number - +

    block number

    - + integer, intent(out), :: row_size - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: col_size - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: row_offset - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: col_offset - +

    logical row size of block +logical column size of block

    @@ -642,8 +758,8 @@

    Arguments

    @@ -667,12 +783,13 @@

    Arguments

    @@ -682,13 +799,14 @@

    Arguments

    @@ -712,12 +830,12 @@

    Arguments

    @@ -727,12 +845,12 @@

    Arguments

    @@ -742,12 +860,13 @@

    Arguments

    @@ -757,12 +876,13 @@

    Arguments

    @@ -772,12 +892,13 @@

    Arguments

    @@ -787,7 +908,8 @@

    Arguments

    @@ -798,11 +920,11 @@

    Arguments

    -

    private subroutine dbcsr_iterator_next_2d_block_z(iterator, row, column, block, transposed, block_number, row_size, col_size, row_offset, col_offset) +

    private subroutine iterator_next_2d_block_c(iterator, row, column, block, transposed, block_number, row_size, col_size, row_offset, col_offset)

    - +

    Gets the next data block, single/double precision real/complex

    Arguments

    - - type(dbcsr_iterator_type), + + type(dbcsr_iterator), intent(inout) @@ -652,12 +768,12 @@

    Arguments

    :: iterator - +

    the iterator

    - + integer, intent(out) :: row - +

    row of the data block +column of the data block

    - + integer, intent(out) :: column - +

    row of the data block +column of the data block

    - - complex(kind=real_4), + + real(kind=real_4), @@ -697,12 +815,12 @@

    Arguments

    :: block - +

    pointer to the data block

    - + logical, intent(out) :: transposed - +

    whether the block data is transposed

    - + integer, intent(out), :: block_number - +

    block number

    - + integer, intent(out), :: row_size - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: col_size - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: row_offset - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: col_offset - +

    logical row size of block +logical column size of block

    @@ -817,8 +939,8 @@

    Arguments

    @@ -842,12 +964,13 @@

    Arguments

    @@ -857,13 +980,14 @@

    Arguments

    @@ -887,12 +1011,12 @@

    Arguments

    @@ -902,12 +1026,12 @@

    Arguments

    @@ -917,12 +1041,13 @@

    Arguments

    @@ -932,12 +1057,13 @@

    Arguments

    @@ -947,7 +1073,8 @@

    Arguments

    @@ -962,7 +1089,8 @@

    Arguments

    @@ -973,11 +1101,11 @@

    Arguments

    -

    private subroutine dbcsr_iterator_next_1d_block_d(iterator, row, column, block, transposed, block_number, row_size, col_size, row_offset, col_offset) +

    private subroutine iterator_next_2d_block_z(iterator, row, column, block, transposed, block_number, row_size, col_size, row_offset, col_offset)

    - +

    Gets the next data block, single/double precision real/complex

    Arguments

    - - type(dbcsr_iterator_type), + + type(dbcsr_iterator), intent(inout) @@ -827,12 +949,12 @@

    Arguments

    :: iterator - +

    the iterator

    - + integer, intent(out) :: row - +

    row of the data block +column of the data block

    - + integer, intent(out) :: column - +

    row of the data block +column of the data block

    - - complex(kind=real_8), + + complex(kind=real_4), @@ -872,12 +996,12 @@

    Arguments

    :: block - +

    pointer to the data block

    - + logical, intent(out) :: transposed - +

    whether the block data is transposed

    - + integer, intent(out), :: block_number - +

    block number

    - + integer, intent(out), :: row_size - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: col_size - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: row_offset - +

    logical row size of block +logical column size of block

    :: col_offset - +

    logical row size of block +logical column size of block

    @@ -992,8 +1120,8 @@

    Arguments

    @@ -1017,12 +1145,13 @@

    Arguments

    @@ -1032,27 +1161,28 @@

    Arguments

    @@ -1062,12 +1192,12 @@

    Arguments

    @@ -1077,12 +1207,12 @@

    Arguments

    @@ -1092,12 +1222,13 @@

    Arguments

    @@ -1107,12 +1238,13 @@

    Arguments

    @@ -1122,12 +1254,13 @@

    Arguments

    @@ -1137,7 +1270,8 @@

    Arguments

    @@ -1148,11 +1282,11 @@

    Arguments

    -

    private subroutine dbcsr_iterator_next_1d_block_s(iterator, row, column, block, transposed, block_number, row_size, col_size, row_offset, col_offset) +

    private subroutine iterator_next_1d_block_d(iterator, row, column, block, transposed, block_number, row_size, col_size, row_offset, col_offset)

    - +

    Gets the next data block, single/double precision real/complex

    Arguments

    - - type(dbcsr_iterator_type), + + type(dbcsr_iterator), intent(inout) @@ -1002,12 +1130,12 @@

    Arguments

    :: iterator - +

    the iterator

    - + integer, intent(out) :: row - +

    row of the data block +column of the data block

    - + integer, intent(out) :: column - +

    row of the data block +column of the data block

    - - real(kind=real_8), + + complex(kind=real_8), - DIMENSION(:), POINTER + DIMENSION(:, :), POINTER :: block - +

    pointer to the data block

    - + logical, intent(out) :: transposed - +

    whether the block data is transposed

    - + integer, intent(out), :: block_number - +

    block number

    - + integer, intent(out), :: row_size - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: col_size - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: row_offset - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: col_offset - +

    logical row size of block +logical column size of block

    @@ -1167,8 +1301,8 @@

    Arguments

    @@ -1192,12 +1326,13 @@

    Arguments

    @@ -1207,13 +1342,14 @@

    Arguments

    @@ -1237,12 +1373,12 @@

    Arguments

    @@ -1252,12 +1388,12 @@

    Arguments

    @@ -1267,12 +1403,13 @@

    Arguments

    @@ -1282,12 +1419,13 @@

    Arguments

    @@ -1297,12 +1435,13 @@

    Arguments

    @@ -1312,7 +1451,8 @@

    Arguments

    @@ -1323,11 +1463,11 @@

    Arguments

    -

    private subroutine dbcsr_iterator_next_1d_block_c(iterator, row, column, block, transposed, block_number, row_size, col_size, row_offset, col_offset) +

    private subroutine iterator_next_1d_block_s(iterator, row, column, block, transposed, block_number, row_size, col_size, row_offset, col_offset)

    - +

    Gets the next data block, single/double precision real/complex

    Arguments

    - - type(dbcsr_iterator_type), + + type(dbcsr_iterator), intent(inout) @@ -1177,12 +1311,12 @@

    Arguments

    :: iterator - +

    the iterator

    - + integer, intent(out) :: row - +

    row of the data block +column of the data block

    - + integer, intent(out) :: column - +

    row of the data block +column of the data block

    - - real(kind=real_4), + + real(kind=real_8), @@ -1222,12 +1358,12 @@

    Arguments

    :: block - +

    pointer to the data block

    - + logical, intent(out) :: transposed - +

    whether the block data is transposed

    - + integer, intent(out), :: block_number - +

    block number

    - + integer, intent(out), :: row_size - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: col_size - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: row_offset - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: col_offset - +

    logical row size of block +logical column size of block

    @@ -1342,8 +1482,8 @@

    Arguments

    @@ -1367,12 +1507,13 @@

    Arguments

    @@ -1382,13 +1523,14 @@

    Arguments

    @@ -1412,12 +1554,12 @@

    Arguments

    @@ -1427,12 +1569,12 @@

    Arguments

    @@ -1442,12 +1584,13 @@

    Arguments

    @@ -1457,12 +1600,13 @@

    Arguments

    @@ -1472,12 +1616,13 @@

    Arguments

    @@ -1487,7 +1632,8 @@

    Arguments

    @@ -1498,11 +1644,11 @@

    Arguments

    -

    private subroutine dbcsr_iterator_next_1d_block_z(iterator, row, column, block, transposed, block_number, row_size, col_size, row_offset, col_offset) +

    private subroutine iterator_next_1d_block_c(iterator, row, column, block, transposed, block_number, row_size, col_size, row_offset, col_offset)

    - +

    Gets the next data block, single/double precision real/complex

    Arguments

    - - type(dbcsr_iterator_type), + + type(dbcsr_iterator), intent(inout) @@ -1352,12 +1492,12 @@

    Arguments

    :: iterator - +

    the iterator

    - + integer, intent(out) :: row - +

    row of the data block +column of the data block

    - + integer, intent(out) :: column - +

    row of the data block +column of the data block

    - - complex(kind=real_4), + + real(kind=real_4), @@ -1397,12 +1539,12 @@

    Arguments

    :: block - +

    pointer to the data block

    - + logical, intent(out) :: transposed - +

    whether the block data is transposed

    - + integer, intent(out), :: block_number - +

    block number

    - + integer, intent(out), :: row_size - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: col_size - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: row_offset - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: col_offset - +

    logical row size of block +logical column size of block

    @@ -1517,8 +1663,8 @@

    Arguments

    @@ -1542,12 +1688,13 @@

    Arguments

    @@ -1557,13 +1704,14 @@

    Arguments

    @@ -1587,12 +1735,12 @@

    Arguments

    @@ -1602,12 +1750,12 @@

    Arguments

    @@ -1617,12 +1765,13 @@

    Arguments

    @@ -1632,12 +1781,13 @@

    Arguments

    @@ -1647,12 +1797,13 @@

    Arguments

    @@ -1662,7 +1813,8 @@

    Arguments

    @@ -1673,11 +1825,11 @@

    Arguments

    -

    private subroutine dbcsr_iterator_next_2d_block_notrans_d(iterator, row, column, block, block_number, row_size, col_size, row_offset, col_offset) +

    private subroutine iterator_next_1d_block_z(iterator, row, column, block, transposed, block_number, row_size, col_size, row_offset, col_offset)

    - +

    Gets the next data block, single/double precision real/complex

    Arguments

    - - type(dbcsr_iterator_type), + + type(dbcsr_iterator), intent(inout) @@ -1527,12 +1673,12 @@

    Arguments

    :: iterator - +

    the iterator

    - + integer, intent(out) :: row - +

    row of the data block +column of the data block

    - + integer, intent(out) :: column - +

    row of the data block +column of the data block

    - - complex(kind=real_8), + + complex(kind=real_4), @@ -1572,12 +1720,12 @@

    Arguments

    :: block - +

    pointer to the data block

    - + logical, intent(out) :: transposed - +

    whether the block data is transposed

    - + integer, intent(out), :: block_number - +

    block number

    - + integer, intent(out), :: row_size - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: col_size - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: row_offset - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: col_offset - +

    logical row size of block +logical column size of block

    @@ -1692,8 +1844,8 @@

    Arguments

    @@ -1717,12 +1869,13 @@

    Arguments

    @@ -1732,27 +1885,43 @@

    Arguments

    + + + + + + + + @@ -1762,12 +1931,12 @@

    Arguments

    @@ -1777,12 +1946,13 @@

    Arguments

    @@ -1792,12 +1962,13 @@

    Arguments

    @@ -1807,12 +1978,13 @@

    Arguments

    @@ -1822,1127 +1994,8 @@

    Arguments

    - - -
    - - type(dbcsr_iterator_type), + + type(dbcsr_iterator), intent(inout) @@ -1702,12 +1854,12 @@

    Arguments

    :: iterator - +

    the iterator

    - + integer, intent(out) :: row - +

    row of the data block +column of the data block

    - + integer, intent(out) :: column - +

    row of the data block +column of the data block

    - - real(kind=real_8), + + complex(kind=real_8), - DIMENSION(:, :), POINTER + DIMENSION(:), POINTER :: block - +

    pointer to the data block

    +
    + + logical, + intent(out) + + ::transposed +

    whether the block data is transposed

    - + integer, intent(out), :: block_number - +

    block number

    - + integer, intent(out), :: row_size - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: col_size - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: row_offset - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: col_offset - -
    - - -
    -
    - -
    -

    private subroutine dbcsr_iterator_next_2d_block_notrans_s(iterator, row, column, block, block_number, row_size, col_size, row_offset, col_offset) -

    -
    - - - -

    Arguments

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeIntentOptional AttributesName
    - - type(dbcsr_iterator_type), - intent(inout) - - ::iterator - -
    - - integer, - intent(out) - - ::row - -
    - - integer, - intent(out) - - ::column - -
    - - real(kind=real_4), - - DIMENSION(:, :), POINTER - ::block - -
    - - integer, - intent(out),optional - - ::block_number - -
    - - integer, - intent(out),optional - - ::row_size - -
    - - integer, - intent(out),optional - - ::col_size - -
    - - integer, - intent(out),optional - - ::row_offset - -
    - - integer, - intent(out),optional - - ::col_offset - -
    - - -
    -
    - -
    -

    private subroutine dbcsr_iterator_next_2d_block_notrans_c(iterator, row, column, block, block_number, row_size, col_size, row_offset, col_offset) -

    -
    - - - -

    Arguments

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeIntentOptional AttributesName
    - - type(dbcsr_iterator_type), - intent(inout) - - ::iterator - -
    - - integer, - intent(out) - - ::row - -
    - - integer, - intent(out) - - ::column - -
    - - complex(kind=real_4), - - DIMENSION(:, :), POINTER - ::block - -
    - - integer, - intent(out),optional - - ::block_number - -
    - - integer, - intent(out),optional - - ::row_size - -
    - - integer, - intent(out),optional - - ::col_size - -
    - - integer, - intent(out),optional - - ::row_offset - -
    - - integer, - intent(out),optional - - ::col_offset - -
    - - -
    -
    - -
    -

    private subroutine dbcsr_iterator_next_2d_block_notrans_z(iterator, row, column, block, block_number, row_size, col_size, row_offset, col_offset) -

    -
    - - - -

    Arguments

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeIntentOptional AttributesName
    - - type(dbcsr_iterator_type), - intent(inout) - - ::iterator - -
    - - integer, - intent(out) - - ::row - -
    - - integer, - intent(out) - - ::column - -
    - - complex(kind=real_8), - - DIMENSION(:, :), POINTER - ::block - -
    - - integer, - intent(out),optional - - ::block_number - -
    - - integer, - intent(out),optional - - ::row_size - -
    - - integer, - intent(out),optional - - ::col_size - -
    - - integer, - intent(out),optional - - ::row_offset - -
    - - integer, - intent(out),optional - - ::col_offset - -
    - - -
    -
    - -
    -

    private subroutine dbcsr_iterator_next_1d_block_notrans_d(iterator, row, column, block, block_number, row_size, col_size, row_offset, col_offset) -

    -
    - - - -

    Arguments

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeIntentOptional AttributesName
    - - type(dbcsr_iterator_type), - intent(inout) - - ::iterator - -
    - - integer, - intent(out) - - ::row - -
    - - integer, - intent(out) - - ::column - -
    - - real(kind=real_8), - - DIMENSION(:), POINTER - ::block - -
    - - integer, - intent(out),optional - - ::block_number - -
    - - integer, - intent(out),optional - - ::row_size - -
    - - integer, - intent(out),optional - - ::col_size - -
    - - integer, - intent(out),optional - - ::row_offset - -
    - - integer, - intent(out),optional - - ::col_offset - -
    - - -
    -
    - -
    -

    private subroutine dbcsr_iterator_next_1d_block_notrans_s(iterator, row, column, block, block_number, row_size, col_size, row_offset, col_offset) -

    -
    - - - -

    Arguments

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeIntentOptional AttributesName
    - - type(dbcsr_iterator_type), - intent(inout) - - ::iterator - -
    - - integer, - intent(out) - - ::row - -
    - - integer, - intent(out) - - ::column - -
    - - real(kind=real_4), - - DIMENSION(:), POINTER - ::block - -
    - - integer, - intent(out),optional - - ::block_number - -
    - - integer, - intent(out),optional - - ::row_size - -
    - - integer, - intent(out),optional - - ::col_size - -
    - - integer, - intent(out),optional - - ::row_offset - -
    - - integer, - intent(out),optional - - ::col_offset - -
    - - -
    -
    - -
    -

    private subroutine dbcsr_iterator_next_1d_block_notrans_c(iterator, row, column, block, block_number, row_size, col_size, row_offset, col_offset) -

    -
    - - - -

    Arguments

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeIntentOptional AttributesName
    - - type(dbcsr_iterator_type), - intent(inout) - - ::iterator - -
    - - integer, - intent(out) - - ::row - -
    - - integer, - intent(out) - - ::column - -
    - - complex(kind=real_4), - - DIMENSION(:), POINTER - ::block - -
    - - integer, - intent(out),optional - - ::block_number - -
    - - integer, - intent(out),optional - - ::row_size - -
    - - integer, - intent(out),optional - - ::col_size - -
    - - integer, - intent(out),optional - - ::row_offset - -
    - - integer, - intent(out),optional - - ::col_offset - -
    - - -
    -
    - -
    -

    private subroutine dbcsr_iterator_next_1d_block_notrans_z(iterator, row, column, block, block_number, row_size, col_size, row_offset, col_offset) -

    -
    - - - -

    Arguments

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/develop/interface/dbcsr_iterator_next_block~2.html b/develop/interface/dbcsr_iterator_next_block~2.html index 3eb8e64df3e..69db8d90488 100644 --- a/develop/interface/dbcsr_iterator_next_block~2.html +++ b/develop/interface/dbcsr_iterator_next_block~2.html @@ -74,20 +74,20 @@

    dbcsr_iterator_next_block
  • 4 statements + title="

    0.0% of total for procedures.

    Including implementation: 153 statements, 0.2% of total for procedures.">11 statements
  • - Source File + Source File
  • @@ -160,7 +167,7 @@

    public interface dbcsr_iterator_next_block

    Module Procedures

    -

    private subroutine iterator_next_block_index(iterator, row, column, blk, transposed, blk_p, row_size, col_size, row_offset, col_offset) +

    private subroutine dbcsr_iterator_next_block_index(iterator, row, column, blk, blk_p)

    @@ -179,8 +186,8 @@

    Arguments

    @@ -211,7 +218,7 @@

    Arguments

    @@ -228,7 +235,7 @@

    Arguments

    @@ -245,22 +252,7 @@

    Arguments

    - - - - - - - - @@ -270,87 +262,7 @@

    Arguments

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -361,11 +273,11 @@

    Arguments

    -

    private subroutine iterator_next_area_block(iterator, row, column, block, transposed, block_number, row_size, col_size, row_offset, col_offset) +

    private subroutine dbcsr_iterator_next_2d_block_d(iterator, row, column, block, transposed, block_number, row_size, col_size, row_offset, col_offset)

    -

    Gets the next data block encapsulated in an object.

    +

    Arguments

    TypeIntentOptional AttributesName
    - - type(dbcsr_iterator_type), - intent(inout) - - ::iterator - -
    - - integer, - intent(out) - - ::row - -
    - - integer, - intent(out) - - ::column - -
    - - complex(kind=real_8), - - DIMENSION(:), POINTER - ::block - -
    - - integer, - intent(out),optional - - ::block_number - -
    - - integer, - intent(out),optional - - ::row_size - -
    - - integer, - intent(out),optional - - ::col_size - -
    - - integer, - intent(out),optional - - ::row_offset - -
    - - integer, - intent(out),optional - - ::col_offset - +

    logical row size of block +logical column size of block

    - - type(dbcsr_iterator), + + type(dbcsr_iterator_type), intent(inout) @@ -194,7 +201,7 @@

    Arguments

    - + integer, intent(out)
    - + integer, intent(out)
    - + integer, intent(out)
    - - logical, - intent(out),optional - - ::transposed -

    whether block is transposed

    -
    - + integer, intent(out), :: blk_p -

    index into block data array -logical row size of block -logical column size of block -logical row offset of block -logical column offset of block

    -
    - - integer, - intent(out),optional - - ::row_size -

    index into block data array -logical row size of block -logical column size of block -logical row offset of block -logical column offset of block

    -
    - - integer, - intent(out),optional - - ::col_size -

    index into block data array -logical row size of block -logical column size of block -logical row offset of block -logical column offset of block

    -
    - - integer, - intent(out),optional - - ::row_offset -

    index into block data array -logical row size of block -logical column size of block -logical row offset of block -logical column offset of block

    -
    - - integer, - intent(out),optional - - ::col_offset -

    index into block data array -logical row size of block -logical column size of block -logical row offset of block -logical column offset of block

    +

    index into block data array

    @@ -380,8 +292,8 @@

    Arguments

    @@ -405,13 +317,12 @@

    Arguments

    @@ -421,28 +332,27 @@

    Arguments

    - + @@ -452,12 +362,12 @@

    Arguments

    @@ -467,16 +377,12 @@

    Arguments

    @@ -486,16 +392,12 @@

    Arguments

    @@ -505,16 +407,12 @@

    Arguments

    @@ -524,16 +422,12 @@

    Arguments

    @@ -543,11 +437,7 @@

    Arguments

    @@ -558,11 +448,11 @@

    Arguments

    -

    private subroutine iterator_next_2d_block_d(iterator, row, column, block, transposed, block_number, row_size, col_size, row_offset, col_offset) +

    private subroutine dbcsr_iterator_next_2d_block_s(iterator, row, column, block, transposed, block_number, row_size, col_size, row_offset, col_offset)

    -

    Gets the next data block, single/double precision real/complex

    +

    Arguments

    - - type(dbcsr_iterator), + + type(dbcsr_iterator_type), intent(inout) @@ -390,12 +302,12 @@

    Arguments

    :: iterator -

    the iterator

    +
    - + integer, intent(out) :: row -

    row of the data block -column of the data block

    +
    - + integer, intent(out) :: column -

    row of the data block -column of the data block

    +
    - - type(dbcsr_data_obj), + + real(kind=real_8), intent(inout) - + DIMENSION(:, :), POINTER :: block -

    encapsulated data

    +
    - + logical, intent(out) :: transposed -

    whether the block data is transposed

    +
    - + integer, intent(out), :: block_number -

    block number -logical row size of block -logical column size of block -logical row offset of block -logical column offset of block

    +
    - + integer, intent(out), :: row_size -

    block number -logical row size of block -logical column size of block -logical row offset of block -logical column offset of block

    +
    - + integer, intent(out), :: col_size -

    block number -logical row size of block -logical column size of block -logical row offset of block -logical column offset of block

    +
    - + integer, intent(out), :: row_offset -

    block number -logical row size of block -logical column size of block -logical row offset of block -logical column offset of block

    +
    - + integer, intent(out), :: col_offset -

    block number -logical row size of block -logical column size of block -logical row offset of block -logical column offset of block

    +
    @@ -577,8 +467,8 @@

    Arguments

    @@ -602,13 +492,12 @@

    Arguments

    @@ -618,14 +507,13 @@

    Arguments

    @@ -649,12 +537,12 @@

    Arguments

    @@ -664,12 +552,12 @@

    Arguments

    @@ -679,13 +567,12 @@

    Arguments

    @@ -695,13 +582,12 @@

    Arguments

    @@ -711,13 +597,12 @@

    Arguments

    @@ -727,8 +612,7 @@

    Arguments

    @@ -739,11 +623,11 @@

    Arguments

    -

    private subroutine iterator_next_2d_block_s(iterator, row, column, block, transposed, block_number, row_size, col_size, row_offset, col_offset) +

    private subroutine dbcsr_iterator_next_2d_block_c(iterator, row, column, block, transposed, block_number, row_size, col_size, row_offset, col_offset)

    -

    Gets the next data block, single/double precision real/complex

    +

    Arguments

    - - type(dbcsr_iterator), + + type(dbcsr_iterator_type), intent(inout) @@ -587,12 +477,12 @@

    Arguments

    :: iterator -

    the iterator

    +
    - + integer, intent(out) :: row -

    row of the data block -column of the data block

    +
    - + integer, intent(out) :: column -

    row of the data block -column of the data block

    +
    - - real(kind=real_8), + + real(kind=real_4), @@ -634,12 +522,12 @@

    Arguments

    :: block -

    pointer to the data block

    +
    - + logical, intent(out) :: transposed -

    whether the block data is transposed

    +
    - + integer, intent(out), :: block_number -

    block number

    +
    - + integer, intent(out), :: row_size -

    logical row size of block -logical column size of block

    +
    - + integer, intent(out), :: col_size -

    logical row size of block -logical column size of block

    +
    - + integer, intent(out), :: row_offset -

    logical row size of block -logical column size of block

    +
    - + integer, intent(out), :: col_offset -

    logical row size of block -logical column size of block

    +
    @@ -758,8 +642,8 @@

    Arguments

    @@ -783,13 +667,12 @@

    Arguments

    @@ -799,14 +682,13 @@

    Arguments

    @@ -830,12 +712,12 @@

    Arguments

    @@ -845,12 +727,12 @@

    Arguments

    @@ -860,13 +742,12 @@

    Arguments

    @@ -876,13 +757,12 @@

    Arguments

    @@ -892,8 +772,7 @@

    Arguments

    @@ -908,8 +787,7 @@

    Arguments

    @@ -920,11 +798,11 @@

    Arguments

    -

    private subroutine iterator_next_2d_block_c(iterator, row, column, block, transposed, block_number, row_size, col_size, row_offset, col_offset) +

    private subroutine dbcsr_iterator_next_2d_block_z(iterator, row, column, block, transposed, block_number, row_size, col_size, row_offset, col_offset)

    -

    Gets the next data block, single/double precision real/complex

    +

    Arguments

    - - type(dbcsr_iterator), + + type(dbcsr_iterator_type), intent(inout) @@ -768,12 +652,12 @@

    Arguments

    :: iterator -

    the iterator

    +
    - + integer, intent(out) :: row -

    row of the data block -column of the data block

    +
    - + integer, intent(out) :: column -

    row of the data block -column of the data block

    +
    - - real(kind=real_4), + + complex(kind=real_4), @@ -815,12 +697,12 @@

    Arguments

    :: block -

    pointer to the data block

    +
    - + logical, intent(out) :: transposed -

    whether the block data is transposed

    +
    - + integer, intent(out), :: block_number -

    block number

    +
    - + integer, intent(out), :: row_size -

    logical row size of block -logical column size of block

    +
    - + integer, intent(out), :: col_size -

    logical row size of block -logical column size of block

    +
    - + integer, intent(out), :: row_offset -

    logical row size of block -logical column size of block

    +
    :: col_offset -

    logical row size of block -logical column size of block

    +
    @@ -939,8 +817,8 @@

    Arguments

    @@ -964,13 +842,12 @@

    Arguments

    @@ -980,14 +857,13 @@

    Arguments

    @@ -1011,12 +887,12 @@

    Arguments

    @@ -1026,12 +902,12 @@

    Arguments

    @@ -1041,13 +917,12 @@

    Arguments

    @@ -1057,13 +932,12 @@

    Arguments

    @@ -1073,13 +947,12 @@

    Arguments

    @@ -1089,8 +962,7 @@

    Arguments

    @@ -1101,11 +973,11 @@

    Arguments

    -

    private subroutine iterator_next_2d_block_z(iterator, row, column, block, transposed, block_number, row_size, col_size, row_offset, col_offset) +

    private subroutine dbcsr_iterator_next_1d_block_d(iterator, row, column, block, transposed, block_number, row_size, col_size, row_offset, col_offset)

    -

    Gets the next data block, single/double precision real/complex

    +

    Arguments

    - - type(dbcsr_iterator), + + type(dbcsr_iterator_type), intent(inout) @@ -949,12 +827,12 @@

    Arguments

    :: iterator -

    the iterator

    +
    - + integer, intent(out) :: row -

    row of the data block -column of the data block

    +
    - + integer, intent(out) :: column -

    row of the data block -column of the data block

    +
    - - complex(kind=real_4), + + complex(kind=real_8), @@ -996,12 +872,12 @@

    Arguments

    :: block -

    pointer to the data block

    +
    - + logical, intent(out) :: transposed -

    whether the block data is transposed

    +
    - + integer, intent(out), :: block_number -

    block number

    +
    - + integer, intent(out), :: row_size -

    logical row size of block -logical column size of block

    +
    - + integer, intent(out), :: col_size -

    logical row size of block -logical column size of block

    +
    - + integer, intent(out), :: row_offset -

    logical row size of block -logical column size of block

    +
    - + integer, intent(out), :: col_offset -

    logical row size of block -logical column size of block

    +
    @@ -1120,8 +992,8 @@

    Arguments

    @@ -1145,13 +1017,12 @@

    Arguments

    @@ -1161,28 +1032,27 @@

    Arguments

    @@ -1192,12 +1062,12 @@

    Arguments

    @@ -1207,12 +1077,12 @@

    Arguments

    @@ -1222,13 +1092,12 @@

    Arguments

    @@ -1238,13 +1107,12 @@

    Arguments

    @@ -1254,13 +1122,12 @@

    Arguments

    @@ -1270,8 +1137,7 @@

    Arguments

    @@ -1282,11 +1148,11 @@

    Arguments

    -

    private subroutine iterator_next_1d_block_d(iterator, row, column, block, transposed, block_number, row_size, col_size, row_offset, col_offset) +

    private subroutine dbcsr_iterator_next_1d_block_s(iterator, row, column, block, transposed, block_number, row_size, col_size, row_offset, col_offset)

    -

    Gets the next data block, single/double precision real/complex

    +

    Arguments

    - - type(dbcsr_iterator), + + type(dbcsr_iterator_type), intent(inout) @@ -1130,12 +1002,12 @@

    Arguments

    :: iterator -

    the iterator

    +
    - + integer, intent(out) :: row -

    row of the data block -column of the data block

    +
    - + integer, intent(out) :: column -

    row of the data block -column of the data block

    +
    - - complex(kind=real_8), + + real(kind=real_8), - DIMENSION(:, :), POINTER + DIMENSION(:), POINTER :: block -

    pointer to the data block

    +
    - + logical, intent(out) :: transposed -

    whether the block data is transposed

    +
    - + integer, intent(out), :: block_number -

    block number

    +
    - + integer, intent(out), :: row_size -

    logical row size of block -logical column size of block

    +
    - + integer, intent(out), :: col_size -

    logical row size of block -logical column size of block

    +
    - + integer, intent(out), :: row_offset -

    logical row size of block -logical column size of block

    +
    - + integer, intent(out), :: col_offset -

    logical row size of block -logical column size of block

    +
    @@ -1302,7 +1168,7 @@

    Arguments

    @@ -1326,13 +1192,12 @@

    Arguments

    @@ -1342,14 +1207,13 @@

    Arguments

    @@ -1373,12 +1237,12 @@

    Arguments

    @@ -1388,12 +1252,12 @@

    Arguments

    @@ -1403,13 +1267,12 @@

    Arguments

    @@ -1419,13 +1282,12 @@

    Arguments

    @@ -1435,13 +1297,12 @@

    Arguments

    @@ -1451,8 +1312,7 @@

    Arguments

    @@ -1463,11 +1323,11 @@

    Arguments

    -

    private subroutine iterator_next_1d_block_s(iterator, row, column, block, transposed, block_number, row_size, col_size, row_offset, col_offset) +

    private subroutine dbcsr_iterator_next_1d_block_c(iterator, row, column, block, transposed, block_number, row_size, col_size, row_offset, col_offset)

    -

    Gets the next data block, single/double precision real/complex

    +

    Arguments

    - type(dbcsr_iterator), + type(dbcsr_iterator_type), intent(inout) @@ -1311,12 +1177,12 @@

    Arguments

    :: iterator -

    the iterator

    +
    - + integer, intent(out) :: row -

    row of the data block -column of the data block

    +
    - + integer, intent(out) :: column -

    row of the data block -column of the data block

    +
    - - real(kind=real_8), + + real(kind=real_4), @@ -1358,12 +1222,12 @@

    Arguments

    :: block -

    pointer to the data block

    +
    - + logical, intent(out) :: transposed -

    whether the block data is transposed

    +
    - + integer, intent(out), :: block_number -

    block number

    +
    - + integer, intent(out), :: row_size -

    logical row size of block -logical column size of block

    +
    - + integer, intent(out), :: col_size -

    logical row size of block -logical column size of block

    +
    - + integer, intent(out), :: row_offset -

    logical row size of block -logical column size of block

    +
    - + integer, intent(out), :: col_offset -

    logical row size of block -logical column size of block

    +
    @@ -1482,8 +1342,8 @@

    Arguments

    @@ -1507,13 +1367,12 @@

    Arguments

    @@ -1523,14 +1382,13 @@

    Arguments

    @@ -1554,12 +1412,12 @@

    Arguments

    @@ -1569,12 +1427,12 @@

    Arguments

    @@ -1584,13 +1442,12 @@

    Arguments

    @@ -1600,13 +1457,12 @@

    Arguments

    @@ -1616,13 +1472,12 @@

    Arguments

    @@ -1632,8 +1487,7 @@

    Arguments

    @@ -1644,11 +1498,11 @@

    Arguments

    -

    private subroutine iterator_next_1d_block_c(iterator, row, column, block, transposed, block_number, row_size, col_size, row_offset, col_offset) +

    private subroutine dbcsr_iterator_next_1d_block_z(iterator, row, column, block, transposed, block_number, row_size, col_size, row_offset, col_offset)

    -

    Gets the next data block, single/double precision real/complex

    +

    Arguments

    - - type(dbcsr_iterator), + + type(dbcsr_iterator_type), intent(inout) @@ -1492,12 +1352,12 @@

    Arguments

    :: iterator -

    the iterator

    +
    - + integer, intent(out) :: row -

    row of the data block -column of the data block

    +
    - + integer, intent(out) :: column -

    row of the data block -column of the data block

    +
    - - real(kind=real_4), + + complex(kind=real_4), @@ -1539,12 +1397,12 @@

    Arguments

    :: block -

    pointer to the data block

    +
    - + logical, intent(out) :: transposed -

    whether the block data is transposed

    +
    - + integer, intent(out), :: block_number -

    block number

    +
    - + integer, intent(out), :: row_size -

    logical row size of block -logical column size of block

    +
    - + integer, intent(out), :: col_size -

    logical row size of block -logical column size of block

    +
    - + integer, intent(out), :: row_offset -

    logical row size of block -logical column size of block

    +
    - + integer, intent(out), :: col_offset -

    logical row size of block -logical column size of block

    +
    @@ -1663,8 +1517,8 @@

    Arguments

    @@ -1688,13 +1542,12 @@

    Arguments

    @@ -1704,14 +1557,13 @@

    Arguments

    @@ -1735,12 +1587,12 @@

    Arguments

    @@ -1750,12 +1602,12 @@

    Arguments

    @@ -1765,13 +1617,12 @@

    Arguments

    @@ -1781,13 +1632,12 @@

    Arguments

    @@ -1797,13 +1647,12 @@

    Arguments

    @@ -1813,8 +1662,7 @@

    Arguments

    @@ -1825,11 +1673,11 @@

    Arguments

    -

    private subroutine iterator_next_1d_block_z(iterator, row, column, block, transposed, block_number, row_size, col_size, row_offset, col_offset) +

    private subroutine dbcsr_iterator_next_2d_block_notrans_d(iterator, row, column, block, block_number, row_size, col_size, row_offset, col_offset)

    -

    Gets the next data block, single/double precision real/complex

    +

    Arguments

    - - type(dbcsr_iterator), + + type(dbcsr_iterator_type), intent(inout) @@ -1673,12 +1527,12 @@

    Arguments

    :: iterator -

    the iterator

    +
    - + integer, intent(out) :: row -

    row of the data block -column of the data block

    +
    - + integer, intent(out) :: column -

    row of the data block -column of the data block

    +
    - - complex(kind=real_4), + + complex(kind=real_8), @@ -1720,12 +1572,12 @@

    Arguments

    :: block -

    pointer to the data block

    +
    - + logical, intent(out) :: transposed -

    whether the block data is transposed

    +
    - + integer, intent(out), :: block_number -

    block number

    +
    - + integer, intent(out), :: row_size -

    logical row size of block -logical column size of block

    +
    - + integer, intent(out), :: col_size -

    logical row size of block -logical column size of block

    +
    - + integer, intent(out), :: row_offset -

    logical row size of block -logical column size of block

    +
    - + integer, intent(out), :: col_offset -

    logical row size of block -logical column size of block

    +
    @@ -1844,8 +1692,8 @@

    Arguments

    @@ -1869,13 +1717,12 @@

    Arguments

    @@ -1885,43 +1732,987 @@

    Arguments

    - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    - - type(dbcsr_iterator), + + type(dbcsr_iterator_type), intent(inout) @@ -1854,12 +1702,12 @@

    Arguments

    :: iterator -

    the iterator

    +
    - + integer, intent(out) :: row -

    row of the data block -column of the data block

    +
    - + integer, intent(out) :: column -

    row of the data block -column of the data block

    +
    - - complex(kind=real_8), + + real(kind=real_8), - DIMENSION(:), POINTER + DIMENSION(:, :), POINTER :: block -

    pointer to the data block

    +
    - - logical, + + integer, intent(out) +intent(out),optional ::transposedblock_number -

    whether the block data is transposed

    +
    - + + integer, + intent(out),optional + + ::row_size + +
    + + integer, + intent(out),optional + + ::col_size + +
    + + integer, + intent(out),optional + + ::row_offset + +
    + + integer, + intent(out),optional + + ::col_offset + +
    + + +
    +
    + +
    +

    private subroutine dbcsr_iterator_next_2d_block_notrans_s(iterator, row, column, block, block_number, row_size, col_size, row_offset, col_offset) +

    +
    + + + +

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeIntentOptional AttributesName
    + + type(dbcsr_iterator_type), + intent(inout) + + ::iterator + +
    + + integer, + intent(out) + + ::row + +
    + + integer, + intent(out) + + ::column + +
    + + real(kind=real_4), + + DIMENSION(:, :), POINTER + ::block + +
    + + integer, + intent(out),optional + + ::block_number + +
    + + integer, + intent(out),optional + + ::row_size + +
    + + integer, + intent(out),optional + + ::col_size + +
    + + integer, + intent(out),optional + + ::row_offset + +
    + + integer, + intent(out),optional + + ::col_offset + +
    + + +
    +
    + +
    +

    private subroutine dbcsr_iterator_next_2d_block_notrans_c(iterator, row, column, block, block_number, row_size, col_size, row_offset, col_offset) +

    +
    + + + +

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeIntentOptional AttributesName
    + + type(dbcsr_iterator_type), + intent(inout) + + ::iterator + +
    + + integer, + intent(out) + + ::row + +
    + + integer, + intent(out) + + ::column + +
    + + complex(kind=real_4), + + DIMENSION(:, :), POINTER + ::block + +
    + + integer, + intent(out),optional + + ::block_number + +
    + + integer, + intent(out),optional + + ::row_size + +
    + + integer, + intent(out),optional + + ::col_size + +
    + + integer, + intent(out),optional + + ::row_offset + +
    + + integer, + intent(out),optional + + ::col_offset + +
    + + +
    +
    + +
    +

    private subroutine dbcsr_iterator_next_2d_block_notrans_z(iterator, row, column, block, block_number, row_size, col_size, row_offset, col_offset) +

    +
    + + + +

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeIntentOptional AttributesName
    + + type(dbcsr_iterator_type), + intent(inout) + + ::iterator + +
    + + integer, + intent(out) + + ::row + +
    + + integer, + intent(out) + + ::column + +
    + + complex(kind=real_8), + + DIMENSION(:, :), POINTER + ::block + +
    + + integer, + intent(out),optional + + ::block_number + +
    + + integer, + intent(out),optional + + ::row_size + +
    + + integer, + intent(out),optional + + ::col_size + +
    + + integer, + intent(out),optional + + ::row_offset + +
    + + integer, + intent(out),optional + + ::col_offset + +
    + + +
    +
    + +
    +

    private subroutine dbcsr_iterator_next_1d_block_notrans_d(iterator, row, column, block, block_number, row_size, col_size, row_offset, col_offset) +

    +
    + + + +

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeIntentOptional AttributesName
    + + type(dbcsr_iterator_type), + intent(inout) + + ::iterator + +
    + + integer, + intent(out) + + ::row + +
    + + integer, + intent(out) + + ::column + +
    + + real(kind=real_8), + + DIMENSION(:), POINTER + ::block + +
    + + integer, + intent(out),optional + + ::block_number + +
    + + integer, + intent(out),optional + + ::row_size + +
    + + integer, + intent(out),optional + + ::col_size + +
    + + integer, + intent(out),optional + + ::row_offset + +
    + + integer, + intent(out),optional + + ::col_offset + +
    + + +
    +
    + +
    +

    private subroutine dbcsr_iterator_next_1d_block_notrans_s(iterator, row, column, block, block_number, row_size, col_size, row_offset, col_offset) +

    +
    + + + +

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeIntentOptional AttributesName
    + + type(dbcsr_iterator_type), + intent(inout) + + ::iterator + +
    + + integer, + intent(out) + + ::row + +
    + + integer, + intent(out) + + ::column + +
    + + real(kind=real_4), + + DIMENSION(:), POINTER + ::block + +
    + + integer, + intent(out),optional + + ::block_number + +
    + + integer, + intent(out),optional + + ::row_size + +
    + + integer, + intent(out),optional + + ::col_size + +
    + + integer, + intent(out),optional + + ::row_offset + +
    + + integer, + intent(out),optional + + ::col_offset + +
    + + +
    +
    + +
    +

    private subroutine dbcsr_iterator_next_1d_block_notrans_c(iterator, row, column, block, block_number, row_size, col_size, row_offset, col_offset) +

    +
    + + + +

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1931,12 +2722,12 @@

    Arguments

    @@ -1946,13 +2737,12 @@

    Arguments

    @@ -1962,13 +2752,12 @@

    Arguments

    @@ -1978,13 +2767,172 @@

    Arguments

    + + + + + + + +
    TypeIntentOptional AttributesName
    + + type(dbcsr_iterator_type), + intent(inout) + + ::iterator + +
    + + integer, + intent(out) + + ::row + +
    + + integer, + intent(out) + + ::column + +
    + + complex(kind=real_4), + + DIMENSION(:), POINTER + ::block + +
    + integer, intent(out), :: block_number -

    block number

    +
    - + integer, intent(out), :: row_size -

    logical row size of block -logical column size of block

    +
    - + integer, intent(out), :: col_size -

    logical row size of block -logical column size of block

    +
    - + integer, intent(out), :: row_offset -

    logical row size of block -logical column size of block

    +
    - + + integer, + intent(out),optional + + ::col_offset + +
    + + +
    +
    + +
    +

    private subroutine dbcsr_iterator_next_1d_block_notrans_z(iterator, row, column, block, block_number, row_size, col_size, row_offset, col_offset) +

    +
    + + + +

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1994,8 +2942,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_mp_new.html b/develop/interface/dbcsr_mp_new.html index 8fd50b080ef..a8c3a69c516 100644 --- a/develop/interface/dbcsr_mp_new.html +++ b/develop/interface/dbcsr_mp_new.html @@ -171,7 +171,7 @@

    Arguments

    @@ -186,7 +186,7 @@

    Arguments

    @@ -201,7 +201,7 @@

    Arguments

    @@ -231,7 +231,7 @@

    Arguments

    @@ -246,7 +246,7 @@

    Arguments

    @@ -261,7 +261,7 @@

    Arguments

    @@ -276,7 +276,7 @@

    Arguments

    @@ -316,7 +316,7 @@

    Arguments

    @@ -331,7 +331,7 @@

    Arguments

    @@ -346,7 +346,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_multiply.html b/develop/interface/dbcsr_multiply.html index 05b140522e6..1f9679a6801 100644 --- a/develop/interface/dbcsr_multiply.html +++ b/develop/interface/dbcsr_multiply.html @@ -74,20 +74,20 @@

    dbcsr_multiply
  • 4 statements + title="

    0.0% of total for procedures.

    Including implementation: 51 statements, 0.1% of total for procedures.">3 statements
  • - Source File + Source File
  • @@ -131,9 +131,8 @@

    Module Procedures

    @@ -155,311 +154,7 @@

    public interface dbcsr_multiply

    Module Procedures

    -

    public subroutine dbcsr_multiply_generic(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop) -

    -
    - -

    Performs a multiplication of two dbcsr_type matrices, -as C := alpha * op( A ) * op( B ) + beta * C.

    Read more… - -

    Arguments

    -

    TypeIntentOptional AttributesName
    + + type(dbcsr_iterator_type), + intent(inout) + + ::iterator + +
    + + integer, + intent(out) + + ::row + +
    + + integer, + intent(out) + + ::column + +
    + + complex(kind=real_8), + + DIMENSION(:), POINTER + ::block + +
    + + integer, + intent(out),optional + + ::block_number + +
    + + integer, + intent(out),optional + + ::row_size + +
    + + integer, + intent(out),optional + + ::col_size + +
    + + integer, + intent(out),optional + + ::row_offset + +
    + integer, intent(out), :: col_offset -

    logical row size of block -logical column size of block

    +
    - + type(dbcsr_mp_obj), intent(out)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_mp_obj), intent(out)
    - + type(mp_comm_type), intent(in)
    - + integer,
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeIntentOptional AttributesName
    - - character(len=1), - intent(in) - - ::transa -

    specifies the form of op( A ) to be used in the matrix multiplication transa = 'N' or 'n', op( A ) = A. transa = 'T' or -'t', op( A ) = transpose(A). transa = 'C' or 'c', op( A ) = transpose(conjg(A)). -specifies the form of op( B ) to be used in the matrix multiplication transb = 'N' or 'n', op( B ) = B. transb = 'T' or -'t', op( B ) = transpose(B). transb = 'C' or 'c', op( B ) = transpose(conjg(B)).

    -
    - - character(len=1), - intent(in) - - ::transb -

    specifies the form of op( A ) to be used in the matrix multiplication transa = 'N' or 'n', op( A ) = A. transa = 'T' or -'t', op( A ) = transpose(A). transa = 'C' or 'c', op( A ) = transpose(conjg(A)). -specifies the form of op( B ) to be used in the matrix multiplication transb = 'N' or 'n', op( B ) = B. transb = 'T' or -'t', op( B ) = transpose(B). transb = 'C' or 'c', op( B ) = transpose(conjg(B)).

    -
    - - type(dbcsr_scalar_type), - intent(in) - - ::alpha -

    scaling of product

    -
    - - type(dbcsr_type), - intent(in) - - ::matrix_a -

    left BCSR matrix -right BCSR matrix

    -
    - - type(dbcsr_type), - intent(in) - - ::matrix_b -

    left BCSR matrix -right BCSR matrix

    -
    - - type(dbcsr_scalar_type), - intent(in) - - ::beta -

    scaling of existing data

    -
    - - type(dbcsr_type), - intent(inout) - - ::matrix_c -

    resulting BCSR product matrix.

    -
    - - integer, - intent(in),optional - - ::first_row -

    first full row of limiting submatrix -last full row of limiting submatrix -first full column of limiting submatrix -last full column of limiting submatrix -first full column of limiting inner product -last full column of limiting inner product

    -
    - - integer, - intent(in),optional - - ::last_row -

    first full row of limiting submatrix -last full row of limiting submatrix -first full column of limiting submatrix -last full column of limiting submatrix -first full column of limiting inner product -last full column of limiting inner product

    -
    - - integer, - intent(in),optional - - ::first_column -

    first full row of limiting submatrix -last full row of limiting submatrix -first full column of limiting submatrix -last full column of limiting submatrix -first full column of limiting inner product -last full column of limiting inner product

    -
    - - integer, - intent(in),optional - - ::last_column -

    first full row of limiting submatrix -last full row of limiting submatrix -first full column of limiting submatrix -last full column of limiting submatrix -first full column of limiting inner product -last full column of limiting inner product

    -
    - - integer, - intent(in),optional - - ::first_k -

    first full row of limiting submatrix -last full row of limiting submatrix -first full column of limiting submatrix -last full column of limiting submatrix -first full column of limiting inner product -last full column of limiting inner product

    -
    - - integer, - intent(in),optional - - ::last_k -

    first full row of limiting submatrix -last full row of limiting submatrix -first full column of limiting submatrix -last full column of limiting submatrix -first full column of limiting inner product -last full column of limiting inner product

    -
    - - logical, - intent(in),optional - - ::retain_sparsity -

    enforce the sparsity pattern of the existing product matrix; default is no

    -
    - - real(kind=real_8), - intent(in),optional - - ::filter_eps -

    Filtering of the matrix

    -
    - - integer(kind=int_8), - intent(out),optional - - ::flop -

    effective flop

    -
    - - -
    -
    - -
    -

    private subroutine dbcsr_multiply_s(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop) +

    private subroutine dbcsr_multiply_d(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop)

    @@ -478,7 +173,7 @@

    Arguments

    - + character(len=1), intent(in) @@ -493,7 +188,7 @@

    Arguments

    - + character(len=1), intent(in) @@ -508,8 +203,8 @@

    Arguments

    - - real(kind=real_4), + + real(kind=real_8), intent(in) @@ -523,8 +218,8 @@

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -538,8 +233,8 @@

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -553,8 +248,8 @@

    Arguments

    - - real(kind=real_4), + + real(kind=real_8), intent(in) @@ -568,8 +263,8 @@

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -598,7 +293,7 @@

    Arguments

    - + integer, intent(in), @@ -643,7 +338,7 @@

    Arguments

    - + integer, intent(in), @@ -658,7 +353,7 @@

    Arguments

    - + integer, intent(in), @@ -673,7 +368,7 @@

    Arguments

    - + logical, intent(in), @@ -688,7 +383,7 @@

    Arguments

    - + real(kind=real_8), intent(in), @@ -703,7 +398,7 @@

    Arguments

    - + integer(kind=int_8), intent(out), @@ -724,7 +419,7 @@

    Arguments

    -

    private subroutine dbcsr_multiply_d(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop) +

    private subroutine dbcsr_multiply_s(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop)

    @@ -743,7 +438,7 @@

    Arguments

    - + character(len=1), intent(in) @@ -758,7 +453,7 @@

    Arguments

    - + character(len=1), intent(in) @@ -773,8 +468,8 @@

    Arguments

    - - real(kind=real_8), + + real(kind=real_4), intent(in) @@ -789,7 +484,7 @@

    Arguments

    - type(dbcsr_type), + type(dbcsr_type), intent(in) @@ -803,8 +498,8 @@

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -818,8 +513,8 @@

    Arguments

    - - real(kind=real_8), + + real(kind=real_4), intent(in) @@ -833,8 +528,8 @@

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -863,7 +558,7 @@

    Arguments

    - + integer, intent(in), @@ -893,7 +588,7 @@

    Arguments

    - + integer, intent(in), @@ -908,7 +603,7 @@

    Arguments

    - + integer, intent(in), @@ -923,7 +618,7 @@

    Arguments

    - + integer, intent(in), @@ -938,7 +633,7 @@

    Arguments

    - + logical, intent(in), @@ -953,7 +648,7 @@

    Arguments

    - + real(kind=real_8), intent(in), @@ -968,7 +663,7 @@

    Arguments

    - + integer(kind=int_8), intent(out), @@ -1008,7 +703,7 @@

    Arguments

    - + character(len=1), intent(in) @@ -1023,7 +718,7 @@

    Arguments

    - + character(len=1), intent(in) @@ -1038,7 +733,7 @@

    Arguments

    - + complex(kind=real_4), intent(in) @@ -1053,8 +748,8 @@

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -1068,8 +763,8 @@

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -1083,7 +778,7 @@

    Arguments

    - + complex(kind=real_4), intent(in) @@ -1098,8 +793,8 @@

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -1113,7 +808,7 @@

    Arguments

    - + integer, intent(in), @@ -1143,7 +838,7 @@

    Arguments

    - + integer, intent(in), @@ -1158,7 +853,7 @@

    Arguments

    - + integer, intent(in), @@ -1188,7 +883,7 @@

    Arguments

    - + integer, intent(in), @@ -1203,7 +898,7 @@

    Arguments

    - + logical, intent(in), @@ -1218,7 +913,7 @@

    Arguments

    - + real(kind=real_8), intent(in), @@ -1233,7 +928,7 @@

    Arguments

    - + integer(kind=int_8), intent(out), @@ -1273,7 +968,7 @@

    Arguments

    - + character(len=1), intent(in) @@ -1288,7 +983,7 @@

    Arguments

    - + character(len=1), intent(in) @@ -1303,7 +998,7 @@

    Arguments

    - + complex(kind=real_8), intent(in) @@ -1318,8 +1013,8 @@

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -1334,7 +1029,7 @@

    Arguments

    - type(dbcsr_type), + type(dbcsr_type), intent(in) @@ -1348,7 +1043,7 @@

    Arguments

    - + complex(kind=real_8), intent(in) @@ -1363,8 +1058,8 @@

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -1378,7 +1073,7 @@

    Arguments

    - + integer, intent(in), @@ -1393,7 +1088,7 @@

    Arguments

    - + integer, intent(in), @@ -1408,7 +1103,7 @@

    Arguments

    - + integer, intent(in), @@ -1423,7 +1118,7 @@

    Arguments

    - + integer, intent(in), @@ -1438,7 +1133,7 @@

    Arguments

    - + integer, intent(in), @@ -1468,7 +1163,7 @@

    Arguments

    - + logical, intent(in), @@ -1483,7 +1178,7 @@

    Arguments

    - + real(kind=real_8), intent(in), @@ -1498,7 +1193,7 @@

    Arguments

    - + integer(kind=int_8), intent(out), diff --git a/develop/interface/dbcsr_multiply~2.html b/develop/interface/dbcsr_multiply~2.html index 4e9d787be73..bb4cf67f033 100644 --- a/develop/interface/dbcsr_multiply~2.html +++ b/develop/interface/dbcsr_multiply~2.html @@ -74,20 +74,20 @@

    dbcsr_multiply
  • 3 statements + title="

    0.0% of total for procedures.

    Including implementation: 426 statements, 0.7% of total for procedures.">4 statements
  • - Source File + Source File
  • @@ -131,8 +131,9 @@

    Module Procedures

    @@ -154,7 +155,311 @@

    public interface dbcsr_multiply

    Module Procedures

    -

    private subroutine dbcsr_multiply_d(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop) +

    public subroutine dbcsr_multiply_generic(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop) +

    +
    + +

    Performs a multiplication of two dbcsr_type matrices, +as C := alpha * op( A ) * op( B ) + beta * C.

    Read more… + +

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeIntentOptional AttributesName
    + + character(len=1), + intent(in) + + ::transa +

    specifies the form of op( A ) to be used in the matrix multiplication transa = 'N' or 'n', op( A ) = A. transa = 'T' or +'t', op( A ) = transpose(A). transa = 'C' or 'c', op( A ) = transpose(conjg(A)). +specifies the form of op( B ) to be used in the matrix multiplication transb = 'N' or 'n', op( B ) = B. transb = 'T' or +'t', op( B ) = transpose(B). transb = 'C' or 'c', op( B ) = transpose(conjg(B)).

    +
    + + character(len=1), + intent(in) + + ::transb +

    specifies the form of op( A ) to be used in the matrix multiplication transa = 'N' or 'n', op( A ) = A. transa = 'T' or +'t', op( A ) = transpose(A). transa = 'C' or 'c', op( A ) = transpose(conjg(A)). +specifies the form of op( B ) to be used in the matrix multiplication transb = 'N' or 'n', op( B ) = B. transb = 'T' or +'t', op( B ) = transpose(B). transb = 'C' or 'c', op( B ) = transpose(conjg(B)).

    +
    + + type(dbcsr_scalar_type), + intent(in) + + ::alpha +

    scaling of product

    +
    + + type(dbcsr_type), + intent(in) + + ::matrix_a +

    left BCSR matrix +right BCSR matrix

    +
    + + type(dbcsr_type), + intent(in) + + ::matrix_b +

    left BCSR matrix +right BCSR matrix

    +
    + + type(dbcsr_scalar_type), + intent(in) + + ::beta +

    scaling of existing data

    +
    + + type(dbcsr_type), + intent(inout) + + ::matrix_c +

    resulting BCSR product matrix.

    +
    + + integer, + intent(in),optional + + ::first_row +

    first full row of limiting submatrix +last full row of limiting submatrix +first full column of limiting submatrix +last full column of limiting submatrix +first full column of limiting inner product +last full column of limiting inner product

    +
    + + integer, + intent(in),optional + + ::last_row +

    first full row of limiting submatrix +last full row of limiting submatrix +first full column of limiting submatrix +last full column of limiting submatrix +first full column of limiting inner product +last full column of limiting inner product

    +
    + + integer, + intent(in),optional + + ::first_column +

    first full row of limiting submatrix +last full row of limiting submatrix +first full column of limiting submatrix +last full column of limiting submatrix +first full column of limiting inner product +last full column of limiting inner product

    +
    + + integer, + intent(in),optional + + ::last_column +

    first full row of limiting submatrix +last full row of limiting submatrix +first full column of limiting submatrix +last full column of limiting submatrix +first full column of limiting inner product +last full column of limiting inner product

    +
    + + integer, + intent(in),optional + + ::first_k +

    first full row of limiting submatrix +last full row of limiting submatrix +first full column of limiting submatrix +last full column of limiting submatrix +first full column of limiting inner product +last full column of limiting inner product

    +
    + + integer, + intent(in),optional + + ::last_k +

    first full row of limiting submatrix +last full row of limiting submatrix +first full column of limiting submatrix +last full column of limiting submatrix +first full column of limiting inner product +last full column of limiting inner product

    +
    + + logical, + intent(in),optional + + ::retain_sparsity +

    enforce the sparsity pattern of the existing product matrix; default is no

    +
    + + real(kind=real_8), + intent(in),optional + + ::filter_eps +

    Filtering of the matrix

    +
    + + integer(kind=int_8), + intent(out),optional + + ::flop +

    effective flop

    +
    + + +
    +

    + +
    +

    private subroutine dbcsr_multiply_s(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop)

    @@ -173,7 +478,7 @@

    Arguments

    - + character(len=1), intent(in) @@ -188,7 +493,7 @@

    Arguments

    - + character(len=1), intent(in) @@ -203,8 +508,8 @@

    Arguments

    - - real(kind=real_8), + + real(kind=real_4), intent(in) @@ -218,8 +523,8 @@

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -233,8 +538,8 @@

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -248,8 +553,8 @@

    Arguments

    - - real(kind=real_8), + + real(kind=real_4), intent(in) @@ -263,8 +568,8 @@

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -278,7 +583,7 @@

    Arguments

    - + integer, intent(in), @@ -293,7 +598,7 @@

    Arguments

    - + integer, intent(in), @@ -308,7 +613,7 @@

    Arguments

    - + integer, intent(in), @@ -323,7 +628,7 @@

    Arguments

    - + integer, intent(in), @@ -338,7 +643,7 @@

    Arguments

    - + integer, intent(in), @@ -353,7 +658,7 @@

    Arguments

    - + integer, intent(in), @@ -368,7 +673,7 @@

    Arguments

    - + logical, intent(in), @@ -383,7 +688,7 @@

    Arguments

    - + real(kind=real_8), intent(in), @@ -398,7 +703,7 @@

    Arguments

    - + integer(kind=int_8), intent(out), @@ -419,7 +724,7 @@

    Arguments

    -

    private subroutine dbcsr_multiply_s(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop) +

    private subroutine dbcsr_multiply_d(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop)

    @@ -438,7 +743,7 @@

    Arguments

    - + character(len=1), intent(in) @@ -453,7 +758,7 @@

    Arguments

    - + character(len=1), intent(in) @@ -468,8 +773,8 @@

    Arguments

    - - real(kind=real_4), + + real(kind=real_8), intent(in) @@ -483,8 +788,8 @@

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -498,8 +803,8 @@

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -513,8 +818,8 @@

    Arguments

    - - real(kind=real_4), + + real(kind=real_8), intent(in) @@ -528,8 +833,8 @@

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -543,7 +848,7 @@

    Arguments

    - + integer, intent(in), @@ -558,7 +863,7 @@

    Arguments

    - + integer, intent(in), @@ -573,7 +878,7 @@

    Arguments

    - + integer, intent(in), @@ -588,7 +893,7 @@

    Arguments

    - + integer, intent(in), @@ -603,7 +908,7 @@

    Arguments

    - + integer, intent(in), @@ -618,7 +923,7 @@

    Arguments

    - + integer, intent(in), @@ -633,7 +938,7 @@

    Arguments

    - + logical, intent(in), @@ -648,7 +953,7 @@

    Arguments

    - + real(kind=real_8), intent(in), @@ -663,7 +968,7 @@

    Arguments

    - + integer(kind=int_8), intent(out), @@ -703,7 +1008,7 @@

    Arguments

    - + character(len=1), intent(in) @@ -718,7 +1023,7 @@

    Arguments

    - + character(len=1), intent(in) @@ -733,7 +1038,7 @@

    Arguments

    - + complex(kind=real_4), intent(in) @@ -748,8 +1053,8 @@

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -763,8 +1068,8 @@

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -778,7 +1083,7 @@

    Arguments

    - + complex(kind=real_4), intent(in) @@ -793,8 +1098,8 @@

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -808,7 +1113,7 @@

    Arguments

    - + integer, intent(in), @@ -823,7 +1128,7 @@

    Arguments

    - + integer, intent(in), @@ -838,7 +1143,7 @@

    Arguments

    - + integer, intent(in), @@ -853,7 +1158,7 @@

    Arguments

    - + integer, intent(in), @@ -868,7 +1173,7 @@

    Arguments

    - + integer, intent(in), @@ -883,7 +1188,7 @@

    Arguments

    - + integer, intent(in), @@ -898,7 +1203,7 @@

    Arguments

    - + logical, intent(in), @@ -913,7 +1218,7 @@

    Arguments

    - + real(kind=real_8), intent(in), @@ -928,7 +1233,7 @@

    Arguments

    - + integer(kind=int_8), intent(out), @@ -968,7 +1273,7 @@

    Arguments

    - + character(len=1), intent(in) @@ -983,7 +1288,7 @@

    Arguments

    - + character(len=1), intent(in) @@ -998,7 +1303,7 @@

    Arguments

    - + complex(kind=real_8), intent(in) @@ -1013,8 +1318,8 @@

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -1028,8 +1333,8 @@

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -1043,7 +1348,7 @@

    Arguments

    - + complex(kind=real_8), intent(in) @@ -1058,8 +1363,8 @@

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -1073,7 +1378,7 @@

    Arguments

    - + integer, intent(in), @@ -1088,7 +1393,7 @@

    Arguments

    - + integer, intent(in), @@ -1103,7 +1408,7 @@

    Arguments

    - + integer, intent(in), @@ -1118,7 +1423,7 @@

    Arguments

    - + integer, intent(in), @@ -1133,7 +1438,7 @@

    Arguments

    - + integer, intent(in), @@ -1148,7 +1453,7 @@

    Arguments

    - + integer, intent(in), @@ -1163,7 +1468,7 @@

    Arguments

    - + logical, intent(in), @@ -1178,7 +1483,7 @@

    Arguments

    - + real(kind=real_8), intent(in), @@ -1193,7 +1498,7 @@

    Arguments

    - + integer(kind=int_8), intent(out), diff --git a/develop/interface/dbcsr_norm.html b/develop/interface/dbcsr_norm.html index 171bb20dda3..ea306760a94 100644 --- a/develop/interface/dbcsr_norm.html +++ b/develop/interface/dbcsr_norm.html @@ -171,7 +171,7 @@

    Arguments

    - + type(dbcsr_type), intent(inout), @@ -241,7 +241,7 @@

    Arguments

    - + type(dbcsr_type), intent(inout), diff --git a/develop/interface/dbcsr_printmat.html b/develop/interface/dbcsr_printmat.html index dad1ba7758d..5c0e9af1f06 100644 --- a/develop/interface/dbcsr_printmat.html +++ b/develop/interface/dbcsr_printmat.html @@ -173,7 +173,7 @@

    Arguments

    - + real(kind=real_4), intent(in), @@ -188,7 +188,7 @@

    Arguments

    - + integer, intent(in) @@ -204,7 +204,7 @@

    Arguments

    - + integer, intent(in) @@ -236,7 +236,7 @@

    Arguments

    - + character(len=*), intent(in), @@ -251,7 +251,7 @@

    Arguments

    - + logical, intent(in), @@ -291,7 +291,7 @@

    Arguments

    - + real(kind=real_8), intent(in), @@ -306,7 +306,7 @@

    Arguments

    - + integer, intent(in) @@ -321,7 +321,7 @@

    Arguments

    - + integer, intent(in) @@ -351,7 +351,7 @@

    Arguments

    - + character(len=*), intent(in), @@ -366,7 +366,7 @@

    Arguments

    - + logical, intent(in), @@ -406,7 +406,7 @@

    Arguments

    - + complex(kind=real_4), intent(in), @@ -421,7 +421,7 @@

    Arguments

    - + integer, intent(in) @@ -436,7 +436,7 @@

    Arguments

    - + integer, intent(in) @@ -466,7 +466,7 @@

    Arguments

    - + character(len=*), intent(in), @@ -481,7 +481,7 @@

    Arguments

    - + logical, intent(in), @@ -521,7 +521,7 @@

    Arguments

    - + complex(kind=real_8), intent(in), @@ -536,7 +536,7 @@

    Arguments

    - + integer, intent(in) @@ -551,7 +551,7 @@

    Arguments

    - + integer, intent(in) @@ -581,7 +581,7 @@

    Arguments

    - + character(len=*), intent(in), @@ -596,7 +596,7 @@

    Arguments

    - + logical, intent(in), diff --git a/develop/interface/dbcsr_put_block.html b/develop/interface/dbcsr_put_block.html index 078c8c83ecc..3ef01591e0d 100644 --- a/develop/interface/dbcsr_put_block.html +++ b/develop/interface/dbcsr_put_block.html @@ -74,20 +74,20 @@

    dbcsr_put_block
  • 5 statements + title="

    0.0% of total for procedures.

    Including implementation: 68 statements, 0.1% of total for procedures.">4 statements
  • - Source File + Source File
  • @@ -131,7 +131,6 @@

    Module Procedures

    - dbcsr_put_block_area dbcsr_put_block_d dbcsr_put_block_s dbcsr_put_block_z @@ -159,14 +158,11 @@

    public interface dbcsr_put_block

    Module Procedures

    -

    private subroutine dbcsr_put_block_area(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale) +

    private subroutine dbcsr_put_block_d(matrix, row, col, block, summation, scale)

    -

    We allow : -matrix(dp) [+]= [scale(dp)] * block(dp) -matrix(dp) [+]= [scale(dp)] * block(sp) -matrix(sp) [+]= [scale(dp)] * block(sp)

    +

    Arguments

    @@ -181,8 +177,8 @@

    Arguments

    @@ -211,7 +207,7 @@

    Arguments

    @@ -226,216 +222,22 @@

    Arguments

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -196,7 +192,7 @@

    Arguments

    - + integer, intent(in)
    - + integer, intent(in)
    - - type(dbcsr_data_obj) - - - ::block - -
    - - integer, - intent(inout),optional, - DIMENSION(2) - ::lb_row_col - -
    - - logical, - intent(in),optional - - ::transposed - -
    - - logical, - intent(in),optional - - ::summation - -
    - - integer(kind=int_8), - intent(inout),optional - - ::flop - -
    - - type(dbcsr_scalar_type), - intent(in),optional - - ::scale - -
    - - -
    -

    - -
    -

    private subroutine dbcsr_put_block_d(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale) -

    -
    - -

    Inserts a block in a dbcsr matrix. - If the block exists, the current data is overwritten.

    Read more… - -

    Arguments

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -445,28 +247,12 @@

    Arguments

    - - - - - - - - @@ -476,7 +262,7 @@

    Arguments

    @@ -487,12 +273,11 @@

    Arguments

    -

    private subroutine dbcsr_put_block_s(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale) +

    private subroutine dbcsr_put_block_s(matrix, row, col, block, summation, scale)

    -

    Inserts a block in a dbcsr matrix. - If the block exists, the current data is overwritten.

    Read more… +

    Arguments

    TypeIntentOptional AttributesName
    - - type(dbcsr_type), - intent(inout) - - ::matrix -

    DBCSR matrix

    -
    - - integer, - intent(in) - - ::row -

    the logical row -the logical column

    -
    - - integer, - intent(in) - - ::col -

    the logical row -the logical column

    -
    - + real(kind=real_8), intent(in), - DIMENSION(:), CONTIGUOUS + DIMENSION(:) :: block -

    the block to put

    -
    - - integer, - intent(inout),optional, - DIMENSION(2) - ::lb_row_col
    - - logical, - intent(in),optional - - ::transposed -

    the block is transposed -if block exists, then sum the new block to the old one instead of replacing it

    -
    - + logical, intent(in), :: summation -

    the block is transposed -if block exists, then sum the new block to the old one instead of replacing it

    -
    - - integer(kind=int_8), - intent(inout),optional - - ::flop
    - + real(kind=real_8), intent(in), :: scale -

    scale the OBblock being added

    +
    @@ -507,8 +292,8 @@

    Arguments

    @@ -532,13 +317,12 @@

    Arguments

    @@ -548,59 +332,27 @@

    Arguments

    - - - - - - - - - - - - - - - - @@ -610,28 +362,12 @@

    Arguments

    - - - - - - - - @@ -641,7 +377,7 @@

    Arguments

    @@ -652,12 +388,11 @@

    Arguments

    -

    private subroutine dbcsr_put_block_z(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale) +

    private subroutine dbcsr_put_block_z(matrix, row, col, block, summation, scale)

    -

    Inserts a block in a dbcsr matrix. - If the block exists, the current data is overwritten.

    Read more… +

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -517,12 +302,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the logical row -the logical column

    +
    - + integer, intent(in) :: col -

    the logical row -the logical column

    +
    - + real(kind=real_4), intent(in), - DIMENSION(:), CONTIGUOUS + DIMENSION(:) :: block -

    the block to put

    -
    - - integer, - intent(inout),optional, - DIMENSION(2) - ::lb_row_col
    - - logical, - intent(in),optional - - ::transposed -

    the block is transposed -if block exists, then sum the new block to the old one instead of replacing it

    -
    - + logical, intent(in), :: summation -

    the block is transposed -if block exists, then sum the new block to the old one instead of replacing it

    -
    - - integer(kind=int_8), - intent(inout),optional - - ::flop
    - + real(kind=real_4), intent(in), :: scale -

    scale the OBblock being added

    +
    @@ -672,8 +407,8 @@

    Arguments

    @@ -697,13 +432,12 @@

    Arguments

    @@ -713,59 +447,27 @@

    Arguments

    - - - - - - - - - - - - - - - - @@ -775,28 +477,12 @@

    Arguments

    - - - - - - - - @@ -806,7 +492,7 @@

    Arguments

    @@ -817,12 +503,11 @@

    Arguments

    -

    private subroutine dbcsr_put_block_c(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale) +

    private subroutine dbcsr_put_block_c(matrix, row, col, block, summation, scale)

    -

    Inserts a block in a dbcsr matrix. - If the block exists, the current data is overwritten.

    Read more… +

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -682,12 +417,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the logical row -the logical column

    +
    - + integer, intent(in) :: col -

    the logical row -the logical column

    +
    - + complex(kind=real_8), intent(in), - DIMENSION(:), CONTIGUOUS + DIMENSION(:) :: block -

    the block to put

    -
    - - integer, - intent(inout),optional, - DIMENSION(2) - ::lb_row_col
    - - logical, - intent(in),optional - - ::transposed -

    the block is transposed -if block exists, then sum the new block to the old one instead of replacing it

    -
    - + logical, intent(in), :: summation -

    the block is transposed -if block exists, then sum the new block to the old one instead of replacing it

    -
    - - integer(kind=int_8), - intent(inout),optional - - ::flop
    - + complex(kind=real_8), intent(in), :: scale -

    scale the OBblock being added

    +
    @@ -837,8 +522,8 @@

    Arguments

    @@ -862,13 +547,12 @@

    Arguments

    @@ -878,59 +562,27 @@

    Arguments

    - - - - - - - - - - - - - - - - @@ -940,28 +592,12 @@

    Arguments

    - - - - - - - - @@ -971,7 +607,7 @@

    Arguments

    @@ -982,11 +618,11 @@

    Arguments

    -

    private subroutine dbcsr_put_block2d_d(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale) +

    private subroutine dbcsr_put_block2d_d(matrix, row, col, block, summation, scale)

    -

    Put a 2-D block in a DBCSR matrix

    +

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -847,12 +532,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the logical row -the logical column

    +
    - + integer, intent(in) :: col -

    the logical row -the logical column

    +
    - + complex(kind=real_4), intent(in), - DIMENSION(:), CONTIGUOUS + DIMENSION(:) :: block -

    the block to put

    -
    - - integer, - intent(inout),optional, - DIMENSION(2) - ::lb_row_col
    - - logical, - intent(in),optional - - ::transposed -

    the block is transposed -if block exists, then sum the new block to the old one instead of replacing it

    -
    - + logical, intent(in), :: summation -

    the block is transposed -if block exists, then sum the new block to the old one instead of replacing it

    -
    - - integer(kind=int_8), - intent(inout),optional - - ::flop
    - + complex(kind=real_4), intent(in), :: scale -

    scale the OBblock being added

    +
    @@ -1001,8 +637,8 @@

    Arguments

    @@ -1026,13 +662,12 @@

    Arguments

    @@ -1042,59 +677,27 @@

    Arguments

    - - - - - - - - - - - - - - - - @@ -1104,28 +707,12 @@

    Arguments

    - - - - - - - - @@ -1135,7 +722,7 @@

    Arguments

    @@ -1146,11 +733,11 @@

    Arguments

    -

    private subroutine dbcsr_put_block2d_s(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale) +

    private subroutine dbcsr_put_block2d_s(matrix, row, col, block, summation, scale)

    -

    Put a 2-D block in a DBCSR matrix

    +

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -1011,12 +647,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the row -the column

    +
    - + integer, intent(in) :: col -

    the row -the column

    +
    - + real(kind=real_8), intent(in), - DIMENSION(:, :), CONTIGUOUS, TARGET + DIMENSION(:, :) :: block -

    the block to put

    -
    - - integer, - intent(inout),optional, - DIMENSION(2) - ::lb_row_col
    - - logical, - intent(in),optional - - ::transposed -

    the block is transposed -if block exists, then sum the new block to the old one instead of replacing it

    -
    - + logical, intent(in), :: summation -

    the block is transposed -if block exists, then sum the new block to the old one instead of replacing it

    -
    - - integer(kind=int_8), - intent(inout),optional - - ::flop
    - + real(kind=real_8), intent(in), :: scale -

    scale the block being added

    +
    @@ -1165,8 +752,8 @@

    Arguments

    @@ -1190,13 +777,12 @@

    Arguments

    @@ -1206,59 +792,27 @@

    Arguments

    - - - - - - - - - - - - - - - - @@ -1268,28 +822,12 @@

    Arguments

    - - - - - - - - @@ -1299,7 +837,7 @@

    Arguments

    @@ -1310,11 +848,11 @@

    Arguments

    -

    private subroutine dbcsr_put_block2d_z(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale) +

    private subroutine dbcsr_put_block2d_z(matrix, row, col, block, summation, scale)

    -

    Put a 2-D block in a DBCSR matrix

    +

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -1175,12 +762,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the row -the column

    +
    - + integer, intent(in) :: col -

    the row -the column

    +
    - + real(kind=real_4), intent(in), - DIMENSION(:, :), CONTIGUOUS, TARGET + DIMENSION(:, :) :: block -

    the block to put

    -
    - - integer, - intent(inout),optional, - DIMENSION(2) - ::lb_row_col
    - - logical, - intent(in),optional - - ::transposed -

    the block is transposed -if block exists, then sum the new block to the old one instead of replacing it

    -
    - + logical, intent(in), :: summation -

    the block is transposed -if block exists, then sum the new block to the old one instead of replacing it

    -
    - - integer(kind=int_8), - intent(inout),optional - - ::flop
    - + real(kind=real_4), intent(in), :: scale -

    scale the block being added

    +
    @@ -1329,8 +867,8 @@

    Arguments

    @@ -1354,13 +892,12 @@

    Arguments

    @@ -1370,59 +907,27 @@

    Arguments

    - - - - - - - - - - - - - - - - @@ -1432,28 +937,12 @@

    Arguments

    - - - - - - - - @@ -1463,7 +952,7 @@

    Arguments

    @@ -1474,11 +963,11 @@

    Arguments

    -

    private subroutine dbcsr_put_block2d_c(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale) +

    private subroutine dbcsr_put_block2d_c(matrix, row, col, block, summation, scale)

    -

    Put a 2-D block in a DBCSR matrix

    +

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -1339,12 +877,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the row -the column

    +
    - + integer, intent(in) :: col -

    the row -the column

    +
    - + complex(kind=real_8), intent(in), - DIMENSION(:, :), CONTIGUOUS, TARGET + DIMENSION(:, :) :: block -

    the block to put

    -
    - - integer, - intent(inout),optional, - DIMENSION(2) - ::lb_row_col
    - - logical, - intent(in),optional - - ::transposed -

    the block is transposed -if block exists, then sum the new block to the old one instead of replacing it

    -
    - + logical, intent(in), :: summation -

    the block is transposed -if block exists, then sum the new block to the old one instead of replacing it

    -
    - - integer(kind=int_8), - intent(inout),optional - - ::flop
    - + complex(kind=real_8), intent(in), :: scale -

    scale the block being added

    +
    @@ -1493,8 +982,8 @@

    Arguments

    @@ -1518,13 +1007,12 @@

    Arguments

    @@ -1534,59 +1022,27 @@

    Arguments

    - - - - - - - - - - - - - - - - @@ -1596,28 +1052,12 @@

    Arguments

    - - - - - - - - @@ -1627,7 +1067,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_put_block~2.html b/develop/interface/dbcsr_put_block~2.html index 5007bd52eaa..975c86ee811 100644 --- a/develop/interface/dbcsr_put_block~2.html +++ b/develop/interface/dbcsr_put_block~2.html @@ -74,20 +74,20 @@

    dbcsr_put_block
  • 4 statements + title="

    0.0% of total for procedures.

    Including implementation: 572 statements, 0.9% of total for procedures.">5 statements
  • - Source File + Source File
  • @@ -131,6 +131,7 @@

    Module Procedures

    + dbcsr_put_block_area dbcsr_put_block_d dbcsr_put_block_s dbcsr_put_block_z @@ -158,11 +159,14 @@

    public interface dbcsr_put_block

    Module Procedures

    -

    private subroutine dbcsr_put_block_d(matrix, row, col, block, summation, scale) +

    private subroutine dbcsr_put_block_area(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale)

    - +

    We allow : +matrix(dp) [+]= [scale(dp)] * block(dp) +matrix(dp) [+]= [scale(dp)] * block(sp) +matrix(sp) [+]= [scale(dp)] * block(sp)

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -1503,12 +992,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the row -the column

    +
    - + integer, intent(in) :: col -

    the row -the column

    +
    - + complex(kind=real_4), intent(in), - DIMENSION(:, :), CONTIGUOUS, TARGET + DIMENSION(:, :) :: block -

    the block to put

    -
    - - integer, - intent(inout),optional, - DIMENSION(2) - ::lb_row_col
    - - logical, - intent(in),optional - - ::transposed -

    the block is transposed -if block exists, then sum the new block to the old one instead of replacing it

    -
    - + logical, intent(in), :: summation -

    the block is transposed -if block exists, then sum the new block to the old one instead of replacing it

    -
    - - integer(kind=int_8), - intent(inout),optional - - ::flop
    - + complex(kind=real_4), intent(in), :: scale -

    scale the block being added

    +
    @@ -177,8 +181,8 @@

    Arguments

    @@ -207,7 +211,7 @@

    Arguments

    @@ -222,22 +226,216 @@

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -192,7 +196,7 @@

    Arguments

    - + integer, intent(in)
    - + integer, intent(in)
    - + + type(dbcsr_data_obj) + + + ::block + +
    + + integer, + intent(inout),optional, + DIMENSION(2) + ::lb_row_col + +
    + + logical, + intent(in),optional + + ::transposed + +
    + + logical, + intent(in),optional + + ::summation + +
    + + integer(kind=int_8), + intent(inout),optional + + ::flop + +
    + + type(dbcsr_scalar_type), + intent(in),optional + + ::scale + +
    + + +
    +
    + +
    +

    private subroutine dbcsr_put_block_d(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale) +

    +
    + +

    Inserts a block in a dbcsr matrix. + If the block exists, the current data is overwritten.

    Read more… + +

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -247,12 +445,28 @@

    Arguments

    + + + + + + + + @@ -262,7 +476,7 @@

    Arguments

    @@ -273,11 +487,12 @@

    Arguments

    -

    private subroutine dbcsr_put_block_s(matrix, row, col, block, summation, scale) +

    private subroutine dbcsr_put_block_s(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale)

    - +

    Inserts a block in a dbcsr matrix. + If the block exists, the current data is overwritten.

    Read more…

    Arguments

    TypeIntentOptional AttributesName
    + + type(dbcsr_type), + intent(inout) + + ::matrix +

    DBCSR matrix

    +
    + + integer, + intent(in) + + ::row +

    the logical row +the logical column

    +
    + + integer, + intent(in) + + ::col +

    the logical row +the logical column

    +
    + real(kind=real_8), intent(in), - DIMENSION(:) + DIMENSION(:), CONTIGUOUS :: block +

    the block to put

    +
    + + integer, + intent(inout),optional, + DIMENSION(2) + ::lb_row_col
    - + + logical, + intent(in),optional + + ::transposed +

    the block is transposed +if block exists, then sum the new block to the old one instead of replacing it

    +
    + logical, intent(in), :: summation +

    the block is transposed +if block exists, then sum the new block to the old one instead of replacing it

    +
    + + integer(kind=int_8), + intent(inout),optional + + ::flop
    - + real(kind=real_8), intent(in), :: scale - +

    scale the OBblock being added

    @@ -292,8 +507,8 @@

    Arguments

    @@ -317,12 +532,13 @@

    Arguments

    @@ -332,27 +548,59 @@

    Arguments

    + + + + + + + + + + + + + + + + @@ -362,12 +610,28 @@

    Arguments

    + + + + + + + + @@ -377,7 +641,7 @@

    Arguments

    @@ -388,11 +652,12 @@

    Arguments

    -

    private subroutine dbcsr_put_block_z(matrix, row, col, block, summation, scale) +

    private subroutine dbcsr_put_block_z(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale)

    - +

    Inserts a block in a dbcsr matrix. + If the block exists, the current data is overwritten.

    Read more…

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -302,7 +517,7 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    :: row - +

    the logical row +the logical column

    - + integer, intent(in) :: col - +

    the logical row +the logical column

    - + real(kind=real_4), intent(in), - DIMENSION(:) + DIMENSION(:), CONTIGUOUS :: block +

    the block to put

    +
    + + integer, + intent(inout),optional, + DIMENSION(2) + ::lb_row_col
    - + + logical, + intent(in),optional + + ::transposed +

    the block is transposed +if block exists, then sum the new block to the old one instead of replacing it

    +
    + logical, intent(in), :: summation +

    the block is transposed +if block exists, then sum the new block to the old one instead of replacing it

    +
    + + integer(kind=int_8), + intent(inout),optional + + ::flop
    - + real(kind=real_4), intent(in), :: scale - +

    scale the OBblock being added

    @@ -407,8 +672,8 @@

    Arguments

    @@ -432,12 +697,13 @@

    Arguments

    @@ -447,27 +713,59 @@

    Arguments

    + + + + + + + + + + + + + + + + @@ -477,12 +775,28 @@

    Arguments

    + + + + + + + + @@ -492,7 +806,7 @@

    Arguments

    @@ -503,11 +817,12 @@

    Arguments

    -

    private subroutine dbcsr_put_block_c(matrix, row, col, block, summation, scale) +

    private subroutine dbcsr_put_block_c(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale)

    - +

    Inserts a block in a dbcsr matrix. + If the block exists, the current data is overwritten.

    Read more…

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -417,12 +682,12 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    - + integer, intent(in) :: row - +

    the logical row +the logical column

    - + integer, intent(in) :: col - +

    the logical row +the logical column

    - + complex(kind=real_8), intent(in), - DIMENSION(:) + DIMENSION(:), CONTIGUOUS :: block +

    the block to put

    +
    + + integer, + intent(inout),optional, + DIMENSION(2) + ::lb_row_col
    - + + logical, + intent(in),optional + + ::transposed +

    the block is transposed +if block exists, then sum the new block to the old one instead of replacing it

    +
    + logical, intent(in), :: summation +

    the block is transposed +if block exists, then sum the new block to the old one instead of replacing it

    +
    + + integer(kind=int_8), + intent(inout),optional + + ::flop
    - + complex(kind=real_8), intent(in), :: scale - +

    scale the OBblock being added

    @@ -522,8 +837,8 @@

    Arguments

    @@ -547,12 +862,13 @@

    Arguments

    @@ -562,27 +878,59 @@

    Arguments

    + + + + + + + + + + + + + + + + @@ -592,12 +940,28 @@

    Arguments

    + + + + + + + + @@ -607,7 +971,7 @@

    Arguments

    @@ -618,11 +982,11 @@

    Arguments

    -

    private subroutine dbcsr_put_block2d_d(matrix, row, col, block, summation, scale) +

    private subroutine dbcsr_put_block2d_d(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale)

    - +

    Put a 2-D block in a DBCSR matrix

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -532,12 +847,12 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    - + integer, intent(in) :: row - +

    the logical row +the logical column

    - + integer, intent(in) :: col - +

    the logical row +the logical column

    - + complex(kind=real_4), intent(in), - DIMENSION(:) + DIMENSION(:), CONTIGUOUS :: block +

    the block to put

    +
    + + integer, + intent(inout),optional, + DIMENSION(2) + ::lb_row_col
    - + + logical, + intent(in),optional + + ::transposed +

    the block is transposed +if block exists, then sum the new block to the old one instead of replacing it

    +
    + logical, intent(in), :: summation +

    the block is transposed +if block exists, then sum the new block to the old one instead of replacing it

    +
    + + integer(kind=int_8), + intent(inout),optional + + ::flop
    - + complex(kind=real_4), intent(in), :: scale - +

    scale the OBblock being added

    @@ -637,8 +1001,8 @@

    Arguments

    @@ -662,12 +1026,13 @@

    Arguments

    @@ -677,27 +1042,59 @@

    Arguments

    + + + + + + + + + + + + + + + + @@ -707,12 +1104,28 @@

    Arguments

    + + + + + + + + @@ -722,7 +1135,7 @@

    Arguments

    @@ -733,11 +1146,11 @@

    Arguments

    -

    private subroutine dbcsr_put_block2d_s(matrix, row, col, block, summation, scale) +

    private subroutine dbcsr_put_block2d_s(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale)

    - +

    Put a 2-D block in a DBCSR matrix

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -647,12 +1011,12 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    - + integer, intent(in) :: row - +

    the row +the column

    - + integer, intent(in) :: col - +

    the row +the column

    - + real(kind=real_8), intent(in), - DIMENSION(:, :) + DIMENSION(:, :), CONTIGUOUS, TARGET :: block +

    the block to put

    +
    + + integer, + intent(inout),optional, + DIMENSION(2) + ::lb_row_col
    - + + logical, + intent(in),optional + + ::transposed +

    the block is transposed +if block exists, then sum the new block to the old one instead of replacing it

    +
    + logical, intent(in), :: summation +

    the block is transposed +if block exists, then sum the new block to the old one instead of replacing it

    +
    + + integer(kind=int_8), + intent(inout),optional + + ::flop
    - + real(kind=real_8), intent(in), :: scale - +

    scale the block being added

    @@ -752,8 +1165,8 @@

    Arguments

    @@ -777,12 +1190,13 @@

    Arguments

    @@ -792,27 +1206,59 @@

    Arguments

    + + + + + + + + + + + + + + + + @@ -822,12 +1268,28 @@

    Arguments

    + + + + + + + + @@ -837,7 +1299,7 @@

    Arguments

    @@ -848,11 +1310,11 @@

    Arguments

    -

    private subroutine dbcsr_put_block2d_z(matrix, row, col, block, summation, scale) +

    private subroutine dbcsr_put_block2d_z(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale)

    - +

    Put a 2-D block in a DBCSR matrix

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -762,7 +1175,7 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    :: row - +

    the row +the column

    - + integer, intent(in) :: col - +

    the row +the column

    - + real(kind=real_4), intent(in), - DIMENSION(:, :) + DIMENSION(:, :), CONTIGUOUS, TARGET :: block +

    the block to put

    +
    + + integer, + intent(inout),optional, + DIMENSION(2) + ::lb_row_col
    - + + logical, + intent(in),optional + + ::transposed +

    the block is transposed +if block exists, then sum the new block to the old one instead of replacing it

    +
    + logical, intent(in), :: summation +

    the block is transposed +if block exists, then sum the new block to the old one instead of replacing it

    +
    + + integer(kind=int_8), + intent(inout),optional + + ::flop
    - + real(kind=real_4), intent(in), :: scale - +

    scale the block being added

    @@ -867,8 +1329,8 @@

    Arguments

    @@ -892,12 +1354,13 @@

    Arguments

    @@ -907,27 +1370,59 @@

    Arguments

    + + + + + + + + + + + + + + + + @@ -937,12 +1432,28 @@

    Arguments

    + + + + + + + + @@ -952,7 +1463,7 @@

    Arguments

    @@ -963,11 +1474,11 @@

    Arguments

    -

    private subroutine dbcsr_put_block2d_c(matrix, row, col, block, summation, scale) +

    private subroutine dbcsr_put_block2d_c(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale)

    - +

    Put a 2-D block in a DBCSR matrix

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -877,12 +1339,12 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    - + integer, intent(in) :: row - +

    the row +the column

    - + integer, intent(in) :: col - +

    the row +the column

    - + complex(kind=real_8), intent(in), - DIMENSION(:, :) + DIMENSION(:, :), CONTIGUOUS, TARGET :: block +

    the block to put

    +
    + + integer, + intent(inout),optional, + DIMENSION(2) + ::lb_row_col
    - + + logical, + intent(in),optional + + ::transposed +

    the block is transposed +if block exists, then sum the new block to the old one instead of replacing it

    +
    + logical, intent(in), :: summation +

    the block is transposed +if block exists, then sum the new block to the old one instead of replacing it

    +
    + + integer(kind=int_8), + intent(inout),optional + + ::flop
    - + complex(kind=real_8), intent(in), :: scale - +

    scale the block being added

    @@ -982,8 +1493,8 @@

    Arguments

    @@ -1007,12 +1518,13 @@

    Arguments

    @@ -1022,27 +1534,59 @@

    Arguments

    + + + + + + + + + + + + + + + + @@ -1052,12 +1596,28 @@

    Arguments

    + + + + + + + + @@ -1067,7 +1627,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_reserve_block2d.html b/develop/interface/dbcsr_reserve_block2d.html index 171f75f6971..a920dcc3dba 100644 --- a/develop/interface/dbcsr_reserve_block2d.html +++ b/develop/interface/dbcsr_reserve_block2d.html @@ -74,20 +74,20 @@

    dbcsr_reserve_block2d
  • 3 statements + title="

    0.0% of total for procedures.

    Including implementation: 36 statements, 0.1% of total for procedures.">4 statements
  • - Source File + Source File
  • @@ -131,8 +131,8 @@

    Module Procedures

    @@ -154,11 +154,11 @@

    public interface dbcsr_reserve_block2d

    Module Procedures

    -

    private subroutine dbcsr_reserve_block2d_s(matrix, row, col, block, transposed, existed) +

    private subroutine dbcsr_reserve_block2d_d(matrix, row, col, block, transposed, existed)

    -

    Put a 2-D block in a DBCSR matrix using the btree

    +

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -992,12 +1503,12 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    - + integer, intent(in) :: row - +

    the row +the column

    - + integer, intent(in) :: col - +

    the row +the column

    - + complex(kind=real_4), intent(in), - DIMENSION(:, :) + DIMENSION(:, :), CONTIGUOUS, TARGET :: block +

    the block to put

    +
    + + integer, + intent(inout),optional, + DIMENSION(2) + ::lb_row_col
    - + + logical, + intent(in),optional + + ::transposed +

    the block is transposed +if block exists, then sum the new block to the old one instead of replacing it

    +
    + logical, intent(in), :: summation +

    the block is transposed +if block exists, then sum the new block to the old one instead of replacing it

    +
    + + integer(kind=int_8), + intent(inout),optional + + ::flop
    - + complex(kind=real_4), intent(in), :: scale - +

    scale the block being added

    @@ -173,8 +173,8 @@

    Arguments

    @@ -198,13 +198,12 @@

    Arguments

    @@ -214,14 +213,13 @@

    Arguments

    @@ -245,12 +243,12 @@

    Arguments

    @@ -260,7 +258,7 @@

    Arguments

    @@ -271,11 +269,11 @@

    Arguments

    -

    private subroutine dbcsr_reserve_block2d_d(matrix, row, col, block, transposed, existed) +

    private subroutine dbcsr_reserve_block2d_s(matrix, row, col, block, transposed, existed)

    -

    Put a 2-D block in a DBCSR matrix using the btree

    +

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -183,12 +183,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the row -the column

    +
    - + integer, intent(in) :: col -

    the row -the column

    +
    - - real(kind=real_4), + + real(kind=real_8), @@ -230,12 +228,12 @@

    Arguments

    :: block -

    the block to reserve; added if not NULL

    +
    - + logical, intent(in), :: transposed -

    the block holds transposed data

    +
    - + logical, intent(out), :: existed -

    block already existed

    +
    @@ -290,8 +288,8 @@

    Arguments

    @@ -315,13 +313,12 @@

    Arguments

    @@ -331,14 +328,13 @@

    Arguments

    @@ -362,12 +358,12 @@

    Arguments

    @@ -377,7 +373,7 @@

    Arguments

    @@ -392,7 +388,7 @@

    Arguments

    -

    Put a 2-D block in a DBCSR matrix using the btree

    +

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -300,12 +298,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the row -the column

    +
    - + integer, intent(in) :: col -

    the row -the column

    +
    - - real(kind=real_8), + + real(kind=real_4), @@ -347,12 +343,12 @@

    Arguments

    :: block -

    the block to reserve; added if not NULL

    +
    - + logical, intent(in), :: transposed -

    the block holds transposed data

    +
    - + logical, intent(out), :: existed -

    block already existed

    +
    @@ -407,8 +403,8 @@

    Arguments

    @@ -432,13 +428,12 @@

    Arguments

    @@ -448,13 +443,12 @@

    Arguments

    @@ -464,12 +458,12 @@

    Arguments

    @@ -479,7 +473,7 @@

    Arguments

    @@ -494,7 +488,7 @@

    Arguments

    @@ -509,7 +503,7 @@

    Arguments

    -

    Put a 2-D block in a DBCSR matrix using the btree

    +

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -417,12 +413,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the row -the column

    +
    - + integer, intent(in) :: col -

    the row -the column

    +
    - + complex(kind=real_4), :: block -

    the block to reserve; added if not NULL

    +
    - + logical, intent(in), :: transposed -

    the block holds transposed data

    +
    :: existed -

    block already existed

    +
    @@ -524,8 +518,8 @@

    Arguments

    @@ -549,13 +543,12 @@

    Arguments

    @@ -565,13 +558,12 @@

    Arguments

    @@ -581,12 +573,12 @@

    Arguments

    @@ -596,7 +588,7 @@

    Arguments

    @@ -611,7 +603,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_reserve_block2d~2.html b/develop/interface/dbcsr_reserve_block2d~2.html index 329487bec24..3c2da9bc919 100644 --- a/develop/interface/dbcsr_reserve_block2d~2.html +++ b/develop/interface/dbcsr_reserve_block2d~2.html @@ -74,20 +74,20 @@

    dbcsr_reserve_block2d
  • 4 statements + title="

    0.0% of total for procedures.

    Including implementation: 239 statements, 0.4% of total for procedures.">3 statements
  • - Source File + Source File
  • @@ -131,8 +131,8 @@

    Module Procedures

    @@ -154,11 +154,11 @@

    public interface dbcsr_reserve_block2d

    Module Procedures

    -

    private subroutine dbcsr_reserve_block2d_d(matrix, row, col, block, transposed, existed) +

    private subroutine dbcsr_reserve_block2d_s(matrix, row, col, block, transposed, existed)

    - +

    Put a 2-D block in a DBCSR matrix using the btree

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -534,12 +528,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the row -the column

    +
    - + integer, intent(in) :: col -

    the row -the column

    +
    - + complex(kind=real_8), :: block -

    the block to reserve; added if not NULL

    +
    - + logical, intent(in), :: transposed -

    the block holds transposed data

    +
    :: existed -

    block already existed

    +
    @@ -173,8 +173,8 @@

    Arguments

    @@ -198,12 +198,13 @@

    Arguments

    @@ -213,13 +214,14 @@

    Arguments

    @@ -243,12 +245,12 @@

    Arguments

    @@ -258,7 +260,7 @@

    Arguments

    @@ -269,11 +271,11 @@

    Arguments

    -

    private subroutine dbcsr_reserve_block2d_s(matrix, row, col, block, transposed, existed) +

    private subroutine dbcsr_reserve_block2d_d(matrix, row, col, block, transposed, existed)

    - +

    Put a 2-D block in a DBCSR matrix using the btree

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -183,12 +183,12 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    - + integer, intent(in) :: row - +

    the row +the column

    - + integer, intent(in) :: col - +

    the row +the column

    - - real(kind=real_8), + + real(kind=real_4), @@ -228,12 +230,12 @@

    Arguments

    :: block - +

    the block to reserve; added if not NULL

    - + logical, intent(in), :: transposed - +

    the block holds transposed data

    - + logical, intent(out), :: existed - +

    block already existed

    @@ -288,8 +290,8 @@

    Arguments

    @@ -313,12 +315,13 @@

    Arguments

    @@ -328,13 +331,14 @@

    Arguments

    @@ -358,12 +362,12 @@

    Arguments

    @@ -373,7 +377,7 @@

    Arguments

    @@ -388,7 +392,7 @@

    Arguments

    - +

    Put a 2-D block in a DBCSR matrix using the btree

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -298,12 +300,12 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    - + integer, intent(in) :: row - +

    the row +the column

    - + integer, intent(in) :: col - +

    the row +the column

    - - real(kind=real_4), + + real(kind=real_8), @@ -343,12 +347,12 @@

    Arguments

    :: block - +

    the block to reserve; added if not NULL

    - + logical, intent(in), :: transposed - +

    the block holds transposed data

    - + logical, intent(out), :: existed - +

    block already existed

    @@ -403,8 +407,8 @@

    Arguments

    @@ -428,12 +432,13 @@

    Arguments

    @@ -443,12 +448,13 @@

    Arguments

    @@ -458,12 +464,12 @@

    Arguments

    @@ -473,7 +479,7 @@

    Arguments

    @@ -488,7 +494,7 @@

    Arguments

    @@ -503,7 +509,7 @@

    Arguments

    - +

    Put a 2-D block in a DBCSR matrix using the btree

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -413,12 +417,12 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    - + integer, intent(in) :: row - +

    the row +the column

    - + integer, intent(in) :: col - +

    the row +the column

    - + complex(kind=real_4), :: block - +

    the block to reserve; added if not NULL

    - + logical, intent(in), :: transposed - +

    the block holds transposed data

    :: existed - +

    block already existed

    @@ -518,8 +524,8 @@

    Arguments

    @@ -543,12 +549,13 @@

    Arguments

    @@ -558,12 +565,13 @@

    Arguments

    @@ -573,12 +581,12 @@

    Arguments

    @@ -588,7 +596,7 @@

    Arguments

    @@ -603,7 +611,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_scalar.html b/develop/interface/dbcsr_scalar.html index 8b334e6d6a3..bfa0a2aec23 100644 --- a/develop/interface/dbcsr_scalar.html +++ b/develop/interface/dbcsr_scalar.html @@ -173,7 +173,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -263,7 +263,7 @@

    Arguments

    @@ -308,7 +308,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_scalar_get_value.html b/develop/interface/dbcsr_scalar_get_value.html index e306aed602a..3567ac20074 100644 --- a/develop/interface/dbcsr_scalar_get_value.html +++ b/develop/interface/dbcsr_scalar_get_value.html @@ -188,7 +188,7 @@

    Arguments

    @@ -243,7 +243,7 @@

    Arguments

    @@ -298,7 +298,7 @@

    Arguments

    @@ -353,7 +353,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_scale.html b/develop/interface/dbcsr_scale.html index 518fd1098c9..44158069197 100644 --- a/develop/interface/dbcsr_scale.html +++ b/develop/interface/dbcsr_scale.html @@ -173,7 +173,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -243,7 +243,7 @@

    Arguments

    @@ -273,7 +273,7 @@

    Arguments

    @@ -313,7 +313,7 @@

    Arguments

    @@ -343,7 +343,7 @@

    Arguments

    @@ -383,7 +383,7 @@

    Arguments

    @@ -413,7 +413,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_scale_by_vector.html b/develop/interface/dbcsr_scale_by_vector.html index b097c70d552..e402f1fc8d4 100644 --- a/develop/interface/dbcsr_scale_by_vector.html +++ b/develop/interface/dbcsr_scale_by_vector.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -243,7 +243,7 @@

    Arguments

    @@ -258,7 +258,7 @@

    Arguments

    @@ -313,7 +313,7 @@

    Arguments

    @@ -328,7 +328,7 @@

    Arguments

    @@ -383,7 +383,7 @@

    Arguments

    @@ -398,7 +398,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_scale_by_vector~2.html b/develop/interface/dbcsr_scale_by_vector~2.html index d4ee01b9174..6d3664e66ac 100644 --- a/develop/interface/dbcsr_scale_by_vector~2.html +++ b/develop/interface/dbcsr_scale_by_vector~2.html @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -244,7 +244,7 @@

    Arguments

    @@ -259,7 +259,7 @@

    Arguments

    @@ -314,7 +314,7 @@

    Arguments

    @@ -329,7 +329,7 @@

    Arguments

    @@ -384,7 +384,7 @@

    Arguments

    @@ -399,7 +399,7 @@

    Arguments

    @@ -454,7 +454,7 @@

    Arguments

    @@ -469,7 +469,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_scale~2.html b/develop/interface/dbcsr_scale~2.html index 163ecfe7ac4..ebc5f106a37 100644 --- a/develop/interface/dbcsr_scale~2.html +++ b/develop/interface/dbcsr_scale~2.html @@ -174,7 +174,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -244,7 +244,7 @@

    Arguments

    @@ -274,7 +274,7 @@

    Arguments

    @@ -314,7 +314,7 @@

    Arguments

    @@ -344,7 +344,7 @@

    Arguments

    @@ -384,7 +384,7 @@

    Arguments

    @@ -414,7 +414,7 @@

    Arguments

    @@ -454,7 +454,7 @@

    Arguments

    @@ -484,7 +484,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_set.html b/develop/interface/dbcsr_set.html index 688eaee95d4..c0bdb9141da 100644 --- a/develop/interface/dbcsr_set.html +++ b/develop/interface/dbcsr_set.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -243,7 +243,7 @@

    Arguments

    @@ -283,7 +283,7 @@

    Arguments

    @@ -298,7 +298,7 @@

    Arguments

    @@ -338,7 +338,7 @@

    Arguments

    @@ -353,7 +353,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_set_block_pointer.html b/develop/interface/dbcsr_set_block_pointer.html index c89001bd883..316b35b7b03 100644 --- a/develop/interface/dbcsr_set_block_pointer.html +++ b/develop/interface/dbcsr_set_block_pointer.html @@ -174,7 +174,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -220,7 +220,7 @@

    Arguments

    @@ -291,7 +291,7 @@

    Arguments

    @@ -321,7 +321,7 @@

    Arguments

    @@ -337,7 +337,7 @@

    Arguments

    @@ -393,7 +393,7 @@

    Arguments

    @@ -423,7 +423,7 @@

    Arguments

    @@ -439,7 +439,7 @@

    Arguments

    @@ -495,7 +495,7 @@

    Arguments

    @@ -525,7 +525,7 @@

    Arguments

    @@ -541,7 +541,7 @@

    Arguments

    @@ -597,7 +597,7 @@

    Arguments

    @@ -627,7 +627,7 @@

    Arguments

    @@ -643,7 +643,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_set_diag.html b/develop/interface/dbcsr_set_diag.html index 0540a0d283e..27f90ae597f 100644 --- a/develop/interface/dbcsr_set_diag.html +++ b/develop/interface/dbcsr_set_diag.html @@ -173,7 +173,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -283,7 +283,7 @@

    Arguments

    @@ -338,7 +338,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_set_diag~2.html b/develop/interface/dbcsr_set_diag~2.html index e8ea30b80c9..1dcbde07fbb 100644 --- a/develop/interface/dbcsr_set_diag~2.html +++ b/develop/interface/dbcsr_set_diag~2.html @@ -173,7 +173,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -283,7 +283,7 @@

    Arguments

    @@ -338,7 +338,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_set~2.html b/develop/interface/dbcsr_set~2.html index b52047c6493..78fdbf0a76e 100644 --- a/develop/interface/dbcsr_set~2.html +++ b/develop/interface/dbcsr_set~2.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -243,7 +243,7 @@

    Arguments

    @@ -283,7 +283,7 @@

    Arguments

    @@ -298,7 +298,7 @@

    Arguments

    @@ -338,7 +338,7 @@

    Arguments

    @@ -353,7 +353,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_t_create.html b/develop/interface/dbcsr_t_create.html index 1e81bf55b59..6220aed3680 100644 --- a/develop/interface/dbcsr_t_create.html +++ b/develop/interface/dbcsr_t_create.html @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    @@ -249,7 +249,7 @@

    Arguments

    @@ -264,7 +264,7 @@

    Arguments

    @@ -279,7 +279,7 @@

    Arguments

    @@ -294,7 +294,7 @@

    Arguments

    @@ -309,7 +309,7 @@

    Arguments

    @@ -349,7 +349,7 @@

    Arguments

    @@ -379,7 +379,7 @@

    Arguments

    @@ -394,7 +394,7 @@

    Arguments

    @@ -409,7 +409,7 @@

    Arguments

    @@ -424,7 +424,7 @@

    Arguments

    @@ -439,7 +439,7 @@

    Arguments

    @@ -479,7 +479,7 @@

    Arguments

    @@ -509,7 +509,7 @@

    Arguments

    @@ -524,7 +524,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_t_filter.html b/develop/interface/dbcsr_t_filter.html index b14352a51ca..361f8552da5 100644 --- a/develop/interface/dbcsr_t_filter.html +++ b/develop/interface/dbcsr_t_filter.html @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -273,7 +273,7 @@

    Arguments

    @@ -288,7 +288,7 @@

    Arguments

    @@ -303,7 +303,7 @@

    Arguments

    @@ -358,7 +358,7 @@

    Arguments

    @@ -373,7 +373,7 @@

    Arguments

    @@ -388,7 +388,7 @@

    Arguments

    @@ -443,7 +443,7 @@

    Arguments

    @@ -458,7 +458,7 @@

    Arguments

    @@ -473,7 +473,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_t_get_block.html b/develop/interface/dbcsr_t_get_block.html index 16be728de6f..37f4c0148cb 100644 --- a/develop/interface/dbcsr_t_get_block.html +++ b/develop/interface/dbcsr_t_get_block.html @@ -194,7 +194,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    @@ -224,7 +224,7 @@

    Arguments

    @@ -239,7 +239,7 @@

    Arguments

    @@ -254,7 +254,7 @@

    Arguments

    @@ -294,7 +294,7 @@

    Arguments

    @@ -309,7 +309,7 @@

    Arguments

    @@ -324,7 +324,7 @@

    Arguments

    @@ -339,7 +339,7 @@

    Arguments

    @@ -379,7 +379,7 @@

    Arguments

    @@ -394,7 +394,7 @@

    Arguments

    @@ -409,7 +409,7 @@

    Arguments

    @@ -424,7 +424,7 @@

    Arguments

    @@ -439,7 +439,7 @@

    Arguments

    @@ -479,7 +479,7 @@

    Arguments

    @@ -494,7 +494,7 @@

    Arguments

    @@ -509,7 +509,7 @@

    Arguments

    @@ -524,7 +524,7 @@

    Arguments

    @@ -564,7 +564,7 @@

    Arguments

    @@ -579,7 +579,7 @@

    Arguments

    @@ -594,7 +594,7 @@

    Arguments

    @@ -609,7 +609,7 @@

    Arguments

    @@ -624,7 +624,7 @@

    Arguments

    @@ -664,7 +664,7 @@

    Arguments

    @@ -679,7 +679,7 @@

    Arguments

    @@ -694,7 +694,7 @@

    Arguments

    @@ -709,7 +709,7 @@

    Arguments

    @@ -749,7 +749,7 @@

    Arguments

    @@ -764,7 +764,7 @@

    Arguments

    @@ -779,7 +779,7 @@

    Arguments

    @@ -794,7 +794,7 @@

    Arguments

    @@ -809,7 +809,7 @@

    Arguments

    @@ -849,7 +849,7 @@

    Arguments

    @@ -864,7 +864,7 @@

    Arguments

    @@ -879,7 +879,7 @@

    Arguments

    @@ -894,7 +894,7 @@

    Arguments

    @@ -934,7 +934,7 @@

    Arguments

    @@ -949,7 +949,7 @@

    Arguments

    @@ -964,7 +964,7 @@

    Arguments

    @@ -979,7 +979,7 @@

    Arguments

    @@ -994,7 +994,7 @@

    Arguments

    @@ -1034,7 +1034,7 @@

    Arguments

    @@ -1049,7 +1049,7 @@

    Arguments

    @@ -1064,7 +1064,7 @@

    Arguments

    @@ -1079,7 +1079,7 @@

    Arguments

    @@ -1119,7 +1119,7 @@

    Arguments

    @@ -1134,7 +1134,7 @@

    Arguments

    @@ -1149,7 +1149,7 @@

    Arguments

    @@ -1164,7 +1164,7 @@

    Arguments

    @@ -1179,7 +1179,7 @@

    Arguments

    @@ -1219,7 +1219,7 @@

    Arguments

    @@ -1234,7 +1234,7 @@

    Arguments

    @@ -1249,7 +1249,7 @@

    Arguments

    @@ -1264,7 +1264,7 @@

    Arguments

    @@ -1304,7 +1304,7 @@

    Arguments

    @@ -1319,7 +1319,7 @@

    Arguments

    @@ -1334,7 +1334,7 @@

    Arguments

    @@ -1349,7 +1349,7 @@

    Arguments

    @@ -1364,7 +1364,7 @@

    Arguments

    @@ -1404,7 +1404,7 @@

    Arguments

    @@ -1419,7 +1419,7 @@

    Arguments

    @@ -1434,7 +1434,7 @@

    Arguments

    @@ -1449,7 +1449,7 @@

    Arguments

    @@ -1489,7 +1489,7 @@

    Arguments

    @@ -1504,7 +1504,7 @@

    Arguments

    @@ -1519,7 +1519,7 @@

    Arguments

    @@ -1534,7 +1534,7 @@

    Arguments

    @@ -1549,7 +1549,7 @@

    Arguments

    @@ -1589,7 +1589,7 @@

    Arguments

    @@ -1604,7 +1604,7 @@

    Arguments

    @@ -1619,7 +1619,7 @@

    Arguments

    @@ -1634,7 +1634,7 @@

    Arguments

    @@ -1674,7 +1674,7 @@

    Arguments

    @@ -1689,7 +1689,7 @@

    Arguments

    @@ -1704,7 +1704,7 @@

    Arguments

    @@ -1719,7 +1719,7 @@

    Arguments

    @@ -1734,7 +1734,7 @@

    Arguments

    @@ -1774,7 +1774,7 @@

    Arguments

    @@ -1789,7 +1789,7 @@

    Arguments

    @@ -1804,7 +1804,7 @@

    Arguments

    @@ -1819,7 +1819,7 @@

    Arguments

    @@ -1859,7 +1859,7 @@

    Arguments

    @@ -1874,7 +1874,7 @@

    Arguments

    @@ -1889,7 +1889,7 @@

    Arguments

    @@ -1904,7 +1904,7 @@

    Arguments

    @@ -1919,7 +1919,7 @@

    Arguments

    @@ -1959,7 +1959,7 @@

    Arguments

    @@ -1974,7 +1974,7 @@

    Arguments

    @@ -1989,7 +1989,7 @@

    Arguments

    @@ -2004,7 +2004,7 @@

    Arguments

    @@ -2044,7 +2044,7 @@

    Arguments

    @@ -2059,7 +2059,7 @@

    Arguments

    @@ -2074,7 +2074,7 @@

    Arguments

    @@ -2089,7 +2089,7 @@

    Arguments

    @@ -2104,7 +2104,7 @@

    Arguments

    @@ -2144,7 +2144,7 @@

    Arguments

    @@ -2159,7 +2159,7 @@

    Arguments

    @@ -2174,7 +2174,7 @@

    Arguments

    @@ -2189,7 +2189,7 @@

    Arguments

    @@ -2229,7 +2229,7 @@

    Arguments

    @@ -2244,7 +2244,7 @@

    Arguments

    @@ -2259,7 +2259,7 @@

    Arguments

    @@ -2274,7 +2274,7 @@

    Arguments

    @@ -2289,7 +2289,7 @@

    Arguments

    @@ -2329,7 +2329,7 @@

    Arguments

    @@ -2344,7 +2344,7 @@

    Arguments

    @@ -2359,7 +2359,7 @@

    Arguments

    @@ -2374,7 +2374,7 @@

    Arguments

    @@ -2414,7 +2414,7 @@

    Arguments

    @@ -2429,7 +2429,7 @@

    Arguments

    @@ -2444,7 +2444,7 @@

    Arguments

    @@ -2459,7 +2459,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_t_put_block.html b/develop/interface/dbcsr_t_put_block.html index db6e051e8d8..414cc3da2b1 100644 --- a/develop/interface/dbcsr_t_put_block.html +++ b/develop/interface/dbcsr_t_put_block.html @@ -182,7 +182,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    @@ -227,7 +227,7 @@

    Arguments

    @@ -242,7 +242,7 @@

    Arguments

    @@ -257,7 +257,7 @@

    Arguments

    @@ -297,7 +297,7 @@

    Arguments

    @@ -312,7 +312,7 @@

    Arguments

    @@ -327,7 +327,7 @@

    Arguments

    @@ -342,7 +342,7 @@

    Arguments

    @@ -357,7 +357,7 @@

    Arguments

    @@ -372,7 +372,7 @@

    Arguments

    @@ -412,7 +412,7 @@

    Arguments

    @@ -427,7 +427,7 @@

    Arguments

    @@ -442,7 +442,7 @@

    Arguments

    @@ -457,7 +457,7 @@

    Arguments

    @@ -472,7 +472,7 @@

    Arguments

    @@ -487,7 +487,7 @@

    Arguments

    @@ -527,7 +527,7 @@

    Arguments

    @@ -542,7 +542,7 @@

    Arguments

    @@ -557,7 +557,7 @@

    Arguments

    @@ -572,7 +572,7 @@

    Arguments

    @@ -587,7 +587,7 @@

    Arguments

    @@ -602,7 +602,7 @@

    Arguments

    @@ -642,7 +642,7 @@

    Arguments

    @@ -657,7 +657,7 @@

    Arguments

    @@ -672,7 +672,7 @@

    Arguments

    @@ -687,7 +687,7 @@

    Arguments

    @@ -702,7 +702,7 @@

    Arguments

    @@ -717,7 +717,7 @@

    Arguments

    @@ -757,7 +757,7 @@

    Arguments

    @@ -772,7 +772,7 @@

    Arguments

    @@ -787,7 +787,7 @@

    Arguments

    @@ -802,7 +802,7 @@

    Arguments

    @@ -817,7 +817,7 @@

    Arguments

    @@ -832,7 +832,7 @@

    Arguments

    @@ -872,7 +872,7 @@

    Arguments

    @@ -887,7 +887,7 @@

    Arguments

    @@ -902,7 +902,7 @@

    Arguments

    @@ -917,7 +917,7 @@

    Arguments

    @@ -932,7 +932,7 @@

    Arguments

    @@ -947,7 +947,7 @@

    Arguments

    @@ -987,7 +987,7 @@

    Arguments

    @@ -1002,7 +1002,7 @@

    Arguments

    @@ -1017,7 +1017,7 @@

    Arguments

    @@ -1032,7 +1032,7 @@

    Arguments

    @@ -1047,7 +1047,7 @@

    Arguments

    @@ -1062,7 +1062,7 @@

    Arguments

    @@ -1102,7 +1102,7 @@

    Arguments

    @@ -1117,7 +1117,7 @@

    Arguments

    @@ -1132,7 +1132,7 @@

    Arguments

    @@ -1147,7 +1147,7 @@

    Arguments

    @@ -1162,7 +1162,7 @@

    Arguments

    @@ -1177,7 +1177,7 @@

    Arguments

    @@ -1217,7 +1217,7 @@

    Arguments

    @@ -1232,7 +1232,7 @@

    Arguments

    @@ -1247,7 +1247,7 @@

    Arguments

    @@ -1262,7 +1262,7 @@

    Arguments

    @@ -1277,7 +1277,7 @@

    Arguments

    @@ -1292,7 +1292,7 @@

    Arguments

    @@ -1332,7 +1332,7 @@

    Arguments

    @@ -1347,7 +1347,7 @@

    Arguments

    @@ -1362,7 +1362,7 @@

    Arguments

    @@ -1377,7 +1377,7 @@

    Arguments

    @@ -1392,7 +1392,7 @@

    Arguments

    @@ -1407,7 +1407,7 @@

    Arguments

    @@ -1447,7 +1447,7 @@

    Arguments

    @@ -1462,7 +1462,7 @@

    Arguments

    @@ -1477,7 +1477,7 @@

    Arguments

    @@ -1492,7 +1492,7 @@

    Arguments

    @@ -1507,7 +1507,7 @@

    Arguments

    @@ -1522,7 +1522,7 @@

    Arguments

    @@ -1562,7 +1562,7 @@

    Arguments

    @@ -1577,7 +1577,7 @@

    Arguments

    @@ -1592,7 +1592,7 @@

    Arguments

    @@ -1607,7 +1607,7 @@

    Arguments

    @@ -1622,7 +1622,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_t_reserve_blocks.html b/develop/interface/dbcsr_t_reserve_blocks.html index e99edb4857d..e94ec2e3755 100644 --- a/develop/interface/dbcsr_t_reserve_blocks.html +++ b/develop/interface/dbcsr_t_reserve_blocks.html @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    @@ -274,7 +274,7 @@

    Arguments

    @@ -329,7 +329,7 @@

    Arguments

    @@ -344,7 +344,7 @@

    Arguments

    @@ -384,7 +384,7 @@

    Arguments

    @@ -399,7 +399,7 @@

    Arguments

    @@ -439,7 +439,7 @@

    Arguments

    @@ -454,7 +454,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_t_set.html b/develop/interface/dbcsr_t_set.html index 8a383c1967a..c037efd07a8 100644 --- a/develop/interface/dbcsr_t_set.html +++ b/develop/interface/dbcsr_t_set.html @@ -188,7 +188,7 @@

    Arguments

    @@ -243,7 +243,7 @@

    Arguments

    @@ -298,7 +298,7 @@

    Arguments

    @@ -353,7 +353,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_tas_blk_size_t.html b/develop/interface/dbcsr_tas_blk_size_t.html index e582cd809bf..f67fa95eec3 100644 --- a/develop/interface/dbcsr_tas_blk_size_t.html +++ b/develop/interface/dbcsr_tas_blk_size_t.html @@ -171,7 +171,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_tas_create.html b/develop/interface/dbcsr_tas_create.html index 2c6f414f92d..fe4cba70546 100644 --- a/develop/interface/dbcsr_tas_create.html +++ b/develop/interface/dbcsr_tas_create.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    @@ -303,7 +303,7 @@

    Arguments

    @@ -318,7 +318,7 @@

    Arguments

    @@ -333,7 +333,7 @@

    Arguments

    @@ -348,7 +348,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_tas_dist_repl.html b/develop/interface/dbcsr_tas_dist_repl.html index 91b1028b508..581d80305f7 100644 --- a/develop/interface/dbcsr_tas_dist_repl.html +++ b/develop/interface/dbcsr_tas_dist_repl.html @@ -230,7 +230,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_tas_filter.html b/develop/interface/dbcsr_tas_filter.html index 1d3de783cf6..1bdd7cddbb0 100644 --- a/develop/interface/dbcsr_tas_filter.html +++ b/develop/interface/dbcsr_tas_filter.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -258,7 +258,7 @@

    Arguments

    @@ -273,7 +273,7 @@

    Arguments

    @@ -288,7 +288,7 @@

    Arguments

    @@ -303,7 +303,7 @@

    Arguments

    @@ -343,7 +343,7 @@

    Arguments

    @@ -358,7 +358,7 @@

    Arguments

    @@ -373,7 +373,7 @@

    Arguments

    @@ -388,7 +388,7 @@

    Arguments

    @@ -428,7 +428,7 @@

    Arguments

    @@ -443,7 +443,7 @@

    Arguments

    @@ -458,7 +458,7 @@

    Arguments

    @@ -473,7 +473,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_tas_get_block_p.html b/develop/interface/dbcsr_tas_get_block_p.html index e0704e2a6c3..4942527ffd0 100644 --- a/develop/interface/dbcsr_tas_get_block_p.html +++ b/develop/interface/dbcsr_tas_get_block_p.html @@ -170,7 +170,7 @@

    Arguments

    @@ -185,7 +185,7 @@

    Arguments

    @@ -200,7 +200,7 @@

    Arguments

    @@ -215,7 +215,7 @@

    Arguments

    @@ -230,7 +230,7 @@

    Arguments

    @@ -245,7 +245,7 @@

    Arguments

    @@ -260,7 +260,7 @@

    Arguments

    @@ -275,7 +275,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_tas_get_block_p~2.html b/develop/interface/dbcsr_tas_get_block_p~2.html index 832637504fd..142e2d03d20 100644 --- a/develop/interface/dbcsr_tas_get_block_p~2.html +++ b/develop/interface/dbcsr_tas_get_block_p~2.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    @@ -263,7 +263,7 @@

    Arguments

    @@ -278,7 +278,7 @@

    Arguments

    @@ -318,7 +318,7 @@

    Arguments

    @@ -333,7 +333,7 @@

    Arguments

    @@ -348,7 +348,7 @@

    Arguments

    @@ -363,7 +363,7 @@

    Arguments

    @@ -378,7 +378,7 @@

    Arguments

    @@ -393,7 +393,7 @@

    Arguments

    @@ -408,7 +408,7 @@

    Arguments

    @@ -423,7 +423,7 @@

    Arguments

    @@ -463,7 +463,7 @@

    Arguments

    @@ -478,7 +478,7 @@

    Arguments

    @@ -493,7 +493,7 @@

    Arguments

    @@ -508,7 +508,7 @@

    Arguments

    @@ -523,7 +523,7 @@

    Arguments

    @@ -538,7 +538,7 @@

    Arguments

    @@ -553,7 +553,7 @@

    Arguments

    @@ -568,7 +568,7 @@

    Arguments

    @@ -608,7 +608,7 @@

    Arguments

    @@ -623,7 +623,7 @@

    Arguments

    @@ -638,7 +638,7 @@

    Arguments

    @@ -653,7 +653,7 @@

    Arguments

    @@ -668,7 +668,7 @@

    Arguments

    @@ -683,7 +683,7 @@

    Arguments

    @@ -698,7 +698,7 @@

    Arguments

    @@ -713,7 +713,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_tas_iterator_next_block.html b/develop/interface/dbcsr_tas_iterator_next_block.html index a32ba9a0412..95618e4c2fc 100644 --- a/develop/interface/dbcsr_tas_iterator_next_block.html +++ b/develop/interface/dbcsr_tas_iterator_next_block.html @@ -171,7 +171,7 @@

    Arguments

    @@ -186,7 +186,7 @@

    Arguments

    @@ -201,7 +201,7 @@

    Arguments

    @@ -216,7 +216,7 @@

    Arguments

    @@ -231,7 +231,7 @@

    Arguments

    @@ -246,7 +246,7 @@

    Arguments

    @@ -261,7 +261,7 @@

    Arguments

    @@ -276,7 +276,7 @@

    Arguments

    @@ -316,7 +316,7 @@

    Arguments

    @@ -331,7 +331,7 @@

    Arguments

    @@ -347,7 +347,7 @@

    Arguments

    @@ -363,7 +363,7 @@

    Arguments

    @@ -378,7 +378,7 @@

    Arguments

    @@ -393,7 +393,7 @@

    Arguments

    @@ -408,7 +408,7 @@

    Arguments

    @@ -423,7 +423,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_tas_iterator_next_block~2.html b/develop/interface/dbcsr_tas_iterator_next_block~2.html index 8b3b986b94c..6a8c88a5cd0 100644 --- a/develop/interface/dbcsr_tas_iterator_next_block~2.html +++ b/develop/interface/dbcsr_tas_iterator_next_block~2.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    @@ -263,7 +263,7 @@

    Arguments

    @@ -278,7 +278,7 @@

    Arguments

    @@ -318,7 +318,7 @@

    Arguments

    @@ -333,7 +333,7 @@

    Arguments

    @@ -348,7 +348,7 @@

    Arguments

    @@ -363,7 +363,7 @@

    Arguments

    @@ -378,7 +378,7 @@

    Arguments

    @@ -393,7 +393,7 @@

    Arguments

    @@ -408,7 +408,7 @@

    Arguments

    @@ -423,7 +423,7 @@

    Arguments

    @@ -463,7 +463,7 @@

    Arguments

    @@ -478,7 +478,7 @@

    Arguments

    @@ -493,7 +493,7 @@

    Arguments

    @@ -508,7 +508,7 @@

    Arguments

    @@ -523,7 +523,7 @@

    Arguments

    @@ -538,7 +538,7 @@

    Arguments

    @@ -553,7 +553,7 @@

    Arguments

    @@ -568,7 +568,7 @@

    Arguments

    @@ -608,7 +608,7 @@

    Arguments

    @@ -623,7 +623,7 @@

    Arguments

    @@ -638,7 +638,7 @@

    Arguments

    @@ -653,7 +653,7 @@

    Arguments

    @@ -668,7 +668,7 @@

    Arguments

    @@ -683,7 +683,7 @@

    Arguments

    @@ -698,7 +698,7 @@

    Arguments

    @@ -713,7 +713,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_tas_mp_comm.html b/develop/interface/dbcsr_tas_mp_comm.html index 352aa56ae10..dc43b9b1d92 100644 --- a/develop/interface/dbcsr_tas_mp_comm.html +++ b/develop/interface/dbcsr_tas_mp_comm.html @@ -185,7 +185,7 @@

    Arguments

    @@ -200,7 +200,7 @@

    Arguments

    @@ -216,7 +216,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_tas_put_block.html b/develop/interface/dbcsr_tas_put_block.html index b79d45a100b..5dfa6dbd3ea 100644 --- a/develop/interface/dbcsr_tas_put_block.html +++ b/develop/interface/dbcsr_tas_put_block.html @@ -170,7 +170,7 @@

    Arguments

    @@ -185,7 +185,7 @@

    Arguments

    @@ -200,7 +200,7 @@

    Arguments

    @@ -215,7 +215,7 @@

    Arguments

    @@ -230,7 +230,7 @@

    Arguments

    @@ -245,7 +245,7 @@

    Arguments

    @@ -260,7 +260,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_tas_put_block~2.html b/develop/interface/dbcsr_tas_put_block~2.html index d8a28a91a80..57d0663b3fd 100644 --- a/develop/interface/dbcsr_tas_put_block~2.html +++ b/develop/interface/dbcsr_tas_put_block~2.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    @@ -263,7 +263,7 @@

    Arguments

    @@ -303,7 +303,7 @@

    Arguments

    @@ -318,7 +318,7 @@

    Arguments

    @@ -333,7 +333,7 @@

    Arguments

    @@ -348,7 +348,7 @@

    Arguments

    @@ -363,7 +363,7 @@

    Arguments

    @@ -378,7 +378,7 @@

    Arguments

    @@ -393,7 +393,7 @@

    Arguments

    @@ -433,7 +433,7 @@

    Arguments

    @@ -448,7 +448,7 @@

    Arguments

    @@ -463,7 +463,7 @@

    Arguments

    @@ -478,7 +478,7 @@

    Arguments

    @@ -493,7 +493,7 @@

    Arguments

    @@ -508,7 +508,7 @@

    Arguments

    @@ -523,7 +523,7 @@

    Arguments

    @@ -563,7 +563,7 @@

    Arguments

    @@ -578,7 +578,7 @@

    Arguments

    @@ -593,7 +593,7 @@

    Arguments

    @@ -608,7 +608,7 @@

    Arguments

    @@ -623,7 +623,7 @@

    Arguments

    @@ -638,7 +638,7 @@

    Arguments

    @@ -653,7 +653,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_tas_reserve_blocks.html b/develop/interface/dbcsr_tas_reserve_blocks.html index 1b6f51e78ba..da14fabefc4 100644 --- a/develop/interface/dbcsr_tas_reserve_blocks.html +++ b/develop/interface/dbcsr_tas_reserve_blocks.html @@ -172,7 +172,7 @@

    Arguments

    @@ -187,7 +187,7 @@

    Arguments

    @@ -227,7 +227,7 @@

    Arguments

    @@ -242,7 +242,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_tas_set.html b/develop/interface/dbcsr_tas_set.html index 6c4a52aa372..55591317607 100644 --- a/develop/interface/dbcsr_tas_set.html +++ b/develop/interface/dbcsr_tas_set.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -243,7 +243,7 @@

    Arguments

    @@ -283,7 +283,7 @@

    Arguments

    @@ -298,7 +298,7 @@

    Arguments

    @@ -338,7 +338,7 @@

    Arguments

    @@ -353,7 +353,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_to_string.html b/develop/interface/dbcsr_to_string.html index c6494cff365..323d6ba90dc 100644 --- a/develop/interface/dbcsr_to_string.html +++ b/develop/interface/dbcsr_to_string.html @@ -174,7 +174,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    @@ -266,7 +266,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_trace.html b/develop/interface/dbcsr_trace.html index c9577565671..74a8b24ce34 100644 --- a/develop/interface/dbcsr_trace.html +++ b/develop/interface/dbcsr_trace.html @@ -173,7 +173,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -283,7 +283,7 @@

    Arguments

    @@ -338,7 +338,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_trace~2.html b/develop/interface/dbcsr_trace~2.html index 6820489206e..3b1382ba116 100644 --- a/develop/interface/dbcsr_trace~2.html +++ b/develop/interface/dbcsr_trace~2.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -243,7 +243,7 @@

    Arguments

    @@ -283,7 +283,7 @@

    Arguments

    @@ -298,7 +298,7 @@

    Arguments

    @@ -338,7 +338,7 @@

    Arguments

    @@ -353,7 +353,7 @@

    Arguments

    diff --git a/develop/interface/dbcsr_warn_interface.html b/develop/interface/dbcsr_warn_interface.html index f6264b0fc08..56c825433c5 100644 --- a/develop/interface/dbcsr_warn_interface.html +++ b/develop/interface/dbcsr_warn_interface.html @@ -168,7 +168,7 @@

    Arguments

    diff --git a/develop/interface/dict_get.html b/develop/interface/dict_get.html index d28ebc5368a..c269b638339 100644 --- a/develop/interface/dict_get.html +++ b/develop/interface/dict_get.html @@ -188,7 +188,7 @@

    Arguments

    @@ -265,7 +265,7 @@

    Arguments

    diff --git a/develop/interface/dict_haskey.html b/develop/interface/dict_haskey.html index fee9ae76482..0ce3f857f34 100644 --- a/develop/interface/dict_haskey.html +++ b/develop/interface/dict_haskey.html @@ -186,7 +186,7 @@

    Arguments

    @@ -246,7 +246,7 @@

    Arguments

    diff --git a/develop/interface/dict_init.html b/develop/interface/dict_init.html index 85102ff8e3e..943c8c75abe 100644 --- a/develop/interface/dict_init.html +++ b/develop/interface/dict_init.html @@ -186,7 +186,7 @@

    Arguments

    @@ -241,7 +241,7 @@

    Arguments

    diff --git a/develop/interface/dict_set.html b/develop/interface/dict_set.html index c51fde166e0..60128c25e3c 100644 --- a/develop/interface/dict_set.html +++ b/develop/interface/dict_set.html @@ -186,7 +186,7 @@

    Arguments

    @@ -201,7 +201,7 @@

    Arguments

    @@ -256,7 +256,7 @@

    Arguments

    @@ -271,7 +271,7 @@

    Arguments

    diff --git a/develop/interface/dist_rowcols.html b/develop/interface/dist_rowcols.html index c184a0ee45f..a0017354e3b 100644 --- a/develop/interface/dist_rowcols.html +++ b/develop/interface/dist_rowcols.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    diff --git a/develop/interface/dist_sparse_tensor_to_repl_dense_array.html b/develop/interface/dist_sparse_tensor_to_repl_dense_array.html index d5b3252342c..842d39eee94 100644 --- a/develop/interface/dist_sparse_tensor_to_repl_dense_array.html +++ b/develop/interface/dist_sparse_tensor_to_repl_dense_array.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -229,7 +229,7 @@

    Arguments

    @@ -244,7 +244,7 @@

    Arguments

    @@ -285,7 +285,7 @@

    Arguments

    @@ -300,7 +300,7 @@

    Arguments

    diff --git a/develop/interface/ensure_array_size.html b/develop/interface/ensure_array_size.html index 2394ec1f913..20965207fbf 100644 --- a/develop/interface/ensure_array_size.html +++ b/develop/interface/ensure_array_size.html @@ -175,7 +175,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    @@ -220,7 +220,7 @@

    Arguments

    @@ -235,7 +235,7 @@

    Arguments

    @@ -250,7 +250,7 @@

    Arguments

    @@ -266,7 +266,7 @@

    Arguments

    @@ -281,7 +281,7 @@

    Arguments

    @@ -322,7 +322,7 @@

    Arguments

    @@ -352,7 +352,7 @@

    Arguments

    @@ -367,7 +367,7 @@

    Arguments

    @@ -382,7 +382,7 @@

    Arguments

    @@ -397,7 +397,7 @@

    Arguments

    @@ -413,7 +413,7 @@

    Arguments

    @@ -428,7 +428,7 @@

    Arguments

    @@ -469,7 +469,7 @@

    Arguments

    @@ -499,7 +499,7 @@

    Arguments

    @@ -514,7 +514,7 @@

    Arguments

    @@ -529,7 +529,7 @@

    Arguments

    @@ -544,7 +544,7 @@

    Arguments

    @@ -560,7 +560,7 @@

    Arguments

    @@ -575,7 +575,7 @@

    Arguments

    @@ -616,7 +616,7 @@

    Arguments

    @@ -646,7 +646,7 @@

    Arguments

    @@ -661,7 +661,7 @@

    Arguments

    @@ -676,7 +676,7 @@

    Arguments

    @@ -691,7 +691,7 @@

    Arguments

    @@ -707,7 +707,7 @@

    Arguments

    @@ -722,7 +722,7 @@

    Arguments

    @@ -763,7 +763,7 @@

    Arguments

    @@ -793,7 +793,7 @@

    Arguments

    @@ -808,7 +808,7 @@

    Arguments

    @@ -823,7 +823,7 @@

    Arguments

    @@ -838,7 +838,7 @@

    Arguments

    @@ -854,7 +854,7 @@

    Arguments

    @@ -869,7 +869,7 @@

    Arguments

    @@ -910,7 +910,7 @@

    Arguments

    @@ -940,7 +940,7 @@

    Arguments

    @@ -955,7 +955,7 @@

    Arguments

    @@ -970,7 +970,7 @@

    Arguments

    @@ -985,7 +985,7 @@

    Arguments

    @@ -1001,7 +1001,7 @@

    Arguments

    @@ -1016,7 +1016,7 @@

    Arguments

    diff --git a/develop/interface/get_ith_array.html b/develop/interface/get_ith_array.html index e73a74fb23c..daeda23195a 100644 --- a/develop/interface/get_ith_array.html +++ b/develop/interface/get_ith_array.html @@ -171,7 +171,7 @@

    Arguments

    @@ -186,7 +186,7 @@

    Arguments

    @@ -201,7 +201,7 @@

    Arguments

    diff --git a/develop/interface/list_clear.html b/develop/interface/list_clear.html index 9781d5da65f..4a727f13b10 100644 --- a/develop/interface/list_clear.html +++ b/develop/interface/list_clear.html @@ -173,7 +173,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -253,7 +253,7 @@

    Arguments

    @@ -293,7 +293,7 @@

    Arguments

    diff --git a/develop/interface/list_del.html b/develop/interface/list_del.html index 3f3ad2f7131..ff2c599db30 100644 --- a/develop/interface/list_del.html +++ b/develop/interface/list_del.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -243,7 +243,7 @@

    Arguments

    @@ -283,7 +283,7 @@

    Arguments

    @@ -298,7 +298,7 @@

    Arguments

    @@ -338,7 +338,7 @@

    Arguments

    @@ -353,7 +353,7 @@

    Arguments

    diff --git a/develop/interface/list_destroy.html b/develop/interface/list_destroy.html index 5d8c2f5ce2d..b86a90b0d1d 100644 --- a/develop/interface/list_destroy.html +++ b/develop/interface/list_destroy.html @@ -175,7 +175,7 @@

    Arguments

    @@ -217,7 +217,7 @@

    Arguments

    @@ -259,7 +259,7 @@

    Arguments

    @@ -301,7 +301,7 @@

    Arguments

    diff --git a/develop/interface/list_get.html b/develop/interface/list_get.html index 849e3089045..54a43fe884b 100644 --- a/develop/interface/list_get.html +++ b/develop/interface/list_get.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    @@ -293,7 +293,7 @@

    Arguments

    @@ -308,7 +308,7 @@

    Arguments

    @@ -353,7 +353,7 @@

    Arguments

    @@ -368,7 +368,7 @@

    Arguments

    diff --git a/develop/interface/list_init.html b/develop/interface/list_init.html index d94ffff2a52..1a07936518e 100644 --- a/develop/interface/list_init.html +++ b/develop/interface/list_init.html @@ -175,7 +175,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    @@ -232,7 +232,7 @@

    Arguments

    @@ -247,7 +247,7 @@

    Arguments

    @@ -289,7 +289,7 @@

    Arguments

    @@ -304,7 +304,7 @@

    Arguments

    @@ -346,7 +346,7 @@

    Arguments

    @@ -361,7 +361,7 @@

    Arguments

    diff --git a/develop/interface/list_insert.html b/develop/interface/list_insert.html index 529a5f91a9d..d8cc785d7ab 100644 --- a/develop/interface/list_insert.html +++ b/develop/interface/list_insert.html @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -245,7 +245,7 @@

    Arguments

    @@ -260,7 +260,7 @@

    Arguments

    @@ -275,7 +275,7 @@

    Arguments

    @@ -316,7 +316,7 @@

    Arguments

    @@ -346,7 +346,7 @@

    Arguments

    @@ -387,7 +387,7 @@

    Arguments

    @@ -402,7 +402,7 @@

    Arguments

    @@ -417,7 +417,7 @@

    Arguments

    diff --git a/develop/interface/list_isready.html b/develop/interface/list_isready.html index 1b15f21994d..b8145993b84 100644 --- a/develop/interface/list_isready.html +++ b/develop/interface/list_isready.html @@ -173,7 +173,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -263,7 +263,7 @@

    Arguments

    @@ -308,7 +308,7 @@

    Arguments

    diff --git a/develop/interface/list_peek.html b/develop/interface/list_peek.html index 9b69ce52bd6..271325c014a 100644 --- a/develop/interface/list_peek.html +++ b/develop/interface/list_peek.html @@ -174,7 +174,7 @@

    Arguments

    @@ -220,7 +220,7 @@

    Arguments

    @@ -266,7 +266,7 @@

    Arguments

    @@ -312,7 +312,7 @@

    Arguments

    diff --git a/develop/interface/list_pop.html b/develop/interface/list_pop.html index fabfe95d613..724e0d14796 100644 --- a/develop/interface/list_pop.html +++ b/develop/interface/list_pop.html @@ -176,7 +176,7 @@

    Arguments

    @@ -224,7 +224,7 @@

    Arguments

    @@ -272,7 +272,7 @@

    Arguments

    @@ -320,7 +320,7 @@

    Arguments

    diff --git a/develop/interface/list_push.html b/develop/interface/list_push.html index 0d1adc84f9c..bfee53d624a 100644 --- a/develop/interface/list_push.html +++ b/develop/interface/list_push.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -243,7 +243,7 @@

    Arguments

    @@ -283,7 +283,7 @@

    Arguments

    @@ -338,7 +338,7 @@

    Arguments

    @@ -353,7 +353,7 @@

    Arguments

    diff --git a/develop/interface/list_set.html b/develop/interface/list_set.html index 92e8b5cfc9a..709d37ce25b 100644 --- a/develop/interface/list_set.html +++ b/develop/interface/list_set.html @@ -175,7 +175,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    @@ -247,7 +247,7 @@

    Arguments

    @@ -262,7 +262,7 @@

    Arguments

    @@ -277,7 +277,7 @@

    Arguments

    @@ -319,7 +319,7 @@

    Arguments

    @@ -349,7 +349,7 @@

    Arguments

    @@ -391,7 +391,7 @@

    Arguments

    @@ -406,7 +406,7 @@

    Arguments

    @@ -421,7 +421,7 @@

    Arguments

    diff --git a/develop/interface/list_size.html b/develop/interface/list_size.html index 3685af195fa..65edcaa5afa 100644 --- a/develop/interface/list_size.html +++ b/develop/interface/list_size.html @@ -173,7 +173,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -263,7 +263,7 @@

    Arguments

    @@ -308,7 +308,7 @@

    Arguments

    diff --git a/develop/interface/memory_allocate.html b/develop/interface/memory_allocate.html index bdedc69c10d..a35dffecd90 100644 --- a/develop/interface/memory_allocate.html +++ b/develop/interface/memory_allocate.html @@ -181,7 +181,7 @@

    Arguments

    @@ -196,7 +196,7 @@

    Arguments

    @@ -251,7 +251,7 @@

    Arguments

    @@ -266,7 +266,7 @@

    Arguments

    @@ -321,7 +321,7 @@

    Arguments

    @@ -336,7 +336,7 @@

    Arguments

    @@ -391,7 +391,7 @@

    Arguments

    @@ -406,7 +406,7 @@

    Arguments

    @@ -461,7 +461,7 @@

    Arguments

    @@ -476,7 +476,7 @@

    Arguments

    @@ -531,7 +531,7 @@

    Arguments

    @@ -546,7 +546,7 @@

    Arguments

    @@ -601,7 +601,7 @@

    Arguments

    @@ -616,7 +616,7 @@

    Arguments

    @@ -671,7 +671,7 @@

    Arguments

    @@ -686,7 +686,7 @@

    Arguments

    @@ -741,7 +741,7 @@

    Arguments

    @@ -756,7 +756,7 @@

    Arguments

    @@ -811,7 +811,7 @@

    Arguments

    @@ -826,7 +826,7 @@

    Arguments

    @@ -881,7 +881,7 @@

    Arguments

    @@ -896,7 +896,7 @@

    Arguments

    @@ -951,7 +951,7 @@

    Arguments

    @@ -966,7 +966,7 @@

    Arguments

    diff --git a/develop/interface/memory_copy.html b/develop/interface/memory_copy.html index b624c71f1a1..8cfc1cf104c 100644 --- a/develop/interface/memory_copy.html +++ b/develop/interface/memory_copy.html @@ -205,7 +205,7 @@

    Arguments

    @@ -275,7 +275,7 @@

    Arguments

    @@ -345,7 +345,7 @@

    Arguments

    @@ -415,7 +415,7 @@

    Arguments

    @@ -485,7 +485,7 @@

    Arguments

    @@ -555,7 +555,7 @@

    Arguments

    diff --git a/develop/interface/memory_deallocate.html b/develop/interface/memory_deallocate.html index 398685a7e3d..3eba62f4039 100644 --- a/develop/interface/memory_deallocate.html +++ b/develop/interface/memory_deallocate.html @@ -181,7 +181,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    @@ -291,7 +291,7 @@

    Arguments

    @@ -346,7 +346,7 @@

    Arguments

    @@ -401,7 +401,7 @@

    Arguments

    @@ -456,7 +456,7 @@

    Arguments

    @@ -511,7 +511,7 @@

    Arguments

    @@ -566,7 +566,7 @@

    Arguments

    @@ -621,7 +621,7 @@

    Arguments

    @@ -676,7 +676,7 @@

    Arguments

    @@ -731,7 +731,7 @@

    Arguments

    @@ -786,7 +786,7 @@

    Arguments

    diff --git a/develop/interface/memory_zero.html b/develop/interface/memory_zero.html index a8123f1396f..ec2b2a195a1 100644 --- a/develop/interface/memory_zero.html +++ b/develop/interface/memory_zero.html @@ -190,7 +190,7 @@

    Arguments

    @@ -245,7 +245,7 @@

    Arguments

    @@ -300,7 +300,7 @@

    Arguments

    @@ -355,7 +355,7 @@

    Arguments

    @@ -410,7 +410,7 @@

    Arguments

    @@ -465,7 +465,7 @@

    Arguments

    diff --git a/develop/interface/mp_allgather.html b/develop/interface/mp_allgather.html index 04ae4d6401f..a9b758e4ef5 100644 --- a/develop/interface/mp_allgather.html +++ b/develop/interface/mp_allgather.html @@ -215,7 +215,7 @@

    Arguments

    @@ -230,7 +230,7 @@

    Arguments

    @@ -245,7 +245,7 @@

    Arguments

    @@ -286,7 +286,7 @@

    Arguments

    @@ -301,7 +301,7 @@

    Arguments

    @@ -316,7 +316,7 @@

    Arguments

    @@ -357,7 +357,7 @@

    Arguments

    @@ -372,7 +372,7 @@

    Arguments

    @@ -387,7 +387,7 @@

    Arguments

    @@ -428,7 +428,7 @@

    Arguments

    @@ -443,7 +443,7 @@

    Arguments

    @@ -458,7 +458,7 @@

    Arguments

    @@ -499,7 +499,7 @@

    Arguments

    @@ -514,7 +514,7 @@

    Arguments

    @@ -529,7 +529,7 @@

    Arguments

    @@ -570,7 +570,7 @@

    Arguments

    @@ -585,7 +585,7 @@

    Arguments

    @@ -600,7 +600,7 @@

    Arguments

    @@ -641,7 +641,7 @@

    Arguments

    @@ -656,7 +656,7 @@

    Arguments

    @@ -671,7 +671,7 @@

    Arguments

    @@ -712,7 +712,7 @@

    Arguments

    @@ -727,7 +727,7 @@

    Arguments

    @@ -742,7 +742,7 @@

    Arguments

    @@ -783,7 +783,7 @@

    Arguments

    @@ -798,7 +798,7 @@

    Arguments

    @@ -813,7 +813,7 @@

    Arguments

    @@ -854,7 +854,7 @@

    Arguments

    @@ -869,7 +869,7 @@

    Arguments

    @@ -884,7 +884,7 @@

    Arguments

    @@ -925,7 +925,7 @@

    Arguments

    @@ -940,7 +940,7 @@

    Arguments

    @@ -955,7 +955,7 @@

    Arguments

    @@ -996,7 +996,7 @@

    Arguments

    @@ -1011,7 +1011,7 @@

    Arguments

    @@ -1026,7 +1026,7 @@

    Arguments

    @@ -1067,7 +1067,7 @@

    Arguments

    @@ -1082,7 +1082,7 @@

    Arguments

    @@ -1097,7 +1097,7 @@

    Arguments

    @@ -1138,7 +1138,7 @@

    Arguments

    @@ -1153,7 +1153,7 @@

    Arguments

    @@ -1168,7 +1168,7 @@

    Arguments

    @@ -1209,7 +1209,7 @@

    Arguments

    @@ -1224,7 +1224,7 @@

    Arguments

    @@ -1239,7 +1239,7 @@

    Arguments

    @@ -1280,7 +1280,7 @@

    Arguments

    @@ -1295,7 +1295,7 @@

    Arguments

    @@ -1310,7 +1310,7 @@

    Arguments

    @@ -1351,7 +1351,7 @@

    Arguments

    @@ -1366,7 +1366,7 @@

    Arguments

    @@ -1381,7 +1381,7 @@

    Arguments

    @@ -1422,7 +1422,7 @@

    Arguments

    @@ -1437,7 +1437,7 @@

    Arguments

    @@ -1452,7 +1452,7 @@

    Arguments

    @@ -1493,7 +1493,7 @@

    Arguments

    @@ -1508,7 +1508,7 @@

    Arguments

    @@ -1523,7 +1523,7 @@

    Arguments

    @@ -1564,7 +1564,7 @@

    Arguments

    @@ -1579,7 +1579,7 @@

    Arguments

    @@ -1594,7 +1594,7 @@

    Arguments

    @@ -1635,7 +1635,7 @@

    Arguments

    @@ -1650,7 +1650,7 @@

    Arguments

    @@ -1665,7 +1665,7 @@

    Arguments

    @@ -1706,7 +1706,7 @@

    Arguments

    @@ -1721,7 +1721,7 @@

    Arguments

    @@ -1736,7 +1736,7 @@

    Arguments

    @@ -1777,7 +1777,7 @@

    Arguments

    @@ -1792,7 +1792,7 @@

    Arguments

    @@ -1807,7 +1807,7 @@

    Arguments

    @@ -1848,7 +1848,7 @@

    Arguments

    @@ -1863,7 +1863,7 @@

    Arguments

    @@ -1878,7 +1878,7 @@

    Arguments

    @@ -1919,7 +1919,7 @@

    Arguments

    @@ -1934,7 +1934,7 @@

    Arguments

    @@ -1949,7 +1949,7 @@

    Arguments

    @@ -1990,7 +1990,7 @@

    Arguments

    @@ -2005,7 +2005,7 @@

    Arguments

    @@ -2020,7 +2020,7 @@

    Arguments

    @@ -2061,7 +2061,7 @@

    Arguments

    @@ -2076,7 +2076,7 @@

    Arguments

    @@ -2091,7 +2091,7 @@

    Arguments

    @@ -2132,7 +2132,7 @@

    Arguments

    @@ -2147,7 +2147,7 @@

    Arguments

    @@ -2162,7 +2162,7 @@

    Arguments

    @@ -2203,7 +2203,7 @@

    Arguments

    @@ -2218,7 +2218,7 @@

    Arguments

    @@ -2233,7 +2233,7 @@

    Arguments

    @@ -2274,7 +2274,7 @@

    Arguments

    @@ -2289,7 +2289,7 @@

    Arguments

    @@ -2304,7 +2304,7 @@

    Arguments

    @@ -2345,7 +2345,7 @@

    Arguments

    @@ -2360,7 +2360,7 @@

    Arguments

    @@ -2375,7 +2375,7 @@

    Arguments

    @@ -2416,7 +2416,7 @@

    Arguments

    @@ -2431,7 +2431,7 @@

    Arguments

    @@ -2446,7 +2446,7 @@

    Arguments

    @@ -2487,7 +2487,7 @@

    Arguments

    @@ -2502,7 +2502,7 @@

    Arguments

    @@ -2517,7 +2517,7 @@

    Arguments

    @@ -2558,7 +2558,7 @@

    Arguments

    @@ -2573,7 +2573,7 @@

    Arguments

    @@ -2588,7 +2588,7 @@

    Arguments

    @@ -2629,7 +2629,7 @@

    Arguments

    @@ -2644,7 +2644,7 @@

    Arguments

    @@ -2659,7 +2659,7 @@

    Arguments

    @@ -2700,7 +2700,7 @@

    Arguments

    @@ -2715,7 +2715,7 @@

    Arguments

    @@ -2730,7 +2730,7 @@

    Arguments

    @@ -2771,7 +2771,7 @@

    Arguments

    @@ -2786,7 +2786,7 @@

    Arguments

    @@ -2801,7 +2801,7 @@

    Arguments

    @@ -2816,7 +2816,7 @@

    Arguments

    @@ -2831,7 +2831,7 @@

    Arguments

    @@ -2874,7 +2874,7 @@

    Arguments

    @@ -2889,7 +2889,7 @@

    Arguments

    @@ -2904,7 +2904,7 @@

    Arguments

    @@ -2919,7 +2919,7 @@

    Arguments

    @@ -2934,7 +2934,7 @@

    Arguments

    @@ -2977,7 +2977,7 @@

    Arguments

    @@ -2992,7 +2992,7 @@

    Arguments

    @@ -3007,7 +3007,7 @@

    Arguments

    @@ -3022,7 +3022,7 @@

    Arguments

    @@ -3037,7 +3037,7 @@

    Arguments

    @@ -3080,7 +3080,7 @@

    Arguments

    @@ -3095,7 +3095,7 @@

    Arguments

    @@ -3110,7 +3110,7 @@

    Arguments

    @@ -3125,7 +3125,7 @@

    Arguments

    @@ -3140,7 +3140,7 @@

    Arguments

    @@ -3183,7 +3183,7 @@

    Arguments

    @@ -3198,7 +3198,7 @@

    Arguments

    @@ -3213,7 +3213,7 @@

    Arguments

    @@ -3228,7 +3228,7 @@

    Arguments

    @@ -3243,7 +3243,7 @@

    Arguments

    @@ -3286,7 +3286,7 @@

    Arguments

    @@ -3301,7 +3301,7 @@

    Arguments

    @@ -3316,7 +3316,7 @@

    Arguments

    @@ -3331,7 +3331,7 @@

    Arguments

    @@ -3346,7 +3346,7 @@

    Arguments

    diff --git a/develop/interface/mp_allocate.html b/develop/interface/mp_allocate.html index d0de28e42b6..a23137ee0cc 100644 --- a/develop/interface/mp_allocate.html +++ b/develop/interface/mp_allocate.html @@ -175,7 +175,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    @@ -245,7 +245,7 @@

    Arguments

    @@ -260,7 +260,7 @@

    Arguments

    @@ -275,7 +275,7 @@

    Arguments

    @@ -315,7 +315,7 @@

    Arguments

    @@ -330,7 +330,7 @@

    Arguments

    @@ -345,7 +345,7 @@

    Arguments

    @@ -385,7 +385,7 @@

    Arguments

    @@ -400,7 +400,7 @@

    Arguments

    @@ -415,7 +415,7 @@

    Arguments

    @@ -455,7 +455,7 @@

    Arguments

    @@ -470,7 +470,7 @@

    Arguments

    @@ -485,7 +485,7 @@

    Arguments

    @@ -525,7 +525,7 @@

    Arguments

    @@ -540,7 +540,7 @@

    Arguments

    @@ -555,7 +555,7 @@

    Arguments

    diff --git a/develop/interface/mp_alltoall.html b/develop/interface/mp_alltoall.html index a557d50a8c8..4a06ae41b89 100644 --- a/develop/interface/mp_alltoall.html +++ b/develop/interface/mp_alltoall.html @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    @@ -238,7 +238,7 @@

    Arguments

    @@ -278,7 +278,7 @@

    Arguments

    @@ -293,7 +293,7 @@

    Arguments

    @@ -323,7 +323,7 @@

    Arguments

    @@ -363,7 +363,7 @@

    Arguments

    @@ -378,7 +378,7 @@

    Arguments

    @@ -408,7 +408,7 @@

    Arguments

    @@ -448,7 +448,7 @@

    Arguments

    @@ -463,7 +463,7 @@

    Arguments

    @@ -479,7 +479,7 @@

    Arguments

    @@ -495,7 +495,7 @@

    Arguments

    @@ -510,7 +510,7 @@

    Arguments

    @@ -526,7 +526,7 @@

    Arguments

    @@ -542,7 +542,7 @@

    Arguments

    @@ -582,7 +582,7 @@

    Arguments

    @@ -597,7 +597,7 @@

    Arguments

    @@ -627,7 +627,7 @@

    Arguments

    @@ -667,7 +667,7 @@

    Arguments

    @@ -682,7 +682,7 @@

    Arguments

    @@ -712,7 +712,7 @@

    Arguments

    @@ -752,7 +752,7 @@

    Arguments

    @@ -767,7 +767,7 @@

    Arguments

    @@ -797,7 +797,7 @@

    Arguments

    @@ -837,7 +837,7 @@

    Arguments

    @@ -852,7 +852,7 @@

    Arguments

    @@ -868,7 +868,7 @@

    Arguments

    @@ -884,7 +884,7 @@

    Arguments

    @@ -899,7 +899,7 @@

    Arguments

    @@ -915,7 +915,7 @@

    Arguments

    @@ -931,7 +931,7 @@

    Arguments

    @@ -971,7 +971,7 @@

    Arguments

    @@ -986,7 +986,7 @@

    Arguments

    @@ -1016,7 +1016,7 @@

    Arguments

    @@ -1056,7 +1056,7 @@

    Arguments

    @@ -1071,7 +1071,7 @@

    Arguments

    @@ -1101,7 +1101,7 @@

    Arguments

    @@ -1141,7 +1141,7 @@

    Arguments

    @@ -1156,7 +1156,7 @@

    Arguments

    @@ -1186,7 +1186,7 @@

    Arguments

    @@ -1226,7 +1226,7 @@

    Arguments

    @@ -1241,7 +1241,7 @@

    Arguments

    @@ -1257,7 +1257,7 @@

    Arguments

    @@ -1273,7 +1273,7 @@

    Arguments

    @@ -1288,7 +1288,7 @@

    Arguments

    @@ -1304,7 +1304,7 @@

    Arguments

    @@ -1320,7 +1320,7 @@

    Arguments

    @@ -1360,7 +1360,7 @@

    Arguments

    @@ -1375,7 +1375,7 @@

    Arguments

    @@ -1405,7 +1405,7 @@

    Arguments

    @@ -1445,7 +1445,7 @@

    Arguments

    @@ -1460,7 +1460,7 @@

    Arguments

    @@ -1490,7 +1490,7 @@

    Arguments

    @@ -1530,7 +1530,7 @@

    Arguments

    @@ -1545,7 +1545,7 @@

    Arguments

    @@ -1575,7 +1575,7 @@

    Arguments

    @@ -1615,7 +1615,7 @@

    Arguments

    @@ -1630,7 +1630,7 @@

    Arguments

    @@ -1646,7 +1646,7 @@

    Arguments

    @@ -1662,7 +1662,7 @@

    Arguments

    @@ -1677,7 +1677,7 @@

    Arguments

    @@ -1693,7 +1693,7 @@

    Arguments

    @@ -1709,7 +1709,7 @@

    Arguments

    @@ -1749,7 +1749,7 @@

    Arguments

    @@ -1764,7 +1764,7 @@

    Arguments

    @@ -1794,7 +1794,7 @@

    Arguments

    @@ -1834,7 +1834,7 @@

    Arguments

    @@ -1849,7 +1849,7 @@

    Arguments

    @@ -1879,7 +1879,7 @@

    Arguments

    @@ -1919,7 +1919,7 @@

    Arguments

    @@ -1934,7 +1934,7 @@

    Arguments

    @@ -1964,7 +1964,7 @@

    Arguments

    @@ -2004,7 +2004,7 @@

    Arguments

    @@ -2019,7 +2019,7 @@

    Arguments

    @@ -2035,7 +2035,7 @@

    Arguments

    @@ -2051,7 +2051,7 @@

    Arguments

    @@ -2066,7 +2066,7 @@

    Arguments

    @@ -2082,7 +2082,7 @@

    Arguments

    @@ -2098,7 +2098,7 @@

    Arguments

    @@ -2138,7 +2138,7 @@

    Arguments

    @@ -2153,7 +2153,7 @@

    Arguments

    @@ -2183,7 +2183,7 @@

    Arguments

    @@ -2223,7 +2223,7 @@

    Arguments

    @@ -2238,7 +2238,7 @@

    Arguments

    @@ -2268,7 +2268,7 @@

    Arguments

    @@ -2308,7 +2308,7 @@

    Arguments

    @@ -2323,7 +2323,7 @@

    Arguments

    @@ -2353,7 +2353,7 @@

    Arguments

    @@ -2393,7 +2393,7 @@

    Arguments

    @@ -2408,7 +2408,7 @@

    Arguments

    @@ -2424,7 +2424,7 @@

    Arguments

    @@ -2440,7 +2440,7 @@

    Arguments

    @@ -2455,7 +2455,7 @@

    Arguments

    @@ -2471,7 +2471,7 @@

    Arguments

    @@ -2487,7 +2487,7 @@

    Arguments

    diff --git a/develop/interface/mp_bcast.html b/develop/interface/mp_bcast.html index c504c787051..ce08f2b625d 100644 --- a/develop/interface/mp_bcast.html +++ b/develop/interface/mp_bcast.html @@ -197,7 +197,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    @@ -227,7 +227,7 @@

    Arguments

    @@ -267,7 +267,7 @@

    Arguments

    @@ -282,7 +282,7 @@

    Arguments

    @@ -297,7 +297,7 @@

    Arguments

    @@ -337,7 +337,7 @@

    Arguments

    @@ -352,7 +352,7 @@

    Arguments

    @@ -367,7 +367,7 @@

    Arguments

    @@ -407,7 +407,7 @@

    Arguments

    @@ -422,7 +422,7 @@

    Arguments

    @@ -437,7 +437,7 @@

    Arguments

    @@ -477,7 +477,7 @@

    Arguments

    @@ -492,7 +492,7 @@

    Arguments

    @@ -507,7 +507,7 @@

    Arguments

    @@ -547,7 +547,7 @@

    Arguments

    @@ -562,7 +562,7 @@

    Arguments

    @@ -577,7 +577,7 @@

    Arguments

    @@ -617,7 +617,7 @@

    Arguments

    @@ -632,7 +632,7 @@

    Arguments

    @@ -647,7 +647,7 @@

    Arguments

    @@ -687,7 +687,7 @@

    Arguments

    @@ -702,7 +702,7 @@

    Arguments

    @@ -717,7 +717,7 @@

    Arguments

    @@ -757,7 +757,7 @@

    Arguments

    @@ -772,7 +772,7 @@

    Arguments

    @@ -787,7 +787,7 @@

    Arguments

    @@ -827,7 +827,7 @@

    Arguments

    @@ -842,7 +842,7 @@

    Arguments

    @@ -857,7 +857,7 @@

    Arguments

    @@ -897,7 +897,7 @@

    Arguments

    @@ -912,7 +912,7 @@

    Arguments

    @@ -927,7 +927,7 @@

    Arguments

    @@ -967,7 +967,7 @@

    Arguments

    @@ -982,7 +982,7 @@

    Arguments

    @@ -997,7 +997,7 @@

    Arguments

    @@ -1037,7 +1037,7 @@

    Arguments

    @@ -1052,7 +1052,7 @@

    Arguments

    @@ -1067,7 +1067,7 @@

    Arguments

    @@ -1107,7 +1107,7 @@

    Arguments

    @@ -1122,7 +1122,7 @@

    Arguments

    @@ -1137,7 +1137,7 @@

    Arguments

    @@ -1177,7 +1177,7 @@

    Arguments

    @@ -1192,7 +1192,7 @@

    Arguments

    @@ -1207,7 +1207,7 @@

    Arguments

    @@ -1247,7 +1247,7 @@

    Arguments

    @@ -1262,7 +1262,7 @@

    Arguments

    @@ -1277,7 +1277,7 @@

    Arguments

    @@ -1317,7 +1317,7 @@

    Arguments

    @@ -1332,7 +1332,7 @@

    Arguments

    @@ -1347,7 +1347,7 @@

    Arguments

    @@ -1387,7 +1387,7 @@

    Arguments

    @@ -1402,7 +1402,7 @@

    Arguments

    @@ -1417,7 +1417,7 @@

    Arguments

    @@ -1457,7 +1457,7 @@

    Arguments

    @@ -1472,7 +1472,7 @@

    Arguments

    @@ -1487,7 +1487,7 @@

    Arguments

    @@ -1527,7 +1527,7 @@

    Arguments

    @@ -1542,7 +1542,7 @@

    Arguments

    @@ -1557,7 +1557,7 @@

    Arguments

    @@ -1597,7 +1597,7 @@

    Arguments

    @@ -1612,7 +1612,7 @@

    Arguments

    @@ -1627,7 +1627,7 @@

    Arguments

    @@ -1667,7 +1667,7 @@

    Arguments

    @@ -1682,7 +1682,7 @@

    Arguments

    @@ -1697,7 +1697,7 @@

    Arguments

    @@ -1737,7 +1737,7 @@

    Arguments

    @@ -1752,7 +1752,7 @@

    Arguments

    @@ -1767,7 +1767,7 @@

    Arguments

    @@ -1807,7 +1807,7 @@

    Arguments

    @@ -1822,7 +1822,7 @@

    Arguments

    @@ -1837,7 +1837,7 @@

    Arguments

    @@ -1877,7 +1877,7 @@

    Arguments

    @@ -1892,7 +1892,7 @@

    Arguments

    @@ -1907,7 +1907,7 @@

    Arguments

    @@ -1947,7 +1947,7 @@

    Arguments

    @@ -1962,7 +1962,7 @@

    Arguments

    @@ -1977,7 +1977,7 @@

    Arguments

    @@ -2017,7 +2017,7 @@

    Arguments

    @@ -2032,7 +2032,7 @@

    Arguments

    @@ -2047,7 +2047,7 @@

    Arguments

    @@ -2087,7 +2087,7 @@

    Arguments

    @@ -2102,7 +2102,7 @@

    Arguments

    @@ -2117,7 +2117,7 @@

    Arguments

    diff --git a/develop/interface/mp_deallocate.html b/develop/interface/mp_deallocate.html index 07f4679bc83..54057227466 100644 --- a/develop/interface/mp_deallocate.html +++ b/develop/interface/mp_deallocate.html @@ -175,7 +175,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    @@ -230,7 +230,7 @@

    Arguments

    @@ -245,7 +245,7 @@

    Arguments

    @@ -285,7 +285,7 @@

    Arguments

    @@ -300,7 +300,7 @@

    Arguments

    @@ -340,7 +340,7 @@

    Arguments

    @@ -355,7 +355,7 @@

    Arguments

    @@ -395,7 +395,7 @@

    Arguments

    @@ -410,7 +410,7 @@

    Arguments

    @@ -450,7 +450,7 @@

    Arguments

    @@ -465,7 +465,7 @@

    Arguments

    diff --git a/develop/interface/mp_environ.html b/develop/interface/mp_environ.html index 4d8f81681e6..a98c82a0f1e 100644 --- a/develop/interface/mp_environ.html +++ b/develop/interface/mp_environ.html @@ -328,7 +328,7 @@

    Arguments

    @@ -388,7 +388,7 @@

    Arguments

    diff --git a/develop/interface/mp_file_read_at_all.html b/develop/interface/mp_file_read_at_all.html index 4c48ad46792..ac7d2c0787f 100644 --- a/develop/interface/mp_file_read_at_all.html +++ b/develop/interface/mp_file_read_at_all.html @@ -197,7 +197,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    @@ -268,7 +268,7 @@

    Arguments

    @@ -283,7 +283,7 @@

    Arguments

    @@ -353,7 +353,7 @@

    Arguments

    @@ -368,7 +368,7 @@

    Arguments

    @@ -424,7 +424,7 @@

    Arguments

    @@ -439,7 +439,7 @@

    Arguments

    @@ -509,7 +509,7 @@

    Arguments

    @@ -524,7 +524,7 @@

    Arguments

    @@ -580,7 +580,7 @@

    Arguments

    @@ -595,7 +595,7 @@

    Arguments

    @@ -665,7 +665,7 @@

    Arguments

    @@ -680,7 +680,7 @@

    Arguments

    @@ -736,7 +736,7 @@

    Arguments

    @@ -751,7 +751,7 @@

    Arguments

    @@ -821,7 +821,7 @@

    Arguments

    @@ -836,7 +836,7 @@

    Arguments

    @@ -892,7 +892,7 @@

    Arguments

    @@ -907,7 +907,7 @@

    Arguments

    @@ -977,7 +977,7 @@

    Arguments

    @@ -992,7 +992,7 @@

    Arguments

    @@ -1048,7 +1048,7 @@

    Arguments

    @@ -1063,7 +1063,7 @@

    Arguments

    @@ -1133,7 +1133,7 @@

    Arguments

    @@ -1148,7 +1148,7 @@

    Arguments

    diff --git a/develop/interface/mp_file_write_at.html b/develop/interface/mp_file_write_at.html index e1de70cee72..e38dd125bd0 100644 --- a/develop/interface/mp_file_write_at.html +++ b/develop/interface/mp_file_write_at.html @@ -197,7 +197,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    @@ -268,7 +268,7 @@

    Arguments

    @@ -283,7 +283,7 @@

    Arguments

    @@ -353,7 +353,7 @@

    Arguments

    @@ -368,7 +368,7 @@

    Arguments

    @@ -424,7 +424,7 @@

    Arguments

    @@ -439,7 +439,7 @@

    Arguments

    @@ -509,7 +509,7 @@

    Arguments

    @@ -524,7 +524,7 @@

    Arguments

    @@ -580,7 +580,7 @@

    Arguments

    @@ -595,7 +595,7 @@

    Arguments

    @@ -665,7 +665,7 @@

    Arguments

    @@ -680,7 +680,7 @@

    Arguments

    @@ -736,7 +736,7 @@

    Arguments

    @@ -751,7 +751,7 @@

    Arguments

    @@ -821,7 +821,7 @@

    Arguments

    @@ -836,7 +836,7 @@

    Arguments

    @@ -892,7 +892,7 @@

    Arguments

    @@ -907,7 +907,7 @@

    Arguments

    @@ -977,7 +977,7 @@

    Arguments

    @@ -992,7 +992,7 @@

    Arguments

    @@ -1048,7 +1048,7 @@

    Arguments

    @@ -1063,7 +1063,7 @@

    Arguments

    @@ -1133,7 +1133,7 @@

    Arguments

    @@ -1148,7 +1148,7 @@

    Arguments

    diff --git a/develop/interface/mp_file_write_at_all.html b/develop/interface/mp_file_write_at_all.html index 5d5a9212bcd..b18e970d27b 100644 --- a/develop/interface/mp_file_write_at_all.html +++ b/develop/interface/mp_file_write_at_all.html @@ -197,7 +197,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    @@ -268,7 +268,7 @@

    Arguments

    @@ -283,7 +283,7 @@

    Arguments

    @@ -353,7 +353,7 @@

    Arguments

    @@ -368,7 +368,7 @@

    Arguments

    @@ -424,7 +424,7 @@

    Arguments

    @@ -439,7 +439,7 @@

    Arguments

    @@ -509,7 +509,7 @@

    Arguments

    @@ -524,7 +524,7 @@

    Arguments

    @@ -580,7 +580,7 @@

    Arguments

    @@ -595,7 +595,7 @@

    Arguments

    @@ -665,7 +665,7 @@

    Arguments

    @@ -680,7 +680,7 @@

    Arguments

    @@ -736,7 +736,7 @@

    Arguments

    @@ -751,7 +751,7 @@

    Arguments

    @@ -821,7 +821,7 @@

    Arguments

    @@ -836,7 +836,7 @@

    Arguments

    @@ -892,7 +892,7 @@

    Arguments

    @@ -907,7 +907,7 @@

    Arguments

    @@ -977,7 +977,7 @@

    Arguments

    @@ -992,7 +992,7 @@

    Arguments

    @@ -1048,7 +1048,7 @@

    Arguments

    @@ -1063,7 +1063,7 @@

    Arguments

    @@ -1133,7 +1133,7 @@

    Arguments

    @@ -1148,7 +1148,7 @@

    Arguments

    diff --git a/develop/interface/mp_gather.html b/develop/interface/mp_gather.html index 1d4b0fb6c41..9a451e47a89 100644 --- a/develop/interface/mp_gather.html +++ b/develop/interface/mp_gather.html @@ -187,7 +187,7 @@

    Arguments

    @@ -217,7 +217,7 @@

    Arguments

    @@ -232,7 +232,7 @@

    Arguments

    @@ -272,7 +272,7 @@

    Arguments

    @@ -302,7 +302,7 @@

    Arguments

    @@ -317,7 +317,7 @@

    Arguments

    @@ -357,7 +357,7 @@

    Arguments

    @@ -387,7 +387,7 @@

    Arguments

    @@ -402,7 +402,7 @@

    Arguments

    @@ -442,7 +442,7 @@

    Arguments

    @@ -472,7 +472,7 @@

    Arguments

    @@ -487,7 +487,7 @@

    Arguments

    @@ -527,7 +527,7 @@

    Arguments

    @@ -557,7 +557,7 @@

    Arguments

    @@ -572,7 +572,7 @@

    Arguments

    @@ -612,7 +612,7 @@

    Arguments

    @@ -642,7 +642,7 @@

    Arguments

    @@ -657,7 +657,7 @@

    Arguments

    @@ -697,7 +697,7 @@

    Arguments

    @@ -727,7 +727,7 @@

    Arguments

    @@ -742,7 +742,7 @@

    Arguments

    @@ -782,7 +782,7 @@

    Arguments

    @@ -812,7 +812,7 @@

    Arguments

    @@ -827,7 +827,7 @@

    Arguments

    @@ -867,7 +867,7 @@

    Arguments

    @@ -897,7 +897,7 @@

    Arguments

    @@ -912,7 +912,7 @@

    Arguments

    @@ -952,7 +952,7 @@

    Arguments

    @@ -982,7 +982,7 @@

    Arguments

    @@ -997,7 +997,7 @@

    Arguments

    @@ -1037,7 +1037,7 @@

    Arguments

    @@ -1067,7 +1067,7 @@

    Arguments

    @@ -1082,7 +1082,7 @@

    Arguments

    @@ -1122,7 +1122,7 @@

    Arguments

    @@ -1152,7 +1152,7 @@

    Arguments

    @@ -1167,7 +1167,7 @@

    Arguments

    @@ -1207,7 +1207,7 @@

    Arguments

    @@ -1237,7 +1237,7 @@

    Arguments

    @@ -1252,7 +1252,7 @@

    Arguments

    @@ -1292,7 +1292,7 @@

    Arguments

    @@ -1322,7 +1322,7 @@

    Arguments

    @@ -1337,7 +1337,7 @@

    Arguments

    @@ -1377,7 +1377,7 @@

    Arguments

    @@ -1407,7 +1407,7 @@

    Arguments

    @@ -1422,7 +1422,7 @@

    Arguments

    @@ -1462,7 +1462,7 @@

    Arguments

    @@ -1492,7 +1492,7 @@

    Arguments

    @@ -1507,7 +1507,7 @@

    Arguments

    @@ -1547,7 +1547,7 @@

    Arguments

    @@ -1577,7 +1577,7 @@

    Arguments

    @@ -1592,7 +1592,7 @@

    Arguments

    @@ -1632,7 +1632,7 @@

    Arguments

    @@ -1662,7 +1662,7 @@

    Arguments

    @@ -1677,7 +1677,7 @@

    Arguments

    diff --git a/develop/interface/mp_gatherv.html b/develop/interface/mp_gatherv.html index a024edcd8b8..34e1207ac6a 100644 --- a/develop/interface/mp_gatherv.html +++ b/develop/interface/mp_gatherv.html @@ -221,7 +221,7 @@

    Arguments

    @@ -237,7 +237,7 @@

    Arguments

    @@ -252,7 +252,7 @@

    Arguments

    @@ -338,7 +338,7 @@

    Arguments

    @@ -354,7 +354,7 @@

    Arguments

    @@ -369,7 +369,7 @@

    Arguments

    @@ -455,7 +455,7 @@

    Arguments

    @@ -471,7 +471,7 @@

    Arguments

    @@ -486,7 +486,7 @@

    Arguments

    @@ -572,7 +572,7 @@

    Arguments

    @@ -588,7 +588,7 @@

    Arguments

    @@ -603,7 +603,7 @@

    Arguments

    @@ -689,7 +689,7 @@

    Arguments

    @@ -705,7 +705,7 @@

    Arguments

    @@ -720,7 +720,7 @@

    Arguments

    @@ -806,7 +806,7 @@

    Arguments

    @@ -822,7 +822,7 @@

    Arguments

    @@ -837,7 +837,7 @@

    Arguments

    diff --git a/develop/interface/mp_iallgather.html b/develop/interface/mp_iallgather.html index 8459a7219a9..a5a19e1d5d7 100644 --- a/develop/interface/mp_iallgather.html +++ b/develop/interface/mp_iallgather.html @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    @@ -263,7 +263,7 @@

    Arguments

    @@ -304,7 +304,7 @@

    Arguments

    @@ -319,7 +319,7 @@

    Arguments

    @@ -334,7 +334,7 @@

    Arguments

    @@ -349,7 +349,7 @@

    Arguments

    @@ -390,7 +390,7 @@

    Arguments

    @@ -405,7 +405,7 @@

    Arguments

    @@ -420,7 +420,7 @@

    Arguments

    @@ -435,7 +435,7 @@

    Arguments

    @@ -476,7 +476,7 @@

    Arguments

    @@ -491,7 +491,7 @@

    Arguments

    @@ -506,7 +506,7 @@

    Arguments

    @@ -521,7 +521,7 @@

    Arguments

    @@ -562,7 +562,7 @@

    Arguments

    @@ -577,7 +577,7 @@

    Arguments

    @@ -592,7 +592,7 @@

    Arguments

    @@ -607,7 +607,7 @@

    Arguments

    @@ -648,7 +648,7 @@

    Arguments

    @@ -663,7 +663,7 @@

    Arguments

    @@ -678,7 +678,7 @@

    Arguments

    @@ -693,7 +693,7 @@

    Arguments

    @@ -734,7 +734,7 @@

    Arguments

    @@ -749,7 +749,7 @@

    Arguments

    @@ -764,7 +764,7 @@

    Arguments

    @@ -779,7 +779,7 @@

    Arguments

    @@ -820,7 +820,7 @@

    Arguments

    @@ -835,7 +835,7 @@

    Arguments

    @@ -850,7 +850,7 @@

    Arguments

    @@ -865,7 +865,7 @@

    Arguments

    @@ -906,7 +906,7 @@

    Arguments

    @@ -921,7 +921,7 @@

    Arguments

    @@ -936,7 +936,7 @@

    Arguments

    @@ -951,7 +951,7 @@

    Arguments

    @@ -992,7 +992,7 @@

    Arguments

    @@ -1007,7 +1007,7 @@

    Arguments

    @@ -1022,7 +1022,7 @@

    Arguments

    @@ -1037,7 +1037,7 @@

    Arguments

    @@ -1078,7 +1078,7 @@

    Arguments

    @@ -1093,7 +1093,7 @@

    Arguments

    @@ -1108,7 +1108,7 @@

    Arguments

    @@ -1123,7 +1123,7 @@

    Arguments

    @@ -1164,7 +1164,7 @@

    Arguments

    @@ -1179,7 +1179,7 @@

    Arguments

    @@ -1194,7 +1194,7 @@

    Arguments

    @@ -1209,7 +1209,7 @@

    Arguments

    @@ -1250,7 +1250,7 @@

    Arguments

    @@ -1265,7 +1265,7 @@

    Arguments

    @@ -1280,7 +1280,7 @@

    Arguments

    @@ -1295,7 +1295,7 @@

    Arguments

    @@ -1336,7 +1336,7 @@

    Arguments

    @@ -1351,7 +1351,7 @@

    Arguments

    @@ -1366,7 +1366,7 @@

    Arguments

    @@ -1381,7 +1381,7 @@

    Arguments

    @@ -1422,7 +1422,7 @@

    Arguments

    @@ -1437,7 +1437,7 @@

    Arguments

    @@ -1452,7 +1452,7 @@

    Arguments

    @@ -1467,7 +1467,7 @@

    Arguments

    @@ -1508,7 +1508,7 @@

    Arguments

    @@ -1523,7 +1523,7 @@

    Arguments

    @@ -1538,7 +1538,7 @@

    Arguments

    @@ -1553,7 +1553,7 @@

    Arguments

    @@ -1594,7 +1594,7 @@

    Arguments

    @@ -1609,7 +1609,7 @@

    Arguments

    @@ -1624,7 +1624,7 @@

    Arguments

    @@ -1639,7 +1639,7 @@

    Arguments

    @@ -1680,7 +1680,7 @@

    Arguments

    @@ -1695,7 +1695,7 @@

    Arguments

    @@ -1710,7 +1710,7 @@

    Arguments

    @@ -1725,7 +1725,7 @@

    Arguments

    @@ -1766,7 +1766,7 @@

    Arguments

    @@ -1781,7 +1781,7 @@

    Arguments

    @@ -1796,7 +1796,7 @@

    Arguments

    @@ -1811,7 +1811,7 @@

    Arguments

    @@ -1852,7 +1852,7 @@

    Arguments

    @@ -1867,7 +1867,7 @@

    Arguments

    @@ -1882,7 +1882,7 @@

    Arguments

    @@ -1897,7 +1897,7 @@

    Arguments

    @@ -1938,7 +1938,7 @@

    Arguments

    @@ -1953,7 +1953,7 @@

    Arguments

    @@ -1968,7 +1968,7 @@

    Arguments

    @@ -1983,7 +1983,7 @@

    Arguments

    @@ -2024,7 +2024,7 @@

    Arguments

    @@ -2039,7 +2039,7 @@

    Arguments

    @@ -2054,7 +2054,7 @@

    Arguments

    @@ -2069,7 +2069,7 @@

    Arguments

    @@ -2110,7 +2110,7 @@

    Arguments

    @@ -2125,7 +2125,7 @@

    Arguments

    @@ -2140,7 +2140,7 @@

    Arguments

    @@ -2155,7 +2155,7 @@

    Arguments

    @@ -2196,7 +2196,7 @@

    Arguments

    @@ -2211,7 +2211,7 @@

    Arguments

    @@ -2226,7 +2226,7 @@

    Arguments

    @@ -2241,7 +2241,7 @@

    Arguments

    @@ -2282,7 +2282,7 @@

    Arguments

    @@ -2297,7 +2297,7 @@

    Arguments

    @@ -2312,7 +2312,7 @@

    Arguments

    @@ -2327,7 +2327,7 @@

    Arguments

    @@ -2368,7 +2368,7 @@

    Arguments

    @@ -2383,7 +2383,7 @@

    Arguments

    @@ -2398,7 +2398,7 @@

    Arguments

    @@ -2413,7 +2413,7 @@

    Arguments

    @@ -2454,7 +2454,7 @@

    Arguments

    @@ -2469,7 +2469,7 @@

    Arguments

    @@ -2484,7 +2484,7 @@

    Arguments

    @@ -2499,7 +2499,7 @@

    Arguments

    @@ -2540,7 +2540,7 @@

    Arguments

    @@ -2555,7 +2555,7 @@

    Arguments

    @@ -2570,7 +2570,7 @@

    Arguments

    @@ -2585,7 +2585,7 @@

    Arguments

    @@ -2626,7 +2626,7 @@

    Arguments

    @@ -2641,7 +2641,7 @@

    Arguments

    @@ -2656,7 +2656,7 @@

    Arguments

    @@ -2671,7 +2671,7 @@

    Arguments

    @@ -2712,7 +2712,7 @@

    Arguments

    @@ -2727,7 +2727,7 @@

    Arguments

    @@ -2742,7 +2742,7 @@

    Arguments

    @@ -2757,7 +2757,7 @@

    Arguments

    @@ -2798,7 +2798,7 @@

    Arguments

    @@ -2813,7 +2813,7 @@

    Arguments

    @@ -2828,7 +2828,7 @@

    Arguments

    @@ -2843,7 +2843,7 @@

    Arguments

    @@ -2884,7 +2884,7 @@

    Arguments

    @@ -2899,7 +2899,7 @@

    Arguments

    @@ -2914,7 +2914,7 @@

    Arguments

    @@ -2929,7 +2929,7 @@

    Arguments

    @@ -2970,7 +2970,7 @@

    Arguments

    @@ -2985,7 +2985,7 @@

    Arguments

    @@ -3000,7 +3000,7 @@

    Arguments

    @@ -3015,7 +3015,7 @@

    Arguments

    @@ -3056,7 +3056,7 @@

    Arguments

    @@ -3071,7 +3071,7 @@

    Arguments

    @@ -3086,7 +3086,7 @@

    Arguments

    @@ -3101,7 +3101,7 @@

    Arguments

    @@ -3142,7 +3142,7 @@

    Arguments

    @@ -3157,7 +3157,7 @@

    Arguments

    @@ -3172,7 +3172,7 @@

    Arguments

    @@ -3187,7 +3187,7 @@

    Arguments

    @@ -3228,7 +3228,7 @@

    Arguments

    @@ -3243,7 +3243,7 @@

    Arguments

    @@ -3258,7 +3258,7 @@

    Arguments

    @@ -3273,7 +3273,7 @@

    Arguments

    @@ -3314,7 +3314,7 @@

    Arguments

    @@ -3329,7 +3329,7 @@

    Arguments

    @@ -3344,7 +3344,7 @@

    Arguments

    @@ -3359,7 +3359,7 @@

    Arguments

    @@ -3374,7 +3374,7 @@

    Arguments

    @@ -3391,7 +3391,7 @@

    Arguments

    @@ -3432,7 +3432,7 @@

    Arguments

    @@ -3447,7 +3447,7 @@

    Arguments

    @@ -3462,7 +3462,7 @@

    Arguments

    @@ -3477,7 +3477,7 @@

    Arguments

    @@ -3492,7 +3492,7 @@

    Arguments

    @@ -3509,7 +3509,7 @@

    Arguments

    @@ -3550,7 +3550,7 @@

    Arguments

    @@ -3565,7 +3565,7 @@

    Arguments

    @@ -3580,7 +3580,7 @@

    Arguments

    @@ -3595,7 +3595,7 @@

    Arguments

    @@ -3610,7 +3610,7 @@

    Arguments

    @@ -3627,7 +3627,7 @@

    Arguments

    @@ -3668,7 +3668,7 @@

    Arguments

    @@ -3683,7 +3683,7 @@

    Arguments

    @@ -3698,7 +3698,7 @@

    Arguments

    @@ -3713,7 +3713,7 @@

    Arguments

    @@ -3728,7 +3728,7 @@

    Arguments

    @@ -3745,7 +3745,7 @@

    Arguments

    @@ -3786,7 +3786,7 @@

    Arguments

    @@ -3801,7 +3801,7 @@

    Arguments

    @@ -3816,7 +3816,7 @@

    Arguments

    @@ -3831,7 +3831,7 @@

    Arguments

    @@ -3846,7 +3846,7 @@

    Arguments

    @@ -3863,7 +3863,7 @@

    Arguments

    @@ -3904,7 +3904,7 @@

    Arguments

    @@ -3919,7 +3919,7 @@

    Arguments

    @@ -3934,7 +3934,7 @@

    Arguments

    @@ -3949,7 +3949,7 @@

    Arguments

    @@ -3964,7 +3964,7 @@

    Arguments

    @@ -3981,7 +3981,7 @@

    Arguments

    @@ -4022,7 +4022,7 @@

    Arguments

    @@ -4037,7 +4037,7 @@

    Arguments

    @@ -4052,7 +4052,7 @@

    Arguments

    @@ -4067,7 +4067,7 @@

    Arguments

    @@ -4082,7 +4082,7 @@

    Arguments

    @@ -4099,7 +4099,7 @@

    Arguments

    @@ -4140,7 +4140,7 @@

    Arguments

    @@ -4155,7 +4155,7 @@

    Arguments

    @@ -4170,7 +4170,7 @@

    Arguments

    @@ -4185,7 +4185,7 @@

    Arguments

    @@ -4200,7 +4200,7 @@

    Arguments

    @@ -4217,7 +4217,7 @@

    Arguments

    @@ -4258,7 +4258,7 @@

    Arguments

    @@ -4273,7 +4273,7 @@

    Arguments

    @@ -4288,7 +4288,7 @@

    Arguments

    @@ -4303,7 +4303,7 @@

    Arguments

    @@ -4318,7 +4318,7 @@

    Arguments

    @@ -4335,7 +4335,7 @@

    Arguments

    @@ -4376,7 +4376,7 @@

    Arguments

    @@ -4391,7 +4391,7 @@

    Arguments

    @@ -4406,7 +4406,7 @@

    Arguments

    @@ -4421,7 +4421,7 @@

    Arguments

    @@ -4436,7 +4436,7 @@

    Arguments

    @@ -4453,7 +4453,7 @@

    Arguments

    @@ -4494,7 +4494,7 @@

    Arguments

    @@ -4509,7 +4509,7 @@

    Arguments

    @@ -4524,7 +4524,7 @@

    Arguments

    @@ -4539,7 +4539,7 @@

    Arguments

    @@ -4554,7 +4554,7 @@

    Arguments

    @@ -4571,7 +4571,7 @@

    Arguments

    @@ -4612,7 +4612,7 @@

    Arguments

    @@ -4627,7 +4627,7 @@

    Arguments

    @@ -4642,7 +4642,7 @@

    Arguments

    @@ -4657,7 +4657,7 @@

    Arguments

    @@ -4672,7 +4672,7 @@

    Arguments

    @@ -4689,7 +4689,7 @@

    Arguments

    diff --git a/develop/interface/mp_ibcast.html b/develop/interface/mp_ibcast.html index 481f44235bc..575e63fc9ac 100644 --- a/develop/interface/mp_ibcast.html +++ b/develop/interface/mp_ibcast.html @@ -181,7 +181,7 @@

    Arguments

    @@ -196,7 +196,7 @@

    Arguments

    @@ -211,7 +211,7 @@

    Arguments

    @@ -226,7 +226,7 @@

    Arguments

    @@ -266,7 +266,7 @@

    Arguments

    @@ -281,7 +281,7 @@

    Arguments

    @@ -296,7 +296,7 @@

    Arguments

    @@ -311,7 +311,7 @@

    Arguments

    @@ -351,7 +351,7 @@

    Arguments

    @@ -366,7 +366,7 @@

    Arguments

    @@ -381,7 +381,7 @@

    Arguments

    @@ -396,7 +396,7 @@

    Arguments

    @@ -436,7 +436,7 @@

    Arguments

    @@ -451,7 +451,7 @@

    Arguments

    @@ -466,7 +466,7 @@

    Arguments

    @@ -481,7 +481,7 @@

    Arguments

    @@ -521,7 +521,7 @@

    Arguments

    @@ -536,7 +536,7 @@

    Arguments

    @@ -551,7 +551,7 @@

    Arguments

    @@ -566,7 +566,7 @@

    Arguments

    @@ -606,7 +606,7 @@

    Arguments

    @@ -621,7 +621,7 @@

    Arguments

    @@ -636,7 +636,7 @@

    Arguments

    @@ -651,7 +651,7 @@

    Arguments

    @@ -691,7 +691,7 @@

    Arguments

    @@ -706,7 +706,7 @@

    Arguments

    @@ -721,7 +721,7 @@

    Arguments

    @@ -736,7 +736,7 @@

    Arguments

    @@ -776,7 +776,7 @@

    Arguments

    @@ -791,7 +791,7 @@

    Arguments

    @@ -806,7 +806,7 @@

    Arguments

    @@ -821,7 +821,7 @@

    Arguments

    @@ -861,7 +861,7 @@

    Arguments

    @@ -876,7 +876,7 @@

    Arguments

    @@ -891,7 +891,7 @@

    Arguments

    @@ -906,7 +906,7 @@

    Arguments

    @@ -946,7 +946,7 @@

    Arguments

    @@ -961,7 +961,7 @@

    Arguments

    @@ -976,7 +976,7 @@

    Arguments

    @@ -991,7 +991,7 @@

    Arguments

    @@ -1031,7 +1031,7 @@

    Arguments

    @@ -1046,7 +1046,7 @@

    Arguments

    @@ -1061,7 +1061,7 @@

    Arguments

    @@ -1076,7 +1076,7 @@

    Arguments

    @@ -1116,7 +1116,7 @@

    Arguments

    @@ -1131,7 +1131,7 @@

    Arguments

    @@ -1146,7 +1146,7 @@

    Arguments

    @@ -1161,7 +1161,7 @@

    Arguments

    diff --git a/develop/interface/mp_irecv.html b/develop/interface/mp_irecv.html index 910a5edf196..8f342707d26 100644 --- a/develop/interface/mp_irecv.html +++ b/develop/interface/mp_irecv.html @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -243,7 +243,7 @@

    Arguments

    @@ -283,7 +283,7 @@

    Arguments

    @@ -298,7 +298,7 @@

    Arguments

    @@ -313,7 +313,7 @@

    Arguments

    @@ -328,7 +328,7 @@

    Arguments

    @@ -343,7 +343,7 @@

    Arguments

    @@ -383,7 +383,7 @@

    Arguments

    @@ -398,7 +398,7 @@

    Arguments

    @@ -413,7 +413,7 @@

    Arguments

    @@ -428,7 +428,7 @@

    Arguments

    @@ -443,7 +443,7 @@

    Arguments

    @@ -483,7 +483,7 @@

    Arguments

    @@ -498,7 +498,7 @@

    Arguments

    @@ -513,7 +513,7 @@

    Arguments

    @@ -528,7 +528,7 @@

    Arguments

    @@ -543,7 +543,7 @@

    Arguments

    @@ -583,7 +583,7 @@

    Arguments

    @@ -598,7 +598,7 @@

    Arguments

    @@ -613,7 +613,7 @@

    Arguments

    @@ -628,7 +628,7 @@

    Arguments

    @@ -643,7 +643,7 @@

    Arguments

    @@ -683,7 +683,7 @@

    Arguments

    @@ -698,7 +698,7 @@

    Arguments

    @@ -713,7 +713,7 @@

    Arguments

    @@ -728,7 +728,7 @@

    Arguments

    @@ -743,7 +743,7 @@

    Arguments

    @@ -783,7 +783,7 @@

    Arguments

    @@ -798,7 +798,7 @@

    Arguments

    @@ -813,7 +813,7 @@

    Arguments

    @@ -828,7 +828,7 @@

    Arguments

    @@ -843,7 +843,7 @@

    Arguments

    @@ -883,7 +883,7 @@

    Arguments

    @@ -898,7 +898,7 @@

    Arguments

    @@ -913,7 +913,7 @@

    Arguments

    @@ -928,7 +928,7 @@

    Arguments

    @@ -943,7 +943,7 @@

    Arguments

    @@ -983,7 +983,7 @@

    Arguments

    @@ -998,7 +998,7 @@

    Arguments

    @@ -1013,7 +1013,7 @@

    Arguments

    @@ -1028,7 +1028,7 @@

    Arguments

    @@ -1043,7 +1043,7 @@

    Arguments

    @@ -1083,7 +1083,7 @@

    Arguments

    @@ -1098,7 +1098,7 @@

    Arguments

    @@ -1113,7 +1113,7 @@

    Arguments

    @@ -1128,7 +1128,7 @@

    Arguments

    @@ -1143,7 +1143,7 @@

    Arguments

    @@ -1183,7 +1183,7 @@

    Arguments

    @@ -1198,7 +1198,7 @@

    Arguments

    @@ -1213,7 +1213,7 @@

    Arguments

    @@ -1228,7 +1228,7 @@

    Arguments

    @@ -1243,7 +1243,7 @@

    Arguments

    @@ -1283,7 +1283,7 @@

    Arguments

    @@ -1298,7 +1298,7 @@

    Arguments

    @@ -1313,7 +1313,7 @@

    Arguments

    @@ -1328,7 +1328,7 @@

    Arguments

    @@ -1343,7 +1343,7 @@

    Arguments

    @@ -1383,7 +1383,7 @@

    Arguments

    @@ -1398,7 +1398,7 @@

    Arguments

    @@ -1413,7 +1413,7 @@

    Arguments

    @@ -1428,7 +1428,7 @@

    Arguments

    @@ -1443,7 +1443,7 @@

    Arguments

    @@ -1483,7 +1483,7 @@

    Arguments

    @@ -1498,7 +1498,7 @@

    Arguments

    @@ -1513,7 +1513,7 @@

    Arguments

    @@ -1528,7 +1528,7 @@

    Arguments

    @@ -1543,7 +1543,7 @@

    Arguments

    diff --git a/develop/interface/mp_iscatter.html b/develop/interface/mp_iscatter.html index 28f82b96fe3..f9a715f063b 100644 --- a/develop/interface/mp_iscatter.html +++ b/develop/interface/mp_iscatter.html @@ -202,7 +202,7 @@

    Arguments

    @@ -217,7 +217,7 @@

    Arguments

    @@ -232,7 +232,7 @@

    Arguments

    @@ -247,7 +247,7 @@

    Arguments

    @@ -302,7 +302,7 @@

    Arguments

    @@ -317,7 +317,7 @@

    Arguments

    @@ -332,7 +332,7 @@

    Arguments

    @@ -347,7 +347,7 @@

    Arguments

    @@ -402,7 +402,7 @@

    Arguments

    @@ -417,7 +417,7 @@

    Arguments

    @@ -432,7 +432,7 @@

    Arguments

    @@ -447,7 +447,7 @@

    Arguments

    @@ -502,7 +502,7 @@

    Arguments

    @@ -517,7 +517,7 @@

    Arguments

    @@ -532,7 +532,7 @@

    Arguments

    @@ -547,7 +547,7 @@

    Arguments

    @@ -602,7 +602,7 @@

    Arguments

    @@ -617,7 +617,7 @@

    Arguments

    @@ -632,7 +632,7 @@

    Arguments

    @@ -647,7 +647,7 @@

    Arguments

    @@ -702,7 +702,7 @@

    Arguments

    @@ -717,7 +717,7 @@

    Arguments

    @@ -732,7 +732,7 @@

    Arguments

    @@ -747,7 +747,7 @@

    Arguments

    @@ -802,7 +802,7 @@

    Arguments

    @@ -817,7 +817,7 @@

    Arguments

    @@ -832,7 +832,7 @@

    Arguments

    @@ -847,7 +847,7 @@

    Arguments

    @@ -902,7 +902,7 @@

    Arguments

    @@ -917,7 +917,7 @@

    Arguments

    @@ -932,7 +932,7 @@

    Arguments

    @@ -947,7 +947,7 @@

    Arguments

    @@ -1002,7 +1002,7 @@

    Arguments

    @@ -1017,7 +1017,7 @@

    Arguments

    @@ -1032,7 +1032,7 @@

    Arguments

    @@ -1047,7 +1047,7 @@

    Arguments

    @@ -1102,7 +1102,7 @@

    Arguments

    @@ -1117,7 +1117,7 @@

    Arguments

    @@ -1132,7 +1132,7 @@

    Arguments

    @@ -1147,7 +1147,7 @@

    Arguments

    @@ -1202,7 +1202,7 @@

    Arguments

    @@ -1217,7 +1217,7 @@

    Arguments

    @@ -1232,7 +1232,7 @@

    Arguments

    @@ -1247,7 +1247,7 @@

    Arguments

    @@ -1302,7 +1302,7 @@

    Arguments

    @@ -1317,7 +1317,7 @@

    Arguments

    @@ -1332,7 +1332,7 @@

    Arguments

    @@ -1347,7 +1347,7 @@

    Arguments

    @@ -1417,7 +1417,7 @@

    Arguments

    @@ -1432,7 +1432,7 @@

    Arguments

    @@ -1447,7 +1447,7 @@

    Arguments

    @@ -1462,7 +1462,7 @@

    Arguments

    @@ -1477,7 +1477,7 @@

    Arguments

    @@ -1492,7 +1492,7 @@

    Arguments

    @@ -1562,7 +1562,7 @@

    Arguments

    @@ -1577,7 +1577,7 @@

    Arguments

    @@ -1592,7 +1592,7 @@

    Arguments

    @@ -1607,7 +1607,7 @@

    Arguments

    @@ -1622,7 +1622,7 @@

    Arguments

    @@ -1637,7 +1637,7 @@

    Arguments

    @@ -1707,7 +1707,7 @@

    Arguments

    @@ -1722,7 +1722,7 @@

    Arguments

    @@ -1737,7 +1737,7 @@

    Arguments

    @@ -1752,7 +1752,7 @@

    Arguments

    @@ -1767,7 +1767,7 @@

    Arguments

    @@ -1782,7 +1782,7 @@

    Arguments

    @@ -1852,7 +1852,7 @@

    Arguments

    @@ -1867,7 +1867,7 @@

    Arguments

    @@ -1882,7 +1882,7 @@

    Arguments

    @@ -1897,7 +1897,7 @@

    Arguments

    @@ -1912,7 +1912,7 @@

    Arguments

    @@ -1927,7 +1927,7 @@

    Arguments

    @@ -1997,7 +1997,7 @@

    Arguments

    @@ -2012,7 +2012,7 @@

    Arguments

    @@ -2027,7 +2027,7 @@

    Arguments

    @@ -2042,7 +2042,7 @@

    Arguments

    @@ -2057,7 +2057,7 @@

    Arguments

    @@ -2072,7 +2072,7 @@

    Arguments

    @@ -2142,7 +2142,7 @@

    Arguments

    @@ -2157,7 +2157,7 @@

    Arguments

    @@ -2172,7 +2172,7 @@

    Arguments

    @@ -2187,7 +2187,7 @@

    Arguments

    @@ -2202,7 +2202,7 @@

    Arguments

    @@ -2217,7 +2217,7 @@

    Arguments

    diff --git a/develop/interface/mp_isend.html b/develop/interface/mp_isend.html index e31a398faeb..11af2817179 100644 --- a/develop/interface/mp_isend.html +++ b/develop/interface/mp_isend.html @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -243,7 +243,7 @@

    Arguments

    @@ -283,7 +283,7 @@

    Arguments

    @@ -298,7 +298,7 @@

    Arguments

    @@ -313,7 +313,7 @@

    Arguments

    @@ -328,7 +328,7 @@

    Arguments

    @@ -343,7 +343,7 @@

    Arguments

    @@ -383,7 +383,7 @@

    Arguments

    @@ -398,7 +398,7 @@

    Arguments

    @@ -413,7 +413,7 @@

    Arguments

    @@ -428,7 +428,7 @@

    Arguments

    @@ -443,7 +443,7 @@

    Arguments

    @@ -483,7 +483,7 @@

    Arguments

    @@ -498,7 +498,7 @@

    Arguments

    @@ -513,7 +513,7 @@

    Arguments

    @@ -528,7 +528,7 @@

    Arguments

    @@ -543,7 +543,7 @@

    Arguments

    @@ -583,7 +583,7 @@

    Arguments

    @@ -598,7 +598,7 @@

    Arguments

    @@ -613,7 +613,7 @@

    Arguments

    @@ -628,7 +628,7 @@

    Arguments

    @@ -643,7 +643,7 @@

    Arguments

    @@ -683,7 +683,7 @@

    Arguments

    @@ -698,7 +698,7 @@

    Arguments

    @@ -713,7 +713,7 @@

    Arguments

    @@ -728,7 +728,7 @@

    Arguments

    @@ -743,7 +743,7 @@

    Arguments

    @@ -783,7 +783,7 @@

    Arguments

    @@ -798,7 +798,7 @@

    Arguments

    @@ -813,7 +813,7 @@

    Arguments

    @@ -828,7 +828,7 @@

    Arguments

    @@ -843,7 +843,7 @@

    Arguments

    @@ -883,7 +883,7 @@

    Arguments

    @@ -898,7 +898,7 @@

    Arguments

    @@ -913,7 +913,7 @@

    Arguments

    @@ -928,7 +928,7 @@

    Arguments

    @@ -943,7 +943,7 @@

    Arguments

    @@ -983,7 +983,7 @@

    Arguments

    @@ -998,7 +998,7 @@

    Arguments

    @@ -1013,7 +1013,7 @@

    Arguments

    @@ -1028,7 +1028,7 @@

    Arguments

    @@ -1043,7 +1043,7 @@

    Arguments

    @@ -1083,7 +1083,7 @@

    Arguments

    @@ -1098,7 +1098,7 @@

    Arguments

    @@ -1113,7 +1113,7 @@

    Arguments

    @@ -1128,7 +1128,7 @@

    Arguments

    @@ -1143,7 +1143,7 @@

    Arguments

    @@ -1183,7 +1183,7 @@

    Arguments

    @@ -1198,7 +1198,7 @@

    Arguments

    @@ -1213,7 +1213,7 @@

    Arguments

    @@ -1228,7 +1228,7 @@

    Arguments

    @@ -1243,7 +1243,7 @@

    Arguments

    @@ -1283,7 +1283,7 @@

    Arguments

    @@ -1298,7 +1298,7 @@

    Arguments

    @@ -1313,7 +1313,7 @@

    Arguments

    @@ -1328,7 +1328,7 @@

    Arguments

    @@ -1343,7 +1343,7 @@

    Arguments

    @@ -1383,7 +1383,7 @@

    Arguments

    @@ -1398,7 +1398,7 @@

    Arguments

    @@ -1413,7 +1413,7 @@

    Arguments

    @@ -1428,7 +1428,7 @@

    Arguments

    @@ -1443,7 +1443,7 @@

    Arguments

    @@ -1483,7 +1483,7 @@

    Arguments

    @@ -1498,7 +1498,7 @@

    Arguments

    @@ -1513,7 +1513,7 @@

    Arguments

    @@ -1528,7 +1528,7 @@

    Arguments

    @@ -1543,7 +1543,7 @@

    Arguments

    diff --git a/develop/interface/mp_isendrecv.html b/develop/interface/mp_isendrecv.html index f24a554effd..00fcdc6fef6 100644 --- a/develop/interface/mp_isendrecv.html +++ b/develop/interface/mp_isendrecv.html @@ -181,7 +181,7 @@

    Arguments

    @@ -196,7 +196,7 @@

    Arguments

    @@ -211,7 +211,7 @@

    Arguments

    @@ -226,7 +226,7 @@

    Arguments

    @@ -241,7 +241,7 @@

    Arguments

    @@ -256,7 +256,7 @@

    Arguments

    @@ -272,7 +272,7 @@

    Arguments

    @@ -288,7 +288,7 @@

    Arguments

    @@ -328,7 +328,7 @@

    Arguments

    @@ -343,7 +343,7 @@

    Arguments

    @@ -358,7 +358,7 @@

    Arguments

    @@ -373,7 +373,7 @@

    Arguments

    @@ -388,7 +388,7 @@

    Arguments

    @@ -403,7 +403,7 @@

    Arguments

    @@ -419,7 +419,7 @@

    Arguments

    @@ -435,7 +435,7 @@

    Arguments

    @@ -475,7 +475,7 @@

    Arguments

    @@ -490,7 +490,7 @@

    Arguments

    @@ -505,7 +505,7 @@

    Arguments

    @@ -520,7 +520,7 @@

    Arguments

    @@ -535,7 +535,7 @@

    Arguments

    @@ -550,7 +550,7 @@

    Arguments

    @@ -566,7 +566,7 @@

    Arguments

    @@ -582,7 +582,7 @@

    Arguments

    @@ -622,7 +622,7 @@

    Arguments

    @@ -637,7 +637,7 @@

    Arguments

    @@ -652,7 +652,7 @@

    Arguments

    @@ -667,7 +667,7 @@

    Arguments

    @@ -682,7 +682,7 @@

    Arguments

    @@ -697,7 +697,7 @@

    Arguments

    @@ -713,7 +713,7 @@

    Arguments

    @@ -729,7 +729,7 @@

    Arguments

    @@ -769,7 +769,7 @@

    Arguments

    @@ -784,7 +784,7 @@

    Arguments

    @@ -799,7 +799,7 @@

    Arguments

    @@ -814,7 +814,7 @@

    Arguments

    @@ -829,7 +829,7 @@

    Arguments

    @@ -844,7 +844,7 @@

    Arguments

    @@ -860,7 +860,7 @@

    Arguments

    @@ -876,7 +876,7 @@

    Arguments

    @@ -916,7 +916,7 @@

    Arguments

    @@ -931,7 +931,7 @@

    Arguments

    @@ -946,7 +946,7 @@

    Arguments

    @@ -961,7 +961,7 @@

    Arguments

    @@ -976,7 +976,7 @@

    Arguments

    @@ -991,7 +991,7 @@

    Arguments

    @@ -1007,7 +1007,7 @@

    Arguments

    @@ -1023,7 +1023,7 @@

    Arguments

    @@ -1063,7 +1063,7 @@

    Arguments

    @@ -1078,7 +1078,7 @@

    Arguments

    @@ -1093,7 +1093,7 @@

    Arguments

    @@ -1108,7 +1108,7 @@

    Arguments

    @@ -1123,7 +1123,7 @@

    Arguments

    @@ -1138,7 +1138,7 @@

    Arguments

    @@ -1154,7 +1154,7 @@

    Arguments

    @@ -1170,7 +1170,7 @@

    Arguments

    @@ -1210,7 +1210,7 @@

    Arguments

    @@ -1225,7 +1225,7 @@

    Arguments

    @@ -1240,7 +1240,7 @@

    Arguments

    @@ -1255,7 +1255,7 @@

    Arguments

    @@ -1270,7 +1270,7 @@

    Arguments

    @@ -1285,7 +1285,7 @@

    Arguments

    @@ -1301,7 +1301,7 @@

    Arguments

    @@ -1317,7 +1317,7 @@

    Arguments

    @@ -1357,7 +1357,7 @@

    Arguments

    @@ -1372,7 +1372,7 @@

    Arguments

    @@ -1387,7 +1387,7 @@

    Arguments

    @@ -1402,7 +1402,7 @@

    Arguments

    @@ -1417,7 +1417,7 @@

    Arguments

    @@ -1432,7 +1432,7 @@

    Arguments

    @@ -1448,7 +1448,7 @@

    Arguments

    @@ -1464,7 +1464,7 @@

    Arguments

    @@ -1504,7 +1504,7 @@

    Arguments

    @@ -1519,7 +1519,7 @@

    Arguments

    @@ -1534,7 +1534,7 @@

    Arguments

    @@ -1549,7 +1549,7 @@

    Arguments

    @@ -1564,7 +1564,7 @@

    Arguments

    @@ -1579,7 +1579,7 @@

    Arguments

    @@ -1595,7 +1595,7 @@

    Arguments

    @@ -1611,7 +1611,7 @@

    Arguments

    @@ -1651,7 +1651,7 @@

    Arguments

    @@ -1666,7 +1666,7 @@

    Arguments

    @@ -1681,7 +1681,7 @@

    Arguments

    @@ -1696,7 +1696,7 @@

    Arguments

    @@ -1711,7 +1711,7 @@

    Arguments

    @@ -1726,7 +1726,7 @@

    Arguments

    @@ -1742,7 +1742,7 @@

    Arguments

    @@ -1758,7 +1758,7 @@

    Arguments

    @@ -1798,7 +1798,7 @@

    Arguments

    @@ -1813,7 +1813,7 @@

    Arguments

    @@ -1828,7 +1828,7 @@

    Arguments

    @@ -1843,7 +1843,7 @@

    Arguments

    @@ -1858,7 +1858,7 @@

    Arguments

    @@ -1873,7 +1873,7 @@

    Arguments

    @@ -1889,7 +1889,7 @@

    Arguments

    @@ -1905,7 +1905,7 @@

    Arguments

    diff --git a/develop/interface/mp_isum.html b/develop/interface/mp_isum.html index 3d8996880de..7e932463ec5 100644 --- a/develop/interface/mp_isum.html +++ b/develop/interface/mp_isum.html @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -246,7 +246,7 @@

    Arguments

    @@ -261,7 +261,7 @@

    Arguments

    @@ -276,7 +276,7 @@

    Arguments

    @@ -316,7 +316,7 @@

    Arguments

    @@ -331,7 +331,7 @@

    Arguments

    @@ -346,7 +346,7 @@

    Arguments

    @@ -386,7 +386,7 @@

    Arguments

    @@ -401,7 +401,7 @@

    Arguments

    @@ -416,7 +416,7 @@

    Arguments

    @@ -456,7 +456,7 @@

    Arguments

    @@ -471,7 +471,7 @@

    Arguments

    @@ -486,7 +486,7 @@

    Arguments

    @@ -526,7 +526,7 @@

    Arguments

    @@ -541,7 +541,7 @@

    Arguments

    @@ -556,7 +556,7 @@

    Arguments

    @@ -596,7 +596,7 @@

    Arguments

    @@ -611,7 +611,7 @@

    Arguments

    @@ -626,7 +626,7 @@

    Arguments

    diff --git a/develop/interface/mp_max.html b/develop/interface/mp_max.html index 149b3e01310..69635f6a18c 100644 --- a/develop/interface/mp_max.html +++ b/develop/interface/mp_max.html @@ -181,7 +181,7 @@

    Arguments

    @@ -196,7 +196,7 @@

    Arguments

    @@ -237,7 +237,7 @@

    Arguments

    @@ -252,7 +252,7 @@

    Arguments

    @@ -292,7 +292,7 @@

    Arguments

    @@ -307,7 +307,7 @@

    Arguments

    @@ -348,7 +348,7 @@

    Arguments

    @@ -363,7 +363,7 @@

    Arguments

    @@ -403,7 +403,7 @@

    Arguments

    @@ -418,7 +418,7 @@

    Arguments

    @@ -459,7 +459,7 @@

    Arguments

    @@ -474,7 +474,7 @@

    Arguments

    @@ -514,7 +514,7 @@

    Arguments

    @@ -529,7 +529,7 @@

    Arguments

    @@ -570,7 +570,7 @@

    Arguments

    @@ -585,7 +585,7 @@

    Arguments

    @@ -625,7 +625,7 @@

    Arguments

    @@ -640,7 +640,7 @@

    Arguments

    @@ -681,7 +681,7 @@

    Arguments

    @@ -696,7 +696,7 @@

    Arguments

    @@ -736,7 +736,7 @@

    Arguments

    @@ -751,7 +751,7 @@

    Arguments

    @@ -792,7 +792,7 @@

    Arguments

    @@ -807,7 +807,7 @@

    Arguments

    diff --git a/develop/interface/mp_maxloc.html b/develop/interface/mp_maxloc.html index 5cc1c2d8484..a4e27e321e2 100644 --- a/develop/interface/mp_maxloc.html +++ b/develop/interface/mp_maxloc.html @@ -170,7 +170,7 @@

    Arguments

    @@ -185,7 +185,7 @@

    Arguments

    diff --git a/develop/interface/mp_min.html b/develop/interface/mp_min.html index 080f2f1d45b..0064e620588 100644 --- a/develop/interface/mp_min.html +++ b/develop/interface/mp_min.html @@ -181,7 +181,7 @@

    Arguments

    @@ -196,7 +196,7 @@

    Arguments

    @@ -237,7 +237,7 @@

    Arguments

    @@ -252,7 +252,7 @@

    Arguments

    @@ -292,7 +292,7 @@

    Arguments

    @@ -307,7 +307,7 @@

    Arguments

    @@ -348,7 +348,7 @@

    Arguments

    @@ -363,7 +363,7 @@

    Arguments

    @@ -403,7 +403,7 @@

    Arguments

    @@ -418,7 +418,7 @@

    Arguments

    @@ -459,7 +459,7 @@

    Arguments

    @@ -474,7 +474,7 @@

    Arguments

    @@ -514,7 +514,7 @@

    Arguments

    @@ -529,7 +529,7 @@

    Arguments

    @@ -570,7 +570,7 @@

    Arguments

    @@ -585,7 +585,7 @@

    Arguments

    @@ -625,7 +625,7 @@

    Arguments

    @@ -640,7 +640,7 @@

    Arguments

    @@ -681,7 +681,7 @@

    Arguments

    @@ -696,7 +696,7 @@

    Arguments

    @@ -736,7 +736,7 @@

    Arguments

    @@ -751,7 +751,7 @@

    Arguments

    @@ -792,7 +792,7 @@

    Arguments

    @@ -807,7 +807,7 @@

    Arguments

    diff --git a/develop/interface/mp_minloc.html b/develop/interface/mp_minloc.html index c6ff33b7ea9..ab4fb384a12 100644 --- a/develop/interface/mp_minloc.html +++ b/develop/interface/mp_minloc.html @@ -170,7 +170,7 @@

    Arguments

    @@ -185,7 +185,7 @@

    Arguments

    diff --git a/develop/interface/mp_prod.html b/develop/interface/mp_prod.html index c9fbea5a183..d0afe3242a4 100644 --- a/develop/interface/mp_prod.html +++ b/develop/interface/mp_prod.html @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -232,7 +232,7 @@

    Arguments

    @@ -247,7 +247,7 @@

    Arguments

    @@ -288,7 +288,7 @@

    Arguments

    @@ -303,7 +303,7 @@

    Arguments

    @@ -344,7 +344,7 @@

    Arguments

    @@ -359,7 +359,7 @@

    Arguments

    @@ -400,7 +400,7 @@

    Arguments

    @@ -415,7 +415,7 @@

    Arguments

    @@ -456,7 +456,7 @@

    Arguments

    @@ -471,7 +471,7 @@

    Arguments

    diff --git a/develop/interface/mp_recv.html b/develop/interface/mp_recv.html index 7c834a4713b..195d79a106b 100644 --- a/develop/interface/mp_recv.html +++ b/develop/interface/mp_recv.html @@ -181,7 +181,7 @@

    Arguments

    @@ -196,7 +196,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -268,7 +268,7 @@

    Arguments

    @@ -283,7 +283,7 @@

    Arguments

    @@ -298,7 +298,7 @@

    Arguments

    @@ -313,7 +313,7 @@

    Arguments

    @@ -353,7 +353,7 @@

    Arguments

    @@ -368,7 +368,7 @@

    Arguments

    @@ -384,7 +384,7 @@

    Arguments

    @@ -400,7 +400,7 @@

    Arguments

    @@ -440,7 +440,7 @@

    Arguments

    @@ -455,7 +455,7 @@

    Arguments

    @@ -470,7 +470,7 @@

    Arguments

    @@ -485,7 +485,7 @@

    Arguments

    @@ -525,7 +525,7 @@

    Arguments

    @@ -540,7 +540,7 @@

    Arguments

    @@ -556,7 +556,7 @@

    Arguments

    @@ -572,7 +572,7 @@

    Arguments

    @@ -612,7 +612,7 @@

    Arguments

    @@ -627,7 +627,7 @@

    Arguments

    @@ -642,7 +642,7 @@

    Arguments

    @@ -657,7 +657,7 @@

    Arguments

    @@ -697,7 +697,7 @@

    Arguments

    @@ -712,7 +712,7 @@

    Arguments

    @@ -728,7 +728,7 @@

    Arguments

    @@ -744,7 +744,7 @@

    Arguments

    @@ -784,7 +784,7 @@

    Arguments

    @@ -799,7 +799,7 @@

    Arguments

    @@ -814,7 +814,7 @@

    Arguments

    @@ -829,7 +829,7 @@

    Arguments

    @@ -869,7 +869,7 @@

    Arguments

    @@ -884,7 +884,7 @@

    Arguments

    @@ -900,7 +900,7 @@

    Arguments

    @@ -916,7 +916,7 @@

    Arguments

    @@ -956,7 +956,7 @@

    Arguments

    @@ -971,7 +971,7 @@

    Arguments

    @@ -986,7 +986,7 @@

    Arguments

    @@ -1001,7 +1001,7 @@

    Arguments

    @@ -1041,7 +1041,7 @@

    Arguments

    @@ -1056,7 +1056,7 @@

    Arguments

    @@ -1072,7 +1072,7 @@

    Arguments

    @@ -1088,7 +1088,7 @@

    Arguments

    @@ -1128,7 +1128,7 @@

    Arguments

    @@ -1143,7 +1143,7 @@

    Arguments

    @@ -1158,7 +1158,7 @@

    Arguments

    @@ -1173,7 +1173,7 @@

    Arguments

    diff --git a/develop/interface/mp_rget.html b/develop/interface/mp_rget.html index a86230dd615..901ee298c2f 100644 --- a/develop/interface/mp_rget.html +++ b/develop/interface/mp_rget.html @@ -175,7 +175,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    @@ -220,7 +220,7 @@

    Arguments

    @@ -235,7 +235,7 @@

    Arguments

    @@ -250,7 +250,7 @@

    Arguments

    @@ -265,7 +265,7 @@

    Arguments

    @@ -280,7 +280,7 @@

    Arguments

    @@ -295,7 +295,7 @@

    Arguments

    @@ -335,7 +335,7 @@

    Arguments

    @@ -350,7 +350,7 @@

    Arguments

    @@ -365,7 +365,7 @@

    Arguments

    @@ -380,7 +380,7 @@

    Arguments

    @@ -395,7 +395,7 @@

    Arguments

    @@ -410,7 +410,7 @@

    Arguments

    @@ -425,7 +425,7 @@

    Arguments

    @@ -440,7 +440,7 @@

    Arguments

    @@ -455,7 +455,7 @@

    Arguments

    @@ -495,7 +495,7 @@

    Arguments

    @@ -510,7 +510,7 @@

    Arguments

    @@ -525,7 +525,7 @@

    Arguments

    @@ -540,7 +540,7 @@

    Arguments

    @@ -555,7 +555,7 @@

    Arguments

    @@ -570,7 +570,7 @@

    Arguments

    @@ -585,7 +585,7 @@

    Arguments

    @@ -600,7 +600,7 @@

    Arguments

    @@ -615,7 +615,7 @@

    Arguments

    @@ -655,7 +655,7 @@

    Arguments

    @@ -670,7 +670,7 @@

    Arguments

    @@ -685,7 +685,7 @@

    Arguments

    @@ -700,7 +700,7 @@

    Arguments

    @@ -715,7 +715,7 @@

    Arguments

    @@ -730,7 +730,7 @@

    Arguments

    @@ -745,7 +745,7 @@

    Arguments

    @@ -760,7 +760,7 @@

    Arguments

    @@ -775,7 +775,7 @@

    Arguments

    @@ -815,7 +815,7 @@

    Arguments

    @@ -830,7 +830,7 @@

    Arguments

    @@ -845,7 +845,7 @@

    Arguments

    @@ -860,7 +860,7 @@

    Arguments

    @@ -875,7 +875,7 @@

    Arguments

    @@ -890,7 +890,7 @@

    Arguments

    @@ -905,7 +905,7 @@

    Arguments

    @@ -920,7 +920,7 @@

    Arguments

    @@ -935,7 +935,7 @@

    Arguments

    @@ -975,7 +975,7 @@

    Arguments

    @@ -990,7 +990,7 @@

    Arguments

    @@ -1005,7 +1005,7 @@

    Arguments

    @@ -1020,7 +1020,7 @@

    Arguments

    @@ -1035,7 +1035,7 @@

    Arguments

    @@ -1050,7 +1050,7 @@

    Arguments

    @@ -1065,7 +1065,7 @@

    Arguments

    @@ -1080,7 +1080,7 @@

    Arguments

    @@ -1095,7 +1095,7 @@

    Arguments

    diff --git a/develop/interface/mp_send.html b/develop/interface/mp_send.html index 6f9a36aba44..b27232b017f 100644 --- a/develop/interface/mp_send.html +++ b/develop/interface/mp_send.html @@ -181,7 +181,7 @@

    Arguments

    @@ -196,7 +196,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -268,7 +268,7 @@

    Arguments

    @@ -283,7 +283,7 @@

    Arguments

    @@ -298,7 +298,7 @@

    Arguments

    @@ -313,7 +313,7 @@

    Arguments

    @@ -353,7 +353,7 @@

    Arguments

    @@ -368,7 +368,7 @@

    Arguments

    @@ -384,7 +384,7 @@

    Arguments

    @@ -400,7 +400,7 @@

    Arguments

    @@ -440,7 +440,7 @@

    Arguments

    @@ -455,7 +455,7 @@

    Arguments

    @@ -470,7 +470,7 @@

    Arguments

    @@ -485,7 +485,7 @@

    Arguments

    @@ -525,7 +525,7 @@

    Arguments

    @@ -540,7 +540,7 @@

    Arguments

    @@ -556,7 +556,7 @@

    Arguments

    @@ -572,7 +572,7 @@

    Arguments

    @@ -612,7 +612,7 @@

    Arguments

    @@ -627,7 +627,7 @@

    Arguments

    @@ -642,7 +642,7 @@

    Arguments

    @@ -657,7 +657,7 @@

    Arguments

    @@ -697,7 +697,7 @@

    Arguments

    @@ -712,7 +712,7 @@

    Arguments

    @@ -728,7 +728,7 @@

    Arguments

    @@ -744,7 +744,7 @@

    Arguments

    @@ -784,7 +784,7 @@

    Arguments

    @@ -799,7 +799,7 @@

    Arguments

    @@ -814,7 +814,7 @@

    Arguments

    @@ -829,7 +829,7 @@

    Arguments

    @@ -869,7 +869,7 @@

    Arguments

    @@ -884,7 +884,7 @@

    Arguments

    @@ -900,7 +900,7 @@

    Arguments

    @@ -916,7 +916,7 @@

    Arguments

    @@ -956,7 +956,7 @@

    Arguments

    @@ -971,7 +971,7 @@

    Arguments

    @@ -986,7 +986,7 @@

    Arguments

    @@ -1001,7 +1001,7 @@

    Arguments

    @@ -1041,7 +1041,7 @@

    Arguments

    @@ -1056,7 +1056,7 @@

    Arguments

    @@ -1072,7 +1072,7 @@

    Arguments

    @@ -1088,7 +1088,7 @@

    Arguments

    @@ -1128,7 +1128,7 @@

    Arguments

    @@ -1143,7 +1143,7 @@

    Arguments

    @@ -1158,7 +1158,7 @@

    Arguments

    @@ -1173,7 +1173,7 @@

    Arguments

    diff --git a/develop/interface/mp_sendrecv.html b/develop/interface/mp_sendrecv.html index 96f2a7e0d50..7cffff91bdd 100644 --- a/develop/interface/mp_sendrecv.html +++ b/develop/interface/mp_sendrecv.html @@ -175,7 +175,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    @@ -220,7 +220,7 @@

    Arguments

    @@ -235,7 +235,7 @@

    Arguments

    @@ -275,7 +275,7 @@

    Arguments

    @@ -290,7 +290,7 @@

    Arguments

    @@ -305,7 +305,7 @@

    Arguments

    @@ -320,7 +320,7 @@

    Arguments

    @@ -335,7 +335,7 @@

    Arguments

    @@ -375,7 +375,7 @@

    Arguments

    @@ -390,7 +390,7 @@

    Arguments

    @@ -405,7 +405,7 @@

    Arguments

    @@ -420,7 +420,7 @@

    Arguments

    @@ -435,7 +435,7 @@

    Arguments

    @@ -475,7 +475,7 @@

    Arguments

    @@ -490,7 +490,7 @@

    Arguments

    @@ -505,7 +505,7 @@

    Arguments

    @@ -520,7 +520,7 @@

    Arguments

    @@ -535,7 +535,7 @@

    Arguments

    @@ -575,7 +575,7 @@

    Arguments

    @@ -590,7 +590,7 @@

    Arguments

    @@ -605,7 +605,7 @@

    Arguments

    @@ -620,7 +620,7 @@

    Arguments

    @@ -635,7 +635,7 @@

    Arguments

    @@ -675,7 +675,7 @@

    Arguments

    @@ -690,7 +690,7 @@

    Arguments

    @@ -705,7 +705,7 @@

    Arguments

    @@ -720,7 +720,7 @@

    Arguments

    @@ -735,7 +735,7 @@

    Arguments

    diff --git a/develop/interface/mp_sum.html b/develop/interface/mp_sum.html index 66ae25df5a0..f87d4079b61 100644 --- a/develop/interface/mp_sum.html +++ b/develop/interface/mp_sum.html @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -268,7 +268,7 @@

    Arguments

    @@ -283,7 +283,7 @@

    Arguments

    @@ -323,7 +323,7 @@

    Arguments

    @@ -338,7 +338,7 @@

    Arguments

    @@ -378,7 +378,7 @@

    Arguments

    @@ -393,7 +393,7 @@

    Arguments

    @@ -433,7 +433,7 @@

    Arguments

    @@ -448,7 +448,7 @@

    Arguments

    @@ -488,7 +488,7 @@

    Arguments

    @@ -503,7 +503,7 @@

    Arguments

    @@ -543,7 +543,7 @@

    Arguments

    @@ -558,7 +558,7 @@

    Arguments

    @@ -598,7 +598,7 @@

    Arguments

    @@ -613,7 +613,7 @@

    Arguments

    @@ -653,7 +653,7 @@

    Arguments

    @@ -668,7 +668,7 @@

    Arguments

    @@ -708,7 +708,7 @@

    Arguments

    @@ -723,7 +723,7 @@

    Arguments

    @@ -763,7 +763,7 @@

    Arguments

    @@ -778,7 +778,7 @@

    Arguments

    @@ -818,7 +818,7 @@

    Arguments

    @@ -833,7 +833,7 @@

    Arguments

    @@ -873,7 +873,7 @@

    Arguments

    @@ -888,7 +888,7 @@

    Arguments

    @@ -928,7 +928,7 @@

    Arguments

    @@ -943,7 +943,7 @@

    Arguments

    @@ -983,7 +983,7 @@

    Arguments

    @@ -998,7 +998,7 @@

    Arguments

    @@ -1038,7 +1038,7 @@

    Arguments

    @@ -1053,7 +1053,7 @@

    Arguments

    @@ -1093,7 +1093,7 @@

    Arguments

    @@ -1108,7 +1108,7 @@

    Arguments

    @@ -1148,7 +1148,7 @@

    Arguments

    @@ -1163,7 +1163,7 @@

    Arguments

    @@ -1203,7 +1203,7 @@

    Arguments

    @@ -1218,7 +1218,7 @@

    Arguments

    @@ -1258,7 +1258,7 @@

    Arguments

    @@ -1273,7 +1273,7 @@

    Arguments

    @@ -1313,7 +1313,7 @@

    Arguments

    @@ -1328,7 +1328,7 @@

    Arguments

    @@ -1368,7 +1368,7 @@

    Arguments

    @@ -1383,7 +1383,7 @@

    Arguments

    @@ -1423,7 +1423,7 @@

    Arguments

    @@ -1438,7 +1438,7 @@

    Arguments

    @@ -1478,7 +1478,7 @@

    Arguments

    @@ -1493,7 +1493,7 @@

    Arguments

    @@ -1533,7 +1533,7 @@

    Arguments

    @@ -1548,7 +1548,7 @@

    Arguments

    @@ -1588,7 +1588,7 @@

    Arguments

    @@ -1603,7 +1603,7 @@

    Arguments

    @@ -1643,7 +1643,7 @@

    Arguments

    @@ -1658,7 +1658,7 @@

    Arguments

    @@ -1698,7 +1698,7 @@

    Arguments

    @@ -1713,7 +1713,7 @@

    Arguments

    @@ -1753,7 +1753,7 @@

    Arguments

    @@ -1768,7 +1768,7 @@

    Arguments

    @@ -1808,7 +1808,7 @@

    Arguments

    @@ -1823,7 +1823,7 @@

    Arguments

    @@ -1864,7 +1864,7 @@

    Arguments

    @@ -1879,7 +1879,7 @@

    Arguments

    @@ -1894,7 +1894,7 @@

    Arguments

    @@ -1935,7 +1935,7 @@

    Arguments

    @@ -1950,7 +1950,7 @@

    Arguments

    @@ -1965,7 +1965,7 @@

    Arguments

    @@ -2006,7 +2006,7 @@

    Arguments

    @@ -2021,7 +2021,7 @@

    Arguments

    @@ -2036,7 +2036,7 @@

    Arguments

    @@ -2077,7 +2077,7 @@

    Arguments

    @@ -2092,7 +2092,7 @@

    Arguments

    @@ -2107,7 +2107,7 @@

    Arguments

    @@ -2148,7 +2148,7 @@

    Arguments

    @@ -2163,7 +2163,7 @@

    Arguments

    @@ -2178,7 +2178,7 @@

    Arguments

    @@ -2219,7 +2219,7 @@

    Arguments

    @@ -2234,7 +2234,7 @@

    Arguments

    @@ -2249,7 +2249,7 @@

    Arguments

    @@ -2290,7 +2290,7 @@

    Arguments

    @@ -2305,7 +2305,7 @@

    Arguments

    @@ -2320,7 +2320,7 @@

    Arguments

    @@ -2361,7 +2361,7 @@

    Arguments

    @@ -2376,7 +2376,7 @@

    Arguments

    @@ -2391,7 +2391,7 @@

    Arguments

    @@ -2432,7 +2432,7 @@

    Arguments

    @@ -2447,7 +2447,7 @@

    Arguments

    @@ -2462,7 +2462,7 @@

    Arguments

    @@ -2503,7 +2503,7 @@

    Arguments

    @@ -2518,7 +2518,7 @@

    Arguments

    @@ -2533,7 +2533,7 @@

    Arguments

    @@ -2574,7 +2574,7 @@

    Arguments

    @@ -2589,7 +2589,7 @@

    Arguments

    @@ -2604,7 +2604,7 @@

    Arguments

    @@ -2645,7 +2645,7 @@

    Arguments

    @@ -2660,7 +2660,7 @@

    Arguments

    @@ -2675,7 +2675,7 @@

    Arguments

    @@ -2715,7 +2715,7 @@

    Arguments

    @@ -2730,7 +2730,7 @@

    Arguments

    @@ -2770,7 +2770,7 @@

    Arguments

    @@ -2785,7 +2785,7 @@

    Arguments

    diff --git a/develop/interface/mp_sum_partial.html b/develop/interface/mp_sum_partial.html index 986774cffcd..2a52db01178 100644 --- a/develop/interface/mp_sum_partial.html +++ b/develop/interface/mp_sum_partial.html @@ -175,7 +175,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    @@ -245,7 +245,7 @@

    Arguments

    @@ -260,7 +260,7 @@

    Arguments

    @@ -275,7 +275,7 @@

    Arguments

    @@ -315,7 +315,7 @@

    Arguments

    @@ -330,7 +330,7 @@

    Arguments

    @@ -345,7 +345,7 @@

    Arguments

    @@ -385,7 +385,7 @@

    Arguments

    @@ -400,7 +400,7 @@

    Arguments

    @@ -415,7 +415,7 @@

    Arguments

    @@ -455,7 +455,7 @@

    Arguments

    @@ -470,7 +470,7 @@

    Arguments

    @@ -485,7 +485,7 @@

    Arguments

    @@ -525,7 +525,7 @@

    Arguments

    @@ -540,7 +540,7 @@

    Arguments

    @@ -555,7 +555,7 @@

    Arguments

    diff --git a/develop/interface/mp_test.html b/develop/interface/mp_test.html index e16711e8f19..332d2723f40 100644 --- a/develop/interface/mp_test.html +++ b/develop/interface/mp_test.html @@ -170,7 +170,7 @@

    Arguments

    diff --git a/develop/interface/mp_type_make.html b/develop/interface/mp_type_make.html index b7b5af6cbf7..8deab39d7f5 100644 --- a/develop/interface/mp_type_make.html +++ b/develop/interface/mp_type_make.html @@ -176,7 +176,7 @@

    Arguments

    @@ -251,7 +251,7 @@

    Arguments

    @@ -326,7 +326,7 @@

    Arguments

    @@ -401,7 +401,7 @@

    Arguments

    @@ -476,7 +476,7 @@

    Arguments

    @@ -551,7 +551,7 @@

    Arguments

    diff --git a/develop/interface/mp_win_create.html b/develop/interface/mp_win_create.html index e1a4d129954..47d668acfd7 100644 --- a/develop/interface/mp_win_create.html +++ b/develop/interface/mp_win_create.html @@ -175,7 +175,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    @@ -245,7 +245,7 @@

    Arguments

    @@ -260,7 +260,7 @@

    Arguments

    @@ -275,7 +275,7 @@

    Arguments

    @@ -315,7 +315,7 @@

    Arguments

    @@ -330,7 +330,7 @@

    Arguments

    @@ -345,7 +345,7 @@

    Arguments

    @@ -385,7 +385,7 @@

    Arguments

    @@ -400,7 +400,7 @@

    Arguments

    @@ -415,7 +415,7 @@

    Arguments

    @@ -455,7 +455,7 @@

    Arguments

    @@ -470,7 +470,7 @@

    Arguments

    @@ -485,7 +485,7 @@

    Arguments

    @@ -525,7 +525,7 @@

    Arguments

    @@ -540,7 +540,7 @@

    Arguments

    @@ -555,7 +555,7 @@

    Arguments

    diff --git a/develop/interface/pointer_view.html b/develop/interface/pointer_view.html index 2c83a9401e4..90a3c14fe32 100644 --- a/develop/interface/pointer_view.html +++ b/develop/interface/pointer_view.html @@ -192,7 +192,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    @@ -271,7 +271,7 @@

    Arguments

    @@ -287,7 +287,7 @@

    Arguments

    @@ -350,7 +350,7 @@

    Arguments

    @@ -366,7 +366,7 @@

    Arguments

    @@ -429,7 +429,7 @@

    Arguments

    @@ -445,7 +445,7 @@

    Arguments

    @@ -508,7 +508,7 @@

    Arguments

    @@ -524,7 +524,7 @@

    Arguments

    @@ -587,7 +587,7 @@

    Arguments

    @@ -603,7 +603,7 @@

    Arguments

    @@ -665,7 +665,7 @@

    Arguments

    @@ -680,7 +680,7 @@

    Arguments

    diff --git a/develop/interface/roctxmarka.html b/develop/interface/roctxmarka.html index 102a9c7db10..995435ccf08 100644 --- a/develop/interface/roctxmarka.html +++ b/develop/interface/roctxmarka.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/interface/roctxrangepusha.html b/develop/interface/roctxrangepusha.html index ff3e8d7d6d2..7cb82d39b5d 100644 --- a/develop/interface/roctxrangepusha.html +++ b/develop/interface/roctxrangepusha.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/interface/rowcol_data.html b/develop/interface/rowcol_data.html index 15ebd3743bd..a626b3248bc 100644 --- a/develop/interface/rowcol_data.html +++ b/develop/interface/rowcol_data.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/interface/rowcol_dist.html b/develop/interface/rowcol_dist.html index 6b5d57c65a6..a277ccaea0a 100644 --- a/develop/interface/rowcol_dist.html +++ b/develop/interface/rowcol_dist.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/interface/sort.html b/develop/interface/sort.html index 7e3c9e237b1..7d5a0ac3be7 100644 --- a/develop/interface/sort.html +++ b/develop/interface/sort.html @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -245,7 +245,7 @@

    Arguments

    @@ -260,7 +260,7 @@

    Arguments

    @@ -275,7 +275,7 @@

    Arguments

    @@ -316,7 +316,7 @@

    Arguments

    @@ -331,7 +331,7 @@

    Arguments

    @@ -346,7 +346,7 @@

    Arguments

    @@ -387,7 +387,7 @@

    Arguments

    @@ -402,7 +402,7 @@

    Arguments

    @@ -417,7 +417,7 @@

    Arguments

    diff --git a/develop/interface/swap.html b/develop/interface/swap.html index 10298b5a28d..475787f9390 100644 --- a/develop/interface/swap.html +++ b/develop/interface/swap.html @@ -74,20 +74,20 @@

    swap
  • 3 statements + title="

    0.0% of total for procedures.

    Including implementation: 18 statements, 0.0% of total for procedures.">4 statements
  • - Source File + Source File
  • @@ -131,8 +131,8 @@

    Module Procedures

    @@ -152,11 +152,11 @@

    public interface swap

    Module Procedures

    -

    private elemental subroutine iswap(a, b) +

    private subroutine swap_i8(arr)

    -

    Swaps two integers

    +

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -528,12 +534,12 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    - + integer, intent(in) :: row - +

    the row +the column

    - + integer, intent(in) :: col - +

    the row +the column

    - + complex(kind=real_8), :: block - +

    the block to reserve; added if not NULL

    - + logical, intent(in), :: transposed - +

    the block holds transposed data

    :: existed - +

    block already existed

    - + real(kind=real_4), intent(in)
    - + real(kind=real_8), intent(in)
    - + complex(kind=real_4), intent(in)
    - + complex(kind=real_8), intent(in)
    - + real(kind=real_4), intent(out)
    - + real(kind=real_8), intent(out)
    - + complex(kind=real_4), intent(out)
    - + complex(kind=real_8), intent(out)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_8), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_4), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_4), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_8), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_data_obj), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_4), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_8), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_4), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_8), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_8), intent(in)
    - + character(len=*), intent(in)
    - + type(dbcsr_t_distribution_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + character(len=*), intent(in),
    - + type(dbcsr_t_distribution_type), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in),
    - + character(len=*), intent(in),
    - + real(kind=real_8), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + real(kind=real_4), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + complex(kind=real_8), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + complex(kind=real_4), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + type(block_nd), intent(out)
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(in),
    - + logical, intent(in),
    - + real(kind=real_4), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(in),
    - + logical, intent(in),
    - + real(kind=real_4), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(in),
    - + logical, intent(in),
    - + real(kind=real_4), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_8), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_8), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_8), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_4), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_4), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_4), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + type(block_nd), intent(in)
    - + logical, intent(in),
    - + type(dbcsr_scalar_type), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_t_type), intent(in)
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_t_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + real(kind=real_8), intent(in)
    - + real(kind=real_4), intent(in)
    - + complex(kind=real_8), intent(in)
    - + complex(kind=real_4), intent(in)
    - + type(array_list), intent(in)
    - + type(dbcsr_tas_type), intent(out)
    - + character(len=*), intent(in)
    - + type(dbcsr_tas_distribution_type), intent(inout)
    - + integer, intent(in),
    - + class(dbcsr_tas_rowcol_data), intent(in)
    - + class(dbcsr_tas_rowcol_data), intent(in)
    - + type(dbcsr_tas_type), intent(inout)
    - + type(dbcsr_tas_type), intent(out)
    - + character(len=*), intent(in),
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(dbcsr_tas_type), intent(inout)
    - + real(kind=real_8), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + real(kind=real_4), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + complex(kind=real_8), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + complex(kind=real_4), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + real(kind=real_8),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + real(kind=real_4),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + complex(kind=real_8),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + complex(kind=real_4),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_iterator), intent(inout)
    - + integer(kind=int_8), intent(out)
    - + integer(kind=int_8), intent(out)
    - + type(dbcsr_data_obj), intent(inout)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_iterator), intent(inout)
    - + integer(kind=int_8), intent(out)
    - + integer(kind=int_8), intent(out)
    - + integer, intent(out)
    - + logical, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_iterator), intent(inout)
    - + integer(kind=int_8), intent(out)
    - + integer(kind=int_8), intent(out)
    - + real(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_iterator), intent(inout)
    - + integer(kind=int_8), intent(out)
    - + integer(kind=int_8), intent(out)
    - + real(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_iterator), intent(inout)
    - + integer(kind=int_8), intent(out)
    - + integer(kind=int_8), intent(out)
    - + complex(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_iterator), intent(inout)
    - + integer(kind=int_8), intent(out)
    - + integer(kind=int_8), intent(out)
    - + complex(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + type(dbcsr_data_obj)
    - + logical, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_scalar_type), intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + real(kind=real_8), intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + real(kind=real_4), intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + real(kind=real_4), intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + complex(kind=real_8), intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + complex(kind=real_8), intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + complex(kind=real_4), intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + complex(kind=real_4), intent(in),
    - + type(dbcsr_tas_type), intent(in)
    - + type(dbcsr_tas_type), intent(inout)
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + real(kind=real_8), intent(in)
    - + type(dbcsr_tas_type), intent(inout)
    - + real(kind=real_4), intent(in)
    - + type(dbcsr_tas_type), intent(inout)
    - + complex(kind=real_8), intent(in)
    - + type(dbcsr_tas_type), intent(inout)
    - + complex(kind=real_4), intent(in)
    - + integer, intent(in)
    - + real(kind=dp), intent(in)
    - + logical, intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_4), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_8), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_4), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_8), intent(inout)
    - + character(len=*), intent(in)
    - + character(len=default_string_length)
    - + integer(kind=int_4),
    - + character(len=default_string_length)
    - + integer(kind=int_4),
    - + integer, intent(in),
    - + integer, intent(in),
    - + character(len=default_string_length), intent(in)
    - + integer(kind=int_4), intent(in)
    - + integer(kind=int_4), intent(in),
    - + type(call_stat_type), intent(in),
    - + class(dbcsr_tas_distribution), intent(in)
    - + integer, intent(in)
    - + type(dbcsr_t_type), intent(inout)
    - + real(kind=real_8), intent(out),
    - + type(dbcsr_t_type), intent(inout)
    - + real(kind=real_8), intent(out),
    - + type(dbcsr_t_type), intent(inout)
    - + real(kind=real_8), intent(out),
    - + integer(kind=int_4),
    - + integer, intent(in),
    - + integer, intent(in)
    - + real(kind=dp), intent(in),
    - + logical, intent(in),
    - + type(dbcsr_memtype_type), intent(in),
    - + logical, intent(in),
    - + integer(kind=int_8),
    - + integer, intent(in),
    - + integer, intent(in)
    - + real(kind=dp), intent(in),
    - + logical, intent(in),
    - + type(dbcsr_memtype_type), intent(in),
    - + logical, intent(in),
    - + real(kind=real_4),
    - + integer, intent(in),
    - + integer, intent(in)
    - + real(kind=dp), intent(in),
    - + logical, intent(in),
    - + type(dbcsr_memtype_type), intent(in),
    - + logical, intent(in),
    - + real(kind=real_8),
    - + integer, intent(in),
    - + integer, intent(in)
    - + real(kind=dp), intent(in),
    - + logical, intent(in),
    - + type(dbcsr_memtype_type), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_4),
    - + integer, intent(in),
    - + integer, intent(in)
    - + real(kind=dp), intent(in),
    - + logical, intent(in),
    - + type(dbcsr_memtype_type), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_8),
    - + integer, intent(in),
    - + integer, intent(in)
    - + real(kind=dp), intent(in),
    - + logical, intent(in),
    - + type(dbcsr_memtype_type), intent(in),
    - + logical, intent(in),
    - + type(array_list), intent(in)
    - + integer, intent(in)
    - + integer, intent(out),
    - + type(list_timerenv_type), intent(inout)
    - + type(list_routinestat_type), intent(inout)
    - + type(list_routinereport_type), intent(inout)
    - + type(list_callstackentry_type), intent(inout)
    - + type(list_timerenv_type), intent(inout)
    - + integer, intent(in)
    - + type(list_routinestat_type), intent(inout)
    - + integer, intent(in)
    - + type(list_routinereport_type), intent(inout)
    - + integer, intent(in)
    - + type(list_callstackentry_type), intent(inout)
    - + integer, intent(in)
    - + type(list_timerenv_type), intent(inout)
    - + type(list_routinestat_type), intent(inout)
    - + type(list_routinereport_type), intent(inout)
    - + type(list_callstackentry_type), intent(inout)
    - + type(list_timerenv_type), intent(in)
    - + integer, intent(in)
    - + type(list_routinestat_type), intent(in)
    - + integer, intent(in)
    - + type(list_routinereport_type), intent(in)
    - + integer, intent(in)
    - + type(list_callstackentry_type), intent(in)
    - + integer, intent(in)
    - + type(list_timerenv_type), intent(inout)
    - + integer, intent(in),
    - + type(list_routinestat_type), intent(inout)
    - + integer, intent(in),
    - + type(list_routinereport_type), intent(inout)
    - + integer, intent(in),
    - + type(list_callstackentry_type), intent(inout)
    - + integer, intent(in),
    - + type(list_timerenv_type), intent(inout)
    - + type(timer_env_type), intent(in),
    - + integer, intent(in)
    - + type(list_routinestat_type), intent(inout)
    - + type(routine_stat_type), intent(in),
    - + integer, intent(in)
    - + type(list_routinereport_type), intent(inout)
    - + integer, intent(in)
    - + type(list_callstackentry_type), intent(inout)
    - + type(callstack_entry_type), intent(in)
    - + integer, intent(in)
    - + type(list_timerenv_type), intent(in)
    - + type(list_routinestat_type), intent(in)
    - + type(list_routinereport_type), intent(in)
    - + type(list_callstackentry_type), intent(in)
    - + type(list_timerenv_type), intent(inout)
    - + type(list_routinestat_type), intent(inout)
    - + type(list_routinereport_type), intent(inout)
    - + type(list_callstackentry_type), intent(inout)
    - + type(list_timerenv_type), intent(inout)
    - + type(list_routinestat_type), intent(inout)
    - + type(list_routinereport_type), intent(inout)
    - + type(list_callstackentry_type), intent(inout)
    - + type(list_timerenv_type), intent(inout)
    - + type(timer_env_type), intent(in),
    - + type(list_routinestat_type), intent(inout)
    - + type(routine_stat_type), intent(in),
    - + type(list_routinereport_type), intent(inout)
    - + type(list_callstackentry_type), intent(inout)
    - + type(callstack_entry_type), intent(in)
    - + type(list_timerenv_type), intent(inout)
    - + type(timer_env_type), intent(in),
    - + integer, intent(in)
    - + type(list_routinestat_type), intent(inout)
    - + type(routine_stat_type), intent(in),
    - + integer, intent(in)
    - + type(list_routinereport_type), intent(inout)
    - + integer, intent(in)
    - + type(list_callstackentry_type), intent(inout)
    - + type(callstack_entry_type), intent(in)
    - + integer, intent(in)
    - + type(list_timerenv_type), intent(in)
    - + type(list_routinestat_type), intent(in)
    - + type(list_routinereport_type), intent(in)
    - + type(list_callstackentry_type), intent(in)
    - + integer(kind=int_4),
    - + integer, intent(in)
    - + integer(kind=int_8),
    - + integer, intent(in)
    - + real(kind=real_4),
    - + integer, intent(in)
    - + real(kind=real_8),
    - + integer, intent(in)
    - + complex(kind=real_4),
    - + integer, intent(in)
    - + complex(kind=real_8),
    - + integer, intent(in)
    - + integer(kind=int_4),
    - + integer, intent(in),
    - + integer(kind=int_8),
    - + integer, intent(in),
    - + real(kind=real_4),
    - + integer, intent(in),
    - + real(kind=real_8),
    - + integer, intent(in),
    - + complex(kind=real_4),
    - + integer, intent(in),
    - + complex(kind=real_8),
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer(kind=int_4),
    - + integer(kind=int_8),
    - + real(kind=real_4),
    - + real(kind=real_8),
    - + complex(kind=real_4),
    - + complex(kind=real_8),
    - + integer(kind=int_4),
    - + integer(kind=int_8),
    - + real(kind=real_4),
    - + real(kind=real_8),
    - + complex(kind=real_4),
    - + complex(kind=real_8),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer(kind=int_4), intent(in)
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in)
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in)
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in)
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in)
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in)
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in)
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in)
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in)
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in)
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4),
    - + integer, intent(in)
    - + integer, intent(out),
    - + integer(kind=int_8),
    - + integer, intent(in)
    - + integer, intent(out),
    - + real(kind=real_8),
    - + integer, intent(in)
    - + integer, intent(out),
    - + real(kind=real_4),
    - + integer, intent(in)
    - + integer, intent(out),
    - + complex(kind=real_8),
    - + integer, intent(in)
    - + integer, intent(out),
    - + complex(kind=real_4),
    - + integer, intent(in)
    - + integer, intent(out),
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer(kind=int_4), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer(kind=int_8), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + logical
    - + integer
    - + type(mp_comm_type), intent(in)
    - + logical,
    - + integer
    - + type(mp_comm_type), intent(in)
    - + character(len=*)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + character(len=*)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4),
    - + integer, intent(out),
    - + integer(kind=int_8),
    - + integer, intent(out),
    - + real(kind=real_8),
    - + integer, intent(out),
    - + real(kind=real_4),
    - + integer, intent(out),
    - + complex(kind=real_8),
    - + integer, intent(out),
    - + complex(kind=real_4),
    - + integer, intent(out),
    - + type(mp_comm_type), intent(in)
    - + logical, intent(out)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_4), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_4), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_8), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_8), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_8), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_8), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_4), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_4), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_8), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_8), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_4), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_4), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + character(len=*), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + character(len=*), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + character(len=*), intent(in)
    - + integer(kind=int_4), intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in)
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_4), intent(in)
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_8), intent(in)
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_4), intent(in)
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_8), intent(in)
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_4)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_8)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_8)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_4)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_8)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_4)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + logical,
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + type(mp_type_descriptor_type), intent(inout)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_4), intent(inout)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_8), intent(inout)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_4), intent(inout)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_8), intent(inout)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_4), intent(inout)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_8), intent(inout)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_4), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_8), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer, intent(in),
    - + integer(kind=int_4), intent(inout),
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer, intent(in),
    - + integer(kind=int_8), intent(inout),
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer, intent(in),
    - + real(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer, intent(in),
    - + real(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer, intent(in),
    - + complex(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer, intent(in),
    - + complex(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + logical,
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + type(mp_type_descriptor_type), intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_4)
    - + integer, intent(in)
    - + integer(kind=int_4)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_4),
    - + integer, intent(in)
    - + integer(kind=int_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_8)
    - + integer, intent(in)
    - + integer(kind=int_8)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_8),
    - + integer, intent(in)
    - + integer(kind=int_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_8)
    - + integer, intent(in)
    - + real(kind=real_8)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_8),
    - + integer, intent(in)
    - + real(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_4)
    - + integer, intent(in)
    - + real(kind=real_4)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_4),
    - + integer, intent(in)
    - + real(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_8)
    - + integer, intent(in)
    - + complex(kind=real_8)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_8),
    - + integer, intent(in)
    - + complex(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_4)
    - + integer, intent(in)
    - + complex(kind=real_4)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_4),
    - + integer, intent(in)
    - + complex(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + logical, intent(inout),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout),
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout),
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout),
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout),
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4),
    - + integer, intent(in)
    - + type(mp_win_type), intent(in)
    - + integer(kind=int_4),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_request_type), intent(out)
    - + type(mp_type_descriptor_type), intent(in),
    - + type(mp_type_descriptor_type), intent(in),
    - + integer(kind=int_8),
    - + integer, intent(in)
    - + type(mp_win_type), intent(in)
    - + integer(kind=int_8),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_request_type), intent(out)
    - + type(mp_type_descriptor_type), intent(in),
    - + type(mp_type_descriptor_type), intent(in),
    - + real(kind=real_8),
    - + integer, intent(in)
    - + type(mp_win_type), intent(in)
    - + real(kind=real_8),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_request_type), intent(out)
    - + type(mp_type_descriptor_type), intent(in),
    - + type(mp_type_descriptor_type), intent(in),
    - + real(kind=real_4),
    - + integer, intent(in)
    - + type(mp_win_type), intent(in)
    - + real(kind=real_4),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_request_type), intent(out)
    - + type(mp_type_descriptor_type), intent(in),
    - + type(mp_type_descriptor_type), intent(in),
    - + complex(kind=real_8),
    - + integer, intent(in)
    - + type(mp_win_type), intent(in)
    - + complex(kind=real_8),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_request_type), intent(out)
    - + type(mp_type_descriptor_type), intent(in),
    - + type(mp_type_descriptor_type), intent(in),
    - + complex(kind=real_4),
    - + integer, intent(in)
    - + type(mp_win_type), intent(in)
    - + complex(kind=real_4),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_request_type), intent(out)
    - + type(mp_type_descriptor_type), intent(in),
    - + type(mp_type_descriptor_type), intent(in),
    - + integer(kind=int_4)
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4),
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8)
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8),
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8)
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8),
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4)
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4),
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8)
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8),
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4)
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4),
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer, intent(in)
    - + integer(kind=int_4), intent(out),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer, intent(in)
    - + integer(kind=int_8), intent(out),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + integer, intent(in)
    - + real(kind=real_8), intent(out),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + integer, intent(in)
    - + real(kind=real_4), intent(out),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in)
    - + complex(kind=real_8), intent(out),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in)
    - + complex(kind=real_4), intent(out),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + logical, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + logical, intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_4),
    - + integer(kind=int_8),
    - + real(kind=real_8),
    - + real(kind=real_4),
    - + complex(kind=real_8),
    - + complex(kind=real_4),
    - + integer(kind=int_4),
    - + type(mp_comm_type), intent(in)
    - + type(mp_win_type), intent(out)
    - + integer(kind=int_8),
    - + type(mp_comm_type), intent(in)
    - + type(mp_win_type), intent(out)
    - + real(kind=real_8),
    - + type(mp_comm_type), intent(in)
    - + type(mp_win_type), intent(out)
    - + real(kind=real_4),
    - + type(mp_comm_type), intent(in)
    - + type(mp_win_type), intent(out)
    - + complex(kind=real_8),
    - + type(mp_comm_type), intent(in)
    - + type(mp_win_type), intent(out)
    - + complex(kind=real_4),
    - + type(mp_comm_type), intent(in)
    - + type(mp_win_type), intent(out)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in)
    - + character(len=C_CHAR)
    - + character(len=C_CHAR)
    - + class(dbcsr_tas_rowcol_data), intent(in)
    - + class(dbcsr_tas_distribution), intent(in)
    - + integer(kind=int_4), intent(inout),
    - + integer, intent(in)
    - + integer, intent(out),
    - + integer(kind=int_8), intent(inout),
    - + integer, intent(in)
    - + integer, intent(out),
    - + real(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + integer, intent(out),
    - + real(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + integer, intent(out),
    @@ -171,34 +171,17 @@

    Arguments

    - + - + - - - - - - - - @@ -209,11 +192,11 @@

    Arguments

    -

    private elemental subroutine bswap(a, b) +

    private subroutine swap_i(arr)

    -

    Swaps two logicals

    +

    Arguments

    - - integer, + + integer(kind=int_8), intent(inout)intent(inout), - + DIMENSION(2) ::aarr -

    Integers to swap -Integers to swap

    -
    - - integer, - intent(inout) - - ::b -

    Integers to swap -Integers to swap

    +
    @@ -228,34 +211,17 @@

    Arguments

    - - - - - - - - - + - + diff --git a/develop/interface/swap~2.html b/develop/interface/swap~2.html index 54bc59729f7..e924a867b12 100644 --- a/develop/interface/swap~2.html +++ b/develop/interface/swap~2.html @@ -74,20 +74,20 @@

    swap
  • 4 statements + title="

    0.0% of total for procedures.

    Including implementation: 17 statements, 0.0% of total for procedures.">3 statements
  • - Source File + Source File
  • @@ -131,8 +131,8 @@

    Module Procedures

    @@ -152,11 +152,11 @@

    public interface swap

    Module Procedures

    -

    private subroutine swap_i8(arr) +

    private elemental subroutine iswap(a, b)

    - +

    Swaps two integers

    Arguments

    - - logical, - intent(inout) - - ::a -

    Logicals to swap -Logicals to swap

    -
    - - logical, + + integer, intent(inout)intent(inout), - + DIMENSION(2) ::barr -

    Logicals to swap -Logicals to swap

    +
    @@ -171,17 +171,34 @@

    Arguments

    - + - + + + + + + + + + @@ -192,11 +209,11 @@

    Arguments

    -

    private subroutine swap_i(arr) +

    private elemental subroutine bswap(a, b)

    - +

    Swaps two logicals

    Arguments

    - - integer(kind=int_8), + + integer, intent(inout),intent(inout) - DIMENSION(2) + ::arra - +

    Integers to swap +Integers to swap

    +
    + + integer, + intent(inout) + + ::b +

    Integers to swap +Integers to swap

    @@ -211,17 +228,34 @@

    Arguments

    - + - + + + + + + + + + diff --git a/develop/interface/timeset_interface.html b/develop/interface/timeset_interface.html index fed7ef8ceff..4c75d4175b7 100644 --- a/develop/interface/timeset_interface.html +++ b/develop/interface/timeset_interface.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    diff --git a/develop/interface/timestop_interface.html b/develop/interface/timestop_interface.html index ed4fce328b3..99f7cb8c414 100644 --- a/develop/interface/timestop_interface.html +++ b/develop/interface/timestop_interface.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/lists/procedures.html b/develop/lists/procedures.html index 9341ca611c8..143858a67fc 100644 --- a/develop/lists/procedures.html +++ b/develop/lists/procedures.html @@ -3779,15 +3779,15 @@

    Procedures

    - + - + - + - + @@ -4397,18 +4397,18 @@

    Procedures

    + + + + + + - - - - - - @@ -4870,15 +4870,15 @@

    Procedures

    - + - + - + - + @@ -4894,15 +4894,15 @@

    Procedures

    - + - + - + - + @@ -4918,15 +4918,15 @@

    Procedures

    - + - + - + - + @@ -4981,18 +4981,18 @@

    Procedures

    - - - - - - + + + + + + @@ -5306,51 +5306,51 @@

    Procedures

    - - - - - - - + - + - + - + - + - + + + + + + + @@ -5396,13 +5396,13 @@

    Procedures

    - + - + @@ -5414,51 +5414,51 @@

    Procedures

    - - - - - - - + - + - + - + - + - + + + + + + + @@ -5516,13 +5516,13 @@

    Procedures

    - + - + @@ -5819,17 +5819,17 @@

    Procedures

    - + - + - + - + @@ -6122,15 +6122,15 @@

    Procedures

    - + - + - + - + @@ -6230,13 +6230,13 @@

    Procedures

    - + - + @@ -6254,27 +6254,27 @@

    Procedures

    - + - + - + - + - + - + - + - + @@ -6824,15 +6824,15 @@

    Procedures

    - + - + - + - + @@ -6956,25 +6956,25 @@

    Procedures

    - + - + - + - + @@ -6986,13 +6986,13 @@

    Procedures

    - + - + @@ -7023,25 +7023,25 @@

    Procedures

    - + - + - + - + @@ -7302,63 +7302,63 @@

    Procedures

    - + - + - - - - - - - + - + - + - + - + - + + + + + + + @@ -7371,55 +7371,55 @@

    Procedures

    - - - - - - - + + If the block exists, the current data is overwritten.

    Read more… - + - + + If the block exists, the current data is overwritten.

    Read more… - + - + + If the block exists, the current data is overwritten.

    Read more… - + + + + + + + @@ -7495,15 +7495,15 @@

    Procedures

    - + - + - + - + @@ -7513,100 +7513,100 @@

    Procedures

    + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - @@ -7655,16 +7655,16 @@

    Procedures

    - + - + - + - + @@ -9752,14 +9752,14 @@

    Procedures

    - + - + @@ -9856,15 +9856,15 @@

    Procedures

    - + - + - + - + @@ -15635,13 +15635,13 @@

    Procedures

    - + - + @@ -15764,7 +15764,7 @@

    Procedures

    - + @@ -15776,7 +15776,7 @@

    Procedures

    - + @@ -15861,32 +15861,32 @@

    Procedures

    - - - - - - - + +matrix multiplication. This routine reshapes the two largest of the three tensors. Redistribution +is avoided if tensors already in a consistent layout.

    - + + + + + + + @@ -16245,13 +16245,13 @@

    Procedures

    - + - + diff --git a/develop/lists/types.html b/develop/lists/types.html index c7b6de7ef58..1abbdc9a771 100644 --- a/develop/lists/types.html +++ b/develop/lists/types.html @@ -149,14 +149,14 @@

    Derived Types

    - - + + - - + + @@ -419,18 +419,18 @@

    Derived Types

    - - - - - - + + + + + + @@ -730,18 +730,18 @@

    Derived Types

    - - - - - - + + + + + + @@ -768,14 +768,14 @@

    Derived Types

    - - + + - - + + diff --git a/develop/module/dbcsr_acc_device.html b/develop/module/dbcsr_acc_device.html index 26eb6fd8a55..540a8b01750 100644 --- a/develop/module/dbcsr_acc_device.html +++ b/develop/module/dbcsr_acc_device.html @@ -113,7 +113,7 @@

    Variables

    @@ -199,7 +199,7 @@

    Variables

    diff --git a/develop/module/dbcsr_acc_devmem.html b/develop/module/dbcsr_acc_devmem.html index 9b4f8a94abd..ba173dff5c3 100644 --- a/develop/module/dbcsr_acc_devmem.html +++ b/develop/module/dbcsr_acc_devmem.html @@ -209,11 +209,11 @@

    Uses

    @@ -256,7 +256,7 @@

    Arguments

    @@ -271,7 +271,7 @@

    Arguments

    @@ -325,7 +325,7 @@

    Arguments

    @@ -340,7 +340,7 @@

    Arguments

    @@ -394,7 +394,7 @@

    Arguments

    @@ -409,7 +409,7 @@

    Arguments

    @@ -463,7 +463,7 @@

    Arguments

    @@ -478,7 +478,7 @@

    Arguments

    @@ -532,7 +532,7 @@

    Arguments

    @@ -547,7 +547,7 @@

    Arguments

    @@ -601,7 +601,7 @@

    Arguments

    @@ -616,7 +616,7 @@

    Arguments

    @@ -680,7 +680,7 @@

    Arguments

    @@ -695,7 +695,7 @@

    Arguments

    @@ -749,7 +749,7 @@

    Arguments

    @@ -764,7 +764,7 @@

    Arguments

    @@ -818,7 +818,7 @@

    Arguments

    @@ -833,7 +833,7 @@

    Arguments

    @@ -887,7 +887,7 @@

    Arguments

    @@ -902,7 +902,7 @@

    Arguments

    @@ -956,7 +956,7 @@

    Arguments

    @@ -971,7 +971,7 @@

    Arguments

    @@ -1025,7 +1025,7 @@

    Arguments

    @@ -1040,7 +1040,7 @@

    Arguments

    @@ -1094,7 +1094,7 @@

    Arguments

    @@ -1109,7 +1109,7 @@

    Arguments

    @@ -1163,7 +1163,7 @@

    Arguments

    @@ -1178,7 +1178,7 @@

    Arguments

    @@ -1232,7 +1232,7 @@

    Arguments

    @@ -1247,7 +1247,7 @@

    Arguments

    @@ -1301,7 +1301,7 @@

    Arguments

    @@ -1316,7 +1316,7 @@

    Arguments

    @@ -1370,7 +1370,7 @@

    Arguments

    @@ -1385,7 +1385,7 @@

    Arguments

    @@ -1439,7 +1439,7 @@

    Arguments

    @@ -1454,7 +1454,7 @@

    Arguments

    @@ -1570,7 +1570,7 @@

    Arguments

    @@ -1615,7 +1615,7 @@

    Arguments

    @@ -1660,7 +1660,7 @@

    Arguments

    @@ -1710,7 +1710,7 @@

    Arguments

    @@ -1755,7 +1755,7 @@

    Arguments

    @@ -1771,7 +1771,7 @@

    Arguments

    @@ -1812,7 +1812,7 @@

    Arguments

    @@ -1912,7 +1912,7 @@

    Arguments

    @@ -1952,7 +1952,7 @@

    Arguments

    @@ -2007,7 +2007,7 @@

    Arguments

    @@ -2047,7 +2047,7 @@

    Arguments

    @@ -2134,7 +2134,7 @@

    Arguments

    @@ -2149,7 +2149,7 @@

    Arguments

    @@ -2204,7 +2204,7 @@

    Arguments

    @@ -2219,7 +2219,7 @@

    Arguments

    @@ -2274,7 +2274,7 @@

    Arguments

    @@ -2289,7 +2289,7 @@

    Arguments

    @@ -2344,7 +2344,7 @@

    Arguments

    @@ -2359,7 +2359,7 @@

    Arguments

    @@ -2414,7 +2414,7 @@

    Arguments

    @@ -2429,7 +2429,7 @@

    Arguments

    @@ -2484,7 +2484,7 @@

    Arguments

    @@ -2499,7 +2499,7 @@

    Arguments

    @@ -2554,7 +2554,7 @@

    Arguments

    @@ -2569,7 +2569,7 @@

    Arguments

    @@ -2624,7 +2624,7 @@

    Arguments

    @@ -2639,7 +2639,7 @@

    Arguments

    @@ -2694,7 +2694,7 @@

    Arguments

    @@ -2709,7 +2709,7 @@

    Arguments

    @@ -2764,7 +2764,7 @@

    Arguments

    @@ -2779,7 +2779,7 @@

    Arguments

    @@ -2834,7 +2834,7 @@

    Arguments

    @@ -2849,7 +2849,7 @@

    Arguments

    @@ -2904,7 +2904,7 @@

    Arguments

    @@ -2919,7 +2919,7 @@

    Arguments

    @@ -2974,7 +2974,7 @@

    Arguments

    @@ -2989,7 +2989,7 @@

    Arguments

    @@ -3044,7 +3044,7 @@

    Arguments

    @@ -3059,7 +3059,7 @@

    Arguments

    @@ -3114,7 +3114,7 @@

    Arguments

    @@ -3129,7 +3129,7 @@

    Arguments

    @@ -3184,7 +3184,7 @@

    Arguments

    @@ -3199,7 +3199,7 @@

    Arguments

    @@ -3254,7 +3254,7 @@

    Arguments

    @@ -3269,7 +3269,7 @@

    Arguments

    @@ -3324,7 +3324,7 @@

    Arguments

    @@ -3339,7 +3339,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_acc_event.html b/develop/module/dbcsr_acc_event.html index 0c2a9669e46..446b7951a41 100644 --- a/develop/module/dbcsr_acc_event.html +++ b/develop/module/dbcsr_acc_event.html @@ -113,7 +113,7 @@

    Variables

    @@ -187,8 +187,8 @@

    Uses

    @@ -266,7 +266,7 @@

    Components

    @@ -315,7 +315,7 @@

    Arguments

    @@ -366,7 +366,7 @@

    Arguments

    @@ -421,7 +421,7 @@

    Arguments

    @@ -436,7 +436,7 @@

    Arguments

    @@ -476,7 +476,7 @@

    Arguments

    @@ -516,7 +516,7 @@

    Arguments

    @@ -556,7 +556,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_acc_hostmem.html b/develop/module/dbcsr_acc_hostmem.html index b437364d921..b85d7240eef 100644 --- a/develop/module/dbcsr_acc_hostmem.html +++ b/develop/module/dbcsr_acc_hostmem.html @@ -113,7 +113,7 @@

    Variables

    @@ -197,11 +197,11 @@

    Uses

    @@ -226,7 +226,7 @@

    Variables

    @@ -310,7 +310,7 @@

    Arguments

    @@ -325,7 +325,7 @@

    Arguments

    @@ -379,7 +379,7 @@

    Arguments

    @@ -394,7 +394,7 @@

    Arguments

    @@ -448,7 +448,7 @@

    Arguments

    @@ -463,7 +463,7 @@

    Arguments

    @@ -517,7 +517,7 @@

    Arguments

    @@ -532,7 +532,7 @@

    Arguments

    @@ -586,7 +586,7 @@

    Arguments

    @@ -601,7 +601,7 @@

    Arguments

    @@ -655,7 +655,7 @@

    Arguments

    @@ -670,7 +670,7 @@

    Arguments

    @@ -756,7 +756,7 @@

    Arguments

    @@ -842,7 +842,7 @@

    Arguments

    @@ -928,7 +928,7 @@

    Arguments

    @@ -1014,7 +1014,7 @@

    Arguments

    @@ -1100,7 +1100,7 @@

    Arguments

    @@ -1186,7 +1186,7 @@

    Arguments

    @@ -1250,7 +1250,7 @@

    Arguments

    @@ -1304,7 +1304,7 @@

    Arguments

    @@ -1358,7 +1358,7 @@

    Arguments

    @@ -1412,7 +1412,7 @@

    Arguments

    @@ -1466,7 +1466,7 @@

    Arguments

    @@ -1520,7 +1520,7 @@

    Arguments

    @@ -1574,7 +1574,7 @@

    Arguments

    @@ -1628,7 +1628,7 @@

    Arguments

    @@ -1682,7 +1682,7 @@

    Arguments

    @@ -1736,7 +1736,7 @@

    Arguments

    @@ -1790,7 +1790,7 @@

    Arguments

    @@ -1844,7 +1844,7 @@

    Arguments

    @@ -1908,7 +1908,7 @@

    Arguments

    @@ -1923,7 +1923,7 @@

    Arguments

    @@ -2010,7 +2010,7 @@

    Arguments

    @@ -2065,7 +2065,7 @@

    Arguments

    @@ -2120,7 +2120,7 @@

    Arguments

    @@ -2175,7 +2175,7 @@

    Arguments

    @@ -2190,7 +2190,7 @@

    Arguments

    @@ -2277,7 +2277,7 @@

    Arguments

    @@ -2332,7 +2332,7 @@

    Arguments

    @@ -2387,7 +2387,7 @@

    Arguments

    @@ -2442,7 +2442,7 @@

    Arguments

    @@ -2457,7 +2457,7 @@

    Arguments

    @@ -2544,7 +2544,7 @@

    Arguments

    @@ -2599,7 +2599,7 @@

    Arguments

    @@ -2654,7 +2654,7 @@

    Arguments

    @@ -2709,7 +2709,7 @@

    Arguments

    @@ -2724,7 +2724,7 @@

    Arguments

    @@ -2811,7 +2811,7 @@

    Arguments

    @@ -2866,7 +2866,7 @@

    Arguments

    @@ -2921,7 +2921,7 @@

    Arguments

    @@ -2976,7 +2976,7 @@

    Arguments

    @@ -2991,7 +2991,7 @@

    Arguments

    @@ -3078,7 +3078,7 @@

    Arguments

    @@ -3133,7 +3133,7 @@

    Arguments

    @@ -3188,7 +3188,7 @@

    Arguments

    @@ -3243,7 +3243,7 @@

    Arguments

    @@ -3258,7 +3258,7 @@

    Arguments

    @@ -3345,7 +3345,7 @@

    Arguments

    @@ -3400,7 +3400,7 @@

    Arguments

    @@ -3455,7 +3455,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_acc_init.html b/develop/module/dbcsr_acc_init.html index 19d2b5ab355..8d1b6bad0d3 100644 --- a/develop/module/dbcsr_acc_init.html +++ b/develop/module/dbcsr_acc_init.html @@ -113,7 +113,7 @@

    Variables

    @@ -189,7 +189,7 @@

    Variables

    diff --git a/develop/module/dbcsr_acc_operations.html b/develop/module/dbcsr_acc_operations.html index e129c7a8d6f..2d57d83715e 100644 --- a/develop/module/dbcsr_acc_operations.html +++ b/develop/module/dbcsr_acc_operations.html @@ -113,7 +113,7 @@

    Variables

    @@ -162,14 +162,14 @@

    Uses

    @@ -194,7 +194,7 @@

    Variables

    @@ -272,7 +272,7 @@

    Arguments

    @@ -287,7 +287,7 @@

    Arguments

    @@ -302,7 +302,7 @@

    Arguments

    @@ -317,7 +317,7 @@

    Arguments

    @@ -332,7 +332,7 @@

    Arguments

    @@ -437,7 +437,7 @@

    Arguments

    @@ -452,7 +452,7 @@

    Arguments

    @@ -492,7 +492,7 @@

    Arguments

    @@ -507,7 +507,7 @@

    Arguments

    @@ -522,7 +522,7 @@

    Arguments

    @@ -537,7 +537,7 @@

    Arguments

    @@ -552,7 +552,7 @@

    Arguments

    @@ -567,7 +567,7 @@

    Arguments

    @@ -582,7 +582,7 @@

    Arguments

    @@ -597,7 +597,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_acc_stream.html b/develop/module/dbcsr_acc_stream.html index b7879c63033..c305d3fdbdc 100644 --- a/develop/module/dbcsr_acc_stream.html +++ b/develop/module/dbcsr_acc_stream.html @@ -113,7 +113,7 @@

    Variables

    @@ -215,7 +215,7 @@

    Variables

    @@ -266,7 +266,7 @@

    Components

    @@ -315,7 +315,7 @@

    Arguments

    @@ -360,7 +360,7 @@

    Arguments

    @@ -420,7 +420,7 @@

    Arguments

    @@ -470,7 +470,7 @@

    Arguments

    @@ -485,7 +485,7 @@

    Arguments

    @@ -540,7 +540,7 @@

    Arguments

    @@ -580,7 +580,7 @@

    Arguments

    @@ -620,7 +620,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_acc_timings.html b/develop/module/dbcsr_acc_timings.html index 2f94c54ba37..5cf8481598b 100644 --- a/develop/module/dbcsr_acc_timings.html +++ b/develop/module/dbcsr_acc_timings.html @@ -113,7 +113,7 @@

    Variables

    @@ -162,8 +162,8 @@

    Uses

    @@ -188,7 +188,7 @@

    Variables

    @@ -236,7 +236,7 @@

    Arguments

    @@ -266,7 +266,7 @@

    Arguments

    @@ -306,7 +306,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_allocate_wrap.html b/develop/module/dbcsr_allocate_wrap.html index 1f955d43d60..d7a080b367e 100644 --- a/develop/module/dbcsr_allocate_wrap.html +++ b/develop/module/dbcsr_allocate_wrap.html @@ -257,7 +257,7 @@

    Arguments

    @@ -287,7 +287,7 @@

    Arguments

    @@ -302,7 +302,7 @@

    Arguments

    @@ -346,7 +346,7 @@

    Arguments

    @@ -376,7 +376,7 @@

    Arguments

    @@ -391,7 +391,7 @@

    Arguments

    @@ -435,7 +435,7 @@

    Arguments

    @@ -465,7 +465,7 @@

    Arguments

    @@ -480,7 +480,7 @@

    Arguments

    @@ -524,7 +524,7 @@

    Arguments

    @@ -554,7 +554,7 @@

    Arguments

    @@ -569,7 +569,7 @@

    Arguments

    @@ -613,7 +613,7 @@

    Arguments

    @@ -643,7 +643,7 @@

    Arguments

    @@ -658,7 +658,7 @@

    Arguments

    @@ -702,7 +702,7 @@

    Arguments

    @@ -732,7 +732,7 @@

    Arguments

    @@ -747,7 +747,7 @@

    Arguments

    @@ -791,7 +791,7 @@

    Arguments

    @@ -821,7 +821,7 @@

    Arguments

    @@ -836,7 +836,7 @@

    Arguments

    @@ -880,7 +880,7 @@

    Arguments

    @@ -910,7 +910,7 @@

    Arguments

    @@ -925,7 +925,7 @@

    Arguments

    @@ -969,7 +969,7 @@

    Arguments

    @@ -999,7 +999,7 @@

    Arguments

    @@ -1014,7 +1014,7 @@

    Arguments

    @@ -1058,7 +1058,7 @@

    Arguments

    @@ -1088,7 +1088,7 @@

    Arguments

    @@ -1103,7 +1103,7 @@

    Arguments

    @@ -1147,7 +1147,7 @@

    Arguments

    @@ -1177,7 +1177,7 @@

    Arguments

    @@ -1192,7 +1192,7 @@

    Arguments

    @@ -1236,7 +1236,7 @@

    Arguments

    @@ -1266,7 +1266,7 @@

    Arguments

    @@ -1281,7 +1281,7 @@

    Arguments

    @@ -1325,7 +1325,7 @@

    Arguments

    @@ -1355,7 +1355,7 @@

    Arguments

    @@ -1370,7 +1370,7 @@

    Arguments

    @@ -1414,7 +1414,7 @@

    Arguments

    @@ -1444,7 +1444,7 @@

    Arguments

    @@ -1459,7 +1459,7 @@

    Arguments

    @@ -1503,7 +1503,7 @@

    Arguments

    @@ -1533,7 +1533,7 @@

    Arguments

    @@ -1548,7 +1548,7 @@

    Arguments

    @@ -1592,7 +1592,7 @@

    Arguments

    @@ -1622,7 +1622,7 @@

    Arguments

    @@ -1637,7 +1637,7 @@

    Arguments

    @@ -1681,7 +1681,7 @@

    Arguments

    @@ -1711,7 +1711,7 @@

    Arguments

    @@ -1726,7 +1726,7 @@

    Arguments

    @@ -1770,7 +1770,7 @@

    Arguments

    @@ -1800,7 +1800,7 @@

    Arguments

    @@ -1815,7 +1815,7 @@

    Arguments

    @@ -1859,7 +1859,7 @@

    Arguments

    @@ -1889,7 +1889,7 @@

    Arguments

    @@ -1904,7 +1904,7 @@

    Arguments

    @@ -1948,7 +1948,7 @@

    Arguments

    @@ -1978,7 +1978,7 @@

    Arguments

    @@ -1993,7 +1993,7 @@

    Arguments

    @@ -2037,7 +2037,7 @@

    Arguments

    @@ -2067,7 +2067,7 @@

    Arguments

    @@ -2082,7 +2082,7 @@

    Arguments

    @@ -2126,7 +2126,7 @@

    Arguments

    @@ -2156,7 +2156,7 @@

    Arguments

    @@ -2171,7 +2171,7 @@

    Arguments

    @@ -2215,7 +2215,7 @@

    Arguments

    @@ -2245,7 +2245,7 @@

    Arguments

    @@ -2260,7 +2260,7 @@

    Arguments

    @@ -2304,7 +2304,7 @@

    Arguments

    @@ -2334,7 +2334,7 @@

    Arguments

    @@ -2349,7 +2349,7 @@

    Arguments

    @@ -2393,7 +2393,7 @@

    Arguments

    @@ -2423,7 +2423,7 @@

    Arguments

    @@ -2438,7 +2438,7 @@

    Arguments

    @@ -2482,7 +2482,7 @@

    Arguments

    @@ -2512,7 +2512,7 @@

    Arguments

    @@ -2527,7 +2527,7 @@

    Arguments

    @@ -2571,7 +2571,7 @@

    Arguments

    @@ -2601,7 +2601,7 @@

    Arguments

    @@ -2616,7 +2616,7 @@

    Arguments

    @@ -2660,7 +2660,7 @@

    Arguments

    @@ -2690,7 +2690,7 @@

    Arguments

    @@ -2705,7 +2705,7 @@

    Arguments

    @@ -2749,7 +2749,7 @@

    Arguments

    @@ -2779,7 +2779,7 @@

    Arguments

    @@ -2794,7 +2794,7 @@

    Arguments

    @@ -2838,7 +2838,7 @@

    Arguments

    @@ -2868,7 +2868,7 @@

    Arguments

    @@ -2883,7 +2883,7 @@

    Arguments

    @@ -2927,7 +2927,7 @@

    Arguments

    @@ -2957,7 +2957,7 @@

    Arguments

    @@ -2972,7 +2972,7 @@

    Arguments

    @@ -3016,7 +3016,7 @@

    Arguments

    @@ -3046,7 +3046,7 @@

    Arguments

    @@ -3061,7 +3061,7 @@

    Arguments

    @@ -3105,7 +3105,7 @@

    Arguments

    @@ -3135,7 +3135,7 @@

    Arguments

    @@ -3150,7 +3150,7 @@

    Arguments

    @@ -3194,7 +3194,7 @@

    Arguments

    @@ -3224,7 +3224,7 @@

    Arguments

    @@ -3239,7 +3239,7 @@

    Arguments

    @@ -3283,7 +3283,7 @@

    Arguments

    @@ -3313,7 +3313,7 @@

    Arguments

    @@ -3328,7 +3328,7 @@

    Arguments

    @@ -3377,7 +3377,7 @@

    Arguments

    @@ -3407,7 +3407,7 @@

    Arguments

    @@ -3422,7 +3422,7 @@

    Arguments

    @@ -3462,7 +3462,7 @@

    Arguments

    @@ -3492,7 +3492,7 @@

    Arguments

    @@ -3507,7 +3507,7 @@

    Arguments

    @@ -3547,7 +3547,7 @@

    Arguments

    @@ -3577,7 +3577,7 @@

    Arguments

    @@ -3592,7 +3592,7 @@

    Arguments

    @@ -3632,7 +3632,7 @@

    Arguments

    @@ -3662,7 +3662,7 @@

    Arguments

    @@ -3677,7 +3677,7 @@

    Arguments

    @@ -3717,7 +3717,7 @@

    Arguments

    @@ -3747,7 +3747,7 @@

    Arguments

    @@ -3762,7 +3762,7 @@

    Arguments

    @@ -3802,7 +3802,7 @@

    Arguments

    @@ -3832,7 +3832,7 @@

    Arguments

    @@ -3847,7 +3847,7 @@

    Arguments

    @@ -3887,7 +3887,7 @@

    Arguments

    @@ -3917,7 +3917,7 @@

    Arguments

    @@ -3932,7 +3932,7 @@

    Arguments

    @@ -3972,7 +3972,7 @@

    Arguments

    @@ -4002,7 +4002,7 @@

    Arguments

    @@ -4017,7 +4017,7 @@

    Arguments

    @@ -4057,7 +4057,7 @@

    Arguments

    @@ -4087,7 +4087,7 @@

    Arguments

    @@ -4102,7 +4102,7 @@

    Arguments

    @@ -4142,7 +4142,7 @@

    Arguments

    @@ -4172,7 +4172,7 @@

    Arguments

    @@ -4187,7 +4187,7 @@

    Arguments

    @@ -4227,7 +4227,7 @@

    Arguments

    @@ -4257,7 +4257,7 @@

    Arguments

    @@ -4272,7 +4272,7 @@

    Arguments

    @@ -4312,7 +4312,7 @@

    Arguments

    @@ -4342,7 +4342,7 @@

    Arguments

    @@ -4357,7 +4357,7 @@

    Arguments

    @@ -4397,7 +4397,7 @@

    Arguments

    @@ -4427,7 +4427,7 @@

    Arguments

    @@ -4442,7 +4442,7 @@

    Arguments

    @@ -4482,7 +4482,7 @@

    Arguments

    @@ -4512,7 +4512,7 @@

    Arguments

    @@ -4527,7 +4527,7 @@

    Arguments

    @@ -4567,7 +4567,7 @@

    Arguments

    @@ -4597,7 +4597,7 @@

    Arguments

    @@ -4612,7 +4612,7 @@

    Arguments

    @@ -4652,7 +4652,7 @@

    Arguments

    @@ -4682,7 +4682,7 @@

    Arguments

    @@ -4697,7 +4697,7 @@

    Arguments

    @@ -4737,7 +4737,7 @@

    Arguments

    @@ -4767,7 +4767,7 @@

    Arguments

    @@ -4782,7 +4782,7 @@

    Arguments

    @@ -4822,7 +4822,7 @@

    Arguments

    @@ -4852,7 +4852,7 @@

    Arguments

    @@ -4867,7 +4867,7 @@

    Arguments

    @@ -4907,7 +4907,7 @@

    Arguments

    @@ -4937,7 +4937,7 @@

    Arguments

    @@ -4952,7 +4952,7 @@

    Arguments

    @@ -4992,7 +4992,7 @@

    Arguments

    @@ -5022,7 +5022,7 @@

    Arguments

    @@ -5037,7 +5037,7 @@

    Arguments

    @@ -5077,7 +5077,7 @@

    Arguments

    @@ -5107,7 +5107,7 @@

    Arguments

    @@ -5122,7 +5122,7 @@

    Arguments

    @@ -5162,7 +5162,7 @@

    Arguments

    @@ -5192,7 +5192,7 @@

    Arguments

    @@ -5207,7 +5207,7 @@

    Arguments

    @@ -5247,7 +5247,7 @@

    Arguments

    @@ -5277,7 +5277,7 @@

    Arguments

    @@ -5292,7 +5292,7 @@

    Arguments

    @@ -5332,7 +5332,7 @@

    Arguments

    @@ -5362,7 +5362,7 @@

    Arguments

    @@ -5377,7 +5377,7 @@

    Arguments

    @@ -5417,7 +5417,7 @@

    Arguments

    @@ -5447,7 +5447,7 @@

    Arguments

    @@ -5462,7 +5462,7 @@

    Arguments

    @@ -5502,7 +5502,7 @@

    Arguments

    @@ -5532,7 +5532,7 @@

    Arguments

    @@ -5547,7 +5547,7 @@

    Arguments

    @@ -5587,7 +5587,7 @@

    Arguments

    @@ -5617,7 +5617,7 @@

    Arguments

    @@ -5632,7 +5632,7 @@

    Arguments

    @@ -5672,7 +5672,7 @@

    Arguments

    @@ -5702,7 +5702,7 @@

    Arguments

    @@ -5717,7 +5717,7 @@

    Arguments

    @@ -5757,7 +5757,7 @@

    Arguments

    @@ -5787,7 +5787,7 @@

    Arguments

    @@ -5802,7 +5802,7 @@

    Arguments

    @@ -5842,7 +5842,7 @@

    Arguments

    @@ -5872,7 +5872,7 @@

    Arguments

    @@ -5887,7 +5887,7 @@

    Arguments

    @@ -5927,7 +5927,7 @@

    Arguments

    @@ -5957,7 +5957,7 @@

    Arguments

    @@ -5972,7 +5972,7 @@

    Arguments

    @@ -6012,7 +6012,7 @@

    Arguments

    @@ -6042,7 +6042,7 @@

    Arguments

    @@ -6057,7 +6057,7 @@

    Arguments

    @@ -6097,7 +6097,7 @@

    Arguments

    @@ -6127,7 +6127,7 @@

    Arguments

    @@ -6142,7 +6142,7 @@

    Arguments

    @@ -6182,7 +6182,7 @@

    Arguments

    @@ -6212,7 +6212,7 @@

    Arguments

    @@ -6227,7 +6227,7 @@

    Arguments

    @@ -6267,7 +6267,7 @@

    Arguments

    @@ -6297,7 +6297,7 @@

    Arguments

    @@ -6312,7 +6312,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_api.html b/develop/module/dbcsr_api.html index af2f29b8b85..01223b25fc7 100644 --- a/develop/module/dbcsr_api.html +++ b/develop/module/dbcsr_api.html @@ -113,7 +113,7 @@

    Variables

    @@ -141,14 +141,14 @@

    Interfaces

    dbcsr_set_diagdbcsr_scaledbcsr_scale_by_vector - dbcsr_multiply - dbcsr_get_block_p - dbcsr_put_block - dbcsr_iterator_next_block - dbcsr_reserve_block2d + dbcsr_multiply + dbcsr_get_block_p + dbcsr_put_block + dbcsr_iterator_next_block + dbcsr_reserve_block2ddbcsr_csr_createdbcsr_get_wms_data_p - dbcsr_get_data_p + dbcsr_get_data_pdbcsr_norm @@ -192,7 +192,7 @@

    Functions

    dbcsr_nblkcols_localdbcsr_nfullrows_totaldbcsr_nfullcols_total - dbcsr_iterator_blocks_left + dbcsr_iterator_blocks_leftdbcsr_checksumdbcsr_has_symmetrydbcsr_get_wms_data_d @@ -214,27 +214,27 @@

    Subroutines

    - dbcsr_mp_grid_setup + dbcsr_mp_grid_setup dbcsr_setname - dbcsr_complete_redistribute - dbcsr_reserve_blocks - dbcsr_reserve_all_blocks - dbcsr_reserve_diag_blocks + dbcsr_complete_redistribute + dbcsr_reserve_blocks + dbcsr_reserve_all_blocks + dbcsr_reserve_diag_blocks dbcsr_add_work_coordinate dbcsr_set_work_size dbcsr_init_random - dbcsr_get_stored_coordinates - dbcsr_iterator_stop - dbcsr_iterator_start + dbcsr_get_stored_coordinates + dbcsr_iterator_stop + dbcsr_iterator_start dbcsr_iterator_next_block_index dbcsr_get_info - dbcsr_distribution_get - dbcsr_distribution_hold + dbcsr_distribution_get + dbcsr_distribution_hold dbcsr_distribution_release dbcsr_norm_scalar dbcsr_norm_r8_vec - dbcsr_replicate_all - dbcsr_distribute + dbcsr_replicate_all + dbcsr_distribute dbcsr_release_p dbcsr_release dbcsr_init_p @@ -256,32 +256,32 @@

    Subroutines

    dbcsr_copy dbcsr_copy_into_existing dbcsr_desymmetrize - dbcsr_transposed + dbcsr_transposed dbcsr_function_of_elements dbcsr_hadamard_product dbcsr_deallocate_matrix - csr_create_new + csr_create_new dbcsr_csr_create_from_dbcsr dbcsr_convert_csr_to_dbcsr dbcsr_convert_dbcsr_to_csr - dbcsr_to_csr_filter + dbcsr_to_csr_filter dbcsr_clear dbcsr_add_block_node - dbcsr_run_tests - dbcsr_reserve_block2d_d + dbcsr_run_tests + dbcsr_reserve_block2d_d dbcsr_iterator_next_2d_block_d dbcsr_iterator_next_2d_block_notrans_d dbcsr_iterator_next_1d_block_d dbcsr_iterator_next_1d_block_notrans_d - dbcsr_put_block2d_d - dbcsr_put_block_d - dbcsr_get_2d_block_p_d + dbcsr_put_block2d_d + dbcsr_put_block_d + dbcsr_get_2d_block_p_d dbcsr_get_2d_block_notrans_p_d - dbcsr_get_block_p_d + dbcsr_get_block_p_d dbcsr_get_block_notrans_p_d dbcsr_trace_d dbcsr_dot_d - dbcsr_multiply_d + dbcsr_multiply_d dbcsr_scale_by_vector_d dbcsr_scale_d dbcsr_set_d @@ -289,20 +289,20 @@

    Subroutines

    dbcsr_add_on_diag_d dbcsr_set_diag_d dbcsr_get_diag_d - dbcsr_reserve_block2d_s + dbcsr_reserve_block2d_s dbcsr_iterator_next_2d_block_s dbcsr_iterator_next_2d_block_notrans_s dbcsr_iterator_next_1d_block_s dbcsr_iterator_next_1d_block_notrans_s - dbcsr_put_block2d_s - dbcsr_put_block_s - dbcsr_get_2d_block_p_s + dbcsr_put_block2d_s + dbcsr_put_block_s + dbcsr_get_2d_block_p_s dbcsr_get_2d_block_notrans_p_s - dbcsr_get_block_p_s + dbcsr_get_block_p_s dbcsr_get_block_notrans_p_s dbcsr_trace_s dbcsr_dot_s - dbcsr_multiply_s + dbcsr_multiply_s dbcsr_scale_by_vector_s dbcsr_scale_s dbcsr_set_s @@ -310,20 +310,20 @@

    Subroutines

    dbcsr_add_on_diag_s dbcsr_set_diag_s dbcsr_get_diag_s - dbcsr_reserve_block2d_z + dbcsr_reserve_block2d_z dbcsr_iterator_next_2d_block_z dbcsr_iterator_next_2d_block_notrans_z dbcsr_iterator_next_1d_block_z dbcsr_iterator_next_1d_block_notrans_z - dbcsr_put_block2d_z - dbcsr_put_block_z - dbcsr_get_2d_block_p_z + dbcsr_put_block2d_z + dbcsr_put_block_z + dbcsr_get_2d_block_p_z dbcsr_get_2d_block_notrans_p_z - dbcsr_get_block_p_z + dbcsr_get_block_p_z dbcsr_get_block_notrans_p_z dbcsr_trace_z dbcsr_dot_z - dbcsr_multiply_z + dbcsr_multiply_z dbcsr_scale_by_vector_z dbcsr_scale_z dbcsr_set_z @@ -331,20 +331,20 @@

    Subroutines

    dbcsr_add_on_diag_z dbcsr_set_diag_z dbcsr_get_diag_z - dbcsr_reserve_block2d_c + dbcsr_reserve_block2d_c dbcsr_iterator_next_2d_block_c dbcsr_iterator_next_2d_block_notrans_c dbcsr_iterator_next_1d_block_c dbcsr_iterator_next_1d_block_notrans_c - dbcsr_put_block2d_c - dbcsr_put_block_c - dbcsr_get_2d_block_p_c + dbcsr_put_block2d_c + dbcsr_put_block_c + dbcsr_get_2d_block_p_c dbcsr_get_2d_block_notrans_p_c - dbcsr_get_block_p_c + dbcsr_get_block_p_c dbcsr_get_block_notrans_p_c dbcsr_trace_c dbcsr_dot_c - dbcsr_multiply_c + dbcsr_multiply_c dbcsr_scale_by_vector_c dbcsr_scale_c dbcsr_set_c @@ -382,30 +382,30 @@

    Uses

    @@ -430,7 +430,7 @@

    Variables

    @@ -482,7 +482,7 @@

    Arguments

    @@ -497,7 +497,7 @@

    Arguments

    @@ -512,7 +512,7 @@

    Arguments

    @@ -527,7 +527,7 @@

    Arguments

    @@ -542,7 +542,7 @@

    Arguments

    @@ -557,7 +557,7 @@

    Arguments

    @@ -572,7 +572,7 @@

    Arguments

    @@ -587,7 +587,7 @@

    Arguments

    @@ -617,7 +617,7 @@

    Arguments

    @@ -647,7 +647,7 @@

    Arguments

    @@ -686,7 +686,7 @@

    Arguments

    @@ -701,7 +701,7 @@

    Arguments

    @@ -716,7 +716,7 @@

    Arguments

    @@ -731,7 +731,7 @@

    Arguments

    @@ -746,7 +746,7 @@

    Arguments

    @@ -761,7 +761,7 @@

    Arguments

    @@ -776,7 +776,7 @@

    Arguments

    @@ -791,7 +791,7 @@

    Arguments

    @@ -806,7 +806,7 @@

    Arguments

    @@ -821,7 +821,7 @@

    Arguments

    @@ -851,7 +851,7 @@

    Arguments

    @@ -900,7 +900,7 @@

    Arguments

    @@ -954,7 +954,7 @@

    Arguments

    @@ -1008,7 +1008,7 @@

    Arguments

    @@ -1062,7 +1062,7 @@

    Arguments

    @@ -1126,7 +1126,7 @@

    Arguments

    @@ -1141,7 +1141,7 @@

    Arguments

    @@ -1195,7 +1195,7 @@

    Arguments

    @@ -1210,7 +1210,7 @@

    Arguments

    @@ -1264,7 +1264,7 @@

    Arguments

    @@ -1279,7 +1279,7 @@

    Arguments

    @@ -1333,7 +1333,7 @@

    Arguments

    @@ -1348,7 +1348,7 @@

    Arguments

    @@ -1412,7 +1412,7 @@

    Arguments

    @@ -1427,7 +1427,7 @@

    Arguments

    @@ -1466,7 +1466,7 @@

    Arguments

    @@ -1481,7 +1481,7 @@

    Arguments

    @@ -1520,7 +1520,7 @@

    Arguments

    @@ -1535,7 +1535,7 @@

    Arguments

    @@ -1574,7 +1574,7 @@

    Arguments

    @@ -1589,7 +1589,7 @@

    Arguments

    @@ -1638,7 +1638,7 @@

    Arguments

    @@ -1653,7 +1653,7 @@

    Arguments

    @@ -1722,7 +1722,7 @@

    Arguments

    @@ -1737,7 +1737,7 @@

    Arguments

    @@ -1806,7 +1806,7 @@

    Arguments

    @@ -1821,7 +1821,7 @@

    Arguments

    @@ -1890,7 +1890,7 @@

    Arguments

    @@ -1905,7 +1905,7 @@

    Arguments

    @@ -1984,7 +1984,7 @@

    Arguments

    @@ -2038,7 +2038,7 @@

    Arguments

    @@ -2092,7 +2092,7 @@

    Arguments

    @@ -2146,7 +2146,7 @@

    Arguments

    @@ -2210,7 +2210,7 @@

    Arguments

    @@ -2264,7 +2264,7 @@

    Arguments

    @@ -2318,7 +2318,7 @@

    Arguments

    @@ -2372,7 +2372,7 @@

    Arguments

    @@ -2436,7 +2436,7 @@

    Arguments

    @@ -2490,7 +2490,7 @@

    Arguments

    @@ -2544,7 +2544,7 @@

    Arguments

    @@ -2598,7 +2598,7 @@

    Arguments

    @@ -2662,7 +2662,7 @@

    Arguments

    @@ -2692,7 +2692,7 @@

    Arguments

    @@ -2731,7 +2731,7 @@

    Arguments

    @@ -2761,7 +2761,7 @@

    Arguments

    @@ -2800,7 +2800,7 @@

    Arguments

    @@ -2830,7 +2830,7 @@

    Arguments

    @@ -2869,7 +2869,7 @@

    Arguments

    @@ -2899,7 +2899,7 @@

    Arguments

    @@ -2948,7 +2948,7 @@

    Arguments

    @@ -2963,7 +2963,7 @@

    Arguments

    @@ -3017,7 +3017,7 @@

    Arguments

    @@ -3032,7 +3032,7 @@

    Arguments

    @@ -3086,7 +3086,7 @@

    Arguments

    @@ -3101,7 +3101,7 @@

    Arguments

    @@ -3155,7 +3155,7 @@

    Arguments

    @@ -3170,7 +3170,7 @@

    Arguments

    @@ -3208,14 +3208,14 @@

    Arguments

    - -

    public interface dbcsr_multiply + +

    public interface dbcsr_multiply

    • - private subroutine dbcsr_multiply_d(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop) + private subroutine dbcsr_multiply_d(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop)

      @@ -3234,7 +3234,7 @@

      Arguments

    @@ -3249,7 +3249,7 @@

    Arguments

    @@ -3264,7 +3264,7 @@

    Arguments

    @@ -3279,7 +3279,7 @@

    Arguments

    @@ -3294,7 +3294,7 @@

    Arguments

    @@ -3309,7 +3309,7 @@

    Arguments

    @@ -3324,7 +3324,7 @@

    Arguments

    @@ -3339,7 +3339,7 @@

    Arguments

    @@ -3354,7 +3354,7 @@

    Arguments

    @@ -3369,7 +3369,7 @@

    Arguments

    @@ -3384,7 +3384,7 @@

    Arguments

    @@ -3399,7 +3399,7 @@

    Arguments

    @@ -3414,7 +3414,7 @@

    Arguments

    @@ -3429,7 +3429,7 @@

    Arguments

    @@ -3444,7 +3444,7 @@

    Arguments

    @@ -3459,7 +3459,7 @@

    Arguments

    @@ -3479,7 +3479,7 @@

    Arguments

  • - private subroutine dbcsr_multiply_s(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop) + private subroutine dbcsr_multiply_s(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop)

    @@ -3498,7 +3498,7 @@

    Arguments

  • @@ -3513,7 +3513,7 @@

    Arguments

    @@ -3528,7 +3528,7 @@

    Arguments

    @@ -3543,7 +3543,7 @@

    Arguments

    @@ -3558,7 +3558,7 @@

    Arguments

    @@ -3573,7 +3573,7 @@

    Arguments

    @@ -3588,7 +3588,7 @@

    Arguments

    @@ -3603,7 +3603,7 @@

    Arguments

    @@ -3618,7 +3618,7 @@

    Arguments

    @@ -3633,7 +3633,7 @@

    Arguments

    @@ -3648,7 +3648,7 @@

    Arguments

    @@ -3663,7 +3663,7 @@

    Arguments

    @@ -3678,7 +3678,7 @@

    Arguments

    @@ -3693,7 +3693,7 @@

    Arguments

    @@ -3708,7 +3708,7 @@

    Arguments

    @@ -3723,7 +3723,7 @@

    Arguments

    @@ -3743,7 +3743,7 @@

    Arguments

  • - private subroutine dbcsr_multiply_c(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop) + private subroutine dbcsr_multiply_c(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop)

    @@ -3762,7 +3762,7 @@

    Arguments

  • @@ -3777,7 +3777,7 @@

    Arguments

    @@ -3792,7 +3792,7 @@

    Arguments

    @@ -3807,7 +3807,7 @@

    Arguments

    @@ -3822,7 +3822,7 @@

    Arguments

    @@ -3837,7 +3837,7 @@

    Arguments

    @@ -3852,7 +3852,7 @@

    Arguments

    @@ -3867,7 +3867,7 @@

    Arguments

    @@ -3882,7 +3882,7 @@

    Arguments

    @@ -3897,7 +3897,7 @@

    Arguments

    @@ -3912,7 +3912,7 @@

    Arguments

    @@ -3927,7 +3927,7 @@

    Arguments

    @@ -3942,7 +3942,7 @@

    Arguments

    @@ -3957,7 +3957,7 @@

    Arguments

    @@ -3972,7 +3972,7 @@

    Arguments

    @@ -3987,7 +3987,7 @@

    Arguments

    @@ -4007,7 +4007,7 @@

    Arguments

  • - private subroutine dbcsr_multiply_z(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop) + private subroutine dbcsr_multiply_z(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop)

    @@ -4026,7 +4026,7 @@

    Arguments

  • @@ -4041,7 +4041,7 @@

    Arguments

    @@ -4056,7 +4056,7 @@

    Arguments

    @@ -4071,7 +4071,7 @@

    Arguments

    @@ -4086,7 +4086,7 @@

    Arguments

    @@ -4101,7 +4101,7 @@

    Arguments

    @@ -4116,7 +4116,7 @@

    Arguments

    @@ -4131,7 +4131,7 @@

    Arguments

    @@ -4146,7 +4146,7 @@

    Arguments

    @@ -4161,7 +4161,7 @@

    Arguments

    @@ -4176,7 +4176,7 @@

    Arguments

    @@ -4191,7 +4191,7 @@

    Arguments

    @@ -4206,7 +4206,7 @@

    Arguments

    @@ -4221,7 +4221,7 @@

    Arguments

    @@ -4236,7 +4236,7 @@

    Arguments

    @@ -4251,7 +4251,7 @@

    Arguments

    @@ -4274,14 +4274,14 @@

    Arguments

    - -

    public interface dbcsr_get_block_p + +

    public interface dbcsr_get_block_p

    • - private subroutine dbcsr_get_block_p_d(matrix, row, col, block, tr, found, row_size, col_size) + private subroutine dbcsr_get_block_p_d(matrix, row, col, block, tr, found, row_size, col_size)

      @@ -4300,7 +4300,7 @@

      Arguments

    @@ -4315,7 +4315,7 @@

    Arguments

    @@ -4330,7 +4330,7 @@

    Arguments

    @@ -4345,7 +4345,7 @@

    Arguments

    @@ -4360,7 +4360,7 @@

    Arguments

    @@ -4375,7 +4375,7 @@

    Arguments

    @@ -4390,7 +4390,7 @@

    Arguments

    @@ -4405,7 +4405,7 @@

    Arguments

    @@ -4425,7 +4425,7 @@

    Arguments

  • - private subroutine dbcsr_get_block_p_s(matrix, row, col, block, tr, found, row_size, col_size) + private subroutine dbcsr_get_block_p_s(matrix, row, col, block, tr, found, row_size, col_size)

    @@ -4444,7 +4444,7 @@

    Arguments

  • @@ -4459,7 +4459,7 @@

    Arguments

    @@ -4474,7 +4474,7 @@

    Arguments

    @@ -4489,7 +4489,7 @@

    Arguments

    @@ -4504,7 +4504,7 @@

    Arguments

    @@ -4519,7 +4519,7 @@

    Arguments

    @@ -4534,7 +4534,7 @@

    Arguments

    @@ -4549,7 +4549,7 @@

    Arguments

    @@ -4569,7 +4569,7 @@

    Arguments

  • - private subroutine dbcsr_get_block_p_z(matrix, row, col, block, tr, found, row_size, col_size) + private subroutine dbcsr_get_block_p_z(matrix, row, col, block, tr, found, row_size, col_size)

    @@ -4588,7 +4588,7 @@

    Arguments

  • @@ -4603,7 +4603,7 @@

    Arguments

    @@ -4618,7 +4618,7 @@

    Arguments

    @@ -4633,7 +4633,7 @@

    Arguments

    @@ -4648,7 +4648,7 @@

    Arguments

    @@ -4663,7 +4663,7 @@

    Arguments

    @@ -4678,7 +4678,7 @@

    Arguments

    @@ -4693,7 +4693,7 @@

    Arguments

    @@ -4713,7 +4713,7 @@

    Arguments

  • - private subroutine dbcsr_get_block_p_c(matrix, row, col, block, tr, found, row_size, col_size) + private subroutine dbcsr_get_block_p_c(matrix, row, col, block, tr, found, row_size, col_size)

    @@ -4732,7 +4732,7 @@

    Arguments

  • @@ -4747,7 +4747,7 @@

    Arguments

    @@ -4762,7 +4762,7 @@

    Arguments

    @@ -4777,7 +4777,7 @@

    Arguments

    @@ -4792,7 +4792,7 @@

    Arguments

    @@ -4807,7 +4807,7 @@

    Arguments

    @@ -4822,7 +4822,7 @@

    Arguments

    @@ -4837,7 +4837,7 @@

    Arguments

    @@ -4857,7 +4857,7 @@

    Arguments

  • - private subroutine dbcsr_get_2d_block_p_d(matrix, row, col, block, tr, found, row_size, col_size) + private subroutine dbcsr_get_2d_block_p_d(matrix, row, col, block, tr, found, row_size, col_size)

    @@ -4876,7 +4876,7 @@

    Arguments

  • @@ -4891,7 +4891,7 @@

    Arguments

    @@ -4906,7 +4906,7 @@

    Arguments

    @@ -4921,7 +4921,7 @@

    Arguments

    @@ -4936,7 +4936,7 @@

    Arguments

    @@ -4951,7 +4951,7 @@

    Arguments

    @@ -4966,7 +4966,7 @@

    Arguments

    @@ -4981,7 +4981,7 @@

    Arguments

    @@ -5001,7 +5001,7 @@

    Arguments

  • - private subroutine dbcsr_get_2d_block_p_s(matrix, row, col, block, tr, found, row_size, col_size) + private subroutine dbcsr_get_2d_block_p_s(matrix, row, col, block, tr, found, row_size, col_size)

    @@ -5020,7 +5020,7 @@

    Arguments

  • @@ -5035,7 +5035,7 @@

    Arguments

    @@ -5050,7 +5050,7 @@

    Arguments

    @@ -5065,7 +5065,7 @@

    Arguments

    @@ -5080,7 +5080,7 @@

    Arguments

    @@ -5095,7 +5095,7 @@

    Arguments

    @@ -5110,7 +5110,7 @@

    Arguments

    @@ -5125,7 +5125,7 @@

    Arguments

    @@ -5145,7 +5145,7 @@

    Arguments

  • - private subroutine dbcsr_get_2d_block_p_z(matrix, row, col, block, tr, found, row_size, col_size) + private subroutine dbcsr_get_2d_block_p_z(matrix, row, col, block, tr, found, row_size, col_size)

    @@ -5164,7 +5164,7 @@

    Arguments

  • @@ -5179,7 +5179,7 @@

    Arguments

    @@ -5194,7 +5194,7 @@

    Arguments

    @@ -5209,7 +5209,7 @@

    Arguments

    @@ -5224,7 +5224,7 @@

    Arguments

    @@ -5239,7 +5239,7 @@

    Arguments

    @@ -5254,7 +5254,7 @@

    Arguments

    @@ -5269,7 +5269,7 @@

    Arguments

    @@ -5289,7 +5289,7 @@

    Arguments

  • - private subroutine dbcsr_get_2d_block_p_c(matrix, row, col, block, tr, found, row_size, col_size) + private subroutine dbcsr_get_2d_block_p_c(matrix, row, col, block, tr, found, row_size, col_size)

    @@ -5308,7 +5308,7 @@

    Arguments

  • @@ -5323,7 +5323,7 @@

    Arguments

    @@ -5338,7 +5338,7 @@

    Arguments

    @@ -5353,7 +5353,7 @@

    Arguments

    @@ -5368,7 +5368,7 @@

    Arguments

    @@ -5383,7 +5383,7 @@

    Arguments

    @@ -5398,7 +5398,7 @@

    Arguments

    @@ -5413,7 +5413,7 @@

    Arguments

    @@ -5452,7 +5452,7 @@

    Arguments

    @@ -5467,7 +5467,7 @@

    Arguments

    @@ -5482,7 +5482,7 @@

    Arguments

    @@ -5497,7 +5497,7 @@

    Arguments

    @@ -5512,7 +5512,7 @@

    Arguments

    @@ -5527,7 +5527,7 @@

    Arguments

    @@ -5542,7 +5542,7 @@

    Arguments

    @@ -5581,7 +5581,7 @@

    Arguments

    @@ -5596,7 +5596,7 @@

    Arguments

    @@ -5611,7 +5611,7 @@

    Arguments

    @@ -5626,7 +5626,7 @@

    Arguments

    @@ -5641,7 +5641,7 @@

    Arguments

    @@ -5656,7 +5656,7 @@

    Arguments

    @@ -5671,7 +5671,7 @@

    Arguments

    @@ -5710,7 +5710,7 @@

    Arguments

    @@ -5725,7 +5725,7 @@

    Arguments

    @@ -5740,7 +5740,7 @@

    Arguments

    @@ -5755,7 +5755,7 @@

    Arguments

    @@ -5770,7 +5770,7 @@

    Arguments

    @@ -5785,7 +5785,7 @@

    Arguments

    @@ -5800,7 +5800,7 @@

    Arguments

    @@ -5839,7 +5839,7 @@

    Arguments

    @@ -5854,7 +5854,7 @@

    Arguments

    @@ -5869,7 +5869,7 @@

    Arguments

    @@ -5884,7 +5884,7 @@

    Arguments

    @@ -5899,7 +5899,7 @@

    Arguments

    @@ -5914,7 +5914,7 @@

    Arguments

    @@ -5929,7 +5929,7 @@

    Arguments

    @@ -5968,7 +5968,7 @@

    Arguments

    @@ -5983,7 +5983,7 @@

    Arguments

    @@ -5998,7 +5998,7 @@

    Arguments

    @@ -6013,7 +6013,7 @@

    Arguments

    @@ -6028,7 +6028,7 @@

    Arguments

    @@ -6043,7 +6043,7 @@

    Arguments

    @@ -6058,7 +6058,7 @@

    Arguments

    @@ -6097,7 +6097,7 @@

    Arguments

    @@ -6112,7 +6112,7 @@

    Arguments

    @@ -6127,7 +6127,7 @@

    Arguments

    @@ -6142,7 +6142,7 @@

    Arguments

    @@ -6157,7 +6157,7 @@

    Arguments

    @@ -6172,7 +6172,7 @@

    Arguments

    @@ -6187,7 +6187,7 @@

    Arguments

    @@ -6226,7 +6226,7 @@

    Arguments

    @@ -6241,7 +6241,7 @@

    Arguments

    @@ -6256,7 +6256,7 @@

    Arguments

    @@ -6271,7 +6271,7 @@

    Arguments

    @@ -6286,7 +6286,7 @@

    Arguments

    @@ -6301,7 +6301,7 @@

    Arguments

    @@ -6316,7 +6316,7 @@

    Arguments

    @@ -6355,7 +6355,7 @@

    Arguments

    @@ -6370,7 +6370,7 @@

    Arguments

    @@ -6385,7 +6385,7 @@

    Arguments

    @@ -6400,7 +6400,7 @@

    Arguments

    @@ -6415,7 +6415,7 @@

    Arguments

    @@ -6430,7 +6430,7 @@

    Arguments

    @@ -6445,7 +6445,7 @@

    Arguments

    @@ -6468,14 +6468,14 @@

    Arguments

    - -

    public interface dbcsr_put_block + +

    public interface dbcsr_put_block

    • - private subroutine dbcsr_put_block_d(matrix, row, col, block, summation, scale) + private subroutine dbcsr_put_block_d(matrix, row, col, block, summation, scale)

      @@ -6494,7 +6494,7 @@

      Arguments

    @@ -6509,7 +6509,7 @@

    Arguments

    @@ -6524,7 +6524,7 @@

    Arguments

    @@ -6539,7 +6539,7 @@

    Arguments

    @@ -6554,7 +6554,7 @@

    Arguments

    @@ -6569,7 +6569,7 @@

    Arguments

    @@ -6589,7 +6589,7 @@

    Arguments

  • - private subroutine dbcsr_put_block_s(matrix, row, col, block, summation, scale) + private subroutine dbcsr_put_block_s(matrix, row, col, block, summation, scale)

    @@ -6608,7 +6608,7 @@

    Arguments

  • @@ -6623,7 +6623,7 @@

    Arguments

    @@ -6638,7 +6638,7 @@

    Arguments

    @@ -6653,7 +6653,7 @@

    Arguments

    @@ -6668,7 +6668,7 @@

    Arguments

    @@ -6683,7 +6683,7 @@

    Arguments

    @@ -6703,7 +6703,7 @@

    Arguments

  • - private subroutine dbcsr_put_block_z(matrix, row, col, block, summation, scale) + private subroutine dbcsr_put_block_z(matrix, row, col, block, summation, scale)

    @@ -6722,7 +6722,7 @@

    Arguments

  • @@ -6737,7 +6737,7 @@

    Arguments

    @@ -6752,7 +6752,7 @@

    Arguments

    @@ -6767,7 +6767,7 @@

    Arguments

    @@ -6782,7 +6782,7 @@

    Arguments

    @@ -6797,7 +6797,7 @@

    Arguments

    @@ -6817,7 +6817,7 @@

    Arguments

  • - private subroutine dbcsr_put_block_c(matrix, row, col, block, summation, scale) + private subroutine dbcsr_put_block_c(matrix, row, col, block, summation, scale)

    @@ -6836,7 +6836,7 @@

    Arguments

  • @@ -6851,7 +6851,7 @@

    Arguments

    @@ -6866,7 +6866,7 @@

    Arguments

    @@ -6881,7 +6881,7 @@

    Arguments

    @@ -6896,7 +6896,7 @@

    Arguments

    @@ -6911,7 +6911,7 @@

    Arguments

    @@ -6931,7 +6931,7 @@

    Arguments

  • - private subroutine dbcsr_put_block2d_d(matrix, row, col, block, summation, scale) + private subroutine dbcsr_put_block2d_d(matrix, row, col, block, summation, scale)

    @@ -6950,7 +6950,7 @@

    Arguments

  • @@ -6965,7 +6965,7 @@

    Arguments

    @@ -6980,7 +6980,7 @@

    Arguments

    @@ -6995,7 +6995,7 @@

    Arguments

    @@ -7010,7 +7010,7 @@

    Arguments

    @@ -7025,7 +7025,7 @@

    Arguments

    @@ -7045,7 +7045,7 @@

    Arguments

  • - private subroutine dbcsr_put_block2d_s(matrix, row, col, block, summation, scale) + private subroutine dbcsr_put_block2d_s(matrix, row, col, block, summation, scale)

    @@ -7064,7 +7064,7 @@

    Arguments

  • @@ -7079,7 +7079,7 @@

    Arguments

    @@ -7094,7 +7094,7 @@

    Arguments

    @@ -7109,7 +7109,7 @@

    Arguments

    @@ -7124,7 +7124,7 @@

    Arguments

    @@ -7139,7 +7139,7 @@

    Arguments

    @@ -7159,7 +7159,7 @@

    Arguments

  • - private subroutine dbcsr_put_block2d_z(matrix, row, col, block, summation, scale) + private subroutine dbcsr_put_block2d_z(matrix, row, col, block, summation, scale)

    @@ -7178,7 +7178,7 @@

    Arguments

  • @@ -7193,7 +7193,7 @@

    Arguments

    @@ -7208,7 +7208,7 @@

    Arguments

    @@ -7223,7 +7223,7 @@

    Arguments

    @@ -7238,7 +7238,7 @@

    Arguments

    @@ -7253,7 +7253,7 @@

    Arguments

    @@ -7273,7 +7273,7 @@

    Arguments

  • - private subroutine dbcsr_put_block2d_c(matrix, row, col, block, summation, scale) + private subroutine dbcsr_put_block2d_c(matrix, row, col, block, summation, scale)

    @@ -7292,7 +7292,7 @@

    Arguments

  • @@ -7307,7 +7307,7 @@

    Arguments

    @@ -7322,7 +7322,7 @@

    Arguments

    @@ -7337,7 +7337,7 @@

    Arguments

    @@ -7352,7 +7352,7 @@

    Arguments

    @@ -7367,7 +7367,7 @@

    Arguments

    @@ -7390,8 +7390,8 @@

    Arguments

    - -

    public interface dbcsr_iterator_next_block + +

    public interface dbcsr_iterator_next_block

      @@ -7416,7 +7416,7 @@

      Arguments

    @@ -7431,7 +7431,7 @@

    Arguments

    @@ -7448,7 +7448,7 @@

    Arguments

    @@ -7465,7 +7465,7 @@

    Arguments

    @@ -7482,7 +7482,7 @@

    Arguments

    @@ -7521,7 +7521,7 @@

    Arguments

    @@ -7536,7 +7536,7 @@

    Arguments

    @@ -7551,7 +7551,7 @@

    Arguments

    @@ -7566,7 +7566,7 @@

    Arguments

    @@ -7581,7 +7581,7 @@

    Arguments

    @@ -7596,7 +7596,7 @@

    Arguments

    @@ -7611,7 +7611,7 @@

    Arguments

    @@ -7626,7 +7626,7 @@

    Arguments

    @@ -7641,7 +7641,7 @@

    Arguments

    @@ -7656,7 +7656,7 @@

    Arguments

    @@ -7695,7 +7695,7 @@

    Arguments

    @@ -7710,7 +7710,7 @@

    Arguments

    @@ -7725,7 +7725,7 @@

    Arguments

    @@ -7740,7 +7740,7 @@

    Arguments

    @@ -7755,7 +7755,7 @@

    Arguments

    @@ -7770,7 +7770,7 @@

    Arguments

    @@ -7785,7 +7785,7 @@

    Arguments

    @@ -7800,7 +7800,7 @@

    Arguments

    @@ -7815,7 +7815,7 @@

    Arguments

    @@ -7830,7 +7830,7 @@

    Arguments

    @@ -7869,7 +7869,7 @@

    Arguments

    @@ -7884,7 +7884,7 @@

    Arguments

    @@ -7899,7 +7899,7 @@

    Arguments

    @@ -7914,7 +7914,7 @@

    Arguments

    @@ -7929,7 +7929,7 @@

    Arguments

    @@ -7944,7 +7944,7 @@

    Arguments

    @@ -7959,7 +7959,7 @@

    Arguments

    @@ -7974,7 +7974,7 @@

    Arguments

    @@ -7989,7 +7989,7 @@

    Arguments

    @@ -8004,7 +8004,7 @@

    Arguments

    @@ -8043,7 +8043,7 @@

    Arguments

    @@ -8058,7 +8058,7 @@

    Arguments

    @@ -8073,7 +8073,7 @@

    Arguments

    @@ -8088,7 +8088,7 @@

    Arguments

    @@ -8103,7 +8103,7 @@

    Arguments

    @@ -8118,7 +8118,7 @@

    Arguments

    @@ -8133,7 +8133,7 @@

    Arguments

    @@ -8148,7 +8148,7 @@

    Arguments

    @@ -8163,7 +8163,7 @@

    Arguments

    @@ -8178,7 +8178,7 @@

    Arguments

    @@ -8217,7 +8217,7 @@

    Arguments

    @@ -8232,7 +8232,7 @@

    Arguments

    @@ -8247,7 +8247,7 @@

    Arguments

    @@ -8262,7 +8262,7 @@

    Arguments

    @@ -8277,7 +8277,7 @@

    Arguments

    @@ -8292,7 +8292,7 @@

    Arguments

    @@ -8307,7 +8307,7 @@

    Arguments

    @@ -8322,7 +8322,7 @@

    Arguments

    @@ -8337,7 +8337,7 @@

    Arguments

    @@ -8352,7 +8352,7 @@

    Arguments

    @@ -8391,7 +8391,7 @@

    Arguments

    @@ -8406,7 +8406,7 @@

    Arguments

    @@ -8421,7 +8421,7 @@

    Arguments

    @@ -8436,7 +8436,7 @@

    Arguments

    @@ -8451,7 +8451,7 @@

    Arguments

    @@ -8466,7 +8466,7 @@

    Arguments

    @@ -8481,7 +8481,7 @@

    Arguments

    @@ -8496,7 +8496,7 @@

    Arguments

    @@ -8511,7 +8511,7 @@

    Arguments

    @@ -8526,7 +8526,7 @@

    Arguments

    @@ -8565,7 +8565,7 @@

    Arguments

    @@ -8580,7 +8580,7 @@

    Arguments

    @@ -8595,7 +8595,7 @@

    Arguments

    @@ -8610,7 +8610,7 @@

    Arguments

    @@ -8625,7 +8625,7 @@

    Arguments

    @@ -8640,7 +8640,7 @@

    Arguments

    @@ -8655,7 +8655,7 @@

    Arguments

    @@ -8670,7 +8670,7 @@

    Arguments

    @@ -8685,7 +8685,7 @@

    Arguments

    @@ -8700,7 +8700,7 @@

    Arguments

    @@ -8739,7 +8739,7 @@

    Arguments

    @@ -8754,7 +8754,7 @@

    Arguments

    @@ -8769,7 +8769,7 @@

    Arguments

    @@ -8784,7 +8784,7 @@

    Arguments

    @@ -8799,7 +8799,7 @@

    Arguments

    @@ -8814,7 +8814,7 @@

    Arguments

    @@ -8829,7 +8829,7 @@

    Arguments

    @@ -8844,7 +8844,7 @@

    Arguments

    @@ -8859,7 +8859,7 @@

    Arguments

    @@ -8874,7 +8874,7 @@

    Arguments

    @@ -8913,7 +8913,7 @@

    Arguments

    @@ -8928,7 +8928,7 @@

    Arguments

    @@ -8943,7 +8943,7 @@

    Arguments

    @@ -8958,7 +8958,7 @@

    Arguments

    @@ -8973,7 +8973,7 @@

    Arguments

    @@ -8988,7 +8988,7 @@

    Arguments

    @@ -9003,7 +9003,7 @@

    Arguments

    @@ -9018,7 +9018,7 @@

    Arguments

    @@ -9033,7 +9033,7 @@

    Arguments

    @@ -9072,7 +9072,7 @@

    Arguments

    @@ -9087,7 +9087,7 @@

    Arguments

    @@ -9102,7 +9102,7 @@

    Arguments

    @@ -9117,7 +9117,7 @@

    Arguments

    @@ -9132,7 +9132,7 @@

    Arguments

    @@ -9147,7 +9147,7 @@

    Arguments

    @@ -9162,7 +9162,7 @@

    Arguments

    @@ -9177,7 +9177,7 @@

    Arguments

    @@ -9192,7 +9192,7 @@

    Arguments

    @@ -9231,7 +9231,7 @@

    Arguments

    @@ -9246,7 +9246,7 @@

    Arguments

    @@ -9261,7 +9261,7 @@

    Arguments

    @@ -9276,7 +9276,7 @@

    Arguments

    @@ -9291,7 +9291,7 @@

    Arguments

    @@ -9306,7 +9306,7 @@

    Arguments

    @@ -9321,7 +9321,7 @@

    Arguments

    @@ -9336,7 +9336,7 @@

    Arguments

    @@ -9351,7 +9351,7 @@

    Arguments

    @@ -9390,7 +9390,7 @@

    Arguments

    @@ -9405,7 +9405,7 @@

    Arguments

    @@ -9420,7 +9420,7 @@

    Arguments

    @@ -9435,7 +9435,7 @@

    Arguments

    @@ -9450,7 +9450,7 @@

    Arguments

    @@ -9465,7 +9465,7 @@

    Arguments

    @@ -9480,7 +9480,7 @@

    Arguments

    @@ -9495,7 +9495,7 @@

    Arguments

    @@ -9510,7 +9510,7 @@

    Arguments

    @@ -9549,7 +9549,7 @@

    Arguments

    @@ -9564,7 +9564,7 @@

    Arguments

    @@ -9579,7 +9579,7 @@

    Arguments

    @@ -9594,7 +9594,7 @@

    Arguments

    @@ -9609,7 +9609,7 @@

    Arguments

    @@ -9624,7 +9624,7 @@

    Arguments

    @@ -9639,7 +9639,7 @@

    Arguments

    @@ -9654,7 +9654,7 @@

    Arguments

    @@ -9669,7 +9669,7 @@

    Arguments

    @@ -9708,7 +9708,7 @@

    Arguments

    @@ -9723,7 +9723,7 @@

    Arguments

    @@ -9738,7 +9738,7 @@

    Arguments

    @@ -9753,7 +9753,7 @@

    Arguments

    @@ -9768,7 +9768,7 @@

    Arguments

    @@ -9783,7 +9783,7 @@

    Arguments

    @@ -9798,7 +9798,7 @@

    Arguments

    @@ -9813,7 +9813,7 @@

    Arguments

    @@ -9828,7 +9828,7 @@

    Arguments

    @@ -9867,7 +9867,7 @@

    Arguments

    @@ -9882,7 +9882,7 @@

    Arguments

    @@ -9897,7 +9897,7 @@

    Arguments

    @@ -9912,7 +9912,7 @@

    Arguments

    @@ -9927,7 +9927,7 @@

    Arguments

    @@ -9942,7 +9942,7 @@

    Arguments

    @@ -9957,7 +9957,7 @@

    Arguments

    @@ -9972,7 +9972,7 @@

    Arguments

    @@ -9987,7 +9987,7 @@

    Arguments

    @@ -10026,7 +10026,7 @@

    Arguments

    @@ -10041,7 +10041,7 @@

    Arguments

    @@ -10056,7 +10056,7 @@

    Arguments

    @@ -10071,7 +10071,7 @@

    Arguments

    @@ -10086,7 +10086,7 @@

    Arguments

    @@ -10101,7 +10101,7 @@

    Arguments

    @@ -10116,7 +10116,7 @@

    Arguments

    @@ -10131,7 +10131,7 @@

    Arguments

    @@ -10146,7 +10146,7 @@

    Arguments

    @@ -10169,14 +10169,14 @@

    Arguments

    - -

    public interface dbcsr_reserve_block2d + +

    public interface dbcsr_reserve_block2d

    @@ -10210,7 +10210,7 @@

    Arguments

    @@ -10225,7 +10225,7 @@

    Arguments

    @@ -10240,7 +10240,7 @@

    Arguments

    @@ -10255,7 +10255,7 @@

    Arguments

    @@ -10270,7 +10270,7 @@

    Arguments

    @@ -10290,7 +10290,7 @@

    Arguments

  • - private subroutine dbcsr_reserve_block2d_s(matrix, row, col, block, transposed, existed) + private subroutine dbcsr_reserve_block2d_s(matrix, row, col, block, transposed, existed)

    @@ -10309,7 +10309,7 @@

    Arguments

  • @@ -10324,7 +10324,7 @@

    Arguments

    @@ -10339,7 +10339,7 @@

    Arguments

    @@ -10354,7 +10354,7 @@

    Arguments

    @@ -10369,7 +10369,7 @@

    Arguments

    @@ -10384,7 +10384,7 @@

    Arguments

    @@ -10404,7 +10404,7 @@

    Arguments

  • - private subroutine dbcsr_reserve_block2d_c(matrix, row, col, block, transposed, existed) + private subroutine dbcsr_reserve_block2d_c(matrix, row, col, block, transposed, existed)

    @@ -10423,7 +10423,7 @@

    Arguments

  • @@ -10438,7 +10438,7 @@

    Arguments

    @@ -10453,7 +10453,7 @@

    Arguments

    @@ -10468,7 +10468,7 @@

    Arguments

    @@ -10483,7 +10483,7 @@

    Arguments

    @@ -10498,7 +10498,7 @@

    Arguments

    @@ -10518,7 +10518,7 @@

    Arguments

  • - private subroutine dbcsr_reserve_block2d_z(matrix, row, col, block, transposed, existed) + private subroutine dbcsr_reserve_block2d_z(matrix, row, col, block, transposed, existed)

    @@ -10537,7 +10537,7 @@

    Arguments

  • @@ -10552,7 +10552,7 @@

    Arguments

    @@ -10567,7 +10567,7 @@

    Arguments

    @@ -10582,7 +10582,7 @@

    Arguments

    @@ -10597,7 +10597,7 @@

    Arguments

    @@ -10612,7 +10612,7 @@

    Arguments

    @@ -10642,7 +10642,7 @@

    public interface dbcsr_c
    • - private subroutine csr_create_new(csr_mat, nrows_total, ncols_total, nze_total, nze_local, nrows_local, mp_group, data_type) + private subroutine csr_create_new(csr_mat, nrows_total, ncols_total, nze_total, nze_local, nrows_local, mp_group, data_type)

      @@ -10661,7 +10661,7 @@

      Arguments

    @@ -10676,7 +10676,7 @@

    Arguments

    @@ -10691,7 +10691,7 @@

    Arguments

    @@ -10706,7 +10706,7 @@

    Arguments

    @@ -10721,7 +10721,7 @@

    Arguments

    @@ -10736,7 +10736,7 @@

    Arguments

    @@ -10751,7 +10751,7 @@

    Arguments

    @@ -10766,7 +10766,7 @@

    Arguments

    @@ -10806,7 +10806,7 @@

    Arguments

    @@ -10821,7 +10821,7 @@

    Arguments

    @@ -10870,7 +10870,7 @@

    Arguments

    @@ -10900,7 +10900,7 @@

    Arguments

    @@ -10915,7 +10915,7 @@

    Arguments

    @@ -10930,7 +10930,7 @@

    Arguments

    @@ -10974,7 +10974,7 @@

    Arguments

    @@ -11004,7 +11004,7 @@

    Arguments

    @@ -11019,7 +11019,7 @@

    Arguments

    @@ -11034,7 +11034,7 @@

    Arguments

    @@ -11078,7 +11078,7 @@

    Arguments

    @@ -11108,7 +11108,7 @@

    Arguments

    @@ -11123,7 +11123,7 @@

    Arguments

    @@ -11138,7 +11138,7 @@

    Arguments

    @@ -11182,7 +11182,7 @@

    Arguments

    @@ -11212,7 +11212,7 @@

    Arguments

    @@ -11227,7 +11227,7 @@

    Arguments

    @@ -11242,7 +11242,7 @@

    Arguments

    @@ -11270,8 +11270,8 @@

    - -

    public interface dbcsr_get_data_p + +

    public interface dbcsr_get_data_p

      @@ -11296,7 +11296,7 @@

      Arguments

    @@ -11311,7 +11311,7 @@

    Arguments

    @@ -11326,7 +11326,7 @@

    Arguments

    @@ -11341,7 +11341,7 @@

    Arguments

    @@ -11385,7 +11385,7 @@

    Arguments

    @@ -11400,7 +11400,7 @@

    Arguments

    @@ -11415,7 +11415,7 @@

    Arguments

    @@ -11430,7 +11430,7 @@

    Arguments

    @@ -11474,7 +11474,7 @@

    Arguments

    @@ -11489,7 +11489,7 @@

    Arguments

    @@ -11504,7 +11504,7 @@

    Arguments

    @@ -11519,7 +11519,7 @@

    Arguments

    @@ -11563,7 +11563,7 @@

    Arguments

    @@ -11578,7 +11578,7 @@

    Arguments

    @@ -11593,7 +11593,7 @@

    Arguments

    @@ -11608,7 +11608,7 @@

    Arguments

    @@ -11662,7 +11662,7 @@

    Arguments

    @@ -11731,7 +11731,7 @@

    Arguments

    @@ -11862,7 +11862,7 @@

    Components

    @@ -12009,7 +12009,7 @@

    Arguments

    @@ -12054,7 +12054,7 @@

    Arguments

    @@ -12069,7 +12069,7 @@

    Arguments

    @@ -12114,7 +12114,7 @@

    Arguments

    @@ -12159,7 +12159,7 @@

    Arguments

    @@ -12204,7 +12204,7 @@

    Arguments

    @@ -12249,7 +12249,7 @@

    Arguments

    @@ -12294,7 +12294,7 @@

    Arguments

    @@ -12339,7 +12339,7 @@

    Arguments

    @@ -12384,7 +12384,7 @@

    Arguments

    @@ -12429,7 +12429,7 @@

    Arguments

    @@ -12474,7 +12474,7 @@

    Arguments

    @@ -12519,7 +12519,7 @@

    Arguments

    @@ -12564,7 +12564,7 @@

    Arguments

    @@ -12609,7 +12609,7 @@

    Arguments

    @@ -12654,7 +12654,7 @@

    Arguments

    @@ -12680,7 +12680,7 @@

    -

    public pure function dbcsr_iterator_blocks_left(iterator) result(blocks_left) +

    public pure function dbcsr_iterator_blocks_left(iterator) result(blocks_left)

    @@ -12699,7 +12699,7 @@

    Arguments

    @@ -12744,7 +12744,7 @@

    Arguments

    @@ -12759,7 +12759,7 @@

    Arguments

    @@ -12774,7 +12774,7 @@

    Arguments

    @@ -12819,7 +12819,7 @@

    Arguments

    @@ -12864,7 +12864,7 @@

    Arguments

    @@ -12894,7 +12894,7 @@

    Arguments

    @@ -12909,7 +12909,7 @@

    Arguments

    @@ -12924,7 +12924,7 @@

    Arguments

    @@ -12969,7 +12969,7 @@

    Arguments

    @@ -12984,7 +12984,7 @@

    Arguments

    @@ -12999,7 +12999,7 @@

    Arguments

    @@ -13014,7 +13014,7 @@

    Arguments

    @@ -13059,7 +13059,7 @@

    Arguments

    @@ -13089,7 +13089,7 @@

    Arguments

    @@ -13104,7 +13104,7 @@

    Arguments

    @@ -13119,7 +13119,7 @@

    Arguments

    @@ -13164,7 +13164,7 @@

    Arguments

    @@ -13179,7 +13179,7 @@

    Arguments

    @@ -13194,7 +13194,7 @@

    Arguments

    @@ -13209,7 +13209,7 @@

    Arguments

    @@ -13254,7 +13254,7 @@

    Arguments

    @@ -13284,7 +13284,7 @@

    Arguments

    @@ -13299,7 +13299,7 @@

    Arguments

    @@ -13314,7 +13314,7 @@

    Arguments

    @@ -13359,7 +13359,7 @@

    Arguments

    @@ -13374,7 +13374,7 @@

    Arguments

    @@ -13389,7 +13389,7 @@

    Arguments

    @@ -13404,7 +13404,7 @@

    Arguments

    @@ -13449,7 +13449,7 @@

    Arguments

    @@ -13479,7 +13479,7 @@

    Arguments

    @@ -13494,7 +13494,7 @@

    Arguments

    @@ -13509,7 +13509,7 @@

    Arguments

    @@ -13554,7 +13554,7 @@

    Arguments

    @@ -13569,7 +13569,7 @@

    Arguments

    @@ -13584,7 +13584,7 @@

    Arguments

    @@ -13599,7 +13599,7 @@

    Arguments

    @@ -13630,7 +13630,7 @@

    Subroutines

    -

    public subroutine dbcsr_mp_grid_setup(dist) +

    public subroutine dbcsr_mp_grid_setup(dist)

    @@ -13649,7 +13649,7 @@

    Arguments

    @@ -13689,7 +13689,7 @@

    Arguments

    @@ -13725,7 +13725,7 @@

    Arguments

    -

    public subroutine dbcsr_complete_redistribute(matrix, redist, keep_sparsity, summation) +

    public subroutine dbcsr_complete_redistribute(matrix, redist, keep_sparsity, summation)

    @@ -13744,7 +13744,7 @@

    Arguments

    @@ -13759,7 +13759,7 @@

    Arguments

    @@ -13774,7 +13774,7 @@

    Arguments

    @@ -13789,7 +13789,7 @@

    Arguments

    @@ -13810,7 +13810,7 @@

    Arguments

    -

    public subroutine dbcsr_reserve_blocks(matrix, rows, cols, blk_pointers) +

    public subroutine dbcsr_reserve_blocks(matrix, rows, cols, blk_pointers)

    @@ -13829,7 +13829,7 @@

    Arguments

    @@ -13844,7 +13844,7 @@

    Arguments

    @@ -13859,7 +13859,7 @@

    Arguments

    @@ -13874,7 +13874,7 @@

    Arguments

    @@ -13895,7 +13895,7 @@

    Arguments

    -

    public subroutine dbcsr_reserve_all_blocks(matrix) +

    public subroutine dbcsr_reserve_all_blocks(matrix)

    @@ -13914,7 +13914,7 @@

    Arguments

    @@ -13935,7 +13935,7 @@

    Arguments

    -

    public subroutine dbcsr_reserve_diag_blocks(matrix) +

    public subroutine dbcsr_reserve_diag_blocks(matrix)

    @@ -13954,7 +13954,7 @@

    Arguments

    @@ -13994,7 +13994,7 @@

    Arguments

    @@ -14024,7 +14024,7 @@

    Arguments

    @@ -14039,7 +14039,7 @@

    Arguments

    @@ -14054,7 +14054,7 @@

    Arguments

    @@ -14069,7 +14069,7 @@

    Arguments

    @@ -14109,7 +14109,7 @@

    Arguments

    @@ -14179,7 +14179,7 @@

    Arguments

    @@ -14194,7 +14194,7 @@

    Arguments

    @@ -14230,7 +14230,7 @@

    Arguments

    -

    public subroutine dbcsr_get_stored_coordinates(matrix, row, column, processor) +

    public subroutine dbcsr_get_stored_coordinates(matrix, row, column, processor)

    @@ -14249,7 +14249,7 @@

    Arguments

    @@ -14264,7 +14264,7 @@

    Arguments

    @@ -14279,7 +14279,7 @@

    Arguments

    @@ -14294,7 +14294,7 @@

    Arguments

    @@ -14315,7 +14315,7 @@

    Arguments

    -

    public subroutine dbcsr_iterator_stop(iterator) +

    public subroutine dbcsr_iterator_stop(iterator)

    @@ -14334,7 +14334,7 @@

    Arguments

    @@ -14355,7 +14355,7 @@

    Arguments

    -

    public subroutine dbcsr_iterator_start(iterator, matrix, shared, dynamic, dynamic_byrows, contiguous_pointers, read_only) +

    public subroutine dbcsr_iterator_start(iterator, matrix, shared, dynamic, dynamic_byrows, contiguous_pointers, read_only)

    @@ -14374,7 +14374,7 @@

    Arguments

    @@ -14389,7 +14389,7 @@

    Arguments

    @@ -14504,7 +14504,7 @@

    Arguments

    @@ -14519,7 +14519,7 @@

    Arguments

    @@ -14536,7 +14536,7 @@

    Arguments

    @@ -14553,7 +14553,7 @@

    Arguments

    @@ -14570,7 +14570,7 @@

    Arguments

    @@ -14610,7 +14610,7 @@

    Arguments

    @@ -14625,7 +14625,7 @@

    Arguments

    @@ -14640,7 +14640,7 @@

    Arguments

    @@ -14655,7 +14655,7 @@

    Arguments

    @@ -14670,7 +14670,7 @@

    Arguments

    @@ -14685,7 +14685,7 @@

    Arguments

    @@ -14700,7 +14700,7 @@

    Arguments

    @@ -14715,7 +14715,7 @@

    Arguments

    @@ -14730,7 +14730,7 @@

    Arguments

    @@ -14745,7 +14745,7 @@

    Arguments

    @@ -14760,7 +14760,7 @@

    Arguments

    @@ -14775,7 +14775,7 @@

    Arguments

    @@ -14790,7 +14790,7 @@

    Arguments

    @@ -14805,7 +14805,7 @@

    Arguments

    @@ -14820,7 +14820,7 @@

    Arguments

    @@ -14835,7 +14835,7 @@

    Arguments

    @@ -14850,7 +14850,7 @@

    Arguments

    @@ -14865,7 +14865,7 @@

    Arguments

    @@ -14880,7 +14880,7 @@

    Arguments

    @@ -14895,7 +14895,7 @@

    Arguments

    @@ -14910,7 +14910,7 @@

    Arguments

    @@ -14925,7 +14925,7 @@

    Arguments

    @@ -14940,7 +14940,7 @@

    Arguments

    @@ -14955,7 +14955,7 @@

    Arguments

    @@ -14976,7 +14976,7 @@

    Arguments

    -

    public subroutine dbcsr_distribution_get(dist, row_dist, col_dist, nrows, ncols, has_threads, group, mynode, numnodes, nprows, npcols, myprow, mypcol, pgrid, subgroups_defined, prow_group, pcol_group) +

    public subroutine dbcsr_distribution_get(dist, row_dist, col_dist, nrows, ncols, has_threads, group, mynode, numnodes, nprows, npcols, myprow, mypcol, pgrid, subgroups_defined, prow_group, pcol_group)

    @@ -14995,7 +14995,7 @@

    Arguments

    @@ -15010,7 +15010,7 @@

    Arguments

    @@ -15025,7 +15025,7 @@

    Arguments

    @@ -15040,7 +15040,7 @@

    Arguments

    @@ -15055,7 +15055,7 @@

    Arguments

    @@ -15070,7 +15070,7 @@

    Arguments

    @@ -15085,7 +15085,7 @@

    Arguments

    @@ -15100,7 +15100,7 @@

    Arguments

    @@ -15115,7 +15115,7 @@

    Arguments

    @@ -15130,7 +15130,7 @@

    Arguments

    @@ -15145,7 +15145,7 @@

    Arguments

    @@ -15160,7 +15160,7 @@

    Arguments

    @@ -15175,7 +15175,7 @@

    Arguments

    @@ -15190,7 +15190,7 @@

    Arguments

    @@ -15205,7 +15205,7 @@

    Arguments

    @@ -15220,7 +15220,7 @@

    Arguments

    @@ -15235,7 +15235,7 @@

    Arguments

    @@ -15256,7 +15256,7 @@

    Arguments

    -

    public subroutine dbcsr_distribution_hold(dist) +

    public subroutine dbcsr_distribution_hold(dist)

    @@ -15275,7 +15275,7 @@

    Arguments

    @@ -15315,7 +15315,7 @@

    Arguments

    @@ -15355,7 +15355,7 @@

    Arguments

    @@ -15425,7 +15425,7 @@

    Arguments

    @@ -15476,7 +15476,7 @@

    Arguments

    -

    public subroutine dbcsr_replicate_all(matrix) +

    public subroutine dbcsr_replicate_all(matrix)

    @@ -15495,7 +15495,7 @@

    Arguments

    @@ -15516,7 +15516,7 @@

    Arguments

    -

    public subroutine dbcsr_distribute(matrix, fast) +

    public subroutine dbcsr_distribute(matrix, fast)

    @@ -15535,7 +15535,7 @@

    Arguments

    @@ -15550,7 +15550,7 @@

    Arguments

    @@ -15590,7 +15590,7 @@

    Arguments

    @@ -15630,7 +15630,7 @@

    Arguments

    @@ -15670,7 +15670,7 @@

    Arguments

    @@ -15710,7 +15710,7 @@

    Arguments

    @@ -15725,7 +15725,7 @@

    Arguments

    @@ -15770,7 +15770,7 @@

    Arguments

    @@ -15810,7 +15810,7 @@

    Arguments

    @@ -15825,7 +15825,7 @@

    Arguments

    @@ -15865,7 +15865,7 @@

    Arguments

    @@ -15905,7 +15905,7 @@

    Arguments

    @@ -15945,7 +15945,7 @@

    Arguments

    @@ -15960,7 +15960,7 @@

    Arguments

    @@ -15975,7 +15975,7 @@

    Arguments

    @@ -16015,7 +16015,7 @@

    Arguments

    @@ -16030,7 +16030,7 @@

    Arguments

    @@ -16045,7 +16045,7 @@

    Arguments

    @@ -16060,7 +16060,7 @@

    Arguments

    @@ -16075,7 +16075,7 @@

    Arguments

    @@ -16090,7 +16090,7 @@

    Arguments

    @@ -16105,7 +16105,7 @@

    Arguments

    @@ -16200,7 +16200,7 @@

    Arguments

    @@ -16255,7 +16255,7 @@

    Arguments

    @@ -16300,7 +16300,7 @@

    Arguments

    @@ -16315,7 +16315,7 @@

    Arguments

    @@ -16355,7 +16355,7 @@

    Arguments

    @@ -16370,7 +16370,7 @@

    Arguments

    @@ -16385,7 +16385,7 @@

    Arguments

    @@ -16400,7 +16400,7 @@

    Arguments

    @@ -16415,7 +16415,7 @@

    Arguments

    @@ -16430,7 +16430,7 @@

    Arguments

    @@ -16445,7 +16445,7 @@

    Arguments

    @@ -16460,7 +16460,7 @@

    Arguments

    @@ -16490,7 +16490,7 @@

    Arguments

    @@ -16520,7 +16520,7 @@

    Arguments

    @@ -16560,7 +16560,7 @@

    Arguments

    @@ -16575,7 +16575,7 @@

    Arguments

    @@ -16590,7 +16590,7 @@

    Arguments

    @@ -16605,7 +16605,7 @@

    Arguments

    @@ -16620,7 +16620,7 @@

    Arguments

    @@ -16635,7 +16635,7 @@

    Arguments

    @@ -16650,7 +16650,7 @@

    Arguments

    @@ -16665,7 +16665,7 @@

    Arguments

    @@ -16680,7 +16680,7 @@

    Arguments

    @@ -16695,7 +16695,7 @@

    Arguments

    @@ -16725,7 +16725,7 @@

    Arguments

    @@ -16765,7 +16765,7 @@

    Arguments

    @@ -16780,7 +16780,7 @@

    Arguments

    @@ -16795,7 +16795,7 @@

    Arguments

    @@ -16810,7 +16810,7 @@

    Arguments

    @@ -16865,7 +16865,7 @@

    Arguments

    @@ -16920,7 +16920,7 @@

    Arguments

    @@ -16990,7 +16990,7 @@

    Arguments

    @@ -17045,7 +17045,7 @@

    Arguments

    @@ -17060,7 +17060,7 @@

    Arguments

    @@ -17075,7 +17075,7 @@

    Arguments

    @@ -17090,7 +17090,7 @@

    Arguments

    @@ -17135,7 +17135,7 @@

    Arguments

    @@ -17175,7 +17175,7 @@

    Arguments

    @@ -17190,7 +17190,7 @@

    Arguments

    @@ -17230,7 +17230,7 @@

    Arguments

    @@ -17245,7 +17245,7 @@

    Arguments

    @@ -17266,7 +17266,7 @@

    Arguments

    -

    public subroutine dbcsr_transposed(transposed, normal, shallow_data_copy, transpose_data, transpose_distribution, use_distribution) +

    public subroutine dbcsr_transposed(transposed, normal, shallow_data_copy, transpose_data, transpose_distribution, use_distribution)

    @@ -17285,7 +17285,7 @@

    Arguments

    @@ -17300,7 +17300,7 @@

    Arguments

    @@ -17315,7 +17315,7 @@

    Arguments

    @@ -17330,7 +17330,7 @@

    Arguments

    @@ -17345,7 +17345,7 @@

    Arguments

    @@ -17360,7 +17360,7 @@

    Arguments

    @@ -17400,7 +17400,7 @@

    Arguments

    @@ -17500,7 +17500,7 @@

    Arguments

    @@ -17515,7 +17515,7 @@

    Arguments

    @@ -17530,7 +17530,7 @@

    Arguments

    @@ -17585,7 +17585,7 @@

    Arguments

    @@ -17606,7 +17606,7 @@

    Arguments

    -

    private subroutine csr_create_new(csr_mat, nrows_total, ncols_total, nze_total, nze_local, nrows_local, mp_group, data_type) +

    private subroutine csr_create_new(csr_mat, nrows_total, ncols_total, nze_total, nze_local, nrows_local, mp_group, data_type)

    @@ -17625,7 +17625,7 @@

    Arguments

    @@ -17640,7 +17640,7 @@

    Arguments

    @@ -17655,7 +17655,7 @@

    Arguments

    @@ -17670,7 +17670,7 @@

    Arguments

    @@ -17685,7 +17685,7 @@

    Arguments

    @@ -17700,7 +17700,7 @@

    Arguments

    @@ -17715,7 +17715,7 @@

    Arguments

    @@ -17730,7 +17730,7 @@

    Arguments

    @@ -17770,7 +17770,7 @@

    Arguments

    @@ -17785,7 +17785,7 @@

    Arguments

    @@ -17800,7 +17800,7 @@

    Arguments

    @@ -17815,7 +17815,7 @@

    Arguments

    @@ -17830,7 +17830,7 @@

    Arguments

    @@ -17870,7 +17870,7 @@

    Arguments

    @@ -17885,7 +17885,7 @@

    Arguments

    @@ -17925,7 +17925,7 @@

    Arguments

    @@ -17940,7 +17940,7 @@

    Arguments

    @@ -17961,7 +17961,7 @@

    Arguments

    -

    public subroutine dbcsr_to_csr_filter(dbcsr_mat, csr_sparsity, eps) +

    public subroutine dbcsr_to_csr_filter(dbcsr_mat, csr_sparsity, eps)

    @@ -17981,7 +17981,7 @@

    Arguments

    @@ -17996,7 +17996,7 @@

    Arguments

    @@ -18011,7 +18011,7 @@

    Arguments

    @@ -18051,7 +18051,7 @@

    Arguments

    @@ -18094,7 +18094,7 @@

    Arguments

    @@ -18141,7 +18141,7 @@

    Arguments

    @@ -18162,7 +18162,7 @@

    Arguments

    -

    public subroutine dbcsr_run_tests(mp_group, io_unit, nproc, matrix_sizes, trs, bs_m, bs_n, bs_k, sparsities, alpha, beta, data_type, test_type, n_loops, eps, retain_sparsity, always_checksum) +

    public subroutine dbcsr_run_tests(mp_group, io_unit, nproc, matrix_sizes, trs, bs_m, bs_n, bs_k, sparsities, alpha, beta, data_type, test_type, n_loops, eps, retain_sparsity, always_checksum)

    @@ -18181,7 +18181,7 @@

    Arguments

    @@ -18196,7 +18196,7 @@

    Arguments

    @@ -18211,7 +18211,7 @@

    Arguments

    @@ -18226,7 +18226,7 @@

    Arguments

    @@ -18241,7 +18241,7 @@

    Arguments

    @@ -18256,7 +18256,7 @@

    Arguments

    @@ -18271,7 +18271,7 @@

    Arguments

    @@ -18286,7 +18286,7 @@

    Arguments

    @@ -18301,7 +18301,7 @@

    Arguments

    @@ -18316,7 +18316,7 @@

    Arguments

    @@ -18331,7 +18331,7 @@

    Arguments

    @@ -18346,7 +18346,7 @@

    Arguments

    @@ -18361,7 +18361,7 @@

    Arguments

    @@ -18376,7 +18376,7 @@

    Arguments

    @@ -18391,7 +18391,7 @@

    Arguments

    @@ -18406,7 +18406,7 @@

    Arguments

    @@ -18421,7 +18421,7 @@

    Arguments

    @@ -18442,7 +18442,7 @@

    Arguments

    -

    private subroutine dbcsr_reserve_block2d_d(matrix, row, col, block, transposed, existed) +

    private subroutine dbcsr_reserve_block2d_d(matrix, row, col, block, transposed, existed)

    @@ -18461,7 +18461,7 @@

    Arguments

    @@ -18476,7 +18476,7 @@

    Arguments

    @@ -18491,7 +18491,7 @@

    Arguments

    @@ -18506,7 +18506,7 @@

    Arguments

    @@ -18521,7 +18521,7 @@

    Arguments

    @@ -18536,7 +18536,7 @@

    Arguments

    @@ -18576,7 +18576,7 @@

    Arguments

    @@ -18591,7 +18591,7 @@

    Arguments

    @@ -18606,7 +18606,7 @@

    Arguments

    @@ -18621,7 +18621,7 @@

    Arguments

    @@ -18636,7 +18636,7 @@

    Arguments

    @@ -18651,7 +18651,7 @@

    Arguments

    @@ -18666,7 +18666,7 @@

    Arguments

    @@ -18681,7 +18681,7 @@

    Arguments

    @@ -18696,7 +18696,7 @@

    Arguments

    @@ -18711,7 +18711,7 @@

    Arguments

    @@ -18751,7 +18751,7 @@

    Arguments

    @@ -18766,7 +18766,7 @@

    Arguments

    @@ -18781,7 +18781,7 @@

    Arguments

    @@ -18796,7 +18796,7 @@

    Arguments

    @@ -18811,7 +18811,7 @@

    Arguments

    @@ -18826,7 +18826,7 @@

    Arguments

    @@ -18841,7 +18841,7 @@

    Arguments

    @@ -18856,7 +18856,7 @@

    Arguments

    @@ -18871,7 +18871,7 @@

    Arguments

    @@ -18911,7 +18911,7 @@

    Arguments

    @@ -18926,7 +18926,7 @@

    Arguments

    @@ -18941,7 +18941,7 @@

    Arguments

    @@ -18956,7 +18956,7 @@

    Arguments

    @@ -18971,7 +18971,7 @@

    Arguments

    @@ -18986,7 +18986,7 @@

    Arguments

    @@ -19001,7 +19001,7 @@

    Arguments

    @@ -19016,7 +19016,7 @@

    Arguments

    @@ -19031,7 +19031,7 @@

    Arguments

    @@ -19046,7 +19046,7 @@

    Arguments

    @@ -19086,7 +19086,7 @@

    Arguments

    @@ -19101,7 +19101,7 @@

    Arguments

    @@ -19116,7 +19116,7 @@

    Arguments

    @@ -19131,7 +19131,7 @@

    Arguments

    @@ -19146,7 +19146,7 @@

    Arguments

    @@ -19161,7 +19161,7 @@

    Arguments

    @@ -19176,7 +19176,7 @@

    Arguments

    @@ -19191,7 +19191,7 @@

    Arguments

    @@ -19206,7 +19206,7 @@

    Arguments

    @@ -19227,7 +19227,7 @@

    Arguments

    -

    private subroutine dbcsr_put_block2d_d(matrix, row, col, block, summation, scale) +

    private subroutine dbcsr_put_block2d_d(matrix, row, col, block, summation, scale)

    @@ -19246,7 +19246,7 @@

    Arguments

    @@ -19261,7 +19261,7 @@

    Arguments

    @@ -19276,7 +19276,7 @@

    Arguments

    @@ -19291,7 +19291,7 @@

    Arguments

    @@ -19306,7 +19306,7 @@

    Arguments

    @@ -19321,7 +19321,7 @@

    Arguments

    @@ -19342,7 +19342,7 @@

    Arguments

    -

    private subroutine dbcsr_put_block_d(matrix, row, col, block, summation, scale) +

    private subroutine dbcsr_put_block_d(matrix, row, col, block, summation, scale)

    @@ -19361,7 +19361,7 @@

    Arguments

    @@ -19376,7 +19376,7 @@

    Arguments

    @@ -19391,7 +19391,7 @@

    Arguments

    @@ -19406,7 +19406,7 @@

    Arguments

    @@ -19421,7 +19421,7 @@

    Arguments

    @@ -19436,7 +19436,7 @@

    Arguments

    @@ -19457,7 +19457,7 @@

    Arguments

    -

    private subroutine dbcsr_get_2d_block_p_d(matrix, row, col, block, tr, found, row_size, col_size) +

    private subroutine dbcsr_get_2d_block_p_d(matrix, row, col, block, tr, found, row_size, col_size)

    @@ -19476,7 +19476,7 @@

    Arguments

    @@ -19491,7 +19491,7 @@

    Arguments

    @@ -19506,7 +19506,7 @@

    Arguments

    @@ -19521,7 +19521,7 @@

    Arguments

    @@ -19536,7 +19536,7 @@

    Arguments

    @@ -19551,7 +19551,7 @@

    Arguments

    @@ -19566,7 +19566,7 @@

    Arguments

    @@ -19581,7 +19581,7 @@

    Arguments

    @@ -19621,7 +19621,7 @@

    Arguments

    @@ -19636,7 +19636,7 @@

    Arguments

    @@ -19651,7 +19651,7 @@

    Arguments

    @@ -19666,7 +19666,7 @@

    Arguments

    @@ -19681,7 +19681,7 @@

    Arguments

    @@ -19696,7 +19696,7 @@

    Arguments

    @@ -19711,7 +19711,7 @@

    Arguments

    @@ -19732,7 +19732,7 @@

    Arguments

    -

    private subroutine dbcsr_get_block_p_d(matrix, row, col, block, tr, found, row_size, col_size) +

    private subroutine dbcsr_get_block_p_d(matrix, row, col, block, tr, found, row_size, col_size)

    @@ -19751,7 +19751,7 @@

    Arguments

    @@ -19766,7 +19766,7 @@

    Arguments

    @@ -19781,7 +19781,7 @@

    Arguments

    @@ -19796,7 +19796,7 @@

    Arguments

    @@ -19811,7 +19811,7 @@

    Arguments

    @@ -19826,7 +19826,7 @@

    Arguments

    @@ -19841,7 +19841,7 @@

    Arguments

    @@ -19856,7 +19856,7 @@

    Arguments

    @@ -19896,7 +19896,7 @@

    Arguments

    @@ -19911,7 +19911,7 @@

    Arguments

    @@ -19926,7 +19926,7 @@

    Arguments

    @@ -19941,7 +19941,7 @@

    Arguments

    @@ -19956,7 +19956,7 @@

    Arguments

    @@ -19971,7 +19971,7 @@

    Arguments

    @@ -19986,7 +19986,7 @@

    Arguments

    @@ -20026,7 +20026,7 @@

    Arguments

    @@ -20081,7 +20081,7 @@

    Arguments

    @@ -20096,7 +20096,7 @@

    Arguments

    @@ -20132,7 +20132,7 @@

    Arguments

    -

    private subroutine dbcsr_multiply_d(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop) +

    private subroutine dbcsr_multiply_d(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop)

    @@ -20151,7 +20151,7 @@

    Arguments

    @@ -20166,7 +20166,7 @@

    Arguments

    @@ -20181,7 +20181,7 @@

    Arguments

    @@ -20196,7 +20196,7 @@

    Arguments

    @@ -20211,7 +20211,7 @@

    Arguments

    @@ -20226,7 +20226,7 @@

    Arguments

    @@ -20241,7 +20241,7 @@

    Arguments

    @@ -20256,7 +20256,7 @@

    Arguments

    @@ -20271,7 +20271,7 @@

    Arguments

    @@ -20286,7 +20286,7 @@

    Arguments

    @@ -20301,7 +20301,7 @@

    Arguments

    @@ -20316,7 +20316,7 @@

    Arguments

    @@ -20331,7 +20331,7 @@

    Arguments

    @@ -20346,7 +20346,7 @@

    Arguments

    @@ -20361,7 +20361,7 @@

    Arguments

    @@ -20376,7 +20376,7 @@

    Arguments

    @@ -20416,7 +20416,7 @@

    Arguments

    @@ -20431,7 +20431,7 @@

    Arguments

    @@ -20486,7 +20486,7 @@

    Arguments

    @@ -20516,7 +20516,7 @@

    Arguments

    @@ -20556,7 +20556,7 @@

    Arguments

    @@ -20571,7 +20571,7 @@

    Arguments

    @@ -20611,7 +20611,7 @@

    Arguments

    @@ -20626,7 +20626,7 @@

    Arguments

    @@ -20696,7 +20696,7 @@

    Arguments

    @@ -20751,7 +20751,7 @@

    Arguments

    @@ -20806,7 +20806,7 @@

    Arguments

    @@ -20842,7 +20842,7 @@

    Arguments

    -

    private subroutine dbcsr_reserve_block2d_s(matrix, row, col, block, transposed, existed) +

    private subroutine dbcsr_reserve_block2d_s(matrix, row, col, block, transposed, existed)

    @@ -20861,7 +20861,7 @@

    Arguments

    @@ -20876,7 +20876,7 @@

    Arguments

    @@ -20891,7 +20891,7 @@

    Arguments

    @@ -20906,7 +20906,7 @@

    Arguments

    @@ -20921,7 +20921,7 @@

    Arguments

    @@ -20936,7 +20936,7 @@

    Arguments

    @@ -20976,7 +20976,7 @@

    Arguments

    @@ -20991,7 +20991,7 @@

    Arguments

    @@ -21006,7 +21006,7 @@

    Arguments

    @@ -21021,7 +21021,7 @@

    Arguments

    @@ -21036,7 +21036,7 @@

    Arguments

    @@ -21051,7 +21051,7 @@

    Arguments

    @@ -21066,7 +21066,7 @@

    Arguments

    @@ -21081,7 +21081,7 @@

    Arguments

    @@ -21096,7 +21096,7 @@

    Arguments

    @@ -21111,7 +21111,7 @@

    Arguments

    @@ -21151,7 +21151,7 @@

    Arguments

    @@ -21166,7 +21166,7 @@

    Arguments

    @@ -21181,7 +21181,7 @@

    Arguments

    @@ -21196,7 +21196,7 @@

    Arguments

    @@ -21211,7 +21211,7 @@

    Arguments

    @@ -21226,7 +21226,7 @@

    Arguments

    @@ -21241,7 +21241,7 @@

    Arguments

    @@ -21256,7 +21256,7 @@

    Arguments

    @@ -21271,7 +21271,7 @@

    Arguments

    @@ -21311,7 +21311,7 @@

    Arguments

    @@ -21326,7 +21326,7 @@

    Arguments

    @@ -21341,7 +21341,7 @@

    Arguments

    @@ -21356,7 +21356,7 @@

    Arguments

    @@ -21371,7 +21371,7 @@

    Arguments

    @@ -21386,7 +21386,7 @@

    Arguments

    @@ -21401,7 +21401,7 @@

    Arguments

    @@ -21416,7 +21416,7 @@

    Arguments

    @@ -21431,7 +21431,7 @@

    Arguments

    @@ -21446,7 +21446,7 @@

    Arguments

    @@ -21486,7 +21486,7 @@

    Arguments

    @@ -21501,7 +21501,7 @@

    Arguments

    @@ -21516,7 +21516,7 @@

    Arguments

    @@ -21531,7 +21531,7 @@

    Arguments

    @@ -21546,7 +21546,7 @@

    Arguments

    @@ -21561,7 +21561,7 @@

    Arguments

    @@ -21576,7 +21576,7 @@

    Arguments

    @@ -21591,7 +21591,7 @@

    Arguments

    @@ -21606,7 +21606,7 @@

    Arguments

    @@ -21627,7 +21627,7 @@

    Arguments

    -

    private subroutine dbcsr_put_block2d_s(matrix, row, col, block, summation, scale) +

    private subroutine dbcsr_put_block2d_s(matrix, row, col, block, summation, scale)

    @@ -21646,7 +21646,7 @@

    Arguments

    @@ -21661,7 +21661,7 @@

    Arguments

    @@ -21676,7 +21676,7 @@

    Arguments

    @@ -21691,7 +21691,7 @@

    Arguments

    @@ -21706,7 +21706,7 @@

    Arguments

    @@ -21721,7 +21721,7 @@

    Arguments

    @@ -21742,7 +21742,7 @@

    Arguments

    -

    private subroutine dbcsr_put_block_s(matrix, row, col, block, summation, scale) +

    private subroutine dbcsr_put_block_s(matrix, row, col, block, summation, scale)

    @@ -21761,7 +21761,7 @@

    Arguments

    @@ -21776,7 +21776,7 @@

    Arguments

    @@ -21791,7 +21791,7 @@

    Arguments

    @@ -21806,7 +21806,7 @@

    Arguments

    @@ -21821,7 +21821,7 @@

    Arguments

    @@ -21836,7 +21836,7 @@

    Arguments

    @@ -21857,7 +21857,7 @@

    Arguments

    -

    private subroutine dbcsr_get_2d_block_p_s(matrix, row, col, block, tr, found, row_size, col_size) +

    private subroutine dbcsr_get_2d_block_p_s(matrix, row, col, block, tr, found, row_size, col_size)

    @@ -21876,7 +21876,7 @@

    Arguments

    @@ -21891,7 +21891,7 @@

    Arguments

    @@ -21906,7 +21906,7 @@

    Arguments

    @@ -21921,7 +21921,7 @@

    Arguments

    @@ -21936,7 +21936,7 @@

    Arguments

    @@ -21951,7 +21951,7 @@

    Arguments

    @@ -21966,7 +21966,7 @@

    Arguments

    @@ -21981,7 +21981,7 @@

    Arguments

    @@ -22021,7 +22021,7 @@

    Arguments

    @@ -22036,7 +22036,7 @@

    Arguments

    @@ -22051,7 +22051,7 @@

    Arguments

    @@ -22066,7 +22066,7 @@

    Arguments

    @@ -22081,7 +22081,7 @@

    Arguments

    @@ -22096,7 +22096,7 @@

    Arguments

    @@ -22111,7 +22111,7 @@

    Arguments

    @@ -22132,7 +22132,7 @@

    Arguments

    -

    private subroutine dbcsr_get_block_p_s(matrix, row, col, block, tr, found, row_size, col_size) +

    private subroutine dbcsr_get_block_p_s(matrix, row, col, block, tr, found, row_size, col_size)

    @@ -22151,7 +22151,7 @@

    Arguments

    @@ -22166,7 +22166,7 @@

    Arguments

    @@ -22181,7 +22181,7 @@

    Arguments

    @@ -22196,7 +22196,7 @@

    Arguments

    @@ -22211,7 +22211,7 @@

    Arguments

    @@ -22226,7 +22226,7 @@

    Arguments

    @@ -22241,7 +22241,7 @@

    Arguments

    @@ -22256,7 +22256,7 @@

    Arguments

    @@ -22296,7 +22296,7 @@

    Arguments

    @@ -22311,7 +22311,7 @@

    Arguments

    @@ -22326,7 +22326,7 @@

    Arguments

    @@ -22341,7 +22341,7 @@

    Arguments

    @@ -22356,7 +22356,7 @@

    Arguments

    @@ -22371,7 +22371,7 @@

    Arguments

    @@ -22386,7 +22386,7 @@

    Arguments

    @@ -22426,7 +22426,7 @@

    Arguments

    @@ -22481,7 +22481,7 @@

    Arguments

    @@ -22496,7 +22496,7 @@

    Arguments

    @@ -22532,7 +22532,7 @@

    Arguments

    -

    private subroutine dbcsr_multiply_s(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop) +

    private subroutine dbcsr_multiply_s(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop)

    @@ -22551,7 +22551,7 @@

    Arguments

    @@ -22566,7 +22566,7 @@

    Arguments

    @@ -22581,7 +22581,7 @@

    Arguments

    @@ -22596,7 +22596,7 @@

    Arguments

    @@ -22611,7 +22611,7 @@

    Arguments

    @@ -22626,7 +22626,7 @@

    Arguments

    @@ -22641,7 +22641,7 @@

    Arguments

    @@ -22656,7 +22656,7 @@

    Arguments

    @@ -22671,7 +22671,7 @@

    Arguments

    @@ -22686,7 +22686,7 @@

    Arguments

    @@ -22701,7 +22701,7 @@

    Arguments

    @@ -22716,7 +22716,7 @@

    Arguments

    @@ -22731,7 +22731,7 @@

    Arguments

    @@ -22746,7 +22746,7 @@

    Arguments

    @@ -22761,7 +22761,7 @@

    Arguments

    @@ -22776,7 +22776,7 @@

    Arguments

    @@ -22816,7 +22816,7 @@

    Arguments

    @@ -22831,7 +22831,7 @@

    Arguments

    @@ -22886,7 +22886,7 @@

    Arguments

    @@ -22916,7 +22916,7 @@

    Arguments

    @@ -22956,7 +22956,7 @@

    Arguments

    @@ -22971,7 +22971,7 @@

    Arguments

    @@ -23011,7 +23011,7 @@

    Arguments

    @@ -23026,7 +23026,7 @@

    Arguments

    @@ -23096,7 +23096,7 @@

    Arguments

    @@ -23151,7 +23151,7 @@

    Arguments

    @@ -23206,7 +23206,7 @@

    Arguments

    @@ -23242,7 +23242,7 @@

    Arguments

    -

    private subroutine dbcsr_reserve_block2d_z(matrix, row, col, block, transposed, existed) +

    private subroutine dbcsr_reserve_block2d_z(matrix, row, col, block, transposed, existed)

    @@ -23261,7 +23261,7 @@

    Arguments

    @@ -23276,7 +23276,7 @@

    Arguments

    @@ -23291,7 +23291,7 @@

    Arguments

    @@ -23306,7 +23306,7 @@

    Arguments

    @@ -23321,7 +23321,7 @@

    Arguments

    @@ -23336,7 +23336,7 @@

    Arguments

    @@ -23376,7 +23376,7 @@

    Arguments

    @@ -23391,7 +23391,7 @@

    Arguments

    @@ -23406,7 +23406,7 @@

    Arguments

    @@ -23421,7 +23421,7 @@

    Arguments

    @@ -23436,7 +23436,7 @@

    Arguments

    @@ -23451,7 +23451,7 @@

    Arguments

    @@ -23466,7 +23466,7 @@

    Arguments

    @@ -23481,7 +23481,7 @@

    Arguments

    @@ -23496,7 +23496,7 @@

    Arguments

    @@ -23511,7 +23511,7 @@

    Arguments

    @@ -23551,7 +23551,7 @@

    Arguments

    @@ -23566,7 +23566,7 @@

    Arguments

    @@ -23581,7 +23581,7 @@

    Arguments

    @@ -23596,7 +23596,7 @@

    Arguments

    @@ -23611,7 +23611,7 @@

    Arguments

    @@ -23626,7 +23626,7 @@

    Arguments

    @@ -23641,7 +23641,7 @@

    Arguments

    @@ -23656,7 +23656,7 @@

    Arguments

    @@ -23671,7 +23671,7 @@

    Arguments

    @@ -23711,7 +23711,7 @@

    Arguments

    @@ -23726,7 +23726,7 @@

    Arguments

    @@ -23741,7 +23741,7 @@

    Arguments

    @@ -23756,7 +23756,7 @@

    Arguments

    @@ -23771,7 +23771,7 @@

    Arguments

    @@ -23786,7 +23786,7 @@

    Arguments

    @@ -23801,7 +23801,7 @@

    Arguments

    @@ -23816,7 +23816,7 @@

    Arguments

    @@ -23831,7 +23831,7 @@

    Arguments

    @@ -23846,7 +23846,7 @@

    Arguments

    @@ -23886,7 +23886,7 @@

    Arguments

    @@ -23901,7 +23901,7 @@

    Arguments

    @@ -23916,7 +23916,7 @@

    Arguments

    @@ -23931,7 +23931,7 @@

    Arguments

    @@ -23946,7 +23946,7 @@

    Arguments

    @@ -23961,7 +23961,7 @@

    Arguments

    @@ -23976,7 +23976,7 @@

    Arguments

    @@ -23991,7 +23991,7 @@

    Arguments

    @@ -24006,7 +24006,7 @@

    Arguments

    @@ -24027,7 +24027,7 @@

    Arguments

    -

    private subroutine dbcsr_put_block2d_z(matrix, row, col, block, summation, scale) +

    private subroutine dbcsr_put_block2d_z(matrix, row, col, block, summation, scale)

    @@ -24046,7 +24046,7 @@

    Arguments

    @@ -24061,7 +24061,7 @@

    Arguments

    @@ -24076,7 +24076,7 @@

    Arguments

    @@ -24091,7 +24091,7 @@

    Arguments

    @@ -24106,7 +24106,7 @@

    Arguments

    @@ -24121,7 +24121,7 @@

    Arguments

    @@ -24142,7 +24142,7 @@

    Arguments

    -

    private subroutine dbcsr_put_block_z(matrix, row, col, block, summation, scale) +

    private subroutine dbcsr_put_block_z(matrix, row, col, block, summation, scale)

    @@ -24161,7 +24161,7 @@

    Arguments

    @@ -24176,7 +24176,7 @@

    Arguments

    @@ -24191,7 +24191,7 @@

    Arguments

    @@ -24206,7 +24206,7 @@

    Arguments

    @@ -24221,7 +24221,7 @@

    Arguments

    @@ -24236,7 +24236,7 @@

    Arguments

    @@ -24257,7 +24257,7 @@

    Arguments

    -

    private subroutine dbcsr_get_2d_block_p_z(matrix, row, col, block, tr, found, row_size, col_size) +

    private subroutine dbcsr_get_2d_block_p_z(matrix, row, col, block, tr, found, row_size, col_size)

    @@ -24276,7 +24276,7 @@

    Arguments

    @@ -24291,7 +24291,7 @@

    Arguments

    @@ -24306,7 +24306,7 @@

    Arguments

    @@ -24321,7 +24321,7 @@

    Arguments

    @@ -24336,7 +24336,7 @@

    Arguments

    @@ -24351,7 +24351,7 @@

    Arguments

    @@ -24366,7 +24366,7 @@

    Arguments

    @@ -24381,7 +24381,7 @@

    Arguments

    @@ -24421,7 +24421,7 @@

    Arguments

    @@ -24436,7 +24436,7 @@

    Arguments

    @@ -24451,7 +24451,7 @@

    Arguments

    @@ -24466,7 +24466,7 @@

    Arguments

    @@ -24481,7 +24481,7 @@

    Arguments

    @@ -24496,7 +24496,7 @@

    Arguments

    @@ -24511,7 +24511,7 @@

    Arguments

    @@ -24532,7 +24532,7 @@

    Arguments

    -

    private subroutine dbcsr_get_block_p_z(matrix, row, col, block, tr, found, row_size, col_size) +

    private subroutine dbcsr_get_block_p_z(matrix, row, col, block, tr, found, row_size, col_size)

    @@ -24551,7 +24551,7 @@

    Arguments

    @@ -24566,7 +24566,7 @@

    Arguments

    @@ -24581,7 +24581,7 @@

    Arguments

    @@ -24596,7 +24596,7 @@

    Arguments

    @@ -24611,7 +24611,7 @@

    Arguments

    @@ -24626,7 +24626,7 @@

    Arguments

    @@ -24641,7 +24641,7 @@

    Arguments

    @@ -24656,7 +24656,7 @@

    Arguments

    @@ -24696,7 +24696,7 @@

    Arguments

    @@ -24711,7 +24711,7 @@

    Arguments

    @@ -24726,7 +24726,7 @@

    Arguments

    @@ -24741,7 +24741,7 @@

    Arguments

    @@ -24756,7 +24756,7 @@

    Arguments

    @@ -24771,7 +24771,7 @@

    Arguments

    @@ -24786,7 +24786,7 @@

    Arguments

    @@ -24826,7 +24826,7 @@

    Arguments

    @@ -24881,7 +24881,7 @@

    Arguments

    @@ -24896,7 +24896,7 @@

    Arguments

    @@ -24932,7 +24932,7 @@

    Arguments

    -

    private subroutine dbcsr_multiply_z(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop) +

    private subroutine dbcsr_multiply_z(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop)

    @@ -24951,7 +24951,7 @@

    Arguments

    @@ -24966,7 +24966,7 @@

    Arguments

    @@ -24981,7 +24981,7 @@

    Arguments

    @@ -24996,7 +24996,7 @@

    Arguments

    @@ -25011,7 +25011,7 @@

    Arguments

    @@ -25026,7 +25026,7 @@

    Arguments

    @@ -25041,7 +25041,7 @@

    Arguments

    @@ -25056,7 +25056,7 @@

    Arguments

    @@ -25071,7 +25071,7 @@

    Arguments

    @@ -25086,7 +25086,7 @@

    Arguments

    @@ -25101,7 +25101,7 @@

    Arguments

    @@ -25116,7 +25116,7 @@

    Arguments

    @@ -25131,7 +25131,7 @@

    Arguments

    @@ -25146,7 +25146,7 @@

    Arguments

    @@ -25161,7 +25161,7 @@

    Arguments

    @@ -25176,7 +25176,7 @@

    Arguments

    @@ -25216,7 +25216,7 @@

    Arguments

    @@ -25231,7 +25231,7 @@

    Arguments

    @@ -25286,7 +25286,7 @@

    Arguments

    @@ -25316,7 +25316,7 @@

    Arguments

    @@ -25356,7 +25356,7 @@

    Arguments

    @@ -25371,7 +25371,7 @@

    Arguments

    @@ -25411,7 +25411,7 @@

    Arguments

    @@ -25426,7 +25426,7 @@

    Arguments

    @@ -25496,7 +25496,7 @@

    Arguments

    @@ -25551,7 +25551,7 @@

    Arguments

    @@ -25606,7 +25606,7 @@

    Arguments

    @@ -25642,7 +25642,7 @@

    Arguments

    -

    private subroutine dbcsr_reserve_block2d_c(matrix, row, col, block, transposed, existed) +

    private subroutine dbcsr_reserve_block2d_c(matrix, row, col, block, transposed, existed)

    @@ -25661,7 +25661,7 @@

    Arguments

    @@ -25676,7 +25676,7 @@

    Arguments

    @@ -25691,7 +25691,7 @@

    Arguments

    @@ -25706,7 +25706,7 @@

    Arguments

    @@ -25721,7 +25721,7 @@

    Arguments

    @@ -25736,7 +25736,7 @@

    Arguments

    @@ -25776,7 +25776,7 @@

    Arguments

    @@ -25791,7 +25791,7 @@

    Arguments

    @@ -25806,7 +25806,7 @@

    Arguments

    @@ -25821,7 +25821,7 @@

    Arguments

    @@ -25836,7 +25836,7 @@

    Arguments

    @@ -25851,7 +25851,7 @@

    Arguments

    @@ -25866,7 +25866,7 @@

    Arguments

    @@ -25881,7 +25881,7 @@

    Arguments

    @@ -25896,7 +25896,7 @@

    Arguments

    @@ -25911,7 +25911,7 @@

    Arguments

    @@ -25951,7 +25951,7 @@

    Arguments

    @@ -25966,7 +25966,7 @@

    Arguments

    @@ -25981,7 +25981,7 @@

    Arguments

    @@ -25996,7 +25996,7 @@

    Arguments

    @@ -26011,7 +26011,7 @@

    Arguments

    @@ -26026,7 +26026,7 @@

    Arguments

    @@ -26041,7 +26041,7 @@

    Arguments

    @@ -26056,7 +26056,7 @@

    Arguments

    @@ -26071,7 +26071,7 @@

    Arguments

    @@ -26111,7 +26111,7 @@

    Arguments

    @@ -26126,7 +26126,7 @@

    Arguments

    @@ -26141,7 +26141,7 @@

    Arguments

    @@ -26156,7 +26156,7 @@

    Arguments

    @@ -26171,7 +26171,7 @@

    Arguments

    @@ -26186,7 +26186,7 @@

    Arguments

    @@ -26201,7 +26201,7 @@

    Arguments

    @@ -26216,7 +26216,7 @@

    Arguments

    @@ -26231,7 +26231,7 @@

    Arguments

    @@ -26246,7 +26246,7 @@

    Arguments

    @@ -26286,7 +26286,7 @@

    Arguments

    @@ -26301,7 +26301,7 @@

    Arguments

    @@ -26316,7 +26316,7 @@

    Arguments

    @@ -26331,7 +26331,7 @@

    Arguments

    @@ -26346,7 +26346,7 @@

    Arguments

    @@ -26361,7 +26361,7 @@

    Arguments

    @@ -26376,7 +26376,7 @@

    Arguments

    @@ -26391,7 +26391,7 @@

    Arguments

    @@ -26406,7 +26406,7 @@

    Arguments

    @@ -26427,7 +26427,7 @@

    Arguments

    -

    private subroutine dbcsr_put_block2d_c(matrix, row, col, block, summation, scale) +

    private subroutine dbcsr_put_block2d_c(matrix, row, col, block, summation, scale)

    @@ -26446,7 +26446,7 @@

    Arguments

    @@ -26461,7 +26461,7 @@

    Arguments

    @@ -26476,7 +26476,7 @@

    Arguments

    @@ -26491,7 +26491,7 @@

    Arguments

    @@ -26506,7 +26506,7 @@

    Arguments

    @@ -26521,7 +26521,7 @@

    Arguments

    @@ -26542,7 +26542,7 @@

    Arguments

    -

    private subroutine dbcsr_put_block_c(matrix, row, col, block, summation, scale) +

    private subroutine dbcsr_put_block_c(matrix, row, col, block, summation, scale)

    @@ -26561,7 +26561,7 @@

    Arguments

    @@ -26576,7 +26576,7 @@

    Arguments

    @@ -26591,7 +26591,7 @@

    Arguments

    @@ -26606,7 +26606,7 @@

    Arguments

    @@ -26621,7 +26621,7 @@

    Arguments

    @@ -26636,7 +26636,7 @@

    Arguments

    @@ -26657,7 +26657,7 @@

    Arguments

    -

    private subroutine dbcsr_get_2d_block_p_c(matrix, row, col, block, tr, found, row_size, col_size) +

    private subroutine dbcsr_get_2d_block_p_c(matrix, row, col, block, tr, found, row_size, col_size)

    @@ -26676,7 +26676,7 @@

    Arguments

    @@ -26691,7 +26691,7 @@

    Arguments

    @@ -26706,7 +26706,7 @@

    Arguments

    @@ -26721,7 +26721,7 @@

    Arguments

    @@ -26736,7 +26736,7 @@

    Arguments

    @@ -26751,7 +26751,7 @@

    Arguments

    @@ -26766,7 +26766,7 @@

    Arguments

    @@ -26781,7 +26781,7 @@

    Arguments

    @@ -26821,7 +26821,7 @@

    Arguments

    @@ -26836,7 +26836,7 @@

    Arguments

    @@ -26851,7 +26851,7 @@

    Arguments

    @@ -26866,7 +26866,7 @@

    Arguments

    @@ -26881,7 +26881,7 @@

    Arguments

    @@ -26896,7 +26896,7 @@

    Arguments

    @@ -26911,7 +26911,7 @@

    Arguments

    @@ -26932,7 +26932,7 @@

    Arguments

    -

    private subroutine dbcsr_get_block_p_c(matrix, row, col, block, tr, found, row_size, col_size) +

    private subroutine dbcsr_get_block_p_c(matrix, row, col, block, tr, found, row_size, col_size)

    @@ -26951,7 +26951,7 @@

    Arguments

    @@ -26966,7 +26966,7 @@

    Arguments

    @@ -26981,7 +26981,7 @@

    Arguments

    @@ -26996,7 +26996,7 @@

    Arguments

    @@ -27011,7 +27011,7 @@

    Arguments

    @@ -27026,7 +27026,7 @@

    Arguments

    @@ -27041,7 +27041,7 @@

    Arguments

    @@ -27056,7 +27056,7 @@

    Arguments

    @@ -27096,7 +27096,7 @@

    Arguments

    @@ -27111,7 +27111,7 @@

    Arguments

    @@ -27126,7 +27126,7 @@

    Arguments

    @@ -27141,7 +27141,7 @@

    Arguments

    @@ -27156,7 +27156,7 @@

    Arguments

    @@ -27171,7 +27171,7 @@

    Arguments

    @@ -27186,7 +27186,7 @@

    Arguments

    @@ -27226,7 +27226,7 @@

    Arguments

    @@ -27281,7 +27281,7 @@

    Arguments

    @@ -27296,7 +27296,7 @@

    Arguments

    @@ -27332,7 +27332,7 @@

    Arguments

    -

    private subroutine dbcsr_multiply_c(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop) +

    private subroutine dbcsr_multiply_c(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop)

    @@ -27351,7 +27351,7 @@

    Arguments

    @@ -27366,7 +27366,7 @@

    Arguments

    @@ -27381,7 +27381,7 @@

    Arguments

    @@ -27396,7 +27396,7 @@

    Arguments

    @@ -27411,7 +27411,7 @@

    Arguments

    @@ -27426,7 +27426,7 @@

    Arguments

    @@ -27441,7 +27441,7 @@

    Arguments

    @@ -27456,7 +27456,7 @@

    Arguments

    @@ -27471,7 +27471,7 @@

    Arguments

    @@ -27486,7 +27486,7 @@

    Arguments

    @@ -27501,7 +27501,7 @@

    Arguments

    @@ -27516,7 +27516,7 @@

    Arguments

    @@ -27531,7 +27531,7 @@

    Arguments

    @@ -27546,7 +27546,7 @@

    Arguments

    @@ -27561,7 +27561,7 @@

    Arguments

    @@ -27576,7 +27576,7 @@

    Arguments

    @@ -27616,7 +27616,7 @@

    Arguments

    @@ -27631,7 +27631,7 @@

    Arguments

    @@ -27686,7 +27686,7 @@

    Arguments

    @@ -27716,7 +27716,7 @@

    Arguments

    @@ -27756,7 +27756,7 @@

    Arguments

    @@ -27771,7 +27771,7 @@

    Arguments

    @@ -27811,7 +27811,7 @@

    Arguments

    @@ -27826,7 +27826,7 @@

    Arguments

    @@ -27896,7 +27896,7 @@

    Arguments

    @@ -27951,7 +27951,7 @@

    Arguments

    @@ -28006,7 +28006,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_api_c.html b/develop/module/dbcsr_api_c.html index 2ed8cc01a03..70143bad52c 100644 --- a/develop/module/dbcsr_api_c.html +++ b/develop/module/dbcsr_api_c.html @@ -311,8 +311,8 @@

    Uses

  • @@ -396,7 +396,7 @@

    Arguments

    @@ -471,7 +471,7 @@

    Arguments

    @@ -516,7 +516,7 @@

    Arguments

    @@ -561,7 +561,7 @@

    Arguments

    @@ -621,7 +621,7 @@

    Arguments

    @@ -666,7 +666,7 @@

    Arguments

    @@ -711,7 +711,7 @@

    Arguments

    @@ -756,7 +756,7 @@

    Arguments

    @@ -801,7 +801,7 @@

    Arguments

    @@ -846,7 +846,7 @@

    Arguments

    @@ -891,7 +891,7 @@

    Arguments

    @@ -936,7 +936,7 @@

    Arguments

    @@ -981,7 +981,7 @@

    Arguments

    @@ -1026,7 +1026,7 @@

    Arguments

    @@ -1071,7 +1071,7 @@

    Arguments

    @@ -1116,7 +1116,7 @@

    Arguments

    @@ -1161,7 +1161,7 @@

    Arguments

    @@ -1226,7 +1226,7 @@

    Arguments

    @@ -1294,7 +1294,7 @@

    Arguments

    @@ -1637,7 +1637,7 @@

    Arguments

    @@ -1677,7 +1677,7 @@

    Arguments

    @@ -1797,7 +1797,7 @@

    Arguments

    @@ -1912,7 +1912,7 @@

    Arguments

    @@ -2047,7 +2047,7 @@

    Arguments

    @@ -2147,7 +2147,7 @@

    Arguments

    @@ -2187,7 +2187,7 @@

    Arguments

    @@ -2747,7 +2747,7 @@

    Arguments

    @@ -2802,7 +2802,7 @@

    Arguments

    @@ -2872,7 +2872,7 @@

    Arguments

    @@ -3067,7 +3067,7 @@

    Arguments

    @@ -3212,7 +3212,7 @@

    Arguments

    @@ -3342,7 +3342,7 @@

    Arguments

    @@ -3902,7 +3902,7 @@

    Arguments

    @@ -3957,7 +3957,7 @@

    Arguments

    @@ -4027,7 +4027,7 @@

    Arguments

    @@ -4222,7 +4222,7 @@

    Arguments

    @@ -4367,7 +4367,7 @@

    Arguments

    @@ -4497,7 +4497,7 @@

    Arguments

    @@ -5057,7 +5057,7 @@

    Arguments

    @@ -5112,7 +5112,7 @@

    Arguments

    @@ -5182,7 +5182,7 @@

    Arguments

    @@ -5377,7 +5377,7 @@

    Arguments

    @@ -5522,7 +5522,7 @@

    Arguments

    @@ -5652,7 +5652,7 @@

    Arguments

    @@ -6212,7 +6212,7 @@

    Arguments

    @@ -6267,7 +6267,7 @@

    Arguments

    @@ -6337,7 +6337,7 @@

    Arguments

    @@ -6532,7 +6532,7 @@

    Arguments

    @@ -6677,7 +6677,7 @@

    Arguments

    @@ -6807,7 +6807,7 @@

    Arguments

    @@ -6892,7 +6892,7 @@

    Arguments

    @@ -6992,7 +6992,7 @@

    Arguments

    @@ -7442,7 +7442,7 @@

    Arguments

    @@ -7482,7 +7482,7 @@

    Arguments

    @@ -7567,7 +7567,7 @@

    Arguments

    @@ -7607,7 +7607,7 @@

    Arguments

    @@ -7752,7 +7752,7 @@

    Arguments

    @@ -7897,7 +7897,7 @@

    Arguments

    @@ -8042,7 +8042,7 @@

    Arguments

    @@ -8242,7 +8242,7 @@

    Arguments

    @@ -8417,7 +8417,7 @@

    Arguments

    @@ -9157,7 +9157,7 @@

    Arguments

    @@ -9302,7 +9302,7 @@

    Arguments

    @@ -9317,7 +9317,7 @@

    Arguments

    @@ -9417,7 +9417,7 @@

    Arguments

    @@ -9562,7 +9562,7 @@

    Arguments

    @@ -9577,7 +9577,7 @@

    Arguments

    @@ -9677,7 +9677,7 @@

    Arguments

    @@ -9822,7 +9822,7 @@

    Arguments

    @@ -9837,7 +9837,7 @@

    Arguments

    @@ -9937,7 +9937,7 @@

    Arguments

    @@ -10082,7 +10082,7 @@

    Arguments

    @@ -10097,7 +10097,7 @@

    Arguments

    @@ -10197,7 +10197,7 @@

    Arguments

    @@ -10237,7 +10237,7 @@

    Arguments

    @@ -10292,7 +10292,7 @@

    Arguments

    @@ -10417,7 +10417,7 @@

    Arguments

    @@ -10457,7 +10457,7 @@

    Arguments

    @@ -10512,7 +10512,7 @@

    Arguments

    @@ -10582,7 +10582,7 @@

    Arguments

    @@ -10622,7 +10622,7 @@

    Arguments

    @@ -10677,7 +10677,7 @@

    Arguments

    @@ -10777,7 +10777,7 @@

    Arguments

    @@ -10852,7 +10852,7 @@

    Arguments

    @@ -10867,7 +10867,7 @@

    Arguments

    @@ -10942,7 +10942,7 @@

    Arguments

    @@ -10957,7 +10957,7 @@

    Arguments

    @@ -11162,7 +11162,7 @@

    Arguments

    @@ -11177,7 +11177,7 @@

    Arguments

    @@ -11232,7 +11232,7 @@

    Arguments

    @@ -11247,7 +11247,7 @@

    Arguments

    @@ -11302,7 +11302,7 @@

    Arguments

    @@ -11372,7 +11372,7 @@

    Arguments

    @@ -11442,7 +11442,7 @@

    Arguments

    @@ -11512,7 +11512,7 @@

    Arguments

    @@ -11582,7 +11582,7 @@

    Arguments

    @@ -11652,7 +11652,7 @@

    Arguments

    @@ -11722,7 +11722,7 @@

    Arguments

    @@ -11777,7 +11777,7 @@

    Arguments

    @@ -11832,7 +11832,7 @@

    Arguments

    @@ -12167,7 +12167,7 @@

    Arguments

    @@ -12182,7 +12182,7 @@

    Arguments

    @@ -12197,7 +12197,7 @@

    Arguments

    @@ -12212,7 +12212,7 @@

    Arguments

    @@ -12252,7 +12252,7 @@

    Arguments

    @@ -12307,7 +12307,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_array_list_methods.html b/develop/module/dbcsr_array_list_methods.html index 152b7d1df31..7c9bc3426a6 100644 --- a/develop/module/dbcsr_array_list_methods.html +++ b/develop/module/dbcsr_array_list_methods.html @@ -113,7 +113,7 @@

    Variables

    @@ -207,9 +207,9 @@

    Uses

    @@ -234,7 +234,7 @@

    Variables

    @@ -286,7 +286,7 @@

    Arguments

    @@ -301,7 +301,7 @@

    Arguments

    @@ -316,7 +316,7 @@

    Arguments

    @@ -397,7 +397,7 @@

    Components

    @@ -446,7 +446,7 @@

    Arguments

    @@ -491,7 +491,7 @@

    Arguments

    @@ -506,7 +506,7 @@

    Arguments

    @@ -551,7 +551,7 @@

    Arguments

    @@ -611,7 +611,7 @@

    Arguments

    @@ -656,7 +656,7 @@

    Arguments

    @@ -827,7 +827,7 @@

    Arguments

    @@ -842,7 +842,7 @@

    Arguments

    @@ -942,7 +942,7 @@

    Arguments

    @@ -982,7 +982,7 @@

    Arguments

    @@ -1097,7 +1097,7 @@

    Arguments

    @@ -1112,7 +1112,7 @@

    Arguments

    @@ -1142,7 +1142,7 @@

    Arguments

    @@ -1182,7 +1182,7 @@

    Arguments

    @@ -1197,7 +1197,7 @@

    Arguments

    @@ -1212,7 +1212,7 @@

    Arguments

    @@ -1337,7 +1337,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_array_sort.html b/develop/module/dbcsr_array_sort.html index 77d73a04454..664dd9993be 100644 --- a/develop/module/dbcsr_array_sort.html +++ b/develop/module/dbcsr_array_sort.html @@ -113,8 +113,8 @@

    Variables

    @@ -201,7 +201,7 @@

    Variables

    @@ -218,7 +218,7 @@

    Variables

    @@ -267,7 +267,7 @@

    Arguments

    @@ -282,7 +282,7 @@

    Arguments

    @@ -297,7 +297,7 @@

    Arguments

    @@ -338,7 +338,7 @@

    Arguments

    @@ -353,7 +353,7 @@

    Arguments

    @@ -368,7 +368,7 @@

    Arguments

    @@ -424,7 +424,7 @@

    Arguments

    @@ -439,7 +439,7 @@

    Arguments

    @@ -454,7 +454,7 @@

    Arguments

    @@ -495,7 +495,7 @@

    Arguments

    @@ -510,7 +510,7 @@

    Arguments

    @@ -525,7 +525,7 @@

    Arguments

    @@ -581,7 +581,7 @@

    Arguments

    @@ -596,7 +596,7 @@

    Arguments

    @@ -611,7 +611,7 @@

    Arguments

    @@ -652,7 +652,7 @@

    Arguments

    @@ -667,7 +667,7 @@

    Arguments

    @@ -682,7 +682,7 @@

    Arguments

    @@ -738,7 +738,7 @@

    Arguments

    @@ -753,7 +753,7 @@

    Arguments

    @@ -768,7 +768,7 @@

    Arguments

    @@ -809,7 +809,7 @@

    Arguments

    @@ -824,7 +824,7 @@

    Arguments

    @@ -839,7 +839,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_array_types.html b/develop/module/dbcsr_array_types.html index 356afecd5c5..58c87e8691d 100644 --- a/develop/module/dbcsr_array_types.html +++ b/develop/module/dbcsr_array_types.html @@ -245,7 +245,7 @@

    Arguments

    @@ -260,7 +260,7 @@

    Arguments

    @@ -275,7 +275,7 @@

    Arguments

    @@ -314,7 +314,7 @@

    Arguments

    @@ -329,7 +329,7 @@

    Arguments

    @@ -344,7 +344,7 @@

    Arguments

    @@ -393,7 +393,7 @@

    Arguments

    @@ -442,7 +442,7 @@

    Arguments

    @@ -491,7 +491,7 @@

    Arguments

    @@ -540,7 +540,7 @@

    Arguments

    @@ -594,7 +594,7 @@

    Arguments

    @@ -648,7 +648,7 @@

    Arguments

    @@ -830,7 +830,7 @@

    Arguments

    @@ -889,7 +889,7 @@

    Arguments

    @@ -961,7 +961,7 @@

    Components

    @@ -1027,7 +1027,7 @@

    Components

    @@ -1076,7 +1076,7 @@

    Arguments

    @@ -1121,7 +1121,7 @@

    Arguments

    @@ -1166,7 +1166,7 @@

    Arguments

    @@ -1331,7 +1331,7 @@

    Arguments

    @@ -1391,7 +1391,7 @@

    Arguments

    @@ -1456,7 +1456,7 @@

    Arguments

    @@ -1471,7 +1471,7 @@

    Arguments

    @@ -1486,7 +1486,7 @@

    Arguments

    @@ -1526,7 +1526,7 @@

    Arguments

    @@ -1541,7 +1541,7 @@

    Arguments

    @@ -1556,7 +1556,7 @@

    Arguments

    @@ -1596,7 +1596,7 @@

    Arguments

    @@ -1636,7 +1636,7 @@

    Arguments

    @@ -1676,7 +1676,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_base_hooks.html b/develop/module/dbcsr_base_hooks.html index b78a5b5e7d6..b3d9254297e 100644 --- a/develop/module/dbcsr_base_hooks.html +++ b/develop/module/dbcsr_base_hooks.html @@ -338,7 +338,7 @@

    Arguments

    @@ -401,7 +401,7 @@

    Arguments

    @@ -449,7 +449,7 @@

    Arguments

    @@ -464,7 +464,7 @@

    Arguments

    @@ -512,7 +512,7 @@

    Arguments

    @@ -560,7 +560,7 @@

    Arguments

    @@ -640,7 +640,7 @@

    Arguments

    @@ -695,7 +695,7 @@

    Arguments

    @@ -735,7 +735,7 @@

    Arguments

    @@ -750,7 +750,7 @@

    Arguments

    @@ -790,7 +790,7 @@

    Arguments

    @@ -830,7 +830,7 @@

    Arguments

    @@ -885,7 +885,7 @@

    Arguments

    @@ -915,7 +915,7 @@

    Arguments

    @@ -955,7 +955,7 @@

    Arguments

    @@ -985,7 +985,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_blas_operations.html b/develop/module/dbcsr_blas_operations.html index cd6ff711ae3..79ee94fb71c 100644 --- a/develop/module/dbcsr_blas_operations.html +++ b/develop/module/dbcsr_blas_operations.html @@ -113,7 +113,7 @@

    Variables

    @@ -162,8 +162,8 @@

    Uses

    @@ -241,7 +241,7 @@

    Arguments

    @@ -260,7 +260,7 @@

    Arguments

    @@ -279,7 +279,7 @@

    Arguments

    @@ -298,7 +298,7 @@

    Arguments

    @@ -336,7 +336,7 @@

    Arguments

    @@ -376,7 +376,7 @@

    Arguments

    @@ -391,7 +391,7 @@

    Arguments

    @@ -406,7 +406,7 @@

    Arguments

    @@ -421,7 +421,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_block_access.html b/develop/module/dbcsr_block_access.html index 5eccc00bbe2..2a5127beb9c 100644 --- a/develop/module/dbcsr_block_access.html +++ b/develop/module/dbcsr_block_access.html @@ -113,17 +113,17 @@

    Variables

    @@ -141,9 +141,9 @@

    Interfaces

    @@ -174,33 +174,33 @@

    Subroutines

    dbcsr_remove_blockdbcsr_get_block_p_areadbcsr_put_block_area - dbcsr_reserve_all_blocks - dbcsr_reserve_diag_blocks - dbcsr_reserve_blocks + dbcsr_reserve_all_blocks + dbcsr_reserve_diag_blocks + dbcsr_reserve_blocksdbcsr_set_block_pointer_any - dbcsr_get_2d_block_p_d - dbcsr_get_block_p_d - dbcsr_reserve_block2d_d - dbcsr_put_block2d_d - dbcsr_put_block_d + dbcsr_get_2d_block_p_d + dbcsr_get_block_p_d + dbcsr_reserve_block2d_d + dbcsr_put_block2d_d + dbcsr_put_block_ddbcsr_set_block_pointer_2d_d - dbcsr_get_2d_block_p_s - dbcsr_get_block_p_s - dbcsr_reserve_block2d_s - dbcsr_put_block2d_s - dbcsr_put_block_s + dbcsr_get_2d_block_p_s + dbcsr_get_block_p_s + dbcsr_reserve_block2d_s + dbcsr_put_block2d_s + dbcsr_put_block_sdbcsr_set_block_pointer_2d_s - dbcsr_get_2d_block_p_z - dbcsr_get_block_p_z - dbcsr_reserve_block2d_z - dbcsr_put_block2d_z - dbcsr_put_block_z + dbcsr_get_2d_block_p_z + dbcsr_get_block_p_z + dbcsr_reserve_block2d_z + dbcsr_put_block2d_z + dbcsr_put_block_zdbcsr_set_block_pointer_2d_z - dbcsr_get_2d_block_p_c - dbcsr_get_block_p_c - dbcsr_reserve_block2d_c - dbcsr_put_block2d_c - dbcsr_put_block_c + dbcsr_get_2d_block_p_c + dbcsr_get_block_p_c + dbcsr_reserve_block2d_c + dbcsr_put_block2d_c + dbcsr_put_block_cdbcsr_set_block_pointer_2d_c @@ -227,22 +227,22 @@

    Uses

    @@ -267,7 +267,7 @@

    Variables

    @@ -284,7 +284,7 @@

    Variables

    @@ -301,7 +301,7 @@

    Variables

    @@ -318,7 +318,7 @@

    Variables

    @@ -335,7 +335,7 @@

    Variables

    @@ -352,7 +352,7 @@

    Variables

    @@ -369,7 +369,7 @@

    Variables

    @@ -386,7 +386,7 @@

    Variables

    @@ -403,7 +403,7 @@

    Variables

    @@ -420,7 +420,7 @@

    Variables

    @@ -437,7 +437,7 @@

    Variables

    @@ -463,14 +463,14 @@

    Variables

    Interfaces

    - -

    public interface dbcsr_get_block_p + +

    public interface dbcsr_get_block_p

    • - private subroutine dbcsr_get_block_p_d(matrix, row, col, block, tr, found, row_size, col_size) + private subroutine dbcsr_get_block_p_d(matrix, row, col, block, tr, found, row_size, col_size)

      @@ -489,7 +489,7 @@

      Arguments

    @@ -504,7 +504,7 @@

    Arguments

    @@ -520,7 +520,7 @@

    Arguments

    @@ -536,7 +536,7 @@

    Arguments

    @@ -551,7 +551,7 @@

    Arguments

    @@ -566,7 +566,7 @@

    Arguments

    @@ -581,7 +581,7 @@

    Arguments

    @@ -597,7 +597,7 @@

    Arguments

    @@ -618,7 +618,7 @@

    Arguments

  • - private subroutine dbcsr_get_block_p_s(matrix, row, col, block, tr, found, row_size, col_size) + private subroutine dbcsr_get_block_p_s(matrix, row, col, block, tr, found, row_size, col_size)

    @@ -637,7 +637,7 @@

    Arguments

  • @@ -652,7 +652,7 @@

    Arguments

    @@ -668,7 +668,7 @@

    Arguments

    @@ -684,7 +684,7 @@

    Arguments

    @@ -699,7 +699,7 @@

    Arguments

    @@ -714,7 +714,7 @@

    Arguments

    @@ -729,7 +729,7 @@

    Arguments

    @@ -745,7 +745,7 @@

    Arguments

    @@ -766,7 +766,7 @@

    Arguments

  • - private subroutine dbcsr_get_block_p_z(matrix, row, col, block, tr, found, row_size, col_size) + private subroutine dbcsr_get_block_p_z(matrix, row, col, block, tr, found, row_size, col_size)

    @@ -785,7 +785,7 @@

    Arguments

  • @@ -800,7 +800,7 @@

    Arguments

    @@ -816,7 +816,7 @@

    Arguments

    @@ -832,7 +832,7 @@

    Arguments

    @@ -847,7 +847,7 @@

    Arguments

    @@ -862,7 +862,7 @@

    Arguments

    @@ -877,7 +877,7 @@

    Arguments

    @@ -893,7 +893,7 @@

    Arguments

    @@ -914,7 +914,7 @@

    Arguments

  • - private subroutine dbcsr_get_block_p_c(matrix, row, col, block, tr, found, row_size, col_size) + private subroutine dbcsr_get_block_p_c(matrix, row, col, block, tr, found, row_size, col_size)

    @@ -933,7 +933,7 @@

    Arguments

  • @@ -948,7 +948,7 @@

    Arguments

    @@ -964,7 +964,7 @@

    Arguments

    @@ -980,7 +980,7 @@

    Arguments

    @@ -995,7 +995,7 @@

    Arguments

    @@ -1010,7 +1010,7 @@

    Arguments

    @@ -1025,7 +1025,7 @@

    Arguments

    @@ -1041,7 +1041,7 @@

    Arguments

    @@ -1062,7 +1062,7 @@

    Arguments

  • - private subroutine dbcsr_get_2d_block_p_d(matrix, row, col, block, tr, found, row_size, col_size) + private subroutine dbcsr_get_2d_block_p_d(matrix, row, col, block, tr, found, row_size, col_size)

    @@ -1081,7 +1081,7 @@

    Arguments

  • @@ -1096,7 +1096,7 @@

    Arguments

    @@ -1112,7 +1112,7 @@

    Arguments

    @@ -1128,7 +1128,7 @@

    Arguments

    @@ -1143,7 +1143,7 @@

    Arguments

    @@ -1158,7 +1158,7 @@

    Arguments

    @@ -1173,7 +1173,7 @@

    Arguments

    @@ -1189,7 +1189,7 @@

    Arguments

    @@ -1210,7 +1210,7 @@

    Arguments

  • - private subroutine dbcsr_get_2d_block_p_s(matrix, row, col, block, tr, found, row_size, col_size) + private subroutine dbcsr_get_2d_block_p_s(matrix, row, col, block, tr, found, row_size, col_size)

    @@ -1229,7 +1229,7 @@

    Arguments

  • @@ -1244,7 +1244,7 @@

    Arguments

    @@ -1260,7 +1260,7 @@

    Arguments

    @@ -1276,7 +1276,7 @@

    Arguments

    @@ -1291,7 +1291,7 @@

    Arguments

    @@ -1306,7 +1306,7 @@

    Arguments

    @@ -1321,7 +1321,7 @@

    Arguments

    @@ -1337,7 +1337,7 @@

    Arguments

    @@ -1358,7 +1358,7 @@

    Arguments

  • - private subroutine dbcsr_get_2d_block_p_z(matrix, row, col, block, tr, found, row_size, col_size) + private subroutine dbcsr_get_2d_block_p_z(matrix, row, col, block, tr, found, row_size, col_size)

    @@ -1377,7 +1377,7 @@

    Arguments

  • @@ -1392,7 +1392,7 @@

    Arguments

    @@ -1408,7 +1408,7 @@

    Arguments

    @@ -1424,7 +1424,7 @@

    Arguments

    @@ -1439,7 +1439,7 @@

    Arguments

    @@ -1454,7 +1454,7 @@

    Arguments

    @@ -1469,7 +1469,7 @@

    Arguments

    @@ -1485,7 +1485,7 @@

    Arguments

    @@ -1506,7 +1506,7 @@

    Arguments

  • - private subroutine dbcsr_get_2d_block_p_c(matrix, row, col, block, tr, found, row_size, col_size) + private subroutine dbcsr_get_2d_block_p_c(matrix, row, col, block, tr, found, row_size, col_size)

    @@ -1525,7 +1525,7 @@

    Arguments

  • @@ -1540,7 +1540,7 @@

    Arguments

    @@ -1556,7 +1556,7 @@

    Arguments

    @@ -1572,7 +1572,7 @@

    Arguments

    @@ -1587,7 +1587,7 @@

    Arguments

    @@ -1602,7 +1602,7 @@

    Arguments

    @@ -1617,7 +1617,7 @@

    Arguments

    @@ -1633,7 +1633,7 @@

    Arguments

    @@ -1676,7 +1676,7 @@

    Arguments

    @@ -1691,7 +1691,7 @@

    Arguments

    @@ -1707,7 +1707,7 @@

    Arguments

    @@ -1723,7 +1723,7 @@

    Arguments

    @@ -1738,7 +1738,7 @@

    Arguments

    @@ -1754,7 +1754,7 @@

    Arguments

    @@ -1770,7 +1770,7 @@

    Arguments

    @@ -1786,7 +1786,7 @@

    Arguments

    @@ -1810,8 +1810,8 @@

    Arguments

    - -

    public interface dbcsr_put_block + +

    public interface dbcsr_put_block

      @@ -1839,7 +1839,7 @@

      Arguments

    @@ -1854,7 +1854,7 @@

    Arguments

    @@ -1869,7 +1869,7 @@

    Arguments

    @@ -1884,7 +1884,7 @@

    Arguments

    @@ -1914,7 +1914,7 @@

    Arguments

    @@ -1929,7 +1929,7 @@

    Arguments

    @@ -1944,7 +1944,7 @@

    Arguments

    @@ -1959,7 +1959,7 @@

    Arguments

    @@ -1979,7 +1979,7 @@

    Arguments

  • - private subroutine dbcsr_put_block_d(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale) + private subroutine dbcsr_put_block_d(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale)

    @@ -2000,7 +2000,7 @@

    Arguments

  • @@ -2015,7 +2015,7 @@

    Arguments

    @@ -2031,7 +2031,7 @@

    Arguments

    @@ -2047,7 +2047,7 @@

    Arguments

    @@ -2077,7 +2077,7 @@

    Arguments

    @@ -2093,7 +2093,7 @@

    Arguments

    @@ -2109,7 +2109,7 @@

    Arguments

    @@ -2124,7 +2124,7 @@

    Arguments

    @@ -2144,7 +2144,7 @@

    Arguments

  • - private subroutine dbcsr_put_block_s(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale) + private subroutine dbcsr_put_block_s(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale)

    @@ -2165,7 +2165,7 @@

    Arguments

  • @@ -2180,7 +2180,7 @@

    Arguments

    @@ -2196,7 +2196,7 @@

    Arguments

    @@ -2212,7 +2212,7 @@

    Arguments

    @@ -2242,7 +2242,7 @@

    Arguments

    @@ -2258,7 +2258,7 @@

    Arguments

    @@ -2274,7 +2274,7 @@

    Arguments

    @@ -2289,7 +2289,7 @@

    Arguments

    @@ -2309,7 +2309,7 @@

    Arguments

  • - private subroutine dbcsr_put_block_z(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale) + private subroutine dbcsr_put_block_z(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale)

    @@ -2330,7 +2330,7 @@

    Arguments

  • @@ -2345,7 +2345,7 @@

    Arguments

    @@ -2361,7 +2361,7 @@

    Arguments

    @@ -2377,7 +2377,7 @@

    Arguments

    @@ -2407,7 +2407,7 @@

    Arguments

    @@ -2423,7 +2423,7 @@

    Arguments

    @@ -2439,7 +2439,7 @@

    Arguments

    @@ -2454,7 +2454,7 @@

    Arguments

    @@ -2474,7 +2474,7 @@

    Arguments

  • - private subroutine dbcsr_put_block_c(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale) + private subroutine dbcsr_put_block_c(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale)

    @@ -2495,7 +2495,7 @@

    Arguments

  • @@ -2510,7 +2510,7 @@

    Arguments

    @@ -2526,7 +2526,7 @@

    Arguments

    @@ -2542,7 +2542,7 @@

    Arguments

    @@ -2572,7 +2572,7 @@

    Arguments

    @@ -2588,7 +2588,7 @@

    Arguments

    @@ -2604,7 +2604,7 @@

    Arguments

    @@ -2619,7 +2619,7 @@

    Arguments

    @@ -2639,7 +2639,7 @@

    Arguments

  • - private subroutine dbcsr_put_block2d_d(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale) + private subroutine dbcsr_put_block2d_d(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale)

    @@ -2658,7 +2658,7 @@

    Arguments

  • @@ -2673,7 +2673,7 @@

    Arguments

    @@ -2689,7 +2689,7 @@

    Arguments

    @@ -2705,7 +2705,7 @@

    Arguments

    @@ -2735,7 +2735,7 @@

    Arguments

    @@ -2751,7 +2751,7 @@

    Arguments

    @@ -2767,7 +2767,7 @@

    Arguments

    @@ -2782,7 +2782,7 @@

    Arguments

    @@ -2802,7 +2802,7 @@

    Arguments

  • - private subroutine dbcsr_put_block2d_s(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale) + private subroutine dbcsr_put_block2d_s(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale)

    @@ -2821,7 +2821,7 @@

    Arguments

  • @@ -2836,7 +2836,7 @@

    Arguments

    @@ -2852,7 +2852,7 @@

    Arguments

    @@ -2868,7 +2868,7 @@

    Arguments

    @@ -2898,7 +2898,7 @@

    Arguments

    @@ -2914,7 +2914,7 @@

    Arguments

    @@ -2930,7 +2930,7 @@

    Arguments

    @@ -2945,7 +2945,7 @@

    Arguments

    @@ -2965,7 +2965,7 @@

    Arguments

  • - private subroutine dbcsr_put_block2d_z(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale) + private subroutine dbcsr_put_block2d_z(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale)

    @@ -2984,7 +2984,7 @@

    Arguments

  • @@ -2999,7 +2999,7 @@

    Arguments

    @@ -3015,7 +3015,7 @@

    Arguments

    @@ -3031,7 +3031,7 @@

    Arguments

    @@ -3061,7 +3061,7 @@

    Arguments

    @@ -3077,7 +3077,7 @@

    Arguments

    @@ -3093,7 +3093,7 @@

    Arguments

    @@ -3108,7 +3108,7 @@

    Arguments

    @@ -3128,7 +3128,7 @@

    Arguments

  • - private subroutine dbcsr_put_block2d_c(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale) + private subroutine dbcsr_put_block2d_c(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale)

    @@ -3147,7 +3147,7 @@

    Arguments

  • @@ -3162,7 +3162,7 @@

    Arguments

    @@ -3178,7 +3178,7 @@

    Arguments

    @@ -3194,7 +3194,7 @@

    Arguments

    @@ -3224,7 +3224,7 @@

    Arguments

    @@ -3240,7 +3240,7 @@

    Arguments

    @@ -3256,7 +3256,7 @@

    Arguments

    @@ -3271,7 +3271,7 @@

    Arguments

    @@ -3294,14 +3294,14 @@

    Arguments

    - -

    public interface dbcsr_reserve_block2d + +

    public interface dbcsr_reserve_block2d

    @@ -3335,7 +3335,7 @@

    Arguments

    @@ -3351,7 +3351,7 @@

    Arguments

    @@ -3367,7 +3367,7 @@

    Arguments

    @@ -3382,7 +3382,7 @@

    Arguments

    @@ -3397,7 +3397,7 @@

    Arguments

    @@ -3417,7 +3417,7 @@

    Arguments

  • - private subroutine dbcsr_reserve_block2d_d(matrix, row, col, block, transposed, existed) + private subroutine dbcsr_reserve_block2d_d(matrix, row, col, block, transposed, existed)

    @@ -3436,7 +3436,7 @@

    Arguments

  • @@ -3451,7 +3451,7 @@

    Arguments

    @@ -3467,7 +3467,7 @@

    Arguments

    @@ -3483,7 +3483,7 @@

    Arguments

    @@ -3498,7 +3498,7 @@

    Arguments

    @@ -3513,7 +3513,7 @@

    Arguments

    @@ -3533,7 +3533,7 @@

    Arguments

  • - private subroutine dbcsr_reserve_block2d_c(matrix, row, col, block, transposed, existed) + private subroutine dbcsr_reserve_block2d_c(matrix, row, col, block, transposed, existed)

    @@ -3552,7 +3552,7 @@

    Arguments

  • @@ -3567,7 +3567,7 @@

    Arguments

    @@ -3583,7 +3583,7 @@

    Arguments

    @@ -3599,7 +3599,7 @@

    Arguments

    @@ -3614,7 +3614,7 @@

    Arguments

    @@ -3629,7 +3629,7 @@

    Arguments

    @@ -3649,7 +3649,7 @@

    Arguments

  • - private subroutine dbcsr_reserve_block2d_z(matrix, row, col, block, transposed, existed) + private subroutine dbcsr_reserve_block2d_z(matrix, row, col, block, transposed, existed)

    @@ -3668,7 +3668,7 @@

    Arguments

  • @@ -3683,7 +3683,7 @@

    Arguments

    @@ -3699,7 +3699,7 @@

    Arguments

    @@ -3715,7 +3715,7 @@

    Arguments

    @@ -3730,7 +3730,7 @@

    Arguments

    @@ -3745,7 +3745,7 @@

    Arguments

    @@ -3794,7 +3794,7 @@

    Arguments

    @@ -3824,7 +3824,7 @@

    Arguments

    @@ -3840,7 +3840,7 @@

    Arguments

    @@ -3910,7 +3910,7 @@

    Arguments

    @@ -3940,7 +3940,7 @@

    Arguments

    @@ -3956,7 +3956,7 @@

    Arguments

    @@ -4011,7 +4011,7 @@

    Arguments

    @@ -4041,7 +4041,7 @@

    Arguments

    @@ -4057,7 +4057,7 @@

    Arguments

    @@ -4112,7 +4112,7 @@

    Arguments

    @@ -4142,7 +4142,7 @@

    Arguments

    @@ -4158,7 +4158,7 @@

    Arguments

    @@ -4213,7 +4213,7 @@

    Arguments

    @@ -4243,7 +4243,7 @@

    Arguments

    @@ -4259,7 +4259,7 @@

    Arguments

    @@ -4327,7 +4327,7 @@

    Components

    @@ -4344,7 +4344,7 @@

    Components

    @@ -4361,7 +4361,7 @@

    Components

    @@ -4378,7 +4378,7 @@

    Components

    @@ -4395,7 +4395,7 @@

    Components

    @@ -4444,7 +4444,7 @@

    Components

    @@ -4461,7 +4461,7 @@

    Components

    @@ -4478,7 +4478,7 @@

    Components

    @@ -4495,7 +4495,7 @@

    Components

    @@ -4512,7 +4512,7 @@

    Components

    @@ -4529,7 +4529,7 @@

    Components

    @@ -4546,7 +4546,7 @@

    Components

    @@ -4597,7 +4597,7 @@

    Arguments

    @@ -4612,7 +4612,7 @@

    Arguments

    @@ -4628,7 +4628,7 @@

    Arguments

    @@ -4660,7 +4660,7 @@

    Arguments

    @@ -4700,7 +4700,7 @@

    Arguments

    @@ -4715,7 +4715,7 @@

    Arguments

    @@ -4731,7 +4731,7 @@

    Arguments

    @@ -4747,7 +4747,7 @@

    Arguments

    @@ -4762,7 +4762,7 @@

    Arguments

    @@ -4778,7 +4778,7 @@

    Arguments

    @@ -4794,7 +4794,7 @@

    Arguments

    @@ -4810,7 +4810,7 @@

    Arguments

    @@ -4854,7 +4854,7 @@

    Arguments

    @@ -4869,7 +4869,7 @@

    Arguments

    @@ -4884,7 +4884,7 @@

    Arguments

    @@ -4899,7 +4899,7 @@

    Arguments

    @@ -4929,7 +4929,7 @@

    Arguments

    @@ -4944,7 +4944,7 @@

    Arguments

    @@ -4959,7 +4959,7 @@

    Arguments

    @@ -4974,7 +4974,7 @@

    Arguments

    @@ -4995,7 +4995,7 @@

    Arguments

    -

    public subroutine dbcsr_reserve_all_blocks(matrix) +

    public subroutine dbcsr_reserve_all_blocks(matrix)

    @@ -5015,7 +5015,7 @@

    Arguments

    @@ -5036,7 +5036,7 @@

    Arguments

    -

    public subroutine dbcsr_reserve_diag_blocks(matrix) +

    public subroutine dbcsr_reserve_diag_blocks(matrix)

    @@ -5055,7 +5055,7 @@

    Arguments

    @@ -5076,11 +5076,11 @@

    Arguments

    -

    public subroutine dbcsr_reserve_blocks(matrix, rows, columns, blk_pointers) +

    public subroutine dbcsr_reserve_blocks(matrix, rows, columns, blk_pointers)

    -

    Inserts block reservations into a matrix, avoiding the work matrix.

    Read more… +

    Inserts block reservations into a matrix, avoiding the work matrix.

    Read more…

    Arguments

    - - integer, + + logical, intent(inout),intent(inout) - DIMENSION(2) + ::arra - +

    Logicals to swap +Logicals to swap

    +
    + + logical, + intent(inout) + + ::b +

    Logicals to swap +Logicals to swap

    - + character(len=*), intent(in)
    - + integer, intent(out)
    - + integer, intent(in)
    csr_create_newdbcsr_csr_conversionsdbcsr_api Subroutine

    Create a new CSR matrix and allocate all internal data (excluding dbcsr_mapping)

    csr_create_newdbcsr_apidbcsr_csr_conversions Subroutine

    Create a new CSR matrix and allocate all internal data (excluding dbcsr_mapping)

    csr_create_nzerow
    dbcsr_complete_redistributedbcsr_apiSubroutine
    dbcsr_complete_redistribute dbcsr_transformations Subroutine

    Fully redistributes a DBCSR matrix. The new distribution may be arbitrary as long as the total number full rows and columns matches that of the existing matrix.

    dbcsr_complete_redistributedbcsr_apiSubroutine
    dbcsr_conform_scalar
    dbcsr_distributedbcsr_transformationsdbcsr_api Subroutine

    Distributes a matrix that is currently replicated.

    dbcsr_distributedbcsr_apidbcsr_transformations Subroutine

    Distributes a matrix that is currently replicated.

    dbcsr_distribution
    dbcsr_distribution_getdbcsr_dist_methodsdbcsr_api Subroutine

    Get distribution parameters

    dbcsr_distribution_getdbcsr_apidbcsr_dist_methods Subroutine

    Get distribution parameters

    dbcsr_distribution_get_num_images_1d
    dbcsr_distribution_holddbcsr_dist_methodsdbcsr_api Subroutine

    Marks another use of the distribution

    dbcsr_distribution_holddbcsr_apidbcsr_dist_methods Subroutine

    Marks another use of the distribution

    dbcsr_distribution_local_cols dbcsr_dist_methods Function
    dbcsr_distribution_newdbcsr_dist_methodsInterface
    dbcsr_distribution_new dbcsr_api Subroutine

    Creates new distribution from blockr distributions

    dbcsr_distribution_newdbcsr_dist_methodsInterface
    dbcsr_distribution_new_low
    dbcsr_get_2d_block_p_cdbcsr_block_accessSubroutine

    Gets a 2-d block from a dbcsr matrix

    dbcsr_get_2d_block_p_c dbcsr_api Subroutine
    dbcsr_get_2d_block_p_ddbcsr_get_2d_block_p_c dbcsr_block_access Subroutine

    Gets a 2-d block from a dbcsr matrix

    dbcsr_get_2d_block_p_ddbcsr_get_2d_block_p_d dbcsr_api Subroutine
    dbcsr_get_2d_block_p_sdbcsr_get_2d_block_p_d dbcsr_block_access Subroutine

    Gets a 2-d block from a dbcsr matrix

    dbcsr_get_2d_block_p_sdbcsr_get_2d_block_p_s dbcsr_api Subroutine
    dbcsr_get_2d_block_p_zdbcsr_get_2d_block_p_s dbcsr_block_access Subroutine

    Gets a 2-d block from a dbcsr matrix

    dbcsr_get_2d_block_p_zdbcsr_get_2d_block_p_z dbcsr_api Subroutine
    dbcsr_get_2d_block_p_zdbcsr_block_accessSubroutine

    Gets a 2-d block from a dbcsr matrix

    dbcsr_get_block_diag
    dbcsr_get_block_pdbcsr_block_accessdbcsr_api Interface
    dbcsr_get_block_pdbcsr_apidbcsr_block_access Interface
    dbcsr_get_block_p_cdbcsr_block_accessSubroutine

    Gets a 1-d block from a dbcsr matrix

    dbcsr_get_block_p_c dbcsr_api Subroutine
    dbcsr_get_block_p_ddbcsr_get_block_p_c dbcsr_block_access Subroutine

    Gets a 1-d block from a dbcsr matrix

    dbcsr_get_block_p_ddbcsr_get_block_p_d dbcsr_api Subroutine
    dbcsr_get_block_p_sdbcsr_get_block_p_d dbcsr_block_access Subroutine

    Gets a 1-d block from a dbcsr matrix

    dbcsr_get_block_p_sdbcsr_get_block_p_s dbcsr_api Subroutine
    dbcsr_get_block_p_zdbcsr_get_block_p_s dbcsr_block_access Subroutine

    Gets a 1-d block from a dbcsr matrix

    dbcsr_get_block_p_zdbcsr_get_block_p_z dbcsr_api Subroutine
    dbcsr_get_block_p_zdbcsr_block_accessSubroutine

    Gets a 1-d block from a dbcsr matrix

    dbcsr_get_data
    dbcsr_get_data_pdbcsr_data_methods_lowdbcsr_api Interface
    dbcsr_get_data_pdbcsr_apidbcsr_data_methods_low Interface
    dbcsr_get_stored_coordinatesdbcsr_dist_operationsdbcsr_api Subroutine

    Sets the correct source matrix, row, column and possible data -transposition for a given matrix and matrix logical row and -column.

    dbcsr_get_stored_coordinatesdbcsr_apidbcsr_dist_operations Subroutine

    Sets the correct source matrix, row, column and possible data +transposition for a given matrix and matrix logical row and +column.

    dbcsr_get_wms_data_c
    dbcsr_iterator_blocks_leftdbcsr_apidbcsr_iterator_operations Function

    Returns whether there any blocks left in the iterator.

    dbcsr_iterator_blocks_leftdbcsr_iterator_operationsdbcsr_api Function

    Returns whether there any blocks left in the iterator.

    dbcsr_iterator_next_1d_block_c
    dbcsr_iterator_next_blockdbcsr_apidbcsr_iterator_operations Interface
    dbcsr_iterator_next_blockdbcsr_iterator_operationsdbcsr_api Interface
    dbcsr_iterator_startdbcsr_apidbcsr_iterator_operations Subroutine

    Sets up an iterator

    Read more…
    dbcsr_iterator_startdbcsr_iterator_operationsdbcsr_api Subroutine

    Sets up an iterator

    Read more…
    dbcsr_iterator_stopdbcsr_apidbcsr_iterator_operations Subroutine

    Stops up an iterator

    dbcsr_iterator_stopdbcsr_iterator_operationsdbcsr_api Subroutine

    Stops up an iterator

    dbcsr_lapack_larnv
    dbcsr_mp_grid_setupdbcsr_mp_methodsdbcsr_api Subroutine

    Sets up MPI cartesian process grid

    dbcsr_mp_grid_setupdbcsr_apidbcsr_mp_methods Subroutine

    Sets up MPI cartesian process grid

    dbcsr_mp_group
    dbcsr_multiplydbcsr_multiply_apidbcsr_api Interface
    dbcsr_multiplydbcsr_apidbcsr_multiply_api Interface
    dbcsr_multiply_cdbcsr_multiply_apidbcsr_api Subroutine
    dbcsr_multiply_cdbcsr_apidbcsr_multiply_api Subroutine
    dbcsr_multiply_ddbcsr_multiply_apidbcsr_api Subroutine
    dbcsr_multiply_ddbcsr_apidbcsr_multiply_api Subroutine
    dbcsr_multiply_sdbcsr_multiply_apidbcsr_api Subroutine
    dbcsr_multiply_sdbcsr_apidbcsr_multiply_api Subroutine
    dbcsr_multiply_zdbcsr_multiply_apidbcsr_api Subroutine
    dbcsr_multiply_zdbcsr_apidbcsr_multiply_api Subroutine
    dbcsr_put_blockdbcsr_block_accessdbcsr_api Interface
    dbcsr_put_blockdbcsr_apidbcsr_block_access Interface
    dbcsr_put_block2d_cdbcsr_block_accessSubroutine

    Put a 2-D block in a DBCSR matrix

    dbcsr_put_block2d_c dbcsr_api Subroutine
    dbcsr_put_block2d_ddbcsr_put_block2d_c dbcsr_block_access Subroutine

    Put a 2-D block in a DBCSR matrix

    dbcsr_put_block2d_ddbcsr_put_block2d_d dbcsr_api Subroutine
    dbcsr_put_block2d_sdbcsr_put_block2d_d dbcsr_block_access Subroutine

    Put a 2-D block in a DBCSR matrix

    dbcsr_put_block2d_sdbcsr_put_block2d_s dbcsr_api Subroutine
    dbcsr_put_block2d_zdbcsr_put_block2d_s dbcsr_block_access Subroutine

    Put a 2-D block in a DBCSR matrix

    dbcsr_put_block2d_zdbcsr_put_block2d_z dbcsr_api Subroutine
    dbcsr_put_block2d_zdbcsr_block_accessSubroutine

    Put a 2-D block in a DBCSR matrix

    dbcsr_put_block_area
    dbcsr_put_block_cdbcsr_block_accessSubroutine

    Inserts a block in a dbcsr matrix. - If the block exists, the current data is overwritten.

    Read more…
    dbcsr_put_block_c dbcsr_api Subroutine
    dbcsr_put_block_ddbcsr_put_block_c dbcsr_block_access Subroutine

    Inserts a block in a dbcsr matrix. - If the block exists, the current data is overwritten.

    Read more…
    dbcsr_put_block_ddbcsr_put_block_d dbcsr_api Subroutine
    dbcsr_put_block_sdbcsr_put_block_d dbcsr_block_access Subroutine

    Inserts a block in a dbcsr matrix. - If the block exists, the current data is overwritten.

    Read more…
    dbcsr_put_block_sdbcsr_put_block_s dbcsr_api Subroutine
    dbcsr_put_block_zdbcsr_put_block_s dbcsr_block_access Subroutine

    Inserts a block in a dbcsr matrix. - If the block exists, the current data is overwritten.

    Read more…
    dbcsr_put_block_zdbcsr_put_block_z dbcsr_api Subroutine
    dbcsr_put_block_zdbcsr_block_accessSubroutine

    Inserts a block in a dbcsr matrix. + If the block exists, the current data is overwritten.

    Read more…
    dbcsr_random_dist
    dbcsr_replicate_alldbcsr_transformationsdbcsr_api Subroutine

    Replicates a DBCSR on all processors.

    dbcsr_replicate_alldbcsr_apidbcsr_transformations Subroutine

    Replicates a DBCSR on all processors.

    dbcsr_repoint_index
    dbcsr_reserve_all_blocksdbcsr_apiSubroutine
    dbcsr_reserve_all_blocks dbcsr_block_access Subroutine

    Inserts all blocks of a dbcsr matrix to make it a full matrix. Thus obviously not linear scaling.

    dbcsr_reserve_all_blocksdbcsr_reserve_block2d dbcsr_apiSubroutineInterface
    dbcsr_reserve_block2ddbcsr_reserve_block2d dbcsr_block_access Interface
    dbcsr_reserve_block2ddbcsr_reserve_block2d_c dbcsr_apiInterfaceSubroutine
    dbcsr_reserve_block2d_cdbcsr_reserve_block2d_c dbcsr_block_access Subroutine

    Put a 2-D block in a DBCSR matrix using the btree

    dbcsr_reserve_block2d_cdbcsr_reserve_block2d_d dbcsr_api Subroutine
    dbcsr_reserve_block2d_ddbcsr_reserve_block2d_d dbcsr_block_access Subroutine

    Put a 2-D block in a DBCSR matrix using the btree

    dbcsr_reserve_block2d_ddbcsr_reserve_block2d_s dbcsr_api Subroutine
    dbcsr_reserve_block2d_sdbcsr_reserve_block2d_s dbcsr_block_access Subroutine

    Put a 2-D block in a DBCSR matrix using the btree

    dbcsr_reserve_block2d_sdbcsr_reserve_block2d_z dbcsr_api Subroutine
    dbcsr_reserve_block2d_zdbcsr_reserve_block2d_z dbcsr_block_access Subroutine

    Put a 2-D block in a DBCSR matrix using the btree

    dbcsr_reserve_block2d_zdbcsr_reserve_blocks dbcsr_api Subroutine
    dbcsr_reserve_blocksdbcsr_reserve_blocks dbcsr_block_access Subroutine

    Inserts block reservations into a matrix, avoiding the work matrix.

    Read more…

    Inserts block reservations into a matrix, avoiding the work matrix.

    Read more…
    dbcsr_reserve_blocksdbcsr_reserve_diag_blocks dbcsr_api Subroutine
    dbcsr_reserve_diag_blocksdbcsr_reserve_diag_blocks dbcsr_block_access Subroutine

    Inserts diagonal blocks of a dbcsr matrix to make it a matrix with at least all diagonal blocks present

    dbcsr_reserve_diag_blocksdbcsr_apiSubroutine
    dbcsr_reset_locals
    dbcsr_run_testsdbcsr_testsdbcsr_api Subroutine

    Performs a variety of matrix multiplies of same matrices on different -processor grids

    dbcsr_run_testsdbcsr_apidbcsr_tests Subroutine

    Performs a variety of matrix multiplies of same matrices on different +processor grids

    dbcsr_scalar
    dbcsr_to_csr_filterdbcsr_csr_conversionsdbcsr_api Subroutine

    Apply filtering threshold eps to DBCSR blocks in order to improve CSR sparsity (currently only used for testing purposes)

    dbcsr_to_csr_filterdbcsr_apidbcsr_csr_conversions Subroutine

    Apply filtering threshold eps to DBCSR blocks in order to improve CSR sparsity (currently only used for testing purposes)

    dbcsr_transposeddbcsr_transformationsdbcsr_api Subroutine

    Transposes a DBCSR matrix, keeping the same distribution

    dbcsr_transposeddbcsr_apidbcsr_transformations Subroutine

    Transposes a DBCSR matrix, keeping the same distribution

    dbcsr_triu
    prep_output_unitdbcsr_tensor_iodbcsr_tas_io Function
    prep_output_unitdbcsr_tas_iodbcsr_tensor_io Function
    random_distdbcsr_example_1dbcsr_example_3 Subroutine
    random_distdbcsr_example_3dbcsr_example_1 Subroutine
    reshape_mm_compatibledbcsr_tensorSubroutine

    Prepare tensor for contraction: redistribute to a 2d format which can be contracted by -matrix multiplication. This routine reshapes the two largest of the three tensors. Redistribution -is avoided if tensors already in a consistent layout.

    reshape_mm_compatible dbcsr_tas_mm Subroutine

    Reshape either matrix1 or matrix2 to make sure that their process grids are compatible with the same split factor.

    reshape_mm_smallreshape_mm_compatible dbcsr_tensor Subroutine

    Prepare tensor for contraction: redistribute to a 2d format which can be contracted by -matrix multiplication. This routine reshapes the smallest of the three tensors.

    reshape_mm_smallreshape_mm_small dbcsr_tas_mm Subroutine

    Make sure that smallest matrix involved in a multiplication is not split and bring it to the same process grid as the other 2 matrices.

    reshape_mm_smalldbcsr_tensorSubroutine

    Prepare tensor for contraction: redistribute to a 2d format which can be contracted by +matrix multiplication. This routine reshapes the smallest of the three tensors.

    reshape_mm_template
    swapdbcsr_toollibdbcsr_tas_util Interface
    swapdbcsr_tas_utildbcsr_toollib Interface
    block_parametersdbcsr_block_accessblock_parametersdbcsr_iterator_operations None
    block_parametersdbcsr_iterator_operationsblock_parametersdbcsr_block_access None
    dbcsr_types None
    dbcsr_distribution_typedbcsr_typesNone

    Matrix distribution on the processor grid

    dbcsr_distribution_type dbcsr_api None
    dbcsr_distribution_typedbcsr_typesNone

    Matrix distribution on the processor grid

    dbcsr_heap_node dbcsr_tas_types None
    dbcsr_typedbcsr_typesNone

    The BCSR sparse matrix type.

    Read more…
    dbcsr_type dbcsr_api None
    dbcsr_typedbcsr_typesNone

    The BCSR sparse matrix type.

    Read more…
    dbcsr_type_p
    dgemm_joindbcsr_block_accessdgemm_joindbcsr_iterator_operations None
    dgemm_joindbcsr_iterator_operationsdgemm_joindbcsr_block_access None
    - + character(len=*), private,
    - + type(acc_devmem_type), intent(in)
    - + integer(kind=int_4),
    - + type(acc_devmem_type), intent(in)
    - + integer(kind=int_8),
    - + type(acc_devmem_type), intent(in)
    - + real(kind=real_4),
    - + type(acc_devmem_type), intent(in)
    - + real(kind=real_8),
    - + type(acc_devmem_type), intent(in)
    - + complex(kind=real_4),
    - + type(acc_devmem_type), intent(in)
    - + complex(kind=real_8),
    - + type(acc_devmem_type), intent(in)
    - + integer(kind=int_4),
    - + type(acc_devmem_type), intent(in)
    - + integer(kind=int_8),
    - + type(acc_devmem_type), intent(in)
    - + real(kind=real_4),
    - + type(acc_devmem_type), intent(in)
    - + real(kind=real_8),
    - + type(acc_devmem_type), intent(in)
    - + complex(kind=real_4),
    - + type(acc_devmem_type), intent(in)
    - + complex(kind=real_8),
    - + type(acc_devmem_type), intent(in)
    - + integer(kind=int_4),
    - + type(acc_devmem_type), intent(in)
    - + integer(kind=int_8),
    - + type(acc_devmem_type), intent(in)
    - + real(kind=real_4),
    - + type(acc_devmem_type), intent(in)
    - + real(kind=real_8),
    - + type(acc_devmem_type), intent(in)
    - + complex(kind=real_4),
    - + type(acc_devmem_type), intent(in)
    - + complex(kind=real_8),
    - + type(acc_devmem_type), intent(in)
    - + type(acc_devmem_type), intent(in)
    - + integer, intent(in)
    - + type(acc_devmem_type), intent(inout)
    - + logical, intent(in),
    - + logical, intent(in),
    - + type(acc_devmem_type), intent(inout)
    - + integer(kind=int_8), intent(out)
    - + type(acc_devmem_type), intent(inout)
    - + type(acc_devmem_type), intent(inout)
    - + type(acc_devmem_type), intent(inout)
    - + type(acc_devmem_type), intent(in)
    - + integer(kind=int_4),
    - + type(acc_devmem_type), intent(in)
    - + integer(kind=int_4),
    - + type(acc_devmem_type), intent(in)
    - + integer(kind=int_4),
    - + type(acc_devmem_type), intent(in)
    - + integer(kind=int_8),
    - + type(acc_devmem_type), intent(in)
    - + integer(kind=int_8),
    - + type(acc_devmem_type), intent(in)
    - + integer(kind=int_8),
    - + type(acc_devmem_type), intent(in)
    - + real(kind=real_4),
    - + type(acc_devmem_type), intent(in)
    - + real(kind=real_4),
    - + type(acc_devmem_type), intent(in)
    - + real(kind=real_4),
    - + type(acc_devmem_type), intent(in)
    - + real(kind=real_8),
    - + type(acc_devmem_type), intent(in)
    - + real(kind=real_8),
    - + type(acc_devmem_type), intent(in)
    - + real(kind=real_8),
    - + type(acc_devmem_type), intent(in)
    - + complex(kind=real_4),
    - + type(acc_devmem_type), intent(in)
    - + complex(kind=real_4),
    - + type(acc_devmem_type), intent(in)
    - + complex(kind=real_4),
    - + type(acc_devmem_type), intent(in)
    - + complex(kind=real_8),
    - + type(acc_devmem_type), intent(in)
    - + complex(kind=real_8),
    - + type(acc_devmem_type), intent(in)
    - + complex(kind=real_8),
    - + character(len=*), private,
    - + integer, private
    - + type(acc_event_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_event_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_event_type), intent(inout)
    - + type(acc_event_type), intent(inout)
    - + type(acc_event_type), intent(in)
    - + character(len=*), private,
    - + integer, intent(in)
    - + type(acc_stream_type), intent(in)
    - + integer, intent(in)
    - + type(acc_stream_type), intent(in)
    - + integer, intent(in)
    - + type(acc_stream_type), intent(in)
    - + integer, intent(in)
    - + type(acc_stream_type), intent(in)
    - + integer, intent(in)
    - + type(acc_stream_type), intent(in)
    - + integer, intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + integer, intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + integer, intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + integer, intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + integer, intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + integer, intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + integer, intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + character(len=*), private,
    - + logical, private,
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(acc_devmem_type), intent(in)
    - + type(acc_devmem_type), intent(in)
    - + type(acc_devmem_type), intent(inout)
    - + logical, intent(inout)
    - + logical, intent(inout)
    - + type(acc_devmem_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(acc_devmem_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(acc_stream_type), intent(in)
    - + character(len=*), private,
    - + integer, private
    - + integer, intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(out)
    - + character(len=*), intent(in)
    - + type(acc_stream_type), intent(inout)
    - + type(acc_stream_type), intent(in)
    - + integer, intent(out)
    - + character(len=*), private,
    - + type(C_PTR), intent(in)
    - + integer(kind=C_INT), intent(out)
    - + integer(kind=C_INT), intent(in)
    - + real(kind=real_8), intent(out),
    - + real(kind=real_8), intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + real(kind=real_8), intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + real(kind=real_8), intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + real(kind=real_8), intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + real(kind=real_8), intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + real(kind=real_8), intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + real(kind=real_8), intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + real(kind=real_4), intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + real(kind=real_4), intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + real(kind=real_4), intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + real(kind=real_4), intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + real(kind=real_4), intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + real(kind=real_4), intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + real(kind=real_4), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + real(kind=real_8), intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + real(kind=real_8), intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + real(kind=real_8), intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + real(kind=real_8), intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + real(kind=real_8), intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + real(kind=real_8), intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + real(kind=real_8), intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + real(kind=real_4), intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + real(kind=real_4), intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + real(kind=real_4), intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + real(kind=real_4), intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + real(kind=real_4), intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + real(kind=real_4), intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + real(kind=real_4), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + character(len=*), private,
    - + type(dbcsr_type), intent(inout)
    - + character(len=*), intent(in)
    - + type(dbcsr_distribution_type), intent(in)
    - + character(len=1), intent(in)
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + character(len=1), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + character(len=*), intent(in),
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_distribution_type), intent(in),
    - + character(len=1), intent(in),
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + character(len=1), intent(in),
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_8), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_4), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_4), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_8), intent(in),
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + real(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + real(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + complex(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + complex(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8), intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4), intent(in),
    - + logical, intent(in),
    - + real(kind=real_4), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_8), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_4), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8), intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4), intent(in),
    - + logical, intent(in),
    - + real(kind=real_4), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_8), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_4), intent(in),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + integer, intent(out)
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + real(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + real(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + complex(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + complex(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + real(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + real(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + complex(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + complex(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + real(kind=real_8),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + real(kind=real_4),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + complex(kind=real_4),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + complex(kind=real_8),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + real(kind=real_8),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + real(kind=real_4),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + complex(kind=real_4),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + complex(kind=real_8),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8),
    - + logical, intent(in),
    - + logical, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4),
    - + logical, intent(in),
    - + logical, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4),
    - + logical, intent(in),
    - + logical, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8),
    - + logical, intent(in),
    - + logical, intent(out),
    - + type(dbcsr_csr_type), intent(out)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer(kind=int_8)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + type(csr_type), intent(out)
    - + type(csr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_4), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_4), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_8), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_8), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_4), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_4), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_8), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_8), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout),
    - + type(dbcsr_type), intent(inout),
    - + type(dbcsr_type), public,
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + logical, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_iterator_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + logical, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_8), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_8), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_4), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_4), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_8), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_8), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_4), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_4), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_distribution_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + logical, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + logical,
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + type(dbcsr_iterator_type), intent(out)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + integer, intent(out)
    - + integer, intent(out),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer,
    - + integer,
    - + integer,
    - + integer,
    - + integer,
    - + integer,
    - + integer,
    - + integer,
    - + type(dbcsr_distribution_type), intent(out),
    - + character(len=*), intent(out),
    - + character(len=1), intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_distribution_type), intent(in)
    - + integer,
    - + integer,
    - + integer, intent(out),
    - + integer, intent(out),
    - + logical, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer,
    - + logical, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_distribution_type)
    - + type(dbcsr_distribution_type)
    - + type(dbcsr_type), intent(inout),
    - + type(dbcsr_type), intent(inout),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + logical, intent(in),
    - + type(dbcsr_type),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type),
    - + type(dbcsr_type), intent(in)
    - + logical, intent(in),
    - + integer,
    - + type(dbcsr_type), intent(in)
    - + integer,
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_distribution_type), intent(out)
    - + type(dbcsr_distribution_type), intent(in),
    - + integer, intent(in),
    - + integer,
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + logical, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + character(len=*), intent(in)
    - + type(dbcsr_distribution_type), intent(in)
    - + character(len=1), intent(in)
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + character(len=1), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + character(len=*), intent(in),
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_distribution_type), intent(in),
    - + character(len=1), intent(in),
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + character(len=1), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + real(kind=dp), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_distribution_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + character(len=*), intent(in),
    - + logical, intent(in),
    - + character(len=1), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + logical, intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_distribution_type), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type),
    - + type(dbcsr_csr_type), intent(out)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer(kind=int_8)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_csr_type), intent(out)
    - + integer
    - + type(dbcsr_type), intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_csr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_csr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(out)
    - + real(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + real(kind=dp),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer,
    - + integer, intent(in),
    - + logical, intent(in),
    - + integer,
    - + integer,
    - + integer,
    - + real(kind=dp), intent(in),
    - + real(kind=dp), intent(in)
    - + real(kind=dp), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=dp), intent(in)
    - + logical, intent(in)
    - + logical, intent(in)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8),
    - + logical, intent(in),
    - + logical, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + real(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + real(kind=real_8),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + real(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + real(kind=real_8),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8), intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8), intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + real(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_8), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4),
    - + logical, intent(in),
    - + logical, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + real(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + real(kind=real_4),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + real(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + real(kind=real_4),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4), intent(in),
    - + logical, intent(in),
    - + real(kind=real_4), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4), intent(in),
    - + logical, intent(in),
    - + real(kind=real_4), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + real(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_4), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8),
    - + logical, intent(in),
    - + logical, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + complex(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + complex(kind=real_8),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + complex(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + complex(kind=real_8),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_8), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_8), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + complex(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_8), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4),
    - + logical, intent(in),
    - + logical, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + complex(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + complex(kind=real_4),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + complex(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + complex(kind=real_4),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_4), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_4), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + complex(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_4), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + character(kind=c_char, len=:), intent(out),
    - + integer(kind=c_int), intent(in),
    - + type(c_ptr), intent(inout)
    - + type(c_ptr), intent(inout)
    - + integer(kind=c_int), intent(in),
    - + type(c_ptr), intent(inout)
    - + integer(kind=c_int), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + integer(kind=c_int), intent(out),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(out)
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(out)
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(out)
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(out)
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + integer(kind=c_int), intent(out),
    - + integer(kind=c_int), intent(out),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + integer(kind=c_int), intent(inout),
    - + type(c_ptr), intent(in),
    - + integer(kind=c_int), intent(inout),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + integer(kind=c_int), intent(in),
    - + integer(kind=c_int), intent(in),
    - + integer(kind=c_int), intent(out)
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + character(len=*), private,
    - + type(array_list), intent(in)
    - + integer, intent(in)
    - + integer, intent(out),
    - + integer, public,
    - + type(array_list), intent(in)
    - + type(array_list), intent(in)
    - + integer, intent(in),
    - + type(array_list), intent(in)
    - + type(array_list), intent(in)
    - + type(array_list), intent(in)
    - + type(array_list), intent(out)
    - + integer, intent(in)
    - + type(array_list), intent(inout)
    - + type(array_list), intent(in)
    - + type(array_list), intent(in)
    - + integer, intent(in)
    - + integer, intent(out),
    - + type(array_list), intent(in)
    - + integer, intent(in)
    - + integer, intent(out),
    - + integer, intent(in),
    - + logical, private,
    - + character(len=*), private,
    - + real(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + integer, intent(out),
    - + real(kind=real_8), intent(inout),
    - + integer, intent(inout),
    - + real(kind=real_8), intent(inout),
    - + real(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + integer, intent(out),
    - + real(kind=real_4), intent(inout),
    - + integer, intent(inout),
    - + real(kind=real_4), intent(inout),
    - + integer(kind=int_4), intent(inout),
    - + integer, intent(in)
    - + integer, intent(out),
    - + integer(kind=int_4), intent(inout),
    - + integer, intent(inout),
    - + integer(kind=int_4), intent(inout),
    - + integer(kind=int_8), intent(inout),
    - + integer, intent(in)
    - + integer, intent(out),
    - + integer(kind=int_8), intent(inout),
    - + integer, intent(inout),
    - + integer(kind=int_8), intent(inout),
    - + type(array_i1d_obj), intent(out)
    - + integer,
    - + logical, intent(in),
    - + type(array_i1d_obj), intent(out)
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(array_i1d_obj), intent(inout)
    - + type(array_i1d_obj), intent(inout)
    - + type(array_i1d_obj), intent(inout)
    - + type(array_i1d_obj), intent(in)
    - + type(array_i1d_obj), intent(in)
    - + type(array_i1d_obj), intent(in)
    - + type(array_i1d_obj), intent(in)
    - + integer, intent(in),
    - + integer, public,
    - + type(array_i1d_type), public,
    - + type(array_i1d_obj), intent(in)
    - + type(array_i1d_obj), intent(in)
    - + type(array_i1d_obj), intent(in)
    - + type(array_i1d_obj), intent(in)
    - + integer, intent(in),
    - + type(array_i1d_obj), intent(out)
    - + integer,
    - + logical, intent(in),
    - + type(array_i1d_obj), intent(out)
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(array_i1d_obj), intent(inout)
    - + type(array_i1d_obj), intent(inout)
    - + type(array_i1d_obj), intent(inout)
    - + character(len=*), intent(in)
    - + character(len=*), intent(in)
    - + character(len=*), intent(in)
    - + integer, intent(out)
    - + integer, intent(in)
    - + character(len=*), intent(in)
    - + character(len=*), intent(in)
    - + character(len=*), intent(in)
    - + character(len=*), intent(in)
    - + integer, intent(out)
    - + integer, intent(in)
    - + character(len=*), intent(in)
    - + character(len=*), intent(in)
    - + character(len=*), intent(in)
    - + character(len=*), intent(in)
    - + character(len=*), intent(in)
    - + character(len=*), private,
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(out)
    - + integer, intent(in)
    - + integer, intent(inout),
    - + integer, intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + character(len=*), private,
    - + logical, private,
    - + logical, private,
    - + integer, private,
    - + integer, private,
    - + integer, private,
    - + integer, private,
    - + integer, private,
    - + integer, private,
    - + integer, private,
    - + logical, private,
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_data_obj)
    - + logical, intent(in),
    - + logical, intent(in),
    - + integer(kind=int_8), intent(inout),
    - + type(dbcsr_scalar_type), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8), intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + integer(kind=int_8), intent(inout),
    - + real(kind=real_8), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4), intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + integer(kind=int_8), intent(inout),
    - + real(kind=real_4), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8), intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + integer(kind=int_8), intent(inout),
    - + complex(kind=real_8), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4), intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + integer(kind=int_8), intent(inout),
    - + complex(kind=real_4), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8), intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + integer(kind=int_8), intent(inout),
    - + real(kind=real_8), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4), intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + integer(kind=int_8), intent(inout),
    - + real(kind=real_4), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8), intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + integer(kind=int_8), intent(inout),
    - + complex(kind=real_8), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4), intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + integer(kind=int_8), intent(inout),
    - + complex(kind=real_4), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4),
    - + logical, intent(in),
    - + logical, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8),
    - + logical, intent(in),
    - + logical, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4),
    - + logical, intent(in),
    - + logical, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8),
    - + logical, intent(in),
    - + logical, intent(out),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + type(dbcsr_scalar_type), public
    - + type(dbcsr_scalar_type), public
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_data_obj)
    - + logical, intent(in),
    - + logical, intent(in),
    - + integer(kind=int_8), intent(inout),
    - + type(dbcsr_scalar_type), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    @@ -5095,7 +5095,7 @@

    Arguments

    @@ -5110,7 +5110,7 @@

    Arguments

    @@ -5142,7 +5142,7 @@

    Arguments

    @@ -5182,7 +5182,7 @@

    Arguments

    @@ -5212,7 +5212,7 @@

    Arguments

    @@ -5228,7 +5228,7 @@

    Arguments

    @@ -5280,7 +5280,7 @@

    Arguments

    -

    private subroutine dbcsr_get_2d_block_p_d(matrix, row, col, block, tr, found, row_size, col_size) +

    private subroutine dbcsr_get_2d_block_p_d(matrix, row, col, block, tr, found, row_size, col_size)

    @@ -5299,7 +5299,7 @@

    Arguments

    @@ -5314,7 +5314,7 @@

    Arguments

    @@ -5330,7 +5330,7 @@

    Arguments

    @@ -5346,7 +5346,7 @@

    Arguments

    @@ -5361,7 +5361,7 @@

    Arguments

    @@ -5376,7 +5376,7 @@

    Arguments

    @@ -5391,7 +5391,7 @@

    Arguments

    @@ -5407,7 +5407,7 @@

    Arguments

    @@ -5429,7 +5429,7 @@

    Arguments

    -

    private subroutine dbcsr_get_block_p_d(matrix, row, col, block, tr, found, row_size, col_size) +

    private subroutine dbcsr_get_block_p_d(matrix, row, col, block, tr, found, row_size, col_size)

    @@ -5448,7 +5448,7 @@

    Arguments

    @@ -5463,7 +5463,7 @@

    Arguments

    @@ -5479,7 +5479,7 @@

    Arguments

    @@ -5495,7 +5495,7 @@

    Arguments

    @@ -5510,7 +5510,7 @@

    Arguments

    @@ -5525,7 +5525,7 @@

    Arguments

    @@ -5540,7 +5540,7 @@

    Arguments

    @@ -5556,7 +5556,7 @@

    Arguments

    @@ -5578,7 +5578,7 @@

    Arguments

    -

    private subroutine dbcsr_reserve_block2d_d(matrix, row, col, block, transposed, existed) +

    private subroutine dbcsr_reserve_block2d_d(matrix, row, col, block, transposed, existed)

    @@ -5597,7 +5597,7 @@

    Arguments

    @@ -5612,7 +5612,7 @@

    Arguments

    @@ -5628,7 +5628,7 @@

    Arguments

    @@ -5644,7 +5644,7 @@

    Arguments

    @@ -5659,7 +5659,7 @@

    Arguments

    @@ -5674,7 +5674,7 @@

    Arguments

    @@ -5695,7 +5695,7 @@

    Arguments

    -

    private subroutine dbcsr_put_block2d_d(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale) +

    private subroutine dbcsr_put_block2d_d(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale)

    @@ -5714,7 +5714,7 @@

    Arguments

    @@ -5729,7 +5729,7 @@

    Arguments

    @@ -5745,7 +5745,7 @@

    Arguments

    @@ -5761,7 +5761,7 @@

    Arguments

    @@ -5791,7 +5791,7 @@

    Arguments

    @@ -5807,7 +5807,7 @@

    Arguments

    @@ -5823,7 +5823,7 @@

    Arguments

    @@ -5838,7 +5838,7 @@

    Arguments

    @@ -5859,12 +5859,12 @@

    Arguments

    -

    private subroutine dbcsr_put_block_d(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale) +

    private subroutine dbcsr_put_block_d(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale)

    Inserts a block in a dbcsr matrix. - If the block exists, the current data is overwritten.

    Read more… + If the block exists, the current data is overwritten.

    Read more…

    Arguments

    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8),
    - + logical, intent(in),
    - + logical, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8), intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + integer(kind=int_8), intent(inout),
    - + real(kind=real_8), intent(in),
    @@ -5879,7 +5879,7 @@

    Arguments

    @@ -5894,7 +5894,7 @@

    Arguments

    @@ -5910,7 +5910,7 @@

    Arguments

    @@ -5926,7 +5926,7 @@

    Arguments

    @@ -5956,7 +5956,7 @@

    Arguments

    @@ -5972,7 +5972,7 @@

    Arguments

    @@ -5988,7 +5988,7 @@

    Arguments

    @@ -6003,7 +6003,7 @@

    Arguments

    @@ -6043,7 +6043,7 @@

    Arguments

    @@ -6073,7 +6073,7 @@

    Arguments

    @@ -6089,7 +6089,7 @@

    Arguments

    @@ -6126,7 +6126,7 @@

    Arguments

    -

    private subroutine dbcsr_get_2d_block_p_s(matrix, row, col, block, tr, found, row_size, col_size) +

    private subroutine dbcsr_get_2d_block_p_s(matrix, row, col, block, tr, found, row_size, col_size)

    @@ -6145,7 +6145,7 @@

    Arguments

    @@ -6160,7 +6160,7 @@

    Arguments

    @@ -6176,7 +6176,7 @@

    Arguments

    @@ -6192,7 +6192,7 @@

    Arguments

    @@ -6207,7 +6207,7 @@

    Arguments

    @@ -6222,7 +6222,7 @@

    Arguments

    @@ -6237,7 +6237,7 @@

    Arguments

    @@ -6253,7 +6253,7 @@

    Arguments

    @@ -6275,7 +6275,7 @@

    Arguments

    -

    private subroutine dbcsr_get_block_p_s(matrix, row, col, block, tr, found, row_size, col_size) +

    private subroutine dbcsr_get_block_p_s(matrix, row, col, block, tr, found, row_size, col_size)

    @@ -6294,7 +6294,7 @@

    Arguments

    @@ -6309,7 +6309,7 @@

    Arguments

    @@ -6325,7 +6325,7 @@

    Arguments

    @@ -6341,7 +6341,7 @@

    Arguments

    @@ -6356,7 +6356,7 @@

    Arguments

    @@ -6371,7 +6371,7 @@

    Arguments

    @@ -6386,7 +6386,7 @@

    Arguments

    @@ -6402,7 +6402,7 @@

    Arguments

    @@ -6424,7 +6424,7 @@

    Arguments

    -

    private subroutine dbcsr_reserve_block2d_s(matrix, row, col, block, transposed, existed) +

    private subroutine dbcsr_reserve_block2d_s(matrix, row, col, block, transposed, existed)

    @@ -6443,7 +6443,7 @@

    Arguments

    @@ -6458,7 +6458,7 @@

    Arguments

    @@ -6474,7 +6474,7 @@

    Arguments

    @@ -6490,7 +6490,7 @@

    Arguments

    @@ -6505,7 +6505,7 @@

    Arguments

    @@ -6520,7 +6520,7 @@

    Arguments

    @@ -6541,7 +6541,7 @@

    Arguments

    -

    private subroutine dbcsr_put_block2d_s(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale) +

    private subroutine dbcsr_put_block2d_s(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale)

    @@ -6560,7 +6560,7 @@

    Arguments

    @@ -6575,7 +6575,7 @@

    Arguments

    @@ -6591,7 +6591,7 @@

    Arguments

    @@ -6607,7 +6607,7 @@

    Arguments

    @@ -6637,7 +6637,7 @@

    Arguments

    @@ -6653,7 +6653,7 @@

    Arguments

    @@ -6669,7 +6669,7 @@

    Arguments

    @@ -6684,7 +6684,7 @@

    Arguments

    @@ -6705,12 +6705,12 @@

    Arguments

    -

    private subroutine dbcsr_put_block_s(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale) +

    private subroutine dbcsr_put_block_s(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale)

    Inserts a block in a dbcsr matrix. - If the block exists, the current data is overwritten.

    Read more… + If the block exists, the current data is overwritten.

    Read more…

    Arguments

    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8), intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + integer(kind=int_8), intent(inout),
    - + real(kind=real_8), intent(in),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4),
    - + logical, intent(in),
    - + logical, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4), intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + integer(kind=int_8), intent(inout),
    - + real(kind=real_4), intent(in),
    @@ -6725,7 +6725,7 @@

    Arguments

    @@ -6740,7 +6740,7 @@

    Arguments

    @@ -6756,7 +6756,7 @@

    Arguments

    @@ -6772,7 +6772,7 @@

    Arguments

    @@ -6802,7 +6802,7 @@

    Arguments

    @@ -6818,7 +6818,7 @@

    Arguments

    @@ -6834,7 +6834,7 @@

    Arguments

    @@ -6849,7 +6849,7 @@

    Arguments

    @@ -6889,7 +6889,7 @@

    Arguments

    @@ -6919,7 +6919,7 @@

    Arguments

    @@ -6935,7 +6935,7 @@

    Arguments

    @@ -6972,7 +6972,7 @@

    Arguments

    -

    private subroutine dbcsr_get_2d_block_p_z(matrix, row, col, block, tr, found, row_size, col_size) +

    private subroutine dbcsr_get_2d_block_p_z(matrix, row, col, block, tr, found, row_size, col_size)

    @@ -6991,7 +6991,7 @@

    Arguments

    @@ -7006,7 +7006,7 @@

    Arguments

    @@ -7022,7 +7022,7 @@

    Arguments

    @@ -7038,7 +7038,7 @@

    Arguments

    @@ -7053,7 +7053,7 @@

    Arguments

    @@ -7068,7 +7068,7 @@

    Arguments

    @@ -7083,7 +7083,7 @@

    Arguments

    @@ -7099,7 +7099,7 @@

    Arguments

    @@ -7121,7 +7121,7 @@

    Arguments

    -

    private subroutine dbcsr_get_block_p_z(matrix, row, col, block, tr, found, row_size, col_size) +

    private subroutine dbcsr_get_block_p_z(matrix, row, col, block, tr, found, row_size, col_size)

    @@ -7140,7 +7140,7 @@

    Arguments

    @@ -7155,7 +7155,7 @@

    Arguments

    @@ -7171,7 +7171,7 @@

    Arguments

    @@ -7187,7 +7187,7 @@

    Arguments

    @@ -7202,7 +7202,7 @@

    Arguments

    @@ -7217,7 +7217,7 @@

    Arguments

    @@ -7232,7 +7232,7 @@

    Arguments

    @@ -7248,7 +7248,7 @@

    Arguments

    @@ -7270,7 +7270,7 @@

    Arguments

    -

    private subroutine dbcsr_reserve_block2d_z(matrix, row, col, block, transposed, existed) +

    private subroutine dbcsr_reserve_block2d_z(matrix, row, col, block, transposed, existed)

    @@ -7289,7 +7289,7 @@

    Arguments

    @@ -7304,7 +7304,7 @@

    Arguments

    @@ -7320,7 +7320,7 @@

    Arguments

    @@ -7336,7 +7336,7 @@

    Arguments

    @@ -7351,7 +7351,7 @@

    Arguments

    @@ -7366,7 +7366,7 @@

    Arguments

    @@ -7387,7 +7387,7 @@

    Arguments

    -

    private subroutine dbcsr_put_block2d_z(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale) +

    private subroutine dbcsr_put_block2d_z(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale)

    @@ -7406,7 +7406,7 @@

    Arguments

    @@ -7421,7 +7421,7 @@

    Arguments

    @@ -7437,7 +7437,7 @@

    Arguments

    @@ -7453,7 +7453,7 @@

    Arguments

    @@ -7483,7 +7483,7 @@

    Arguments

    @@ -7499,7 +7499,7 @@

    Arguments

    @@ -7515,7 +7515,7 @@

    Arguments

    @@ -7530,7 +7530,7 @@

    Arguments

    @@ -7551,12 +7551,12 @@

    Arguments

    -

    private subroutine dbcsr_put_block_z(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale) +

    private subroutine dbcsr_put_block_z(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale)

    Inserts a block in a dbcsr matrix. - If the block exists, the current data is overwritten.

    Read more… + If the block exists, the current data is overwritten.

    Read more…

    Arguments

    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4), intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + integer(kind=int_8), intent(inout),
    - + real(kind=real_4), intent(in),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8),
    - + logical, intent(in),
    - + logical, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8), intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + integer(kind=int_8), intent(inout),
    - + complex(kind=real_8), intent(in),
    @@ -7571,7 +7571,7 @@

    Arguments

    @@ -7586,7 +7586,7 @@

    Arguments

    @@ -7602,7 +7602,7 @@

    Arguments

    @@ -7618,7 +7618,7 @@

    Arguments

    @@ -7648,7 +7648,7 @@

    Arguments

    @@ -7664,7 +7664,7 @@

    Arguments

    @@ -7680,7 +7680,7 @@

    Arguments

    @@ -7695,7 +7695,7 @@

    Arguments

    @@ -7735,7 +7735,7 @@

    Arguments

    @@ -7765,7 +7765,7 @@

    Arguments

    @@ -7781,7 +7781,7 @@

    Arguments

    @@ -7818,7 +7818,7 @@

    Arguments

    -

    private subroutine dbcsr_get_2d_block_p_c(matrix, row, col, block, tr, found, row_size, col_size) +

    private subroutine dbcsr_get_2d_block_p_c(matrix, row, col, block, tr, found, row_size, col_size)

    @@ -7837,7 +7837,7 @@

    Arguments

    @@ -7852,7 +7852,7 @@

    Arguments

    @@ -7868,7 +7868,7 @@

    Arguments

    @@ -7884,7 +7884,7 @@

    Arguments

    @@ -7899,7 +7899,7 @@

    Arguments

    @@ -7914,7 +7914,7 @@

    Arguments

    @@ -7929,7 +7929,7 @@

    Arguments

    @@ -7945,7 +7945,7 @@

    Arguments

    @@ -7967,7 +7967,7 @@

    Arguments

    -

    private subroutine dbcsr_get_block_p_c(matrix, row, col, block, tr, found, row_size, col_size) +

    private subroutine dbcsr_get_block_p_c(matrix, row, col, block, tr, found, row_size, col_size)

    @@ -7986,7 +7986,7 @@

    Arguments

    @@ -8001,7 +8001,7 @@

    Arguments

    @@ -8017,7 +8017,7 @@

    Arguments

    @@ -8033,7 +8033,7 @@

    Arguments

    @@ -8048,7 +8048,7 @@

    Arguments

    @@ -8063,7 +8063,7 @@

    Arguments

    @@ -8078,7 +8078,7 @@

    Arguments

    @@ -8094,7 +8094,7 @@

    Arguments

    @@ -8116,7 +8116,7 @@

    Arguments

    -

    private subroutine dbcsr_reserve_block2d_c(matrix, row, col, block, transposed, existed) +

    private subroutine dbcsr_reserve_block2d_c(matrix, row, col, block, transposed, existed)

    @@ -8135,7 +8135,7 @@

    Arguments

    @@ -8150,7 +8150,7 @@

    Arguments

    @@ -8166,7 +8166,7 @@

    Arguments

    @@ -8182,7 +8182,7 @@

    Arguments

    @@ -8197,7 +8197,7 @@

    Arguments

    @@ -8212,7 +8212,7 @@

    Arguments

    @@ -8233,7 +8233,7 @@

    Arguments

    -

    private subroutine dbcsr_put_block2d_c(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale) +

    private subroutine dbcsr_put_block2d_c(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale)

    @@ -8252,7 +8252,7 @@

    Arguments

    @@ -8267,7 +8267,7 @@

    Arguments

    @@ -8283,7 +8283,7 @@

    Arguments

    @@ -8299,7 +8299,7 @@

    Arguments

    @@ -8329,7 +8329,7 @@

    Arguments

    @@ -8345,7 +8345,7 @@

    Arguments

    @@ -8361,7 +8361,7 @@

    Arguments

    @@ -8376,7 +8376,7 @@

    Arguments

    @@ -8397,12 +8397,12 @@

    Arguments

    -

    private subroutine dbcsr_put_block_c(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale) +

    private subroutine dbcsr_put_block_c(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale)

    Inserts a block in a dbcsr matrix. - If the block exists, the current data is overwritten.

    Read more… + If the block exists, the current data is overwritten.

    Read more…

    Arguments

    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8), intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + integer(kind=int_8), intent(inout),
    - + complex(kind=real_8), intent(in),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4),
    - + logical, intent(in),
    - + logical, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4), intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + integer(kind=int_8), intent(inout),
    - + complex(kind=real_4), intent(in),
    @@ -8417,7 +8417,7 @@

    Arguments

    @@ -8432,7 +8432,7 @@

    Arguments

    @@ -8448,7 +8448,7 @@

    Arguments

    @@ -8464,7 +8464,7 @@

    Arguments

    @@ -8494,7 +8494,7 @@

    Arguments

    @@ -8510,7 +8510,7 @@

    Arguments

    @@ -8526,7 +8526,7 @@

    Arguments

    @@ -8541,7 +8541,7 @@

    Arguments

    @@ -8581,7 +8581,7 @@

    Arguments

    @@ -8611,7 +8611,7 @@

    Arguments

    @@ -8627,7 +8627,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_block_operations.html b/develop/module/dbcsr_block_operations.html index 6a59eb4ea0e..e8d4c4eef97 100644 --- a/develop/module/dbcsr_block_operations.html +++ b/develop/module/dbcsr_block_operations.html @@ -113,9 +113,9 @@

    Variables

    @@ -251,12 +251,12 @@

    Uses

    @@ -281,7 +281,7 @@

    Variables

    @@ -298,7 +298,7 @@

    Variables

    @@ -315,7 +315,7 @@

    Variables

    @@ -382,7 +382,7 @@

    Arguments

    @@ -453,7 +453,7 @@

    Arguments

    @@ -524,7 +524,7 @@

    Arguments

    @@ -595,7 +595,7 @@

    Arguments

    @@ -681,7 +681,7 @@

    Arguments

    @@ -767,7 +767,7 @@

    Arguments

    @@ -853,7 +853,7 @@

    Arguments

    @@ -939,7 +939,7 @@

    Arguments

    @@ -1025,7 +1025,7 @@

    Arguments

    @@ -1111,7 +1111,7 @@

    Arguments

    @@ -1197,7 +1197,7 @@

    Arguments

    @@ -1283,7 +1283,7 @@

    Arguments

    @@ -1369,7 +1369,7 @@

    Arguments

    @@ -1455,7 +1455,7 @@

    Arguments

    @@ -1541,7 +1541,7 @@

    Arguments

    @@ -1627,7 +1627,7 @@

    Arguments

    @@ -1684,7 +1684,7 @@

    Arguments

    @@ -1699,7 +1699,7 @@

    Arguments

    @@ -1714,7 +1714,7 @@

    Arguments

    @@ -1730,7 +1730,7 @@

    Arguments

    @@ -1746,7 +1746,7 @@

    Arguments

    @@ -1850,7 +1850,7 @@

    Arguments

    @@ -1865,7 +1865,7 @@

    Arguments

    @@ -1881,7 +1881,7 @@

    Arguments

    @@ -1961,7 +1961,7 @@

    Arguments

    @@ -2047,7 +2047,7 @@

    Arguments

    @@ -2133,7 +2133,7 @@

    Arguments

    @@ -2219,7 +2219,7 @@

    Arguments

    @@ -2305,7 +2305,7 @@

    Arguments

    @@ -2391,7 +2391,7 @@

    Arguments

    @@ -2477,7 +2477,7 @@

    Arguments

    @@ -2563,7 +2563,7 @@

    Arguments

    @@ -2649,7 +2649,7 @@

    Arguments

    @@ -2735,7 +2735,7 @@

    Arguments

    @@ -2821,7 +2821,7 @@

    Arguments

    @@ -2907,7 +2907,7 @@

    Arguments

    @@ -2993,7 +2993,7 @@

    Arguments

    @@ -3079,7 +3079,7 @@

    Arguments

    @@ -3165,7 +3165,7 @@

    Arguments

    @@ -3251,7 +3251,7 @@

    Arguments

    @@ -3317,7 +3317,7 @@

    Arguments

    @@ -3332,7 +3332,7 @@

    Arguments

    @@ -3347,7 +3347,7 @@

    Arguments

    @@ -3362,7 +3362,7 @@

    Arguments

    @@ -3407,7 +3407,7 @@

    Arguments

    @@ -3446,7 +3446,7 @@

    Arguments

    @@ -3461,7 +3461,7 @@

    Arguments

    @@ -3477,7 +3477,7 @@

    Arguments

    @@ -3493,7 +3493,7 @@

    Arguments

    @@ -3575,7 +3575,7 @@

    Arguments

    @@ -3590,7 +3590,7 @@

    Arguments

    @@ -3606,7 +3606,7 @@

    Arguments

    @@ -3622,7 +3622,7 @@

    Arguments

    @@ -3743,7 +3743,7 @@

    Arguments

    @@ -3758,7 +3758,7 @@

    Arguments

    @@ -3774,7 +3774,7 @@

    Arguments

    @@ -3790,7 +3790,7 @@

    Arguments

    @@ -3845,7 +3845,7 @@

    Arguments

    @@ -3860,7 +3860,7 @@

    Arguments

    @@ -3876,7 +3876,7 @@

    Arguments

    @@ -3892,7 +3892,7 @@

    Arguments

    @@ -3947,7 +3947,7 @@

    Arguments

    @@ -3962,7 +3962,7 @@

    Arguments

    @@ -3978,7 +3978,7 @@

    Arguments

    @@ -3994,7 +3994,7 @@

    Arguments

    @@ -4049,7 +4049,7 @@

    Arguments

    @@ -4064,7 +4064,7 @@

    Arguments

    @@ -4080,7 +4080,7 @@

    Arguments

    @@ -4096,7 +4096,7 @@

    Arguments

    @@ -4161,7 +4161,7 @@

    Arguments

    @@ -4208,7 +4208,7 @@

    Arguments

    @@ -4280,7 +4280,7 @@

    Arguments

    @@ -4295,7 +4295,7 @@

    Arguments

    @@ -4311,7 +4311,7 @@

    Arguments

    @@ -4327,7 +4327,7 @@

    Arguments

    @@ -4382,7 +4382,7 @@

    Arguments

    @@ -4397,7 +4397,7 @@

    Arguments

    @@ -4413,7 +4413,7 @@

    Arguments

    @@ -4429,7 +4429,7 @@

    Arguments

    @@ -4484,7 +4484,7 @@

    Arguments

    @@ -4499,7 +4499,7 @@

    Arguments

    @@ -4515,7 +4515,7 @@

    Arguments

    @@ -4531,7 +4531,7 @@

    Arguments

    @@ -4586,7 +4586,7 @@

    Arguments

    @@ -4601,7 +4601,7 @@

    Arguments

    @@ -4617,7 +4617,7 @@

    Arguments

    @@ -4633,7 +4633,7 @@

    Arguments

    @@ -4727,7 +4727,7 @@

    Arguments

    @@ -4796,7 +4796,7 @@

    Arguments

    @@ -4811,7 +4811,7 @@

    Arguments

    @@ -4826,7 +4826,7 @@

    Arguments

    @@ -4895,7 +4895,7 @@

    Arguments

    @@ -4964,7 +4964,7 @@

    Arguments

    @@ -5033,7 +5033,7 @@

    Arguments

    @@ -5102,7 +5102,7 @@

    Arguments

    @@ -5152,7 +5152,7 @@

    Arguments

    @@ -5167,7 +5167,7 @@

    Arguments

    @@ -5182,7 +5182,7 @@

    Arguments

    @@ -5198,7 +5198,7 @@

    Arguments

    @@ -5214,7 +5214,7 @@

    Arguments

    @@ -5319,7 +5319,7 @@

    Arguments

    @@ -5334,7 +5334,7 @@

    Arguments

    @@ -5349,7 +5349,7 @@

    Arguments

    @@ -5365,7 +5365,7 @@

    Arguments

    @@ -5381,7 +5381,7 @@

    Arguments

    @@ -5454,7 +5454,7 @@

    Arguments

    @@ -5484,7 +5484,7 @@

    Arguments

    @@ -5500,7 +5500,7 @@

    Arguments

    @@ -5516,7 +5516,7 @@

    Arguments

    @@ -5574,7 +5574,7 @@

    Arguments

    @@ -5589,7 +5589,7 @@

    Arguments

    @@ -5605,7 +5605,7 @@

    Arguments

    @@ -5621,7 +5621,7 @@

    Arguments

    @@ -5679,7 +5679,7 @@

    Arguments

    @@ -5694,7 +5694,7 @@

    Arguments

    @@ -5710,7 +5710,7 @@

    Arguments

    @@ -5726,7 +5726,7 @@

    Arguments

    @@ -5784,7 +5784,7 @@

    Arguments

    @@ -5799,7 +5799,7 @@

    Arguments

    @@ -5815,7 +5815,7 @@

    Arguments

    @@ -5857,7 +5857,7 @@

    Arguments

    @@ -5872,7 +5872,7 @@

    Arguments

    @@ -5888,7 +5888,7 @@

    Arguments

    @@ -5904,7 +5904,7 @@

    Arguments

    @@ -6026,7 +6026,7 @@

    Arguments

    @@ -6073,7 +6073,7 @@

    Arguments

    @@ -6145,7 +6145,7 @@

    Arguments

    @@ -6160,7 +6160,7 @@

    Arguments

    @@ -6175,7 +6175,7 @@

    Arguments

    @@ -6190,7 +6190,7 @@

    Arguments

    @@ -6235,7 +6235,7 @@

    Arguments

    @@ -6275,7 +6275,7 @@

    Arguments

    @@ -6290,7 +6290,7 @@

    Arguments

    @@ -6306,7 +6306,7 @@

    Arguments

    @@ -6322,7 +6322,7 @@

    Arguments

    @@ -6394,7 +6394,7 @@

    Arguments

    @@ -6441,7 +6441,7 @@

    Arguments

    @@ -6456,7 +6456,7 @@

    Arguments

    @@ -6471,7 +6471,7 @@

    Arguments

    @@ -6487,7 +6487,7 @@

    Arguments

    @@ -6503,7 +6503,7 @@

    Arguments

    @@ -6618,7 +6618,7 @@

    Arguments

    @@ -6725,7 +6725,7 @@

    Arguments

    @@ -6795,7 +6795,7 @@

    Arguments

    @@ -6810,7 +6810,7 @@

    Arguments

    @@ -6825,7 +6825,7 @@

    Arguments

    @@ -6865,7 +6865,7 @@

    Arguments

    @@ -6910,7 +6910,7 @@

    Arguments

    @@ -6925,7 +6925,7 @@

    Arguments

    @@ -6940,7 +6940,7 @@

    Arguments

    @@ -6955,7 +6955,7 @@

    Arguments

    @@ -6970,7 +6970,7 @@

    Arguments

    @@ -7060,7 +7060,7 @@

    Arguments

    @@ -7130,7 +7130,7 @@

    Arguments

    @@ -7175,7 +7175,7 @@

    Arguments

    @@ -7190,7 +7190,7 @@

    Arguments

    @@ -7205,7 +7205,7 @@

    Arguments

    @@ -7295,7 +7295,7 @@

    Arguments

    @@ -7350,7 +7350,7 @@

    Arguments

    @@ -7365,7 +7365,7 @@

    Arguments

    @@ -7380,7 +7380,7 @@

    Arguments

    @@ -7395,7 +7395,7 @@

    Arguments

    @@ -7410,7 +7410,7 @@

    Arguments

    @@ -7425,7 +7425,7 @@

    Arguments

    @@ -7515,7 +7515,7 @@

    Arguments

    @@ -7570,7 +7570,7 @@

    Arguments

    @@ -7585,7 +7585,7 @@

    Arguments

    @@ -7600,7 +7600,7 @@

    Arguments

    @@ -7615,7 +7615,7 @@

    Arguments

    @@ -7705,7 +7705,7 @@

    Arguments

    @@ -7775,7 +7775,7 @@

    Arguments

    @@ -7881,7 +7881,7 @@

    Arguments

    @@ -7968,7 +7968,7 @@

    Arguments

    @@ -8055,7 +8055,7 @@

    Arguments

    @@ -8142,7 +8142,7 @@

    Arguments

    @@ -8229,7 +8229,7 @@

    Arguments

    @@ -8316,7 +8316,7 @@

    Arguments

    @@ -8403,7 +8403,7 @@

    Arguments

    @@ -8475,7 +8475,7 @@

    Arguments

    @@ -8533,7 +8533,7 @@

    Arguments

    @@ -8548,7 +8548,7 @@

    Arguments

    @@ -8564,7 +8564,7 @@

    Arguments

    @@ -8580,7 +8580,7 @@

    Arguments

    @@ -8665,7 +8665,7 @@

    Arguments

    @@ -8705,7 +8705,7 @@

    Arguments

    @@ -8750,7 +8750,7 @@

    Arguments

    @@ -8765,7 +8765,7 @@

    Arguments

    @@ -8780,7 +8780,7 @@

    Arguments

    @@ -8795,7 +8795,7 @@

    Arguments

    @@ -8810,7 +8810,7 @@

    Arguments

    @@ -8900,7 +8900,7 @@

    Arguments

    @@ -8970,7 +8970,7 @@

    Arguments

    @@ -9015,7 +9015,7 @@

    Arguments

    @@ -9030,7 +9030,7 @@

    Arguments

    @@ -9045,7 +9045,7 @@

    Arguments

    @@ -9135,7 +9135,7 @@

    Arguments

    @@ -9190,7 +9190,7 @@

    Arguments

    @@ -9205,7 +9205,7 @@

    Arguments

    @@ -9220,7 +9220,7 @@

    Arguments

    @@ -9235,7 +9235,7 @@

    Arguments

    @@ -9250,7 +9250,7 @@

    Arguments

    @@ -9265,7 +9265,7 @@

    Arguments

    @@ -9355,7 +9355,7 @@

    Arguments

    @@ -9410,7 +9410,7 @@

    Arguments

    @@ -9425,7 +9425,7 @@

    Arguments

    @@ -9440,7 +9440,7 @@

    Arguments

    @@ -9455,7 +9455,7 @@

    Arguments

    @@ -9545,7 +9545,7 @@

    Arguments

    @@ -9615,7 +9615,7 @@

    Arguments

    @@ -9721,7 +9721,7 @@

    Arguments

    @@ -9808,7 +9808,7 @@

    Arguments

    @@ -9895,7 +9895,7 @@

    Arguments

    @@ -9982,7 +9982,7 @@

    Arguments

    @@ -10069,7 +10069,7 @@

    Arguments

    @@ -10156,7 +10156,7 @@

    Arguments

    @@ -10243,7 +10243,7 @@

    Arguments

    @@ -10315,7 +10315,7 @@

    Arguments

    @@ -10373,7 +10373,7 @@

    Arguments

    @@ -10388,7 +10388,7 @@

    Arguments

    @@ -10404,7 +10404,7 @@

    Arguments

    @@ -10420,7 +10420,7 @@

    Arguments

    @@ -10505,7 +10505,7 @@

    Arguments

    @@ -10545,7 +10545,7 @@

    Arguments

    @@ -10590,7 +10590,7 @@

    Arguments

    @@ -10605,7 +10605,7 @@

    Arguments

    @@ -10620,7 +10620,7 @@

    Arguments

    @@ -10635,7 +10635,7 @@

    Arguments

    @@ -10650,7 +10650,7 @@

    Arguments

    @@ -10740,7 +10740,7 @@

    Arguments

    @@ -10810,7 +10810,7 @@

    Arguments

    @@ -10855,7 +10855,7 @@

    Arguments

    @@ -10870,7 +10870,7 @@

    Arguments

    @@ -10885,7 +10885,7 @@

    Arguments

    @@ -10975,7 +10975,7 @@

    Arguments

    @@ -11030,7 +11030,7 @@

    Arguments

    @@ -11045,7 +11045,7 @@

    Arguments

    @@ -11060,7 +11060,7 @@

    Arguments

    @@ -11075,7 +11075,7 @@

    Arguments

    @@ -11090,7 +11090,7 @@

    Arguments

    @@ -11105,7 +11105,7 @@

    Arguments

    @@ -11195,7 +11195,7 @@

    Arguments

    @@ -11250,7 +11250,7 @@

    Arguments

    @@ -11265,7 +11265,7 @@

    Arguments

    @@ -11280,7 +11280,7 @@

    Arguments

    @@ -11295,7 +11295,7 @@

    Arguments

    @@ -11385,7 +11385,7 @@

    Arguments

    @@ -11455,7 +11455,7 @@

    Arguments

    @@ -11561,7 +11561,7 @@

    Arguments

    @@ -11648,7 +11648,7 @@

    Arguments

    @@ -11735,7 +11735,7 @@

    Arguments

    @@ -11822,7 +11822,7 @@

    Arguments

    @@ -11909,7 +11909,7 @@

    Arguments

    @@ -11996,7 +11996,7 @@

    Arguments

    @@ -12083,7 +12083,7 @@

    Arguments

    @@ -12155,7 +12155,7 @@

    Arguments

    @@ -12213,7 +12213,7 @@

    Arguments

    @@ -12228,7 +12228,7 @@

    Arguments

    @@ -12244,7 +12244,7 @@

    Arguments

    @@ -12260,7 +12260,7 @@

    Arguments

    @@ -12345,7 +12345,7 @@

    Arguments

    @@ -12385,7 +12385,7 @@

    Arguments

    @@ -12430,7 +12430,7 @@

    Arguments

    @@ -12445,7 +12445,7 @@

    Arguments

    @@ -12460,7 +12460,7 @@

    Arguments

    @@ -12475,7 +12475,7 @@

    Arguments

    @@ -12490,7 +12490,7 @@

    Arguments

    @@ -12580,7 +12580,7 @@

    Arguments

    @@ -12650,7 +12650,7 @@

    Arguments

    @@ -12695,7 +12695,7 @@

    Arguments

    @@ -12710,7 +12710,7 @@

    Arguments

    @@ -12725,7 +12725,7 @@

    Arguments

    @@ -12815,7 +12815,7 @@

    Arguments

    @@ -12870,7 +12870,7 @@

    Arguments

    @@ -12885,7 +12885,7 @@

    Arguments

    @@ -12900,7 +12900,7 @@

    Arguments

    @@ -12915,7 +12915,7 @@

    Arguments

    @@ -12930,7 +12930,7 @@

    Arguments

    @@ -12945,7 +12945,7 @@

    Arguments

    @@ -13035,7 +13035,7 @@

    Arguments

    @@ -13090,7 +13090,7 @@

    Arguments

    @@ -13105,7 +13105,7 @@

    Arguments

    @@ -13120,7 +13120,7 @@

    Arguments

    @@ -13135,7 +13135,7 @@

    Arguments

    @@ -13225,7 +13225,7 @@

    Arguments

    @@ -13295,7 +13295,7 @@

    Arguments

    @@ -13401,7 +13401,7 @@

    Arguments

    @@ -13488,7 +13488,7 @@

    Arguments

    @@ -13575,7 +13575,7 @@

    Arguments

    @@ -13662,7 +13662,7 @@

    Arguments

    @@ -13749,7 +13749,7 @@

    Arguments

    @@ -13836,7 +13836,7 @@

    Arguments

    @@ -13923,7 +13923,7 @@

    Arguments

    @@ -13995,7 +13995,7 @@

    Arguments

    @@ -14053,7 +14053,7 @@

    Arguments

    @@ -14068,7 +14068,7 @@

    Arguments

    @@ -14084,7 +14084,7 @@

    Arguments

    @@ -14100,7 +14100,7 @@

    Arguments

    @@ -14185,7 +14185,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_btree.html b/develop/module/dbcsr_btree.html index e612774b3b9..7e7a18c417a 100644 --- a/develop/module/dbcsr_btree.html +++ b/develop/module/dbcsr_btree.html @@ -115,8 +115,8 @@

    Variables

    keyt valt - sp - dp + sp + dp
    @@ -341,7 +341,7 @@

    Variables

    @@ -358,7 +358,7 @@

    Variables

    @@ -425,7 +425,7 @@

    Arguments

    @@ -479,7 +479,7 @@

    Arguments

    @@ -533,7 +533,7 @@

    Arguments

    @@ -587,7 +587,7 @@

    Arguments

    @@ -651,7 +651,7 @@

    Arguments

    @@ -666,7 +666,7 @@

    Arguments

    @@ -681,7 +681,7 @@

    Arguments

    @@ -765,7 +765,7 @@

    Arguments

    @@ -780,7 +780,7 @@

    Arguments

    @@ -795,7 +795,7 @@

    Arguments

    @@ -879,7 +879,7 @@

    Arguments

    @@ -894,7 +894,7 @@

    Arguments

    @@ -909,7 +909,7 @@

    Arguments

    @@ -993,7 +993,7 @@

    Arguments

    @@ -1008,7 +1008,7 @@

    Arguments

    @@ -1023,7 +1023,7 @@

    Arguments

    @@ -1117,7 +1117,7 @@

    Arguments

    @@ -1132,7 +1132,7 @@

    Arguments

    @@ -1147,7 +1147,7 @@

    Arguments

    @@ -1201,7 +1201,7 @@

    Arguments

    @@ -1216,7 +1216,7 @@

    Arguments

    @@ -1231,7 +1231,7 @@

    Arguments

    @@ -1285,7 +1285,7 @@

    Arguments

    @@ -1300,7 +1300,7 @@

    Arguments

    @@ -1315,7 +1315,7 @@

    Arguments

    @@ -1369,7 +1369,7 @@

    Arguments

    @@ -1384,7 +1384,7 @@

    Arguments

    @@ -1399,7 +1399,7 @@

    Arguments

    @@ -1463,7 +1463,7 @@

    Arguments

    @@ -1478,7 +1478,7 @@

    Arguments

    @@ -1532,7 +1532,7 @@

    Arguments

    @@ -1547,7 +1547,7 @@

    Arguments

    @@ -1601,7 +1601,7 @@

    Arguments

    @@ -1616,7 +1616,7 @@

    Arguments

    @@ -1670,7 +1670,7 @@

    Arguments

    @@ -1685,7 +1685,7 @@

    Arguments

    @@ -1923,7 +1923,7 @@

    Components

    @@ -1940,7 +1940,7 @@

    Components

    @@ -1989,7 +1989,7 @@

    Components

    @@ -2006,7 +2006,7 @@

    Components

    @@ -2055,7 +2055,7 @@

    Components

    @@ -2072,7 +2072,7 @@

    Components

    @@ -2121,7 +2121,7 @@

    Components

    @@ -2138,7 +2138,7 @@

    Components

    @@ -2187,7 +2187,7 @@

    Components

    @@ -2221,7 +2221,7 @@

    Components

    @@ -2238,7 +2238,7 @@

    Components

    @@ -2321,7 +2321,7 @@

    Components

    @@ -2370,7 +2370,7 @@

    Components

    @@ -2404,7 +2404,7 @@

    Components

    @@ -2438,7 +2438,7 @@

    Components

    @@ -2455,7 +2455,7 @@

    Components

    @@ -2504,7 +2504,7 @@

    Components

    @@ -2553,7 +2553,7 @@

    Components

    @@ -2587,7 +2587,7 @@

    Components

    @@ -2604,7 +2604,7 @@

    Components

    @@ -2687,7 +2687,7 @@

    Components

    @@ -2736,7 +2736,7 @@

    Components

    @@ -2770,7 +2770,7 @@

    Components

    @@ -2804,7 +2804,7 @@

    Components

    @@ -2821,7 +2821,7 @@

    Components

    @@ -2870,7 +2870,7 @@

    Components

    @@ -2919,7 +2919,7 @@

    Components

    @@ -2953,7 +2953,7 @@

    Components

    @@ -2970,7 +2970,7 @@

    Components

    @@ -3053,7 +3053,7 @@

    Components

    @@ -3102,7 +3102,7 @@

    Components

    @@ -3136,7 +3136,7 @@

    Components

    @@ -3170,7 +3170,7 @@

    Components

    @@ -3187,7 +3187,7 @@

    Components

    @@ -3236,7 +3236,7 @@

    Components

    @@ -3285,7 +3285,7 @@

    Components

    @@ -3319,7 +3319,7 @@

    Components

    @@ -3336,7 +3336,7 @@

    Components

    @@ -3419,7 +3419,7 @@

    Components

    @@ -3468,7 +3468,7 @@

    Components

    @@ -3502,7 +3502,7 @@

    Components

    @@ -3536,7 +3536,7 @@

    Components

    @@ -3553,7 +3553,7 @@

    Components

    @@ -3602,7 +3602,7 @@

    Components

    @@ -3851,7 +3851,7 @@

    Arguments

    @@ -3891,7 +3891,7 @@

    Arguments

    @@ -3946,7 +3946,7 @@

    Arguments

    @@ -3961,7 +3961,7 @@

    Arguments

    @@ -4001,7 +4001,7 @@

    Arguments

    @@ -4016,7 +4016,7 @@

    Arguments

    @@ -4031,7 +4031,7 @@

    Arguments

    @@ -4046,7 +4046,7 @@

    Arguments

    @@ -4101,7 +4101,7 @@

    Arguments

    @@ -4116,7 +4116,7 @@

    Arguments

    @@ -4131,7 +4131,7 @@

    Arguments

    @@ -4216,7 +4216,7 @@

    Arguments

    @@ -4231,7 +4231,7 @@

    Arguments

    @@ -4246,7 +4246,7 @@

    Arguments

    @@ -4261,7 +4261,7 @@

    Arguments

    @@ -4316,7 +4316,7 @@

    Arguments

    @@ -4331,7 +4331,7 @@

    Arguments

    @@ -4346,7 +4346,7 @@

    Arguments

    @@ -4361,7 +4361,7 @@

    Arguments

    @@ -4431,7 +4431,7 @@

    Arguments

    @@ -4461,7 +4461,7 @@

    Arguments

    @@ -4476,7 +4476,7 @@

    Arguments

    @@ -4491,7 +4491,7 @@

    Arguments

    @@ -4576,7 +4576,7 @@

    Arguments

    @@ -4606,7 +4606,7 @@

    Arguments

    @@ -4621,7 +4621,7 @@

    Arguments

    @@ -4636,7 +4636,7 @@

    Arguments

    @@ -4721,7 +4721,7 @@

    Arguments

    @@ -4736,7 +4736,7 @@

    Arguments

    @@ -4791,7 +4791,7 @@

    Arguments

    @@ -4831,7 +4831,7 @@

    Arguments

    @@ -4886,7 +4886,7 @@

    Arguments

    @@ -4901,7 +4901,7 @@

    Arguments

    @@ -4916,7 +4916,7 @@

    Arguments

    @@ -4956,7 +4956,7 @@

    Arguments

    @@ -4971,7 +4971,7 @@

    Arguments

    @@ -5041,7 +5041,7 @@

    Arguments

    @@ -5056,7 +5056,7 @@

    Arguments

    @@ -5126,7 +5126,7 @@

    Arguments

    @@ -5141,7 +5141,7 @@

    Arguments

    @@ -5241,7 +5241,7 @@

    Arguments

    @@ -5256,7 +5256,7 @@

    Arguments

    @@ -5356,7 +5356,7 @@

    Arguments

    @@ -5371,7 +5371,7 @@

    Arguments

    @@ -5441,7 +5441,7 @@

    Arguments

    @@ -5481,7 +5481,7 @@

    Arguments

    @@ -5536,7 +5536,7 @@

    Arguments

    @@ -5551,7 +5551,7 @@

    Arguments

    @@ -5591,7 +5591,7 @@

    Arguments

    @@ -5606,7 +5606,7 @@

    Arguments

    @@ -5621,7 +5621,7 @@

    Arguments

    @@ -5636,7 +5636,7 @@

    Arguments

    @@ -5691,7 +5691,7 @@

    Arguments

    @@ -5706,7 +5706,7 @@

    Arguments

    @@ -5721,7 +5721,7 @@

    Arguments

    @@ -5806,7 +5806,7 @@

    Arguments

    @@ -5821,7 +5821,7 @@

    Arguments

    @@ -5836,7 +5836,7 @@

    Arguments

    @@ -5851,7 +5851,7 @@

    Arguments

    @@ -5906,7 +5906,7 @@

    Arguments

    @@ -5921,7 +5921,7 @@

    Arguments

    @@ -5936,7 +5936,7 @@

    Arguments

    @@ -5951,7 +5951,7 @@

    Arguments

    @@ -6021,7 +6021,7 @@

    Arguments

    @@ -6051,7 +6051,7 @@

    Arguments

    @@ -6066,7 +6066,7 @@

    Arguments

    @@ -6081,7 +6081,7 @@

    Arguments

    @@ -6166,7 +6166,7 @@

    Arguments

    @@ -6196,7 +6196,7 @@

    Arguments

    @@ -6211,7 +6211,7 @@

    Arguments

    @@ -6226,7 +6226,7 @@

    Arguments

    @@ -6311,7 +6311,7 @@

    Arguments

    @@ -6326,7 +6326,7 @@

    Arguments

    @@ -6381,7 +6381,7 @@

    Arguments

    @@ -6421,7 +6421,7 @@

    Arguments

    @@ -6476,7 +6476,7 @@

    Arguments

    @@ -6491,7 +6491,7 @@

    Arguments

    @@ -6506,7 +6506,7 @@

    Arguments

    @@ -6546,7 +6546,7 @@

    Arguments

    @@ -6561,7 +6561,7 @@

    Arguments

    @@ -6631,7 +6631,7 @@

    Arguments

    @@ -6646,7 +6646,7 @@

    Arguments

    @@ -6716,7 +6716,7 @@

    Arguments

    @@ -6731,7 +6731,7 @@

    Arguments

    @@ -6831,7 +6831,7 @@

    Arguments

    @@ -6846,7 +6846,7 @@

    Arguments

    @@ -6946,7 +6946,7 @@

    Arguments

    @@ -6961,7 +6961,7 @@

    Arguments

    @@ -7031,7 +7031,7 @@

    Arguments

    @@ -7071,7 +7071,7 @@

    Arguments

    @@ -7126,7 +7126,7 @@

    Arguments

    @@ -7141,7 +7141,7 @@

    Arguments

    @@ -7181,7 +7181,7 @@

    Arguments

    @@ -7196,7 +7196,7 @@

    Arguments

    @@ -7211,7 +7211,7 @@

    Arguments

    @@ -7226,7 +7226,7 @@

    Arguments

    @@ -7281,7 +7281,7 @@

    Arguments

    @@ -7296,7 +7296,7 @@

    Arguments

    @@ -7311,7 +7311,7 @@

    Arguments

    @@ -7396,7 +7396,7 @@

    Arguments

    @@ -7411,7 +7411,7 @@

    Arguments

    @@ -7426,7 +7426,7 @@

    Arguments

    @@ -7441,7 +7441,7 @@

    Arguments

    @@ -7496,7 +7496,7 @@

    Arguments

    @@ -7511,7 +7511,7 @@

    Arguments

    @@ -7526,7 +7526,7 @@

    Arguments

    @@ -7541,7 +7541,7 @@

    Arguments

    @@ -7611,7 +7611,7 @@

    Arguments

    @@ -7641,7 +7641,7 @@

    Arguments

    @@ -7656,7 +7656,7 @@

    Arguments

    @@ -7671,7 +7671,7 @@

    Arguments

    @@ -7756,7 +7756,7 @@

    Arguments

    @@ -7786,7 +7786,7 @@

    Arguments

    @@ -7801,7 +7801,7 @@

    Arguments

    @@ -7816,7 +7816,7 @@

    Arguments

    @@ -7901,7 +7901,7 @@

    Arguments

    @@ -7916,7 +7916,7 @@

    Arguments

    @@ -7971,7 +7971,7 @@

    Arguments

    @@ -8011,7 +8011,7 @@

    Arguments

    @@ -8066,7 +8066,7 @@

    Arguments

    @@ -8081,7 +8081,7 @@

    Arguments

    @@ -8096,7 +8096,7 @@

    Arguments

    @@ -8136,7 +8136,7 @@

    Arguments

    @@ -8151,7 +8151,7 @@

    Arguments

    @@ -8221,7 +8221,7 @@

    Arguments

    @@ -8236,7 +8236,7 @@

    Arguments

    @@ -8306,7 +8306,7 @@

    Arguments

    @@ -8321,7 +8321,7 @@

    Arguments

    @@ -8421,7 +8421,7 @@

    Arguments

    @@ -8436,7 +8436,7 @@

    Arguments

    @@ -8536,7 +8536,7 @@

    Arguments

    @@ -8551,7 +8551,7 @@

    Arguments

    @@ -8621,7 +8621,7 @@

    Arguments

    @@ -8661,7 +8661,7 @@

    Arguments

    @@ -8716,7 +8716,7 @@

    Arguments

    @@ -8731,7 +8731,7 @@

    Arguments

    @@ -8771,7 +8771,7 @@

    Arguments

    @@ -8786,7 +8786,7 @@

    Arguments

    @@ -8801,7 +8801,7 @@

    Arguments

    @@ -8816,7 +8816,7 @@

    Arguments

    @@ -8871,7 +8871,7 @@

    Arguments

    @@ -8886,7 +8886,7 @@

    Arguments

    @@ -8901,7 +8901,7 @@

    Arguments

    @@ -8986,7 +8986,7 @@

    Arguments

    @@ -9001,7 +9001,7 @@

    Arguments

    @@ -9016,7 +9016,7 @@

    Arguments

    @@ -9031,7 +9031,7 @@

    Arguments

    @@ -9086,7 +9086,7 @@

    Arguments

    @@ -9101,7 +9101,7 @@

    Arguments

    @@ -9116,7 +9116,7 @@

    Arguments

    @@ -9131,7 +9131,7 @@

    Arguments

    @@ -9201,7 +9201,7 @@

    Arguments

    @@ -9231,7 +9231,7 @@

    Arguments

    @@ -9246,7 +9246,7 @@

    Arguments

    @@ -9261,7 +9261,7 @@

    Arguments

    @@ -9346,7 +9346,7 @@

    Arguments

    @@ -9376,7 +9376,7 @@

    Arguments

    @@ -9391,7 +9391,7 @@

    Arguments

    @@ -9406,7 +9406,7 @@

    Arguments

    @@ -9491,7 +9491,7 @@

    Arguments

    @@ -9506,7 +9506,7 @@

    Arguments

    @@ -9561,7 +9561,7 @@

    Arguments

    @@ -9601,7 +9601,7 @@

    Arguments

    @@ -9656,7 +9656,7 @@

    Arguments

    @@ -9671,7 +9671,7 @@

    Arguments

    @@ -9686,7 +9686,7 @@

    Arguments

    @@ -9726,7 +9726,7 @@

    Arguments

    @@ -9741,7 +9741,7 @@

    Arguments

    @@ -9811,7 +9811,7 @@

    Arguments

    @@ -9826,7 +9826,7 @@

    Arguments

    @@ -9896,7 +9896,7 @@

    Arguments

    @@ -9911,7 +9911,7 @@

    Arguments

    @@ -10011,7 +10011,7 @@

    Arguments

    @@ -10026,7 +10026,7 @@

    Arguments

    @@ -10126,7 +10126,7 @@

    Arguments

    @@ -10141,7 +10141,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_config.html b/develop/module/dbcsr_config.html index 0b068222147..6341f5c958e 100644 --- a/develop/module/dbcsr_config.html +++ b/develop/module/dbcsr_config.html @@ -113,7 +113,7 @@

    Variables

    @@ -228,11 +228,11 @@

    Uses

    @@ -257,7 +257,7 @@

    Variables

    @@ -750,7 +750,7 @@

    Variables

    @@ -801,7 +801,7 @@

    Components

    @@ -818,7 +818,7 @@

    Components

    @@ -882,7 +882,7 @@

    Components

    @@ -899,7 +899,7 @@

    Components

    @@ -916,7 +916,7 @@

    Components

    @@ -1019,7 +1019,7 @@

    Components

    @@ -1036,7 +1036,7 @@

    Components

    @@ -1053,7 +1053,7 @@

    Components

    @@ -1139,7 +1139,7 @@

    Components

    @@ -1156,7 +1156,7 @@

    Components

    @@ -1173,7 +1173,7 @@

    Components

    @@ -1259,7 +1259,7 @@

    Components

    @@ -1276,7 +1276,7 @@

    Components

    @@ -1293,7 +1293,7 @@

    Components

    @@ -1802,7 +1802,7 @@

    Arguments

    @@ -1847,7 +1847,7 @@

    Arguments

    @@ -1948,7 +1948,7 @@

    Arguments

    @@ -2003,7 +2003,7 @@

    Arguments

    @@ -2058,7 +2058,7 @@

    Arguments

    @@ -2113,7 +2113,7 @@

    Arguments

    @@ -2243,7 +2243,7 @@

    Arguments

    @@ -2273,7 +2273,7 @@

    Arguments

    @@ -2613,7 +2613,7 @@

    Arguments

    @@ -2643,7 +2643,7 @@

    Arguments

    @@ -2923,7 +2923,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_csr_conversions.html b/develop/module/dbcsr_csr_conversions.html index 4ec63553536..b2972257729 100644 --- a/develop/module/dbcsr_csr_conversions.html +++ b/develop/module/dbcsr_csr_conversions.html @@ -113,8 +113,8 @@

    Variables

    @@ -271,7 +271,7 @@

    Variables

    @@ -355,7 +355,7 @@

    private interface csr_create
  • - public subroutine csr_create_new(csr_mat, nrows_total, ncols_total, nze_total, nze_local, nrows_local, mp_group, data_type) + public subroutine csr_create_new(csr_mat, nrows_total, ncols_total, nze_total, nze_local, nrows_local, mp_group, data_type)

    @@ -374,7 +374,7 @@

    Arguments

  • @@ -389,7 +389,7 @@

    Arguments

    @@ -405,7 +405,7 @@

    Arguments

    @@ -421,7 +421,7 @@

    Arguments

    @@ -436,7 +436,7 @@

    Arguments

    @@ -452,7 +452,7 @@

    Arguments

    @@ -468,7 +468,7 @@

    Arguments

    @@ -483,7 +483,7 @@

    Arguments

    @@ -523,7 +523,7 @@

    Arguments

    @@ -538,7 +538,7 @@

    Arguments

    @@ -826,7 +826,7 @@

    Components

    @@ -843,7 +843,7 @@

    Components

    @@ -860,7 +860,7 @@

    Components

    @@ -877,7 +877,7 @@

    Components

    @@ -894,7 +894,7 @@

    Components

    @@ -943,7 +943,7 @@

    Components

    @@ -963,7 +963,7 @@

    Components

    @@ -983,7 +983,7 @@

    Components

    @@ -1003,7 +1003,7 @@

    Components

    @@ -1023,7 +1023,7 @@

    Components

    @@ -1040,7 +1040,7 @@

    Components

    @@ -1162,7 +1162,7 @@

    Components

    @@ -1228,7 +1228,7 @@

    Components

    @@ -1278,7 +1278,7 @@

    Arguments

    @@ -1293,7 +1293,7 @@

    Arguments

    @@ -1324,7 +1324,7 @@

    Subroutines

    -

    public subroutine csr_create_new(csr_mat, nrows_total, ncols_total, nze_total, nze_local, nrows_local, mp_group, data_type) +

    public subroutine csr_create_new(csr_mat, nrows_total, ncols_total, nze_total, nze_local, nrows_local, mp_group, data_type)

    @@ -1343,7 +1343,7 @@

    Arguments

    @@ -1358,7 +1358,7 @@

    Arguments

    @@ -1374,7 +1374,7 @@

    Arguments

    @@ -1390,7 +1390,7 @@

    Arguments

    @@ -1405,7 +1405,7 @@

    Arguments

    @@ -1421,7 +1421,7 @@

    Arguments

    @@ -1437,7 +1437,7 @@

    Arguments

    @@ -1452,7 +1452,7 @@

    Arguments

    @@ -1493,7 +1493,7 @@

    Arguments

    @@ -1508,7 +1508,7 @@

    Arguments

    @@ -1549,7 +1549,7 @@

    Arguments

    @@ -1604,7 +1604,7 @@

    Arguments

    @@ -1660,7 +1660,7 @@

    Arguments

    @@ -1834,7 +1834,7 @@

    Arguments

    @@ -1890,7 +1890,7 @@

    Arguments

    @@ -1931,7 +1931,7 @@

    Arguments

    @@ -1946,7 +1946,7 @@

    Arguments

    @@ -1961,7 +1961,7 @@

    Arguments

    @@ -1978,7 +1978,7 @@

    Arguments

    @@ -1994,7 +1994,7 @@

    Arguments

    @@ -2035,7 +2035,7 @@

    Arguments

    @@ -2050,7 +2050,7 @@

    Arguments

    @@ -2090,7 +2090,7 @@

    Arguments

    @@ -2105,7 +2105,7 @@

    Arguments

    @@ -2145,7 +2145,7 @@

    Arguments

    @@ -2160,7 +2160,7 @@

    Arguments

    @@ -2181,7 +2181,7 @@

    Arguments

    -

    public subroutine dbcsr_to_csr_filter(dbcsr_mat, csr_sparsity, eps) +

    public subroutine dbcsr_to_csr_filter(dbcsr_mat, csr_sparsity, eps)

    @@ -2201,7 +2201,7 @@

    Arguments

    @@ -2216,7 +2216,7 @@

    Arguments

    @@ -2231,7 +2231,7 @@

    Arguments

    @@ -2271,7 +2271,7 @@

    Arguments

    @@ -2286,7 +2286,7 @@

    Arguments

    @@ -2316,7 +2316,7 @@

    Arguments

    @@ -2371,7 +2371,7 @@

    Arguments

    @@ -2386,7 +2386,7 @@

    Arguments

    @@ -2426,7 +2426,7 @@

    Arguments

    @@ -2488,7 +2488,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_cuda_profiling.html b/develop/module/dbcsr_cuda_profiling.html index afc557b601f..3862d8ced1e 100644 --- a/develop/module/dbcsr_cuda_profiling.html +++ b/develop/module/dbcsr_cuda_profiling.html @@ -152,9 +152,9 @@

    Uses

    @@ -206,7 +206,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_data_methods.html b/develop/module/dbcsr_data_methods.html index 3ba80bcb74c..c6ac544eb29 100644 --- a/develop/module/dbcsr_data_methods.html +++ b/develop/module/dbcsr_data_methods.html @@ -113,9 +113,9 @@

    Variables

    @@ -167,14 +167,14 @@

    Uses

    @@ -199,7 +199,7 @@

    Variables

    @@ -216,7 +216,7 @@

    Variables

    @@ -233,7 +233,7 @@

    Variables

    @@ -281,7 +281,7 @@

    Arguments

    @@ -321,7 +321,7 @@

    Arguments

    @@ -361,7 +361,7 @@

    Arguments

    @@ -376,7 +376,7 @@

    Arguments

    @@ -391,7 +391,7 @@

    Arguments

    @@ -423,7 +423,7 @@

    Arguments

    @@ -464,7 +464,7 @@

    Arguments

    @@ -479,7 +479,7 @@

    Arguments

    @@ -494,7 +494,7 @@

    Arguments

    @@ -510,7 +510,7 @@

    Arguments

    @@ -581,7 +581,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_data_methods_low.html b/develop/module/dbcsr_data_methods_low.html index 8981bf71186..8c6d612e213 100644 --- a/develop/module/dbcsr_data_methods_low.html +++ b/develop/module/dbcsr_data_methods_low.html @@ -113,9 +113,9 @@

    Variables

    @@ -137,7 +137,7 @@

    Interfaces

    dbcsr_scalar_get_valuedbcsr_data_set_pointerdbcsr_get_data - dbcsr_get_data_p + dbcsr_get_data_pdbcsr_get_data_cptrdbcsr_data_get_sizes @@ -254,12 +254,12 @@

    Uses

    @@ -284,7 +284,7 @@

    Variables

    @@ -301,7 +301,7 @@

    Variables

    @@ -318,7 +318,7 @@

    Variables

    @@ -373,7 +373,7 @@

    Arguments

    @@ -417,7 +417,7 @@

    Arguments

    @@ -461,7 +461,7 @@

    Arguments

    @@ -505,7 +505,7 @@

    Arguments

    @@ -577,7 +577,7 @@

    Arguments

    @@ -631,7 +631,7 @@

    Arguments

    @@ -685,7 +685,7 @@

    Arguments

    @@ -739,7 +739,7 @@

    Arguments

    @@ -791,7 +791,7 @@

    Arguments

    @@ -806,7 +806,7 @@

    Arguments

    @@ -848,7 +848,7 @@

    Arguments

    @@ -863,7 +863,7 @@

    Arguments

    @@ -905,7 +905,7 @@

    Arguments

    @@ -920,7 +920,7 @@

    Arguments

    @@ -962,7 +962,7 @@

    Arguments

    @@ -977,7 +977,7 @@

    Arguments

    @@ -1019,7 +1019,7 @@

    Arguments

    @@ -1034,7 +1034,7 @@

    Arguments

    @@ -1076,7 +1076,7 @@

    Arguments

    @@ -1091,7 +1091,7 @@

    Arguments

    @@ -1133,7 +1133,7 @@

    Arguments

    @@ -1148,7 +1148,7 @@

    Arguments

    @@ -1190,7 +1190,7 @@

    Arguments

    @@ -1205,7 +1205,7 @@

    Arguments

    @@ -1246,7 +1246,7 @@

    Arguments

    @@ -1261,7 +1261,7 @@

    Arguments

    @@ -1277,7 +1277,7 @@

    Arguments

    @@ -1357,7 +1357,7 @@

    Arguments

    @@ -1372,7 +1372,7 @@

    Arguments

    @@ -1387,7 +1387,7 @@

    Arguments

    @@ -1403,7 +1403,7 @@

    Arguments

    @@ -1443,7 +1443,7 @@

    Arguments

    @@ -1458,7 +1458,7 @@

    Arguments

    @@ -1473,7 +1473,7 @@

    Arguments

    @@ -1489,7 +1489,7 @@

    Arguments

    @@ -1529,7 +1529,7 @@

    Arguments

    @@ -1544,7 +1544,7 @@

    Arguments

    @@ -1559,7 +1559,7 @@

    Arguments

    @@ -1575,7 +1575,7 @@

    Arguments

    @@ -1615,7 +1615,7 @@

    Arguments

    @@ -1630,7 +1630,7 @@

    Arguments

    @@ -1645,7 +1645,7 @@

    Arguments

    @@ -1661,7 +1661,7 @@

    Arguments

    @@ -1701,7 +1701,7 @@

    Arguments

    @@ -1716,7 +1716,7 @@

    Arguments

    @@ -1731,7 +1731,7 @@

    Arguments

    @@ -1747,7 +1747,7 @@

    Arguments

    @@ -1787,7 +1787,7 @@

    Arguments

    @@ -1802,7 +1802,7 @@

    Arguments

    @@ -1817,7 +1817,7 @@

    Arguments

    @@ -1833,7 +1833,7 @@

    Arguments

    @@ -1873,7 +1873,7 @@

    Arguments

    @@ -1888,7 +1888,7 @@

    Arguments

    @@ -1903,7 +1903,7 @@

    Arguments

    @@ -1919,7 +1919,7 @@

    Arguments

    @@ -1959,7 +1959,7 @@

    Arguments

    @@ -1974,7 +1974,7 @@

    Arguments

    @@ -1989,7 +1989,7 @@

    Arguments

    @@ -2005,7 +2005,7 @@

    Arguments

    @@ -2029,8 +2029,8 @@

    Arguments

    - -

    public interface dbcsr_get_data_p + +

    public interface dbcsr_get_data_p

      @@ -2059,7 +2059,7 @@

      Arguments

    @@ -2074,7 +2074,7 @@

    Arguments

    @@ -2089,7 +2089,7 @@

    Arguments

    @@ -2105,7 +2105,7 @@

    Arguments

    @@ -2154,7 +2154,7 @@

    Arguments

    @@ -2169,7 +2169,7 @@

    Arguments

    @@ -2184,7 +2184,7 @@

    Arguments

    @@ -2200,7 +2200,7 @@

    Arguments

    @@ -2249,7 +2249,7 @@

    Arguments

    @@ -2264,7 +2264,7 @@

    Arguments

    @@ -2279,7 +2279,7 @@

    Arguments

    @@ -2295,7 +2295,7 @@

    Arguments

    @@ -2344,7 +2344,7 @@

    Arguments

    @@ -2359,7 +2359,7 @@

    Arguments

    @@ -2374,7 +2374,7 @@

    Arguments

    @@ -2390,7 +2390,7 @@

    Arguments

    @@ -2449,7 +2449,7 @@

    Arguments

    @@ -2464,7 +2464,7 @@

    Arguments

    @@ -2479,7 +2479,7 @@

    Arguments

    @@ -2495,7 +2495,7 @@

    Arguments

    @@ -2544,7 +2544,7 @@

    Arguments

    @@ -2559,7 +2559,7 @@

    Arguments

    @@ -2574,7 +2574,7 @@

    Arguments

    @@ -2590,7 +2590,7 @@

    Arguments

    @@ -2639,7 +2639,7 @@

    Arguments

    @@ -2654,7 +2654,7 @@

    Arguments

    @@ -2669,7 +2669,7 @@

    Arguments

    @@ -2685,7 +2685,7 @@

    Arguments

    @@ -2734,7 +2734,7 @@

    Arguments

    @@ -2749,7 +2749,7 @@

    Arguments

    @@ -2764,7 +2764,7 @@

    Arguments

    @@ -2780,7 +2780,7 @@

    Arguments

    @@ -2835,7 +2835,7 @@

    Arguments

    @@ -2850,7 +2850,7 @@

    Arguments

    @@ -2865,7 +2865,7 @@

    Arguments

    @@ -2904,7 +2904,7 @@

    Arguments

    @@ -2934,7 +2934,7 @@

    Arguments

    @@ -2973,7 +2973,7 @@

    Arguments

    @@ -2988,7 +2988,7 @@

    Arguments

    @@ -3004,7 +3004,7 @@

    Arguments

    @@ -3020,7 +3020,7 @@

    Arguments

    @@ -3068,7 +3068,7 @@

    Arguments

    @@ -3113,7 +3113,7 @@

    Arguments

    @@ -3158,7 +3158,7 @@

    Arguments

    @@ -3203,7 +3203,7 @@

    Arguments

    @@ -3248,7 +3248,7 @@

    Arguments

    @@ -3293,7 +3293,7 @@

    Arguments

    @@ -3338,7 +3338,7 @@

    Arguments

    @@ -3383,7 +3383,7 @@

    Arguments

    @@ -3490,7 +3490,7 @@

    Arguments

    @@ -3550,7 +3550,7 @@

    Arguments

    @@ -3596,7 +3596,7 @@

    Arguments

    @@ -3642,7 +3642,7 @@

    Arguments

    @@ -3688,7 +3688,7 @@

    Arguments

    @@ -3733,7 +3733,7 @@

    Arguments

    @@ -3778,7 +3778,7 @@

    Arguments

    @@ -3793,7 +3793,7 @@

    Arguments

    @@ -3808,7 +3808,7 @@

    Arguments

    @@ -3824,7 +3824,7 @@

    Arguments

    @@ -3871,7 +3871,7 @@

    Arguments

    @@ -3886,7 +3886,7 @@

    Arguments

    @@ -3902,7 +3902,7 @@

    Arguments

    @@ -3949,7 +3949,7 @@

    Arguments

    @@ -3964,7 +3964,7 @@

    Arguments

    @@ -3980,7 +3980,7 @@

    Arguments

    @@ -4026,7 +4026,7 @@

    Arguments

    @@ -4071,7 +4071,7 @@

    Arguments

    @@ -4086,7 +4086,7 @@

    Arguments

    @@ -4101,7 +4101,7 @@

    Arguments

    @@ -4117,7 +4117,7 @@

    Arguments

    @@ -4164,7 +4164,7 @@

    Arguments

    @@ -4179,7 +4179,7 @@

    Arguments

    @@ -4195,7 +4195,7 @@

    Arguments

    @@ -4242,7 +4242,7 @@

    Arguments

    @@ -4257,7 +4257,7 @@

    Arguments

    @@ -4273,7 +4273,7 @@

    Arguments

    @@ -4319,7 +4319,7 @@

    Arguments

    @@ -4364,7 +4364,7 @@

    Arguments

    @@ -4379,7 +4379,7 @@

    Arguments

    @@ -4394,7 +4394,7 @@

    Arguments

    @@ -4410,7 +4410,7 @@

    Arguments

    @@ -4457,7 +4457,7 @@

    Arguments

    @@ -4472,7 +4472,7 @@

    Arguments

    @@ -4488,7 +4488,7 @@

    Arguments

    @@ -4535,7 +4535,7 @@

    Arguments

    @@ -4550,7 +4550,7 @@

    Arguments

    @@ -4566,7 +4566,7 @@

    Arguments

    @@ -4612,7 +4612,7 @@

    Arguments

    @@ -4657,7 +4657,7 @@

    Arguments

    @@ -4672,7 +4672,7 @@

    Arguments

    @@ -4687,7 +4687,7 @@

    Arguments

    @@ -4703,7 +4703,7 @@

    Arguments

    @@ -4750,7 +4750,7 @@

    Arguments

    @@ -4765,7 +4765,7 @@

    Arguments

    @@ -4781,7 +4781,7 @@

    Arguments

    @@ -4828,7 +4828,7 @@

    Arguments

    @@ -4843,7 +4843,7 @@

    Arguments

    @@ -4859,7 +4859,7 @@

    Arguments

    @@ -4905,7 +4905,7 @@

    Arguments

    @@ -4955,7 +4955,7 @@

    Arguments

    @@ -4995,7 +4995,7 @@

    Arguments

    @@ -5010,7 +5010,7 @@

    Arguments

    @@ -5050,7 +5050,7 @@

    Arguments

    @@ -5090,7 +5090,7 @@

    Arguments

    @@ -5130,7 +5130,7 @@

    Arguments

    @@ -5172,7 +5172,7 @@

    Arguments

    @@ -5187,7 +5187,7 @@

    Arguments

    @@ -5203,7 +5203,7 @@

    Arguments

    @@ -5274,7 +5274,7 @@

    Arguments

    @@ -5289,7 +5289,7 @@

    Arguments

    @@ -5305,7 +5305,7 @@

    Arguments

    @@ -5346,7 +5346,7 @@

    Arguments

    @@ -5361,7 +5361,7 @@

    Arguments

    @@ -5376,7 +5376,7 @@

    Arguments

    @@ -5416,7 +5416,7 @@

    Arguments

    @@ -5431,7 +5431,7 @@

    Arguments

    @@ -5446,7 +5446,7 @@

    Arguments

    @@ -5486,7 +5486,7 @@

    Arguments

    @@ -5501,7 +5501,7 @@

    Arguments

    @@ -5517,7 +5517,7 @@

    Arguments

    @@ -5533,7 +5533,7 @@

    Arguments

    @@ -5573,7 +5573,7 @@

    Arguments

    @@ -5603,7 +5603,7 @@

    Arguments

    @@ -5643,7 +5643,7 @@

    Arguments

    @@ -5658,7 +5658,7 @@

    Arguments

    @@ -5698,7 +5698,7 @@

    Arguments

    @@ -5738,7 +5738,7 @@

    Arguments

    @@ -5793,7 +5793,7 @@

    Arguments

    @@ -5808,7 +5808,7 @@

    Arguments

    @@ -5848,7 +5848,7 @@

    Arguments

    @@ -5863,7 +5863,7 @@

    Arguments

    @@ -5903,7 +5903,7 @@

    Arguments

    @@ -5918,7 +5918,7 @@

    Arguments

    @@ -5933,7 +5933,7 @@

    Arguments

    @@ -5949,7 +5949,7 @@

    Arguments

    @@ -5990,7 +5990,7 @@

    Arguments

    @@ -6005,7 +6005,7 @@

    Arguments

    @@ -6020,7 +6020,7 @@

    Arguments

    @@ -6036,7 +6036,7 @@

    Arguments

    @@ -6092,7 +6092,7 @@

    Arguments

    @@ -6132,7 +6132,7 @@

    Arguments

    @@ -6147,7 +6147,7 @@

    Arguments

    @@ -6187,7 +6187,7 @@

    Arguments

    @@ -6202,7 +6202,7 @@

    Arguments

    @@ -6242,7 +6242,7 @@

    Arguments

    @@ -6257,7 +6257,7 @@

    Arguments

    @@ -6272,7 +6272,7 @@

    Arguments

    @@ -6288,7 +6288,7 @@

    Arguments

    @@ -6329,7 +6329,7 @@

    Arguments

    @@ -6344,7 +6344,7 @@

    Arguments

    @@ -6359,7 +6359,7 @@

    Arguments

    @@ -6375,7 +6375,7 @@

    Arguments

    @@ -6431,7 +6431,7 @@

    Arguments

    @@ -6471,7 +6471,7 @@

    Arguments

    @@ -6486,7 +6486,7 @@

    Arguments

    @@ -6526,7 +6526,7 @@

    Arguments

    @@ -6541,7 +6541,7 @@

    Arguments

    @@ -6581,7 +6581,7 @@

    Arguments

    @@ -6596,7 +6596,7 @@

    Arguments

    @@ -6611,7 +6611,7 @@

    Arguments

    @@ -6627,7 +6627,7 @@

    Arguments

    @@ -6668,7 +6668,7 @@

    Arguments

    @@ -6683,7 +6683,7 @@

    Arguments

    @@ -6698,7 +6698,7 @@

    Arguments

    @@ -6714,7 +6714,7 @@

    Arguments

    @@ -6770,7 +6770,7 @@

    Arguments

    @@ -6810,7 +6810,7 @@

    Arguments

    @@ -6825,7 +6825,7 @@

    Arguments

    @@ -6865,7 +6865,7 @@

    Arguments

    @@ -6880,7 +6880,7 @@

    Arguments

    @@ -6920,7 +6920,7 @@

    Arguments

    @@ -6935,7 +6935,7 @@

    Arguments

    @@ -6950,7 +6950,7 @@

    Arguments

    @@ -6966,7 +6966,7 @@

    Arguments

    @@ -7007,7 +7007,7 @@

    Arguments

    @@ -7022,7 +7022,7 @@

    Arguments

    @@ -7037,7 +7037,7 @@

    Arguments

    @@ -7053,7 +7053,7 @@

    Arguments

    @@ -7109,7 +7109,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_data_operations.html b/develop/module/dbcsr_data_operations.html index 4acca0587f8..c0cdcb213ac 100644 --- a/develop/module/dbcsr_data_operations.html +++ b/develop/module/dbcsr_data_operations.html @@ -113,7 +113,7 @@

    Variables

    @@ -165,12 +165,12 @@

    Uses

    @@ -195,7 +195,7 @@

    Variables

    @@ -243,7 +243,7 @@

    Arguments

    @@ -258,7 +258,7 @@

    Arguments

    @@ -343,7 +343,7 @@

    Arguments

    @@ -472,7 +472,7 @@

    Arguments

    @@ -487,7 +487,7 @@

    Arguments

    @@ -506,7 +506,7 @@

    Arguments

    @@ -525,7 +525,7 @@

    Arguments

    @@ -544,7 +544,7 @@

    Arguments

    @@ -563,7 +563,7 @@

    Arguments

    @@ -582,7 +582,7 @@

    Arguments

    @@ -597,7 +597,7 @@

    Arguments

    @@ -670,7 +670,7 @@

    Arguments

    @@ -685,7 +685,7 @@

    Arguments

    @@ -701,7 +701,7 @@

    Arguments

    @@ -732,7 +732,7 @@

    Arguments

    @@ -762,7 +762,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_data_types.html b/develop/module/dbcsr_data_types.html index 4c86fdd8f24..f0476de13e0 100644 --- a/develop/module/dbcsr_data_types.html +++ b/develop/module/dbcsr_data_types.html @@ -113,7 +113,7 @@

    Variables

    @@ -491,7 +491,7 @@

    Components

    @@ -508,7 +508,7 @@

    Components

    @@ -525,7 +525,7 @@

    Components

    @@ -542,7 +542,7 @@

    Components

    @@ -608,7 +608,7 @@

    Components

    @@ -657,7 +657,7 @@

    Components

    @@ -674,7 +674,7 @@

    Components

    @@ -723,7 +723,7 @@

    Components

    @@ -740,7 +740,7 @@

    Components

    @@ -789,7 +789,7 @@

    Components

    @@ -806,7 +806,7 @@

    Components

    @@ -823,7 +823,7 @@

    Components

    @@ -840,7 +840,7 @@

    Components

    @@ -857,7 +857,7 @@

    Components

    @@ -874,7 +874,7 @@

    Components

    @@ -957,7 +957,7 @@

    Components

    @@ -974,7 +974,7 @@

    Components

    @@ -991,7 +991,7 @@

    Components

    @@ -1008,7 +1008,7 @@

    Components

    @@ -1110,7 +1110,7 @@

    Components

    @@ -1127,7 +1127,7 @@

    Components

    @@ -1244,7 +1244,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_dict.html b/develop/module/dbcsr_dict.html index 0d8938267e1..110d607f319 100644 --- a/develop/module/dbcsr_dict.html +++ b/develop/module/dbcsr_dict.html @@ -113,7 +113,7 @@

    Variables

    @@ -229,8 +229,8 @@

    Uses

    @@ -323,7 +323,7 @@

    Arguments

    @@ -377,7 +377,7 @@

    Arguments

    @@ -441,7 +441,7 @@

    Arguments

    @@ -500,7 +500,7 @@

    Arguments

    @@ -569,7 +569,7 @@

    Arguments

    @@ -584,7 +584,7 @@

    Arguments

    @@ -638,7 +638,7 @@

    Arguments

    @@ -653,7 +653,7 @@

    Arguments

    @@ -719,7 +719,7 @@

    Arguments

    @@ -795,7 +795,7 @@

    Arguments

    @@ -1157,7 +1157,7 @@

    Components

    @@ -1174,7 +1174,7 @@

    Components

    @@ -1208,7 +1208,7 @@

    Components

    @@ -1257,7 +1257,7 @@

    Components

    @@ -1323,7 +1323,7 @@

    Components

    @@ -1372,7 +1372,7 @@

    Components

    @@ -1389,7 +1389,7 @@

    Components

    @@ -1438,7 +1438,7 @@

    Components

    @@ -1455,7 +1455,7 @@

    Components

    @@ -1489,7 +1489,7 @@

    Components

    @@ -1538,7 +1538,7 @@

    Components

    @@ -1604,7 +1604,7 @@

    Components

    @@ -1653,7 +1653,7 @@

    Components

    @@ -1670,7 +1670,7 @@

    Components

    @@ -1719,7 +1719,7 @@

    Arguments

    @@ -1764,7 +1764,7 @@

    Arguments

    @@ -1826,7 +1826,7 @@

    Arguments

    @@ -1946,7 +1946,7 @@

    Arguments

    @@ -2054,7 +2054,7 @@

    Arguments

    @@ -2174,7 +2174,7 @@

    Arguments

    @@ -2285,7 +2285,7 @@

    Arguments

    @@ -2382,7 +2382,7 @@

    Arguments

    @@ -2397,7 +2397,7 @@

    Arguments

    @@ -2452,7 +2452,7 @@

    Arguments

    @@ -2467,7 +2467,7 @@

    Arguments

    @@ -2537,7 +2537,7 @@

    Arguments

    @@ -2592,7 +2592,7 @@

    Arguments

    @@ -2689,7 +2689,7 @@

    Arguments

    @@ -2704,7 +2704,7 @@

    Arguments

    @@ -2759,7 +2759,7 @@

    Arguments

    @@ -2774,7 +2774,7 @@

    Arguments

    @@ -2844,7 +2844,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_dist_methods.html b/develop/module/dbcsr_dist_methods.html index 0fd06567015..2672d33310b 100644 --- a/develop/module/dbcsr_dist_methods.html +++ b/develop/module/dbcsr_dist_methods.html @@ -113,7 +113,7 @@

    Variables

    @@ -177,8 +177,8 @@

    Subroutines

    dbcsr_distribution_new_templatedbcsr_distribution_new_objdbcsr_distribution_new_low - dbcsr_distribution_get - dbcsr_distribution_hold + dbcsr_distribution_get + dbcsr_distribution_holddbcsr_distribution_make_threadsmake_threadsdbcsr_distribution_no_threads @@ -207,16 +207,16 @@

    Uses

    @@ -241,7 +241,7 @@

    Variables

    @@ -293,7 +293,7 @@

    Arguments

    @@ -308,7 +308,7 @@

    Arguments

    @@ -323,7 +323,7 @@

    Arguments

    @@ -338,7 +338,7 @@

    Arguments

    @@ -353,7 +353,7 @@

    Arguments

    @@ -368,7 +368,7 @@

    Arguments

    @@ -383,7 +383,7 @@

    Arguments

    @@ -423,7 +423,7 @@

    Arguments

    @@ -438,7 +438,7 @@

    Arguments

    @@ -453,7 +453,7 @@

    Arguments

    @@ -468,7 +468,7 @@

    Arguments

    @@ -483,7 +483,7 @@

    Arguments

    @@ -498,7 +498,7 @@

    Arguments

    @@ -537,7 +537,7 @@

    Arguments

    @@ -552,7 +552,7 @@

    Arguments

    @@ -567,7 +567,7 @@

    Arguments

    @@ -582,7 +582,7 @@

    Arguments

    @@ -597,7 +597,7 @@

    Arguments

    @@ -612,7 +612,7 @@

    Arguments

    @@ -627,7 +627,7 @@

    Arguments

    @@ -675,7 +675,7 @@

    Arguments

    @@ -720,7 +720,7 @@

    Arguments

    @@ -765,7 +765,7 @@

    Arguments

    @@ -810,7 +810,7 @@

    Arguments

    @@ -855,7 +855,7 @@

    Arguments

    @@ -900,7 +900,7 @@

    Arguments

    @@ -945,7 +945,7 @@

    Arguments

    @@ -990,7 +990,7 @@

    Arguments

    @@ -1035,7 +1035,7 @@

    Arguments

    @@ -1080,7 +1080,7 @@

    Arguments

    @@ -1125,7 +1125,7 @@

    Arguments

    @@ -1170,7 +1170,7 @@

    Arguments

    @@ -1215,7 +1215,7 @@

    Arguments

    @@ -1260,7 +1260,7 @@

    Arguments

    @@ -1275,7 +1275,7 @@

    Arguments

    @@ -1290,7 +1290,7 @@

    Arguments

    @@ -1335,7 +1335,7 @@

    Arguments

    @@ -1380,7 +1380,7 @@

    Arguments

    @@ -1425,7 +1425,7 @@

    Arguments

    @@ -1487,7 +1487,7 @@

    Arguments

    @@ -1504,7 +1504,7 @@

    Arguments

    @@ -1521,7 +1521,7 @@

    Arguments

    @@ -1573,7 +1573,7 @@

    Arguments

    @@ -1588,7 +1588,7 @@

    Arguments

    @@ -1603,7 +1603,7 @@

    Arguments

    @@ -1618,7 +1618,7 @@

    Arguments

    @@ -1633,7 +1633,7 @@

    Arguments

    @@ -1648,7 +1648,7 @@

    Arguments

    @@ -1663,7 +1663,7 @@

    Arguments

    @@ -1704,7 +1704,7 @@

    Arguments

    @@ -1719,7 +1719,7 @@

    Arguments

    @@ -1734,7 +1734,7 @@

    Arguments

    @@ -1749,7 +1749,7 @@

    Arguments

    @@ -1764,7 +1764,7 @@

    Arguments

    @@ -1779,7 +1779,7 @@

    Arguments

    @@ -1819,7 +1819,7 @@

    Arguments

    @@ -1834,7 +1834,7 @@

    Arguments

    @@ -1849,7 +1849,7 @@

    Arguments

    @@ -1864,7 +1864,7 @@

    Arguments

    @@ -1879,7 +1879,7 @@

    Arguments

    @@ -1894,7 +1894,7 @@

    Arguments

    @@ -1909,7 +1909,7 @@

    Arguments

    @@ -1930,7 +1930,7 @@

    Arguments

    -

    public subroutine dbcsr_distribution_get(dist, row_dist, col_dist, nrows, ncols, has_threads, group, mynode, numnodes, nprows, npcols, myprow, mypcol, pgrid, subgroups_defined, prow_group, pcol_group) +

    public subroutine dbcsr_distribution_get(dist, row_dist, col_dist, nrows, ncols, has_threads, group, mynode, numnodes, nprows, npcols, myprow, mypcol, pgrid, subgroups_defined, prow_group, pcol_group)

    @@ -1949,7 +1949,7 @@

    Arguments

    @@ -1964,7 +1964,7 @@

    Arguments

    @@ -1979,7 +1979,7 @@

    Arguments

    @@ -1994,7 +1994,7 @@

    Arguments

    @@ -2009,7 +2009,7 @@

    Arguments

    @@ -2024,7 +2024,7 @@

    Arguments

    @@ -2039,7 +2039,7 @@

    Arguments

    @@ -2054,7 +2054,7 @@

    Arguments

    @@ -2069,7 +2069,7 @@

    Arguments

    @@ -2084,7 +2084,7 @@

    Arguments

    @@ -2099,7 +2099,7 @@

    Arguments

    @@ -2114,7 +2114,7 @@

    Arguments

    @@ -2129,7 +2129,7 @@

    Arguments

    @@ -2144,7 +2144,7 @@

    Arguments

    @@ -2159,7 +2159,7 @@

    Arguments

    @@ -2174,7 +2174,7 @@

    Arguments

    @@ -2189,7 +2189,7 @@

    Arguments

    @@ -2210,7 +2210,7 @@

    Arguments

    -

    public subroutine dbcsr_distribution_hold(dist) +

    public subroutine dbcsr_distribution_hold(dist)

    @@ -2229,7 +2229,7 @@

    Arguments

    @@ -2269,7 +2269,7 @@

    Arguments

    @@ -2324,7 +2324,7 @@

    Arguments

    @@ -2379,7 +2379,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_dist_operations.html b/develop/module/dbcsr_dist_operations.html index 358c7bd57e1..a7a7c7895c5 100644 --- a/develop/module/dbcsr_dist_operations.html +++ b/develop/module/dbcsr_dist_operations.html @@ -113,9 +113,9 @@

    Variables

    @@ -150,7 +150,7 @@

    Subroutines

    @@ -237,7 +237,7 @@

    Variables

    @@ -254,7 +254,7 @@

    Variables

    @@ -301,7 +301,7 @@

    Arguments

    @@ -317,7 +317,7 @@

    Arguments

    @@ -363,7 +363,7 @@

    Arguments

    @@ -379,7 +379,7 @@

    Arguments

    @@ -395,7 +395,7 @@

    Arguments

    @@ -410,7 +410,7 @@

    Arguments

    @@ -426,7 +426,7 @@

    Arguments

    @@ -472,7 +472,7 @@

    Arguments

    @@ -503,7 +503,7 @@

    Subroutines

    -

    public pure subroutine dbcsr_get_stored_coordinates(matrix, row, column, processor) +

    public pure subroutine dbcsr_get_stored_coordinates(matrix, row, column, processor)

    @@ -524,7 +524,7 @@

    Arguments

    @@ -539,7 +539,7 @@

    Arguments

    @@ -555,7 +555,7 @@

    Arguments

    @@ -571,7 +571,7 @@

    Arguments

    @@ -611,7 +611,7 @@

    Arguments

    @@ -626,7 +626,7 @@

    Arguments

    @@ -641,7 +641,7 @@

    Arguments

    @@ -656,7 +656,7 @@

    Arguments

    @@ -671,7 +671,7 @@

    Arguments

    @@ -711,7 +711,7 @@

    Arguments

    @@ -726,7 +726,7 @@

    Arguments

    @@ -742,7 +742,7 @@

    Arguments

    @@ -790,7 +790,7 @@

    Arguments

    @@ -806,7 +806,7 @@

    Arguments

    @@ -822,7 +822,7 @@

    Arguments

    @@ -878,7 +878,7 @@

    Arguments

    @@ -893,7 +893,7 @@

    Arguments

    @@ -909,7 +909,7 @@

    Arguments

    @@ -925,7 +925,7 @@

    Arguments

    @@ -940,7 +940,7 @@

    Arguments

    @@ -985,7 +985,7 @@

    Arguments

    @@ -1135,7 +1135,7 @@

    Arguments

    @@ -1151,7 +1151,7 @@

    Arguments

    @@ -1167,7 +1167,7 @@

    Arguments

    @@ -1182,7 +1182,7 @@

    Arguments

    @@ -1199,7 +1199,7 @@

    Arguments

    @@ -1216,7 +1216,7 @@

    Arguments

    @@ -1414,7 +1414,7 @@

    Arguments

    @@ -1430,7 +1430,7 @@

    Arguments

    @@ -1446,7 +1446,7 @@

    Arguments

    @@ -1461,7 +1461,7 @@

    Arguments

    @@ -1505,7 +1505,7 @@

    Arguments

    @@ -1520,7 +1520,7 @@

    Arguments

    @@ -1535,7 +1535,7 @@

    Arguments

    @@ -1575,7 +1575,7 @@

    Arguments

    @@ -1590,7 +1590,7 @@

    Arguments

    @@ -1645,7 +1645,7 @@

    Arguments

    @@ -1660,7 +1660,7 @@

    Arguments

    @@ -1730,7 +1730,7 @@

    Arguments

    @@ -1746,7 +1746,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_dist_util.html b/develop/module/dbcsr_dist_util.html index ab43d3d45e7..ee6be4ea2c8 100644 --- a/develop/module/dbcsr_dist_util.html +++ b/develop/module/dbcsr_dist_util.html @@ -113,7 +113,7 @@

    Variables

    @@ -366,7 +366,7 @@

    Arguments

    @@ -441,7 +441,7 @@

    Arguments

    @@ -456,7 +456,7 @@

    Arguments

    @@ -472,7 +472,7 @@

    Arguments

    @@ -548,7 +548,7 @@

    Arguments

    @@ -563,7 +563,7 @@

    Arguments

    @@ -643,7 +643,7 @@

    Arguments

    @@ -658,7 +658,7 @@

    Arguments

    @@ -673,7 +673,7 @@

    Arguments

    @@ -743,7 +743,7 @@

    Arguments

    @@ -830,7 +830,7 @@

    Arguments

    @@ -1059,7 +1059,7 @@

    Arguments

    @@ -1074,7 +1074,7 @@

    Arguments

    @@ -1089,7 +1089,7 @@

    Arguments

    @@ -1106,7 +1106,7 @@

    Arguments

    @@ -1123,7 +1123,7 @@

    Arguments

    @@ -1165,7 +1165,7 @@

    Arguments

    @@ -1180,7 +1180,7 @@

    Arguments

    @@ -1195,7 +1195,7 @@

    Arguments

    @@ -1211,7 +1211,7 @@

    Arguments

    @@ -1252,7 +1252,7 @@

    Arguments

    @@ -1267,7 +1267,7 @@

    Arguments

    @@ -1307,7 +1307,7 @@

    Arguments

    @@ -1322,7 +1322,7 @@

    Arguments

    @@ -1362,7 +1362,7 @@

    Arguments

    @@ -1393,7 +1393,7 @@

    Arguments

    @@ -1518,7 +1518,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_error_handling.html b/develop/module/dbcsr_error_handling.html index f90cb1676e4..8058d09b969 100644 --- a/develop/module/dbcsr_error_handling.html +++ b/develop/module/dbcsr_error_handling.html @@ -113,7 +113,7 @@

    Variables

    @@ -177,13 +177,13 @@

    Uses

    @@ -208,7 +208,7 @@

    Variables

    @@ -272,7 +272,7 @@

    Arguments

    @@ -287,7 +287,7 @@

    Arguments

    @@ -302,7 +302,7 @@

    Arguments

    @@ -380,7 +380,7 @@

    Arguments

    @@ -435,7 +435,7 @@

    Arguments

    @@ -488,7 +488,7 @@

    Arguments

    @@ -518,7 +518,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_files.html b/develop/module/dbcsr_files.html index 49dee87adf4..26e81f74b47 100644 --- a/develop/module/dbcsr_files.html +++ b/develop/module/dbcsr_files.html @@ -113,7 +113,7 @@

    Variables

    - moduleN + moduleN max_preconnections max_unit_number preconnected @@ -218,7 +218,7 @@

    Variables

    @@ -320,7 +320,7 @@

    Components

    @@ -386,7 +386,7 @@

    Arguments

    @@ -431,7 +431,7 @@

    Arguments

    @@ -481,7 +481,7 @@

    Arguments

    @@ -607,7 +607,7 @@

    Arguments

    @@ -662,7 +662,7 @@

    Arguments

    @@ -767,7 +767,7 @@

    Arguments

    @@ -837,7 +837,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_hip_profiling.html b/develop/module/dbcsr_hip_profiling.html index 6b60958cfc2..221547d5f8e 100644 --- a/develop/module/dbcsr_hip_profiling.html +++ b/develop/module/dbcsr_hip_profiling.html @@ -182,7 +182,7 @@

    Arguments

    @@ -235,7 +235,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_index_operations.html b/develop/module/dbcsr_index_operations.html index f7918fb59df..730ee92a36d 100644 --- a/develop/module/dbcsr_index_operations.html +++ b/develop/module/dbcsr_index_operations.html @@ -113,9 +113,9 @@

    Variables

    @@ -209,16 +209,16 @@

    Uses

    @@ -243,7 +243,7 @@

    Variables

    @@ -260,7 +260,7 @@

    Variables

    @@ -277,7 +277,7 @@

    Variables

    @@ -329,7 +329,7 @@

    Arguments

    @@ -344,7 +344,7 @@

    Arguments

    @@ -359,7 +359,7 @@

    Arguments

    @@ -398,7 +398,7 @@

    Arguments

    @@ -413,7 +413,7 @@

    Arguments

    @@ -462,7 +462,7 @@

    Arguments

    @@ -477,7 +477,7 @@

    Arguments

    @@ -492,7 +492,7 @@

    Arguments

    @@ -531,7 +531,7 @@

    Arguments

    @@ -546,7 +546,7 @@

    Arguments

    @@ -594,7 +594,7 @@

    Arguments

    @@ -719,7 +719,7 @@

    Arguments

    @@ -734,7 +734,7 @@

    Arguments

    @@ -849,7 +849,7 @@

    Arguments

    @@ -864,7 +864,7 @@

    Arguments

    @@ -904,7 +904,7 @@

    Arguments

    @@ -919,7 +919,7 @@

    Arguments

    @@ -934,7 +934,7 @@

    Arguments

    @@ -949,7 +949,7 @@

    Arguments

    @@ -989,7 +989,7 @@

    Arguments

    @@ -1004,7 +1004,7 @@

    Arguments

    @@ -1019,7 +1019,7 @@

    Arguments

    @@ -1034,7 +1034,7 @@

    Arguments

    @@ -1074,7 +1074,7 @@

    Arguments

    @@ -1089,7 +1089,7 @@

    Arguments

    @@ -1104,7 +1104,7 @@

    Arguments

    @@ -1159,7 +1159,7 @@

    Arguments

    @@ -1174,7 +1174,7 @@

    Arguments

    @@ -1214,7 +1214,7 @@

    Arguments

    @@ -1229,7 +1229,7 @@

    Arguments

    @@ -1244,7 +1244,7 @@

    Arguments

    @@ -1284,7 +1284,7 @@

    Arguments

    @@ -1299,7 +1299,7 @@

    Arguments

    @@ -1339,7 +1339,7 @@

    Arguments

    @@ -1354,7 +1354,7 @@

    Arguments

    @@ -1369,7 +1369,7 @@

    Arguments

    @@ -1409,7 +1409,7 @@

    Arguments

    @@ -1439,7 +1439,7 @@

    Arguments

    @@ -1511,7 +1511,7 @@

    Arguments

    @@ -1566,7 +1566,7 @@

    Arguments

    @@ -1621,7 +1621,7 @@

    Arguments

    @@ -1661,7 +1661,7 @@

    Arguments

    @@ -1676,7 +1676,7 @@

    Arguments

    @@ -1692,7 +1692,7 @@

    Arguments

    @@ -1708,7 +1708,7 @@

    Arguments

    @@ -1765,7 +1765,7 @@

    Arguments

    @@ -1884,7 +1884,7 @@

    Arguments

    @@ -1924,7 +1924,7 @@

    Arguments

    @@ -1979,7 +1979,7 @@

    Arguments

    @@ -1994,7 +1994,7 @@

    Arguments

    @@ -2010,7 +2010,7 @@

    Arguments

    @@ -2026,7 +2026,7 @@

    Arguments

    @@ -2041,7 +2041,7 @@

    Arguments

    @@ -2120,7 +2120,7 @@

    Arguments

    @@ -2175,7 +2175,7 @@

    Arguments

    @@ -2192,7 +2192,7 @@

    Arguments

    @@ -2209,7 +2209,7 @@

    Arguments

    @@ -2226,7 +2226,7 @@

    Arguments

    @@ -2271,7 +2271,7 @@

    Arguments

    @@ -2411,7 +2411,7 @@

    Arguments

    @@ -2428,7 +2428,7 @@

    Arguments

    @@ -2488,7 +2488,7 @@

    Arguments

    @@ -2590,7 +2590,7 @@

    Arguments

    @@ -2630,7 +2630,7 @@

    Arguments

    @@ -2685,7 +2685,7 @@

    Arguments

    @@ -2725,7 +2725,7 @@

    Arguments

    @@ -2740,7 +2740,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_io.html b/develop/module/dbcsr_io.html index 8d6b55ad633..54ef215f6fd 100644 --- a/develop/module/dbcsr_io.html +++ b/develop/module/dbcsr_io.html @@ -113,7 +113,7 @@

    Variables

    @@ -326,7 +326,7 @@

    Arguments

    @@ -341,7 +341,7 @@

    Arguments

    @@ -357,7 +357,7 @@

    Arguments

    @@ -389,7 +389,7 @@

    Arguments

    @@ -404,7 +404,7 @@

    Arguments

    @@ -443,7 +443,7 @@

    Arguments

    @@ -458,7 +458,7 @@

    Arguments

    @@ -473,7 +473,7 @@

    Arguments

    @@ -503,7 +503,7 @@

    Arguments

    @@ -518,7 +518,7 @@

    Arguments

    @@ -557,7 +557,7 @@

    Arguments

    @@ -572,7 +572,7 @@

    Arguments

    @@ -587,7 +587,7 @@

    Arguments

    @@ -617,7 +617,7 @@

    Arguments

    @@ -632,7 +632,7 @@

    Arguments

    @@ -671,7 +671,7 @@

    Arguments

    @@ -686,7 +686,7 @@

    Arguments

    @@ -701,7 +701,7 @@

    Arguments

    @@ -731,7 +731,7 @@

    Arguments

    @@ -746,7 +746,7 @@

    Arguments

    @@ -795,7 +795,7 @@

    Arguments

    @@ -810,7 +810,7 @@

    Arguments

    @@ -855,7 +855,7 @@

    Arguments

    @@ -895,7 +895,7 @@

    Arguments

    @@ -910,7 +910,7 @@

    Arguments

    @@ -926,7 +926,7 @@

    Arguments

    @@ -990,7 +990,7 @@

    Arguments

    @@ -1045,7 +1045,7 @@

    Arguments

    @@ -1060,7 +1060,7 @@

    Arguments

    @@ -1075,7 +1075,7 @@

    Arguments

    @@ -1135,7 +1135,7 @@

    Arguments

    @@ -1190,7 +1190,7 @@

    Arguments

    @@ -1205,7 +1205,7 @@

    Arguments

    @@ -1220,7 +1220,7 @@

    Arguments

    @@ -1280,7 +1280,7 @@

    Arguments

    @@ -1335,7 +1335,7 @@

    Arguments

    @@ -1350,7 +1350,7 @@

    Arguments

    @@ -1365,7 +1365,7 @@

    Arguments

    @@ -1425,7 +1425,7 @@

    Arguments

    @@ -1480,7 +1480,7 @@

    Arguments

    @@ -1495,7 +1495,7 @@

    Arguments

    @@ -1511,7 +1511,7 @@

    Arguments

    @@ -1543,7 +1543,7 @@

    Arguments

    @@ -1558,7 +1558,7 @@

    Arguments

    @@ -1598,7 +1598,7 @@

    Arguments

    @@ -1613,7 +1613,7 @@

    Arguments

    @@ -1628,7 +1628,7 @@

    Arguments

    @@ -1658,7 +1658,7 @@

    Arguments

    @@ -1673,7 +1673,7 @@

    Arguments

    @@ -1713,7 +1713,7 @@

    Arguments

    @@ -1728,7 +1728,7 @@

    Arguments

    @@ -1743,7 +1743,7 @@

    Arguments

    @@ -1773,7 +1773,7 @@

    Arguments

    @@ -1788,7 +1788,7 @@

    Arguments

    @@ -1828,7 +1828,7 @@

    Arguments

    @@ -1843,7 +1843,7 @@

    Arguments

    @@ -1858,7 +1858,7 @@

    Arguments

    @@ -1888,7 +1888,7 @@

    Arguments

    @@ -1903,7 +1903,7 @@

    Arguments

    @@ -1958,7 +1958,7 @@

    Arguments

    @@ -2028,7 +2028,7 @@

    Arguments

    @@ -2083,7 +2083,7 @@

    Arguments

    @@ -2098,7 +2098,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_iter_types.html b/develop/module/dbcsr_iter_types.html index 69c5d5dedc8..f0487e6e5c3 100644 --- a/develop/module/dbcsr_iter_types.html +++ b/develop/module/dbcsr_iter_types.html @@ -113,8 +113,8 @@

    Variables

    @@ -202,7 +202,7 @@

    Variables

    @@ -219,7 +219,7 @@

    Variables

    @@ -288,7 +288,7 @@

    Components

    @@ -305,7 +305,7 @@

    Components

    @@ -322,7 +322,7 @@

    Components

    diff --git a/develop/module/dbcsr_iterator_operations.html b/develop/module/dbcsr_iterator_operations.html index db27daadb74..22640a54e84 100644 --- a/develop/module/dbcsr_iterator_operations.html +++ b/develop/module/dbcsr_iterator_operations.html @@ -113,17 +113,17 @@

    Variables

    @@ -141,7 +141,7 @@

    Interfaces

    @@ -167,7 +167,7 @@

    Functions

    @@ -179,8 +179,8 @@

    Subroutines

    @@ -291,7 +291,7 @@

    Variables

    @@ -308,7 +308,7 @@

    Variables

    @@ -325,7 +325,7 @@

    Variables

    @@ -342,7 +342,7 @@

    Variables

    @@ -359,7 +359,7 @@

    Variables

    @@ -376,7 +376,7 @@

    Variables

    @@ -393,7 +393,7 @@

    Variables

    @@ -410,7 +410,7 @@

    Variables

    @@ -427,7 +427,7 @@

    Variables

    @@ -453,8 +453,8 @@

    Variables

    Interfaces

    - -

    public interface dbcsr_iterator_next_block + +

    public interface dbcsr_iterator_next_block

      @@ -479,7 +479,7 @@

      Arguments

    @@ -494,7 +494,7 @@

    Arguments

    @@ -511,7 +511,7 @@

    Arguments

    @@ -528,7 +528,7 @@

    Arguments

    @@ -545,7 +545,7 @@

    Arguments

    @@ -560,7 +560,7 @@

    Arguments

    @@ -579,7 +579,7 @@

    Arguments

    @@ -598,7 +598,7 @@

    Arguments

    @@ -617,7 +617,7 @@

    Arguments

    @@ -636,7 +636,7 @@

    Arguments

    @@ -679,7 +679,7 @@

    Arguments

    @@ -694,7 +694,7 @@

    Arguments

    @@ -710,7 +710,7 @@

    Arguments

    @@ -726,7 +726,7 @@

    Arguments

    @@ -741,7 +741,7 @@

    Arguments

    @@ -756,7 +756,7 @@

    Arguments

    @@ -775,7 +775,7 @@

    Arguments

    @@ -794,7 +794,7 @@

    Arguments

    @@ -813,7 +813,7 @@

    Arguments

    @@ -832,7 +832,7 @@

    Arguments

    @@ -875,7 +875,7 @@

    Arguments

    @@ -890,7 +890,7 @@

    Arguments

    @@ -906,7 +906,7 @@

    Arguments

    @@ -922,7 +922,7 @@

    Arguments

    @@ -937,7 +937,7 @@

    Arguments

    @@ -952,7 +952,7 @@

    Arguments

    @@ -967,7 +967,7 @@

    Arguments

    @@ -983,7 +983,7 @@

    Arguments

    @@ -999,7 +999,7 @@

    Arguments

    @@ -1015,7 +1015,7 @@

    Arguments

    @@ -1055,7 +1055,7 @@

    Arguments

    @@ -1070,7 +1070,7 @@

    Arguments

    @@ -1086,7 +1086,7 @@

    Arguments

    @@ -1102,7 +1102,7 @@

    Arguments

    @@ -1117,7 +1117,7 @@

    Arguments

    @@ -1132,7 +1132,7 @@

    Arguments

    @@ -1147,7 +1147,7 @@

    Arguments

    @@ -1163,7 +1163,7 @@

    Arguments

    @@ -1179,7 +1179,7 @@

    Arguments

    @@ -1195,7 +1195,7 @@

    Arguments

    @@ -1235,7 +1235,7 @@

    Arguments

    @@ -1250,7 +1250,7 @@

    Arguments

    @@ -1266,7 +1266,7 @@

    Arguments

    @@ -1282,7 +1282,7 @@

    Arguments

    @@ -1297,7 +1297,7 @@

    Arguments

    @@ -1312,7 +1312,7 @@

    Arguments

    @@ -1327,7 +1327,7 @@

    Arguments

    @@ -1343,7 +1343,7 @@

    Arguments

    @@ -1359,7 +1359,7 @@

    Arguments

    @@ -1375,7 +1375,7 @@

    Arguments

    @@ -1415,7 +1415,7 @@

    Arguments

    @@ -1430,7 +1430,7 @@

    Arguments

    @@ -1446,7 +1446,7 @@

    Arguments

    @@ -1462,7 +1462,7 @@

    Arguments

    @@ -1477,7 +1477,7 @@

    Arguments

    @@ -1492,7 +1492,7 @@

    Arguments

    @@ -1507,7 +1507,7 @@

    Arguments

    @@ -1523,7 +1523,7 @@

    Arguments

    @@ -1539,7 +1539,7 @@

    Arguments

    @@ -1555,7 +1555,7 @@

    Arguments

    @@ -1595,7 +1595,7 @@

    Arguments

    @@ -1610,7 +1610,7 @@

    Arguments

    @@ -1626,7 +1626,7 @@

    Arguments

    @@ -1642,7 +1642,7 @@

    Arguments

    @@ -1657,7 +1657,7 @@

    Arguments

    @@ -1672,7 +1672,7 @@

    Arguments

    @@ -1687,7 +1687,7 @@

    Arguments

    @@ -1703,7 +1703,7 @@

    Arguments

    @@ -1719,7 +1719,7 @@

    Arguments

    @@ -1735,7 +1735,7 @@

    Arguments

    @@ -1775,7 +1775,7 @@

    Arguments

    @@ -1790,7 +1790,7 @@

    Arguments

    @@ -1806,7 +1806,7 @@

    Arguments

    @@ -1822,7 +1822,7 @@

    Arguments

    @@ -1837,7 +1837,7 @@

    Arguments

    @@ -1852,7 +1852,7 @@

    Arguments

    @@ -1867,7 +1867,7 @@

    Arguments

    @@ -1883,7 +1883,7 @@

    Arguments

    @@ -1899,7 +1899,7 @@

    Arguments

    @@ -1915,7 +1915,7 @@

    Arguments

    @@ -1955,7 +1955,7 @@

    Arguments

    @@ -1970,7 +1970,7 @@

    Arguments

    @@ -1986,7 +1986,7 @@

    Arguments

    @@ -2002,7 +2002,7 @@

    Arguments

    @@ -2017,7 +2017,7 @@

    Arguments

    @@ -2032,7 +2032,7 @@

    Arguments

    @@ -2047,7 +2047,7 @@

    Arguments

    @@ -2063,7 +2063,7 @@

    Arguments

    @@ -2079,7 +2079,7 @@

    Arguments

    @@ -2095,7 +2095,7 @@

    Arguments

    @@ -2135,7 +2135,7 @@

    Arguments

    @@ -2150,7 +2150,7 @@

    Arguments

    @@ -2166,7 +2166,7 @@

    Arguments

    @@ -2182,7 +2182,7 @@

    Arguments

    @@ -2197,7 +2197,7 @@

    Arguments

    @@ -2212,7 +2212,7 @@

    Arguments

    @@ -2227,7 +2227,7 @@

    Arguments

    @@ -2243,7 +2243,7 @@

    Arguments

    @@ -2259,7 +2259,7 @@

    Arguments

    @@ -2275,7 +2275,7 @@

    Arguments

    @@ -2328,7 +2328,7 @@

    Components

    @@ -2345,7 +2345,7 @@

    Components

    @@ -2362,7 +2362,7 @@

    Components

    @@ -2379,7 +2379,7 @@

    Components

    @@ -2396,7 +2396,7 @@

    Components

    @@ -2445,7 +2445,7 @@

    Components

    @@ -2462,7 +2462,7 @@

    Components

    @@ -2479,7 +2479,7 @@

    Components

    @@ -2496,7 +2496,7 @@

    Components

    @@ -2513,7 +2513,7 @@

    Components

    @@ -2530,7 +2530,7 @@

    Components

    @@ -2547,7 +2547,7 @@

    Components

    @@ -2577,7 +2577,7 @@

    Components

    Functions

    -

    public pure function dbcsr_iterator_blocks_left(iterator) result(blocks_left) +

    public pure function dbcsr_iterator_blocks_left(iterator) result(blocks_left)

    @@ -2596,7 +2596,7 @@

    Arguments

    @@ -2627,11 +2627,11 @@

    Subroutines

    -

    public subroutine dbcsr_iterator_start(iterator, matrix, shared, dynamic, dynamic_byrows, contiguous_pointers, read_only) +

    public subroutine dbcsr_iterator_start(iterator, matrix, shared, dynamic, dynamic_byrows, contiguous_pointers, read_only)

    -

    Sets up an iterator

    Read more… +

    Sets up an iterator

    Read more…

    Arguments

    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4), intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + integer(kind=int_8), intent(inout),
    - + complex(kind=real_4), intent(in),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + character(len=*), private,
    - + logical, private,
    - + logical, private,
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_scalar_type), intent(in),
    - + logical, intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_scalar_type), intent(in),
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_data_obj), intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4), intent(in),
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8), intent(in),
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4), intent(in),
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8), intent(in),
    - + type(dbcsr_data_obj), intent(inout)
    - + type(dbcsr_data_obj), intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4), intent(in),
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8), intent(in),
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4), intent(in),
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(inout)
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_data_obj), intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + type(dbcsr_data_obj), intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_scalar_type), intent(in),
    - + logical, intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_scalar_type), intent(in),
    - + type(dbcsr_data_obj), intent(inout)
    - + logical
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8), intent(inout),
    - + logical, intent(in)
    - + real(kind=real_8), intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8), intent(inout),
    - + logical, intent(in)
    - + real(kind=real_8), intent(in),
    - + logical, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8), intent(inout),
    - + logical, intent(in)
    - + real(kind=real_8), intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8), intent(inout),
    - + logical, intent(in)
    - + real(kind=real_8), intent(in),
    - + logical, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8), intent(in),
    - + integer, intent(in)
    - + real(kind=real_4), intent(inout),
    - + logical, intent(in)
    - + real(kind=real_4), intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4), intent(inout),
    - + logical, intent(in)
    - + real(kind=real_4), intent(in),
    - + logical, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4), intent(inout),
    - + logical, intent(in)
    - + real(kind=real_4), intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4), intent(inout),
    - + logical, intent(in)
    - + real(kind=real_4), intent(in),
    - + logical, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4), intent(in),
    - + integer, intent(in)
    - + complex(kind=real_8), intent(inout),
    - + logical, intent(in)
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8), intent(inout),
    - + logical, intent(in)
    - + complex(kind=real_8), intent(in),
    - + logical, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8), intent(inout),
    - + logical, intent(in)
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8), intent(inout),
    - + logical, intent(in)
    - + complex(kind=real_8), intent(in),
    - + logical, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in)
    - + complex(kind=real_4), intent(inout),
    - + logical, intent(in)
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4), intent(inout),
    - + logical, intent(in)
    - + complex(kind=real_4), intent(in),
    - + logical, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4), intent(inout),
    - + logical, intent(in)
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4), intent(inout),
    - + logical, intent(in)
    - + complex(kind=real_4), intent(in),
    - + logical, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in)
    - + integer, private,
    - + integer, private,
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_sp2d), intent(in)
    - + logical, intent(out),
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_dp2d), intent(in)
    - + logical, intent(out),
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_cp2d), intent(in)
    - + logical, intent(out),
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_zp2d), intent(in)
    - + logical, intent(out),
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_sp2d), intent(out)
    - + logical, intent(out),
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_dp2d), intent(out)
    - + logical, intent(out),
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_cp2d), intent(out)
    - + logical, intent(out),
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_zp2d), intent(out)
    - + logical, intent(out),
    - + integer(kind=keyt), intent(out),
    - + type(btree_data_sp2d), intent(out),
    - + integer(kind=keyt), intent(out),
    - + type(btree_data_dp2d), intent(out),
    - + integer(kind=keyt), intent(out),
    - + type(btree_data_cp2d), intent(out),
    - + integer(kind=keyt), intent(out),
    - + type(btree_data_zp2d), intent(out),
    - + real(kind=sp), public,
    - + logical, public
    - + real(kind=dp), public,
    - + logical, public
    - + complex(kind=sp), public,
    - + logical, public
    - + complex(kind=dp), public,
    - + logical, public
    - + integer, public
    - + integer(kind=keyt), public,
    - + type(btree_data_sp2d), public,
    - + type(btree_node_i8_sp2d), public,
    - + integer, public
    - + integer, public
    - + integer, public
    - + type(btree_node_i8_sp2d), public,
    - + type(btree_node_structure_i8_sp2d), public
    - + integer, public
    - + integer(kind=keyt), public,
    - + type(btree_data_dp2d), public,
    - + type(btree_node_i8_dp2d), public,
    - + integer, public
    - + integer, public
    - + integer, public
    - + type(btree_node_i8_dp2d), public,
    - + type(btree_node_structure_i8_dp2d), public
    - + integer, public
    - + integer(kind=keyt), public,
    - + type(btree_data_cp2d), public,
    - + type(btree_node_i8_cp2d), public,
    - + integer, public
    - + integer, public
    - + integer, public
    - + type(btree_node_i8_cp2d), public,
    - + type(btree_node_structure_i8_cp2d), public
    - + integer, public
    - + integer(kind=keyt), public,
    - + type(btree_data_zp2d), public,
    - + type(btree_node_i8_zp2d), public,
    - + integer, public
    - + integer, public
    - + integer, public
    - + type(btree_node_i8_zp2d), public,
    - + type(btree_node_structure_i8_zp2d), public
    - + integer, intent(in),
    - + type(btree_node_i8_sp2d),
    - + integer(kind=keyt), intent(out),
    - + type(btree_data_sp2d), intent(out),
    - + type(btree_node_i8_sp2d),
    - + integer, intent(inout),
    - + integer(kind=keyt), intent(inout),
    - + type(btree_data_sp2d), intent(inout),
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_sp2d), intent(in)
    - + logical, intent(out),
    - + type(btree_node_i8_sp2d),
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_sp2d), intent(in)
    - + integer, intent(in),
    - + type(btree_node_i8_sp2d), intent(inout)
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_sp2d), intent(in)
    - + integer, intent(in)
    - + type(btree_node_i8_sp2d), intent(inout)
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_sp2d), intent(in)
    - + integer, intent(in)
    - + type(btree_node_i8_sp2d), intent(inout)
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_sp2d), intent(in)
    - + integer, intent(in)
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_sp2d), intent(in)
    - + type(btree_node_i8_sp2d),
    - + type(btree_node_i8_sp2d),
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_sp2d), intent(out)
    - + logical, intent(out),
    - + integer(kind=keyt),
    - + integer(kind=keyt), intent(in)
    - + integer(kind=keyt),
    - + integer(kind=keyt), intent(in)
    - + integer(kind=keyt),
    - + integer(kind=keyt), intent(in)
    - + integer(kind=keyt), intent(in)
    - + type(btree_node_i8_sp2d),
    - + integer(kind=keyt), intent(in)
    - + type(btree_node_i8_sp2d),
    - + integer, intent(in),
    - + type(btree_node_i8_dp2d),
    - + integer(kind=keyt), intent(out),
    - + type(btree_data_dp2d), intent(out),
    - + type(btree_node_i8_dp2d),
    - + integer, intent(inout),
    - + integer(kind=keyt), intent(inout),
    - + type(btree_data_dp2d), intent(inout),
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_dp2d), intent(in)
    - + logical, intent(out),
    - + type(btree_node_i8_dp2d),
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_dp2d), intent(in)
    - + integer, intent(in),
    - + type(btree_node_i8_dp2d), intent(inout)
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_dp2d), intent(in)
    - + integer, intent(in)
    - + type(btree_node_i8_dp2d), intent(inout)
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_dp2d), intent(in)
    - + integer, intent(in)
    - + type(btree_node_i8_dp2d), intent(inout)
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_dp2d), intent(in)
    - + integer, intent(in)
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_dp2d), intent(in)
    - + type(btree_node_i8_dp2d),
    - + type(btree_node_i8_dp2d),
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_dp2d), intent(out)
    - + logical, intent(out),
    - + integer(kind=keyt),
    - + integer(kind=keyt), intent(in)
    - + integer(kind=keyt),
    - + integer(kind=keyt), intent(in)
    - + integer(kind=keyt),
    - + integer(kind=keyt), intent(in)
    - + integer(kind=keyt), intent(in)
    - + type(btree_node_i8_dp2d),
    - + integer(kind=keyt), intent(in)
    - + type(btree_node_i8_dp2d),
    - + integer, intent(in),
    - + type(btree_node_i8_cp2d),
    - + integer(kind=keyt), intent(out),
    - + type(btree_data_cp2d), intent(out),
    - + type(btree_node_i8_cp2d),
    - + integer, intent(inout),
    - + integer(kind=keyt), intent(inout),
    - + type(btree_data_cp2d), intent(inout),
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_cp2d), intent(in)
    - + logical, intent(out),
    - + type(btree_node_i8_cp2d),
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_cp2d), intent(in)
    - + integer, intent(in),
    - + type(btree_node_i8_cp2d), intent(inout)
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_cp2d), intent(in)
    - + integer, intent(in)
    - + type(btree_node_i8_cp2d), intent(inout)
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_cp2d), intent(in)
    - + integer, intent(in)
    - + type(btree_node_i8_cp2d), intent(inout)
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_cp2d), intent(in)
    - + integer, intent(in)
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_cp2d), intent(in)
    - + type(btree_node_i8_cp2d),
    - + type(btree_node_i8_cp2d),
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_cp2d), intent(out)
    - + logical, intent(out),
    - + integer(kind=keyt),
    - + integer(kind=keyt), intent(in)
    - + integer(kind=keyt),
    - + integer(kind=keyt), intent(in)
    - + integer(kind=keyt),
    - + integer(kind=keyt), intent(in)
    - + integer(kind=keyt), intent(in)
    - + type(btree_node_i8_cp2d),
    - + integer(kind=keyt), intent(in)
    - + type(btree_node_i8_cp2d),
    - + integer, intent(in),
    - + type(btree_node_i8_zp2d),
    - + integer(kind=keyt), intent(out),
    - + type(btree_data_zp2d), intent(out),
    - + type(btree_node_i8_zp2d),
    - + integer, intent(inout),
    - + integer(kind=keyt), intent(inout),
    - + type(btree_data_zp2d), intent(inout),
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_zp2d), intent(in)
    - + logical, intent(out),
    - + type(btree_node_i8_zp2d),
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_zp2d), intent(in)
    - + integer, intent(in),
    - + type(btree_node_i8_zp2d), intent(inout)
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_zp2d), intent(in)
    - + integer, intent(in)
    - + type(btree_node_i8_zp2d), intent(inout)
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_zp2d), intent(in)
    - + integer, intent(in)
    - + type(btree_node_i8_zp2d), intent(inout)
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_zp2d), intent(in)
    - + integer, intent(in)
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_zp2d), intent(in)
    - + type(btree_node_i8_zp2d),
    - + type(btree_node_i8_zp2d),
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_zp2d), intent(out)
    - + logical, intent(out),
    - + integer(kind=keyt),
    - + integer(kind=keyt), intent(in)
    - + integer(kind=keyt),
    - + integer(kind=keyt), intent(in)
    - + integer(kind=keyt),
    - + integer(kind=keyt), intent(in)
    - + integer(kind=keyt), intent(in)
    - + type(btree_node_i8_zp2d),
    - + integer(kind=keyt), intent(in)
    - + type(btree_node_i8_zp2d),
    - + character(len=*), private,
    - + integer, private
    - + character(len=1), public
    - + character(len=max_paramter_name_len), public
    - + character(len=1), public
    - + character(len=max_paramter_name_len), public
    - + integer, public
    - + character(len=1), public
    - + character(len=max_paramter_name_len), public
    - + integer, public
    - + character(len=1), public
    - + character(len=max_paramter_name_len), public
    - + logical, public
    - + character(len=1), public
    - + character(len=max_paramter_name_len), public
    - + real(kind=real_8), public
    - + class(CONF_PAR), intent(in)
    - + class(CONF_PAR), intent(inout)
    - + class(CONF_PAR_INT), intent(inout)
    - + class(CONF_PAR_MM_DRIVER), intent(inout)
    - + class(CONF_PAR_LOGICAL), intent(inout)
    - + class(CONF_PAR_REAL), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(in)
    - + character(len=*), private,
    - + logical, private,
    - + type(csr_type), intent(out)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer(kind=int_8)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + type(csr_type), intent(out)
    - + type(csr_type), intent(in)
    - + real(kind=real_4), public,
    - + real(kind=real_8), public,
    - + complex(kind=real_4), public,
    - + complex(kind=real_8), public,
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + type(mp_comm_type), public
    - + integer(kind=int_8), public
    - + logical, public
    - + type(csr_type), public,
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(csr_type), intent(out)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer(kind=int_8)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + type(csr_type), intent(out)
    - + type(csr_type), intent(in)
    - + type(csr_type), intent(in)
    - + type(csr_type), intent(inout)
    - + type(csr_type), intent(out)
    - + type(csr_type), intent(in)
    - + type(csr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(csr_type), intent(out)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(in),
    - + integer, intent(in),
    - + type(csr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(csr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(csr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(out)
    - + real(kind=real_8), intent(in)
    - + type(csr_type), intent(in)
    - + integer, intent(in)
    - + real(kind=real_8), intent(in),
    - + type(csr_type), intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + character(len=*), intent(in)
    - + character(len=*), private,
    - + logical, private,
    - + integer, private,
    - + type(dbcsr_data_obj), intent(inout)
    - + type(dbcsr_data_obj), intent(inout)
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in),
    - + type(dbcsr_memtype_type), intent(in),
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + logical, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_data_obj), intent(inout)
    - + character(len=*), private,
    - + logical, private,
    - + logical, private,
    - + real(kind=real_4), intent(in)
    - + real(kind=real_8), intent(in)
    - + complex(kind=real_4), intent(in)
    - + complex(kind=real_8), intent(in)
    - + real(kind=real_4), intent(out)
    - + real(kind=real_8), intent(out)
    - + complex(kind=real_4), intent(out)
    - + complex(kind=real_8), intent(out)
    - + type(dbcsr_data_obj), intent(inout)
    - + real(kind=real_4),
    - + type(dbcsr_data_obj), intent(inout)
    - + real(kind=real_8),
    - + type(dbcsr_data_obj), intent(inout)
    - + complex(kind=real_4),
    - + type(dbcsr_data_obj), intent(inout)
    - + complex(kind=real_8),
    - + type(dbcsr_data_obj), intent(inout)
    - + real(kind=real_4),
    - + type(dbcsr_data_obj), intent(inout)
    - + real(kind=real_8),
    - + type(dbcsr_data_obj), intent(inout)
    - + complex(kind=real_4),
    - + type(dbcsr_data_obj), intent(inout)
    - + complex(kind=real_8),
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_data_obj), intent(in)
    - + real(kind=real_4),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + real(kind=real_8),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + complex(kind=real_4),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + complex(kind=real_8),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + real(kind=real_4),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + real(kind=real_8),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + complex(kind=real_4),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + complex(kind=real_8),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + real(kind=real_4), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + complex(kind=real_4), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + real(kind=real_8), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + complex(kind=real_8), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + real(kind=real_4), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + complex(kind=real_4), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + real(kind=real_8), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + complex(kind=real_8), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(out),
    - + logical, intent(out)
    - + type(dbcsr_data_obj), intent(in)
    - + logical, intent(out)
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(out)
    - + integer, intent(out)
    - + logical, intent(out)
    - + type(dbcsr_data_obj), intent(in)
    - + type(dbcsr_data_obj), intent(in)
    - + type(dbcsr_data_obj), intent(in)
    - + type(dbcsr_data_obj), intent(in)
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_scalar_type), intent(in)
    - + type(dbcsr_scalar_type), intent(in)
    - + type(dbcsr_scalar_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_data_obj), intent(in)
    - + type(dbcsr_data_obj), intent(in)
    - + real(kind=real_8), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(in)
    - + type(dbcsr_data_obj), intent(in)
    - + real(kind=real_4), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(in)
    - + type(dbcsr_data_obj), intent(in)
    - + complex(kind=real_8), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(in)
    - + type(dbcsr_data_obj), intent(in)
    - + complex(kind=real_4), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + type(dbcsr_data_area_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_data_area_type), intent(inout)
    - + type(dbcsr_data_obj), intent(inout)
    - + type(dbcsr_data_obj), intent(inout)
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(out),
    - + logical, intent(out)
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(out)
    - + integer, intent(out)
    - + logical, intent(out)
    - + type(dbcsr_data_obj), intent(in)
    - + logical, intent(out)
    - + type(dbcsr_scalar_type), intent(inout)
    - + integer, intent(in)
    - + type(dbcsr_scalar_type), intent(inout)
    - + type(dbcsr_data_obj), intent(inout)
    - + type(dbcsr_data_obj), intent(inout)
    - + real(kind=real_8),
    - + type(dbcsr_data_obj), intent(inout)
    - + real(kind=real_8),
    - + type(dbcsr_data_obj), intent(in)
    - + real(kind=real_8),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + real(kind=real_8),
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(out)
    - + type(dbcsr_data_obj), intent(inout)
    - + real(kind=real_4),
    - + type(dbcsr_data_obj), intent(inout)
    - + real(kind=real_4),
    - + type(dbcsr_data_obj), intent(in)
    - + real(kind=real_4),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + real(kind=real_4),
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(out)
    - + type(dbcsr_data_obj), intent(inout)
    - + complex(kind=real_8),
    - + type(dbcsr_data_obj), intent(inout)
    - + complex(kind=real_8),
    - + type(dbcsr_data_obj), intent(in)
    - + complex(kind=real_8),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + complex(kind=real_8),
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out)
    - + type(dbcsr_data_obj), intent(inout)
    - + complex(kind=real_4),
    - + type(dbcsr_data_obj), intent(inout)
    - + complex(kind=real_4),
    - + type(dbcsr_data_obj), intent(in)
    - + complex(kind=real_4),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + complex(kind=real_4),
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out)
    - + character(len=*), private,
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_data_obj), intent(in)
    - + logical, intent(in),
    - + integer, intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(inout)
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in),
    - + character(len=*), private,
    - + real(kind=real_4), public
    - + real(kind=real_8), public
    - + complex(kind=real_4), public
    - + complex(kind=real_8), public
    - + type(dbcsr_data_area_type), public,
    - + type(dbcsr_mempool_entry_type), public,
    - + integer, public
    - + type(dbcsr_data_obj), public
    - + type(dbcsr_mempool_entry_type), public,
    - + logical, public
    - + logical, public
    - + logical, public
    - + type(acc_stream_type), public
    - + type(dbcsr_mempool_type), public,
    - + real(kind=dp), public
    - + real(kind=real_4), public,
    - + real(kind=real_8), public,
    - + complex(kind=real_4), public,
    - + complex(kind=real_8), public,
    - + integer, public
    - + integer, public
    - + integer, intent(in)
    - + character(len=*), private,
    - + integer, intent(in),
    - + integer, intent(in),
    - + character(len=default_string_length)
    - + integer(kind=int_4),
    - + character(len=default_string_length), intent(in)
    - + integer(kind=int_4), intent(in)
    - + integer(kind=int_4), intent(in),
    - + type(call_stat_type), intent(in),
    - + character(len=default_string_length)
    - + integer(kind=int_4),
    - + character(len=default_string_length), private
    - + integer(kind=int_4), private
    - + type(private_item_type_str_i4), private,
    - + type(private_item_type_str_i4), private,
    - + integer, private
    - + character(len=default_string_length), public
    - + integer(kind=int_4), public
    - + integer(kind=int_4), private,
    - + type(call_stat_type), private,
    - + type(private_item_type_i4tuple_callstat), private,
    - + type(private_item_type_i4tuple_callstat), private,
    - + integer, private
    - + integer(kind=int_4), public,
    - + type(call_stat_type), public,
    - + character(len=*), intent(in)
    - + integer(kind=int_4), intent(in),
    - + character(len=default_string_length)
    - + character(len=default_string_length)
    - + integer(kind=int_4),
    - + integer(kind=int_4),
    - + integer, intent(in),
    - + character(len=default_string_length), intent(in)
    - + integer(kind=int_4), intent(in)
    - + character(len=default_string_length), intent(in)
    - + integer(kind=int_4), intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer(kind=int_4), intent(in),
    - + type(call_stat_type), intent(in),
    - + integer(kind=int_4), intent(in),
    - + type(call_stat_type), intent(in),
    - + integer, intent(in)
    - + character(len=*), private,
    - + type(dbcsr_distribution_obj), intent(out)
    - + type(dbcsr_distribution_obj), intent(in),
    - + type(mp_comm_type), intent(in),
    - + integer,
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_distribution_obj), intent(out)
    - + type(dbcsr_mp_obj), intent(in)
    - + type(array_i1d_obj), intent(in)
    - + type(array_i1d_obj), intent(in)
    - + type(array_i1d_obj), intent(in),
    - + type(array_i1d_obj), intent(in),
    - + type(dbcsr_distribution_obj), intent(out)
    - + type(dbcsr_mp_obj), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical,
    - + type(dbcsr_distribution_obj), intent(in)
    - + type(dbcsr_distribution_obj), intent(in)
    - + type(dbcsr_distribution_obj), intent(in)
    - + type(dbcsr_distribution_obj), intent(in)
    - + type(dbcsr_distribution_obj), intent(in)
    - + type(dbcsr_distribution_obj), intent(in)
    - + type(dbcsr_distribution_obj), intent(in)
    - + type(dbcsr_distribution_obj), intent(in)
    - + type(dbcsr_distribution_obj), intent(in)
    - + type(dbcsr_distribution_obj), intent(in)
    - + type(dbcsr_distribution_obj), intent(in)
    - + type(dbcsr_distribution_obj), intent(in)
    - + type(dbcsr_distribution_obj), intent(in)
    - + type(dbcsr_distribution_obj), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_distribution_obj), intent(in)
    - + type(dbcsr_distribution_obj), intent(in)
    - + type(dbcsr_distribution_obj), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_distribution_obj), intent(out)
    - + type(dbcsr_distribution_obj), intent(in),
    - + type(mp_comm_type), intent(in),
    - + integer,
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_distribution_obj), intent(out)
    - + type(dbcsr_mp_obj), intent(in)
    - + type(array_i1d_obj), intent(in)
    - + type(array_i1d_obj), intent(in)
    - + type(array_i1d_obj), intent(in),
    - + type(array_i1d_obj), intent(in),
    - + type(dbcsr_distribution_obj), intent(out)
    - + type(dbcsr_mp_obj), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical,
    - + type(dbcsr_distribution_obj), intent(in)
    - + integer,
    - + integer,
    - + integer, intent(out),
    - + integer, intent(out),
    - + logical, intent(out),
    - + type(mp_comm_type), intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer,
    - + logical, intent(out),
    - + type(mp_comm_type), intent(out),
    - + type(mp_comm_type), intent(out),
    - + type(dbcsr_distribution_obj), intent(inout)
    - + type(dbcsr_distribution_obj), intent(inout),
    - + type(dbcsr_distribution_obj),
    - + type(dbcsr_distribution_obj), intent(inout)
    - + character(len=*), private,
    - + logical, private,
    - + logical, private,
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(out),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + logical, intent(inout)
    - + integer, intent(out),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical, intent(out)
    - + integer, intent(out)
    - + logical, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(out)
    - + logical, intent(out)
    - + type(array_i1d_obj), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(dbcsr_distribution_obj), intent(inout)
    - + type(array_i1d_obj), intent(out)
    - + type(dbcsr_distribution_obj), intent(inout)
    - + type(array_i1d_obj), intent(out)
    - + integer, intent(in)
    - + integer, intent(in)
    - + character(len=*), private,
    - + integer, intent(in)
    - + type(dbcsr_type), intent(in)
    - + logical, intent(in),
    - + logical, intent(in),
    - + real(kind=dp), intent(in),
    - + logical, intent(in)
    - + integer, intent(in)
    - + integer, intent(out)
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(out),
    - + type(dbcsr_distribution_obj), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + logical, intent(in),
    - + integer, intent(in),
    - + character(len=*), private,
    - + character(len=*), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + character(len=*), intent(in)
    - + character(len=*), intent(in)
    - + character(len=*), intent(in)
    - + integer, intent(in)
    - + character(len=*), private,
    - + character(len=default_path_length), private
    - + character(len=*), intent(in),
    - + character(len=*), intent(in)
    - + character(len=*), intent(in)
    - + character(len=*), intent(in)
    - + character(len=*), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + character(len=C_CHAR)
    - + character(len=C_CHAR)
    - + character(len=*), private,
    - + logical, private,
    - + logical, private,
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(in)
    - + integer, intent(inout),
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(in)
    - + integer, intent(inout),
    - + integer, intent(in)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(out),
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(in)
    - + integer, intent(inout),
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(in)
    - + integer, intent(inout),
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(in)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(inout),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_distribution_obj)
    - + integer, intent(inout),
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(out)
    - + character(len=*), private,
    - + real(kind=real_4), intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + character(len=*), intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + character(len=*), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + character(len=*), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + character(len=*), intent(in),
    - + logical, intent(in),
    - + type(dbcsr_type), intent(in)
    - + logical, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical, intent(in),
    - + real(kind=real_4), intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical, intent(in),
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical, intent(in),
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical, intent(in),
    - + real(kind=real_4), intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + character(len=*), intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + character(len=*), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + character(len=*), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + character(len=*), intent(in),
    - + logical, intent(in),
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_distribution_obj), intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in),
    - + character(len=*), private,
    - + logical, private,
    - + integer, public
    - + integer, public
    - + integer, public
    - + character(len=*), private,
    - + logical, private,
    - + integer, private,
    - + integer, private,
    - + integer, private,
    - + integer, private,
    - + integer, private,
    - + integer, private,
    - + integer, private,
    - + logical, private,
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + integer, intent(out)
    - + logical, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + type(dbcsr_data_obj), intent(inout)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + real(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + real(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + complex(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + complex(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + real(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + real(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + complex(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + complex(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + logical, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + type(dbcsr_scalar_type), public
    - + type(dbcsr_scalar_type), public
    - + type(dbcsr_iterator), intent(in)
    @@ -2646,7 +2646,7 @@

    Arguments

    @@ -2661,7 +2661,7 @@

    Arguments

    @@ -2676,7 +2676,7 @@

    Arguments

    @@ -2695,7 +2695,7 @@

    Arguments

    @@ -2714,7 +2714,7 @@

    Arguments

    @@ -2733,7 +2733,7 @@

    Arguments

    @@ -2752,7 +2752,7 @@

    Arguments

    @@ -2777,7 +2777,7 @@

    Arguments

    -

    public subroutine dbcsr_iterator_stop(iterator) +

    public subroutine dbcsr_iterator_stop(iterator)

    @@ -2796,7 +2796,7 @@

    Arguments

    @@ -2837,7 +2837,7 @@

    Arguments

    @@ -2867,7 +2867,7 @@

    Arguments

    @@ -2908,7 +2908,7 @@

    Arguments

    @@ -2923,7 +2923,7 @@

    Arguments

    @@ -2953,7 +2953,7 @@

    Arguments

    @@ -2995,7 +2995,7 @@

    Arguments

    @@ -3011,7 +3011,7 @@

    Arguments

    @@ -3059,7 +3059,7 @@

    Arguments

    @@ -3075,7 +3075,7 @@

    Arguments

    @@ -3091,7 +3091,7 @@

    Arguments

    @@ -3161,7 +3161,7 @@

    Arguments

    @@ -3201,7 +3201,7 @@

    Arguments

    @@ -3256,7 +3256,7 @@

    Arguments

    @@ -3296,7 +3296,7 @@

    Arguments

    @@ -3311,7 +3311,7 @@

    Arguments

    @@ -3351,7 +3351,7 @@

    Arguments

    @@ -3366,7 +3366,7 @@

    Arguments

    @@ -3383,7 +3383,7 @@

    Arguments

    @@ -3400,7 +3400,7 @@

    Arguments

    @@ -3417,7 +3417,7 @@

    Arguments

    @@ -3432,7 +3432,7 @@

    Arguments

    @@ -3451,7 +3451,7 @@

    Arguments

    @@ -3470,7 +3470,7 @@

    Arguments

    @@ -3489,7 +3489,7 @@

    Arguments

    @@ -3508,7 +3508,7 @@

    Arguments

    @@ -3552,7 +3552,7 @@

    Arguments

    @@ -3567,7 +3567,7 @@

    Arguments

    @@ -3583,7 +3583,7 @@

    Arguments

    @@ -3599,7 +3599,7 @@

    Arguments

    @@ -3614,7 +3614,7 @@

    Arguments

    @@ -3629,7 +3629,7 @@

    Arguments

    @@ -3648,7 +3648,7 @@

    Arguments

    @@ -3667,7 +3667,7 @@

    Arguments

    @@ -3686,7 +3686,7 @@

    Arguments

    @@ -3705,7 +3705,7 @@

    Arguments

    @@ -3749,7 +3749,7 @@

    Arguments

    @@ -3764,7 +3764,7 @@

    Arguments

    @@ -3780,7 +3780,7 @@

    Arguments

    @@ -3796,7 +3796,7 @@

    Arguments

    @@ -3811,7 +3811,7 @@

    Arguments

    @@ -3826,7 +3826,7 @@

    Arguments

    @@ -3841,7 +3841,7 @@

    Arguments

    @@ -3857,7 +3857,7 @@

    Arguments

    @@ -3873,7 +3873,7 @@

    Arguments

    @@ -3889,7 +3889,7 @@

    Arguments

    @@ -3930,7 +3930,7 @@

    Arguments

    @@ -3945,7 +3945,7 @@

    Arguments

    @@ -3961,7 +3961,7 @@

    Arguments

    @@ -3977,7 +3977,7 @@

    Arguments

    @@ -3992,7 +3992,7 @@

    Arguments

    @@ -4007,7 +4007,7 @@

    Arguments

    @@ -4022,7 +4022,7 @@

    Arguments

    @@ -4038,7 +4038,7 @@

    Arguments

    @@ -4054,7 +4054,7 @@

    Arguments

    @@ -4070,7 +4070,7 @@

    Arguments

    @@ -4111,7 +4111,7 @@

    Arguments

    @@ -4126,7 +4126,7 @@

    Arguments

    @@ -4142,7 +4142,7 @@

    Arguments

    @@ -4158,7 +4158,7 @@

    Arguments

    @@ -4173,7 +4173,7 @@

    Arguments

    @@ -4188,7 +4188,7 @@

    Arguments

    @@ -4203,7 +4203,7 @@

    Arguments

    @@ -4219,7 +4219,7 @@

    Arguments

    @@ -4235,7 +4235,7 @@

    Arguments

    @@ -4251,7 +4251,7 @@

    Arguments

    @@ -4292,7 +4292,7 @@

    Arguments

    @@ -4307,7 +4307,7 @@

    Arguments

    @@ -4323,7 +4323,7 @@

    Arguments

    @@ -4339,7 +4339,7 @@

    Arguments

    @@ -4354,7 +4354,7 @@

    Arguments

    @@ -4369,7 +4369,7 @@

    Arguments

    @@ -4384,7 +4384,7 @@

    Arguments

    @@ -4400,7 +4400,7 @@

    Arguments

    @@ -4416,7 +4416,7 @@

    Arguments

    @@ -4432,7 +4432,7 @@

    Arguments

    @@ -4473,7 +4473,7 @@

    Arguments

    @@ -4488,7 +4488,7 @@

    Arguments

    @@ -4504,7 +4504,7 @@

    Arguments

    @@ -4520,7 +4520,7 @@

    Arguments

    @@ -4535,7 +4535,7 @@

    Arguments

    @@ -4550,7 +4550,7 @@

    Arguments

    @@ -4565,7 +4565,7 @@

    Arguments

    @@ -4581,7 +4581,7 @@

    Arguments

    @@ -4597,7 +4597,7 @@

    Arguments

    @@ -4613,7 +4613,7 @@

    Arguments

    @@ -4654,7 +4654,7 @@

    Arguments

    @@ -4669,7 +4669,7 @@

    Arguments

    @@ -4685,7 +4685,7 @@

    Arguments

    @@ -4701,7 +4701,7 @@

    Arguments

    @@ -4716,7 +4716,7 @@

    Arguments

    @@ -4731,7 +4731,7 @@

    Arguments

    @@ -4746,7 +4746,7 @@

    Arguments

    @@ -4762,7 +4762,7 @@

    Arguments

    @@ -4778,7 +4778,7 @@

    Arguments

    @@ -4794,7 +4794,7 @@

    Arguments

    @@ -4835,7 +4835,7 @@

    Arguments

    @@ -4850,7 +4850,7 @@

    Arguments

    @@ -4866,7 +4866,7 @@

    Arguments

    @@ -4882,7 +4882,7 @@

    Arguments

    @@ -4897,7 +4897,7 @@

    Arguments

    @@ -4912,7 +4912,7 @@

    Arguments

    @@ -4927,7 +4927,7 @@

    Arguments

    @@ -4943,7 +4943,7 @@

    Arguments

    @@ -4959,7 +4959,7 @@

    Arguments

    @@ -4975,7 +4975,7 @@

    Arguments

    @@ -5016,7 +5016,7 @@

    Arguments

    @@ -5031,7 +5031,7 @@

    Arguments

    @@ -5047,7 +5047,7 @@

    Arguments

    @@ -5063,7 +5063,7 @@

    Arguments

    @@ -5078,7 +5078,7 @@

    Arguments

    @@ -5093,7 +5093,7 @@

    Arguments

    @@ -5108,7 +5108,7 @@

    Arguments

    @@ -5124,7 +5124,7 @@

    Arguments

    @@ -5140,7 +5140,7 @@

    Arguments

    @@ -5156,7 +5156,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_kinds.html b/develop/module/dbcsr_kinds.html index 214ee002574..d4ca113b513 100644 --- a/develop/module/dbcsr_kinds.html +++ b/develop/module/dbcsr_kinds.html @@ -113,8 +113,8 @@

    Variables

    - sp - dp + sp + dp dp_size int_size sp_size @@ -205,7 +205,7 @@

    Variables

    @@ -222,7 +222,7 @@

    Variables

    @@ -593,7 +593,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_lib.html b/develop/module/dbcsr_lib.html index 671d3270cd1..22725d91dbe 100644 --- a/develop/module/dbcsr_lib.html +++ b/develop/module/dbcsr_lib.html @@ -113,11 +113,11 @@

    Variables

    @@ -291,7 +291,7 @@

    Variables

    @@ -379,7 +379,7 @@

    Arguments

    @@ -394,7 +394,7 @@

    Arguments

    @@ -409,7 +409,7 @@

    Arguments

    @@ -450,7 +450,7 @@

    Arguments

    @@ -525,7 +525,7 @@

    Arguments

    @@ -540,7 +540,7 @@

    Arguments

    @@ -591,7 +591,7 @@

    Arguments

    @@ -606,7 +606,7 @@

    Arguments

    @@ -621,7 +621,7 @@

    Arguments

    @@ -663,7 +663,7 @@

    Arguments

    @@ -738,7 +738,7 @@

    Arguments

    @@ -753,7 +753,7 @@

    Arguments

    @@ -794,7 +794,7 @@

    Arguments

    @@ -809,7 +809,7 @@

    Arguments

    @@ -824,7 +824,7 @@

    Arguments

    @@ -893,7 +893,7 @@

    Arguments

    @@ -908,7 +908,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_list.html b/develop/module/dbcsr_list.html index 4d7c4e142b3..c88575e9f28 100644 --- a/develop/module/dbcsr_list.html +++ b/develop/module/dbcsr_list.html @@ -113,7 +113,7 @@

    Variables

    @@ -182,12 +182,12 @@

    Uses

    @@ -212,7 +212,7 @@

    Variables

    @@ -266,7 +266,7 @@

    Arguments

    @@ -281,7 +281,7 @@

    Arguments

    @@ -322,7 +322,7 @@

    Arguments

    @@ -337,7 +337,7 @@

    Arguments

    @@ -378,7 +378,7 @@

    Arguments

    @@ -393,7 +393,7 @@

    Arguments

    @@ -434,7 +434,7 @@

    Arguments

    @@ -449,7 +449,7 @@

    Arguments

    @@ -498,7 +498,7 @@

    Arguments

    @@ -542,7 +542,7 @@

    Arguments

    @@ -586,7 +586,7 @@

    Arguments

    @@ -630,7 +630,7 @@

    Arguments

    @@ -684,7 +684,7 @@

    Arguments

    @@ -699,7 +699,7 @@

    Arguments

    @@ -738,7 +738,7 @@

    Arguments

    @@ -753,7 +753,7 @@

    Arguments

    @@ -792,7 +792,7 @@

    Arguments

    @@ -846,7 +846,7 @@

    Arguments

    @@ -861,7 +861,7 @@

    Arguments

    @@ -913,7 +913,7 @@

    Arguments

    @@ -960,7 +960,7 @@

    Arguments

    @@ -1007,7 +1007,7 @@

    Arguments

    @@ -1054,7 +1054,7 @@

    Arguments

    @@ -1109,7 +1109,7 @@

    Arguments

    @@ -1154,7 +1154,7 @@

    Arguments

    @@ -1199,7 +1199,7 @@

    Arguments

    @@ -1244,7 +1244,7 @@

    Arguments

    @@ -1299,7 +1299,7 @@

    Arguments

    @@ -1314,7 +1314,7 @@

    Arguments

    @@ -1329,7 +1329,7 @@

    Arguments

    @@ -1369,7 +1369,7 @@

    Arguments

    @@ -1384,7 +1384,7 @@

    Arguments

    @@ -1399,7 +1399,7 @@

    Arguments

    @@ -1439,7 +1439,7 @@

    Arguments

    @@ -1469,7 +1469,7 @@

    Arguments

    @@ -1509,7 +1509,7 @@

    Arguments

    @@ -1524,7 +1524,7 @@

    Arguments

    @@ -1539,7 +1539,7 @@

    Arguments

    @@ -1590,7 +1590,7 @@

    Arguments

    @@ -1605,7 +1605,7 @@

    Arguments

    @@ -1620,7 +1620,7 @@

    Arguments

    @@ -1661,7 +1661,7 @@

    Arguments

    @@ -1676,7 +1676,7 @@

    Arguments

    @@ -1691,7 +1691,7 @@

    Arguments

    @@ -1732,7 +1732,7 @@

    Arguments

    @@ -1762,7 +1762,7 @@

    Arguments

    @@ -1803,7 +1803,7 @@

    Arguments

    @@ -1818,7 +1818,7 @@

    Arguments

    @@ -1833,7 +1833,7 @@

    Arguments

    @@ -1882,7 +1882,7 @@

    Arguments

    @@ -1897,7 +1897,7 @@

    Arguments

    @@ -1941,7 +1941,7 @@

    Arguments

    @@ -1956,7 +1956,7 @@

    Arguments

    @@ -2000,7 +2000,7 @@

    Arguments

    @@ -2015,7 +2015,7 @@

    Arguments

    @@ -2059,7 +2059,7 @@

    Arguments

    @@ -2074,7 +2074,7 @@

    Arguments

    @@ -2128,7 +2128,7 @@

    Arguments

    @@ -2143,7 +2143,7 @@

    Arguments

    @@ -2182,7 +2182,7 @@

    Arguments

    @@ -2197,7 +2197,7 @@

    Arguments

    @@ -2236,7 +2236,7 @@

    Arguments

    @@ -2251,7 +2251,7 @@

    Arguments

    @@ -2290,7 +2290,7 @@

    Arguments

    @@ -2305,7 +2305,7 @@

    Arguments

    @@ -2354,7 +2354,7 @@

    Arguments

    @@ -2393,7 +2393,7 @@

    Arguments

    @@ -2432,7 +2432,7 @@

    Arguments

    @@ -2471,7 +2471,7 @@

    Arguments

    @@ -2520,7 +2520,7 @@

    Arguments

    @@ -2564,7 +2564,7 @@

    Arguments

    @@ -2608,7 +2608,7 @@

    Arguments

    @@ -2652,7 +2652,7 @@

    Arguments

    @@ -2708,7 +2708,7 @@

    Arguments

    @@ -2749,7 +2749,7 @@

    Arguments

    @@ -2790,7 +2790,7 @@

    Arguments

    @@ -2831,7 +2831,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_list_callstackentry.html b/develop/module/dbcsr_list_callstackentry.html index 6030715e081..c2cacb70eec 100644 --- a/develop/module/dbcsr_list_callstackentry.html +++ b/develop/module/dbcsr_list_callstackentry.html @@ -228,7 +228,7 @@

    Components

    @@ -277,7 +277,7 @@

    Components

    @@ -326,7 +326,7 @@

    Components

    @@ -343,7 +343,7 @@

    Components

    @@ -392,7 +392,7 @@

    Arguments

    @@ -438,7 +438,7 @@

    Arguments

    @@ -486,7 +486,7 @@

    Arguments

    @@ -531,7 +531,7 @@

    Arguments

    @@ -546,7 +546,7 @@

    Arguments

    @@ -591,7 +591,7 @@

    Arguments

    @@ -643,7 +643,7 @@

    Arguments

    @@ -658,7 +658,7 @@

    Arguments

    @@ -700,7 +700,7 @@

    Arguments

    @@ -742,7 +742,7 @@

    Arguments

    @@ -757,7 +757,7 @@

    Arguments

    @@ -772,7 +772,7 @@

    Arguments

    @@ -812,7 +812,7 @@

    Arguments

    @@ -827,7 +827,7 @@

    Arguments

    @@ -868,7 +868,7 @@

    Arguments

    @@ -883,7 +883,7 @@

    Arguments

    @@ -898,7 +898,7 @@

    Arguments

    @@ -938,7 +938,7 @@

    Arguments

    @@ -978,7 +978,7 @@

    Arguments

    @@ -993,7 +993,7 @@

    Arguments

    @@ -1033,7 +1033,7 @@

    Arguments

    @@ -1048,7 +1048,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_list_routinereport.html b/develop/module/dbcsr_list_routinereport.html index 52a0d7a7c5a..55a2833931d 100644 --- a/develop/module/dbcsr_list_routinereport.html +++ b/develop/module/dbcsr_list_routinereport.html @@ -277,7 +277,7 @@

    Components

    @@ -326,7 +326,7 @@

    Components

    @@ -343,7 +343,7 @@

    Components

    @@ -392,7 +392,7 @@

    Arguments

    @@ -438,7 +438,7 @@

    Arguments

    @@ -486,7 +486,7 @@

    Arguments

    @@ -531,7 +531,7 @@

    Arguments

    @@ -546,7 +546,7 @@

    Arguments

    @@ -591,7 +591,7 @@

    Arguments

    @@ -643,7 +643,7 @@

    Arguments

    @@ -658,7 +658,7 @@

    Arguments

    @@ -700,7 +700,7 @@

    Arguments

    @@ -742,7 +742,7 @@

    Arguments

    @@ -772,7 +772,7 @@

    Arguments

    @@ -812,7 +812,7 @@

    Arguments

    @@ -868,7 +868,7 @@

    Arguments

    @@ -898,7 +898,7 @@

    Arguments

    @@ -938,7 +938,7 @@

    Arguments

    @@ -978,7 +978,7 @@

    Arguments

    @@ -993,7 +993,7 @@

    Arguments

    @@ -1033,7 +1033,7 @@

    Arguments

    @@ -1048,7 +1048,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_list_routinestat.html b/develop/module/dbcsr_list_routinestat.html index b820126ac96..d33235b9d03 100644 --- a/develop/module/dbcsr_list_routinestat.html +++ b/develop/module/dbcsr_list_routinestat.html @@ -228,7 +228,7 @@

    Components

    @@ -277,7 +277,7 @@

    Components

    @@ -326,7 +326,7 @@

    Components

    @@ -343,7 +343,7 @@

    Components

    @@ -392,7 +392,7 @@

    Arguments

    @@ -438,7 +438,7 @@

    Arguments

    @@ -486,7 +486,7 @@

    Arguments

    @@ -531,7 +531,7 @@

    Arguments

    @@ -546,7 +546,7 @@

    Arguments

    @@ -591,7 +591,7 @@

    Arguments

    @@ -643,7 +643,7 @@

    Arguments

    @@ -658,7 +658,7 @@

    Arguments

    @@ -700,7 +700,7 @@

    Arguments

    @@ -742,7 +742,7 @@

    Arguments

    @@ -757,7 +757,7 @@

    Arguments

    @@ -772,7 +772,7 @@

    Arguments

    @@ -812,7 +812,7 @@

    Arguments

    @@ -827,7 +827,7 @@

    Arguments

    @@ -868,7 +868,7 @@

    Arguments

    @@ -883,7 +883,7 @@

    Arguments

    @@ -898,7 +898,7 @@

    Arguments

    @@ -938,7 +938,7 @@

    Arguments

    @@ -978,7 +978,7 @@

    Arguments

    @@ -993,7 +993,7 @@

    Arguments

    @@ -1033,7 +1033,7 @@

    Arguments

    @@ -1048,7 +1048,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_list_timerenv.html b/develop/module/dbcsr_list_timerenv.html index cd8c57f2032..62ab7094867 100644 --- a/develop/module/dbcsr_list_timerenv.html +++ b/develop/module/dbcsr_list_timerenv.html @@ -185,8 +185,8 @@

    Uses

    @@ -228,7 +228,7 @@

    Components

    @@ -277,7 +277,7 @@

    Components

    @@ -326,7 +326,7 @@

    Components

    @@ -343,7 +343,7 @@

    Components

    @@ -392,7 +392,7 @@

    Arguments

    @@ -438,7 +438,7 @@

    Arguments

    @@ -486,7 +486,7 @@

    Arguments

    @@ -531,7 +531,7 @@

    Arguments

    @@ -546,7 +546,7 @@

    Arguments

    @@ -591,7 +591,7 @@

    Arguments

    @@ -643,7 +643,7 @@

    Arguments

    @@ -658,7 +658,7 @@

    Arguments

    @@ -700,7 +700,7 @@

    Arguments

    @@ -742,7 +742,7 @@

    Arguments

    @@ -757,7 +757,7 @@

    Arguments

    @@ -772,7 +772,7 @@

    Arguments

    @@ -812,7 +812,7 @@

    Arguments

    @@ -827,7 +827,7 @@

    Arguments

    @@ -868,7 +868,7 @@

    Arguments

    @@ -883,7 +883,7 @@

    Arguments

    @@ -898,7 +898,7 @@

    Arguments

    @@ -938,7 +938,7 @@

    Arguments

    @@ -978,7 +978,7 @@

    Arguments

    @@ -993,7 +993,7 @@

    Arguments

    @@ -1033,7 +1033,7 @@

    Arguments

    @@ -1048,7 +1048,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_log_handling.html b/develop/module/dbcsr_log_handling.html index 92dd64389b0..1752d001e4e 100644 --- a/develop/module/dbcsr_log_handling.html +++ b/develop/module/dbcsr_log_handling.html @@ -113,8 +113,8 @@

    Variables

    @@ -294,7 +294,7 @@

    Variables

    @@ -484,7 +484,7 @@

    Arguments

    @@ -530,7 +530,7 @@

    Arguments

    @@ -574,7 +574,7 @@

    Arguments

    @@ -635,7 +635,7 @@

    Components

    @@ -653,7 +653,7 @@

    Components

    @@ -671,7 +671,7 @@

    Components

    @@ -817,7 +817,7 @@

    Components

    @@ -883,7 +883,7 @@

    Components

    @@ -1096,7 +1096,7 @@

    Arguments

    @@ -1204,7 +1204,7 @@

    Arguments

    @@ -1266,7 +1266,7 @@

    Arguments

    @@ -1313,7 +1313,7 @@

    Arguments

    @@ -1358,7 +1358,7 @@

    Arguments

    @@ -1479,7 +1479,7 @@

    Arguments

    @@ -1494,7 +1494,7 @@

    Arguments

    @@ -1833,7 +1833,7 @@

    Arguments

    @@ -1880,7 +1880,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_machine_internal.html b/develop/module/dbcsr_machine_internal.html index 533e390127f..bf23c9631d9 100644 --- a/develop/module/dbcsr_machine_internal.html +++ b/develop/module/dbcsr_machine_internal.html @@ -548,7 +548,7 @@

    Arguments

    @@ -818,7 +818,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_mem_methods.html b/develop/module/dbcsr_mem_methods.html index fb35d34ccb7..ba1c7119fcf 100644 --- a/develop/module/dbcsr_mem_methods.html +++ b/develop/module/dbcsr_mem_methods.html @@ -113,8 +113,8 @@

    Variables

    @@ -180,11 +180,11 @@

    Uses

    @@ -209,7 +209,7 @@

    Variables

    @@ -226,7 +226,7 @@

    Variables

    @@ -288,7 +288,7 @@

    Arguments

    @@ -413,7 +413,7 @@

    Arguments

    @@ -453,7 +453,7 @@

    Arguments

    @@ -468,7 +468,7 @@

    Arguments

    @@ -508,7 +508,7 @@

    Arguments

    @@ -548,7 +548,7 @@

    Arguments

    @@ -588,7 +588,7 @@

    Arguments

    @@ -628,7 +628,7 @@

    Arguments

    @@ -683,7 +683,7 @@

    Arguments

    @@ -698,7 +698,7 @@

    Arguments

    @@ -713,7 +713,7 @@

    Arguments

    @@ -728,7 +728,7 @@

    Arguments

    @@ -743,7 +743,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_methods.html b/develop/module/dbcsr_methods.html index 45a7e3523d0..af06aae9660 100644 --- a/develop/module/dbcsr_methods.html +++ b/develop/module/dbcsr_methods.html @@ -113,7 +113,7 @@

    Variables

    @@ -235,14 +235,14 @@

    Uses

    @@ -267,7 +267,7 @@

    Variables

    @@ -423,7 +423,7 @@

    Arguments

    @@ -468,7 +468,7 @@

    Arguments

    @@ -513,7 +513,7 @@

    Arguments

    @@ -558,7 +558,7 @@

    Arguments

    @@ -603,7 +603,7 @@

    Arguments

    @@ -648,7 +648,7 @@

    Arguments

    @@ -693,7 +693,7 @@

    Arguments

    @@ -738,7 +738,7 @@

    Arguments

    @@ -783,7 +783,7 @@

    Arguments

    @@ -828,7 +828,7 @@

    Arguments

    @@ -873,7 +873,7 @@

    Arguments

    @@ -918,7 +918,7 @@

    Arguments

    @@ -963,7 +963,7 @@

    Arguments

    @@ -1053,7 +1053,7 @@

    Arguments

    @@ -1098,7 +1098,7 @@

    Arguments

    @@ -1143,7 +1143,7 @@

    Arguments

    @@ -1188,7 +1188,7 @@

    Arguments

    @@ -1233,7 +1233,7 @@

    Arguments

    @@ -1279,7 +1279,7 @@

    Arguments

    @@ -1294,7 +1294,7 @@

    Arguments

    @@ -1339,7 +1339,7 @@

    Arguments

    @@ -1354,7 +1354,7 @@

    Arguments

    @@ -1400,7 +1400,7 @@

    Arguments

    @@ -1460,7 +1460,7 @@

    Arguments

    @@ -1475,7 +1475,7 @@

    Arguments

    @@ -1520,7 +1520,7 @@

    Arguments

    @@ -1565,7 +1565,7 @@

    Arguments

    @@ -1610,7 +1610,7 @@

    Arguments

    @@ -1655,7 +1655,7 @@

    Arguments

    @@ -1700,7 +1700,7 @@

    Arguments

    @@ -1745,7 +1745,7 @@

    Arguments

    @@ -1790,7 +1790,7 @@

    Arguments

    @@ -1835,7 +1835,7 @@

    Arguments

    @@ -1880,7 +1880,7 @@

    Arguments

    @@ -1925,7 +1925,7 @@

    Arguments

    @@ -1970,7 +1970,7 @@

    Arguments

    @@ -2067,7 +2067,7 @@

    Arguments

    @@ -2107,7 +2107,7 @@

    Arguments

    @@ -2162,7 +2162,7 @@

    Arguments

    @@ -2202,7 +2202,7 @@

    Arguments

    @@ -2242,7 +2242,7 @@

    Arguments

    @@ -2282,7 +2282,7 @@

    Arguments

    @@ -2322,7 +2322,7 @@

    Arguments

    @@ -2362,7 +2362,7 @@

    Arguments

    @@ -2377,7 +2377,7 @@

    Arguments

    @@ -2795,7 +2795,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_min_heap.html b/develop/module/dbcsr_min_heap.html index d73be8873fc..5de5a5951bd 100644 --- a/develop/module/dbcsr_min_heap.html +++ b/develop/module/dbcsr_min_heap.html @@ -292,7 +292,7 @@

    Components

    @@ -309,7 +309,7 @@

    Components

    @@ -358,7 +358,7 @@

    Components

    @@ -407,7 +407,7 @@

    Components

    @@ -424,7 +424,7 @@

    Components

    @@ -490,7 +490,7 @@

    Arguments

    @@ -535,7 +535,7 @@

    Arguments

    @@ -595,7 +595,7 @@

    Arguments

    @@ -660,7 +660,7 @@

    Arguments

    @@ -755,7 +755,7 @@

    Arguments

    @@ -810,7 +810,7 @@

    Arguments

    @@ -825,7 +825,7 @@

    Arguments

    @@ -840,7 +840,7 @@

    Arguments

    @@ -896,7 +896,7 @@

    Arguments

    @@ -911,7 +911,7 @@

    Arguments

    @@ -926,7 +926,7 @@

    Arguments

    @@ -982,7 +982,7 @@

    Arguments

    @@ -997,7 +997,7 @@

    Arguments

    @@ -1052,7 +1052,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_mm.html b/develop/module/dbcsr_mm.html index bc0110247cc..94187b6675e 100644 --- a/develop/module/dbcsr_mm.html +++ b/develop/module/dbcsr_mm.html @@ -113,9 +113,9 @@

    Variables

    @@ -171,33 +171,33 @@

    Uses

    @@ -222,7 +222,7 @@

    Variables

    @@ -239,7 +239,7 @@

    Variables

    @@ -256,7 +256,7 @@

    Variables

    @@ -347,7 +347,7 @@

    Arguments

    @@ -362,7 +362,7 @@

    Arguments

    @@ -416,7 +416,7 @@

    Arguments

    @@ -434,7 +434,7 @@

    Arguments

    @@ -452,7 +452,7 @@

    Arguments

    @@ -467,7 +467,7 @@

    Arguments

    @@ -483,7 +483,7 @@

    Arguments

    @@ -499,7 +499,7 @@

    Arguments

    @@ -549,7 +549,7 @@

    Arguments

    @@ -589,7 +589,7 @@

    Arguments

    @@ -649,7 +649,7 @@

    Arguments

    @@ -664,7 +664,7 @@

    Arguments

    @@ -679,7 +679,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_mm_3d.html b/develop/module/dbcsr_mm_3d.html index 7916835ab91..4be163d60f8 100644 --- a/develop/module/dbcsr_mm_3d.html +++ b/develop/module/dbcsr_mm_3d.html @@ -113,14 +113,14 @@

    Variables

    @@ -299,7 +299,7 @@

    Variables

    @@ -316,7 +316,7 @@

    Variables

    @@ -384,7 +384,7 @@

    Variables

    @@ -401,7 +401,7 @@

    Variables

    @@ -775,7 +775,7 @@

    Components

    @@ -809,7 +809,7 @@

    Components

    @@ -945,7 +945,7 @@

    Components

    @@ -1030,7 +1030,7 @@

    Components

    @@ -1064,7 +1064,7 @@

    Components

    @@ -1164,7 +1164,7 @@

    Components

    @@ -1181,7 +1181,7 @@

    Components

    @@ -1230,7 +1230,7 @@

    Components

    @@ -1330,7 +1330,7 @@

    Components

    @@ -1398,7 +1398,7 @@

    Components

    @@ -1447,7 +1447,7 @@

    Arguments

    @@ -1462,7 +1462,7 @@

    Arguments

    @@ -1477,7 +1477,7 @@

    Arguments

    @@ -1560,7 +1560,7 @@

    Arguments

    @@ -1680,7 +1680,7 @@

    Arguments

    @@ -1720,7 +1720,7 @@

    Arguments

    @@ -1910,7 +1910,7 @@

    Arguments

    @@ -1940,7 +1940,7 @@

    Arguments

    @@ -1995,7 +1995,7 @@

    Arguments

    @@ -2107,7 +2107,7 @@

    Arguments

    @@ -2122,7 +2122,7 @@

    Arguments

    @@ -2137,7 +2137,7 @@

    Arguments

    @@ -2152,7 +2152,7 @@

    Arguments

    @@ -2167,7 +2167,7 @@

    Arguments

    @@ -2182,7 +2182,7 @@

    Arguments

    @@ -2197,7 +2197,7 @@

    Arguments

    @@ -2237,7 +2237,7 @@

    Arguments

    @@ -2438,7 +2438,7 @@

    Arguments

    @@ -2468,7 +2468,7 @@

    Arguments

    @@ -2498,7 +2498,7 @@

    Arguments

    @@ -2553,7 +2553,7 @@

    Arguments

    @@ -2598,7 +2598,7 @@

    Arguments

    @@ -2723,7 +2723,7 @@

    Arguments

    @@ -2768,7 +2768,7 @@

    Arguments

    @@ -3003,7 +3003,7 @@

    Arguments

    @@ -3043,7 +3043,7 @@

    Arguments

    @@ -3058,7 +3058,7 @@

    Arguments

    @@ -3073,7 +3073,7 @@

    Arguments

    @@ -3103,7 +3103,7 @@

    Arguments

    @@ -3118,7 +3118,7 @@

    Arguments

    @@ -3186,7 +3186,7 @@

    Arguments

    @@ -3226,7 +3226,7 @@

    Arguments

    @@ -3331,7 +3331,7 @@

    Arguments

    @@ -3416,7 +3416,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_mm_accdrv.html b/develop/module/dbcsr_mm_accdrv.html index ab7b7ef88d7..02960165fea 100644 --- a/develop/module/dbcsr_mm_accdrv.html +++ b/develop/module/dbcsr_mm_accdrv.html @@ -113,8 +113,8 @@

    Variables

    @@ -253,7 +253,7 @@

    Variables

    @@ -338,7 +338,7 @@

    Components

    @@ -389,7 +389,7 @@

    Components

    @@ -423,7 +423,7 @@

    Components

    @@ -489,7 +489,7 @@

    Components

    @@ -540,7 +540,7 @@

    Components

    @@ -623,7 +623,7 @@

    Components

    @@ -699,7 +699,7 @@

    Arguments

    @@ -714,7 +714,7 @@

    Arguments

    @@ -729,7 +729,7 @@

    Arguments

    @@ -744,7 +744,7 @@

    Arguments

    @@ -840,7 +840,7 @@

    Arguments

    @@ -936,7 +936,7 @@

    Arguments

    @@ -976,7 +976,7 @@

    Arguments

    @@ -1046,7 +1046,7 @@

    Arguments

    @@ -1116,7 +1116,7 @@

    Arguments

    @@ -1169,7 +1169,7 @@

    Arguments

    @@ -1184,7 +1184,7 @@

    Arguments

    @@ -1199,7 +1199,7 @@

    Arguments

    @@ -1229,7 +1229,7 @@

    Arguments

    @@ -1244,7 +1244,7 @@

    Arguments

    @@ -1259,7 +1259,7 @@

    Arguments

    @@ -1274,7 +1274,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_mm_cannon.html b/develop/module/dbcsr_mm_cannon.html index d6329c25d21..f71ac03aa87 100644 --- a/develop/module/dbcsr_mm_cannon.html +++ b/develop/module/dbcsr_mm_cannon.html @@ -113,9 +113,9 @@

    Variables

    @@ -195,37 +195,37 @@

    Uses

    @@ -250,7 +250,7 @@

    Variables

    @@ -267,7 +267,7 @@

    Variables

    @@ -284,7 +284,7 @@

    Variables

    @@ -454,7 +454,7 @@

    Arguments

    @@ -484,7 +484,7 @@

    Arguments

    @@ -649,7 +649,7 @@

    Arguments

    @@ -664,7 +664,7 @@

    Arguments

    @@ -679,7 +679,7 @@

    Arguments

    @@ -694,7 +694,7 @@

    Arguments

    @@ -709,7 +709,7 @@

    Arguments

    @@ -724,7 +724,7 @@

    Arguments

    @@ -764,7 +764,7 @@

    Arguments

    @@ -1009,7 +1009,7 @@

    Arguments

    @@ -1039,7 +1039,7 @@

    Arguments

    @@ -1055,7 +1055,7 @@

    Arguments

    @@ -1190,7 +1190,7 @@

    Arguments

    @@ -1205,7 +1205,7 @@

    Arguments

    @@ -1220,7 +1220,7 @@

    Arguments

    @@ -1235,7 +1235,7 @@

    Arguments

    @@ -1322,7 +1322,7 @@

    Arguments

    @@ -1337,7 +1337,7 @@

    Arguments

    @@ -1352,7 +1352,7 @@

    Arguments

    @@ -1367,7 +1367,7 @@

    Arguments

    @@ -1482,7 +1482,7 @@

    Arguments

    @@ -1558,7 +1558,7 @@

    Arguments

    @@ -1613,7 +1613,7 @@

    Arguments

    @@ -1668,7 +1668,7 @@

    Arguments

    @@ -1683,7 +1683,7 @@

    Arguments

    @@ -1698,7 +1698,7 @@

    Arguments

    @@ -1713,7 +1713,7 @@

    Arguments

    @@ -1893,7 +1893,7 @@

    Arguments

    @@ -1908,7 +1908,7 @@

    Arguments

    @@ -1923,7 +1923,7 @@

    Arguments

    @@ -1938,7 +1938,7 @@

    Arguments

    @@ -1953,7 +1953,7 @@

    Arguments

    @@ -1968,7 +1968,7 @@

    Arguments

    @@ -1983,7 +1983,7 @@

    Arguments

    @@ -1998,7 +1998,7 @@

    Arguments

    @@ -2013,7 +2013,7 @@

    Arguments

    @@ -2118,7 +2118,7 @@

    Arguments

    @@ -2163,7 +2163,7 @@

    Arguments

    @@ -2178,7 +2178,7 @@

    Arguments

    @@ -2268,7 +2268,7 @@

    Arguments

    @@ -2283,7 +2283,7 @@

    Arguments

    @@ -2298,7 +2298,7 @@

    Arguments

    @@ -2313,7 +2313,7 @@

    Arguments

    @@ -2328,7 +2328,7 @@

    Arguments

    @@ -2343,7 +2343,7 @@

    Arguments

    @@ -2478,7 +2478,7 @@

    Arguments

    @@ -2593,7 +2593,7 @@

    Arguments

    @@ -2608,7 +2608,7 @@

    Arguments

    @@ -2623,7 +2623,7 @@

    Arguments

    @@ -2638,7 +2638,7 @@

    Arguments

    @@ -2653,7 +2653,7 @@

    Arguments

    @@ -2668,7 +2668,7 @@

    Arguments

    @@ -2683,7 +2683,7 @@

    Arguments

    @@ -2698,7 +2698,7 @@

    Arguments

    @@ -2713,7 +2713,7 @@

    Arguments

    @@ -2818,7 +2818,7 @@

    Arguments

    @@ -2863,7 +2863,7 @@

    Arguments

    @@ -2878,7 +2878,7 @@

    Arguments

    @@ -2968,7 +2968,7 @@

    Arguments

    @@ -2983,7 +2983,7 @@

    Arguments

    @@ -2998,7 +2998,7 @@

    Arguments

    @@ -3013,7 +3013,7 @@

    Arguments

    @@ -3028,7 +3028,7 @@

    Arguments

    @@ -3043,7 +3043,7 @@

    Arguments

    @@ -3178,7 +3178,7 @@

    Arguments

    @@ -3293,7 +3293,7 @@

    Arguments

    @@ -3308,7 +3308,7 @@

    Arguments

    @@ -3323,7 +3323,7 @@

    Arguments

    @@ -3338,7 +3338,7 @@

    Arguments

    @@ -3353,7 +3353,7 @@

    Arguments

    @@ -3368,7 +3368,7 @@

    Arguments

    @@ -3383,7 +3383,7 @@

    Arguments

    @@ -3398,7 +3398,7 @@

    Arguments

    @@ -3413,7 +3413,7 @@

    Arguments

    @@ -3518,7 +3518,7 @@

    Arguments

    @@ -3563,7 +3563,7 @@

    Arguments

    @@ -3578,7 +3578,7 @@

    Arguments

    @@ -3668,7 +3668,7 @@

    Arguments

    @@ -3683,7 +3683,7 @@

    Arguments

    @@ -3698,7 +3698,7 @@

    Arguments

    @@ -3713,7 +3713,7 @@

    Arguments

    @@ -3728,7 +3728,7 @@

    Arguments

    @@ -3743,7 +3743,7 @@

    Arguments

    @@ -3878,7 +3878,7 @@

    Arguments

    @@ -3993,7 +3993,7 @@

    Arguments

    @@ -4008,7 +4008,7 @@

    Arguments

    @@ -4023,7 +4023,7 @@

    Arguments

    @@ -4038,7 +4038,7 @@

    Arguments

    @@ -4053,7 +4053,7 @@

    Arguments

    @@ -4068,7 +4068,7 @@

    Arguments

    @@ -4083,7 +4083,7 @@

    Arguments

    @@ -4098,7 +4098,7 @@

    Arguments

    @@ -4113,7 +4113,7 @@

    Arguments

    @@ -4218,7 +4218,7 @@

    Arguments

    @@ -4263,7 +4263,7 @@

    Arguments

    @@ -4278,7 +4278,7 @@

    Arguments

    @@ -4368,7 +4368,7 @@

    Arguments

    @@ -4383,7 +4383,7 @@

    Arguments

    @@ -4398,7 +4398,7 @@

    Arguments

    @@ -4413,7 +4413,7 @@

    Arguments

    @@ -4428,7 +4428,7 @@

    Arguments

    @@ -4443,7 +4443,7 @@

    Arguments

    @@ -4578,7 +4578,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_mm_common.html b/develop/module/dbcsr_mm_common.html index 0c93ed81fee..7257d980c96 100644 --- a/develop/module/dbcsr_mm_common.html +++ b/develop/module/dbcsr_mm_common.html @@ -113,7 +113,7 @@

    Variables

    @@ -575,7 +575,7 @@

    Components

    @@ -641,7 +641,7 @@

    Components

    @@ -707,7 +707,7 @@

    Arguments

    @@ -722,7 +722,7 @@

    Arguments

    @@ -737,7 +737,7 @@

    Arguments

    @@ -782,7 +782,7 @@

    Arguments

    @@ -797,7 +797,7 @@

    Arguments

    @@ -812,7 +812,7 @@

    Arguments

    @@ -877,7 +877,7 @@

    Arguments

    @@ -947,7 +947,7 @@

    Arguments

    @@ -992,7 +992,7 @@

    Arguments

    @@ -1022,7 +1022,7 @@

    Arguments

    @@ -1062,7 +1062,7 @@

    Arguments

    @@ -1077,7 +1077,7 @@

    Arguments

    @@ -1092,7 +1092,7 @@

    Arguments

    @@ -1107,7 +1107,7 @@

    Arguments

    @@ -1137,7 +1137,7 @@

    Arguments

    @@ -1152,7 +1152,7 @@

    Arguments

    @@ -1207,7 +1207,7 @@

    Arguments

    @@ -1222,7 +1222,7 @@

    Arguments

    @@ -1267,7 +1267,7 @@

    Arguments

    @@ -1322,7 +1322,7 @@

    Arguments

    @@ -1407,7 +1407,7 @@

    Arguments

    @@ -1422,7 +1422,7 @@

    Arguments

    @@ -1437,7 +1437,7 @@

    Arguments

    @@ -1452,7 +1452,7 @@

    Arguments

    @@ -1467,7 +1467,7 @@

    Arguments

    @@ -1482,7 +1482,7 @@

    Arguments

    @@ -1497,7 +1497,7 @@

    Arguments

    @@ -1512,7 +1512,7 @@

    Arguments

    @@ -1567,7 +1567,7 @@

    Arguments

    @@ -1642,7 +1642,7 @@

    Arguments

    @@ -1657,7 +1657,7 @@

    Arguments

    @@ -1698,7 +1698,7 @@

    Arguments

    @@ -1728,7 +1728,7 @@

    Arguments

    @@ -1743,7 +1743,7 @@

    Arguments

    @@ -1783,7 +1783,7 @@

    Arguments

    @@ -1798,7 +1798,7 @@

    Arguments

    @@ -1813,7 +1813,7 @@

    Arguments

    @@ -1828,7 +1828,7 @@

    Arguments

    @@ -1883,7 +1883,7 @@

    Arguments

    @@ -1943,7 +1943,7 @@

    Arguments

    @@ -1998,7 +1998,7 @@

    Arguments

    @@ -2058,7 +2058,7 @@

    Arguments

    @@ -2113,7 +2113,7 @@

    Arguments

    @@ -2173,7 +2173,7 @@

    Arguments

    @@ -2228,7 +2228,7 @@

    Arguments

    @@ -2288,7 +2288,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_mm_csr.html b/develop/module/dbcsr_mm_csr.html index c0c6e16fd20..46dc9b31a0e 100644 --- a/develop/module/dbcsr_mm_csr.html +++ b/develop/module/dbcsr_mm_csr.html @@ -113,9 +113,9 @@

    Variables

    @@ -213,18 +213,18 @@

    Uses

    @@ -249,7 +249,7 @@

    Variables

    @@ -266,7 +266,7 @@

    Variables

    @@ -283,7 +283,7 @@

    Variables

    @@ -470,7 +470,7 @@

    Components

    @@ -487,7 +487,7 @@

    Components

    @@ -504,7 +504,7 @@

    Components

    @@ -606,7 +606,7 @@

    Components

    @@ -674,7 +674,7 @@

    Components

    @@ -723,7 +723,7 @@

    Components

    @@ -740,7 +740,7 @@

    Components

    @@ -823,7 +823,7 @@

    Components

    @@ -889,7 +889,7 @@

    Arguments

    @@ -905,7 +905,7 @@

    Arguments

    @@ -951,7 +951,7 @@

    Arguments

    @@ -1011,7 +1011,7 @@

    Arguments

    @@ -1087,7 +1087,7 @@

    Arguments

    @@ -1102,7 +1102,7 @@

    Arguments

    @@ -1117,7 +1117,7 @@

    Arguments

    @@ -1282,7 +1282,7 @@

    Arguments

    @@ -1297,7 +1297,7 @@

    Arguments

    @@ -1312,7 +1312,7 @@

    Arguments

    @@ -1327,7 +1327,7 @@

    Arguments

    @@ -1342,7 +1342,7 @@

    Arguments

    @@ -1357,7 +1357,7 @@

    Arguments

    @@ -1372,7 +1372,7 @@

    Arguments

    @@ -1402,7 +1402,7 @@

    Arguments

    @@ -1417,7 +1417,7 @@

    Arguments

    @@ -1517,7 +1517,7 @@

    Arguments

    @@ -1532,7 +1532,7 @@

    Arguments

    @@ -1547,7 +1547,7 @@

    Arguments

    @@ -1712,7 +1712,7 @@

    Arguments

    @@ -1757,7 +1757,7 @@

    Arguments

    @@ -1772,7 +1772,7 @@

    Arguments

    @@ -1787,7 +1787,7 @@

    Arguments

    @@ -1802,7 +1802,7 @@

    Arguments

    @@ -1817,7 +1817,7 @@

    Arguments

    @@ -1832,7 +1832,7 @@

    Arguments

    @@ -1847,7 +1847,7 @@

    Arguments

    @@ -1877,7 +1877,7 @@

    Arguments

    @@ -1892,7 +1892,7 @@

    Arguments

    @@ -2187,7 +2187,7 @@

    Arguments

    @@ -2202,7 +2202,7 @@

    Arguments

    @@ -2217,7 +2217,7 @@

    Arguments

    @@ -2247,7 +2247,7 @@

    Arguments

    @@ -2262,7 +2262,7 @@

    Arguments

    @@ -2322,7 +2322,7 @@

    Arguments

    @@ -2377,7 +2377,7 @@

    Arguments

    @@ -2407,7 +2407,7 @@

    Arguments

    @@ -2422,7 +2422,7 @@

    Arguments

    @@ -2462,7 +2462,7 @@

    Arguments

    @@ -2502,7 +2502,7 @@

    Arguments

    @@ -2542,7 +2542,7 @@

    Arguments

    @@ -2572,7 +2572,7 @@

    Arguments

    @@ -2587,7 +2587,7 @@

    Arguments

    @@ -2602,7 +2602,7 @@

    Arguments

    @@ -2617,7 +2617,7 @@

    Arguments

    @@ -2677,7 +2677,7 @@

    Arguments

    @@ -2717,7 +2717,7 @@

    Arguments

    @@ -2732,7 +2732,7 @@

    Arguments

    @@ -2747,7 +2747,7 @@

    Arguments

    @@ -2787,7 +2787,7 @@

    Arguments

    @@ -2802,7 +2802,7 @@

    Arguments

    @@ -2817,7 +2817,7 @@

    Arguments

    @@ -2932,7 +2932,7 @@

    Arguments

    @@ -3158,7 +3158,7 @@

    Arguments

    @@ -3174,7 +3174,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_mm_dist_operations.html b/develop/module/dbcsr_mm_dist_operations.html index f5a52b1c677..233e0593f8c 100644 --- a/develop/module/dbcsr_mm_dist_operations.html +++ b/develop/module/dbcsr_mm_dist_operations.html @@ -114,9 +114,9 @@

    Variables

    @@ -183,14 +183,14 @@

    Uses

    @@ -232,7 +232,7 @@

    Variables

    @@ -249,7 +249,7 @@

    Variables

    @@ -266,7 +266,7 @@

    Variables

    @@ -329,7 +329,7 @@

    Arguments

    @@ -508,7 +508,7 @@

    Arguments

    @@ -523,7 +523,7 @@

    Arguments

    @@ -668,7 +668,7 @@

    Arguments

    @@ -683,7 +683,7 @@

    Arguments

    @@ -698,7 +698,7 @@

    Arguments

    @@ -753,7 +753,7 @@

    Arguments

    @@ -794,7 +794,7 @@

    Arguments

    @@ -1004,7 +1004,7 @@

    Arguments

    @@ -1019,7 +1019,7 @@

    Arguments

    @@ -1034,7 +1034,7 @@

    Arguments

    @@ -1049,7 +1049,7 @@

    Arguments

    @@ -1064,7 +1064,7 @@

    Arguments

    @@ -1109,7 +1109,7 @@

    Arguments

    @@ -1124,7 +1124,7 @@

    Arguments

    @@ -1354,7 +1354,7 @@

    Arguments

    @@ -1369,7 +1369,7 @@

    Arguments

    @@ -1384,7 +1384,7 @@

    Arguments

    @@ -1531,7 +1531,7 @@

    Arguments

    @@ -1616,7 +1616,7 @@

    Arguments

    @@ -1656,7 +1656,7 @@

    Arguments

    @@ -1671,7 +1671,7 @@

    Arguments

    @@ -1711,7 +1711,7 @@

    Arguments

    @@ -1726,7 +1726,7 @@

    Arguments

    @@ -1895,7 +1895,7 @@

    Arguments

    @@ -1910,7 +1910,7 @@

    Arguments

    @@ -1951,7 +1951,7 @@

    Arguments

    @@ -1981,7 +1981,7 @@

    Arguments

    @@ -1997,7 +1997,7 @@

    Arguments

    @@ -2038,7 +2038,7 @@

    Arguments

    @@ -2098,7 +2098,7 @@

    Arguments

    @@ -2138,7 +2138,7 @@

    Arguments

    @@ -2154,7 +2154,7 @@

    Arguments

    @@ -2170,7 +2170,7 @@

    Arguments

    @@ -2202,7 +2202,7 @@

    Arguments

    @@ -2219,7 +2219,7 @@

    Arguments

    @@ -2236,7 +2236,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_mm_hostdrv.html b/develop/module/dbcsr_mm_hostdrv.html index e4e1c20cc19..857e4c47b4e 100644 --- a/develop/module/dbcsr_mm_hostdrv.html +++ b/develop/module/dbcsr_mm_hostdrv.html @@ -113,10 +113,10 @@

    Variables

    @@ -195,12 +195,12 @@

    Uses

    @@ -225,7 +225,7 @@

    Variables

    @@ -259,7 +259,7 @@

    Variables

    @@ -276,7 +276,7 @@

    Variables

    @@ -327,7 +327,7 @@

    Components

    @@ -403,7 +403,7 @@

    Arguments

    @@ -418,7 +418,7 @@

    Arguments

    @@ -458,7 +458,7 @@

    Arguments

    @@ -473,7 +473,7 @@

    Arguments

    @@ -489,7 +489,7 @@

    Arguments

    @@ -520,7 +520,7 @@

    Arguments

    @@ -535,7 +535,7 @@

    Arguments

    @@ -550,7 +550,7 @@

    Arguments

    @@ -660,7 +660,7 @@

    Arguments

    @@ -675,7 +675,7 @@

    Arguments

    @@ -691,7 +691,7 @@

    Arguments

    @@ -707,7 +707,7 @@

    Arguments

    @@ -762,7 +762,7 @@

    Arguments

    @@ -777,7 +777,7 @@

    Arguments

    @@ -793,7 +793,7 @@

    Arguments

    @@ -809,7 +809,7 @@

    Arguments

    @@ -849,7 +849,7 @@

    Arguments

    @@ -879,7 +879,7 @@

    Arguments

    @@ -894,7 +894,7 @@

    Arguments

    @@ -910,7 +910,7 @@

    Arguments

    @@ -926,7 +926,7 @@

    Arguments

    @@ -981,7 +981,7 @@

    Arguments

    @@ -996,7 +996,7 @@

    Arguments

    @@ -1011,7 +1011,7 @@

    Arguments

    @@ -1111,7 +1111,7 @@

    Arguments

    @@ -1126,7 +1126,7 @@

    Arguments

    @@ -1142,7 +1142,7 @@

    Arguments

    @@ -1158,7 +1158,7 @@

    Arguments

    @@ -1213,7 +1213,7 @@

    Arguments

    @@ -1228,7 +1228,7 @@

    Arguments

    @@ -1244,7 +1244,7 @@

    Arguments

    @@ -1260,7 +1260,7 @@

    Arguments

    @@ -1300,7 +1300,7 @@

    Arguments

    @@ -1330,7 +1330,7 @@

    Arguments

    @@ -1345,7 +1345,7 @@

    Arguments

    @@ -1361,7 +1361,7 @@

    Arguments

    @@ -1377,7 +1377,7 @@

    Arguments

    @@ -1432,7 +1432,7 @@

    Arguments

    @@ -1447,7 +1447,7 @@

    Arguments

    @@ -1462,7 +1462,7 @@

    Arguments

    @@ -1562,7 +1562,7 @@

    Arguments

    @@ -1577,7 +1577,7 @@

    Arguments

    @@ -1593,7 +1593,7 @@

    Arguments

    @@ -1609,7 +1609,7 @@

    Arguments

    @@ -1664,7 +1664,7 @@

    Arguments

    @@ -1679,7 +1679,7 @@

    Arguments

    @@ -1695,7 +1695,7 @@

    Arguments

    @@ -1711,7 +1711,7 @@

    Arguments

    @@ -1751,7 +1751,7 @@

    Arguments

    @@ -1781,7 +1781,7 @@

    Arguments

    @@ -1796,7 +1796,7 @@

    Arguments

    @@ -1812,7 +1812,7 @@

    Arguments

    @@ -1828,7 +1828,7 @@

    Arguments

    @@ -1883,7 +1883,7 @@

    Arguments

    @@ -1898,7 +1898,7 @@

    Arguments

    @@ -1913,7 +1913,7 @@

    Arguments

    @@ -2013,7 +2013,7 @@

    Arguments

    @@ -2028,7 +2028,7 @@

    Arguments

    @@ -2044,7 +2044,7 @@

    Arguments

    @@ -2060,7 +2060,7 @@

    Arguments

    @@ -2115,7 +2115,7 @@

    Arguments

    @@ -2130,7 +2130,7 @@

    Arguments

    @@ -2146,7 +2146,7 @@

    Arguments

    @@ -2162,7 +2162,7 @@

    Arguments

    @@ -2202,7 +2202,7 @@

    Arguments

    @@ -2232,7 +2232,7 @@

    Arguments

    @@ -2247,7 +2247,7 @@

    Arguments

    @@ -2263,7 +2263,7 @@

    Arguments

    @@ -2279,7 +2279,7 @@

    Arguments

    @@ -2334,7 +2334,7 @@

    Arguments

    @@ -2349,7 +2349,7 @@

    Arguments

    @@ -2364,7 +2364,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_mm_multrec.html b/develop/module/dbcsr_mm_multrec.html index 645b741d4f1..e1b597725a3 100644 --- a/develop/module/dbcsr_mm_multrec.html +++ b/develop/module/dbcsr_mm_multrec.html @@ -113,8 +113,8 @@

    Variables

    @@ -207,14 +207,14 @@

    Uses

    @@ -239,7 +239,7 @@

    Variables

    @@ -256,7 +256,7 @@

    Variables

    @@ -308,7 +308,7 @@

    Components

    @@ -327,7 +327,7 @@

    Components

    @@ -346,7 +346,7 @@

    Components

    @@ -384,7 +384,7 @@

    Components

    @@ -403,7 +403,7 @@

    Components

    @@ -422,7 +422,7 @@

    Components

    @@ -475,7 +475,7 @@

    Components

    @@ -496,7 +496,7 @@

    Components

    @@ -580,7 +580,7 @@

    Components

    @@ -637,7 +637,7 @@

    Components

    @@ -671,7 +671,7 @@

    Components

    @@ -688,7 +688,7 @@

    Components

    @@ -788,7 +788,7 @@

    Arguments

    @@ -833,7 +833,7 @@

    Arguments

    @@ -908,7 +908,7 @@

    Arguments

    @@ -923,7 +923,7 @@

    Arguments

    @@ -998,7 +998,7 @@

    Arguments

    @@ -1013,7 +1013,7 @@

    Arguments

    @@ -1089,7 +1089,7 @@

    Arguments

    @@ -1104,7 +1104,7 @@

    Arguments

    @@ -1120,7 +1120,7 @@

    Arguments

    @@ -1151,7 +1151,7 @@

    Arguments

    @@ -1166,7 +1166,7 @@

    Arguments

    @@ -1181,7 +1181,7 @@

    Arguments

    @@ -1226,7 +1226,7 @@

    Arguments

    @@ -1241,7 +1241,7 @@

    Arguments

    @@ -1256,7 +1256,7 @@

    Arguments

    @@ -1271,7 +1271,7 @@

    Arguments

    @@ -1312,7 +1312,7 @@

    Arguments

    @@ -1327,7 +1327,7 @@

    Arguments

    @@ -1343,7 +1343,7 @@

    Arguments

    @@ -1359,7 +1359,7 @@

    Arguments

    @@ -1406,7 +1406,7 @@

    Arguments

    @@ -1446,7 +1446,7 @@

    Arguments

    @@ -1486,7 +1486,7 @@

    Arguments

    @@ -1541,7 +1541,7 @@

    Arguments

    @@ -1581,7 +1581,7 @@

    Arguments

    @@ -1611,7 +1611,7 @@

    Arguments

    @@ -1626,7 +1626,7 @@

    Arguments

    @@ -1696,7 +1696,7 @@

    Arguments

    @@ -1711,7 +1711,7 @@

    Arguments

    @@ -1726,7 +1726,7 @@

    Arguments

    @@ -1741,7 +1741,7 @@

    Arguments

    @@ -1756,7 +1756,7 @@

    Arguments

    @@ -1771,7 +1771,7 @@

    Arguments

    @@ -1786,7 +1786,7 @@

    Arguments

    @@ -1921,7 +1921,7 @@

    Arguments

    @@ -1961,7 +1961,7 @@

    Arguments

    @@ -1976,7 +1976,7 @@

    Arguments

    @@ -1991,7 +1991,7 @@

    Arguments

    @@ -2006,7 +2006,7 @@

    Arguments

    @@ -2077,7 +2077,7 @@

    Arguments

    @@ -2092,7 +2092,7 @@

    Arguments

    @@ -2107,7 +2107,7 @@

    Arguments

    @@ -2122,7 +2122,7 @@

    Arguments

    @@ -2163,7 +2163,7 @@

    Arguments

    @@ -2178,7 +2178,7 @@

    Arguments

    @@ -2193,7 +2193,7 @@

    Arguments

    @@ -2208,7 +2208,7 @@

    Arguments

    @@ -2223,7 +2223,7 @@

    Arguments

    @@ -2238,7 +2238,7 @@

    Arguments

    @@ -2253,7 +2253,7 @@

    Arguments

    @@ -2268,7 +2268,7 @@

    Arguments

    @@ -2283,7 +2283,7 @@

    Arguments

    @@ -2324,7 +2324,7 @@

    Arguments

    @@ -2339,7 +2339,7 @@

    Arguments

    @@ -2354,7 +2354,7 @@

    Arguments

    @@ -2369,7 +2369,7 @@

    Arguments

    @@ -2384,7 +2384,7 @@

    Arguments

    @@ -2399,7 +2399,7 @@

    Arguments

    @@ -2414,7 +2414,7 @@

    Arguments

    @@ -2429,7 +2429,7 @@

    Arguments

    @@ -2444,7 +2444,7 @@

    Arguments

    @@ -2485,7 +2485,7 @@

    Arguments

    @@ -2500,7 +2500,7 @@

    Arguments

    @@ -2515,7 +2515,7 @@

    Arguments

    @@ -2530,7 +2530,7 @@

    Arguments

    @@ -2545,7 +2545,7 @@

    Arguments

    @@ -2560,7 +2560,7 @@

    Arguments

    @@ -2575,7 +2575,7 @@

    Arguments

    @@ -2590,7 +2590,7 @@

    Arguments

    @@ -2605,7 +2605,7 @@

    Arguments

    @@ -2646,7 +2646,7 @@

    Arguments

    @@ -2661,7 +2661,7 @@

    Arguments

    @@ -2676,7 +2676,7 @@

    Arguments

    @@ -2691,7 +2691,7 @@

    Arguments

    @@ -2706,7 +2706,7 @@

    Arguments

    @@ -2721,7 +2721,7 @@

    Arguments

    @@ -2736,7 +2736,7 @@

    Arguments

    @@ -2751,7 +2751,7 @@

    Arguments

    @@ -2766,7 +2766,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_mm_sched.html b/develop/module/dbcsr_mm_sched.html index 8755968dd7f..45ed9f440b2 100644 --- a/develop/module/dbcsr_mm_sched.html +++ b/develop/module/dbcsr_mm_sched.html @@ -113,7 +113,7 @@

    Variables

    @@ -197,17 +197,17 @@

    Uses

    @@ -232,7 +232,7 @@

    Variables

    @@ -300,7 +300,7 @@

    Components

    @@ -385,7 +385,7 @@

    Components

    @@ -621,7 +621,7 @@

    Components

    @@ -737,7 +737,7 @@

    Arguments

    @@ -752,7 +752,7 @@

    Arguments

    @@ -792,7 +792,7 @@

    Arguments

    @@ -832,7 +832,7 @@

    Arguments

    @@ -847,7 +847,7 @@

    Arguments

    @@ -862,7 +862,7 @@

    Arguments

    @@ -877,7 +877,7 @@

    Arguments

    @@ -917,7 +917,7 @@

    Arguments

    @@ -957,7 +957,7 @@

    Arguments

    @@ -997,7 +997,7 @@

    Arguments

    @@ -1065,7 +1065,7 @@

    Arguments

    @@ -1080,7 +1080,7 @@

    Arguments

    @@ -1095,7 +1095,7 @@

    Arguments

    @@ -1140,7 +1140,7 @@

    Arguments

    @@ -1180,7 +1180,7 @@

    Arguments

    @@ -1250,7 +1250,7 @@

    Arguments

    @@ -1265,7 +1265,7 @@

    Arguments

    @@ -1280,7 +1280,7 @@

    Arguments

    @@ -1385,7 +1385,7 @@

    Arguments

    @@ -1480,7 +1480,7 @@

    Arguments

    @@ -1535,7 +1535,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_mm_types.html b/develop/module/dbcsr_mm_types.html index 8e2d412ba83..8f6e50f143e 100644 --- a/develop/module/dbcsr_mm_types.html +++ b/develop/module/dbcsr_mm_types.html @@ -113,7 +113,7 @@

    Variables

    - moduleN + moduleN dbcsr_ps_width dbcsr_ps_acc_width p_m @@ -185,7 +185,7 @@

    Variables

    @@ -389,7 +389,7 @@

    Components

    @@ -406,7 +406,7 @@

    Components

    @@ -423,7 +423,7 @@

    Components

    @@ -440,7 +440,7 @@

    Components

    @@ -457,7 +457,7 @@

    Components

    @@ -474,7 +474,7 @@

    Components

    diff --git a/develop/module/dbcsr_mp_methods.html b/develop/module/dbcsr_mp_methods.html index 1dea7b0dd8a..5b20840a5e2 100644 --- a/develop/module/dbcsr_mp_methods.html +++ b/develop/module/dbcsr_mp_methods.html @@ -113,7 +113,7 @@

    Variables

    @@ -172,7 +172,7 @@

    Subroutines

    dbcsr_mp_initdbcsr_mp_new_griddbcsr_mp_new_group - dbcsr_mp_grid_setup + dbcsr_mp_grid_setupdbcsr_mp_make_envdbcsr_mp_holddbcsr_mp_new_transposed @@ -201,9 +201,9 @@

    Uses

    @@ -281,7 +281,7 @@

    Arguments

    @@ -296,7 +296,7 @@

    Arguments

    @@ -311,7 +311,7 @@

    Arguments

    @@ -341,7 +341,7 @@

    Arguments

    @@ -356,7 +356,7 @@

    Arguments

    @@ -371,7 +371,7 @@

    Arguments

    @@ -386,7 +386,7 @@

    Arguments

    @@ -425,7 +425,7 @@

    Arguments

    @@ -440,7 +440,7 @@

    Arguments

    @@ -455,7 +455,7 @@

    Arguments

    @@ -503,7 +503,7 @@

    Arguments

    @@ -548,7 +548,7 @@

    Arguments

    @@ -563,7 +563,7 @@

    Arguments

    @@ -578,7 +578,7 @@

    Arguments

    @@ -623,7 +623,7 @@

    Arguments

    @@ -668,7 +668,7 @@

    Arguments

    @@ -713,7 +713,7 @@

    Arguments

    @@ -758,7 +758,7 @@

    Arguments

    @@ -803,7 +803,7 @@

    Arguments

    @@ -848,7 +848,7 @@

    Arguments

    @@ -893,7 +893,7 @@

    Arguments

    @@ -938,7 +938,7 @@

    Arguments

    @@ -983,7 +983,7 @@

    Arguments

    @@ -1028,7 +1028,7 @@

    Arguments

    @@ -1073,7 +1073,7 @@

    Arguments

    @@ -1123,7 +1123,7 @@

    Arguments

    @@ -1163,7 +1163,7 @@

    Arguments

    @@ -1178,7 +1178,7 @@

    Arguments

    @@ -1193,7 +1193,7 @@

    Arguments

    @@ -1223,7 +1223,7 @@

    Arguments

    @@ -1238,7 +1238,7 @@

    Arguments

    @@ -1253,7 +1253,7 @@

    Arguments

    @@ -1268,7 +1268,7 @@

    Arguments

    @@ -1308,7 +1308,7 @@

    Arguments

    @@ -1323,7 +1323,7 @@

    Arguments

    @@ -1338,7 +1338,7 @@

    Arguments

    @@ -1359,7 +1359,7 @@

    Arguments

    -

    public subroutine dbcsr_mp_grid_setup(mp_env) +

    public subroutine dbcsr_mp_grid_setup(mp_env)

    @@ -1378,7 +1378,7 @@

    Arguments

    @@ -1418,7 +1418,7 @@

    Arguments

    @@ -1433,7 +1433,7 @@

    Arguments

    @@ -1448,7 +1448,7 @@

    Arguments

    @@ -1463,7 +1463,7 @@

    Arguments

    @@ -1518,7 +1518,7 @@

    Arguments

    @@ -1573,7 +1573,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_mp_operations.html b/develop/module/dbcsr_mp_operations.html index bedb7564fb1..cbc797c630d 100644 --- a/develop/module/dbcsr_mp_operations.html +++ b/develop/module/dbcsr_mp_operations.html @@ -113,7 +113,7 @@

    Variables

    @@ -198,14 +198,14 @@

    Uses

    @@ -230,7 +230,7 @@

    Variables

    @@ -288,7 +288,7 @@

    Arguments

    @@ -303,7 +303,7 @@

    Arguments

    @@ -318,7 +318,7 @@

    Arguments

    @@ -333,7 +333,7 @@

    Arguments

    @@ -348,7 +348,7 @@

    Arguments

    @@ -363,7 +363,7 @@

    Arguments

    @@ -474,7 +474,7 @@

    Arguments

    @@ -489,7 +489,7 @@

    Arguments

    @@ -504,7 +504,7 @@

    Arguments

    @@ -519,7 +519,7 @@

    Arguments

    @@ -534,7 +534,7 @@

    Arguments

    @@ -549,7 +549,7 @@

    Arguments

    @@ -660,7 +660,7 @@

    Arguments

    @@ -675,7 +675,7 @@

    Arguments

    @@ -690,7 +690,7 @@

    Arguments

    @@ -705,7 +705,7 @@

    Arguments

    @@ -720,7 +720,7 @@

    Arguments

    @@ -735,7 +735,7 @@

    Arguments

    @@ -846,7 +846,7 @@

    Arguments

    @@ -861,7 +861,7 @@

    Arguments

    @@ -876,7 +876,7 @@

    Arguments

    @@ -891,7 +891,7 @@

    Arguments

    @@ -906,7 +906,7 @@

    Arguments

    @@ -921,7 +921,7 @@

    Arguments

    @@ -1032,7 +1032,7 @@

    Arguments

    @@ -1047,7 +1047,7 @@

    Arguments

    @@ -1062,7 +1062,7 @@

    Arguments

    @@ -1077,7 +1077,7 @@

    Arguments

    @@ -1092,7 +1092,7 @@

    Arguments

    @@ -1107,7 +1107,7 @@

    Arguments

    @@ -1212,7 +1212,7 @@

    Arguments

    @@ -1227,7 +1227,7 @@

    Arguments

    @@ -1242,7 +1242,7 @@

    Arguments

    @@ -1257,7 +1257,7 @@

    Arguments

    @@ -1272,7 +1272,7 @@

    Arguments

    @@ -1287,7 +1287,7 @@

    Arguments

    @@ -1395,7 +1395,7 @@

    Arguments

    @@ -1445,7 +1445,7 @@

    Arguments

    @@ -1460,7 +1460,7 @@

    Arguments

    @@ -1475,7 +1475,7 @@

    Arguments

    @@ -1490,7 +1490,7 @@

    Arguments

    @@ -1505,7 +1505,7 @@

    Arguments

    @@ -1520,7 +1520,7 @@

    Arguments

    @@ -1620,7 +1620,7 @@

    Arguments

    @@ -1635,7 +1635,7 @@

    Arguments

    @@ -1650,7 +1650,7 @@

    Arguments

    @@ -1665,7 +1665,7 @@

    Arguments

    @@ -1680,7 +1680,7 @@

    Arguments

    @@ -1695,7 +1695,7 @@

    Arguments

    @@ -1801,7 +1801,7 @@

    Arguments

    @@ -1816,7 +1816,7 @@

    Arguments

    @@ -1831,7 +1831,7 @@

    Arguments

    @@ -1846,7 +1846,7 @@

    Arguments

    @@ -1861,7 +1861,7 @@

    Arguments

    @@ -1901,7 +1901,7 @@

    Arguments

    @@ -1916,7 +1916,7 @@

    Arguments

    @@ -1931,7 +1931,7 @@

    Arguments

    @@ -1946,7 +1946,7 @@

    Arguments

    @@ -1961,7 +1961,7 @@

    Arguments

    @@ -2001,7 +2001,7 @@

    Arguments

    @@ -2016,7 +2016,7 @@

    Arguments

    @@ -2031,7 +2031,7 @@

    Arguments

    @@ -2046,7 +2046,7 @@

    Arguments

    @@ -2061,7 +2061,7 @@

    Arguments

    @@ -2101,7 +2101,7 @@

    Arguments

    @@ -2116,7 +2116,7 @@

    Arguments

    @@ -2131,7 +2131,7 @@

    Arguments

    @@ -2171,7 +2171,7 @@

    Arguments

    @@ -2186,7 +2186,7 @@

    Arguments

    @@ -2201,7 +2201,7 @@

    Arguments

    @@ -2216,7 +2216,7 @@

    Arguments

    @@ -2231,7 +2231,7 @@

    Arguments

    @@ -2246,7 +2246,7 @@

    Arguments

    @@ -2261,7 +2261,7 @@

    Arguments

    @@ -2276,7 +2276,7 @@

    Arguments

    @@ -2291,7 +2291,7 @@

    Arguments

    @@ -2331,7 +2331,7 @@

    Arguments

    @@ -2346,7 +2346,7 @@

    Arguments

    @@ -2361,7 +2361,7 @@

    Arguments

    @@ -2376,7 +2376,7 @@

    Arguments

    @@ -2416,7 +2416,7 @@

    Arguments

    @@ -2431,7 +2431,7 @@

    Arguments

    @@ -2446,7 +2446,7 @@

    Arguments

    @@ -2461,7 +2461,7 @@

    Arguments

    @@ -2476,7 +2476,7 @@

    Arguments

    @@ -2491,7 +2491,7 @@

    Arguments

    @@ -2506,7 +2506,7 @@

    Arguments

    @@ -2521,7 +2521,7 @@

    Arguments

    @@ -2561,7 +2561,7 @@

    Arguments

    @@ -2591,7 +2591,7 @@

    Arguments

    @@ -2606,7 +2606,7 @@

    Arguments

    @@ -2621,7 +2621,7 @@

    Arguments

    @@ -2636,7 +2636,7 @@

    Arguments

    @@ -2651,7 +2651,7 @@

    Arguments

    @@ -2691,7 +2691,7 @@

    Arguments

    @@ -2706,7 +2706,7 @@

    Arguments

    @@ -2721,7 +2721,7 @@

    Arguments

    @@ -2736,7 +2736,7 @@

    Arguments

    @@ -2751,7 +2751,7 @@

    Arguments

    @@ -2766,7 +2766,7 @@

    Arguments

    @@ -2781,7 +2781,7 @@

    Arguments

    @@ -2836,7 +2836,7 @@

    Arguments

    @@ -2866,7 +2866,7 @@

    Arguments

    @@ -2896,7 +2896,7 @@

    Arguments

    @@ -2936,7 +2936,7 @@

    Arguments

    @@ -2951,7 +2951,7 @@

    Arguments

    @@ -2966,7 +2966,7 @@

    Arguments

    @@ -2981,7 +2981,7 @@

    Arguments

    @@ -2996,7 +2996,7 @@

    Arguments

    @@ -3011,7 +3011,7 @@

    Arguments

    @@ -3117,7 +3117,7 @@

    Arguments

    @@ -3132,7 +3132,7 @@

    Arguments

    @@ -3147,7 +3147,7 @@

    Arguments

    @@ -3162,7 +3162,7 @@

    Arguments

    @@ -3177,7 +3177,7 @@

    Arguments

    @@ -3192,7 +3192,7 @@

    Arguments

    @@ -3298,7 +3298,7 @@

    Arguments

    @@ -3313,7 +3313,7 @@

    Arguments

    @@ -3328,7 +3328,7 @@

    Arguments

    @@ -3343,7 +3343,7 @@

    Arguments

    @@ -3358,7 +3358,7 @@

    Arguments

    @@ -3373,7 +3373,7 @@

    Arguments

    @@ -3479,7 +3479,7 @@

    Arguments

    @@ -3494,7 +3494,7 @@

    Arguments

    @@ -3509,7 +3509,7 @@

    Arguments

    @@ -3524,7 +3524,7 @@

    Arguments

    @@ -3539,7 +3539,7 @@

    Arguments

    @@ -3554,7 +3554,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_mpiwrap.html b/develop/module/dbcsr_mpiwrap.html index 5bd4d94763f..167aa723e24 100644 --- a/develop/module/dbcsr_mpiwrap.html +++ b/develop/module/dbcsr_mpiwrap.html @@ -144,7 +144,7 @@

    Variables

    mp_info_nullmpi_character_sizempi_integer_size - moduleN + moduleNMAX_PERFmax_stack_sizestack_pointer @@ -781,9 +781,9 @@

    Uses

    @@ -1716,7 +1716,7 @@

    Arguments

    @@ -1776,7 +1776,7 @@

    Arguments

    @@ -1972,7 +1972,7 @@

    Arguments

    @@ -2188,7 +2188,7 @@

    Arguments

    @@ -2203,7 +2203,7 @@

    Arguments

    @@ -2256,7 +2256,7 @@

    Arguments

    @@ -2271,7 +2271,7 @@

    Arguments

    @@ -2322,7 +2322,7 @@

    Arguments

    @@ -2337,7 +2337,7 @@

    Arguments

    @@ -2352,7 +2352,7 @@

    Arguments

    @@ -2395,7 +2395,7 @@

    Arguments

    @@ -2410,7 +2410,7 @@

    Arguments

    @@ -2425,7 +2425,7 @@

    Arguments

    @@ -2468,7 +2468,7 @@

    Arguments

    @@ -2483,7 +2483,7 @@

    Arguments

    @@ -2498,7 +2498,7 @@

    Arguments

    @@ -2541,7 +2541,7 @@

    Arguments

    @@ -2556,7 +2556,7 @@

    Arguments

    @@ -2571,7 +2571,7 @@

    Arguments

    @@ -2612,7 +2612,7 @@

    Arguments

    @@ -2627,7 +2627,7 @@

    Arguments

    @@ -2642,7 +2642,7 @@

    Arguments

    @@ -2685,7 +2685,7 @@

    Arguments

    @@ -2700,7 +2700,7 @@

    Arguments

    @@ -2715,7 +2715,7 @@

    Arguments

    @@ -2758,7 +2758,7 @@

    Arguments

    @@ -2773,7 +2773,7 @@

    Arguments

    @@ -2788,7 +2788,7 @@

    Arguments

    @@ -2831,7 +2831,7 @@

    Arguments

    @@ -2846,7 +2846,7 @@

    Arguments

    @@ -2861,7 +2861,7 @@

    Arguments

    @@ -2902,7 +2902,7 @@

    Arguments

    @@ -2917,7 +2917,7 @@

    Arguments

    @@ -2932,7 +2932,7 @@

    Arguments

    @@ -2975,7 +2975,7 @@

    Arguments

    @@ -2990,7 +2990,7 @@

    Arguments

    @@ -3005,7 +3005,7 @@

    Arguments

    @@ -3048,7 +3048,7 @@

    Arguments

    @@ -3063,7 +3063,7 @@

    Arguments

    @@ -3078,7 +3078,7 @@

    Arguments

    @@ -3121,7 +3121,7 @@

    Arguments

    @@ -3136,7 +3136,7 @@

    Arguments

    @@ -3151,7 +3151,7 @@

    Arguments

    @@ -3192,7 +3192,7 @@

    Arguments

    @@ -3207,7 +3207,7 @@

    Arguments

    @@ -3222,7 +3222,7 @@

    Arguments

    @@ -3265,7 +3265,7 @@

    Arguments

    @@ -3280,7 +3280,7 @@

    Arguments

    @@ -3295,7 +3295,7 @@

    Arguments

    @@ -3338,7 +3338,7 @@

    Arguments

    @@ -3353,7 +3353,7 @@

    Arguments

    @@ -3368,7 +3368,7 @@

    Arguments

    @@ -3411,7 +3411,7 @@

    Arguments

    @@ -3426,7 +3426,7 @@

    Arguments

    @@ -3441,7 +3441,7 @@

    Arguments

    @@ -3482,7 +3482,7 @@

    Arguments

    @@ -3497,7 +3497,7 @@

    Arguments

    @@ -3512,7 +3512,7 @@

    Arguments

    @@ -3555,7 +3555,7 @@

    Arguments

    @@ -3570,7 +3570,7 @@

    Arguments

    @@ -3585,7 +3585,7 @@

    Arguments

    @@ -3628,7 +3628,7 @@

    Arguments

    @@ -3643,7 +3643,7 @@

    Arguments

    @@ -3658,7 +3658,7 @@

    Arguments

    @@ -3701,7 +3701,7 @@

    Arguments

    @@ -3716,7 +3716,7 @@

    Arguments

    @@ -3731,7 +3731,7 @@

    Arguments

    @@ -3772,7 +3772,7 @@

    Arguments

    @@ -3787,7 +3787,7 @@

    Arguments

    @@ -3802,7 +3802,7 @@

    Arguments

    @@ -3845,7 +3845,7 @@

    Arguments

    @@ -3860,7 +3860,7 @@

    Arguments

    @@ -3875,7 +3875,7 @@

    Arguments

    @@ -3918,7 +3918,7 @@

    Arguments

    @@ -3933,7 +3933,7 @@

    Arguments

    @@ -3948,7 +3948,7 @@

    Arguments

    @@ -3991,7 +3991,7 @@

    Arguments

    @@ -4006,7 +4006,7 @@

    Arguments

    @@ -4021,7 +4021,7 @@

    Arguments

    @@ -4060,7 +4060,7 @@

    Arguments

    @@ -4075,7 +4075,7 @@

    Arguments

    @@ -4090,7 +4090,7 @@

    Arguments

    @@ -4129,7 +4129,7 @@

    Arguments

    @@ -4144,7 +4144,7 @@

    Arguments

    @@ -4159,7 +4159,7 @@

    Arguments

    @@ -4198,7 +4198,7 @@

    Arguments

    @@ -4213,7 +4213,7 @@

    Arguments

    @@ -4228,7 +4228,7 @@

    Arguments

    @@ -4267,7 +4267,7 @@

    Arguments

    @@ -4282,7 +4282,7 @@

    Arguments

    @@ -4297,7 +4297,7 @@

    Arguments

    @@ -4348,7 +4348,7 @@

    Arguments

    @@ -4363,7 +4363,7 @@

    Arguments

    @@ -4378,7 +4378,7 @@

    Arguments

    @@ -4393,7 +4393,7 @@

    Arguments

    @@ -4436,7 +4436,7 @@

    Arguments

    @@ -4451,7 +4451,7 @@

    Arguments

    @@ -4466,7 +4466,7 @@

    Arguments

    @@ -4481,7 +4481,7 @@

    Arguments

    @@ -4522,7 +4522,7 @@

    Arguments

    @@ -4537,7 +4537,7 @@

    Arguments

    @@ -4552,7 +4552,7 @@

    Arguments

    @@ -4567,7 +4567,7 @@

    Arguments

    @@ -4610,7 +4610,7 @@

    Arguments

    @@ -4625,7 +4625,7 @@

    Arguments

    @@ -4640,7 +4640,7 @@

    Arguments

    @@ -4655,7 +4655,7 @@

    Arguments

    @@ -4696,7 +4696,7 @@

    Arguments

    @@ -4711,7 +4711,7 @@

    Arguments

    @@ -4726,7 +4726,7 @@

    Arguments

    @@ -4741,7 +4741,7 @@

    Arguments

    @@ -4784,7 +4784,7 @@

    Arguments

    @@ -4799,7 +4799,7 @@

    Arguments

    @@ -4814,7 +4814,7 @@

    Arguments

    @@ -4829,7 +4829,7 @@

    Arguments

    @@ -4870,7 +4870,7 @@

    Arguments

    @@ -4885,7 +4885,7 @@

    Arguments

    @@ -4900,7 +4900,7 @@

    Arguments

    @@ -4915,7 +4915,7 @@

    Arguments

    @@ -4958,7 +4958,7 @@

    Arguments

    @@ -4973,7 +4973,7 @@

    Arguments

    @@ -4988,7 +4988,7 @@

    Arguments

    @@ -5003,7 +5003,7 @@

    Arguments

    @@ -5044,7 +5044,7 @@

    Arguments

    @@ -5059,7 +5059,7 @@

    Arguments

    @@ -5074,7 +5074,7 @@

    Arguments

    @@ -5089,7 +5089,7 @@

    Arguments

    @@ -5132,7 +5132,7 @@

    Arguments

    @@ -5147,7 +5147,7 @@

    Arguments

    @@ -5162,7 +5162,7 @@

    Arguments

    @@ -5177,7 +5177,7 @@

    Arguments

    @@ -5218,7 +5218,7 @@

    Arguments

    @@ -5233,7 +5233,7 @@

    Arguments

    @@ -5248,7 +5248,7 @@

    Arguments

    @@ -5263,7 +5263,7 @@

    Arguments

    @@ -5306,7 +5306,7 @@

    Arguments

    @@ -5321,7 +5321,7 @@

    Arguments

    @@ -5336,7 +5336,7 @@

    Arguments

    @@ -5351,7 +5351,7 @@

    Arguments

    @@ -5402,7 +5402,7 @@

    Arguments

    @@ -5417,7 +5417,7 @@

    Arguments

    @@ -5460,7 +5460,7 @@

    Arguments

    @@ -5475,7 +5475,7 @@

    Arguments

    @@ -5518,7 +5518,7 @@

    Arguments

    @@ -5533,7 +5533,7 @@

    Arguments

    @@ -5576,7 +5576,7 @@

    Arguments

    @@ -5591,7 +5591,7 @@

    Arguments

    @@ -5634,7 +5634,7 @@

    Arguments

    @@ -5649,7 +5649,7 @@

    Arguments

    @@ -5690,7 +5690,7 @@

    Arguments

    @@ -5705,7 +5705,7 @@

    Arguments

    @@ -5748,7 +5748,7 @@

    Arguments

    @@ -5763,7 +5763,7 @@

    Arguments

    @@ -5806,7 +5806,7 @@

    Arguments

    @@ -5821,7 +5821,7 @@

    Arguments

    @@ -5864,7 +5864,7 @@

    Arguments

    @@ -5879,7 +5879,7 @@

    Arguments

    @@ -5922,7 +5922,7 @@

    Arguments

    @@ -5937,7 +5937,7 @@

    Arguments

    @@ -5978,7 +5978,7 @@

    Arguments

    @@ -5993,7 +5993,7 @@

    Arguments

    @@ -6036,7 +6036,7 @@

    Arguments

    @@ -6051,7 +6051,7 @@

    Arguments

    @@ -6094,7 +6094,7 @@

    Arguments

    @@ -6109,7 +6109,7 @@

    Arguments

    @@ -6152,7 +6152,7 @@

    Arguments

    @@ -6167,7 +6167,7 @@

    Arguments

    @@ -6210,7 +6210,7 @@

    Arguments

    @@ -6225,7 +6225,7 @@

    Arguments

    @@ -6266,7 +6266,7 @@

    Arguments

    @@ -6281,7 +6281,7 @@

    Arguments

    @@ -6324,7 +6324,7 @@

    Arguments

    @@ -6339,7 +6339,7 @@

    Arguments

    @@ -6382,7 +6382,7 @@

    Arguments

    @@ -6397,7 +6397,7 @@

    Arguments

    @@ -6440,7 +6440,7 @@

    Arguments

    @@ -6455,7 +6455,7 @@

    Arguments

    @@ -6498,7 +6498,7 @@

    Arguments

    @@ -6513,7 +6513,7 @@

    Arguments

    @@ -6554,7 +6554,7 @@

    Arguments

    @@ -6569,7 +6569,7 @@

    Arguments

    @@ -6612,7 +6612,7 @@

    Arguments

    @@ -6627,7 +6627,7 @@

    Arguments

    @@ -6670,7 +6670,7 @@

    Arguments

    @@ -6685,7 +6685,7 @@

    Arguments

    @@ -6728,7 +6728,7 @@

    Arguments

    @@ -6743,7 +6743,7 @@

    Arguments

    @@ -6786,7 +6786,7 @@

    Arguments

    @@ -6801,7 +6801,7 @@

    Arguments

    @@ -6842,7 +6842,7 @@

    Arguments

    @@ -6857,7 +6857,7 @@

    Arguments

    @@ -6900,7 +6900,7 @@

    Arguments

    @@ -6915,7 +6915,7 @@

    Arguments

    @@ -6958,7 +6958,7 @@

    Arguments

    @@ -6973,7 +6973,7 @@

    Arguments

    @@ -7016,7 +7016,7 @@

    Arguments

    @@ -7031,7 +7031,7 @@

    Arguments

    @@ -7074,7 +7074,7 @@

    Arguments

    @@ -7089,7 +7089,7 @@

    Arguments

    @@ -7131,7 +7131,7 @@

    Arguments

    @@ -7146,7 +7146,7 @@

    Arguments

    @@ -7161,7 +7161,7 @@

    Arguments

    @@ -7205,7 +7205,7 @@

    Arguments

    @@ -7220,7 +7220,7 @@

    Arguments

    @@ -7235,7 +7235,7 @@

    Arguments

    @@ -7277,7 +7277,7 @@

    Arguments

    @@ -7292,7 +7292,7 @@

    Arguments

    @@ -7307,7 +7307,7 @@

    Arguments

    @@ -7351,7 +7351,7 @@

    Arguments

    @@ -7366,7 +7366,7 @@

    Arguments

    @@ -7381,7 +7381,7 @@

    Arguments

    @@ -7423,7 +7423,7 @@

    Arguments

    @@ -7438,7 +7438,7 @@

    Arguments

    @@ -7453,7 +7453,7 @@

    Arguments

    @@ -7497,7 +7497,7 @@

    Arguments

    @@ -7512,7 +7512,7 @@

    Arguments

    @@ -7527,7 +7527,7 @@

    Arguments

    @@ -7569,7 +7569,7 @@

    Arguments

    @@ -7584,7 +7584,7 @@

    Arguments

    @@ -7599,7 +7599,7 @@

    Arguments

    @@ -7643,7 +7643,7 @@

    Arguments

    @@ -7658,7 +7658,7 @@

    Arguments

    @@ -7673,7 +7673,7 @@

    Arguments

    @@ -7715,7 +7715,7 @@

    Arguments

    @@ -7730,7 +7730,7 @@

    Arguments

    @@ -7745,7 +7745,7 @@

    Arguments

    @@ -7789,7 +7789,7 @@

    Arguments

    @@ -7804,7 +7804,7 @@

    Arguments

    @@ -7819,7 +7819,7 @@

    Arguments

    @@ -7861,7 +7861,7 @@

    Arguments

    @@ -7876,7 +7876,7 @@

    Arguments

    @@ -7891,7 +7891,7 @@

    Arguments

    @@ -7935,7 +7935,7 @@

    Arguments

    @@ -7950,7 +7950,7 @@

    Arguments

    @@ -7965,7 +7965,7 @@

    Arguments

    @@ -8006,7 +8006,7 @@

    Arguments

    @@ -8021,7 +8021,7 @@

    Arguments

    @@ -8062,7 +8062,7 @@

    Arguments

    @@ -8077,7 +8077,7 @@

    Arguments

    @@ -8130,7 +8130,7 @@

    Arguments

    @@ -8145,7 +8145,7 @@

    Arguments

    @@ -8160,7 +8160,7 @@

    Arguments

    @@ -8203,7 +8203,7 @@

    Arguments

    @@ -8218,7 +8218,7 @@

    Arguments

    @@ -8233,7 +8233,7 @@

    Arguments

    @@ -8276,7 +8276,7 @@

    Arguments

    @@ -8291,7 +8291,7 @@

    Arguments

    @@ -8306,7 +8306,7 @@

    Arguments

    @@ -8349,7 +8349,7 @@

    Arguments

    @@ -8364,7 +8364,7 @@

    Arguments

    @@ -8379,7 +8379,7 @@

    Arguments

    @@ -8422,7 +8422,7 @@

    Arguments

    @@ -8437,7 +8437,7 @@

    Arguments

    @@ -8452,7 +8452,7 @@

    Arguments

    @@ -8495,7 +8495,7 @@

    Arguments

    @@ -8510,7 +8510,7 @@

    Arguments

    @@ -8525,7 +8525,7 @@

    Arguments

    @@ -8566,7 +8566,7 @@

    Arguments

    @@ -8581,7 +8581,7 @@

    Arguments

    @@ -8596,7 +8596,7 @@

    Arguments

    @@ -8645,7 +8645,7 @@

    Arguments

    @@ -8660,7 +8660,7 @@

    Arguments

    @@ -8675,7 +8675,7 @@

    Arguments

    @@ -8714,7 +8714,7 @@

    Arguments

    @@ -8729,7 +8729,7 @@

    Arguments

    @@ -8744,7 +8744,7 @@

    Arguments

    @@ -8783,7 +8783,7 @@

    Arguments

    @@ -8798,7 +8798,7 @@

    Arguments

    @@ -8813,7 +8813,7 @@

    Arguments

    @@ -8852,7 +8852,7 @@

    Arguments

    @@ -8867,7 +8867,7 @@

    Arguments

    @@ -8882,7 +8882,7 @@

    Arguments

    @@ -8921,7 +8921,7 @@

    Arguments

    @@ -8936,7 +8936,7 @@

    Arguments

    @@ -8951,7 +8951,7 @@

    Arguments

    @@ -8990,7 +8990,7 @@

    Arguments

    @@ -9005,7 +9005,7 @@

    Arguments

    @@ -9020,7 +9020,7 @@

    Arguments

    @@ -9071,7 +9071,7 @@

    Arguments

    @@ -9086,7 +9086,7 @@

    Arguments

    @@ -9130,7 +9130,7 @@

    Arguments

    @@ -9145,7 +9145,7 @@

    Arguments

    @@ -9186,7 +9186,7 @@

    Arguments

    @@ -9201,7 +9201,7 @@

    Arguments

    @@ -9245,7 +9245,7 @@

    Arguments

    @@ -9260,7 +9260,7 @@

    Arguments

    @@ -9301,7 +9301,7 @@

    Arguments

    @@ -9316,7 +9316,7 @@

    Arguments

    @@ -9360,7 +9360,7 @@

    Arguments

    @@ -9375,7 +9375,7 @@

    Arguments

    @@ -9416,7 +9416,7 @@

    Arguments

    @@ -9431,7 +9431,7 @@

    Arguments

    @@ -9475,7 +9475,7 @@

    Arguments

    @@ -9490,7 +9490,7 @@

    Arguments

    @@ -9531,7 +9531,7 @@

    Arguments

    @@ -9546,7 +9546,7 @@

    Arguments

    @@ -9590,7 +9590,7 @@

    Arguments

    @@ -9605,7 +9605,7 @@

    Arguments

    @@ -9646,7 +9646,7 @@

    Arguments

    @@ -9661,7 +9661,7 @@

    Arguments

    @@ -9705,7 +9705,7 @@

    Arguments

    @@ -9720,7 +9720,7 @@

    Arguments

    @@ -9771,7 +9771,7 @@

    Arguments

    @@ -9786,7 +9786,7 @@

    Arguments

    @@ -9832,7 +9832,7 @@

    Arguments

    @@ -9847,7 +9847,7 @@

    Arguments

    @@ -9888,7 +9888,7 @@

    Arguments

    @@ -9903,7 +9903,7 @@

    Arguments

    @@ -9949,7 +9949,7 @@

    Arguments

    @@ -9964,7 +9964,7 @@

    Arguments

    @@ -10005,7 +10005,7 @@

    Arguments

    @@ -10020,7 +10020,7 @@

    Arguments

    @@ -10066,7 +10066,7 @@

    Arguments

    @@ -10081,7 +10081,7 @@

    Arguments

    @@ -10122,7 +10122,7 @@

    Arguments

    @@ -10137,7 +10137,7 @@

    Arguments

    @@ -10183,7 +10183,7 @@

    Arguments

    @@ -10198,7 +10198,7 @@

    Arguments

    @@ -10239,7 +10239,7 @@

    Arguments

    @@ -10254,7 +10254,7 @@

    Arguments

    @@ -10300,7 +10300,7 @@

    Arguments

    @@ -10315,7 +10315,7 @@

    Arguments

    @@ -10356,7 +10356,7 @@

    Arguments

    @@ -10371,7 +10371,7 @@

    Arguments

    @@ -10417,7 +10417,7 @@

    Arguments

    @@ -10432,7 +10432,7 @@

    Arguments

    @@ -10484,7 +10484,7 @@

    Arguments

    @@ -10499,7 +10499,7 @@

    Arguments

    @@ -10541,7 +10541,7 @@

    Arguments

    @@ -10556,7 +10556,7 @@

    Arguments

    @@ -10598,7 +10598,7 @@

    Arguments

    @@ -10613,7 +10613,7 @@

    Arguments

    @@ -10655,7 +10655,7 @@

    Arguments

    @@ -10670,7 +10670,7 @@

    Arguments

    @@ -10712,7 +10712,7 @@

    Arguments

    @@ -10727,7 +10727,7 @@

    Arguments

    @@ -10769,7 +10769,7 @@

    Arguments

    @@ -10784,7 +10784,7 @@

    Arguments

    @@ -10835,7 +10835,7 @@

    Arguments

    @@ -10865,7 +10865,7 @@

    Arguments

    @@ -10880,7 +10880,7 @@

    Arguments

    @@ -10927,7 +10927,7 @@

    Arguments

    @@ -10957,7 +10957,7 @@

    Arguments

    @@ -10972,7 +10972,7 @@

    Arguments

    @@ -11019,7 +11019,7 @@

    Arguments

    @@ -11049,7 +11049,7 @@

    Arguments

    @@ -11064,7 +11064,7 @@

    Arguments

    @@ -11105,7 +11105,7 @@

    Arguments

    @@ -11135,7 +11135,7 @@

    Arguments

    @@ -11150,7 +11150,7 @@

    Arguments

    @@ -11197,7 +11197,7 @@

    Arguments

    @@ -11227,7 +11227,7 @@

    Arguments

    @@ -11242,7 +11242,7 @@

    Arguments

    @@ -11289,7 +11289,7 @@

    Arguments

    @@ -11319,7 +11319,7 @@

    Arguments

    @@ -11334,7 +11334,7 @@

    Arguments

    @@ -11375,7 +11375,7 @@

    Arguments

    @@ -11405,7 +11405,7 @@

    Arguments

    @@ -11420,7 +11420,7 @@

    Arguments

    @@ -11467,7 +11467,7 @@

    Arguments

    @@ -11497,7 +11497,7 @@

    Arguments

    @@ -11512,7 +11512,7 @@

    Arguments

    @@ -11559,7 +11559,7 @@

    Arguments

    @@ -11589,7 +11589,7 @@

    Arguments

    @@ -11604,7 +11604,7 @@

    Arguments

    @@ -11645,7 +11645,7 @@

    Arguments

    @@ -11675,7 +11675,7 @@

    Arguments

    @@ -11690,7 +11690,7 @@

    Arguments

    @@ -11737,7 +11737,7 @@

    Arguments

    @@ -11767,7 +11767,7 @@

    Arguments

    @@ -11782,7 +11782,7 @@

    Arguments

    @@ -11829,7 +11829,7 @@

    Arguments

    @@ -11859,7 +11859,7 @@

    Arguments

    @@ -11874,7 +11874,7 @@

    Arguments

    @@ -11915,7 +11915,7 @@

    Arguments

    @@ -11945,7 +11945,7 @@

    Arguments

    @@ -11960,7 +11960,7 @@

    Arguments

    @@ -12007,7 +12007,7 @@

    Arguments

    @@ -12037,7 +12037,7 @@

    Arguments

    @@ -12052,7 +12052,7 @@

    Arguments

    @@ -12099,7 +12099,7 @@

    Arguments

    @@ -12129,7 +12129,7 @@

    Arguments

    @@ -12144,7 +12144,7 @@

    Arguments

    @@ -12185,7 +12185,7 @@

    Arguments

    @@ -12215,7 +12215,7 @@

    Arguments

    @@ -12230,7 +12230,7 @@

    Arguments

    @@ -12277,7 +12277,7 @@

    Arguments

    @@ -12307,7 +12307,7 @@

    Arguments

    @@ -12322,7 +12322,7 @@

    Arguments

    @@ -12369,7 +12369,7 @@

    Arguments

    @@ -12399,7 +12399,7 @@

    Arguments

    @@ -12414,7 +12414,7 @@

    Arguments

    @@ -12515,7 +12515,7 @@

    Arguments

    @@ -12531,7 +12531,7 @@

    Arguments

    @@ -12546,7 +12546,7 @@

    Arguments

    @@ -12637,7 +12637,7 @@

    Arguments

    @@ -12653,7 +12653,7 @@

    Arguments

    @@ -12668,7 +12668,7 @@

    Arguments

    @@ -12759,7 +12759,7 @@

    Arguments

    @@ -12775,7 +12775,7 @@

    Arguments

    @@ -12790,7 +12790,7 @@

    Arguments

    @@ -12881,7 +12881,7 @@

    Arguments

    @@ -12897,7 +12897,7 @@

    Arguments

    @@ -12912,7 +12912,7 @@

    Arguments

    @@ -13003,7 +13003,7 @@

    Arguments

    @@ -13019,7 +13019,7 @@

    Arguments

    @@ -13034,7 +13034,7 @@

    Arguments

    @@ -13125,7 +13125,7 @@

    Arguments

    @@ -13141,7 +13141,7 @@

    Arguments

    @@ -13156,7 +13156,7 @@

    Arguments

    @@ -13216,7 +13216,7 @@

    Arguments

    @@ -13231,7 +13231,7 @@

    Arguments

    @@ -13246,7 +13246,7 @@

    Arguments

    @@ -13290,7 +13290,7 @@

    Arguments

    @@ -13305,7 +13305,7 @@

    Arguments

    @@ -13320,7 +13320,7 @@

    Arguments

    @@ -13366,7 +13366,7 @@

    Arguments

    @@ -13381,7 +13381,7 @@

    Arguments

    @@ -13396,7 +13396,7 @@

    Arguments

    @@ -13440,7 +13440,7 @@

    Arguments

    @@ -13455,7 +13455,7 @@

    Arguments

    @@ -13470,7 +13470,7 @@

    Arguments

    @@ -13514,7 +13514,7 @@

    Arguments

    @@ -13529,7 +13529,7 @@

    Arguments

    @@ -13544,7 +13544,7 @@

    Arguments

    @@ -13588,7 +13588,7 @@

    Arguments

    @@ -13603,7 +13603,7 @@

    Arguments

    @@ -13618,7 +13618,7 @@

    Arguments

    @@ -13662,7 +13662,7 @@

    Arguments

    @@ -13677,7 +13677,7 @@

    Arguments

    @@ -13692,7 +13692,7 @@

    Arguments

    @@ -13736,7 +13736,7 @@

    Arguments

    @@ -13751,7 +13751,7 @@

    Arguments

    @@ -13766,7 +13766,7 @@

    Arguments

    @@ -13812,7 +13812,7 @@

    Arguments

    @@ -13827,7 +13827,7 @@

    Arguments

    @@ -13842,7 +13842,7 @@

    Arguments

    @@ -13886,7 +13886,7 @@

    Arguments

    @@ -13901,7 +13901,7 @@

    Arguments

    @@ -13916,7 +13916,7 @@

    Arguments

    @@ -13960,7 +13960,7 @@

    Arguments

    @@ -13975,7 +13975,7 @@

    Arguments

    @@ -13990,7 +13990,7 @@

    Arguments

    @@ -14034,7 +14034,7 @@

    Arguments

    @@ -14049,7 +14049,7 @@

    Arguments

    @@ -14064,7 +14064,7 @@

    Arguments

    @@ -14108,7 +14108,7 @@

    Arguments

    @@ -14123,7 +14123,7 @@

    Arguments

    @@ -14138,7 +14138,7 @@

    Arguments

    @@ -14182,7 +14182,7 @@

    Arguments

    @@ -14197,7 +14197,7 @@

    Arguments

    @@ -14212,7 +14212,7 @@

    Arguments

    @@ -14258,7 +14258,7 @@

    Arguments

    @@ -14273,7 +14273,7 @@

    Arguments

    @@ -14288,7 +14288,7 @@

    Arguments

    @@ -14332,7 +14332,7 @@

    Arguments

    @@ -14347,7 +14347,7 @@

    Arguments

    @@ -14362,7 +14362,7 @@

    Arguments

    @@ -14406,7 +14406,7 @@

    Arguments

    @@ -14421,7 +14421,7 @@

    Arguments

    @@ -14436,7 +14436,7 @@

    Arguments

    @@ -14480,7 +14480,7 @@

    Arguments

    @@ -14495,7 +14495,7 @@

    Arguments

    @@ -14510,7 +14510,7 @@

    Arguments

    @@ -14554,7 +14554,7 @@

    Arguments

    @@ -14569,7 +14569,7 @@

    Arguments

    @@ -14584,7 +14584,7 @@

    Arguments

    @@ -14628,7 +14628,7 @@

    Arguments

    @@ -14643,7 +14643,7 @@

    Arguments

    @@ -14658,7 +14658,7 @@

    Arguments

    @@ -14704,7 +14704,7 @@

    Arguments

    @@ -14719,7 +14719,7 @@

    Arguments

    @@ -14734,7 +14734,7 @@

    Arguments

    @@ -14778,7 +14778,7 @@

    Arguments

    @@ -14793,7 +14793,7 @@

    Arguments

    @@ -14808,7 +14808,7 @@

    Arguments

    @@ -14852,7 +14852,7 @@

    Arguments

    @@ -14867,7 +14867,7 @@

    Arguments

    @@ -14882,7 +14882,7 @@

    Arguments

    @@ -14926,7 +14926,7 @@

    Arguments

    @@ -14941,7 +14941,7 @@

    Arguments

    @@ -14956,7 +14956,7 @@

    Arguments

    @@ -15000,7 +15000,7 @@

    Arguments

    @@ -15015,7 +15015,7 @@

    Arguments

    @@ -15030,7 +15030,7 @@

    Arguments

    @@ -15074,7 +15074,7 @@

    Arguments

    @@ -15089,7 +15089,7 @@

    Arguments

    @@ -15104,7 +15104,7 @@

    Arguments

    @@ -15150,7 +15150,7 @@

    Arguments

    @@ -15165,7 +15165,7 @@

    Arguments

    @@ -15180,7 +15180,7 @@

    Arguments

    @@ -15224,7 +15224,7 @@

    Arguments

    @@ -15239,7 +15239,7 @@

    Arguments

    @@ -15254,7 +15254,7 @@

    Arguments

    @@ -15298,7 +15298,7 @@

    Arguments

    @@ -15313,7 +15313,7 @@

    Arguments

    @@ -15328,7 +15328,7 @@

    Arguments

    @@ -15372,7 +15372,7 @@

    Arguments

    @@ -15387,7 +15387,7 @@

    Arguments

    @@ -15402,7 +15402,7 @@

    Arguments

    @@ -15446,7 +15446,7 @@

    Arguments

    @@ -15461,7 +15461,7 @@

    Arguments

    @@ -15476,7 +15476,7 @@

    Arguments

    @@ -15520,7 +15520,7 @@

    Arguments

    @@ -15535,7 +15535,7 @@

    Arguments

    @@ -15550,7 +15550,7 @@

    Arguments

    @@ -15596,7 +15596,7 @@

    Arguments

    @@ -15611,7 +15611,7 @@

    Arguments

    @@ -15626,7 +15626,7 @@

    Arguments

    @@ -15670,7 +15670,7 @@

    Arguments

    @@ -15685,7 +15685,7 @@

    Arguments

    @@ -15700,7 +15700,7 @@

    Arguments

    @@ -15744,7 +15744,7 @@

    Arguments

    @@ -15759,7 +15759,7 @@

    Arguments

    @@ -15774,7 +15774,7 @@

    Arguments

    @@ -15818,7 +15818,7 @@

    Arguments

    @@ -15833,7 +15833,7 @@

    Arguments

    @@ -15848,7 +15848,7 @@

    Arguments

    @@ -15896,7 +15896,7 @@

    Arguments

    @@ -15911,7 +15911,7 @@

    Arguments

    @@ -15926,7 +15926,7 @@

    Arguments

    @@ -15941,7 +15941,7 @@

    Arguments

    @@ -15956,7 +15956,7 @@

    Arguments

    @@ -16006,7 +16006,7 @@

    Arguments

    @@ -16021,7 +16021,7 @@

    Arguments

    @@ -16036,7 +16036,7 @@

    Arguments

    @@ -16051,7 +16051,7 @@

    Arguments

    @@ -16066,7 +16066,7 @@

    Arguments

    @@ -16116,7 +16116,7 @@

    Arguments

    @@ -16131,7 +16131,7 @@

    Arguments

    @@ -16146,7 +16146,7 @@

    Arguments

    @@ -16161,7 +16161,7 @@

    Arguments

    @@ -16176,7 +16176,7 @@

    Arguments

    @@ -16226,7 +16226,7 @@

    Arguments

    @@ -16241,7 +16241,7 @@

    Arguments

    @@ -16256,7 +16256,7 @@

    Arguments

    @@ -16271,7 +16271,7 @@

    Arguments

    @@ -16286,7 +16286,7 @@

    Arguments

    @@ -16336,7 +16336,7 @@

    Arguments

    @@ -16351,7 +16351,7 @@

    Arguments

    @@ -16366,7 +16366,7 @@

    Arguments

    @@ -16381,7 +16381,7 @@

    Arguments

    @@ -16396,7 +16396,7 @@

    Arguments

    @@ -16446,7 +16446,7 @@

    Arguments

    @@ -16461,7 +16461,7 @@

    Arguments

    @@ -16476,7 +16476,7 @@

    Arguments

    @@ -16491,7 +16491,7 @@

    Arguments

    @@ -16506,7 +16506,7 @@

    Arguments

    @@ -16562,7 +16562,7 @@

    Arguments

    @@ -16577,7 +16577,7 @@

    Arguments

    @@ -16592,7 +16592,7 @@

    Arguments

    @@ -16607,7 +16607,7 @@

    Arguments

    @@ -16651,7 +16651,7 @@

    Arguments

    @@ -16666,7 +16666,7 @@

    Arguments

    @@ -16681,7 +16681,7 @@

    Arguments

    @@ -16696,7 +16696,7 @@

    Arguments

    @@ -16740,7 +16740,7 @@

    Arguments

    @@ -16755,7 +16755,7 @@

    Arguments

    @@ -16770,7 +16770,7 @@

    Arguments

    @@ -16785,7 +16785,7 @@

    Arguments

    @@ -16829,7 +16829,7 @@

    Arguments

    @@ -16844,7 +16844,7 @@

    Arguments

    @@ -16859,7 +16859,7 @@

    Arguments

    @@ -16874,7 +16874,7 @@

    Arguments

    @@ -16918,7 +16918,7 @@

    Arguments

    @@ -16933,7 +16933,7 @@

    Arguments

    @@ -16948,7 +16948,7 @@

    Arguments

    @@ -16963,7 +16963,7 @@

    Arguments

    @@ -17007,7 +17007,7 @@

    Arguments

    @@ -17022,7 +17022,7 @@

    Arguments

    @@ -17037,7 +17037,7 @@

    Arguments

    @@ -17052,7 +17052,7 @@

    Arguments

    @@ -17096,7 +17096,7 @@

    Arguments

    @@ -17111,7 +17111,7 @@

    Arguments

    @@ -17126,7 +17126,7 @@

    Arguments

    @@ -17141,7 +17141,7 @@

    Arguments

    @@ -17185,7 +17185,7 @@

    Arguments

    @@ -17200,7 +17200,7 @@

    Arguments

    @@ -17215,7 +17215,7 @@

    Arguments

    @@ -17230,7 +17230,7 @@

    Arguments

    @@ -17274,7 +17274,7 @@

    Arguments

    @@ -17289,7 +17289,7 @@

    Arguments

    @@ -17304,7 +17304,7 @@

    Arguments

    @@ -17319,7 +17319,7 @@

    Arguments

    @@ -17363,7 +17363,7 @@

    Arguments

    @@ -17378,7 +17378,7 @@

    Arguments

    @@ -17393,7 +17393,7 @@

    Arguments

    @@ -17408,7 +17408,7 @@

    Arguments

    @@ -17452,7 +17452,7 @@

    Arguments

    @@ -17467,7 +17467,7 @@

    Arguments

    @@ -17482,7 +17482,7 @@

    Arguments

    @@ -17497,7 +17497,7 @@

    Arguments

    @@ -17541,7 +17541,7 @@

    Arguments

    @@ -17556,7 +17556,7 @@

    Arguments

    @@ -17571,7 +17571,7 @@

    Arguments

    @@ -17586,7 +17586,7 @@

    Arguments

    @@ -17630,7 +17630,7 @@

    Arguments

    @@ -17645,7 +17645,7 @@

    Arguments

    @@ -17660,7 +17660,7 @@

    Arguments

    @@ -17675,7 +17675,7 @@

    Arguments

    @@ -17719,7 +17719,7 @@

    Arguments

    @@ -17734,7 +17734,7 @@

    Arguments

    @@ -17749,7 +17749,7 @@

    Arguments

    @@ -17764,7 +17764,7 @@

    Arguments

    @@ -17808,7 +17808,7 @@

    Arguments

    @@ -17823,7 +17823,7 @@

    Arguments

    @@ -17838,7 +17838,7 @@

    Arguments

    @@ -17853,7 +17853,7 @@

    Arguments

    @@ -17897,7 +17897,7 @@

    Arguments

    @@ -17912,7 +17912,7 @@

    Arguments

    @@ -17927,7 +17927,7 @@

    Arguments

    @@ -17942,7 +17942,7 @@

    Arguments

    @@ -17986,7 +17986,7 @@

    Arguments

    @@ -18001,7 +18001,7 @@

    Arguments

    @@ -18016,7 +18016,7 @@

    Arguments

    @@ -18031,7 +18031,7 @@

    Arguments

    @@ -18075,7 +18075,7 @@

    Arguments

    @@ -18090,7 +18090,7 @@

    Arguments

    @@ -18105,7 +18105,7 @@

    Arguments

    @@ -18120,7 +18120,7 @@

    Arguments

    @@ -18164,7 +18164,7 @@

    Arguments

    @@ -18179,7 +18179,7 @@

    Arguments

    @@ -18194,7 +18194,7 @@

    Arguments

    @@ -18209,7 +18209,7 @@

    Arguments

    @@ -18253,7 +18253,7 @@

    Arguments

    @@ -18268,7 +18268,7 @@

    Arguments

    @@ -18283,7 +18283,7 @@

    Arguments

    @@ -18298,7 +18298,7 @@

    Arguments

    @@ -18342,7 +18342,7 @@

    Arguments

    @@ -18357,7 +18357,7 @@

    Arguments

    @@ -18372,7 +18372,7 @@

    Arguments

    @@ -18387,7 +18387,7 @@

    Arguments

    @@ -18431,7 +18431,7 @@

    Arguments

    @@ -18446,7 +18446,7 @@

    Arguments

    @@ -18461,7 +18461,7 @@

    Arguments

    @@ -18476,7 +18476,7 @@

    Arguments

    @@ -18520,7 +18520,7 @@

    Arguments

    @@ -18535,7 +18535,7 @@

    Arguments

    @@ -18550,7 +18550,7 @@

    Arguments

    @@ -18565,7 +18565,7 @@

    Arguments

    @@ -18609,7 +18609,7 @@

    Arguments

    @@ -18624,7 +18624,7 @@

    Arguments

    @@ -18639,7 +18639,7 @@

    Arguments

    @@ -18654,7 +18654,7 @@

    Arguments

    @@ -18698,7 +18698,7 @@

    Arguments

    @@ -18713,7 +18713,7 @@

    Arguments

    @@ -18728,7 +18728,7 @@

    Arguments

    @@ -18743,7 +18743,7 @@

    Arguments

    @@ -18787,7 +18787,7 @@

    Arguments

    @@ -18802,7 +18802,7 @@

    Arguments

    @@ -18817,7 +18817,7 @@

    Arguments

    @@ -18832,7 +18832,7 @@

    Arguments

    @@ -18876,7 +18876,7 @@

    Arguments

    @@ -18891,7 +18891,7 @@

    Arguments

    @@ -18906,7 +18906,7 @@

    Arguments

    @@ -18921,7 +18921,7 @@

    Arguments

    @@ -18965,7 +18965,7 @@

    Arguments

    @@ -18980,7 +18980,7 @@

    Arguments

    @@ -18995,7 +18995,7 @@

    Arguments

    @@ -19010,7 +19010,7 @@

    Arguments

    @@ -19054,7 +19054,7 @@

    Arguments

    @@ -19069,7 +19069,7 @@

    Arguments

    @@ -19084,7 +19084,7 @@

    Arguments

    @@ -19099,7 +19099,7 @@

    Arguments

    @@ -19143,7 +19143,7 @@

    Arguments

    @@ -19158,7 +19158,7 @@

    Arguments

    @@ -19173,7 +19173,7 @@

    Arguments

    @@ -19188,7 +19188,7 @@

    Arguments

    @@ -19232,7 +19232,7 @@

    Arguments

    @@ -19247,7 +19247,7 @@

    Arguments

    @@ -19262,7 +19262,7 @@

    Arguments

    @@ -19277,7 +19277,7 @@

    Arguments

    @@ -19321,7 +19321,7 @@

    Arguments

    @@ -19336,7 +19336,7 @@

    Arguments

    @@ -19351,7 +19351,7 @@

    Arguments

    @@ -19366,7 +19366,7 @@

    Arguments

    @@ -19410,7 +19410,7 @@

    Arguments

    @@ -19425,7 +19425,7 @@

    Arguments

    @@ -19440,7 +19440,7 @@

    Arguments

    @@ -19455,7 +19455,7 @@

    Arguments

    @@ -19499,7 +19499,7 @@

    Arguments

    @@ -19514,7 +19514,7 @@

    Arguments

    @@ -19529,7 +19529,7 @@

    Arguments

    @@ -19544,7 +19544,7 @@

    Arguments

    @@ -19588,7 +19588,7 @@

    Arguments

    @@ -19603,7 +19603,7 @@

    Arguments

    @@ -19618,7 +19618,7 @@

    Arguments

    @@ -19633,7 +19633,7 @@

    Arguments

    @@ -19677,7 +19677,7 @@

    Arguments

    @@ -19692,7 +19692,7 @@

    Arguments

    @@ -19707,7 +19707,7 @@

    Arguments

    @@ -19722,7 +19722,7 @@

    Arguments

    @@ -19770,7 +19770,7 @@

    Arguments

    @@ -19785,7 +19785,7 @@

    Arguments

    @@ -19800,7 +19800,7 @@

    Arguments

    @@ -19815,7 +19815,7 @@

    Arguments

    @@ -19830,7 +19830,7 @@

    Arguments

    @@ -19847,7 +19847,7 @@

    Arguments

    @@ -19895,7 +19895,7 @@

    Arguments

    @@ -19910,7 +19910,7 @@

    Arguments

    @@ -19925,7 +19925,7 @@

    Arguments

    @@ -19940,7 +19940,7 @@

    Arguments

    @@ -19955,7 +19955,7 @@

    Arguments

    @@ -19972,7 +19972,7 @@

    Arguments

    @@ -20020,7 +20020,7 @@

    Arguments

    @@ -20035,7 +20035,7 @@

    Arguments

    @@ -20050,7 +20050,7 @@

    Arguments

    @@ -20065,7 +20065,7 @@

    Arguments

    @@ -20080,7 +20080,7 @@

    Arguments

    @@ -20097,7 +20097,7 @@

    Arguments

    @@ -20145,7 +20145,7 @@

    Arguments

    @@ -20160,7 +20160,7 @@

    Arguments

    @@ -20175,7 +20175,7 @@

    Arguments

    @@ -20190,7 +20190,7 @@

    Arguments

    @@ -20205,7 +20205,7 @@

    Arguments

    @@ -20222,7 +20222,7 @@

    Arguments

    @@ -20270,7 +20270,7 @@

    Arguments

    @@ -20285,7 +20285,7 @@

    Arguments

    @@ -20300,7 +20300,7 @@

    Arguments

    @@ -20315,7 +20315,7 @@

    Arguments

    @@ -20330,7 +20330,7 @@

    Arguments

    @@ -20347,7 +20347,7 @@

    Arguments

    @@ -20395,7 +20395,7 @@

    Arguments

    @@ -20410,7 +20410,7 @@

    Arguments

    @@ -20425,7 +20425,7 @@

    Arguments

    @@ -20440,7 +20440,7 @@

    Arguments

    @@ -20455,7 +20455,7 @@

    Arguments

    @@ -20472,7 +20472,7 @@

    Arguments

    @@ -20520,7 +20520,7 @@

    Arguments

    @@ -20535,7 +20535,7 @@

    Arguments

    @@ -20550,7 +20550,7 @@

    Arguments

    @@ -20565,7 +20565,7 @@

    Arguments

    @@ -20580,7 +20580,7 @@

    Arguments

    @@ -20597,7 +20597,7 @@

    Arguments

    @@ -20645,7 +20645,7 @@

    Arguments

    @@ -20660,7 +20660,7 @@

    Arguments

    @@ -20675,7 +20675,7 @@

    Arguments

    @@ -20690,7 +20690,7 @@

    Arguments

    @@ -20705,7 +20705,7 @@

    Arguments

    @@ -20722,7 +20722,7 @@

    Arguments

    @@ -20770,7 +20770,7 @@

    Arguments

    @@ -20785,7 +20785,7 @@

    Arguments

    @@ -20800,7 +20800,7 @@

    Arguments

    @@ -20815,7 +20815,7 @@

    Arguments

    @@ -20830,7 +20830,7 @@

    Arguments

    @@ -20847,7 +20847,7 @@

    Arguments

    @@ -20895,7 +20895,7 @@

    Arguments

    @@ -20910,7 +20910,7 @@

    Arguments

    @@ -20925,7 +20925,7 @@

    Arguments

    @@ -20940,7 +20940,7 @@

    Arguments

    @@ -20955,7 +20955,7 @@

    Arguments

    @@ -20972,7 +20972,7 @@

    Arguments

    @@ -21020,7 +21020,7 @@

    Arguments

    @@ -21035,7 +21035,7 @@

    Arguments

    @@ -21050,7 +21050,7 @@

    Arguments

    @@ -21065,7 +21065,7 @@

    Arguments

    @@ -21080,7 +21080,7 @@

    Arguments

    @@ -21097,7 +21097,7 @@

    Arguments

    @@ -21145,7 +21145,7 @@

    Arguments

    @@ -21160,7 +21160,7 @@

    Arguments

    @@ -21175,7 +21175,7 @@

    Arguments

    @@ -21190,7 +21190,7 @@

    Arguments

    @@ -21205,7 +21205,7 @@

    Arguments

    @@ -21222,7 +21222,7 @@

    Arguments

    @@ -21288,7 +21288,7 @@

    Arguments

    @@ -21303,7 +21303,7 @@

    Arguments

    @@ -21318,7 +21318,7 @@

    Arguments

    @@ -21333,7 +21333,7 @@

    Arguments

    @@ -21389,7 +21389,7 @@

    Arguments

    @@ -21404,7 +21404,7 @@

    Arguments

    @@ -21419,7 +21419,7 @@

    Arguments

    @@ -21434,7 +21434,7 @@

    Arguments

    @@ -21490,7 +21490,7 @@

    Arguments

    @@ -21505,7 +21505,7 @@

    Arguments

    @@ -21520,7 +21520,7 @@

    Arguments

    @@ -21535,7 +21535,7 @@

    Arguments

    @@ -21591,7 +21591,7 @@

    Arguments

    @@ -21606,7 +21606,7 @@

    Arguments

    @@ -21621,7 +21621,7 @@

    Arguments

    @@ -21636,7 +21636,7 @@

    Arguments

    @@ -21692,7 +21692,7 @@

    Arguments

    @@ -21707,7 +21707,7 @@

    Arguments

    @@ -21722,7 +21722,7 @@

    Arguments

    @@ -21737,7 +21737,7 @@

    Arguments

    @@ -21793,7 +21793,7 @@

    Arguments

    @@ -21808,7 +21808,7 @@

    Arguments

    @@ -21823,7 +21823,7 @@

    Arguments

    @@ -21838,7 +21838,7 @@

    Arguments

    @@ -21894,7 +21894,7 @@

    Arguments

    @@ -21909,7 +21909,7 @@

    Arguments

    @@ -21924,7 +21924,7 @@

    Arguments

    @@ -21939,7 +21939,7 @@

    Arguments

    @@ -21995,7 +21995,7 @@

    Arguments

    @@ -22010,7 +22010,7 @@

    Arguments

    @@ -22025,7 +22025,7 @@

    Arguments

    @@ -22040,7 +22040,7 @@

    Arguments

    @@ -22096,7 +22096,7 @@

    Arguments

    @@ -22111,7 +22111,7 @@

    Arguments

    @@ -22126,7 +22126,7 @@

    Arguments

    @@ -22141,7 +22141,7 @@

    Arguments

    @@ -22197,7 +22197,7 @@

    Arguments

    @@ -22212,7 +22212,7 @@

    Arguments

    @@ -22227,7 +22227,7 @@

    Arguments

    @@ -22242,7 +22242,7 @@

    Arguments

    @@ -22298,7 +22298,7 @@

    Arguments

    @@ -22313,7 +22313,7 @@

    Arguments

    @@ -22328,7 +22328,7 @@

    Arguments

    @@ -22343,7 +22343,7 @@

    Arguments

    @@ -22399,7 +22399,7 @@

    Arguments

    @@ -22414,7 +22414,7 @@

    Arguments

    @@ -22429,7 +22429,7 @@

    Arguments

    @@ -22444,7 +22444,7 @@

    Arguments

    @@ -22515,7 +22515,7 @@

    Arguments

    @@ -22530,7 +22530,7 @@

    Arguments

    @@ -22545,7 +22545,7 @@

    Arguments

    @@ -22560,7 +22560,7 @@

    Arguments

    @@ -22575,7 +22575,7 @@

    Arguments

    @@ -22590,7 +22590,7 @@

    Arguments

    @@ -22661,7 +22661,7 @@

    Arguments

    @@ -22676,7 +22676,7 @@

    Arguments

    @@ -22691,7 +22691,7 @@

    Arguments

    @@ -22706,7 +22706,7 @@

    Arguments

    @@ -22721,7 +22721,7 @@

    Arguments

    @@ -22736,7 +22736,7 @@

    Arguments

    @@ -22807,7 +22807,7 @@

    Arguments

    @@ -22822,7 +22822,7 @@

    Arguments

    @@ -22837,7 +22837,7 @@

    Arguments

    @@ -22852,7 +22852,7 @@

    Arguments

    @@ -22867,7 +22867,7 @@

    Arguments

    @@ -22882,7 +22882,7 @@

    Arguments

    @@ -22953,7 +22953,7 @@

    Arguments

    @@ -22968,7 +22968,7 @@

    Arguments

    @@ -22983,7 +22983,7 @@

    Arguments

    @@ -22998,7 +22998,7 @@

    Arguments

    @@ -23013,7 +23013,7 @@

    Arguments

    @@ -23028,7 +23028,7 @@

    Arguments

    @@ -23099,7 +23099,7 @@

    Arguments

    @@ -23114,7 +23114,7 @@

    Arguments

    @@ -23129,7 +23129,7 @@

    Arguments

    @@ -23144,7 +23144,7 @@

    Arguments

    @@ -23159,7 +23159,7 @@

    Arguments

    @@ -23174,7 +23174,7 @@

    Arguments

    @@ -23245,7 +23245,7 @@

    Arguments

    @@ -23260,7 +23260,7 @@

    Arguments

    @@ -23275,7 +23275,7 @@

    Arguments

    @@ -23290,7 +23290,7 @@

    Arguments

    @@ -23305,7 +23305,7 @@

    Arguments

    @@ -23320,7 +23320,7 @@

    Arguments

    @@ -23376,7 +23376,7 @@

    Arguments

    @@ -23391,7 +23391,7 @@

    Arguments

    @@ -23421,7 +23421,7 @@

    Arguments

    @@ -23464,7 +23464,7 @@

    Arguments

    @@ -23479,7 +23479,7 @@

    Arguments

    @@ -23509,7 +23509,7 @@

    Arguments

    @@ -23552,7 +23552,7 @@

    Arguments

    @@ -23567,7 +23567,7 @@

    Arguments

    @@ -23597,7 +23597,7 @@

    Arguments

    @@ -23643,7 +23643,7 @@

    Arguments

    @@ -23658,7 +23658,7 @@

    Arguments

    @@ -23674,7 +23674,7 @@

    Arguments

    @@ -23690,7 +23690,7 @@

    Arguments

    @@ -23705,7 +23705,7 @@

    Arguments

    @@ -23721,7 +23721,7 @@

    Arguments

    @@ -23737,7 +23737,7 @@

    Arguments

    @@ -23783,7 +23783,7 @@

    Arguments

    @@ -23798,7 +23798,7 @@

    Arguments

    @@ -23828,7 +23828,7 @@

    Arguments

    @@ -23871,7 +23871,7 @@

    Arguments

    @@ -23886,7 +23886,7 @@

    Arguments

    @@ -23916,7 +23916,7 @@

    Arguments

    @@ -23959,7 +23959,7 @@

    Arguments

    @@ -23974,7 +23974,7 @@

    Arguments

    @@ -24004,7 +24004,7 @@

    Arguments

    @@ -24050,7 +24050,7 @@

    Arguments

    @@ -24065,7 +24065,7 @@

    Arguments

    @@ -24081,7 +24081,7 @@

    Arguments

    @@ -24097,7 +24097,7 @@

    Arguments

    @@ -24112,7 +24112,7 @@

    Arguments

    @@ -24128,7 +24128,7 @@

    Arguments

    @@ -24144,7 +24144,7 @@

    Arguments

    @@ -24190,7 +24190,7 @@

    Arguments

    @@ -24205,7 +24205,7 @@

    Arguments

    @@ -24235,7 +24235,7 @@

    Arguments

    @@ -24278,7 +24278,7 @@

    Arguments

    @@ -24293,7 +24293,7 @@

    Arguments

    @@ -24323,7 +24323,7 @@

    Arguments

    @@ -24366,7 +24366,7 @@

    Arguments

    @@ -24381,7 +24381,7 @@

    Arguments

    @@ -24411,7 +24411,7 @@

    Arguments

    @@ -24457,7 +24457,7 @@

    Arguments

    @@ -24472,7 +24472,7 @@

    Arguments

    @@ -24488,7 +24488,7 @@

    Arguments

    @@ -24504,7 +24504,7 @@

    Arguments

    @@ -24519,7 +24519,7 @@

    Arguments

    @@ -24535,7 +24535,7 @@

    Arguments

    @@ -24551,7 +24551,7 @@

    Arguments

    @@ -24597,7 +24597,7 @@

    Arguments

    @@ -24612,7 +24612,7 @@

    Arguments

    @@ -24642,7 +24642,7 @@

    Arguments

    @@ -24685,7 +24685,7 @@

    Arguments

    @@ -24700,7 +24700,7 @@

    Arguments

    @@ -24730,7 +24730,7 @@

    Arguments

    @@ -24773,7 +24773,7 @@

    Arguments

    @@ -24788,7 +24788,7 @@

    Arguments

    @@ -24818,7 +24818,7 @@

    Arguments

    @@ -24864,7 +24864,7 @@

    Arguments

    @@ -24879,7 +24879,7 @@

    Arguments

    @@ -24895,7 +24895,7 @@

    Arguments

    @@ -24911,7 +24911,7 @@

    Arguments

    @@ -24926,7 +24926,7 @@

    Arguments

    @@ -24942,7 +24942,7 @@

    Arguments

    @@ -24958,7 +24958,7 @@

    Arguments

    @@ -25004,7 +25004,7 @@

    Arguments

    @@ -25019,7 +25019,7 @@

    Arguments

    @@ -25049,7 +25049,7 @@

    Arguments

    @@ -25092,7 +25092,7 @@

    Arguments

    @@ -25107,7 +25107,7 @@

    Arguments

    @@ -25137,7 +25137,7 @@

    Arguments

    @@ -25180,7 +25180,7 @@

    Arguments

    @@ -25195,7 +25195,7 @@

    Arguments

    @@ -25225,7 +25225,7 @@

    Arguments

    @@ -25271,7 +25271,7 @@

    Arguments

    @@ -25286,7 +25286,7 @@

    Arguments

    @@ -25302,7 +25302,7 @@

    Arguments

    @@ -25318,7 +25318,7 @@

    Arguments

    @@ -25333,7 +25333,7 @@

    Arguments

    @@ -25349,7 +25349,7 @@

    Arguments

    @@ -25365,7 +25365,7 @@

    Arguments

    @@ -25411,7 +25411,7 @@

    Arguments

    @@ -25426,7 +25426,7 @@

    Arguments

    @@ -25456,7 +25456,7 @@

    Arguments

    @@ -25499,7 +25499,7 @@

    Arguments

    @@ -25514,7 +25514,7 @@

    Arguments

    @@ -25544,7 +25544,7 @@

    Arguments

    @@ -25587,7 +25587,7 @@

    Arguments

    @@ -25602,7 +25602,7 @@

    Arguments

    @@ -25632,7 +25632,7 @@

    Arguments

    @@ -25678,7 +25678,7 @@

    Arguments

    @@ -25693,7 +25693,7 @@

    Arguments

    @@ -25709,7 +25709,7 @@

    Arguments

    @@ -25725,7 +25725,7 @@

    Arguments

    @@ -25740,7 +25740,7 @@

    Arguments

    @@ -25756,7 +25756,7 @@

    Arguments

    @@ -25772,7 +25772,7 @@

    Arguments

    @@ -25823,7 +25823,7 @@

    Arguments

    @@ -25838,7 +25838,7 @@

    Arguments

    @@ -25854,7 +25854,7 @@

    Arguments

    @@ -25870,7 +25870,7 @@

    Arguments

    @@ -25913,7 +25913,7 @@

    Arguments

    @@ -25928,7 +25928,7 @@

    Arguments

    @@ -25943,7 +25943,7 @@

    Arguments

    @@ -25958,7 +25958,7 @@

    Arguments

    @@ -25999,7 +25999,7 @@

    Arguments

    @@ -26014,7 +26014,7 @@

    Arguments

    @@ -26030,7 +26030,7 @@

    Arguments

    @@ -26046,7 +26046,7 @@

    Arguments

    @@ -26089,7 +26089,7 @@

    Arguments

    @@ -26104,7 +26104,7 @@

    Arguments

    @@ -26119,7 +26119,7 @@

    Arguments

    @@ -26134,7 +26134,7 @@

    Arguments

    @@ -26175,7 +26175,7 @@

    Arguments

    @@ -26190,7 +26190,7 @@

    Arguments

    @@ -26206,7 +26206,7 @@

    Arguments

    @@ -26222,7 +26222,7 @@

    Arguments

    @@ -26265,7 +26265,7 @@

    Arguments

    @@ -26280,7 +26280,7 @@

    Arguments

    @@ -26295,7 +26295,7 @@

    Arguments

    @@ -26310,7 +26310,7 @@

    Arguments

    @@ -26351,7 +26351,7 @@

    Arguments

    @@ -26366,7 +26366,7 @@

    Arguments

    @@ -26382,7 +26382,7 @@

    Arguments

    @@ -26398,7 +26398,7 @@

    Arguments

    @@ -26441,7 +26441,7 @@

    Arguments

    @@ -26456,7 +26456,7 @@

    Arguments

    @@ -26471,7 +26471,7 @@

    Arguments

    @@ -26486,7 +26486,7 @@

    Arguments

    @@ -26527,7 +26527,7 @@

    Arguments

    @@ -26542,7 +26542,7 @@

    Arguments

    @@ -26558,7 +26558,7 @@

    Arguments

    @@ -26574,7 +26574,7 @@

    Arguments

    @@ -26617,7 +26617,7 @@

    Arguments

    @@ -26632,7 +26632,7 @@

    Arguments

    @@ -26647,7 +26647,7 @@

    Arguments

    @@ -26662,7 +26662,7 @@

    Arguments

    @@ -26703,7 +26703,7 @@

    Arguments

    @@ -26718,7 +26718,7 @@

    Arguments

    @@ -26734,7 +26734,7 @@

    Arguments

    @@ -26750,7 +26750,7 @@

    Arguments

    @@ -26793,7 +26793,7 @@

    Arguments

    @@ -26808,7 +26808,7 @@

    Arguments

    @@ -26823,7 +26823,7 @@

    Arguments

    @@ -26838,7 +26838,7 @@

    Arguments

    @@ -26889,7 +26889,7 @@

    Arguments

    @@ -26904,7 +26904,7 @@

    Arguments

    @@ -26920,7 +26920,7 @@

    Arguments

    @@ -26936,7 +26936,7 @@

    Arguments

    @@ -26979,7 +26979,7 @@

    Arguments

    @@ -26994,7 +26994,7 @@

    Arguments

    @@ -27009,7 +27009,7 @@

    Arguments

    @@ -27024,7 +27024,7 @@

    Arguments

    @@ -27065,7 +27065,7 @@

    Arguments

    @@ -27080,7 +27080,7 @@

    Arguments

    @@ -27096,7 +27096,7 @@

    Arguments

    @@ -27112,7 +27112,7 @@

    Arguments

    @@ -27155,7 +27155,7 @@

    Arguments

    @@ -27170,7 +27170,7 @@

    Arguments

    @@ -27185,7 +27185,7 @@

    Arguments

    @@ -27200,7 +27200,7 @@

    Arguments

    @@ -27241,7 +27241,7 @@

    Arguments

    @@ -27256,7 +27256,7 @@

    Arguments

    @@ -27272,7 +27272,7 @@

    Arguments

    @@ -27288,7 +27288,7 @@

    Arguments

    @@ -27331,7 +27331,7 @@

    Arguments

    @@ -27346,7 +27346,7 @@

    Arguments

    @@ -27361,7 +27361,7 @@

    Arguments

    @@ -27376,7 +27376,7 @@

    Arguments

    @@ -27417,7 +27417,7 @@

    Arguments

    @@ -27432,7 +27432,7 @@

    Arguments

    @@ -27448,7 +27448,7 @@

    Arguments

    @@ -27464,7 +27464,7 @@

    Arguments

    @@ -27507,7 +27507,7 @@

    Arguments

    @@ -27522,7 +27522,7 @@

    Arguments

    @@ -27537,7 +27537,7 @@

    Arguments

    @@ -27552,7 +27552,7 @@

    Arguments

    @@ -27593,7 +27593,7 @@

    Arguments

    @@ -27608,7 +27608,7 @@

    Arguments

    @@ -27624,7 +27624,7 @@

    Arguments

    @@ -27640,7 +27640,7 @@

    Arguments

    @@ -27683,7 +27683,7 @@

    Arguments

    @@ -27698,7 +27698,7 @@

    Arguments

    @@ -27713,7 +27713,7 @@

    Arguments

    @@ -27728,7 +27728,7 @@

    Arguments

    @@ -27769,7 +27769,7 @@

    Arguments

    @@ -27784,7 +27784,7 @@

    Arguments

    @@ -27800,7 +27800,7 @@

    Arguments

    @@ -27816,7 +27816,7 @@

    Arguments

    @@ -27859,7 +27859,7 @@

    Arguments

    @@ -27874,7 +27874,7 @@

    Arguments

    @@ -27889,7 +27889,7 @@

    Arguments

    @@ -27904,7 +27904,7 @@

    Arguments

    @@ -27953,7 +27953,7 @@

    Arguments

    @@ -27968,7 +27968,7 @@

    Arguments

    @@ -27983,7 +27983,7 @@

    Arguments

    @@ -27998,7 +27998,7 @@

    Arguments

    @@ -28013,7 +28013,7 @@

    Arguments

    @@ -28052,7 +28052,7 @@

    Arguments

    @@ -28067,7 +28067,7 @@

    Arguments

    @@ -28082,7 +28082,7 @@

    Arguments

    @@ -28097,7 +28097,7 @@

    Arguments

    @@ -28112,7 +28112,7 @@

    Arguments

    @@ -28151,7 +28151,7 @@

    Arguments

    @@ -28166,7 +28166,7 @@

    Arguments

    @@ -28181,7 +28181,7 @@

    Arguments

    @@ -28196,7 +28196,7 @@

    Arguments

    @@ -28211,7 +28211,7 @@

    Arguments

    @@ -28250,7 +28250,7 @@

    Arguments

    @@ -28265,7 +28265,7 @@

    Arguments

    @@ -28280,7 +28280,7 @@

    Arguments

    @@ -28295,7 +28295,7 @@

    Arguments

    @@ -28310,7 +28310,7 @@

    Arguments

    @@ -28349,7 +28349,7 @@

    Arguments

    @@ -28364,7 +28364,7 @@

    Arguments

    @@ -28379,7 +28379,7 @@

    Arguments

    @@ -28394,7 +28394,7 @@

    Arguments

    @@ -28409,7 +28409,7 @@

    Arguments

    @@ -28448,7 +28448,7 @@

    Arguments

    @@ -28463,7 +28463,7 @@

    Arguments

    @@ -28478,7 +28478,7 @@

    Arguments

    @@ -28493,7 +28493,7 @@

    Arguments

    @@ -28508,7 +28508,7 @@

    Arguments

    @@ -28559,7 +28559,7 @@

    Arguments

    @@ -28574,7 +28574,7 @@

    Arguments

    @@ -28589,7 +28589,7 @@

    Arguments

    @@ -28604,7 +28604,7 @@

    Arguments

    @@ -28619,7 +28619,7 @@

    Arguments

    @@ -28634,7 +28634,7 @@

    Arguments

    @@ -28650,7 +28650,7 @@

    Arguments

    @@ -28666,7 +28666,7 @@

    Arguments

    @@ -28711,7 +28711,7 @@

    Arguments

    @@ -28726,7 +28726,7 @@

    Arguments

    @@ -28741,7 +28741,7 @@

    Arguments

    @@ -28756,7 +28756,7 @@

    Arguments

    @@ -28771,7 +28771,7 @@

    Arguments

    @@ -28786,7 +28786,7 @@

    Arguments

    @@ -28802,7 +28802,7 @@

    Arguments

    @@ -28818,7 +28818,7 @@

    Arguments

    @@ -28859,7 +28859,7 @@

    Arguments

    @@ -28874,7 +28874,7 @@

    Arguments

    @@ -28889,7 +28889,7 @@

    Arguments

    @@ -28904,7 +28904,7 @@

    Arguments

    @@ -28919,7 +28919,7 @@

    Arguments

    @@ -28934,7 +28934,7 @@

    Arguments

    @@ -28950,7 +28950,7 @@

    Arguments

    @@ -28966,7 +28966,7 @@

    Arguments

    @@ -29011,7 +29011,7 @@

    Arguments

    @@ -29026,7 +29026,7 @@

    Arguments

    @@ -29041,7 +29041,7 @@

    Arguments

    @@ -29056,7 +29056,7 @@

    Arguments

    @@ -29071,7 +29071,7 @@

    Arguments

    @@ -29086,7 +29086,7 @@

    Arguments

    @@ -29102,7 +29102,7 @@

    Arguments

    @@ -29118,7 +29118,7 @@

    Arguments

    @@ -29159,7 +29159,7 @@

    Arguments

    @@ -29174,7 +29174,7 @@

    Arguments

    @@ -29189,7 +29189,7 @@

    Arguments

    @@ -29204,7 +29204,7 @@

    Arguments

    @@ -29219,7 +29219,7 @@

    Arguments

    @@ -29234,7 +29234,7 @@

    Arguments

    @@ -29250,7 +29250,7 @@

    Arguments

    @@ -29266,7 +29266,7 @@

    Arguments

    @@ -29311,7 +29311,7 @@

    Arguments

    @@ -29326,7 +29326,7 @@

    Arguments

    @@ -29341,7 +29341,7 @@

    Arguments

    @@ -29356,7 +29356,7 @@

    Arguments

    @@ -29371,7 +29371,7 @@

    Arguments

    @@ -29386,7 +29386,7 @@

    Arguments

    @@ -29402,7 +29402,7 @@

    Arguments

    @@ -29418,7 +29418,7 @@

    Arguments

    @@ -29459,7 +29459,7 @@

    Arguments

    @@ -29474,7 +29474,7 @@

    Arguments

    @@ -29489,7 +29489,7 @@

    Arguments

    @@ -29504,7 +29504,7 @@

    Arguments

    @@ -29519,7 +29519,7 @@

    Arguments

    @@ -29534,7 +29534,7 @@

    Arguments

    @@ -29550,7 +29550,7 @@

    Arguments

    @@ -29566,7 +29566,7 @@

    Arguments

    @@ -29611,7 +29611,7 @@

    Arguments

    @@ -29626,7 +29626,7 @@

    Arguments

    @@ -29641,7 +29641,7 @@

    Arguments

    @@ -29656,7 +29656,7 @@

    Arguments

    @@ -29671,7 +29671,7 @@

    Arguments

    @@ -29686,7 +29686,7 @@

    Arguments

    @@ -29702,7 +29702,7 @@

    Arguments

    @@ -29718,7 +29718,7 @@

    Arguments

    @@ -29759,7 +29759,7 @@

    Arguments

    @@ -29774,7 +29774,7 @@

    Arguments

    @@ -29789,7 +29789,7 @@

    Arguments

    @@ -29804,7 +29804,7 @@

    Arguments

    @@ -29819,7 +29819,7 @@

    Arguments

    @@ -29834,7 +29834,7 @@

    Arguments

    @@ -29850,7 +29850,7 @@

    Arguments

    @@ -29866,7 +29866,7 @@

    Arguments

    @@ -29911,7 +29911,7 @@

    Arguments

    @@ -29926,7 +29926,7 @@

    Arguments

    @@ -29941,7 +29941,7 @@

    Arguments

    @@ -29956,7 +29956,7 @@

    Arguments

    @@ -29971,7 +29971,7 @@

    Arguments

    @@ -29986,7 +29986,7 @@

    Arguments

    @@ -30002,7 +30002,7 @@

    Arguments

    @@ -30018,7 +30018,7 @@

    Arguments

    @@ -30059,7 +30059,7 @@

    Arguments

    @@ -30074,7 +30074,7 @@

    Arguments

    @@ -30089,7 +30089,7 @@

    Arguments

    @@ -30104,7 +30104,7 @@

    Arguments

    @@ -30119,7 +30119,7 @@

    Arguments

    @@ -30134,7 +30134,7 @@

    Arguments

    @@ -30150,7 +30150,7 @@

    Arguments

    @@ -30166,7 +30166,7 @@

    Arguments

    @@ -30211,7 +30211,7 @@

    Arguments

    @@ -30226,7 +30226,7 @@

    Arguments

    @@ -30241,7 +30241,7 @@

    Arguments

    @@ -30256,7 +30256,7 @@

    Arguments

    @@ -30271,7 +30271,7 @@

    Arguments

    @@ -30286,7 +30286,7 @@

    Arguments

    @@ -30302,7 +30302,7 @@

    Arguments

    @@ -30318,7 +30318,7 @@

    Arguments

    @@ -30375,7 +30375,7 @@

    Arguments

    @@ -30390,7 +30390,7 @@

    Arguments

    @@ -30405,7 +30405,7 @@

    Arguments

    @@ -30420,7 +30420,7 @@

    Arguments

    @@ -30435,7 +30435,7 @@

    Arguments

    @@ -30486,7 +30486,7 @@

    Arguments

    @@ -30501,7 +30501,7 @@

    Arguments

    @@ -30516,7 +30516,7 @@

    Arguments

    @@ -30531,7 +30531,7 @@

    Arguments

    @@ -30546,7 +30546,7 @@

    Arguments

    @@ -30593,7 +30593,7 @@

    Arguments

    @@ -30608,7 +30608,7 @@

    Arguments

    @@ -30623,7 +30623,7 @@

    Arguments

    @@ -30638,7 +30638,7 @@

    Arguments

    @@ -30653,7 +30653,7 @@

    Arguments

    @@ -30704,7 +30704,7 @@

    Arguments

    @@ -30719,7 +30719,7 @@

    Arguments

    @@ -30734,7 +30734,7 @@

    Arguments

    @@ -30749,7 +30749,7 @@

    Arguments

    @@ -30764,7 +30764,7 @@

    Arguments

    @@ -30811,7 +30811,7 @@

    Arguments

    @@ -30826,7 +30826,7 @@

    Arguments

    @@ -30841,7 +30841,7 @@

    Arguments

    @@ -30856,7 +30856,7 @@

    Arguments

    @@ -30871,7 +30871,7 @@

    Arguments

    @@ -30922,7 +30922,7 @@

    Arguments

    @@ -30937,7 +30937,7 @@

    Arguments

    @@ -30952,7 +30952,7 @@

    Arguments

    @@ -30967,7 +30967,7 @@

    Arguments

    @@ -30982,7 +30982,7 @@

    Arguments

    @@ -31029,7 +31029,7 @@

    Arguments

    @@ -31044,7 +31044,7 @@

    Arguments

    @@ -31059,7 +31059,7 @@

    Arguments

    @@ -31074,7 +31074,7 @@

    Arguments

    @@ -31089,7 +31089,7 @@

    Arguments

    @@ -31140,7 +31140,7 @@

    Arguments

    @@ -31155,7 +31155,7 @@

    Arguments

    @@ -31170,7 +31170,7 @@

    Arguments

    @@ -31185,7 +31185,7 @@

    Arguments

    @@ -31200,7 +31200,7 @@

    Arguments

    @@ -31247,7 +31247,7 @@

    Arguments

    @@ -31262,7 +31262,7 @@

    Arguments

    @@ -31277,7 +31277,7 @@

    Arguments

    @@ -31292,7 +31292,7 @@

    Arguments

    @@ -31307,7 +31307,7 @@

    Arguments

    @@ -31358,7 +31358,7 @@

    Arguments

    @@ -31373,7 +31373,7 @@

    Arguments

    @@ -31388,7 +31388,7 @@

    Arguments

    @@ -31403,7 +31403,7 @@

    Arguments

    @@ -31418,7 +31418,7 @@

    Arguments

    @@ -31465,7 +31465,7 @@

    Arguments

    @@ -31480,7 +31480,7 @@

    Arguments

    @@ -31495,7 +31495,7 @@

    Arguments

    @@ -31510,7 +31510,7 @@

    Arguments

    @@ -31525,7 +31525,7 @@

    Arguments

    @@ -31576,7 +31576,7 @@

    Arguments

    @@ -31591,7 +31591,7 @@

    Arguments

    @@ -31606,7 +31606,7 @@

    Arguments

    @@ -31621,7 +31621,7 @@

    Arguments

    @@ -31636,7 +31636,7 @@

    Arguments

    @@ -31683,7 +31683,7 @@

    Arguments

    @@ -31698,7 +31698,7 @@

    Arguments

    @@ -31713,7 +31713,7 @@

    Arguments

    @@ -31728,7 +31728,7 @@

    Arguments

    @@ -31743,7 +31743,7 @@

    Arguments

    @@ -31782,7 +31782,7 @@

    Arguments

    @@ -31797,7 +31797,7 @@

    Arguments

    @@ -31812,7 +31812,7 @@

    Arguments

    @@ -31827,7 +31827,7 @@

    Arguments

    @@ -31842,7 +31842,7 @@

    Arguments

    @@ -31899,7 +31899,7 @@

    Arguments

    @@ -31914,7 +31914,7 @@

    Arguments

    @@ -31929,7 +31929,7 @@

    Arguments

    @@ -31944,7 +31944,7 @@

    Arguments

    @@ -31959,7 +31959,7 @@

    Arguments

    @@ -32010,7 +32010,7 @@

    Arguments

    @@ -32025,7 +32025,7 @@

    Arguments

    @@ -32040,7 +32040,7 @@

    Arguments

    @@ -32055,7 +32055,7 @@

    Arguments

    @@ -32070,7 +32070,7 @@

    Arguments

    @@ -32117,7 +32117,7 @@

    Arguments

    @@ -32132,7 +32132,7 @@

    Arguments

    @@ -32147,7 +32147,7 @@

    Arguments

    @@ -32162,7 +32162,7 @@

    Arguments

    @@ -32177,7 +32177,7 @@

    Arguments

    @@ -32228,7 +32228,7 @@

    Arguments

    @@ -32243,7 +32243,7 @@

    Arguments

    @@ -32258,7 +32258,7 @@

    Arguments

    @@ -32273,7 +32273,7 @@

    Arguments

    @@ -32288,7 +32288,7 @@

    Arguments

    @@ -32335,7 +32335,7 @@

    Arguments

    @@ -32350,7 +32350,7 @@

    Arguments

    @@ -32365,7 +32365,7 @@

    Arguments

    @@ -32380,7 +32380,7 @@

    Arguments

    @@ -32395,7 +32395,7 @@

    Arguments

    @@ -32446,7 +32446,7 @@

    Arguments

    @@ -32461,7 +32461,7 @@

    Arguments

    @@ -32476,7 +32476,7 @@

    Arguments

    @@ -32491,7 +32491,7 @@

    Arguments

    @@ -32506,7 +32506,7 @@

    Arguments

    @@ -32553,7 +32553,7 @@

    Arguments

    @@ -32568,7 +32568,7 @@

    Arguments

    @@ -32583,7 +32583,7 @@

    Arguments

    @@ -32598,7 +32598,7 @@

    Arguments

    @@ -32613,7 +32613,7 @@

    Arguments

    @@ -32664,7 +32664,7 @@

    Arguments

    @@ -32679,7 +32679,7 @@

    Arguments

    @@ -32694,7 +32694,7 @@

    Arguments

    @@ -32709,7 +32709,7 @@

    Arguments

    @@ -32724,7 +32724,7 @@

    Arguments

    @@ -32771,7 +32771,7 @@

    Arguments

    @@ -32786,7 +32786,7 @@

    Arguments

    @@ -32801,7 +32801,7 @@

    Arguments

    @@ -32816,7 +32816,7 @@

    Arguments

    @@ -32831,7 +32831,7 @@

    Arguments

    @@ -32882,7 +32882,7 @@

    Arguments

    @@ -32897,7 +32897,7 @@

    Arguments

    @@ -32912,7 +32912,7 @@

    Arguments

    @@ -32927,7 +32927,7 @@

    Arguments

    @@ -32942,7 +32942,7 @@

    Arguments

    @@ -32989,7 +32989,7 @@

    Arguments

    @@ -33004,7 +33004,7 @@

    Arguments

    @@ -33019,7 +33019,7 @@

    Arguments

    @@ -33034,7 +33034,7 @@

    Arguments

    @@ -33049,7 +33049,7 @@

    Arguments

    @@ -33100,7 +33100,7 @@

    Arguments

    @@ -33115,7 +33115,7 @@

    Arguments

    @@ -33130,7 +33130,7 @@

    Arguments

    @@ -33145,7 +33145,7 @@

    Arguments

    @@ -33160,7 +33160,7 @@

    Arguments

    @@ -33207,7 +33207,7 @@

    Arguments

    @@ -33222,7 +33222,7 @@

    Arguments

    @@ -33237,7 +33237,7 @@

    Arguments

    @@ -33252,7 +33252,7 @@

    Arguments

    @@ -33267,7 +33267,7 @@

    Arguments

    @@ -33306,7 +33306,7 @@

    Arguments

    @@ -33321,7 +33321,7 @@

    Arguments

    @@ -33336,7 +33336,7 @@

    Arguments

    @@ -33351,7 +33351,7 @@

    Arguments

    @@ -33366,7 +33366,7 @@

    Arguments

    @@ -33419,7 +33419,7 @@

    Arguments

    @@ -33434,7 +33434,7 @@

    Arguments

    @@ -33449,7 +33449,7 @@

    Arguments

    @@ -33492,7 +33492,7 @@

    Arguments

    @@ -33507,7 +33507,7 @@

    Arguments

    @@ -33522,7 +33522,7 @@

    Arguments

    @@ -33565,7 +33565,7 @@

    Arguments

    @@ -33580,7 +33580,7 @@

    Arguments

    @@ -33595,7 +33595,7 @@

    Arguments

    @@ -33638,7 +33638,7 @@

    Arguments

    @@ -33653,7 +33653,7 @@

    Arguments

    @@ -33668,7 +33668,7 @@

    Arguments

    @@ -33711,7 +33711,7 @@

    Arguments

    @@ -33726,7 +33726,7 @@

    Arguments

    @@ -33741,7 +33741,7 @@

    Arguments

    @@ -33784,7 +33784,7 @@

    Arguments

    @@ -33799,7 +33799,7 @@

    Arguments

    @@ -33814,7 +33814,7 @@

    Arguments

    @@ -33867,7 +33867,7 @@

    Arguments

    @@ -33882,7 +33882,7 @@

    Arguments

    @@ -33897,7 +33897,7 @@

    Arguments

    @@ -33912,7 +33912,7 @@

    Arguments

    @@ -33927,7 +33927,7 @@

    Arguments

    @@ -33942,7 +33942,7 @@

    Arguments

    @@ -33957,7 +33957,7 @@

    Arguments

    @@ -33972,7 +33972,7 @@

    Arguments

    @@ -33987,7 +33987,7 @@

    Arguments

    @@ -34030,7 +34030,7 @@

    Arguments

    @@ -34045,7 +34045,7 @@

    Arguments

    @@ -34060,7 +34060,7 @@

    Arguments

    @@ -34075,7 +34075,7 @@

    Arguments

    @@ -34090,7 +34090,7 @@

    Arguments

    @@ -34105,7 +34105,7 @@

    Arguments

    @@ -34120,7 +34120,7 @@

    Arguments

    @@ -34135,7 +34135,7 @@

    Arguments

    @@ -34150,7 +34150,7 @@

    Arguments

    @@ -34193,7 +34193,7 @@

    Arguments

    @@ -34208,7 +34208,7 @@

    Arguments

    @@ -34223,7 +34223,7 @@

    Arguments

    @@ -34238,7 +34238,7 @@

    Arguments

    @@ -34253,7 +34253,7 @@

    Arguments

    @@ -34268,7 +34268,7 @@

    Arguments

    @@ -34283,7 +34283,7 @@

    Arguments

    @@ -34298,7 +34298,7 @@

    Arguments

    @@ -34313,7 +34313,7 @@

    Arguments

    @@ -34356,7 +34356,7 @@

    Arguments

    @@ -34371,7 +34371,7 @@

    Arguments

    @@ -34386,7 +34386,7 @@

    Arguments

    @@ -34401,7 +34401,7 @@

    Arguments

    @@ -34416,7 +34416,7 @@

    Arguments

    @@ -34431,7 +34431,7 @@

    Arguments

    @@ -34446,7 +34446,7 @@

    Arguments

    @@ -34461,7 +34461,7 @@

    Arguments

    @@ -34476,7 +34476,7 @@

    Arguments

    @@ -34519,7 +34519,7 @@

    Arguments

    @@ -34534,7 +34534,7 @@

    Arguments

    @@ -34549,7 +34549,7 @@

    Arguments

    @@ -34564,7 +34564,7 @@

    Arguments

    @@ -34579,7 +34579,7 @@

    Arguments

    @@ -34594,7 +34594,7 @@

    Arguments

    @@ -34609,7 +34609,7 @@

    Arguments

    @@ -34624,7 +34624,7 @@

    Arguments

    @@ -34639,7 +34639,7 @@

    Arguments

    @@ -34682,7 +34682,7 @@

    Arguments

    @@ -34697,7 +34697,7 @@

    Arguments

    @@ -34712,7 +34712,7 @@

    Arguments

    @@ -34727,7 +34727,7 @@

    Arguments

    @@ -34742,7 +34742,7 @@

    Arguments

    @@ -34757,7 +34757,7 @@

    Arguments

    @@ -34772,7 +34772,7 @@

    Arguments

    @@ -34787,7 +34787,7 @@

    Arguments

    @@ -34802,7 +34802,7 @@

    Arguments

    @@ -34851,7 +34851,7 @@

    Arguments

    @@ -34866,7 +34866,7 @@

    Arguments

    @@ -34881,7 +34881,7 @@

    Arguments

    @@ -34920,7 +34920,7 @@

    Arguments

    @@ -34935,7 +34935,7 @@

    Arguments

    @@ -34950,7 +34950,7 @@

    Arguments

    @@ -34989,7 +34989,7 @@

    Arguments

    @@ -35004,7 +35004,7 @@

    Arguments

    @@ -35019,7 +35019,7 @@

    Arguments

    @@ -35058,7 +35058,7 @@

    Arguments

    @@ -35073,7 +35073,7 @@

    Arguments

    @@ -35088,7 +35088,7 @@

    Arguments

    @@ -35127,7 +35127,7 @@

    Arguments

    @@ -35142,7 +35142,7 @@

    Arguments

    @@ -35157,7 +35157,7 @@

    Arguments

    @@ -35196,7 +35196,7 @@

    Arguments

    @@ -35211,7 +35211,7 @@

    Arguments

    @@ -35226,7 +35226,7 @@

    Arguments

    @@ -35275,7 +35275,7 @@

    Arguments

    @@ -35290,7 +35290,7 @@

    Arguments

    @@ -35329,7 +35329,7 @@

    Arguments

    @@ -35344,7 +35344,7 @@

    Arguments

    @@ -35383,7 +35383,7 @@

    Arguments

    @@ -35398,7 +35398,7 @@

    Arguments

    @@ -35437,7 +35437,7 @@

    Arguments

    @@ -35452,7 +35452,7 @@

    Arguments

    @@ -35491,7 +35491,7 @@

    Arguments

    @@ -35506,7 +35506,7 @@

    Arguments

    @@ -35545,7 +35545,7 @@

    Arguments

    @@ -35560,7 +35560,7 @@

    Arguments

    @@ -35609,7 +35609,7 @@

    Arguments

    @@ -35683,7 +35683,7 @@

    Arguments

    @@ -35757,7 +35757,7 @@

    Arguments

    @@ -35831,7 +35831,7 @@

    Arguments

    @@ -35905,7 +35905,7 @@

    Arguments

    @@ -35979,7 +35979,7 @@

    Arguments

    @@ -36152,7 +36152,7 @@

    Arguments

    @@ -36167,7 +36167,7 @@

    Arguments

    @@ -36224,7 +36224,7 @@

    Arguments

    @@ -36239,7 +36239,7 @@

    Arguments

    @@ -36308,7 +36308,7 @@

    Arguments

    @@ -36323,7 +36323,7 @@

    Arguments

    @@ -36380,7 +36380,7 @@

    Arguments

    @@ -36395,7 +36395,7 @@

    Arguments

    @@ -36464,7 +36464,7 @@

    Arguments

    @@ -36479,7 +36479,7 @@

    Arguments

    @@ -36536,7 +36536,7 @@

    Arguments

    @@ -36551,7 +36551,7 @@

    Arguments

    @@ -36620,7 +36620,7 @@

    Arguments

    @@ -36635,7 +36635,7 @@

    Arguments

    @@ -36692,7 +36692,7 @@

    Arguments

    @@ -36707,7 +36707,7 @@

    Arguments

    @@ -36776,7 +36776,7 @@

    Arguments

    @@ -36791,7 +36791,7 @@

    Arguments

    @@ -36848,7 +36848,7 @@

    Arguments

    @@ -36863,7 +36863,7 @@

    Arguments

    @@ -36932,7 +36932,7 @@

    Arguments

    @@ -36947,7 +36947,7 @@

    Arguments

    @@ -37004,7 +37004,7 @@

    Arguments

    @@ -37019,7 +37019,7 @@

    Arguments

    @@ -37088,7 +37088,7 @@

    Arguments

    @@ -37103,7 +37103,7 @@

    Arguments

    @@ -37167,7 +37167,7 @@

    Arguments

    @@ -37182,7 +37182,7 @@

    Arguments

    @@ -37239,7 +37239,7 @@

    Arguments

    @@ -37254,7 +37254,7 @@

    Arguments

    @@ -37323,7 +37323,7 @@

    Arguments

    @@ -37338,7 +37338,7 @@

    Arguments

    @@ -37395,7 +37395,7 @@

    Arguments

    @@ -37410,7 +37410,7 @@

    Arguments

    @@ -37479,7 +37479,7 @@

    Arguments

    @@ -37494,7 +37494,7 @@

    Arguments

    @@ -37551,7 +37551,7 @@

    Arguments

    @@ -37566,7 +37566,7 @@

    Arguments

    @@ -37635,7 +37635,7 @@

    Arguments

    @@ -37650,7 +37650,7 @@

    Arguments

    @@ -37707,7 +37707,7 @@

    Arguments

    @@ -37722,7 +37722,7 @@

    Arguments

    @@ -37791,7 +37791,7 @@

    Arguments

    @@ -37806,7 +37806,7 @@

    Arguments

    @@ -37863,7 +37863,7 @@

    Arguments

    @@ -37878,7 +37878,7 @@

    Arguments

    @@ -37947,7 +37947,7 @@

    Arguments

    @@ -37962,7 +37962,7 @@

    Arguments

    @@ -38019,7 +38019,7 @@

    Arguments

    @@ -38034,7 +38034,7 @@

    Arguments

    @@ -38103,7 +38103,7 @@

    Arguments

    @@ -38118,7 +38118,7 @@

    Arguments

    @@ -38182,7 +38182,7 @@

    Arguments

    @@ -38197,7 +38197,7 @@

    Arguments

    @@ -38254,7 +38254,7 @@

    Arguments

    @@ -38269,7 +38269,7 @@

    Arguments

    @@ -38338,7 +38338,7 @@

    Arguments

    @@ -38353,7 +38353,7 @@

    Arguments

    @@ -38410,7 +38410,7 @@

    Arguments

    @@ -38425,7 +38425,7 @@

    Arguments

    @@ -38494,7 +38494,7 @@

    Arguments

    @@ -38509,7 +38509,7 @@

    Arguments

    @@ -38566,7 +38566,7 @@

    Arguments

    @@ -38581,7 +38581,7 @@

    Arguments

    @@ -38650,7 +38650,7 @@

    Arguments

    @@ -38665,7 +38665,7 @@

    Arguments

    @@ -38722,7 +38722,7 @@

    Arguments

    @@ -38737,7 +38737,7 @@

    Arguments

    @@ -38806,7 +38806,7 @@

    Arguments

    @@ -38821,7 +38821,7 @@

    Arguments

    @@ -38878,7 +38878,7 @@

    Arguments

    @@ -38893,7 +38893,7 @@

    Arguments

    @@ -38962,7 +38962,7 @@

    Arguments

    @@ -38977,7 +38977,7 @@

    Arguments

    @@ -39034,7 +39034,7 @@

    Arguments

    @@ -39049,7 +39049,7 @@

    Arguments

    @@ -39118,7 +39118,7 @@

    Arguments

    @@ -39133,7 +39133,7 @@

    Arguments

    @@ -39185,7 +39185,7 @@

    Components

    @@ -39269,7 +39269,7 @@

    Components

    @@ -39353,7 +39353,7 @@

    Components

    @@ -39437,7 +39437,7 @@

    Components

    @@ -39521,7 +39521,7 @@

    Components

    @@ -39605,7 +39605,7 @@

    Components

    @@ -39739,7 +39739,7 @@

    Components

    @@ -39756,7 +39756,7 @@

    Components

    @@ -39773,7 +39773,7 @@

    Components

    @@ -39790,7 +39790,7 @@

    Components

    @@ -39907,7 +39907,7 @@

    Components

    @@ -39973,7 +39973,7 @@

    Components

    @@ -40056,7 +40056,7 @@

    Components

    @@ -40188,7 +40188,7 @@

    Arguments

    @@ -40353,7 +40353,7 @@

    Arguments

    @@ -40518,7 +40518,7 @@

    Arguments

    @@ -40848,7 +40848,7 @@

    Arguments

    @@ -41218,7 +41218,7 @@

    Arguments

    @@ -41263,7 +41263,7 @@

    Arguments

    @@ -41368,7 +41368,7 @@

    Arguments

    @@ -41413,7 +41413,7 @@

    Arguments

    @@ -41518,7 +41518,7 @@

    Arguments

    @@ -41563,7 +41563,7 @@

    Arguments

    @@ -41668,7 +41668,7 @@

    Arguments

    @@ -41713,7 +41713,7 @@

    Arguments

    @@ -41818,7 +41818,7 @@

    Arguments

    @@ -41863,7 +41863,7 @@

    Arguments

    @@ -41968,7 +41968,7 @@

    Arguments

    @@ -42013,7 +42013,7 @@

    Arguments

    @@ -42093,7 +42093,7 @@

    Arguments

    @@ -42108,7 +42108,7 @@

    Arguments

    @@ -42148,7 +42148,7 @@

    Arguments

    @@ -42163,7 +42163,7 @@

    Arguments

    @@ -42203,7 +42203,7 @@

    Arguments

    @@ -42218,7 +42218,7 @@

    Arguments

    @@ -42273,7 +42273,7 @@

    Arguments

    @@ -42313,7 +42313,7 @@

    Arguments

    @@ -42328,7 +42328,7 @@

    Arguments

    @@ -42368,7 +42368,7 @@

    Arguments

    @@ -42409,7 +42409,7 @@

    Arguments

    @@ -42668,7 +42668,7 @@

    Arguments

    @@ -42775,7 +42775,7 @@

    Arguments

    @@ -42830,7 +42830,7 @@

    Arguments

    @@ -42870,7 +42870,7 @@

    Arguments

    @@ -42885,7 +42885,7 @@

    Arguments

    @@ -43081,7 +43081,7 @@

    Arguments

    @@ -43141,7 +43141,7 @@

    Arguments

    @@ -43226,7 +43226,7 @@

    Arguments

    @@ -43281,7 +43281,7 @@

    Arguments

    @@ -43381,7 +43381,7 @@

    Arguments

    @@ -43421,7 +43421,7 @@

    Arguments

    @@ -43491,7 +43491,7 @@

    Arguments

    @@ -43711,7 +43711,7 @@

    Arguments

    @@ -43726,7 +43726,7 @@

    Arguments

    @@ -43781,7 +43781,7 @@

    Arguments

    @@ -43956,7 +43956,7 @@

    Arguments

    @@ -44152,7 +44152,7 @@

    Arguments

    @@ -44197,7 +44197,7 @@

    Arguments

    @@ -44239,7 +44239,7 @@

    Arguments

    @@ -44387,7 +44387,7 @@

    Arguments

    @@ -44404,7 +44404,7 @@

    Arguments

    @@ -44419,7 +44419,7 @@

    Arguments

    @@ -44459,7 +44459,7 @@

    Arguments

    @@ -44474,7 +44474,7 @@

    Arguments

    @@ -44489,7 +44489,7 @@

    Arguments

    @@ -44529,7 +44529,7 @@

    Arguments

    @@ -44544,7 +44544,7 @@

    Arguments

    @@ -44559,7 +44559,7 @@

    Arguments

    @@ -44599,7 +44599,7 @@

    Arguments

    @@ -44614,7 +44614,7 @@

    Arguments

    @@ -44629,7 +44629,7 @@

    Arguments

    @@ -44644,7 +44644,7 @@

    Arguments

    @@ -44659,7 +44659,7 @@

    Arguments

    @@ -44699,7 +44699,7 @@

    Arguments

    @@ -44714,7 +44714,7 @@

    Arguments

    @@ -44729,7 +44729,7 @@

    Arguments

    @@ -44744,7 +44744,7 @@

    Arguments

    @@ -44759,7 +44759,7 @@

    Arguments

    @@ -44799,7 +44799,7 @@

    Arguments

    @@ -44814,7 +44814,7 @@

    Arguments

    @@ -44829,7 +44829,7 @@

    Arguments

    @@ -44869,7 +44869,7 @@

    Arguments

    @@ -44884,7 +44884,7 @@

    Arguments

    @@ -44899,7 +44899,7 @@

    Arguments

    @@ -44939,7 +44939,7 @@

    Arguments

    @@ -44954,7 +44954,7 @@

    Arguments

    @@ -44994,7 +44994,7 @@

    Arguments

    @@ -45009,7 +45009,7 @@

    Arguments

    @@ -45049,7 +45049,7 @@

    Arguments

    @@ -45064,7 +45064,7 @@

    Arguments

    @@ -45104,7 +45104,7 @@

    Arguments

    @@ -45119,7 +45119,7 @@

    Arguments

    @@ -45159,7 +45159,7 @@

    Arguments

    @@ -45174,7 +45174,7 @@

    Arguments

    @@ -45189,7 +45189,7 @@

    Arguments

    @@ -45244,7 +45244,7 @@

    Arguments

    @@ -45299,7 +45299,7 @@

    Arguments

    @@ -45369,7 +45369,7 @@

    Arguments

    @@ -45399,7 +45399,7 @@

    Arguments

    @@ -45440,7 +45440,7 @@

    Arguments

    @@ -45455,7 +45455,7 @@

    Arguments

    @@ -45605,7 +45605,7 @@

    Arguments

    @@ -45660,7 +45660,7 @@

    Arguments

    @@ -45675,7 +45675,7 @@

    Arguments

    @@ -45730,7 +45730,7 @@

    Arguments

    @@ -45745,7 +45745,7 @@

    Arguments

    @@ -45800,7 +45800,7 @@

    Arguments

    @@ -45815,7 +45815,7 @@

    Arguments

    @@ -45950,7 +45950,7 @@

    Arguments

    @@ -45965,7 +45965,7 @@

    Arguments

    @@ -45980,7 +45980,7 @@

    Arguments

    @@ -45995,7 +45995,7 @@

    Arguments

    @@ -46010,7 +46010,7 @@

    Arguments

    @@ -46050,7 +46050,7 @@

    Arguments

    @@ -46065,7 +46065,7 @@

    Arguments

    @@ -46080,7 +46080,7 @@

    Arguments

    @@ -46095,7 +46095,7 @@

    Arguments

    @@ -46110,7 +46110,7 @@

    Arguments

    @@ -46150,7 +46150,7 @@

    Arguments

    @@ -46190,7 +46190,7 @@

    Arguments

    @@ -46230,7 +46230,7 @@

    Arguments

    @@ -46270,7 +46270,7 @@

    Arguments

    @@ -46310,7 +46310,7 @@

    Arguments

    @@ -46325,7 +46325,7 @@

    Arguments

    @@ -46341,7 +46341,7 @@

    Arguments

    @@ -46357,7 +46357,7 @@

    Arguments

    @@ -46372,7 +46372,7 @@

    Arguments

    @@ -46388,7 +46388,7 @@

    Arguments

    @@ -46404,7 +46404,7 @@

    Arguments

    @@ -46444,7 +46444,7 @@

    Arguments

    @@ -46459,7 +46459,7 @@

    Arguments

    @@ -46489,7 +46489,7 @@

    Arguments

    @@ -46529,7 +46529,7 @@

    Arguments

    @@ -46544,7 +46544,7 @@

    Arguments

    @@ -46574,7 +46574,7 @@

    Arguments

    @@ -46614,7 +46614,7 @@

    Arguments

    @@ -46629,7 +46629,7 @@

    Arguments

    @@ -46659,7 +46659,7 @@

    Arguments

    @@ -46699,7 +46699,7 @@

    Arguments

    @@ -46714,7 +46714,7 @@

    Arguments

    @@ -46730,7 +46730,7 @@

    Arguments

    @@ -46746,7 +46746,7 @@

    Arguments

    @@ -46786,7 +46786,7 @@

    Arguments

    @@ -46801,7 +46801,7 @@

    Arguments

    @@ -46816,7 +46816,7 @@

    Arguments

    @@ -46831,7 +46831,7 @@

    Arguments

    @@ -46871,7 +46871,7 @@

    Arguments

    @@ -46886,7 +46886,7 @@

    Arguments

    @@ -46902,7 +46902,7 @@

    Arguments

    @@ -46918,7 +46918,7 @@

    Arguments

    @@ -46958,7 +46958,7 @@

    Arguments

    @@ -46973,7 +46973,7 @@

    Arguments

    @@ -46988,7 +46988,7 @@

    Arguments

    @@ -47003,7 +47003,7 @@

    Arguments

    @@ -47043,7 +47043,7 @@

    Arguments

    @@ -47058,7 +47058,7 @@

    Arguments

    @@ -47073,7 +47073,7 @@

    Arguments

    @@ -47113,7 +47113,7 @@

    Arguments

    @@ -47128,7 +47128,7 @@

    Arguments

    @@ -47143,7 +47143,7 @@

    Arguments

    @@ -47158,7 +47158,7 @@

    Arguments

    @@ -47198,7 +47198,7 @@

    Arguments

    @@ -47213,7 +47213,7 @@

    Arguments

    @@ -47228,7 +47228,7 @@

    Arguments

    @@ -47268,7 +47268,7 @@

    Arguments

    @@ -47283,7 +47283,7 @@

    Arguments

    @@ -47298,7 +47298,7 @@

    Arguments

    @@ -47313,7 +47313,7 @@

    Arguments

    @@ -47353,7 +47353,7 @@

    Arguments

    @@ -47368,7 +47368,7 @@

    Arguments

    @@ -47383,7 +47383,7 @@

    Arguments

    @@ -47423,7 +47423,7 @@

    Arguments

    @@ -47438,7 +47438,7 @@

    Arguments

    @@ -47453,7 +47453,7 @@

    Arguments

    @@ -47493,7 +47493,7 @@

    Arguments

    @@ -47508,7 +47508,7 @@

    Arguments

    @@ -47548,7 +47548,7 @@

    Arguments

    @@ -47563,7 +47563,7 @@

    Arguments

    @@ -47603,7 +47603,7 @@

    Arguments

    @@ -47618,7 +47618,7 @@

    Arguments

    @@ -47633,7 +47633,7 @@

    Arguments

    @@ -47673,7 +47673,7 @@

    Arguments

    @@ -47688,7 +47688,7 @@

    Arguments

    @@ -47728,7 +47728,7 @@

    Arguments

    @@ -47743,7 +47743,7 @@

    Arguments

    @@ -47783,7 +47783,7 @@

    Arguments

    @@ -47798,7 +47798,7 @@

    Arguments

    @@ -47839,7 +47839,7 @@

    Arguments

    @@ -47854,7 +47854,7 @@

    Arguments

    @@ -47869,7 +47869,7 @@

    Arguments

    @@ -47910,7 +47910,7 @@

    Arguments

    @@ -47925,7 +47925,7 @@

    Arguments

    @@ -47940,7 +47940,7 @@

    Arguments

    @@ -47980,7 +47980,7 @@

    Arguments

    @@ -47995,7 +47995,7 @@

    Arguments

    @@ -48010,7 +48010,7 @@

    Arguments

    @@ -48050,7 +48050,7 @@

    Arguments

    @@ -48065,7 +48065,7 @@

    Arguments

    @@ -48106,7 +48106,7 @@

    Arguments

    @@ -48121,7 +48121,7 @@

    Arguments

    @@ -48161,7 +48161,7 @@

    Arguments

    @@ -48176,7 +48176,7 @@

    Arguments

    @@ -48217,7 +48217,7 @@

    Arguments

    @@ -48232,7 +48232,7 @@

    Arguments

    @@ -48273,7 +48273,7 @@

    Arguments

    @@ -48288,7 +48288,7 @@

    Arguments

    @@ -48343,7 +48343,7 @@

    Arguments

    @@ -48358,7 +48358,7 @@

    Arguments

    @@ -48373,7 +48373,7 @@

    Arguments

    @@ -48388,7 +48388,7 @@

    Arguments

    @@ -48443,7 +48443,7 @@

    Arguments

    @@ -48458,7 +48458,7 @@

    Arguments

    @@ -48473,7 +48473,7 @@

    Arguments

    @@ -48488,7 +48488,7 @@

    Arguments

    @@ -48558,7 +48558,7 @@

    Arguments

    @@ -48573,7 +48573,7 @@

    Arguments

    @@ -48588,7 +48588,7 @@

    Arguments

    @@ -48603,7 +48603,7 @@

    Arguments

    @@ -48618,7 +48618,7 @@

    Arguments

    @@ -48633,7 +48633,7 @@

    Arguments

    @@ -48673,7 +48673,7 @@

    Arguments

    @@ -48703,7 +48703,7 @@

    Arguments

    @@ -48718,7 +48718,7 @@

    Arguments

    @@ -48758,7 +48758,7 @@

    Arguments

    @@ -48788,7 +48788,7 @@

    Arguments

    @@ -48803,7 +48803,7 @@

    Arguments

    @@ -48843,7 +48843,7 @@

    Arguments

    @@ -48873,7 +48873,7 @@

    Arguments

    @@ -48888,7 +48888,7 @@

    Arguments

    @@ -48974,7 +48974,7 @@

    Arguments

    @@ -48990,7 +48990,7 @@

    Arguments

    @@ -49005,7 +49005,7 @@

    Arguments

    @@ -49046,7 +49046,7 @@

    Arguments

    @@ -49061,7 +49061,7 @@

    Arguments

    @@ -49076,7 +49076,7 @@

    Arguments

    @@ -49117,7 +49117,7 @@

    Arguments

    @@ -49132,7 +49132,7 @@

    Arguments

    @@ -49147,7 +49147,7 @@

    Arguments

    @@ -49188,7 +49188,7 @@

    Arguments

    @@ -49203,7 +49203,7 @@

    Arguments

    @@ -49218,7 +49218,7 @@

    Arguments

    @@ -49233,7 +49233,7 @@

    Arguments

    @@ -49274,7 +49274,7 @@

    Arguments

    @@ -49289,7 +49289,7 @@

    Arguments

    @@ -49304,7 +49304,7 @@

    Arguments

    @@ -49345,7 +49345,7 @@

    Arguments

    @@ -49360,7 +49360,7 @@

    Arguments

    @@ -49375,7 +49375,7 @@

    Arguments

    @@ -49416,7 +49416,7 @@

    Arguments

    @@ -49431,7 +49431,7 @@

    Arguments

    @@ -49446,7 +49446,7 @@

    Arguments

    @@ -49487,7 +49487,7 @@

    Arguments

    @@ -49502,7 +49502,7 @@

    Arguments

    @@ -49517,7 +49517,7 @@

    Arguments

    @@ -49558,7 +49558,7 @@

    Arguments

    @@ -49573,7 +49573,7 @@

    Arguments

    @@ -49588,7 +49588,7 @@

    Arguments

    @@ -49603,7 +49603,7 @@

    Arguments

    @@ -49644,7 +49644,7 @@

    Arguments

    @@ -49659,7 +49659,7 @@

    Arguments

    @@ -49674,7 +49674,7 @@

    Arguments

    @@ -49689,7 +49689,7 @@

    Arguments

    @@ -49730,7 +49730,7 @@

    Arguments

    @@ -49745,7 +49745,7 @@

    Arguments

    @@ -49760,7 +49760,7 @@

    Arguments

    @@ -49775,7 +49775,7 @@

    Arguments

    @@ -49816,7 +49816,7 @@

    Arguments

    @@ -49831,7 +49831,7 @@

    Arguments

    @@ -49846,7 +49846,7 @@

    Arguments

    @@ -49861,7 +49861,7 @@

    Arguments

    @@ -49902,7 +49902,7 @@

    Arguments

    @@ -49917,7 +49917,7 @@

    Arguments

    @@ -49932,7 +49932,7 @@

    Arguments

    @@ -49947,7 +49947,7 @@

    Arguments

    @@ -49988,7 +49988,7 @@

    Arguments

    @@ -50003,7 +50003,7 @@

    Arguments

    @@ -50018,7 +50018,7 @@

    Arguments

    @@ -50033,7 +50033,7 @@

    Arguments

    @@ -50048,7 +50048,7 @@

    Arguments

    @@ -50091,7 +50091,7 @@

    Arguments

    @@ -50106,7 +50106,7 @@

    Arguments

    @@ -50121,7 +50121,7 @@

    Arguments

    @@ -50136,7 +50136,7 @@

    Arguments

    @@ -50151,7 +50151,7 @@

    Arguments

    @@ -50168,7 +50168,7 @@

    Arguments

    @@ -50209,7 +50209,7 @@

    Arguments

    @@ -50224,7 +50224,7 @@

    Arguments

    @@ -50239,7 +50239,7 @@

    Arguments

    @@ -50254,7 +50254,7 @@

    Arguments

    @@ -50269,7 +50269,7 @@

    Arguments

    @@ -50286,7 +50286,7 @@

    Arguments

    @@ -50326,7 +50326,7 @@

    Arguments

    @@ -50341,7 +50341,7 @@

    Arguments

    @@ -50356,7 +50356,7 @@

    Arguments

    @@ -50371,7 +50371,7 @@

    Arguments

    @@ -50386,7 +50386,7 @@

    Arguments

    @@ -50426,7 +50426,7 @@

    Arguments

    @@ -50441,7 +50441,7 @@

    Arguments

    @@ -50456,7 +50456,7 @@

    Arguments

    @@ -50471,7 +50471,7 @@

    Arguments

    @@ -50486,7 +50486,7 @@

    Arguments

    @@ -50501,7 +50501,7 @@

    Arguments

    @@ -50517,7 +50517,7 @@

    Arguments

    @@ -50533,7 +50533,7 @@

    Arguments

    @@ -50573,7 +50573,7 @@

    Arguments

    @@ -50588,7 +50588,7 @@

    Arguments

    @@ -50603,7 +50603,7 @@

    Arguments

    @@ -50618,7 +50618,7 @@

    Arguments

    @@ -50633,7 +50633,7 @@

    Arguments

    @@ -50648,7 +50648,7 @@

    Arguments

    @@ -50664,7 +50664,7 @@

    Arguments

    @@ -50680,7 +50680,7 @@

    Arguments

    @@ -50720,7 +50720,7 @@

    Arguments

    @@ -50735,7 +50735,7 @@

    Arguments

    @@ -50750,7 +50750,7 @@

    Arguments

    @@ -50765,7 +50765,7 @@

    Arguments

    @@ -50780,7 +50780,7 @@

    Arguments

    @@ -50820,7 +50820,7 @@

    Arguments

    @@ -50835,7 +50835,7 @@

    Arguments

    @@ -50850,7 +50850,7 @@

    Arguments

    @@ -50865,7 +50865,7 @@

    Arguments

    @@ -50880,7 +50880,7 @@

    Arguments

    @@ -50920,7 +50920,7 @@

    Arguments

    @@ -50935,7 +50935,7 @@

    Arguments

    @@ -50950,7 +50950,7 @@

    Arguments

    @@ -50965,7 +50965,7 @@

    Arguments

    @@ -50980,7 +50980,7 @@

    Arguments

    @@ -51020,7 +51020,7 @@

    Arguments

    @@ -51035,7 +51035,7 @@

    Arguments

    @@ -51050,7 +51050,7 @@

    Arguments

    @@ -51065,7 +51065,7 @@

    Arguments

    @@ -51080,7 +51080,7 @@

    Arguments

    @@ -51120,7 +51120,7 @@

    Arguments

    @@ -51135,7 +51135,7 @@

    Arguments

    @@ -51150,7 +51150,7 @@

    Arguments

    @@ -51190,7 +51190,7 @@

    Arguments

    @@ -51205,7 +51205,7 @@

    Arguments

    @@ -51220,7 +51220,7 @@

    Arguments

    @@ -51235,7 +51235,7 @@

    Arguments

    @@ -51250,7 +51250,7 @@

    Arguments

    @@ -51265,7 +51265,7 @@

    Arguments

    @@ -51280,7 +51280,7 @@

    Arguments

    @@ -51295,7 +51295,7 @@

    Arguments

    @@ -51310,7 +51310,7 @@

    Arguments

    @@ -51350,7 +51350,7 @@

    Arguments

    @@ -51365,7 +51365,7 @@

    Arguments

    @@ -51380,7 +51380,7 @@

    Arguments

    @@ -51420,7 +51420,7 @@

    Arguments

    @@ -51435,7 +51435,7 @@

    Arguments

    @@ -51491,7 +51491,7 @@

    Arguments

    @@ -51506,7 +51506,7 @@

    Arguments

    @@ -51576,7 +51576,7 @@

    Arguments

    @@ -51591,7 +51591,7 @@

    Arguments

    @@ -51647,7 +51647,7 @@

    Arguments

    @@ -51662,7 +51662,7 @@

    Arguments

    @@ -51732,7 +51732,7 @@

    Arguments

    @@ -51747,7 +51747,7 @@

    Arguments

    @@ -51803,7 +51803,7 @@

    Arguments

    @@ -51818,7 +51818,7 @@

    Arguments

    @@ -51888,7 +51888,7 @@

    Arguments

    @@ -51903,7 +51903,7 @@

    Arguments

    @@ -51943,7 +51943,7 @@

    Arguments

    @@ -51958,7 +51958,7 @@

    Arguments

    @@ -51974,7 +51974,7 @@

    Arguments

    @@ -51990,7 +51990,7 @@

    Arguments

    @@ -52005,7 +52005,7 @@

    Arguments

    @@ -52021,7 +52021,7 @@

    Arguments

    @@ -52037,7 +52037,7 @@

    Arguments

    @@ -52077,7 +52077,7 @@

    Arguments

    @@ -52092,7 +52092,7 @@

    Arguments

    @@ -52122,7 +52122,7 @@

    Arguments

    @@ -52162,7 +52162,7 @@

    Arguments

    @@ -52177,7 +52177,7 @@

    Arguments

    @@ -52207,7 +52207,7 @@

    Arguments

    @@ -52247,7 +52247,7 @@

    Arguments

    @@ -52262,7 +52262,7 @@

    Arguments

    @@ -52292,7 +52292,7 @@

    Arguments

    @@ -52332,7 +52332,7 @@

    Arguments

    @@ -52347,7 +52347,7 @@

    Arguments

    @@ -52363,7 +52363,7 @@

    Arguments

    @@ -52379,7 +52379,7 @@

    Arguments

    @@ -52419,7 +52419,7 @@

    Arguments

    @@ -52434,7 +52434,7 @@

    Arguments

    @@ -52449,7 +52449,7 @@

    Arguments

    @@ -52464,7 +52464,7 @@

    Arguments

    @@ -52504,7 +52504,7 @@

    Arguments

    @@ -52519,7 +52519,7 @@

    Arguments

    @@ -52535,7 +52535,7 @@

    Arguments

    @@ -52551,7 +52551,7 @@

    Arguments

    @@ -52591,7 +52591,7 @@

    Arguments

    @@ -52606,7 +52606,7 @@

    Arguments

    @@ -52621,7 +52621,7 @@

    Arguments

    @@ -52636,7 +52636,7 @@

    Arguments

    @@ -52676,7 +52676,7 @@

    Arguments

    @@ -52691,7 +52691,7 @@

    Arguments

    @@ -52706,7 +52706,7 @@

    Arguments

    @@ -52746,7 +52746,7 @@

    Arguments

    @@ -52761,7 +52761,7 @@

    Arguments

    @@ -52776,7 +52776,7 @@

    Arguments

    @@ -52791,7 +52791,7 @@

    Arguments

    @@ -52831,7 +52831,7 @@

    Arguments

    @@ -52846,7 +52846,7 @@

    Arguments

    @@ -52861,7 +52861,7 @@

    Arguments

    @@ -52901,7 +52901,7 @@

    Arguments

    @@ -52916,7 +52916,7 @@

    Arguments

    @@ -52931,7 +52931,7 @@

    Arguments

    @@ -52946,7 +52946,7 @@

    Arguments

    @@ -52986,7 +52986,7 @@

    Arguments

    @@ -53001,7 +53001,7 @@

    Arguments

    @@ -53016,7 +53016,7 @@

    Arguments

    @@ -53056,7 +53056,7 @@

    Arguments

    @@ -53071,7 +53071,7 @@

    Arguments

    @@ -53086,7 +53086,7 @@

    Arguments

    @@ -53126,7 +53126,7 @@

    Arguments

    @@ -53141,7 +53141,7 @@

    Arguments

    @@ -53181,7 +53181,7 @@

    Arguments

    @@ -53196,7 +53196,7 @@

    Arguments

    @@ -53236,7 +53236,7 @@

    Arguments

    @@ -53251,7 +53251,7 @@

    Arguments

    @@ -53266,7 +53266,7 @@

    Arguments

    @@ -53306,7 +53306,7 @@

    Arguments

    @@ -53321,7 +53321,7 @@

    Arguments

    @@ -53361,7 +53361,7 @@

    Arguments

    @@ -53376,7 +53376,7 @@

    Arguments

    @@ -53416,7 +53416,7 @@

    Arguments

    @@ -53431,7 +53431,7 @@

    Arguments

    @@ -53472,7 +53472,7 @@

    Arguments

    @@ -53487,7 +53487,7 @@

    Arguments

    @@ -53502,7 +53502,7 @@

    Arguments

    @@ -53543,7 +53543,7 @@

    Arguments

    @@ -53558,7 +53558,7 @@

    Arguments

    @@ -53573,7 +53573,7 @@

    Arguments

    @@ -53613,7 +53613,7 @@

    Arguments

    @@ -53628,7 +53628,7 @@

    Arguments

    @@ -53643,7 +53643,7 @@

    Arguments

    @@ -53683,7 +53683,7 @@

    Arguments

    @@ -53698,7 +53698,7 @@

    Arguments

    @@ -53739,7 +53739,7 @@

    Arguments

    @@ -53754,7 +53754,7 @@

    Arguments

    @@ -53794,7 +53794,7 @@

    Arguments

    @@ -53809,7 +53809,7 @@

    Arguments

    @@ -53850,7 +53850,7 @@

    Arguments

    @@ -53865,7 +53865,7 @@

    Arguments

    @@ -53906,7 +53906,7 @@

    Arguments

    @@ -53921,7 +53921,7 @@

    Arguments

    @@ -53976,7 +53976,7 @@

    Arguments

    @@ -53991,7 +53991,7 @@

    Arguments

    @@ -54006,7 +54006,7 @@

    Arguments

    @@ -54021,7 +54021,7 @@

    Arguments

    @@ -54076,7 +54076,7 @@

    Arguments

    @@ -54091,7 +54091,7 @@

    Arguments

    @@ -54106,7 +54106,7 @@

    Arguments

    @@ -54121,7 +54121,7 @@

    Arguments

    @@ -54191,7 +54191,7 @@

    Arguments

    @@ -54206,7 +54206,7 @@

    Arguments

    @@ -54221,7 +54221,7 @@

    Arguments

    @@ -54236,7 +54236,7 @@

    Arguments

    @@ -54251,7 +54251,7 @@

    Arguments

    @@ -54266,7 +54266,7 @@

    Arguments

    @@ -54306,7 +54306,7 @@

    Arguments

    @@ -54336,7 +54336,7 @@

    Arguments

    @@ -54351,7 +54351,7 @@

    Arguments

    @@ -54391,7 +54391,7 @@

    Arguments

    @@ -54421,7 +54421,7 @@

    Arguments

    @@ -54436,7 +54436,7 @@

    Arguments

    @@ -54476,7 +54476,7 @@

    Arguments

    @@ -54506,7 +54506,7 @@

    Arguments

    @@ -54521,7 +54521,7 @@

    Arguments

    @@ -54607,7 +54607,7 @@

    Arguments

    @@ -54623,7 +54623,7 @@

    Arguments

    @@ -54638,7 +54638,7 @@

    Arguments

    @@ -54679,7 +54679,7 @@

    Arguments

    @@ -54694,7 +54694,7 @@

    Arguments

    @@ -54709,7 +54709,7 @@

    Arguments

    @@ -54750,7 +54750,7 @@

    Arguments

    @@ -54765,7 +54765,7 @@

    Arguments

    @@ -54780,7 +54780,7 @@

    Arguments

    @@ -54821,7 +54821,7 @@

    Arguments

    @@ -54836,7 +54836,7 @@

    Arguments

    @@ -54851,7 +54851,7 @@

    Arguments

    @@ -54866,7 +54866,7 @@

    Arguments

    @@ -54907,7 +54907,7 @@

    Arguments

    @@ -54922,7 +54922,7 @@

    Arguments

    @@ -54937,7 +54937,7 @@

    Arguments

    @@ -54978,7 +54978,7 @@

    Arguments

    @@ -54993,7 +54993,7 @@

    Arguments

    @@ -55008,7 +55008,7 @@

    Arguments

    @@ -55049,7 +55049,7 @@

    Arguments

    @@ -55064,7 +55064,7 @@

    Arguments

    @@ -55079,7 +55079,7 @@

    Arguments

    @@ -55120,7 +55120,7 @@

    Arguments

    @@ -55135,7 +55135,7 @@

    Arguments

    @@ -55150,7 +55150,7 @@

    Arguments

    @@ -55191,7 +55191,7 @@

    Arguments

    @@ -55206,7 +55206,7 @@

    Arguments

    @@ -55221,7 +55221,7 @@

    Arguments

    @@ -55236,7 +55236,7 @@

    Arguments

    @@ -55277,7 +55277,7 @@

    Arguments

    @@ -55292,7 +55292,7 @@

    Arguments

    @@ -55307,7 +55307,7 @@

    Arguments

    @@ -55322,7 +55322,7 @@

    Arguments

    @@ -55363,7 +55363,7 @@

    Arguments

    @@ -55378,7 +55378,7 @@

    Arguments

    @@ -55393,7 +55393,7 @@

    Arguments

    @@ -55408,7 +55408,7 @@

    Arguments

    @@ -55449,7 +55449,7 @@

    Arguments

    @@ -55464,7 +55464,7 @@

    Arguments

    @@ -55479,7 +55479,7 @@

    Arguments

    @@ -55494,7 +55494,7 @@

    Arguments

    @@ -55535,7 +55535,7 @@

    Arguments

    @@ -55550,7 +55550,7 @@

    Arguments

    @@ -55565,7 +55565,7 @@

    Arguments

    @@ -55580,7 +55580,7 @@

    Arguments

    @@ -55621,7 +55621,7 @@

    Arguments

    @@ -55636,7 +55636,7 @@

    Arguments

    @@ -55651,7 +55651,7 @@

    Arguments

    @@ -55666,7 +55666,7 @@

    Arguments

    @@ -55681,7 +55681,7 @@

    Arguments

    @@ -55724,7 +55724,7 @@

    Arguments

    @@ -55739,7 +55739,7 @@

    Arguments

    @@ -55754,7 +55754,7 @@

    Arguments

    @@ -55769,7 +55769,7 @@

    Arguments

    @@ -55784,7 +55784,7 @@

    Arguments

    @@ -55801,7 +55801,7 @@

    Arguments

    @@ -55842,7 +55842,7 @@

    Arguments

    @@ -55857,7 +55857,7 @@

    Arguments

    @@ -55872,7 +55872,7 @@

    Arguments

    @@ -55887,7 +55887,7 @@

    Arguments

    @@ -55902,7 +55902,7 @@

    Arguments

    @@ -55919,7 +55919,7 @@

    Arguments

    @@ -55959,7 +55959,7 @@

    Arguments

    @@ -55974,7 +55974,7 @@

    Arguments

    @@ -55989,7 +55989,7 @@

    Arguments

    @@ -56004,7 +56004,7 @@

    Arguments

    @@ -56019,7 +56019,7 @@

    Arguments

    @@ -56059,7 +56059,7 @@

    Arguments

    @@ -56074,7 +56074,7 @@

    Arguments

    @@ -56089,7 +56089,7 @@

    Arguments

    @@ -56104,7 +56104,7 @@

    Arguments

    @@ -56119,7 +56119,7 @@

    Arguments

    @@ -56134,7 +56134,7 @@

    Arguments

    @@ -56150,7 +56150,7 @@

    Arguments

    @@ -56166,7 +56166,7 @@

    Arguments

    @@ -56206,7 +56206,7 @@

    Arguments

    @@ -56221,7 +56221,7 @@

    Arguments

    @@ -56236,7 +56236,7 @@

    Arguments

    @@ -56251,7 +56251,7 @@

    Arguments

    @@ -56266,7 +56266,7 @@

    Arguments

    @@ -56281,7 +56281,7 @@

    Arguments

    @@ -56297,7 +56297,7 @@

    Arguments

    @@ -56313,7 +56313,7 @@

    Arguments

    @@ -56353,7 +56353,7 @@

    Arguments

    @@ -56368,7 +56368,7 @@

    Arguments

    @@ -56383,7 +56383,7 @@

    Arguments

    @@ -56398,7 +56398,7 @@

    Arguments

    @@ -56413,7 +56413,7 @@

    Arguments

    @@ -56453,7 +56453,7 @@

    Arguments

    @@ -56468,7 +56468,7 @@

    Arguments

    @@ -56483,7 +56483,7 @@

    Arguments

    @@ -56498,7 +56498,7 @@

    Arguments

    @@ -56513,7 +56513,7 @@

    Arguments

    @@ -56553,7 +56553,7 @@

    Arguments

    @@ -56568,7 +56568,7 @@

    Arguments

    @@ -56583,7 +56583,7 @@

    Arguments

    @@ -56598,7 +56598,7 @@

    Arguments

    @@ -56613,7 +56613,7 @@

    Arguments

    @@ -56653,7 +56653,7 @@

    Arguments

    @@ -56668,7 +56668,7 @@

    Arguments

    @@ -56683,7 +56683,7 @@

    Arguments

    @@ -56698,7 +56698,7 @@

    Arguments

    @@ -56713,7 +56713,7 @@

    Arguments

    @@ -56753,7 +56753,7 @@

    Arguments

    @@ -56768,7 +56768,7 @@

    Arguments

    @@ -56783,7 +56783,7 @@

    Arguments

    @@ -56823,7 +56823,7 @@

    Arguments

    @@ -56838,7 +56838,7 @@

    Arguments

    @@ -56853,7 +56853,7 @@

    Arguments

    @@ -56868,7 +56868,7 @@

    Arguments

    @@ -56883,7 +56883,7 @@

    Arguments

    @@ -56898,7 +56898,7 @@

    Arguments

    @@ -56913,7 +56913,7 @@

    Arguments

    @@ -56928,7 +56928,7 @@

    Arguments

    @@ -56943,7 +56943,7 @@

    Arguments

    @@ -56983,7 +56983,7 @@

    Arguments

    @@ -56998,7 +56998,7 @@

    Arguments

    @@ -57013,7 +57013,7 @@

    Arguments

    @@ -57053,7 +57053,7 @@

    Arguments

    @@ -57068,7 +57068,7 @@

    Arguments

    @@ -57124,7 +57124,7 @@

    Arguments

    @@ -57139,7 +57139,7 @@

    Arguments

    @@ -57209,7 +57209,7 @@

    Arguments

    @@ -57224,7 +57224,7 @@

    Arguments

    @@ -57280,7 +57280,7 @@

    Arguments

    @@ -57295,7 +57295,7 @@

    Arguments

    @@ -57365,7 +57365,7 @@

    Arguments

    @@ -57380,7 +57380,7 @@

    Arguments

    @@ -57436,7 +57436,7 @@

    Arguments

    @@ -57451,7 +57451,7 @@

    Arguments

    @@ -57521,7 +57521,7 @@

    Arguments

    @@ -57536,7 +57536,7 @@

    Arguments

    @@ -57576,7 +57576,7 @@

    Arguments

    @@ -57591,7 +57591,7 @@

    Arguments

    @@ -57607,7 +57607,7 @@

    Arguments

    @@ -57623,7 +57623,7 @@

    Arguments

    @@ -57638,7 +57638,7 @@

    Arguments

    @@ -57654,7 +57654,7 @@

    Arguments

    @@ -57670,7 +57670,7 @@

    Arguments

    @@ -57710,7 +57710,7 @@

    Arguments

    @@ -57725,7 +57725,7 @@

    Arguments

    @@ -57755,7 +57755,7 @@

    Arguments

    @@ -57795,7 +57795,7 @@

    Arguments

    @@ -57810,7 +57810,7 @@

    Arguments

    @@ -57840,7 +57840,7 @@

    Arguments

    @@ -57880,7 +57880,7 @@

    Arguments

    @@ -57895,7 +57895,7 @@

    Arguments

    @@ -57925,7 +57925,7 @@

    Arguments

    @@ -57965,7 +57965,7 @@

    Arguments

    @@ -57980,7 +57980,7 @@

    Arguments

    @@ -57996,7 +57996,7 @@

    Arguments

    @@ -58012,7 +58012,7 @@

    Arguments

    @@ -58052,7 +58052,7 @@

    Arguments

    @@ -58067,7 +58067,7 @@

    Arguments

    @@ -58082,7 +58082,7 @@

    Arguments

    @@ -58097,7 +58097,7 @@

    Arguments

    @@ -58137,7 +58137,7 @@

    Arguments

    @@ -58152,7 +58152,7 @@

    Arguments

    @@ -58168,7 +58168,7 @@

    Arguments

    @@ -58184,7 +58184,7 @@

    Arguments

    @@ -58224,7 +58224,7 @@

    Arguments

    @@ -58239,7 +58239,7 @@

    Arguments

    @@ -58254,7 +58254,7 @@

    Arguments

    @@ -58269,7 +58269,7 @@

    Arguments

    @@ -58309,7 +58309,7 @@

    Arguments

    @@ -58324,7 +58324,7 @@

    Arguments

    @@ -58339,7 +58339,7 @@

    Arguments

    @@ -58379,7 +58379,7 @@

    Arguments

    @@ -58394,7 +58394,7 @@

    Arguments

    @@ -58409,7 +58409,7 @@

    Arguments

    @@ -58424,7 +58424,7 @@

    Arguments

    @@ -58464,7 +58464,7 @@

    Arguments

    @@ -58479,7 +58479,7 @@

    Arguments

    @@ -58494,7 +58494,7 @@

    Arguments

    @@ -58534,7 +58534,7 @@

    Arguments

    @@ -58549,7 +58549,7 @@

    Arguments

    @@ -58564,7 +58564,7 @@

    Arguments

    @@ -58579,7 +58579,7 @@

    Arguments

    @@ -58619,7 +58619,7 @@

    Arguments

    @@ -58634,7 +58634,7 @@

    Arguments

    @@ -58649,7 +58649,7 @@

    Arguments

    @@ -58689,7 +58689,7 @@

    Arguments

    @@ -58704,7 +58704,7 @@

    Arguments

    @@ -58719,7 +58719,7 @@

    Arguments

    @@ -58759,7 +58759,7 @@

    Arguments

    @@ -58774,7 +58774,7 @@

    Arguments

    @@ -58814,7 +58814,7 @@

    Arguments

    @@ -58829,7 +58829,7 @@

    Arguments

    @@ -58869,7 +58869,7 @@

    Arguments

    @@ -58884,7 +58884,7 @@

    Arguments

    @@ -58899,7 +58899,7 @@

    Arguments

    @@ -58939,7 +58939,7 @@

    Arguments

    @@ -58954,7 +58954,7 @@

    Arguments

    @@ -58994,7 +58994,7 @@

    Arguments

    @@ -59009,7 +59009,7 @@

    Arguments

    @@ -59049,7 +59049,7 @@

    Arguments

    @@ -59064,7 +59064,7 @@

    Arguments

    @@ -59105,7 +59105,7 @@

    Arguments

    @@ -59120,7 +59120,7 @@

    Arguments

    @@ -59135,7 +59135,7 @@

    Arguments

    @@ -59176,7 +59176,7 @@

    Arguments

    @@ -59191,7 +59191,7 @@

    Arguments

    @@ -59206,7 +59206,7 @@

    Arguments

    @@ -59246,7 +59246,7 @@

    Arguments

    @@ -59261,7 +59261,7 @@

    Arguments

    @@ -59276,7 +59276,7 @@

    Arguments

    @@ -59316,7 +59316,7 @@

    Arguments

    @@ -59331,7 +59331,7 @@

    Arguments

    @@ -59372,7 +59372,7 @@

    Arguments

    @@ -59387,7 +59387,7 @@

    Arguments

    @@ -59427,7 +59427,7 @@

    Arguments

    @@ -59442,7 +59442,7 @@

    Arguments

    @@ -59483,7 +59483,7 @@

    Arguments

    @@ -59498,7 +59498,7 @@

    Arguments

    @@ -59539,7 +59539,7 @@

    Arguments

    @@ -59554,7 +59554,7 @@

    Arguments

    @@ -59609,7 +59609,7 @@

    Arguments

    @@ -59624,7 +59624,7 @@

    Arguments

    @@ -59639,7 +59639,7 @@

    Arguments

    @@ -59654,7 +59654,7 @@

    Arguments

    @@ -59709,7 +59709,7 @@

    Arguments

    @@ -59724,7 +59724,7 @@

    Arguments

    @@ -59739,7 +59739,7 @@

    Arguments

    @@ -59754,7 +59754,7 @@

    Arguments

    @@ -59824,7 +59824,7 @@

    Arguments

    @@ -59839,7 +59839,7 @@

    Arguments

    @@ -59854,7 +59854,7 @@

    Arguments

    @@ -59869,7 +59869,7 @@

    Arguments

    @@ -59884,7 +59884,7 @@

    Arguments

    @@ -59899,7 +59899,7 @@

    Arguments

    @@ -59939,7 +59939,7 @@

    Arguments

    @@ -59969,7 +59969,7 @@

    Arguments

    @@ -59984,7 +59984,7 @@

    Arguments

    @@ -60024,7 +60024,7 @@

    Arguments

    @@ -60054,7 +60054,7 @@

    Arguments

    @@ -60069,7 +60069,7 @@

    Arguments

    @@ -60109,7 +60109,7 @@

    Arguments

    @@ -60139,7 +60139,7 @@

    Arguments

    @@ -60154,7 +60154,7 @@

    Arguments

    @@ -60240,7 +60240,7 @@

    Arguments

    @@ -60256,7 +60256,7 @@

    Arguments

    @@ -60271,7 +60271,7 @@

    Arguments

    @@ -60312,7 +60312,7 @@

    Arguments

    @@ -60327,7 +60327,7 @@

    Arguments

    @@ -60342,7 +60342,7 @@

    Arguments

    @@ -60383,7 +60383,7 @@

    Arguments

    @@ -60398,7 +60398,7 @@

    Arguments

    @@ -60413,7 +60413,7 @@

    Arguments

    @@ -60454,7 +60454,7 @@

    Arguments

    @@ -60469,7 +60469,7 @@

    Arguments

    @@ -60484,7 +60484,7 @@

    Arguments

    @@ -60499,7 +60499,7 @@

    Arguments

    @@ -60540,7 +60540,7 @@

    Arguments

    @@ -60555,7 +60555,7 @@

    Arguments

    @@ -60570,7 +60570,7 @@

    Arguments

    @@ -60611,7 +60611,7 @@

    Arguments

    @@ -60626,7 +60626,7 @@

    Arguments

    @@ -60641,7 +60641,7 @@

    Arguments

    @@ -60682,7 +60682,7 @@

    Arguments

    @@ -60697,7 +60697,7 @@

    Arguments

    @@ -60712,7 +60712,7 @@

    Arguments

    @@ -60753,7 +60753,7 @@

    Arguments

    @@ -60768,7 +60768,7 @@

    Arguments

    @@ -60783,7 +60783,7 @@

    Arguments

    @@ -60824,7 +60824,7 @@

    Arguments

    @@ -60839,7 +60839,7 @@

    Arguments

    @@ -60854,7 +60854,7 @@

    Arguments

    @@ -60869,7 +60869,7 @@

    Arguments

    @@ -60910,7 +60910,7 @@

    Arguments

    @@ -60925,7 +60925,7 @@

    Arguments

    @@ -60940,7 +60940,7 @@

    Arguments

    @@ -60955,7 +60955,7 @@

    Arguments

    @@ -60996,7 +60996,7 @@

    Arguments

    @@ -61011,7 +61011,7 @@

    Arguments

    @@ -61026,7 +61026,7 @@

    Arguments

    @@ -61041,7 +61041,7 @@

    Arguments

    @@ -61082,7 +61082,7 @@

    Arguments

    @@ -61097,7 +61097,7 @@

    Arguments

    @@ -61112,7 +61112,7 @@

    Arguments

    @@ -61127,7 +61127,7 @@

    Arguments

    @@ -61168,7 +61168,7 @@

    Arguments

    @@ -61183,7 +61183,7 @@

    Arguments

    @@ -61198,7 +61198,7 @@

    Arguments

    @@ -61213,7 +61213,7 @@

    Arguments

    @@ -61254,7 +61254,7 @@

    Arguments

    @@ -61269,7 +61269,7 @@

    Arguments

    @@ -61284,7 +61284,7 @@

    Arguments

    @@ -61299,7 +61299,7 @@

    Arguments

    @@ -61314,7 +61314,7 @@

    Arguments

    @@ -61357,7 +61357,7 @@

    Arguments

    @@ -61372,7 +61372,7 @@

    Arguments

    @@ -61387,7 +61387,7 @@

    Arguments

    @@ -61402,7 +61402,7 @@

    Arguments

    @@ -61417,7 +61417,7 @@

    Arguments

    @@ -61434,7 +61434,7 @@

    Arguments

    @@ -61475,7 +61475,7 @@

    Arguments

    @@ -61490,7 +61490,7 @@

    Arguments

    @@ -61505,7 +61505,7 @@

    Arguments

    @@ -61520,7 +61520,7 @@

    Arguments

    @@ -61535,7 +61535,7 @@

    Arguments

    @@ -61552,7 +61552,7 @@

    Arguments

    @@ -61592,7 +61592,7 @@

    Arguments

    @@ -61607,7 +61607,7 @@

    Arguments

    @@ -61622,7 +61622,7 @@

    Arguments

    @@ -61637,7 +61637,7 @@

    Arguments

    @@ -61652,7 +61652,7 @@

    Arguments

    @@ -61692,7 +61692,7 @@

    Arguments

    @@ -61707,7 +61707,7 @@

    Arguments

    @@ -61722,7 +61722,7 @@

    Arguments

    @@ -61737,7 +61737,7 @@

    Arguments

    @@ -61752,7 +61752,7 @@

    Arguments

    @@ -61767,7 +61767,7 @@

    Arguments

    @@ -61783,7 +61783,7 @@

    Arguments

    @@ -61799,7 +61799,7 @@

    Arguments

    @@ -61839,7 +61839,7 @@

    Arguments

    @@ -61854,7 +61854,7 @@

    Arguments

    @@ -61869,7 +61869,7 @@

    Arguments

    @@ -61884,7 +61884,7 @@

    Arguments

    @@ -61899,7 +61899,7 @@

    Arguments

    @@ -61914,7 +61914,7 @@

    Arguments

    @@ -61930,7 +61930,7 @@

    Arguments

    @@ -61946,7 +61946,7 @@

    Arguments

    @@ -61986,7 +61986,7 @@

    Arguments

    @@ -62001,7 +62001,7 @@

    Arguments

    @@ -62016,7 +62016,7 @@

    Arguments

    @@ -62031,7 +62031,7 @@

    Arguments

    @@ -62046,7 +62046,7 @@

    Arguments

    @@ -62086,7 +62086,7 @@

    Arguments

    @@ -62101,7 +62101,7 @@

    Arguments

    @@ -62116,7 +62116,7 @@

    Arguments

    @@ -62131,7 +62131,7 @@

    Arguments

    @@ -62146,7 +62146,7 @@

    Arguments

    @@ -62186,7 +62186,7 @@

    Arguments

    @@ -62201,7 +62201,7 @@

    Arguments

    @@ -62216,7 +62216,7 @@

    Arguments

    @@ -62231,7 +62231,7 @@

    Arguments

    @@ -62246,7 +62246,7 @@

    Arguments

    @@ -62286,7 +62286,7 @@

    Arguments

    @@ -62301,7 +62301,7 @@

    Arguments

    @@ -62316,7 +62316,7 @@

    Arguments

    @@ -62331,7 +62331,7 @@

    Arguments

    @@ -62346,7 +62346,7 @@

    Arguments

    @@ -62386,7 +62386,7 @@

    Arguments

    @@ -62401,7 +62401,7 @@

    Arguments

    @@ -62416,7 +62416,7 @@

    Arguments

    @@ -62456,7 +62456,7 @@

    Arguments

    @@ -62471,7 +62471,7 @@

    Arguments

    @@ -62486,7 +62486,7 @@

    Arguments

    @@ -62501,7 +62501,7 @@

    Arguments

    @@ -62516,7 +62516,7 @@

    Arguments

    @@ -62531,7 +62531,7 @@

    Arguments

    @@ -62546,7 +62546,7 @@

    Arguments

    @@ -62561,7 +62561,7 @@

    Arguments

    @@ -62576,7 +62576,7 @@

    Arguments

    @@ -62616,7 +62616,7 @@

    Arguments

    @@ -62631,7 +62631,7 @@

    Arguments

    @@ -62646,7 +62646,7 @@

    Arguments

    @@ -62686,7 +62686,7 @@

    Arguments

    @@ -62701,7 +62701,7 @@

    Arguments

    @@ -62757,7 +62757,7 @@

    Arguments

    @@ -62772,7 +62772,7 @@

    Arguments

    @@ -62842,7 +62842,7 @@

    Arguments

    @@ -62857,7 +62857,7 @@

    Arguments

    @@ -62913,7 +62913,7 @@

    Arguments

    @@ -62928,7 +62928,7 @@

    Arguments

    @@ -62998,7 +62998,7 @@

    Arguments

    @@ -63013,7 +63013,7 @@

    Arguments

    @@ -63069,7 +63069,7 @@

    Arguments

    @@ -63084,7 +63084,7 @@

    Arguments

    @@ -63154,7 +63154,7 @@

    Arguments

    @@ -63169,7 +63169,7 @@

    Arguments

    @@ -63209,7 +63209,7 @@

    Arguments

    @@ -63224,7 +63224,7 @@

    Arguments

    @@ -63240,7 +63240,7 @@

    Arguments

    @@ -63256,7 +63256,7 @@

    Arguments

    @@ -63271,7 +63271,7 @@

    Arguments

    @@ -63287,7 +63287,7 @@

    Arguments

    @@ -63303,7 +63303,7 @@

    Arguments

    @@ -63343,7 +63343,7 @@

    Arguments

    @@ -63358,7 +63358,7 @@

    Arguments

    @@ -63388,7 +63388,7 @@

    Arguments

    @@ -63428,7 +63428,7 @@

    Arguments

    @@ -63443,7 +63443,7 @@

    Arguments

    @@ -63473,7 +63473,7 @@

    Arguments

    @@ -63513,7 +63513,7 @@

    Arguments

    @@ -63528,7 +63528,7 @@

    Arguments

    @@ -63558,7 +63558,7 @@

    Arguments

    @@ -63598,7 +63598,7 @@

    Arguments

    @@ -63613,7 +63613,7 @@

    Arguments

    @@ -63629,7 +63629,7 @@

    Arguments

    @@ -63645,7 +63645,7 @@

    Arguments

    @@ -63685,7 +63685,7 @@

    Arguments

    @@ -63700,7 +63700,7 @@

    Arguments

    @@ -63715,7 +63715,7 @@

    Arguments

    @@ -63730,7 +63730,7 @@

    Arguments

    @@ -63770,7 +63770,7 @@

    Arguments

    @@ -63785,7 +63785,7 @@

    Arguments

    @@ -63801,7 +63801,7 @@

    Arguments

    @@ -63817,7 +63817,7 @@

    Arguments

    @@ -63857,7 +63857,7 @@

    Arguments

    @@ -63872,7 +63872,7 @@

    Arguments

    @@ -63887,7 +63887,7 @@

    Arguments

    @@ -63902,7 +63902,7 @@

    Arguments

    @@ -63942,7 +63942,7 @@

    Arguments

    @@ -63957,7 +63957,7 @@

    Arguments

    @@ -63972,7 +63972,7 @@

    Arguments

    @@ -64012,7 +64012,7 @@

    Arguments

    @@ -64027,7 +64027,7 @@

    Arguments

    @@ -64042,7 +64042,7 @@

    Arguments

    @@ -64057,7 +64057,7 @@

    Arguments

    @@ -64097,7 +64097,7 @@

    Arguments

    @@ -64112,7 +64112,7 @@

    Arguments

    @@ -64127,7 +64127,7 @@

    Arguments

    @@ -64167,7 +64167,7 @@

    Arguments

    @@ -64182,7 +64182,7 @@

    Arguments

    @@ -64197,7 +64197,7 @@

    Arguments

    @@ -64212,7 +64212,7 @@

    Arguments

    @@ -64252,7 +64252,7 @@

    Arguments

    @@ -64267,7 +64267,7 @@

    Arguments

    @@ -64282,7 +64282,7 @@

    Arguments

    @@ -64322,7 +64322,7 @@

    Arguments

    @@ -64337,7 +64337,7 @@

    Arguments

    @@ -64352,7 +64352,7 @@

    Arguments

    @@ -64392,7 +64392,7 @@

    Arguments

    @@ -64407,7 +64407,7 @@

    Arguments

    @@ -64447,7 +64447,7 @@

    Arguments

    @@ -64462,7 +64462,7 @@

    Arguments

    @@ -64502,7 +64502,7 @@

    Arguments

    @@ -64517,7 +64517,7 @@

    Arguments

    @@ -64532,7 +64532,7 @@

    Arguments

    @@ -64572,7 +64572,7 @@

    Arguments

    @@ -64587,7 +64587,7 @@

    Arguments

    @@ -64627,7 +64627,7 @@

    Arguments

    @@ -64642,7 +64642,7 @@

    Arguments

    @@ -64682,7 +64682,7 @@

    Arguments

    @@ -64697,7 +64697,7 @@

    Arguments

    @@ -64738,7 +64738,7 @@

    Arguments

    @@ -64753,7 +64753,7 @@

    Arguments

    @@ -64768,7 +64768,7 @@

    Arguments

    @@ -64809,7 +64809,7 @@

    Arguments

    @@ -64824,7 +64824,7 @@

    Arguments

    @@ -64839,7 +64839,7 @@

    Arguments

    @@ -64879,7 +64879,7 @@

    Arguments

    @@ -64894,7 +64894,7 @@

    Arguments

    @@ -64909,7 +64909,7 @@

    Arguments

    @@ -64949,7 +64949,7 @@

    Arguments

    @@ -64964,7 +64964,7 @@

    Arguments

    @@ -65005,7 +65005,7 @@

    Arguments

    @@ -65020,7 +65020,7 @@

    Arguments

    @@ -65060,7 +65060,7 @@

    Arguments

    @@ -65075,7 +65075,7 @@

    Arguments

    @@ -65116,7 +65116,7 @@

    Arguments

    @@ -65131,7 +65131,7 @@

    Arguments

    @@ -65172,7 +65172,7 @@

    Arguments

    @@ -65187,7 +65187,7 @@

    Arguments

    @@ -65242,7 +65242,7 @@

    Arguments

    @@ -65257,7 +65257,7 @@

    Arguments

    @@ -65272,7 +65272,7 @@

    Arguments

    @@ -65287,7 +65287,7 @@

    Arguments

    @@ -65342,7 +65342,7 @@

    Arguments

    @@ -65357,7 +65357,7 @@

    Arguments

    @@ -65372,7 +65372,7 @@

    Arguments

    @@ -65387,7 +65387,7 @@

    Arguments

    @@ -65457,7 +65457,7 @@

    Arguments

    @@ -65472,7 +65472,7 @@

    Arguments

    @@ -65487,7 +65487,7 @@

    Arguments

    @@ -65502,7 +65502,7 @@

    Arguments

    @@ -65517,7 +65517,7 @@

    Arguments

    @@ -65532,7 +65532,7 @@

    Arguments

    @@ -65572,7 +65572,7 @@

    Arguments

    @@ -65602,7 +65602,7 @@

    Arguments

    @@ -65617,7 +65617,7 @@

    Arguments

    @@ -65657,7 +65657,7 @@

    Arguments

    @@ -65687,7 +65687,7 @@

    Arguments

    @@ -65702,7 +65702,7 @@

    Arguments

    @@ -65742,7 +65742,7 @@

    Arguments

    @@ -65772,7 +65772,7 @@

    Arguments

    @@ -65787,7 +65787,7 @@

    Arguments

    @@ -65873,7 +65873,7 @@

    Arguments

    @@ -65889,7 +65889,7 @@

    Arguments

    @@ -65904,7 +65904,7 @@

    Arguments

    @@ -65945,7 +65945,7 @@

    Arguments

    @@ -65960,7 +65960,7 @@

    Arguments

    @@ -65975,7 +65975,7 @@

    Arguments

    @@ -66016,7 +66016,7 @@

    Arguments

    @@ -66031,7 +66031,7 @@

    Arguments

    @@ -66046,7 +66046,7 @@

    Arguments

    @@ -66087,7 +66087,7 @@

    Arguments

    @@ -66102,7 +66102,7 @@

    Arguments

    @@ -66117,7 +66117,7 @@

    Arguments

    @@ -66132,7 +66132,7 @@

    Arguments

    @@ -66173,7 +66173,7 @@

    Arguments

    @@ -66188,7 +66188,7 @@

    Arguments

    @@ -66203,7 +66203,7 @@

    Arguments

    @@ -66244,7 +66244,7 @@

    Arguments

    @@ -66259,7 +66259,7 @@

    Arguments

    @@ -66274,7 +66274,7 @@

    Arguments

    @@ -66315,7 +66315,7 @@

    Arguments

    @@ -66330,7 +66330,7 @@

    Arguments

    @@ -66345,7 +66345,7 @@

    Arguments

    @@ -66386,7 +66386,7 @@

    Arguments

    @@ -66401,7 +66401,7 @@

    Arguments

    @@ -66416,7 +66416,7 @@

    Arguments

    @@ -66457,7 +66457,7 @@

    Arguments

    @@ -66472,7 +66472,7 @@

    Arguments

    @@ -66487,7 +66487,7 @@

    Arguments

    @@ -66502,7 +66502,7 @@

    Arguments

    @@ -66543,7 +66543,7 @@

    Arguments

    @@ -66558,7 +66558,7 @@

    Arguments

    @@ -66573,7 +66573,7 @@

    Arguments

    @@ -66588,7 +66588,7 @@

    Arguments

    @@ -66629,7 +66629,7 @@

    Arguments

    @@ -66644,7 +66644,7 @@

    Arguments

    @@ -66659,7 +66659,7 @@

    Arguments

    @@ -66674,7 +66674,7 @@

    Arguments

    @@ -66715,7 +66715,7 @@

    Arguments

    @@ -66730,7 +66730,7 @@

    Arguments

    @@ -66745,7 +66745,7 @@

    Arguments

    @@ -66760,7 +66760,7 @@

    Arguments

    @@ -66801,7 +66801,7 @@

    Arguments

    @@ -66816,7 +66816,7 @@

    Arguments

    @@ -66831,7 +66831,7 @@

    Arguments

    @@ -66846,7 +66846,7 @@

    Arguments

    @@ -66887,7 +66887,7 @@

    Arguments

    @@ -66902,7 +66902,7 @@

    Arguments

    @@ -66917,7 +66917,7 @@

    Arguments

    @@ -66932,7 +66932,7 @@

    Arguments

    @@ -66947,7 +66947,7 @@

    Arguments

    @@ -66990,7 +66990,7 @@

    Arguments

    @@ -67005,7 +67005,7 @@

    Arguments

    @@ -67020,7 +67020,7 @@

    Arguments

    @@ -67035,7 +67035,7 @@

    Arguments

    @@ -67050,7 +67050,7 @@

    Arguments

    @@ -67067,7 +67067,7 @@

    Arguments

    @@ -67108,7 +67108,7 @@

    Arguments

    @@ -67123,7 +67123,7 @@

    Arguments

    @@ -67138,7 +67138,7 @@

    Arguments

    @@ -67153,7 +67153,7 @@

    Arguments

    @@ -67168,7 +67168,7 @@

    Arguments

    @@ -67185,7 +67185,7 @@

    Arguments

    @@ -67225,7 +67225,7 @@

    Arguments

    @@ -67240,7 +67240,7 @@

    Arguments

    @@ -67255,7 +67255,7 @@

    Arguments

    @@ -67270,7 +67270,7 @@

    Arguments

    @@ -67285,7 +67285,7 @@

    Arguments

    @@ -67325,7 +67325,7 @@

    Arguments

    @@ -67340,7 +67340,7 @@

    Arguments

    @@ -67355,7 +67355,7 @@

    Arguments

    @@ -67370,7 +67370,7 @@

    Arguments

    @@ -67385,7 +67385,7 @@

    Arguments

    @@ -67400,7 +67400,7 @@

    Arguments

    @@ -67416,7 +67416,7 @@

    Arguments

    @@ -67432,7 +67432,7 @@

    Arguments

    @@ -67472,7 +67472,7 @@

    Arguments

    @@ -67487,7 +67487,7 @@

    Arguments

    @@ -67502,7 +67502,7 @@

    Arguments

    @@ -67517,7 +67517,7 @@

    Arguments

    @@ -67532,7 +67532,7 @@

    Arguments

    @@ -67547,7 +67547,7 @@

    Arguments

    @@ -67563,7 +67563,7 @@

    Arguments

    @@ -67579,7 +67579,7 @@

    Arguments

    @@ -67619,7 +67619,7 @@

    Arguments

    @@ -67634,7 +67634,7 @@

    Arguments

    @@ -67649,7 +67649,7 @@

    Arguments

    @@ -67664,7 +67664,7 @@

    Arguments

    @@ -67679,7 +67679,7 @@

    Arguments

    @@ -67719,7 +67719,7 @@

    Arguments

    @@ -67734,7 +67734,7 @@

    Arguments

    @@ -67749,7 +67749,7 @@

    Arguments

    @@ -67764,7 +67764,7 @@

    Arguments

    @@ -67779,7 +67779,7 @@

    Arguments

    @@ -67819,7 +67819,7 @@

    Arguments

    @@ -67834,7 +67834,7 @@

    Arguments

    @@ -67849,7 +67849,7 @@

    Arguments

    @@ -67864,7 +67864,7 @@

    Arguments

    @@ -67879,7 +67879,7 @@

    Arguments

    @@ -67919,7 +67919,7 @@

    Arguments

    @@ -67934,7 +67934,7 @@

    Arguments

    @@ -67949,7 +67949,7 @@

    Arguments

    @@ -67964,7 +67964,7 @@

    Arguments

    @@ -67979,7 +67979,7 @@

    Arguments

    @@ -68019,7 +68019,7 @@

    Arguments

    @@ -68034,7 +68034,7 @@

    Arguments

    @@ -68049,7 +68049,7 @@

    Arguments

    @@ -68089,7 +68089,7 @@

    Arguments

    @@ -68104,7 +68104,7 @@

    Arguments

    @@ -68119,7 +68119,7 @@

    Arguments

    @@ -68134,7 +68134,7 @@

    Arguments

    @@ -68149,7 +68149,7 @@

    Arguments

    @@ -68164,7 +68164,7 @@

    Arguments

    @@ -68179,7 +68179,7 @@

    Arguments

    @@ -68194,7 +68194,7 @@

    Arguments

    @@ -68209,7 +68209,7 @@

    Arguments

    @@ -68249,7 +68249,7 @@

    Arguments

    @@ -68264,7 +68264,7 @@

    Arguments

    @@ -68279,7 +68279,7 @@

    Arguments

    @@ -68319,7 +68319,7 @@

    Arguments

    @@ -68334,7 +68334,7 @@

    Arguments

    @@ -68390,7 +68390,7 @@

    Arguments

    @@ -68405,7 +68405,7 @@

    Arguments

    @@ -68475,7 +68475,7 @@

    Arguments

    @@ -68490,7 +68490,7 @@

    Arguments

    @@ -68546,7 +68546,7 @@

    Arguments

    @@ -68561,7 +68561,7 @@

    Arguments

    @@ -68631,7 +68631,7 @@

    Arguments

    @@ -68646,7 +68646,7 @@

    Arguments

    @@ -68702,7 +68702,7 @@

    Arguments

    @@ -68717,7 +68717,7 @@

    Arguments

    @@ -68787,7 +68787,7 @@

    Arguments

    @@ -68802,7 +68802,7 @@

    Arguments

    @@ -68842,7 +68842,7 @@

    Arguments

    @@ -68857,7 +68857,7 @@

    Arguments

    @@ -68873,7 +68873,7 @@

    Arguments

    @@ -68889,7 +68889,7 @@

    Arguments

    @@ -68904,7 +68904,7 @@

    Arguments

    @@ -68920,7 +68920,7 @@

    Arguments

    @@ -68936,7 +68936,7 @@

    Arguments

    @@ -68976,7 +68976,7 @@

    Arguments

    @@ -68991,7 +68991,7 @@

    Arguments

    @@ -69021,7 +69021,7 @@

    Arguments

    @@ -69061,7 +69061,7 @@

    Arguments

    @@ -69076,7 +69076,7 @@

    Arguments

    @@ -69106,7 +69106,7 @@

    Arguments

    @@ -69146,7 +69146,7 @@

    Arguments

    @@ -69161,7 +69161,7 @@

    Arguments

    @@ -69191,7 +69191,7 @@

    Arguments

    @@ -69231,7 +69231,7 @@

    Arguments

    @@ -69246,7 +69246,7 @@

    Arguments

    @@ -69262,7 +69262,7 @@

    Arguments

    @@ -69278,7 +69278,7 @@

    Arguments

    @@ -69318,7 +69318,7 @@

    Arguments

    @@ -69333,7 +69333,7 @@

    Arguments

    @@ -69348,7 +69348,7 @@

    Arguments

    @@ -69363,7 +69363,7 @@

    Arguments

    @@ -69403,7 +69403,7 @@

    Arguments

    @@ -69418,7 +69418,7 @@

    Arguments

    @@ -69434,7 +69434,7 @@

    Arguments

    @@ -69450,7 +69450,7 @@

    Arguments

    @@ -69490,7 +69490,7 @@

    Arguments

    @@ -69505,7 +69505,7 @@

    Arguments

    @@ -69520,7 +69520,7 @@

    Arguments

    @@ -69535,7 +69535,7 @@

    Arguments

    @@ -69575,7 +69575,7 @@

    Arguments

    @@ -69590,7 +69590,7 @@

    Arguments

    @@ -69605,7 +69605,7 @@

    Arguments

    @@ -69645,7 +69645,7 @@

    Arguments

    @@ -69660,7 +69660,7 @@

    Arguments

    @@ -69675,7 +69675,7 @@

    Arguments

    @@ -69690,7 +69690,7 @@

    Arguments

    @@ -69730,7 +69730,7 @@

    Arguments

    @@ -69745,7 +69745,7 @@

    Arguments

    @@ -69760,7 +69760,7 @@

    Arguments

    @@ -69800,7 +69800,7 @@

    Arguments

    @@ -69815,7 +69815,7 @@

    Arguments

    @@ -69830,7 +69830,7 @@

    Arguments

    @@ -69845,7 +69845,7 @@

    Arguments

    @@ -69885,7 +69885,7 @@

    Arguments

    @@ -69900,7 +69900,7 @@

    Arguments

    @@ -69915,7 +69915,7 @@

    Arguments

    @@ -69955,7 +69955,7 @@

    Arguments

    @@ -69970,7 +69970,7 @@

    Arguments

    @@ -69985,7 +69985,7 @@

    Arguments

    @@ -70025,7 +70025,7 @@

    Arguments

    @@ -70040,7 +70040,7 @@

    Arguments

    @@ -70080,7 +70080,7 @@

    Arguments

    @@ -70095,7 +70095,7 @@

    Arguments

    @@ -70135,7 +70135,7 @@

    Arguments

    @@ -70150,7 +70150,7 @@

    Arguments

    @@ -70165,7 +70165,7 @@

    Arguments

    @@ -70205,7 +70205,7 @@

    Arguments

    @@ -70220,7 +70220,7 @@

    Arguments

    @@ -70260,7 +70260,7 @@

    Arguments

    @@ -70275,7 +70275,7 @@

    Arguments

    @@ -70315,7 +70315,7 @@

    Arguments

    @@ -70330,7 +70330,7 @@

    Arguments

    @@ -70371,7 +70371,7 @@

    Arguments

    @@ -70386,7 +70386,7 @@

    Arguments

    @@ -70401,7 +70401,7 @@

    Arguments

    @@ -70442,7 +70442,7 @@

    Arguments

    @@ -70457,7 +70457,7 @@

    Arguments

    @@ -70472,7 +70472,7 @@

    Arguments

    @@ -70512,7 +70512,7 @@

    Arguments

    @@ -70527,7 +70527,7 @@

    Arguments

    @@ -70542,7 +70542,7 @@

    Arguments

    @@ -70582,7 +70582,7 @@

    Arguments

    @@ -70597,7 +70597,7 @@

    Arguments

    @@ -70638,7 +70638,7 @@

    Arguments

    @@ -70653,7 +70653,7 @@

    Arguments

    @@ -70693,7 +70693,7 @@

    Arguments

    @@ -70708,7 +70708,7 @@

    Arguments

    @@ -70749,7 +70749,7 @@

    Arguments

    @@ -70764,7 +70764,7 @@

    Arguments

    @@ -70805,7 +70805,7 @@

    Arguments

    @@ -70820,7 +70820,7 @@

    Arguments

    @@ -70875,7 +70875,7 @@

    Arguments

    @@ -70890,7 +70890,7 @@

    Arguments

    @@ -70905,7 +70905,7 @@

    Arguments

    @@ -70920,7 +70920,7 @@

    Arguments

    @@ -70975,7 +70975,7 @@

    Arguments

    @@ -70990,7 +70990,7 @@

    Arguments

    @@ -71005,7 +71005,7 @@

    Arguments

    @@ -71020,7 +71020,7 @@

    Arguments

    @@ -71090,7 +71090,7 @@

    Arguments

    @@ -71105,7 +71105,7 @@

    Arguments

    @@ -71120,7 +71120,7 @@

    Arguments

    @@ -71135,7 +71135,7 @@

    Arguments

    @@ -71150,7 +71150,7 @@

    Arguments

    @@ -71165,7 +71165,7 @@

    Arguments

    @@ -71205,7 +71205,7 @@

    Arguments

    @@ -71235,7 +71235,7 @@

    Arguments

    @@ -71250,7 +71250,7 @@

    Arguments

    @@ -71290,7 +71290,7 @@

    Arguments

    @@ -71320,7 +71320,7 @@

    Arguments

    @@ -71335,7 +71335,7 @@

    Arguments

    @@ -71375,7 +71375,7 @@

    Arguments

    @@ -71405,7 +71405,7 @@

    Arguments

    @@ -71420,7 +71420,7 @@

    Arguments

    @@ -71506,7 +71506,7 @@

    Arguments

    @@ -71522,7 +71522,7 @@

    Arguments

    @@ -71537,7 +71537,7 @@

    Arguments

    @@ -71578,7 +71578,7 @@

    Arguments

    @@ -71593,7 +71593,7 @@

    Arguments

    @@ -71608,7 +71608,7 @@

    Arguments

    @@ -71649,7 +71649,7 @@

    Arguments

    @@ -71664,7 +71664,7 @@

    Arguments

    @@ -71679,7 +71679,7 @@

    Arguments

    @@ -71720,7 +71720,7 @@

    Arguments

    @@ -71735,7 +71735,7 @@

    Arguments

    @@ -71750,7 +71750,7 @@

    Arguments

    @@ -71765,7 +71765,7 @@

    Arguments

    @@ -71806,7 +71806,7 @@

    Arguments

    @@ -71821,7 +71821,7 @@

    Arguments

    @@ -71836,7 +71836,7 @@

    Arguments

    @@ -71877,7 +71877,7 @@

    Arguments

    @@ -71892,7 +71892,7 @@

    Arguments

    @@ -71907,7 +71907,7 @@

    Arguments

    @@ -71948,7 +71948,7 @@

    Arguments

    @@ -71963,7 +71963,7 @@

    Arguments

    @@ -71978,7 +71978,7 @@

    Arguments

    @@ -72019,7 +72019,7 @@

    Arguments

    @@ -72034,7 +72034,7 @@

    Arguments

    @@ -72049,7 +72049,7 @@

    Arguments

    @@ -72090,7 +72090,7 @@

    Arguments

    @@ -72105,7 +72105,7 @@

    Arguments

    @@ -72120,7 +72120,7 @@

    Arguments

    @@ -72135,7 +72135,7 @@

    Arguments

    @@ -72176,7 +72176,7 @@

    Arguments

    @@ -72191,7 +72191,7 @@

    Arguments

    @@ -72206,7 +72206,7 @@

    Arguments

    @@ -72221,7 +72221,7 @@

    Arguments

    @@ -72262,7 +72262,7 @@

    Arguments

    @@ -72277,7 +72277,7 @@

    Arguments

    @@ -72292,7 +72292,7 @@

    Arguments

    @@ -72307,7 +72307,7 @@

    Arguments

    @@ -72348,7 +72348,7 @@

    Arguments

    @@ -72363,7 +72363,7 @@

    Arguments

    @@ -72378,7 +72378,7 @@

    Arguments

    @@ -72393,7 +72393,7 @@

    Arguments

    @@ -72434,7 +72434,7 @@

    Arguments

    @@ -72449,7 +72449,7 @@

    Arguments

    @@ -72464,7 +72464,7 @@

    Arguments

    @@ -72479,7 +72479,7 @@

    Arguments

    @@ -72520,7 +72520,7 @@

    Arguments

    @@ -72535,7 +72535,7 @@

    Arguments

    @@ -72550,7 +72550,7 @@

    Arguments

    @@ -72565,7 +72565,7 @@

    Arguments

    @@ -72580,7 +72580,7 @@

    Arguments

    @@ -72623,7 +72623,7 @@

    Arguments

    @@ -72638,7 +72638,7 @@

    Arguments

    @@ -72653,7 +72653,7 @@

    Arguments

    @@ -72668,7 +72668,7 @@

    Arguments

    @@ -72683,7 +72683,7 @@

    Arguments

    @@ -72700,7 +72700,7 @@

    Arguments

    @@ -72741,7 +72741,7 @@

    Arguments

    @@ -72756,7 +72756,7 @@

    Arguments

    @@ -72771,7 +72771,7 @@

    Arguments

    @@ -72786,7 +72786,7 @@

    Arguments

    @@ -72801,7 +72801,7 @@

    Arguments

    @@ -72818,7 +72818,7 @@

    Arguments

    @@ -72858,7 +72858,7 @@

    Arguments

    @@ -72873,7 +72873,7 @@

    Arguments

    @@ -72888,7 +72888,7 @@

    Arguments

    @@ -72903,7 +72903,7 @@

    Arguments

    @@ -72918,7 +72918,7 @@

    Arguments

    @@ -72958,7 +72958,7 @@

    Arguments

    @@ -72973,7 +72973,7 @@

    Arguments

    @@ -72988,7 +72988,7 @@

    Arguments

    @@ -73003,7 +73003,7 @@

    Arguments

    @@ -73018,7 +73018,7 @@

    Arguments

    @@ -73033,7 +73033,7 @@

    Arguments

    @@ -73049,7 +73049,7 @@

    Arguments

    @@ -73065,7 +73065,7 @@

    Arguments

    @@ -73105,7 +73105,7 @@

    Arguments

    @@ -73120,7 +73120,7 @@

    Arguments

    @@ -73135,7 +73135,7 @@

    Arguments

    @@ -73150,7 +73150,7 @@

    Arguments

    @@ -73165,7 +73165,7 @@

    Arguments

    @@ -73180,7 +73180,7 @@

    Arguments

    @@ -73196,7 +73196,7 @@

    Arguments

    @@ -73212,7 +73212,7 @@

    Arguments

    @@ -73252,7 +73252,7 @@

    Arguments

    @@ -73267,7 +73267,7 @@

    Arguments

    @@ -73282,7 +73282,7 @@

    Arguments

    @@ -73297,7 +73297,7 @@

    Arguments

    @@ -73312,7 +73312,7 @@

    Arguments

    @@ -73352,7 +73352,7 @@

    Arguments

    @@ -73367,7 +73367,7 @@

    Arguments

    @@ -73382,7 +73382,7 @@

    Arguments

    @@ -73397,7 +73397,7 @@

    Arguments

    @@ -73412,7 +73412,7 @@

    Arguments

    @@ -73452,7 +73452,7 @@

    Arguments

    @@ -73467,7 +73467,7 @@

    Arguments

    @@ -73482,7 +73482,7 @@

    Arguments

    @@ -73497,7 +73497,7 @@

    Arguments

    @@ -73512,7 +73512,7 @@

    Arguments

    @@ -73552,7 +73552,7 @@

    Arguments

    @@ -73567,7 +73567,7 @@

    Arguments

    @@ -73582,7 +73582,7 @@

    Arguments

    @@ -73597,7 +73597,7 @@

    Arguments

    @@ -73612,7 +73612,7 @@

    Arguments

    @@ -73652,7 +73652,7 @@

    Arguments

    @@ -73667,7 +73667,7 @@

    Arguments

    @@ -73682,7 +73682,7 @@

    Arguments

    @@ -73722,7 +73722,7 @@

    Arguments

    @@ -73737,7 +73737,7 @@

    Arguments

    @@ -73752,7 +73752,7 @@

    Arguments

    @@ -73767,7 +73767,7 @@

    Arguments

    @@ -73782,7 +73782,7 @@

    Arguments

    @@ -73797,7 +73797,7 @@

    Arguments

    @@ -73812,7 +73812,7 @@

    Arguments

    @@ -73827,7 +73827,7 @@

    Arguments

    @@ -73842,7 +73842,7 @@

    Arguments

    @@ -73882,7 +73882,7 @@

    Arguments

    @@ -73897,7 +73897,7 @@

    Arguments

    @@ -73912,7 +73912,7 @@

    Arguments

    @@ -73952,7 +73952,7 @@

    Arguments

    @@ -73967,7 +73967,7 @@

    Arguments

    @@ -74023,7 +74023,7 @@

    Arguments

    @@ -74038,7 +74038,7 @@

    Arguments

    @@ -74108,7 +74108,7 @@

    Arguments

    @@ -74123,7 +74123,7 @@

    Arguments

    @@ -74179,7 +74179,7 @@

    Arguments

    @@ -74194,7 +74194,7 @@

    Arguments

    @@ -74264,7 +74264,7 @@

    Arguments

    @@ -74279,7 +74279,7 @@

    Arguments

    @@ -74335,7 +74335,7 @@

    Arguments

    @@ -74350,7 +74350,7 @@

    Arguments

    @@ -74420,7 +74420,7 @@

    Arguments

    @@ -74435,7 +74435,7 @@

    Arguments

    @@ -74475,7 +74475,7 @@

    Arguments

    @@ -74490,7 +74490,7 @@

    Arguments

    @@ -74506,7 +74506,7 @@

    Arguments

    @@ -74522,7 +74522,7 @@

    Arguments

    @@ -74537,7 +74537,7 @@

    Arguments

    @@ -74553,7 +74553,7 @@

    Arguments

    @@ -74569,7 +74569,7 @@

    Arguments

    @@ -74609,7 +74609,7 @@

    Arguments

    @@ -74624,7 +74624,7 @@

    Arguments

    @@ -74654,7 +74654,7 @@

    Arguments

    @@ -74694,7 +74694,7 @@

    Arguments

    @@ -74709,7 +74709,7 @@

    Arguments

    @@ -74739,7 +74739,7 @@

    Arguments

    @@ -74779,7 +74779,7 @@

    Arguments

    @@ -74794,7 +74794,7 @@

    Arguments

    @@ -74824,7 +74824,7 @@

    Arguments

    @@ -74864,7 +74864,7 @@

    Arguments

    @@ -74879,7 +74879,7 @@

    Arguments

    @@ -74895,7 +74895,7 @@

    Arguments

    @@ -74911,7 +74911,7 @@

    Arguments

    @@ -74951,7 +74951,7 @@

    Arguments

    @@ -74966,7 +74966,7 @@

    Arguments

    @@ -74981,7 +74981,7 @@

    Arguments

    @@ -74996,7 +74996,7 @@

    Arguments

    @@ -75036,7 +75036,7 @@

    Arguments

    @@ -75051,7 +75051,7 @@

    Arguments

    @@ -75067,7 +75067,7 @@

    Arguments

    @@ -75083,7 +75083,7 @@

    Arguments

    @@ -75123,7 +75123,7 @@

    Arguments

    @@ -75138,7 +75138,7 @@

    Arguments

    @@ -75153,7 +75153,7 @@

    Arguments

    @@ -75168,7 +75168,7 @@

    Arguments

    @@ -75208,7 +75208,7 @@

    Arguments

    @@ -75223,7 +75223,7 @@

    Arguments

    @@ -75238,7 +75238,7 @@

    Arguments

    @@ -75278,7 +75278,7 @@

    Arguments

    @@ -75293,7 +75293,7 @@

    Arguments

    @@ -75308,7 +75308,7 @@

    Arguments

    @@ -75323,7 +75323,7 @@

    Arguments

    @@ -75363,7 +75363,7 @@

    Arguments

    @@ -75378,7 +75378,7 @@

    Arguments

    @@ -75393,7 +75393,7 @@

    Arguments

    @@ -75433,7 +75433,7 @@

    Arguments

    @@ -75448,7 +75448,7 @@

    Arguments

    @@ -75463,7 +75463,7 @@

    Arguments

    @@ -75478,7 +75478,7 @@

    Arguments

    @@ -75518,7 +75518,7 @@

    Arguments

    @@ -75533,7 +75533,7 @@

    Arguments

    @@ -75548,7 +75548,7 @@

    Arguments

    @@ -75588,7 +75588,7 @@

    Arguments

    @@ -75603,7 +75603,7 @@

    Arguments

    @@ -75618,7 +75618,7 @@

    Arguments

    @@ -75658,7 +75658,7 @@

    Arguments

    @@ -75673,7 +75673,7 @@

    Arguments

    @@ -75713,7 +75713,7 @@

    Arguments

    @@ -75728,7 +75728,7 @@

    Arguments

    @@ -75768,7 +75768,7 @@

    Arguments

    @@ -75783,7 +75783,7 @@

    Arguments

    @@ -75798,7 +75798,7 @@

    Arguments

    @@ -75838,7 +75838,7 @@

    Arguments

    @@ -75853,7 +75853,7 @@

    Arguments

    @@ -75893,7 +75893,7 @@

    Arguments

    @@ -75908,7 +75908,7 @@

    Arguments

    @@ -75948,7 +75948,7 @@

    Arguments

    @@ -75963,7 +75963,7 @@

    Arguments

    @@ -76004,7 +76004,7 @@

    Arguments

    @@ -76019,7 +76019,7 @@

    Arguments

    @@ -76034,7 +76034,7 @@

    Arguments

    @@ -76075,7 +76075,7 @@

    Arguments

    @@ -76090,7 +76090,7 @@

    Arguments

    @@ -76105,7 +76105,7 @@

    Arguments

    @@ -76145,7 +76145,7 @@

    Arguments

    @@ -76160,7 +76160,7 @@

    Arguments

    @@ -76175,7 +76175,7 @@

    Arguments

    @@ -76215,7 +76215,7 @@

    Arguments

    @@ -76230,7 +76230,7 @@

    Arguments

    @@ -76271,7 +76271,7 @@

    Arguments

    @@ -76286,7 +76286,7 @@

    Arguments

    @@ -76326,7 +76326,7 @@

    Arguments

    @@ -76341,7 +76341,7 @@

    Arguments

    @@ -76382,7 +76382,7 @@

    Arguments

    @@ -76397,7 +76397,7 @@

    Arguments

    @@ -76438,7 +76438,7 @@

    Arguments

    @@ -76453,7 +76453,7 @@

    Arguments

    @@ -76508,7 +76508,7 @@

    Arguments

    @@ -76523,7 +76523,7 @@

    Arguments

    @@ -76538,7 +76538,7 @@

    Arguments

    @@ -76553,7 +76553,7 @@

    Arguments

    @@ -76608,7 +76608,7 @@

    Arguments

    @@ -76623,7 +76623,7 @@

    Arguments

    @@ -76638,7 +76638,7 @@

    Arguments

    @@ -76653,7 +76653,7 @@

    Arguments

    @@ -76723,7 +76723,7 @@

    Arguments

    @@ -76738,7 +76738,7 @@

    Arguments

    @@ -76753,7 +76753,7 @@

    Arguments

    @@ -76768,7 +76768,7 @@

    Arguments

    @@ -76783,7 +76783,7 @@

    Arguments

    @@ -76798,7 +76798,7 @@

    Arguments

    @@ -76838,7 +76838,7 @@

    Arguments

    @@ -76868,7 +76868,7 @@

    Arguments

    @@ -76883,7 +76883,7 @@

    Arguments

    @@ -76923,7 +76923,7 @@

    Arguments

    @@ -76953,7 +76953,7 @@

    Arguments

    @@ -76968,7 +76968,7 @@

    Arguments

    @@ -77008,7 +77008,7 @@

    Arguments

    @@ -77038,7 +77038,7 @@

    Arguments

    @@ -77053,7 +77053,7 @@

    Arguments

    @@ -77139,7 +77139,7 @@

    Arguments

    @@ -77155,7 +77155,7 @@

    Arguments

    @@ -77170,7 +77170,7 @@

    Arguments

    @@ -77211,7 +77211,7 @@

    Arguments

    @@ -77226,7 +77226,7 @@

    Arguments

    @@ -77241,7 +77241,7 @@

    Arguments

    @@ -77282,7 +77282,7 @@

    Arguments

    @@ -77297,7 +77297,7 @@

    Arguments

    @@ -77312,7 +77312,7 @@

    Arguments

    @@ -77353,7 +77353,7 @@

    Arguments

    @@ -77368,7 +77368,7 @@

    Arguments

    @@ -77383,7 +77383,7 @@

    Arguments

    @@ -77398,7 +77398,7 @@

    Arguments

    @@ -77439,7 +77439,7 @@

    Arguments

    @@ -77454,7 +77454,7 @@

    Arguments

    @@ -77469,7 +77469,7 @@

    Arguments

    @@ -77510,7 +77510,7 @@

    Arguments

    @@ -77525,7 +77525,7 @@

    Arguments

    @@ -77540,7 +77540,7 @@

    Arguments

    @@ -77581,7 +77581,7 @@

    Arguments

    @@ -77596,7 +77596,7 @@

    Arguments

    @@ -77611,7 +77611,7 @@

    Arguments

    @@ -77652,7 +77652,7 @@

    Arguments

    @@ -77667,7 +77667,7 @@

    Arguments

    @@ -77682,7 +77682,7 @@

    Arguments

    @@ -77723,7 +77723,7 @@

    Arguments

    @@ -77738,7 +77738,7 @@

    Arguments

    @@ -77753,7 +77753,7 @@

    Arguments

    @@ -77768,7 +77768,7 @@

    Arguments

    @@ -77809,7 +77809,7 @@

    Arguments

    @@ -77824,7 +77824,7 @@

    Arguments

    @@ -77839,7 +77839,7 @@

    Arguments

    @@ -77854,7 +77854,7 @@

    Arguments

    @@ -77895,7 +77895,7 @@

    Arguments

    @@ -77910,7 +77910,7 @@

    Arguments

    @@ -77925,7 +77925,7 @@

    Arguments

    @@ -77940,7 +77940,7 @@

    Arguments

    @@ -77981,7 +77981,7 @@

    Arguments

    @@ -77996,7 +77996,7 @@

    Arguments

    @@ -78011,7 +78011,7 @@

    Arguments

    @@ -78026,7 +78026,7 @@

    Arguments

    @@ -78067,7 +78067,7 @@

    Arguments

    @@ -78082,7 +78082,7 @@

    Arguments

    @@ -78097,7 +78097,7 @@

    Arguments

    @@ -78112,7 +78112,7 @@

    Arguments

    @@ -78153,7 +78153,7 @@

    Arguments

    @@ -78168,7 +78168,7 @@

    Arguments

    @@ -78183,7 +78183,7 @@

    Arguments

    @@ -78198,7 +78198,7 @@

    Arguments

    @@ -78213,7 +78213,7 @@

    Arguments

    @@ -78256,7 +78256,7 @@

    Arguments

    @@ -78271,7 +78271,7 @@

    Arguments

    @@ -78286,7 +78286,7 @@

    Arguments

    @@ -78301,7 +78301,7 @@

    Arguments

    @@ -78316,7 +78316,7 @@

    Arguments

    @@ -78333,7 +78333,7 @@

    Arguments

    @@ -78374,7 +78374,7 @@

    Arguments

    @@ -78389,7 +78389,7 @@

    Arguments

    @@ -78404,7 +78404,7 @@

    Arguments

    @@ -78419,7 +78419,7 @@

    Arguments

    @@ -78434,7 +78434,7 @@

    Arguments

    @@ -78451,7 +78451,7 @@

    Arguments

    @@ -78491,7 +78491,7 @@

    Arguments

    @@ -78506,7 +78506,7 @@

    Arguments

    @@ -78521,7 +78521,7 @@

    Arguments

    @@ -78536,7 +78536,7 @@

    Arguments

    @@ -78551,7 +78551,7 @@

    Arguments

    @@ -78591,7 +78591,7 @@

    Arguments

    @@ -78606,7 +78606,7 @@

    Arguments

    @@ -78621,7 +78621,7 @@

    Arguments

    @@ -78636,7 +78636,7 @@

    Arguments

    @@ -78651,7 +78651,7 @@

    Arguments

    @@ -78666,7 +78666,7 @@

    Arguments

    @@ -78682,7 +78682,7 @@

    Arguments

    @@ -78698,7 +78698,7 @@

    Arguments

    @@ -78738,7 +78738,7 @@

    Arguments

    @@ -78753,7 +78753,7 @@

    Arguments

    @@ -78768,7 +78768,7 @@

    Arguments

    @@ -78783,7 +78783,7 @@

    Arguments

    @@ -78798,7 +78798,7 @@

    Arguments

    @@ -78813,7 +78813,7 @@

    Arguments

    @@ -78829,7 +78829,7 @@

    Arguments

    @@ -78845,7 +78845,7 @@

    Arguments

    @@ -78885,7 +78885,7 @@

    Arguments

    @@ -78900,7 +78900,7 @@

    Arguments

    @@ -78915,7 +78915,7 @@

    Arguments

    @@ -78930,7 +78930,7 @@

    Arguments

    @@ -78945,7 +78945,7 @@

    Arguments

    @@ -78985,7 +78985,7 @@

    Arguments

    @@ -79000,7 +79000,7 @@

    Arguments

    @@ -79015,7 +79015,7 @@

    Arguments

    @@ -79030,7 +79030,7 @@

    Arguments

    @@ -79045,7 +79045,7 @@

    Arguments

    @@ -79085,7 +79085,7 @@

    Arguments

    @@ -79100,7 +79100,7 @@

    Arguments

    @@ -79115,7 +79115,7 @@

    Arguments

    @@ -79130,7 +79130,7 @@

    Arguments

    @@ -79145,7 +79145,7 @@

    Arguments

    @@ -79185,7 +79185,7 @@

    Arguments

    @@ -79200,7 +79200,7 @@

    Arguments

    @@ -79215,7 +79215,7 @@

    Arguments

    @@ -79230,7 +79230,7 @@

    Arguments

    @@ -79245,7 +79245,7 @@

    Arguments

    @@ -79285,7 +79285,7 @@

    Arguments

    @@ -79300,7 +79300,7 @@

    Arguments

    @@ -79315,7 +79315,7 @@

    Arguments

    @@ -79355,7 +79355,7 @@

    Arguments

    @@ -79370,7 +79370,7 @@

    Arguments

    @@ -79385,7 +79385,7 @@

    Arguments

    @@ -79400,7 +79400,7 @@

    Arguments

    @@ -79415,7 +79415,7 @@

    Arguments

    @@ -79430,7 +79430,7 @@

    Arguments

    @@ -79445,7 +79445,7 @@

    Arguments

    @@ -79460,7 +79460,7 @@

    Arguments

    @@ -79475,7 +79475,7 @@

    Arguments

    @@ -79515,7 +79515,7 @@

    Arguments

    @@ -79530,7 +79530,7 @@

    Arguments

    @@ -79545,7 +79545,7 @@

    Arguments

    @@ -79585,7 +79585,7 @@

    Arguments

    @@ -79600,7 +79600,7 @@

    Arguments

    @@ -79656,7 +79656,7 @@

    Arguments

    @@ -79671,7 +79671,7 @@

    Arguments

    @@ -79741,7 +79741,7 @@

    Arguments

    @@ -79756,7 +79756,7 @@

    Arguments

    @@ -79812,7 +79812,7 @@

    Arguments

    @@ -79827,7 +79827,7 @@

    Arguments

    @@ -79897,7 +79897,7 @@

    Arguments

    @@ -79912,7 +79912,7 @@

    Arguments

    @@ -79968,7 +79968,7 @@

    Arguments

    @@ -79983,7 +79983,7 @@

    Arguments

    @@ -80053,7 +80053,7 @@

    Arguments

    @@ -80068,7 +80068,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_multiply_api.html b/develop/module/dbcsr_multiply_api.html index c3141d423ed..c46236a6e1d 100644 --- a/develop/module/dbcsr_multiply_api.html +++ b/develop/module/dbcsr_multiply_api.html @@ -113,7 +113,7 @@

    Variables

    @@ -131,7 +131,7 @@

    Interfaces

    @@ -146,10 +146,10 @@

    Subroutines

    @@ -175,12 +175,12 @@

    Uses

    @@ -205,7 +205,7 @@

    Variables

    @@ -231,8 +231,8 @@

    Variables

    Interfaces

    - -

    public interface dbcsr_multiply + +

    public interface dbcsr_multiply

      @@ -281,7 +281,7 @@

      Arguments

    @@ -299,7 +299,7 @@

    Arguments

    @@ -317,7 +317,7 @@

    Arguments

    @@ -332,7 +332,7 @@

    Arguments

    @@ -348,7 +348,7 @@

    Arguments

    @@ -364,7 +364,7 @@

    Arguments

    @@ -414,7 +414,7 @@

    Arguments

    @@ -454,7 +454,7 @@

    Arguments

    @@ -514,7 +514,7 @@

    Arguments

    @@ -529,7 +529,7 @@

    Arguments

    @@ -544,7 +544,7 @@

    Arguments

    @@ -564,7 +564,7 @@

    Arguments

  • - private subroutine dbcsr_multiply_s(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop) + private subroutine dbcsr_multiply_s(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop)

    @@ -583,7 +583,7 @@

    Arguments

  • @@ -598,7 +598,7 @@

    Arguments

    @@ -613,7 +613,7 @@

    Arguments

    @@ -628,7 +628,7 @@

    Arguments

    @@ -643,7 +643,7 @@

    Arguments

    @@ -658,7 +658,7 @@

    Arguments

    @@ -673,7 +673,7 @@

    Arguments

    @@ -688,7 +688,7 @@

    Arguments

    @@ -703,7 +703,7 @@

    Arguments

    @@ -718,7 +718,7 @@

    Arguments

    @@ -733,7 +733,7 @@

    Arguments

    @@ -748,7 +748,7 @@

    Arguments

    @@ -763,7 +763,7 @@

    Arguments

    @@ -778,7 +778,7 @@

    Arguments

    @@ -793,7 +793,7 @@

    Arguments

    @@ -808,7 +808,7 @@

    Arguments

    @@ -828,7 +828,7 @@

    Arguments

  • - private subroutine dbcsr_multiply_d(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop) + private subroutine dbcsr_multiply_d(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop)

    @@ -847,7 +847,7 @@

    Arguments

  • @@ -862,7 +862,7 @@

    Arguments

    @@ -877,7 +877,7 @@

    Arguments

    @@ -892,7 +892,7 @@

    Arguments

    @@ -907,7 +907,7 @@

    Arguments

    @@ -922,7 +922,7 @@

    Arguments

    @@ -937,7 +937,7 @@

    Arguments

    @@ -952,7 +952,7 @@

    Arguments

    @@ -967,7 +967,7 @@

    Arguments

    @@ -982,7 +982,7 @@

    Arguments

    @@ -997,7 +997,7 @@

    Arguments

    @@ -1012,7 +1012,7 @@

    Arguments

    @@ -1027,7 +1027,7 @@

    Arguments

    @@ -1042,7 +1042,7 @@

    Arguments

    @@ -1057,7 +1057,7 @@

    Arguments

    @@ -1072,7 +1072,7 @@

    Arguments

    @@ -1092,7 +1092,7 @@

    Arguments

  • - private subroutine dbcsr_multiply_c(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop) + private subroutine dbcsr_multiply_c(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop)

    @@ -1111,7 +1111,7 @@

    Arguments

  • @@ -1126,7 +1126,7 @@

    Arguments

    @@ -1141,7 +1141,7 @@

    Arguments

    @@ -1156,7 +1156,7 @@

    Arguments

    @@ -1171,7 +1171,7 @@

    Arguments

    @@ -1186,7 +1186,7 @@

    Arguments

    @@ -1201,7 +1201,7 @@

    Arguments

    @@ -1216,7 +1216,7 @@

    Arguments

    @@ -1231,7 +1231,7 @@

    Arguments

    @@ -1246,7 +1246,7 @@

    Arguments

    @@ -1261,7 +1261,7 @@

    Arguments

    @@ -1276,7 +1276,7 @@

    Arguments

    @@ -1291,7 +1291,7 @@

    Arguments

    @@ -1306,7 +1306,7 @@

    Arguments

    @@ -1321,7 +1321,7 @@

    Arguments

    @@ -1336,7 +1336,7 @@

    Arguments

    @@ -1356,7 +1356,7 @@

    Arguments

  • - private subroutine dbcsr_multiply_z(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop) + private subroutine dbcsr_multiply_z(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop)

    @@ -1375,7 +1375,7 @@

    Arguments

  • @@ -1390,7 +1390,7 @@

    Arguments

    @@ -1405,7 +1405,7 @@

    Arguments

    @@ -1420,7 +1420,7 @@

    Arguments

    @@ -1435,7 +1435,7 @@

    Arguments

    @@ -1450,7 +1450,7 @@

    Arguments

    @@ -1465,7 +1465,7 @@

    Arguments

    @@ -1480,7 +1480,7 @@

    Arguments

    @@ -1495,7 +1495,7 @@

    Arguments

    @@ -1510,7 +1510,7 @@

    Arguments

    @@ -1525,7 +1525,7 @@

    Arguments

    @@ -1540,7 +1540,7 @@

    Arguments

    @@ -1555,7 +1555,7 @@

    Arguments

    @@ -1570,7 +1570,7 @@

    Arguments

    @@ -1585,7 +1585,7 @@

    Arguments

    @@ -1600,7 +1600,7 @@

    Arguments

    @@ -1630,7 +1630,7 @@

    Arguments

    Subroutines

    -

    private subroutine dbcsr_multiply_s(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop) +

    private subroutine dbcsr_multiply_s(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop)

    @@ -1649,7 +1649,7 @@

    Arguments

    @@ -1664,7 +1664,7 @@

    Arguments

    @@ -1679,7 +1679,7 @@

    Arguments

    @@ -1694,7 +1694,7 @@

    Arguments

    @@ -1709,7 +1709,7 @@

    Arguments

    @@ -1724,7 +1724,7 @@

    Arguments

    @@ -1739,7 +1739,7 @@

    Arguments

    @@ -1754,7 +1754,7 @@

    Arguments

    @@ -1769,7 +1769,7 @@

    Arguments

    @@ -1784,7 +1784,7 @@

    Arguments

    @@ -1799,7 +1799,7 @@

    Arguments

    @@ -1814,7 +1814,7 @@

    Arguments

    @@ -1829,7 +1829,7 @@

    Arguments

    @@ -1844,7 +1844,7 @@

    Arguments

    @@ -1859,7 +1859,7 @@

    Arguments

    @@ -1874,7 +1874,7 @@

    Arguments

    @@ -1895,7 +1895,7 @@

    Arguments

    -

    private subroutine dbcsr_multiply_d(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop) +

    private subroutine dbcsr_multiply_d(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop)

    @@ -1914,7 +1914,7 @@

    Arguments

    @@ -1929,7 +1929,7 @@

    Arguments

    @@ -1944,7 +1944,7 @@

    Arguments

    @@ -1959,7 +1959,7 @@

    Arguments

    @@ -1974,7 +1974,7 @@

    Arguments

    @@ -1989,7 +1989,7 @@

    Arguments

    @@ -2004,7 +2004,7 @@

    Arguments

    @@ -2019,7 +2019,7 @@

    Arguments

    @@ -2034,7 +2034,7 @@

    Arguments

    @@ -2049,7 +2049,7 @@

    Arguments

    @@ -2064,7 +2064,7 @@

    Arguments

    @@ -2079,7 +2079,7 @@

    Arguments

    @@ -2094,7 +2094,7 @@

    Arguments

    @@ -2109,7 +2109,7 @@

    Arguments

    @@ -2124,7 +2124,7 @@

    Arguments

    @@ -2139,7 +2139,7 @@

    Arguments

    @@ -2160,7 +2160,7 @@

    Arguments

    -

    private subroutine dbcsr_multiply_c(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop) +

    private subroutine dbcsr_multiply_c(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop)

    @@ -2179,7 +2179,7 @@

    Arguments

    @@ -2194,7 +2194,7 @@

    Arguments

    @@ -2209,7 +2209,7 @@

    Arguments

    @@ -2224,7 +2224,7 @@

    Arguments

    @@ -2239,7 +2239,7 @@

    Arguments

    @@ -2254,7 +2254,7 @@

    Arguments

    @@ -2269,7 +2269,7 @@

    Arguments

    @@ -2284,7 +2284,7 @@

    Arguments

    @@ -2299,7 +2299,7 @@

    Arguments

    @@ -2314,7 +2314,7 @@

    Arguments

    @@ -2329,7 +2329,7 @@

    Arguments

    @@ -2344,7 +2344,7 @@

    Arguments

    @@ -2359,7 +2359,7 @@

    Arguments

    @@ -2374,7 +2374,7 @@

    Arguments

    @@ -2389,7 +2389,7 @@

    Arguments

    @@ -2404,7 +2404,7 @@

    Arguments

    @@ -2425,7 +2425,7 @@

    Arguments

    -

    private subroutine dbcsr_multiply_z(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop) +

    private subroutine dbcsr_multiply_z(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop)

    @@ -2444,7 +2444,7 @@

    Arguments

    @@ -2459,7 +2459,7 @@

    Arguments

    @@ -2474,7 +2474,7 @@

    Arguments

    @@ -2489,7 +2489,7 @@

    Arguments

    @@ -2504,7 +2504,7 @@

    Arguments

    @@ -2519,7 +2519,7 @@

    Arguments

    @@ -2534,7 +2534,7 @@

    Arguments

    @@ -2549,7 +2549,7 @@

    Arguments

    @@ -2564,7 +2564,7 @@

    Arguments

    @@ -2579,7 +2579,7 @@

    Arguments

    @@ -2594,7 +2594,7 @@

    Arguments

    @@ -2609,7 +2609,7 @@

    Arguments

    @@ -2624,7 +2624,7 @@

    Arguments

    @@ -2639,7 +2639,7 @@

    Arguments

    @@ -2654,7 +2654,7 @@

    Arguments

    @@ -2669,7 +2669,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_operations.html b/develop/module/dbcsr_operations.html index 8446858ec45..b112728d3e3 100644 --- a/develop/module/dbcsr_operations.html +++ b/develop/module/dbcsr_operations.html @@ -113,12 +113,12 @@

    Variables

    @@ -404,7 +404,7 @@

    Variables

    @@ -421,7 +421,7 @@

    Variables

    @@ -593,7 +593,7 @@

    Arguments

    @@ -608,7 +608,7 @@

    Arguments

    @@ -653,7 +653,7 @@

    Arguments

    @@ -668,7 +668,7 @@

    Arguments

    @@ -713,7 +713,7 @@

    Arguments

    @@ -728,7 +728,7 @@

    Arguments

    @@ -773,7 +773,7 @@

    Arguments

    @@ -788,7 +788,7 @@

    Arguments

    @@ -842,7 +842,7 @@

    Arguments

    @@ -857,7 +857,7 @@

    Arguments

    @@ -896,7 +896,7 @@

    Arguments

    @@ -911,7 +911,7 @@

    Arguments

    @@ -950,7 +950,7 @@

    Arguments

    @@ -965,7 +965,7 @@

    Arguments

    @@ -1004,7 +1004,7 @@

    Arguments

    @@ -1019,7 +1019,7 @@

    Arguments

    @@ -1068,7 +1068,7 @@

    Arguments

    @@ -1084,7 +1084,7 @@

    Arguments

    @@ -1100,7 +1100,7 @@

    Arguments

    @@ -1140,7 +1140,7 @@

    Arguments

    @@ -1156,7 +1156,7 @@

    Arguments

    @@ -1172,7 +1172,7 @@

    Arguments

    @@ -1211,7 +1211,7 @@

    Arguments

    @@ -1227,7 +1227,7 @@

    Arguments

    @@ -1243,7 +1243,7 @@

    Arguments

    @@ -1282,7 +1282,7 @@

    Arguments

    @@ -1298,7 +1298,7 @@

    Arguments

    @@ -1314,7 +1314,7 @@

    Arguments

    @@ -1366,7 +1366,7 @@

    Arguments

    @@ -1396,7 +1396,7 @@

    Arguments

    @@ -1435,7 +1435,7 @@

    Arguments

    @@ -1465,7 +1465,7 @@

    Arguments

    @@ -1504,7 +1504,7 @@

    Arguments

    @@ -1534,7 +1534,7 @@

    Arguments

    @@ -1573,7 +1573,7 @@

    Arguments

    @@ -1603,7 +1603,7 @@

    Arguments

    @@ -1642,7 +1642,7 @@

    Arguments

    @@ -1672,7 +1672,7 @@

    Arguments

    @@ -1721,7 +1721,7 @@

    Arguments

    @@ -1736,7 +1736,7 @@

    Arguments

    @@ -1790,7 +1790,7 @@

    Arguments

    @@ -1805,7 +1805,7 @@

    Arguments

    @@ -1859,7 +1859,7 @@

    Arguments

    @@ -1874,7 +1874,7 @@

    Arguments

    @@ -1928,7 +1928,7 @@

    Arguments

    @@ -1943,7 +1943,7 @@

    Arguments

    @@ -1997,7 +1997,7 @@

    Arguments

    @@ -2012,7 +2012,7 @@

    Arguments

    @@ -2076,7 +2076,7 @@

    Arguments

    @@ -2091,7 +2091,7 @@

    Arguments

    @@ -2130,7 +2130,7 @@

    Arguments

    @@ -2145,7 +2145,7 @@

    Arguments

    @@ -2184,7 +2184,7 @@

    Arguments

    @@ -2199,7 +2199,7 @@

    Arguments

    @@ -2238,7 +2238,7 @@

    Arguments

    @@ -2253,7 +2253,7 @@

    Arguments

    @@ -2303,7 +2303,7 @@

    Arguments

    @@ -2318,7 +2318,7 @@

    Arguments

    @@ -2363,7 +2363,7 @@

    Arguments

    @@ -2402,7 +2402,7 @@

    Arguments

    @@ -2417,7 +2417,7 @@

    Arguments

    @@ -2486,7 +2486,7 @@

    Arguments

    @@ -2501,7 +2501,7 @@

    Arguments

    @@ -2570,7 +2570,7 @@

    Arguments

    @@ -2585,7 +2585,7 @@

    Arguments

    @@ -2654,7 +2654,7 @@

    Arguments

    @@ -2669,7 +2669,7 @@

    Arguments

    @@ -2748,7 +2748,7 @@

    Arguments

    @@ -2763,7 +2763,7 @@

    Arguments

    @@ -2802,7 +2802,7 @@

    Arguments

    @@ -2817,7 +2817,7 @@

    Arguments

    @@ -2856,7 +2856,7 @@

    Arguments

    @@ -2871,7 +2871,7 @@

    Arguments

    @@ -2910,7 +2910,7 @@

    Arguments

    @@ -2925,7 +2925,7 @@

    Arguments

    @@ -2974,7 +2974,7 @@

    Arguments

    @@ -2989,7 +2989,7 @@

    Arguments

    @@ -3004,7 +3004,7 @@

    Arguments

    @@ -3019,7 +3019,7 @@

    Arguments

    @@ -3073,7 +3073,7 @@

    Arguments

    @@ -3088,7 +3088,7 @@

    Arguments

    @@ -3103,7 +3103,7 @@

    Arguments

    @@ -3118,7 +3118,7 @@

    Arguments

    @@ -3172,7 +3172,7 @@

    Arguments

    @@ -3187,7 +3187,7 @@

    Arguments

    @@ -3202,7 +3202,7 @@

    Arguments

    @@ -3217,7 +3217,7 @@

    Arguments

    @@ -3271,7 +3271,7 @@

    Arguments

    @@ -3286,7 +3286,7 @@

    Arguments

    @@ -3301,7 +3301,7 @@

    Arguments

    @@ -3316,7 +3316,7 @@

    Arguments

    @@ -3370,7 +3370,7 @@

    Arguments

    @@ -3385,7 +3385,7 @@

    Arguments

    @@ -3400,7 +3400,7 @@

    Arguments

    @@ -3415,7 +3415,7 @@

    Arguments

    @@ -3479,7 +3479,7 @@

    Arguments

    @@ -3533,7 +3533,7 @@

    Arguments

    @@ -3587,7 +3587,7 @@

    Arguments

    @@ -3641,7 +3641,7 @@

    Arguments

    @@ -3705,7 +3705,7 @@

    Arguments

    @@ -3759,7 +3759,7 @@

    Arguments

    @@ -3813,7 +3813,7 @@

    Arguments

    @@ -3867,7 +3867,7 @@

    Arguments

    @@ -3931,7 +3931,7 @@

    Arguments

    @@ -3946,7 +3946,7 @@

    Arguments

    @@ -3992,7 +3992,7 @@

    Arguments

    @@ -4007,7 +4007,7 @@

    Arguments

    @@ -4053,7 +4053,7 @@

    Arguments

    @@ -4068,7 +4068,7 @@

    Arguments

    @@ -4114,7 +4114,7 @@

    Arguments

    @@ -4129,7 +4129,7 @@

    Arguments

    @@ -4175,7 +4175,7 @@

    Arguments

    @@ -4190,7 +4190,7 @@

    Arguments

    @@ -4386,7 +4386,7 @@

    Arguments

    @@ -4431,7 +4431,7 @@

    Arguments

    @@ -4476,7 +4476,7 @@

    Arguments

    @@ -4491,7 +4491,7 @@

    Arguments

    @@ -4536,7 +4536,7 @@

    Arguments

    @@ -4551,7 +4551,7 @@

    Arguments

    @@ -4626,7 +4626,7 @@

    Arguments

    @@ -4686,7 +4686,7 @@

    Arguments

    @@ -4739,7 +4739,7 @@

    Arguments

    @@ -4786,7 +4786,7 @@

    Arguments

    @@ -4826,7 +4826,7 @@

    Arguments

    @@ -4866,7 +4866,7 @@

    Arguments

    @@ -4906,7 +4906,7 @@

    Arguments

    @@ -4936,7 +4936,7 @@

    Arguments

    @@ -4976,7 +4976,7 @@

    Arguments

    @@ -5105,7 +5105,7 @@

    Arguments

    @@ -5120,7 +5120,7 @@

    Arguments

    @@ -5176,7 +5176,7 @@

    Arguments

    @@ -5191,7 +5191,7 @@

    Arguments

    @@ -5236,7 +5236,7 @@

    Arguments

    @@ -5276,7 +5276,7 @@

    Arguments

    @@ -5291,7 +5291,7 @@

    Arguments

    @@ -5361,7 +5361,7 @@

    Arguments

    @@ -5376,7 +5376,7 @@

    Arguments

    @@ -5446,7 +5446,7 @@

    Arguments

    @@ -5461,7 +5461,7 @@

    Arguments

    @@ -5531,7 +5531,7 @@

    Arguments

    @@ -5546,7 +5546,7 @@

    Arguments

    @@ -5616,7 +5616,7 @@

    Arguments

    @@ -5631,7 +5631,7 @@

    Arguments

    @@ -5671,7 +5671,7 @@

    Arguments

    @@ -5772,7 +5772,7 @@

    Arguments

    @@ -5788,7 +5788,7 @@

    Arguments

    @@ -5804,7 +5804,7 @@

    Arguments

    @@ -5859,7 +5859,7 @@

    Arguments

    @@ -5874,7 +5874,7 @@

    Arguments

    @@ -5929,7 +5929,7 @@

    Arguments

    @@ -5984,7 +5984,7 @@

    Arguments

    @@ -5999,7 +5999,7 @@

    Arguments

    @@ -6014,7 +6014,7 @@

    Arguments

    @@ -6029,7 +6029,7 @@

    Arguments

    @@ -6083,7 +6083,7 @@

    Arguments

    @@ -6123,7 +6123,7 @@

    Arguments

    @@ -6138,7 +6138,7 @@

    Arguments

    @@ -6178,7 +6178,7 @@

    Arguments

    @@ -6193,7 +6193,7 @@

    Arguments

    @@ -6233,7 +6233,7 @@

    Arguments

    @@ -6248,7 +6248,7 @@

    Arguments

    @@ -6263,7 +6263,7 @@

    Arguments

    @@ -6278,7 +6278,7 @@

    Arguments

    @@ -6350,7 +6350,7 @@

    Arguments

    @@ -6365,7 +6365,7 @@

    Arguments

    @@ -6452,7 +6452,7 @@

    Arguments

    @@ -6492,7 +6492,7 @@

    Arguments

    @@ -6507,7 +6507,7 @@

    Arguments

    @@ -6522,7 +6522,7 @@

    Arguments

    @@ -6537,7 +6537,7 @@

    Arguments

    @@ -6592,7 +6592,7 @@

    Arguments

    @@ -6662,7 +6662,7 @@

    Arguments

    @@ -6732,7 +6732,7 @@

    Arguments

    @@ -6802,7 +6802,7 @@

    Arguments

    @@ -6842,7 +6842,7 @@

    Arguments

    @@ -6857,7 +6857,7 @@

    Arguments

    @@ -6872,7 +6872,7 @@

    Arguments

    @@ -6887,7 +6887,7 @@

    Arguments

    @@ -6902,7 +6902,7 @@

    Arguments

    @@ -6917,7 +6917,7 @@

    Arguments

    @@ -6932,7 +6932,7 @@

    Arguments

    @@ -6947,7 +6947,7 @@

    Arguments

    @@ -6962,7 +6962,7 @@

    Arguments

    @@ -6977,7 +6977,7 @@

    Arguments

    @@ -6992,7 +6992,7 @@

    Arguments

    @@ -7007,7 +7007,7 @@

    Arguments

    @@ -7022,7 +7022,7 @@

    Arguments

    @@ -7037,7 +7037,7 @@

    Arguments

    @@ -7052,7 +7052,7 @@

    Arguments

    @@ -7067,7 +7067,7 @@

    Arguments

    @@ -7082,7 +7082,7 @@

    Arguments

    @@ -7097,7 +7097,7 @@

    Arguments

    @@ -7112,7 +7112,7 @@

    Arguments

    @@ -7127,7 +7127,7 @@

    Arguments

    @@ -7142,7 +7142,7 @@

    Arguments

    @@ -7157,7 +7157,7 @@

    Arguments

    @@ -7172,7 +7172,7 @@

    Arguments

    @@ -7187,7 +7187,7 @@

    Arguments

    @@ -7202,7 +7202,7 @@

    Arguments

    @@ -7242,7 +7242,7 @@

    Arguments

    @@ -7282,7 +7282,7 @@

    Arguments

    @@ -7297,7 +7297,7 @@

    Arguments

    @@ -7338,7 +7338,7 @@

    Arguments

    @@ -7354,7 +7354,7 @@

    Arguments

    @@ -7370,7 +7370,7 @@

    Arguments

    @@ -7410,7 +7410,7 @@

    Arguments

    @@ -7425,7 +7425,7 @@

    Arguments

    @@ -7465,7 +7465,7 @@

    Arguments

    @@ -7481,7 +7481,7 @@

    Arguments

    @@ -7497,7 +7497,7 @@

    Arguments

    @@ -7537,7 +7537,7 @@

    Arguments

    @@ -7567,7 +7567,7 @@

    Arguments

    @@ -7607,7 +7607,7 @@

    Arguments

    @@ -7622,7 +7622,7 @@

    Arguments

    @@ -7677,7 +7677,7 @@

    Arguments

    @@ -7692,7 +7692,7 @@

    Arguments

    @@ -7732,7 +7732,7 @@

    Arguments

    @@ -7747,7 +7747,7 @@

    Arguments

    @@ -7762,7 +7762,7 @@

    Arguments

    @@ -7777,7 +7777,7 @@

    Arguments

    @@ -7832,7 +7832,7 @@

    Arguments

    @@ -7887,7 +7887,7 @@

    Arguments

    @@ -7942,7 +7942,7 @@

    Arguments

    @@ -7957,7 +7957,7 @@

    Arguments

    @@ -7997,7 +7997,7 @@

    Arguments

    @@ -8012,7 +8012,7 @@

    Arguments

    @@ -8057,7 +8057,7 @@

    Arguments

    @@ -8072,7 +8072,7 @@

    Arguments

    @@ -8102,7 +8102,7 @@

    Arguments

    @@ -8117,7 +8117,7 @@

    Arguments

    @@ -8157,7 +8157,7 @@

    Arguments

    @@ -8172,7 +8172,7 @@

    Arguments

    @@ -8187,7 +8187,7 @@

    Arguments

    @@ -8202,7 +8202,7 @@

    Arguments

    @@ -8217,7 +8217,7 @@

    Arguments

    @@ -8247,7 +8247,7 @@

    Arguments

    @@ -8287,7 +8287,7 @@

    Arguments

    @@ -8302,7 +8302,7 @@

    Arguments

    @@ -8342,7 +8342,7 @@

    Arguments

    @@ -8358,7 +8358,7 @@

    Arguments

    @@ -8374,7 +8374,7 @@

    Arguments

    @@ -8414,7 +8414,7 @@

    Arguments

    @@ -8444,7 +8444,7 @@

    Arguments

    @@ -8484,7 +8484,7 @@

    Arguments

    @@ -8499,7 +8499,7 @@

    Arguments

    @@ -8554,7 +8554,7 @@

    Arguments

    @@ -8569,7 +8569,7 @@

    Arguments

    @@ -8609,7 +8609,7 @@

    Arguments

    @@ -8624,7 +8624,7 @@

    Arguments

    @@ -8639,7 +8639,7 @@

    Arguments

    @@ -8654,7 +8654,7 @@

    Arguments

    @@ -8709,7 +8709,7 @@

    Arguments

    @@ -8764,7 +8764,7 @@

    Arguments

    @@ -8819,7 +8819,7 @@

    Arguments

    @@ -8834,7 +8834,7 @@

    Arguments

    @@ -8874,7 +8874,7 @@

    Arguments

    @@ -8889,7 +8889,7 @@

    Arguments

    @@ -8934,7 +8934,7 @@

    Arguments

    @@ -8949,7 +8949,7 @@

    Arguments

    @@ -8979,7 +8979,7 @@

    Arguments

    @@ -8994,7 +8994,7 @@

    Arguments

    @@ -9034,7 +9034,7 @@

    Arguments

    @@ -9049,7 +9049,7 @@

    Arguments

    @@ -9064,7 +9064,7 @@

    Arguments

    @@ -9079,7 +9079,7 @@

    Arguments

    @@ -9094,7 +9094,7 @@

    Arguments

    @@ -9124,7 +9124,7 @@

    Arguments

    @@ -9164,7 +9164,7 @@

    Arguments

    @@ -9179,7 +9179,7 @@

    Arguments

    @@ -9219,7 +9219,7 @@

    Arguments

    @@ -9235,7 +9235,7 @@

    Arguments

    @@ -9251,7 +9251,7 @@

    Arguments

    @@ -9291,7 +9291,7 @@

    Arguments

    @@ -9321,7 +9321,7 @@

    Arguments

    @@ -9361,7 +9361,7 @@

    Arguments

    @@ -9376,7 +9376,7 @@

    Arguments

    @@ -9431,7 +9431,7 @@

    Arguments

    @@ -9446,7 +9446,7 @@

    Arguments

    @@ -9486,7 +9486,7 @@

    Arguments

    @@ -9501,7 +9501,7 @@

    Arguments

    @@ -9516,7 +9516,7 @@

    Arguments

    @@ -9531,7 +9531,7 @@

    Arguments

    @@ -9586,7 +9586,7 @@

    Arguments

    @@ -9641,7 +9641,7 @@

    Arguments

    @@ -9696,7 +9696,7 @@

    Arguments

    @@ -9711,7 +9711,7 @@

    Arguments

    @@ -9751,7 +9751,7 @@

    Arguments

    @@ -9766,7 +9766,7 @@

    Arguments

    @@ -9811,7 +9811,7 @@

    Arguments

    @@ -9826,7 +9826,7 @@

    Arguments

    @@ -9856,7 +9856,7 @@

    Arguments

    @@ -9871,7 +9871,7 @@

    Arguments

    @@ -9911,7 +9911,7 @@

    Arguments

    @@ -9926,7 +9926,7 @@

    Arguments

    @@ -9941,7 +9941,7 @@

    Arguments

    @@ -9956,7 +9956,7 @@

    Arguments

    @@ -9971,7 +9971,7 @@

    Arguments

    @@ -10001,7 +10001,7 @@

    Arguments

    @@ -10041,7 +10041,7 @@

    Arguments

    @@ -10056,7 +10056,7 @@

    Arguments

    @@ -10096,7 +10096,7 @@

    Arguments

    @@ -10112,7 +10112,7 @@

    Arguments

    @@ -10128,7 +10128,7 @@

    Arguments

    @@ -10168,7 +10168,7 @@

    Arguments

    @@ -10198,7 +10198,7 @@

    Arguments

    @@ -10238,7 +10238,7 @@

    Arguments

    @@ -10253,7 +10253,7 @@

    Arguments

    @@ -10308,7 +10308,7 @@

    Arguments

    @@ -10323,7 +10323,7 @@

    Arguments

    @@ -10363,7 +10363,7 @@

    Arguments

    @@ -10378,7 +10378,7 @@

    Arguments

    @@ -10393,7 +10393,7 @@

    Arguments

    @@ -10408,7 +10408,7 @@

    Arguments

    @@ -10463,7 +10463,7 @@

    Arguments

    @@ -10518,7 +10518,7 @@

    Arguments

    @@ -10573,7 +10573,7 @@

    Arguments

    @@ -10588,7 +10588,7 @@

    Arguments

    @@ -10628,7 +10628,7 @@

    Arguments

    @@ -10643,7 +10643,7 @@

    Arguments

    @@ -10688,7 +10688,7 @@

    Arguments

    @@ -10703,7 +10703,7 @@

    Arguments

    @@ -10733,7 +10733,7 @@

    Arguments

    @@ -10748,7 +10748,7 @@

    Arguments

    @@ -10788,7 +10788,7 @@

    Arguments

    @@ -10803,7 +10803,7 @@

    Arguments

    @@ -10818,7 +10818,7 @@

    Arguments

    @@ -10833,7 +10833,7 @@

    Arguments

    @@ -10848,7 +10848,7 @@

    Arguments

    @@ -10878,7 +10878,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_print_messages.html b/develop/module/dbcsr_print_messages.html index 441e9a3b039..e8ec86a6945 100644 --- a/develop/module/dbcsr_print_messages.html +++ b/develop/module/dbcsr_print_messages.html @@ -113,7 +113,7 @@

    Variables

    @@ -195,7 +195,7 @@

    Variables

    @@ -244,7 +244,7 @@

    Arguments

    @@ -259,7 +259,7 @@

    Arguments

    @@ -289,7 +289,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_ptr_util.html b/develop/module/dbcsr_ptr_util.html index 809fc41f61d..9de3d1bcb3f 100644 --- a/develop/module/dbcsr_ptr_util.html +++ b/develop/module/dbcsr_ptr_util.html @@ -113,8 +113,8 @@

    Variables

    @@ -243,12 +243,12 @@

    Uses

    @@ -273,7 +273,7 @@

    Variables

    @@ -290,7 +290,7 @@

    Variables

    @@ -342,7 +342,7 @@

    Arguments

    @@ -372,7 +372,7 @@

    Arguments

    @@ -387,7 +387,7 @@

    Arguments

    @@ -402,7 +402,7 @@

    Arguments

    @@ -417,7 +417,7 @@

    Arguments

    @@ -433,7 +433,7 @@

    Arguments

    @@ -448,7 +448,7 @@

    Arguments

    @@ -488,7 +488,7 @@

    Arguments

    @@ -518,7 +518,7 @@

    Arguments

    @@ -533,7 +533,7 @@

    Arguments

    @@ -548,7 +548,7 @@

    Arguments

    @@ -563,7 +563,7 @@

    Arguments

    @@ -579,7 +579,7 @@

    Arguments

    @@ -594,7 +594,7 @@

    Arguments

    @@ -634,7 +634,7 @@

    Arguments

    @@ -664,7 +664,7 @@

    Arguments

    @@ -679,7 +679,7 @@

    Arguments

    @@ -694,7 +694,7 @@

    Arguments

    @@ -709,7 +709,7 @@

    Arguments

    @@ -725,7 +725,7 @@

    Arguments

    @@ -740,7 +740,7 @@

    Arguments

    @@ -780,7 +780,7 @@

    Arguments

    @@ -810,7 +810,7 @@

    Arguments

    @@ -825,7 +825,7 @@

    Arguments

    @@ -840,7 +840,7 @@

    Arguments

    @@ -855,7 +855,7 @@

    Arguments

    @@ -871,7 +871,7 @@

    Arguments

    @@ -886,7 +886,7 @@

    Arguments

    @@ -926,7 +926,7 @@

    Arguments

    @@ -956,7 +956,7 @@

    Arguments

    @@ -971,7 +971,7 @@

    Arguments

    @@ -986,7 +986,7 @@

    Arguments

    @@ -1001,7 +1001,7 @@

    Arguments

    @@ -1017,7 +1017,7 @@

    Arguments

    @@ -1032,7 +1032,7 @@

    Arguments

    @@ -1072,7 +1072,7 @@

    Arguments

    @@ -1102,7 +1102,7 @@

    Arguments

    @@ -1117,7 +1117,7 @@

    Arguments

    @@ -1132,7 +1132,7 @@

    Arguments

    @@ -1147,7 +1147,7 @@

    Arguments

    @@ -1163,7 +1163,7 @@

    Arguments

    @@ -1178,7 +1178,7 @@

    Arguments

    @@ -1244,7 +1244,7 @@

    Arguments

    @@ -1260,7 +1260,7 @@

    Arguments

    @@ -1322,7 +1322,7 @@

    Arguments

    @@ -1338,7 +1338,7 @@

    Arguments

    @@ -1400,7 +1400,7 @@

    Arguments

    @@ -1416,7 +1416,7 @@

    Arguments

    @@ -1478,7 +1478,7 @@

    Arguments

    @@ -1494,7 +1494,7 @@

    Arguments

    @@ -1556,7 +1556,7 @@

    Arguments

    @@ -1572,7 +1572,7 @@

    Arguments

    @@ -1634,7 +1634,7 @@

    Arguments

    @@ -1650,7 +1650,7 @@

    Arguments

    @@ -1711,7 +1711,7 @@

    Arguments

    @@ -1726,7 +1726,7 @@

    Arguments

    @@ -2345,7 +2345,7 @@

    Arguments

    @@ -2414,7 +2414,7 @@

    Arguments

    @@ -2483,7 +2483,7 @@

    Arguments

    @@ -2552,7 +2552,7 @@

    Arguments

    @@ -2621,7 +2621,7 @@

    Arguments

    @@ -2690,7 +2690,7 @@

    Arguments

    @@ -2754,7 +2754,7 @@

    Arguments

    @@ -2808,7 +2808,7 @@

    Arguments

    @@ -2862,7 +2862,7 @@

    Arguments

    @@ -2916,7 +2916,7 @@

    Arguments

    @@ -2970,7 +2970,7 @@

    Arguments

    @@ -3024,7 +3024,7 @@

    Arguments

    @@ -3073,7 +3073,7 @@

    Arguments

    @@ -3088,7 +3088,7 @@

    Arguments

    @@ -3142,7 +3142,7 @@

    Arguments

    @@ -3157,7 +3157,7 @@

    Arguments

    @@ -3211,7 +3211,7 @@

    Arguments

    @@ -3226,7 +3226,7 @@

    Arguments

    @@ -3280,7 +3280,7 @@

    Arguments

    @@ -3295,7 +3295,7 @@

    Arguments

    @@ -3349,7 +3349,7 @@

    Arguments

    @@ -3364,7 +3364,7 @@

    Arguments

    @@ -3418,7 +3418,7 @@

    Arguments

    @@ -3433,7 +3433,7 @@

    Arguments

    @@ -3487,7 +3487,7 @@

    Arguments

    @@ -3502,7 +3502,7 @@

    Arguments

    @@ -3556,7 +3556,7 @@

    Arguments

    @@ -3571,7 +3571,7 @@

    Arguments

    @@ -3625,7 +3625,7 @@

    Arguments

    @@ -3640,7 +3640,7 @@

    Arguments

    @@ -3694,7 +3694,7 @@

    Arguments

    @@ -3709,7 +3709,7 @@

    Arguments

    @@ -3763,7 +3763,7 @@

    Arguments

    @@ -3778,7 +3778,7 @@

    Arguments

    @@ -3832,7 +3832,7 @@

    Arguments

    @@ -3847,7 +3847,7 @@

    Arguments

    @@ -3911,7 +3911,7 @@

    Arguments

    @@ -3965,7 +3965,7 @@

    Arguments

    @@ -4019,7 +4019,7 @@

    Arguments

    @@ -4073,7 +4073,7 @@

    Arguments

    @@ -4127,7 +4127,7 @@

    Arguments

    @@ -4181,7 +4181,7 @@

    Arguments

    @@ -4235,7 +4235,7 @@

    Arguments

    @@ -4289,7 +4289,7 @@

    Arguments

    @@ -4343,7 +4343,7 @@

    Arguments

    @@ -4397,7 +4397,7 @@

    Arguments

    @@ -4451,7 +4451,7 @@

    Arguments

    @@ -4505,7 +4505,7 @@

    Arguments

    @@ -4583,7 +4583,7 @@

    Arguments

    @@ -4598,7 +4598,7 @@

    Arguments

    @@ -4674,7 +4674,7 @@

    Arguments

    @@ -4690,7 +4690,7 @@

    Arguments

    @@ -4753,7 +4753,7 @@

    Arguments

    @@ -4769,7 +4769,7 @@

    Arguments

    @@ -4832,7 +4832,7 @@

    Arguments

    @@ -4848,7 +4848,7 @@

    Arguments

    @@ -4911,7 +4911,7 @@

    Arguments

    @@ -4927,7 +4927,7 @@

    Arguments

    @@ -4990,7 +4990,7 @@

    Arguments

    @@ -5006,7 +5006,7 @@

    Arguments

    @@ -5069,7 +5069,7 @@

    Arguments

    @@ -5085,7 +5085,7 @@

    Arguments

    @@ -5137,7 +5137,7 @@

    Arguments

    @@ -5167,7 +5167,7 @@

    Arguments

    @@ -5182,7 +5182,7 @@

    Arguments

    @@ -5197,7 +5197,7 @@

    Arguments

    @@ -5212,7 +5212,7 @@

    Arguments

    @@ -5228,7 +5228,7 @@

    Arguments

    @@ -5243,7 +5243,7 @@

    Arguments

    @@ -5314,7 +5314,7 @@

    Arguments

    @@ -5369,7 +5369,7 @@

    Arguments

    @@ -5409,7 +5409,7 @@

    Arguments

    @@ -5424,7 +5424,7 @@

    Arguments

    @@ -5479,7 +5479,7 @@

    Arguments

    @@ -5494,7 +5494,7 @@

    Arguments

    @@ -5549,7 +5549,7 @@

    Arguments

    @@ -5604,7 +5604,7 @@

    Arguments

    @@ -5745,7 +5745,7 @@

    Arguments

    @@ -5775,7 +5775,7 @@

    Arguments

    @@ -5790,7 +5790,7 @@

    Arguments

    @@ -5805,7 +5805,7 @@

    Arguments

    @@ -5820,7 +5820,7 @@

    Arguments

    @@ -5836,7 +5836,7 @@

    Arguments

    @@ -5851,7 +5851,7 @@

    Arguments

    @@ -5922,7 +5922,7 @@

    Arguments

    @@ -5977,7 +5977,7 @@

    Arguments

    @@ -6017,7 +6017,7 @@

    Arguments

    @@ -6032,7 +6032,7 @@

    Arguments

    @@ -6087,7 +6087,7 @@

    Arguments

    @@ -6102,7 +6102,7 @@

    Arguments

    @@ -6157,7 +6157,7 @@

    Arguments

    @@ -6212,7 +6212,7 @@

    Arguments

    @@ -6353,7 +6353,7 @@

    Arguments

    @@ -6383,7 +6383,7 @@

    Arguments

    @@ -6398,7 +6398,7 @@

    Arguments

    @@ -6413,7 +6413,7 @@

    Arguments

    @@ -6428,7 +6428,7 @@

    Arguments

    @@ -6444,7 +6444,7 @@

    Arguments

    @@ -6459,7 +6459,7 @@

    Arguments

    @@ -6530,7 +6530,7 @@

    Arguments

    @@ -6585,7 +6585,7 @@

    Arguments

    @@ -6625,7 +6625,7 @@

    Arguments

    @@ -6640,7 +6640,7 @@

    Arguments

    @@ -6695,7 +6695,7 @@

    Arguments

    @@ -6710,7 +6710,7 @@

    Arguments

    @@ -6765,7 +6765,7 @@

    Arguments

    @@ -6820,7 +6820,7 @@

    Arguments

    @@ -6961,7 +6961,7 @@

    Arguments

    @@ -6991,7 +6991,7 @@

    Arguments

    @@ -7006,7 +7006,7 @@

    Arguments

    @@ -7021,7 +7021,7 @@

    Arguments

    @@ -7036,7 +7036,7 @@

    Arguments

    @@ -7052,7 +7052,7 @@

    Arguments

    @@ -7067,7 +7067,7 @@

    Arguments

    @@ -7138,7 +7138,7 @@

    Arguments

    @@ -7193,7 +7193,7 @@

    Arguments

    @@ -7233,7 +7233,7 @@

    Arguments

    @@ -7248,7 +7248,7 @@

    Arguments

    @@ -7303,7 +7303,7 @@

    Arguments

    @@ -7318,7 +7318,7 @@

    Arguments

    @@ -7373,7 +7373,7 @@

    Arguments

    @@ -7428,7 +7428,7 @@

    Arguments

    @@ -7569,7 +7569,7 @@

    Arguments

    @@ -7599,7 +7599,7 @@

    Arguments

    @@ -7614,7 +7614,7 @@

    Arguments

    @@ -7629,7 +7629,7 @@

    Arguments

    @@ -7644,7 +7644,7 @@

    Arguments

    @@ -7660,7 +7660,7 @@

    Arguments

    @@ -7675,7 +7675,7 @@

    Arguments

    @@ -7746,7 +7746,7 @@

    Arguments

    @@ -7801,7 +7801,7 @@

    Arguments

    @@ -7841,7 +7841,7 @@

    Arguments

    @@ -7856,7 +7856,7 @@

    Arguments

    @@ -7911,7 +7911,7 @@

    Arguments

    @@ -7926,7 +7926,7 @@

    Arguments

    @@ -7981,7 +7981,7 @@

    Arguments

    @@ -8036,7 +8036,7 @@

    Arguments

    @@ -8177,7 +8177,7 @@

    Arguments

    @@ -8207,7 +8207,7 @@

    Arguments

    @@ -8222,7 +8222,7 @@

    Arguments

    @@ -8237,7 +8237,7 @@

    Arguments

    @@ -8252,7 +8252,7 @@

    Arguments

    @@ -8268,7 +8268,7 @@

    Arguments

    @@ -8283,7 +8283,7 @@

    Arguments

    @@ -8354,7 +8354,7 @@

    Arguments

    @@ -8409,7 +8409,7 @@

    Arguments

    @@ -8449,7 +8449,7 @@

    Arguments

    @@ -8464,7 +8464,7 @@

    Arguments

    @@ -8519,7 +8519,7 @@

    Arguments

    @@ -8534,7 +8534,7 @@

    Arguments

    @@ -8589,7 +8589,7 @@

    Arguments

    @@ -8644,7 +8644,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_string_utilities.html b/develop/module/dbcsr_string_utilities.html index c44de48f9aa..3c7f89b4567 100644 --- a/develop/module/dbcsr_string_utilities.html +++ b/develop/module/dbcsr_string_utilities.html @@ -327,7 +327,7 @@

    Arguments

    @@ -342,7 +342,7 @@

    Arguments

    @@ -382,7 +382,7 @@

    Arguments

    @@ -422,7 +422,7 @@

    Arguments

    @@ -452,7 +452,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_tas_base.html b/develop/module/dbcsr_tas_base.html index 210d9830ca0..ac2d55b4def 100644 --- a/develop/module/dbcsr_tas_base.html +++ b/develop/module/dbcsr_tas_base.html @@ -113,7 +113,7 @@

    Variables

    @@ -252,23 +252,23 @@

    Uses

    @@ -293,7 +293,7 @@

    Variables

    @@ -347,7 +347,7 @@

    Arguments

    @@ -362,7 +362,7 @@

    Arguments

    @@ -377,7 +377,7 @@

    Arguments

    @@ -392,7 +392,7 @@

    Arguments

    @@ -407,7 +407,7 @@

    Arguments

    @@ -422,7 +422,7 @@

    Arguments

    @@ -476,7 +476,7 @@

    Arguments

    @@ -491,7 +491,7 @@

    Arguments

    @@ -506,7 +506,7 @@

    Arguments

    @@ -521,7 +521,7 @@

    Arguments

    @@ -570,7 +570,7 @@

    Arguments

    @@ -585,7 +585,7 @@

    Arguments

    @@ -600,7 +600,7 @@

    Arguments

    @@ -615,7 +615,7 @@

    Arguments

    @@ -630,7 +630,7 @@

    Arguments

    @@ -645,7 +645,7 @@

    Arguments

    @@ -660,7 +660,7 @@

    Arguments

    @@ -675,7 +675,7 @@

    Arguments

    @@ -724,7 +724,7 @@

    Arguments

    @@ -739,7 +739,7 @@

    Arguments

    @@ -754,7 +754,7 @@

    Arguments

    @@ -769,7 +769,7 @@

    Arguments

    @@ -784,7 +784,7 @@

    Arguments

    @@ -799,7 +799,7 @@

    Arguments

    @@ -814,7 +814,7 @@

    Arguments

    @@ -864,7 +864,7 @@

    Arguments

    @@ -879,7 +879,7 @@

    Arguments

    @@ -918,7 +918,7 @@

    Arguments

    @@ -933,7 +933,7 @@

    Arguments

    @@ -997,7 +997,7 @@

    Arguments

    @@ -1012,7 +1012,7 @@

    Arguments

    @@ -1027,7 +1027,7 @@

    Arguments

    @@ -1042,7 +1042,7 @@

    Arguments

    @@ -1057,7 +1057,7 @@

    Arguments

    @@ -1072,7 +1072,7 @@

    Arguments

    @@ -1087,7 +1087,7 @@

    Arguments

    @@ -1102,7 +1102,7 @@

    Arguments

    @@ -1141,7 +1141,7 @@

    Arguments

    @@ -1156,7 +1156,7 @@

    Arguments

    @@ -1172,7 +1172,7 @@

    Arguments

    @@ -1188,7 +1188,7 @@

    Arguments

    @@ -1203,7 +1203,7 @@

    Arguments

    @@ -1218,7 +1218,7 @@

    Arguments

    @@ -1233,7 +1233,7 @@

    Arguments

    @@ -1248,7 +1248,7 @@

    Arguments

    @@ -1297,7 +1297,7 @@

    Arguments

    @@ -1312,7 +1312,7 @@

    Arguments

    @@ -1327,7 +1327,7 @@

    Arguments

    @@ -1342,7 +1342,7 @@

    Arguments

    @@ -1357,7 +1357,7 @@

    Arguments

    @@ -1372,7 +1372,7 @@

    Arguments

    @@ -1387,7 +1387,7 @@

    Arguments

    @@ -1402,7 +1402,7 @@

    Arguments

    @@ -1441,7 +1441,7 @@

    Arguments

    @@ -1456,7 +1456,7 @@

    Arguments

    @@ -1471,7 +1471,7 @@

    Arguments

    @@ -1486,7 +1486,7 @@

    Arguments

    @@ -1501,7 +1501,7 @@

    Arguments

    @@ -1516,7 +1516,7 @@

    Arguments

    @@ -1531,7 +1531,7 @@

    Arguments

    @@ -1546,7 +1546,7 @@

    Arguments

    @@ -1585,7 +1585,7 @@

    Arguments

    @@ -1600,7 +1600,7 @@

    Arguments

    @@ -1615,7 +1615,7 @@

    Arguments

    @@ -1630,7 +1630,7 @@

    Arguments

    @@ -1645,7 +1645,7 @@

    Arguments

    @@ -1660,7 +1660,7 @@

    Arguments

    @@ -1675,7 +1675,7 @@

    Arguments

    @@ -1690,7 +1690,7 @@

    Arguments

    @@ -1729,7 +1729,7 @@

    Arguments

    @@ -1744,7 +1744,7 @@

    Arguments

    @@ -1759,7 +1759,7 @@

    Arguments

    @@ -1774,7 +1774,7 @@

    Arguments

    @@ -1789,7 +1789,7 @@

    Arguments

    @@ -1804,7 +1804,7 @@

    Arguments

    @@ -1819,7 +1819,7 @@

    Arguments

    @@ -1834,7 +1834,7 @@

    Arguments

    @@ -1883,7 +1883,7 @@

    Arguments

    @@ -1898,7 +1898,7 @@

    Arguments

    @@ -1913,7 +1913,7 @@

    Arguments

    @@ -1928,7 +1928,7 @@

    Arguments

    @@ -1943,7 +1943,7 @@

    Arguments

    @@ -1958,7 +1958,7 @@

    Arguments

    @@ -1973,7 +1973,7 @@

    Arguments

    @@ -2012,7 +2012,7 @@

    Arguments

    @@ -2027,7 +2027,7 @@

    Arguments

    @@ -2042,7 +2042,7 @@

    Arguments

    @@ -2057,7 +2057,7 @@

    Arguments

    @@ -2072,7 +2072,7 @@

    Arguments

    @@ -2087,7 +2087,7 @@

    Arguments

    @@ -2102,7 +2102,7 @@

    Arguments

    @@ -2141,7 +2141,7 @@

    Arguments

    @@ -2156,7 +2156,7 @@

    Arguments

    @@ -2171,7 +2171,7 @@

    Arguments

    @@ -2186,7 +2186,7 @@

    Arguments

    @@ -2201,7 +2201,7 @@

    Arguments

    @@ -2216,7 +2216,7 @@

    Arguments

    @@ -2231,7 +2231,7 @@

    Arguments

    @@ -2270,7 +2270,7 @@

    Arguments

    @@ -2285,7 +2285,7 @@

    Arguments

    @@ -2300,7 +2300,7 @@

    Arguments

    @@ -2315,7 +2315,7 @@

    Arguments

    @@ -2330,7 +2330,7 @@

    Arguments

    @@ -2345,7 +2345,7 @@

    Arguments

    @@ -2360,7 +2360,7 @@

    Arguments

    @@ -2409,7 +2409,7 @@

    Arguments

    @@ -2424,7 +2424,7 @@

    Arguments

    @@ -2439,7 +2439,7 @@

    Arguments

    @@ -2454,7 +2454,7 @@

    Arguments

    @@ -2469,7 +2469,7 @@

    Arguments

    @@ -2484,7 +2484,7 @@

    Arguments

    @@ -2499,7 +2499,7 @@

    Arguments

    @@ -2514,7 +2514,7 @@

    Arguments

    @@ -2553,7 +2553,7 @@

    Arguments

    @@ -2568,7 +2568,7 @@

    Arguments

    @@ -2583,7 +2583,7 @@

    Arguments

    @@ -2598,7 +2598,7 @@

    Arguments

    @@ -2613,7 +2613,7 @@

    Arguments

    @@ -2628,7 +2628,7 @@

    Arguments

    @@ -2643,7 +2643,7 @@

    Arguments

    @@ -2658,7 +2658,7 @@

    Arguments

    @@ -2697,7 +2697,7 @@

    Arguments

    @@ -2712,7 +2712,7 @@

    Arguments

    @@ -2727,7 +2727,7 @@

    Arguments

    @@ -2742,7 +2742,7 @@

    Arguments

    @@ -2757,7 +2757,7 @@

    Arguments

    @@ -2772,7 +2772,7 @@

    Arguments

    @@ -2787,7 +2787,7 @@

    Arguments

    @@ -2802,7 +2802,7 @@

    Arguments

    @@ -2841,7 +2841,7 @@

    Arguments

    @@ -2856,7 +2856,7 @@

    Arguments

    @@ -2871,7 +2871,7 @@

    Arguments

    @@ -2886,7 +2886,7 @@

    Arguments

    @@ -2901,7 +2901,7 @@

    Arguments

    @@ -2916,7 +2916,7 @@

    Arguments

    @@ -2931,7 +2931,7 @@

    Arguments

    @@ -2946,7 +2946,7 @@

    Arguments

    @@ -2995,7 +2995,7 @@

    Arguments

    @@ -3010,7 +3010,7 @@

    Arguments

    @@ -3049,7 +3049,7 @@

    Arguments

    @@ -3064,7 +3064,7 @@

    Arguments

    @@ -3103,7 +3103,7 @@

    Arguments

    @@ -3118,7 +3118,7 @@

    Arguments

    @@ -3157,7 +3157,7 @@

    Arguments

    @@ -3172,7 +3172,7 @@

    Arguments

    @@ -3221,7 +3221,7 @@

    Arguments

    @@ -3236,7 +3236,7 @@

    Arguments

    @@ -3251,7 +3251,7 @@

    Arguments

    @@ -3266,7 +3266,7 @@

    Arguments

    @@ -3305,7 +3305,7 @@

    Arguments

    @@ -3320,7 +3320,7 @@

    Arguments

    @@ -3335,7 +3335,7 @@

    Arguments

    @@ -3350,7 +3350,7 @@

    Arguments

    @@ -3389,7 +3389,7 @@

    Arguments

    @@ -3404,7 +3404,7 @@

    Arguments

    @@ -3419,7 +3419,7 @@

    Arguments

    @@ -3434,7 +3434,7 @@

    Arguments

    @@ -3473,7 +3473,7 @@

    Arguments

    @@ -3488,7 +3488,7 @@

    Arguments

    @@ -3503,7 +3503,7 @@

    Arguments

    @@ -3518,7 +3518,7 @@

    Arguments

    @@ -3566,7 +3566,7 @@

    Arguments

    @@ -3611,7 +3611,7 @@

    Arguments

    @@ -3656,7 +3656,7 @@

    Arguments

    @@ -3701,7 +3701,7 @@

    Arguments

    @@ -3746,7 +3746,7 @@

    Arguments

    @@ -3791,7 +3791,7 @@

    Arguments

    @@ -3836,7 +3836,7 @@

    Arguments

    @@ -3881,7 +3881,7 @@

    Arguments

    @@ -3926,7 +3926,7 @@

    Arguments

    @@ -3971,7 +3971,7 @@

    Arguments

    @@ -4016,7 +4016,7 @@

    Arguments

    @@ -4061,7 +4061,7 @@

    Arguments

    @@ -4106,7 +4106,7 @@

    Arguments

    @@ -4151,7 +4151,7 @@

    Arguments

    @@ -4203,7 +4203,7 @@

    Arguments

    @@ -4218,7 +4218,7 @@

    Arguments

    @@ -4233,7 +4233,7 @@

    Arguments

    @@ -4248,7 +4248,7 @@

    Arguments

    @@ -4263,7 +4263,7 @@

    Arguments

    @@ -4278,7 +4278,7 @@

    Arguments

    @@ -4333,7 +4333,7 @@

    Arguments

    @@ -4348,7 +4348,7 @@

    Arguments

    @@ -4363,7 +4363,7 @@

    Arguments

    @@ -4378,7 +4378,7 @@

    Arguments

    @@ -4418,7 +4418,7 @@

    Arguments

    @@ -4458,7 +4458,7 @@

    Arguments

    @@ -4473,7 +4473,7 @@

    Arguments

    @@ -4488,7 +4488,7 @@

    Arguments

    @@ -4529,7 +4529,7 @@

    Arguments

    @@ -4544,7 +4544,7 @@

    Arguments

    @@ -4584,7 +4584,7 @@

    Arguments

    @@ -4626,7 +4626,7 @@

    Arguments

    @@ -4641,7 +4641,7 @@

    Arguments

    @@ -4656,7 +4656,7 @@

    Arguments

    @@ -4671,7 +4671,7 @@

    Arguments

    @@ -4741,7 +4741,7 @@

    Arguments

    @@ -4781,7 +4781,7 @@

    Arguments

    @@ -4796,7 +4796,7 @@

    Arguments

    @@ -4812,7 +4812,7 @@

    Arguments

    @@ -4828,7 +4828,7 @@

    Arguments

    @@ -4869,7 +4869,7 @@

    Arguments

    @@ -4884,7 +4884,7 @@

    Arguments

    @@ -4900,7 +4900,7 @@

    Arguments

    @@ -5012,7 +5012,7 @@

    Arguments

    @@ -5082,7 +5082,7 @@

    Arguments

    @@ -5097,7 +5097,7 @@

    Arguments

    @@ -5137,7 +5137,7 @@

    Arguments

    @@ -5177,7 +5177,7 @@

    Arguments

    @@ -5192,7 +5192,7 @@

    Arguments

    @@ -5207,7 +5207,7 @@

    Arguments

    @@ -5222,7 +5222,7 @@

    Arguments

    @@ -5237,7 +5237,7 @@

    Arguments

    @@ -5252,7 +5252,7 @@

    Arguments

    @@ -5267,7 +5267,7 @@

    Arguments

    @@ -5282,7 +5282,7 @@

    Arguments

    @@ -5322,7 +5322,7 @@

    Arguments

    @@ -5337,7 +5337,7 @@

    Arguments

    @@ -5353,7 +5353,7 @@

    Arguments

    @@ -5369,7 +5369,7 @@

    Arguments

    @@ -5384,7 +5384,7 @@

    Arguments

    @@ -5399,7 +5399,7 @@

    Arguments

    @@ -5414,7 +5414,7 @@

    Arguments

    @@ -5429,7 +5429,7 @@

    Arguments

    @@ -5469,7 +5469,7 @@

    Arguments

    @@ -5484,7 +5484,7 @@

    Arguments

    @@ -5539,7 +5539,7 @@

    Arguments

    @@ -5554,7 +5554,7 @@

    Arguments

    @@ -5569,7 +5569,7 @@

    Arguments

    @@ -5584,7 +5584,7 @@

    Arguments

    @@ -5599,7 +5599,7 @@

    Arguments

    @@ -5614,7 +5614,7 @@

    Arguments

    @@ -5629,7 +5629,7 @@

    Arguments

    @@ -5669,7 +5669,7 @@

    Arguments

    @@ -5684,7 +5684,7 @@

    Arguments

    @@ -5699,7 +5699,7 @@

    Arguments

    @@ -5714,7 +5714,7 @@

    Arguments

    @@ -5729,7 +5729,7 @@

    Arguments

    @@ -5744,7 +5744,7 @@

    Arguments

    @@ -5759,7 +5759,7 @@

    Arguments

    @@ -5774,7 +5774,7 @@

    Arguments

    @@ -5884,7 +5884,7 @@

    Arguments

    @@ -5899,7 +5899,7 @@

    Arguments

    @@ -5914,7 +5914,7 @@

    Arguments

    @@ -5929,7 +5929,7 @@

    Arguments

    @@ -5944,7 +5944,7 @@

    Arguments

    @@ -5984,7 +5984,7 @@

    Arguments

    @@ -6024,7 +6024,7 @@

    Arguments

    @@ -6039,7 +6039,7 @@

    Arguments

    @@ -6054,7 +6054,7 @@

    Arguments

    @@ -6069,7 +6069,7 @@

    Arguments

    @@ -6084,7 +6084,7 @@

    Arguments

    @@ -6099,7 +6099,7 @@

    Arguments

    @@ -6129,7 +6129,7 @@

    Arguments

    @@ -6144,7 +6144,7 @@

    Arguments

    @@ -6189,7 +6189,7 @@

    Arguments

    @@ -6204,7 +6204,7 @@

    Arguments

    @@ -6249,7 +6249,7 @@

    Arguments

    @@ -6264,7 +6264,7 @@

    Arguments

    @@ -6279,7 +6279,7 @@

    Arguments

    @@ -6294,7 +6294,7 @@

    Arguments

    @@ -6309,7 +6309,7 @@

    Arguments

    @@ -6324,7 +6324,7 @@

    Arguments

    @@ -6354,7 +6354,7 @@

    Arguments

    @@ -6369,7 +6369,7 @@

    Arguments

    @@ -6409,7 +6409,7 @@

    Arguments

    @@ -6424,7 +6424,7 @@

    Arguments

    @@ -6439,7 +6439,7 @@

    Arguments

    @@ -6454,7 +6454,7 @@

    Arguments

    @@ -6469,7 +6469,7 @@

    Arguments

    @@ -6484,7 +6484,7 @@

    Arguments

    @@ -6499,7 +6499,7 @@

    Arguments

    @@ -6514,7 +6514,7 @@

    Arguments

    @@ -6554,7 +6554,7 @@

    Arguments

    @@ -6569,7 +6569,7 @@

    Arguments

    @@ -6584,7 +6584,7 @@

    Arguments

    @@ -6599,7 +6599,7 @@

    Arguments

    @@ -6614,7 +6614,7 @@

    Arguments

    @@ -6629,7 +6629,7 @@

    Arguments

    @@ -6644,7 +6644,7 @@

    Arguments

    @@ -6659,7 +6659,7 @@

    Arguments

    @@ -6699,7 +6699,7 @@

    Arguments

    @@ -6714,7 +6714,7 @@

    Arguments

    @@ -6729,7 +6729,7 @@

    Arguments

    @@ -6744,7 +6744,7 @@

    Arguments

    @@ -6759,7 +6759,7 @@

    Arguments

    @@ -6774,7 +6774,7 @@

    Arguments

    @@ -6789,7 +6789,7 @@

    Arguments

    @@ -6804,7 +6804,7 @@

    Arguments

    @@ -6844,7 +6844,7 @@

    Arguments

    @@ -6859,7 +6859,7 @@

    Arguments

    @@ -6874,7 +6874,7 @@

    Arguments

    @@ -6889,7 +6889,7 @@

    Arguments

    @@ -6904,7 +6904,7 @@

    Arguments

    @@ -6919,7 +6919,7 @@

    Arguments

    @@ -6934,7 +6934,7 @@

    Arguments

    @@ -6949,7 +6949,7 @@

    Arguments

    @@ -6989,7 +6989,7 @@

    Arguments

    @@ -7004,7 +7004,7 @@

    Arguments

    @@ -7019,7 +7019,7 @@

    Arguments

    @@ -7034,7 +7034,7 @@

    Arguments

    @@ -7049,7 +7049,7 @@

    Arguments

    @@ -7064,7 +7064,7 @@

    Arguments

    @@ -7079,7 +7079,7 @@

    Arguments

    @@ -7119,7 +7119,7 @@

    Arguments

    @@ -7134,7 +7134,7 @@

    Arguments

    @@ -7149,7 +7149,7 @@

    Arguments

    @@ -7164,7 +7164,7 @@

    Arguments

    @@ -7179,7 +7179,7 @@

    Arguments

    @@ -7194,7 +7194,7 @@

    Arguments

    @@ -7209,7 +7209,7 @@

    Arguments

    @@ -7249,7 +7249,7 @@

    Arguments

    @@ -7264,7 +7264,7 @@

    Arguments

    @@ -7279,7 +7279,7 @@

    Arguments

    @@ -7294,7 +7294,7 @@

    Arguments

    @@ -7309,7 +7309,7 @@

    Arguments

    @@ -7324,7 +7324,7 @@

    Arguments

    @@ -7339,7 +7339,7 @@

    Arguments

    @@ -7379,7 +7379,7 @@

    Arguments

    @@ -7394,7 +7394,7 @@

    Arguments

    @@ -7409,7 +7409,7 @@

    Arguments

    @@ -7424,7 +7424,7 @@

    Arguments

    @@ -7439,7 +7439,7 @@

    Arguments

    @@ -7454,7 +7454,7 @@

    Arguments

    @@ -7469,7 +7469,7 @@

    Arguments

    @@ -7509,7 +7509,7 @@

    Arguments

    @@ -7524,7 +7524,7 @@

    Arguments

    @@ -7539,7 +7539,7 @@

    Arguments

    @@ -7554,7 +7554,7 @@

    Arguments

    @@ -7569,7 +7569,7 @@

    Arguments

    @@ -7584,7 +7584,7 @@

    Arguments

    @@ -7599,7 +7599,7 @@

    Arguments

    @@ -7614,7 +7614,7 @@

    Arguments

    @@ -7654,7 +7654,7 @@

    Arguments

    @@ -7669,7 +7669,7 @@

    Arguments

    @@ -7684,7 +7684,7 @@

    Arguments

    @@ -7699,7 +7699,7 @@

    Arguments

    @@ -7714,7 +7714,7 @@

    Arguments

    @@ -7729,7 +7729,7 @@

    Arguments

    @@ -7744,7 +7744,7 @@

    Arguments

    @@ -7759,7 +7759,7 @@

    Arguments

    @@ -7799,7 +7799,7 @@

    Arguments

    @@ -7814,7 +7814,7 @@

    Arguments

    @@ -7829,7 +7829,7 @@

    Arguments

    @@ -7844,7 +7844,7 @@

    Arguments

    @@ -7859,7 +7859,7 @@

    Arguments

    @@ -7874,7 +7874,7 @@

    Arguments

    @@ -7889,7 +7889,7 @@

    Arguments

    @@ -7904,7 +7904,7 @@

    Arguments

    @@ -7944,7 +7944,7 @@

    Arguments

    @@ -7959,7 +7959,7 @@

    Arguments

    @@ -7974,7 +7974,7 @@

    Arguments

    @@ -7989,7 +7989,7 @@

    Arguments

    @@ -8004,7 +8004,7 @@

    Arguments

    @@ -8019,7 +8019,7 @@

    Arguments

    @@ -8034,7 +8034,7 @@

    Arguments

    @@ -8049,7 +8049,7 @@

    Arguments

    @@ -8089,7 +8089,7 @@

    Arguments

    @@ -8104,7 +8104,7 @@

    Arguments

    @@ -8144,7 +8144,7 @@

    Arguments

    @@ -8159,7 +8159,7 @@

    Arguments

    @@ -8199,7 +8199,7 @@

    Arguments

    @@ -8214,7 +8214,7 @@

    Arguments

    @@ -8254,7 +8254,7 @@

    Arguments

    @@ -8269,7 +8269,7 @@

    Arguments

    @@ -8309,7 +8309,7 @@

    Arguments

    @@ -8324,7 +8324,7 @@

    Arguments

    @@ -8339,7 +8339,7 @@

    Arguments

    @@ -8354,7 +8354,7 @@

    Arguments

    @@ -8394,7 +8394,7 @@

    Arguments

    @@ -8409,7 +8409,7 @@

    Arguments

    @@ -8424,7 +8424,7 @@

    Arguments

    @@ -8439,7 +8439,7 @@

    Arguments

    @@ -8479,7 +8479,7 @@

    Arguments

    @@ -8494,7 +8494,7 @@

    Arguments

    @@ -8509,7 +8509,7 @@

    Arguments

    @@ -8524,7 +8524,7 @@

    Arguments

    @@ -8564,7 +8564,7 @@

    Arguments

    @@ -8579,7 +8579,7 @@

    Arguments

    @@ -8594,7 +8594,7 @@

    Arguments

    @@ -8609,7 +8609,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_tas_global.html b/develop/module/dbcsr_tas_global.html index 84ba4a0497e..97535d0a74d 100644 --- a/develop/module/dbcsr_tas_global.html +++ b/develop/module/dbcsr_tas_global.html @@ -113,7 +113,7 @@

    Variables

    @@ -239,9 +239,9 @@

    Uses

    @@ -266,7 +266,7 @@

    Variables

    @@ -546,7 +546,7 @@

    Arguments

    @@ -779,7 +779,7 @@

    Arguments

    @@ -845,7 +845,7 @@

    Arguments

    @@ -860,7 +860,7 @@

    Arguments

    @@ -911,7 +911,7 @@

    Arguments

    @@ -1025,7 +1025,7 @@

    Type-Bound Procedures

    + dist @@ -1140,7 +1140,7 @@

    Type-Bound Procedures

    + dist => cyclic_dist @@ -1255,7 +1255,7 @@

    Type-Bound Procedures

    + dist => arb_dist @@ -1378,7 +1378,7 @@

    Components

    @@ -1421,7 +1421,7 @@

    Type-Bound Procedures

    + dist => repl_dist @@ -1502,7 +1502,7 @@

    Type-Bound Procedures

    + DATA @@ -1612,7 +1612,7 @@

    Type-Bound Procedures

    + DATA => blk_size_arb @@ -1739,7 +1739,7 @@

    Type-Bound Procedures

    + DATA => blk_size_repl @@ -1832,7 +1832,7 @@

    Type-Bound Procedures

    + DATA => blk_size_one @@ -1865,7 +1865,7 @@

    Arguments

    @@ -1925,7 +1925,7 @@

    Arguments

    @@ -1985,7 +1985,7 @@

    Arguments

    @@ -2195,7 +2195,7 @@

    Arguments

    @@ -2255,7 +2255,7 @@

    Arguments

    @@ -2315,7 +2315,7 @@

    Arguments

    @@ -2330,7 +2330,7 @@

    Arguments

    @@ -2375,7 +2375,7 @@

    Arguments

    @@ -2390,7 +2390,7 @@

    Arguments

    @@ -2618,7 +2618,7 @@

    Arguments

    @@ -2723,7 +2723,7 @@

    Arguments

    @@ -2768,7 +2768,7 @@

    Arguments

    @@ -2828,7 +2828,7 @@

    Arguments

    @@ -2843,7 +2843,7 @@

    Arguments

    @@ -2893,7 +2893,7 @@

    Arguments

    @@ -2908,7 +2908,7 @@

    Arguments

    @@ -2923,7 +2923,7 @@

    Arguments

    @@ -2938,7 +2938,7 @@

    Arguments

    @@ -3025,7 +3025,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_tas_io.html b/develop/module/dbcsr_tas_io.html index a07dc324ed1..2b41a257cd5 100644 --- a/develop/module/dbcsr_tas_io.html +++ b/develop/module/dbcsr_tas_io.html @@ -113,7 +113,7 @@

    Variables

    @@ -134,7 +134,7 @@

    Functions

    @@ -174,13 +174,13 @@

    Uses

    @@ -205,7 +205,7 @@

    Variables

    @@ -233,7 +233,7 @@

    Variables

    Functions

    -

    public function prep_output_unit(unit_nr) result(unit_nr_out) +

    public function prep_output_unit(unit_nr) result(unit_nr_out)

    @@ -252,7 +252,7 @@

    Arguments

    @@ -302,7 +302,7 @@

    Arguments

    @@ -317,7 +317,7 @@

    Arguments

    @@ -332,7 +332,7 @@

    Arguments

    @@ -372,7 +372,7 @@

    Arguments

    @@ -387,7 +387,7 @@

    Arguments

    @@ -402,7 +402,7 @@

    Arguments

    @@ -442,7 +442,7 @@

    Arguments

    @@ -457,7 +457,7 @@

    Arguments

    @@ -472,7 +472,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_tas_mm.html b/develop/module/dbcsr_tas_mm.html index 1e807219454..0c38c3fe71a 100644 --- a/develop/module/dbcsr_tas_mm.html +++ b/develop/module/dbcsr_tas_mm.html @@ -113,7 +113,7 @@

    Variables

    @@ -149,8 +149,8 @@

    Subroutines

    @@ -342,7 +342,7 @@

    Arguments

    @@ -391,7 +391,7 @@

    Arguments

    @@ -457,7 +457,7 @@

    Arguments

    @@ -508,7 +508,7 @@

    Arguments

    @@ -523,7 +523,7 @@

    Arguments

    @@ -538,7 +538,7 @@

    Arguments

    @@ -553,7 +553,7 @@

    Arguments

    @@ -568,7 +568,7 @@

    Arguments

    @@ -583,7 +583,7 @@

    Arguments

    @@ -598,7 +598,7 @@

    Arguments

    @@ -613,7 +613,7 @@

    Arguments

    @@ -628,7 +628,7 @@

    Arguments

    @@ -644,7 +644,7 @@

    Arguments

    @@ -660,7 +660,7 @@

    Arguments

    @@ -675,7 +675,7 @@

    Arguments

    @@ -724,7 +724,7 @@

    Arguments

    @@ -758,7 +758,7 @@

    Arguments

    @@ -773,7 +773,7 @@

    Arguments

    @@ -788,7 +788,7 @@

    Arguments

    @@ -828,7 +828,7 @@

    Arguments

    @@ -843,7 +843,7 @@

    Arguments

    @@ -873,7 +873,7 @@

    Arguments

    @@ -894,7 +894,7 @@

    Arguments

    -

    private subroutine reshape_mm_small(mp_comm, matrix_in, matrix_out, transposed, trans, nodata, move_data) +

    private subroutine reshape_mm_small(mp_comm, matrix_in, matrix_out, transposed, trans, nodata, move_data)

    @@ -914,7 +914,7 @@

    Arguments

    @@ -929,7 +929,7 @@

    Arguments

    @@ -944,7 +944,7 @@

    Arguments

    @@ -959,7 +959,7 @@

    Arguments

    @@ -974,7 +974,7 @@

    Arguments

    @@ -989,7 +989,7 @@

    Arguments

    @@ -1005,7 +1005,7 @@

    Arguments

    @@ -1027,7 +1027,7 @@

    Arguments

    -

    private subroutine reshape_mm_compatible(matrix1_in, matrix2_in, matrix1_out, matrix2_out, new1, new2, trans1, trans2, optimize_dist, nsplit, opt_nsplit, split_rc_1, split_rc_2, nodata1, nodata2, move_data_1, move_data_2, comm_new, unit_nr) +

    private subroutine reshape_mm_compatible(matrix1_in, matrix2_in, matrix1_out, matrix2_out, new1, new2, trans1, trans2, optimize_dist, nsplit, opt_nsplit, split_rc_1, split_rc_2, nodata1, nodata2, move_data_1, move_data_2, comm_new, unit_nr)

    @@ -1107,7 +1107,7 @@

    Arguments

    @@ -1123,7 +1123,7 @@

    Arguments

    @@ -1139,7 +1139,7 @@

    Arguments

    @@ -1155,7 +1155,7 @@

    Arguments

    @@ -1171,7 +1171,7 @@

    Arguments

    @@ -1186,7 +1186,7 @@

    Arguments

    @@ -1201,7 +1201,7 @@

    Arguments

    @@ -1248,7 +1248,7 @@

    Arguments

    @@ -1264,7 +1264,7 @@

    Arguments

    @@ -1280,7 +1280,7 @@

    Arguments

    @@ -1296,7 +1296,7 @@

    Arguments

    @@ -1327,7 +1327,7 @@

    Arguments

    @@ -1367,7 +1367,7 @@

    Arguments

    @@ -1382,7 +1382,7 @@

    Arguments

    @@ -1397,7 +1397,7 @@

    Arguments

    @@ -1412,7 +1412,7 @@

    Arguments

    @@ -1442,7 +1442,7 @@

    Arguments

    @@ -1457,7 +1457,7 @@

    Arguments

    @@ -1472,7 +1472,7 @@

    Arguments

    @@ -1512,7 +1512,7 @@

    Arguments

    @@ -1527,7 +1527,7 @@

    Arguments

    @@ -1542,7 +1542,7 @@

    Arguments

    @@ -1557,7 +1557,7 @@

    Arguments

    @@ -1587,7 +1587,7 @@

    Arguments

    @@ -1602,7 +1602,7 @@

    Arguments

    @@ -1643,7 +1643,7 @@

    Arguments

    @@ -1658,7 +1658,7 @@

    Arguments

    @@ -1673,7 +1673,7 @@

    Arguments

    @@ -1688,7 +1688,7 @@

    Arguments

    @@ -1703,7 +1703,7 @@

    Arguments

    @@ -1718,7 +1718,7 @@

    Arguments

    @@ -1733,7 +1733,7 @@

    Arguments

    @@ -1748,7 +1748,7 @@

    Arguments

    @@ -1778,7 +1778,7 @@

    Arguments

    @@ -1793,7 +1793,7 @@

    Arguments

    @@ -1833,7 +1833,7 @@

    Arguments

    @@ -1848,7 +1848,7 @@

    Arguments

    @@ -1863,7 +1863,7 @@

    Arguments

    @@ -1918,7 +1918,7 @@

    Arguments

    @@ -1933,7 +1933,7 @@

    Arguments

    @@ -1948,7 +1948,7 @@

    Arguments

    @@ -1964,7 +1964,7 @@

    Arguments

    @@ -2020,7 +2020,7 @@

    Arguments

    @@ -2060,7 +2060,7 @@

    Arguments

    @@ -2100,7 +2100,7 @@

    Arguments

    @@ -2170,7 +2170,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_tas_reshape_ops.html b/develop/module/dbcsr_tas_reshape_ops.html index 845e25bf260..c14b97d53db 100644 --- a/develop/module/dbcsr_tas_reshape_ops.html +++ b/develop/module/dbcsr_tas_reshape_ops.html @@ -113,7 +113,7 @@

    Variables

    @@ -211,25 +211,25 @@

    Uses

    @@ -254,7 +254,7 @@

    Variables

    @@ -306,7 +306,7 @@

    Arguments

    @@ -351,7 +351,7 @@

    Arguments

    @@ -415,7 +415,7 @@

    Arguments

    @@ -445,7 +445,7 @@

    Arguments

    @@ -460,7 +460,7 @@

    Arguments

    @@ -499,7 +499,7 @@

    Arguments

    @@ -529,7 +529,7 @@

    Arguments

    @@ -544,7 +544,7 @@

    Arguments

    @@ -583,7 +583,7 @@

    Arguments

    @@ -613,7 +613,7 @@

    Arguments

    @@ -628,7 +628,7 @@

    Arguments

    @@ -667,7 +667,7 @@

    Arguments

    @@ -697,7 +697,7 @@

    Arguments

    @@ -712,7 +712,7 @@

    Arguments

    @@ -751,7 +751,7 @@

    Arguments

    @@ -781,7 +781,7 @@

    Arguments

    @@ -796,7 +796,7 @@

    Arguments

    @@ -848,7 +848,7 @@

    Components

    @@ -950,7 +950,7 @@

    Components

    @@ -1016,7 +1016,7 @@

    Arguments

    @@ -1081,7 +1081,7 @@

    Arguments

    @@ -1096,7 +1096,7 @@

    Arguments

    @@ -1111,7 +1111,7 @@

    Arguments

    @@ -1126,7 +1126,7 @@

    Arguments

    @@ -1181,7 +1181,7 @@

    Arguments

    @@ -1196,7 +1196,7 @@

    Arguments

    @@ -1211,7 +1211,7 @@

    Arguments

    @@ -1226,7 +1226,7 @@

    Arguments

    @@ -1266,7 +1266,7 @@

    Arguments

    @@ -1296,7 +1296,7 @@

    Arguments

    @@ -1311,7 +1311,7 @@

    Arguments

    @@ -1351,7 +1351,7 @@

    Arguments

    @@ -1406,7 +1406,7 @@

    Arguments

    @@ -1421,7 +1421,7 @@

    Arguments

    @@ -1453,7 +1453,7 @@

    Arguments

    @@ -1494,7 +1494,7 @@

    Arguments

    @@ -1534,7 +1534,7 @@

    Arguments

    @@ -1564,7 +1564,7 @@

    Arguments

    @@ -1579,7 +1579,7 @@

    Arguments

    @@ -1619,7 +1619,7 @@

    Arguments

    @@ -1664,7 +1664,7 @@

    Arguments

    @@ -1719,7 +1719,7 @@

    Arguments

    @@ -1749,7 +1749,7 @@

    Arguments

    @@ -1764,7 +1764,7 @@

    Arguments

    @@ -1804,7 +1804,7 @@

    Arguments

    @@ -1834,7 +1834,7 @@

    Arguments

    @@ -1849,7 +1849,7 @@

    Arguments

    @@ -1889,7 +1889,7 @@

    Arguments

    @@ -1919,7 +1919,7 @@

    Arguments

    @@ -1934,7 +1934,7 @@

    Arguments

    @@ -1974,7 +1974,7 @@

    Arguments

    @@ -2004,7 +2004,7 @@

    Arguments

    @@ -2019,7 +2019,7 @@

    Arguments

    @@ -2059,7 +2059,7 @@

    Arguments

    @@ -2104,7 +2104,7 @@

    Arguments

    @@ -2159,7 +2159,7 @@

    Arguments

    @@ -2204,7 +2204,7 @@

    Arguments

    @@ -2259,7 +2259,7 @@

    Arguments

    @@ -2304,7 +2304,7 @@

    Arguments

    @@ -2359,7 +2359,7 @@

    Arguments

    @@ -2404,7 +2404,7 @@

    Arguments

    @@ -2459,7 +2459,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_tas_split.html b/develop/module/dbcsr_tas_split.html index b18f9996ab8..36db4969fd6 100644 --- a/develop/module/dbcsr_tas_split.html +++ b/develop/module/dbcsr_tas_split.html @@ -113,7 +113,7 @@

    Variables

    @@ -367,7 +367,7 @@

    Arguments

    @@ -382,7 +382,7 @@

    Arguments

    @@ -398,7 +398,7 @@

    Arguments

    @@ -454,7 +454,7 @@

    Arguments

    @@ -469,7 +469,7 @@

    Arguments

    @@ -484,7 +484,7 @@

    Arguments

    @@ -529,7 +529,7 @@

    Arguments

    @@ -544,7 +544,7 @@

    Arguments

    @@ -559,7 +559,7 @@

    Arguments

    @@ -605,7 +605,7 @@

    Arguments

    @@ -621,7 +621,7 @@

    Arguments

    @@ -698,7 +698,7 @@

    Arguments

    @@ -713,7 +713,7 @@

    Arguments

    @@ -729,7 +729,7 @@

    Arguments

    @@ -775,7 +775,7 @@

    Arguments

    @@ -835,7 +835,7 @@

    Arguments

    @@ -850,7 +850,7 @@

    Arguments

    @@ -930,7 +930,7 @@

    Arguments

    @@ -945,7 +945,7 @@

    Arguments

    @@ -991,7 +991,7 @@

    Arguments

    @@ -1047,7 +1047,7 @@

    Arguments

    @@ -1062,7 +1062,7 @@

    Arguments

    @@ -1077,7 +1077,7 @@

    Arguments

    @@ -1092,7 +1092,7 @@

    Arguments

    @@ -1122,7 +1122,7 @@

    Arguments

    @@ -1162,7 +1162,7 @@

    Arguments

    @@ -1177,7 +1177,7 @@

    Arguments

    @@ -1192,7 +1192,7 @@

    Arguments

    @@ -1230,7 +1230,7 @@

    Arguments

    @@ -1245,7 +1245,7 @@

    Arguments

    @@ -1304,7 +1304,7 @@

    Arguments

    @@ -1344,7 +1344,7 @@

    Arguments

    @@ -1384,7 +1384,7 @@

    Arguments

    @@ -1414,7 +1414,7 @@

    Arguments

    @@ -1516,7 +1516,7 @@

    Arguments

    @@ -1546,7 +1546,7 @@

    Arguments

    @@ -1643,7 +1643,7 @@

    Arguments

    @@ -1658,7 +1658,7 @@

    Arguments

    @@ -1705,7 +1705,7 @@

    Arguments

    @@ -1721,7 +1721,7 @@

    Arguments

    @@ -1762,7 +1762,7 @@

    Arguments

    @@ -1777,7 +1777,7 @@

    Arguments

    @@ -1792,7 +1792,7 @@

    Arguments

    @@ -1807,7 +1807,7 @@

    Arguments

    @@ -1877,7 +1877,7 @@

    Arguments

    @@ -1962,7 +1962,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_tas_test.html b/develop/module/dbcsr_tas_test.html index 6ff148b0e0b..eedf0555292 100644 --- a/develop/module/dbcsr_tas_test.html +++ b/develop/module/dbcsr_tas_test.html @@ -113,8 +113,8 @@

    Variables

    @@ -177,25 +177,25 @@

    Uses

    @@ -220,7 +220,7 @@

    Variables

    @@ -237,7 +237,7 @@

    Variables

    @@ -284,7 +284,7 @@

    Arguments

    @@ -299,7 +299,7 @@

    Arguments

    @@ -314,7 +314,7 @@

    Arguments

    @@ -364,7 +364,7 @@

    Arguments

    @@ -394,7 +394,7 @@

    Arguments

    @@ -409,7 +409,7 @@

    Arguments

    @@ -424,7 +424,7 @@

    Arguments

    @@ -484,7 +484,7 @@

    Arguments

    @@ -499,7 +499,7 @@

    Arguments

    @@ -555,7 +555,7 @@

    Arguments

    @@ -570,7 +570,7 @@

    Arguments

    @@ -585,7 +585,7 @@

    Arguments

    @@ -600,7 +600,7 @@

    Arguments

    @@ -615,7 +615,7 @@

    Arguments

    @@ -630,7 +630,7 @@

    Arguments

    @@ -660,7 +660,7 @@

    Arguments

    @@ -675,7 +675,7 @@

    Arguments

    @@ -715,7 +715,7 @@

    Arguments

    @@ -730,7 +730,7 @@

    Arguments

    @@ -745,7 +745,7 @@

    Arguments

    @@ -760,7 +760,7 @@

    Arguments

    @@ -775,7 +775,7 @@

    Arguments

    @@ -790,7 +790,7 @@

    Arguments

    @@ -805,7 +805,7 @@

    Arguments

    @@ -820,7 +820,7 @@

    Arguments

    @@ -835,7 +835,7 @@

    Arguments

    @@ -875,7 +875,7 @@

    Arguments

    @@ -905,7 +905,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_tas_types.html b/develop/module/dbcsr_tas_types.html index 3795e5089d2..ffe84ebfe79 100644 --- a/develop/module/dbcsr_tas_types.html +++ b/develop/module/dbcsr_tas_types.html @@ -113,7 +113,7 @@

    Variables

    @@ -166,12 +166,12 @@

    Uses

    @@ -196,7 +196,7 @@

    Variables

    @@ -247,7 +247,7 @@

    Components

    @@ -264,7 +264,7 @@

    Components

    @@ -281,7 +281,7 @@

    Components

    @@ -298,7 +298,7 @@

    Components

    @@ -315,7 +315,7 @@

    Components

    @@ -349,7 +349,7 @@

    Components

    @@ -366,7 +366,7 @@

    Components

    @@ -417,7 +417,7 @@

    Components

    @@ -466,7 +466,7 @@

    Components

    @@ -483,7 +483,7 @@

    Components

    @@ -500,7 +500,7 @@

    Components

    @@ -517,7 +517,7 @@

    Components

    @@ -700,7 +700,7 @@

    Components

    @@ -717,7 +717,7 @@

    Components

    @@ -734,7 +734,7 @@

    Components

    @@ -751,7 +751,7 @@

    Components

    @@ -768,7 +768,7 @@

    Components

    @@ -785,7 +785,7 @@

    Components

    @@ -819,7 +819,7 @@

    Components

    @@ -853,7 +853,7 @@

    Components

    @@ -870,7 +870,7 @@

    Components

    @@ -953,7 +953,7 @@

    Components

    @@ -970,7 +970,7 @@

    Components

    @@ -987,7 +987,7 @@

    Components

    diff --git a/develop/module/dbcsr_tas_util.html b/develop/module/dbcsr_tas_util.html index ebfcc31acc1..adbaac30d88 100644 --- a/develop/module/dbcsr_tas_util.html +++ b/develop/module/dbcsr_tas_util.html @@ -113,7 +113,7 @@

    Variables

    @@ -131,7 +131,7 @@

    Interfaces

    @@ -189,12 +189,12 @@

    Uses

    @@ -219,7 +219,7 @@

    Variables

    @@ -245,8 +245,8 @@

    Variables

    Interfaces

    - -

    public interface swap + +

    public interface swap

      @@ -271,7 +271,7 @@

      Arguments

    @@ -310,7 +310,7 @@

    Arguments

    @@ -486,7 +486,7 @@

    Arguments

    @@ -656,7 +656,7 @@

    Arguments

    @@ -696,7 +696,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_tensor.html b/develop/module/dbcsr_tensor.html index 26d442194eb..b1daa1fd565 100644 --- a/develop/module/dbcsr_tensor.html +++ b/develop/module/dbcsr_tensor.html @@ -113,7 +113,7 @@

    Variables

    @@ -156,8 +156,8 @@

    Subroutines

    dbcsr_t_contractdbcsr_t_contract_expertalign_tensor - reshape_mm_compatible - reshape_mm_small + reshape_mm_compatible + reshape_mm_smallinvert_transpose_flagindex_linked_sortdbcsr_t_remap @@ -199,25 +199,25 @@

    Uses

    @@ -242,7 +242,7 @@

    Variables

    @@ -305,7 +305,7 @@

    Arguments

    @@ -320,7 +320,7 @@

    Arguments

    @@ -365,7 +365,7 @@

    Arguments

    @@ -425,7 +425,7 @@

    Arguments

    @@ -440,7 +440,7 @@

    Arguments

    @@ -498,7 +498,7 @@

    Arguments

    @@ -514,7 +514,7 @@

    Arguments

    @@ -530,7 +530,7 @@

    Arguments

    @@ -545,7 +545,7 @@

    Arguments

    @@ -575,7 +575,7 @@

    Arguments

    @@ -590,7 +590,7 @@

    Arguments

    @@ -630,7 +630,7 @@

    Arguments

    @@ -645,7 +645,7 @@

    Arguments

    @@ -660,7 +660,7 @@

    Arguments

    @@ -675,7 +675,7 @@

    Arguments

    @@ -705,7 +705,7 @@

    Arguments

    @@ -720,7 +720,7 @@

    Arguments

    @@ -760,7 +760,7 @@

    Arguments

    @@ -775,7 +775,7 @@

    Arguments

    @@ -790,7 +790,7 @@

    Arguments

    @@ -830,7 +830,7 @@

    Arguments

    @@ -845,7 +845,7 @@

    Arguments

    @@ -860,7 +860,7 @@

    Arguments

    @@ -900,7 +900,7 @@

    Arguments

    @@ -915,7 +915,7 @@

    Arguments

    @@ -930,7 +930,7 @@

    Arguments

    @@ -973,7 +973,7 @@

    Arguments

    @@ -988,7 +988,7 @@

    Arguments

    @@ -1003,7 +1003,7 @@

    Arguments

    @@ -1018,7 +1018,7 @@

    Arguments

    @@ -1033,7 +1033,7 @@

    Arguments

    @@ -1048,7 +1048,7 @@

    Arguments

    @@ -1063,7 +1063,7 @@

    Arguments

    @@ -1078,7 +1078,7 @@

    Arguments

    @@ -1093,7 +1093,7 @@

    Arguments

    @@ -1108,7 +1108,7 @@

    Arguments

    @@ -1123,7 +1123,7 @@

    Arguments

    @@ -1138,7 +1138,7 @@

    Arguments

    @@ -1154,7 +1154,7 @@

    Arguments

    @@ -1170,7 +1170,7 @@

    Arguments

    @@ -1186,7 +1186,7 @@

    Arguments

    @@ -1249,7 +1249,7 @@

    Arguments

    @@ -1264,7 +1264,7 @@

    Arguments

    @@ -1279,7 +1279,7 @@

    Arguments

    @@ -1294,7 +1294,7 @@

    Arguments

    @@ -1309,7 +1309,7 @@

    Arguments

    @@ -1326,7 +1326,7 @@

    Arguments

    @@ -1366,7 +1366,7 @@

    Arguments

    @@ -1381,7 +1381,7 @@

    Arguments

    @@ -1396,7 +1396,7 @@

    Arguments

    @@ -1411,7 +1411,7 @@

    Arguments

    @@ -1426,7 +1426,7 @@

    Arguments

    @@ -1441,7 +1441,7 @@

    Arguments

    @@ -1456,7 +1456,7 @@

    Arguments

    @@ -1471,7 +1471,7 @@

    Arguments

    @@ -1486,7 +1486,7 @@

    Arguments

    @@ -1501,7 +1501,7 @@

    Arguments

    @@ -1516,7 +1516,7 @@

    Arguments

    @@ -1531,7 +1531,7 @@

    Arguments

    @@ -1546,7 +1546,7 @@

    Arguments

    @@ -1561,7 +1561,7 @@

    Arguments

    @@ -1576,7 +1576,7 @@

    Arguments

    @@ -1636,7 +1636,7 @@

    Arguments

    @@ -1651,7 +1651,7 @@

    Arguments

    @@ -1666,7 +1666,7 @@

    Arguments

    @@ -1681,7 +1681,7 @@

    Arguments

    @@ -1696,7 +1696,7 @@

    Arguments

    @@ -1711,7 +1711,7 @@

    Arguments

    @@ -1727,7 +1727,7 @@

    Arguments

    @@ -1742,7 +1742,7 @@

    Arguments

    @@ -1782,7 +1782,7 @@

    Arguments

    @@ -1827,7 +1827,7 @@

    Arguments

    @@ -1908,7 +1908,7 @@

    Arguments

    -

    private subroutine reshape_mm_compatible(tensor1, tensor2, tensor1_out, tensor2_out, ind1_free, ind1_linked, ind2_free, ind2_linked, trans1, trans2, new1, new2, ref_tensor, nodata1, nodata2, move_data_1, move_data_2, optimize_dist, unit_nr) +

    private subroutine reshape_mm_compatible(tensor1, tensor2, tensor1_out, tensor2_out, ind1_free, ind1_linked, ind2_free, ind2_linked, trans1, trans2, new1, new2, ref_tensor, nodata1, nodata2, move_data_1, move_data_2, optimize_dist, unit_nr)

    @@ -1929,7 +1929,7 @@

    Arguments

    @@ -1944,7 +1944,7 @@

    Arguments

    @@ -2053,7 +2053,7 @@

    Arguments

    @@ -2069,7 +2069,7 @@

    Arguments

    @@ -2085,7 +2085,7 @@

    Arguments

    @@ -2101,7 +2101,7 @@

    Arguments

    @@ -2132,7 +2132,7 @@

    Arguments

    @@ -2148,7 +2148,7 @@

    Arguments

    @@ -2164,7 +2164,7 @@

    Arguments

    @@ -2180,7 +2180,7 @@

    Arguments

    @@ -2196,7 +2196,7 @@

    Arguments

    @@ -2211,7 +2211,7 @@

    Arguments

    @@ -2232,7 +2232,7 @@

    Arguments

    -

    private subroutine reshape_mm_small(tensor_in, ind1, ind2, tensor_out, trans, new, nodata, move_data, unit_nr) +

    private subroutine reshape_mm_small(tensor_in, ind1, ind2, tensor_out, trans, new, nodata, move_data, unit_nr)

    @@ -2252,7 +2252,7 @@

    Arguments

    @@ -2299,7 +2299,7 @@

    Arguments

    @@ -2314,7 +2314,7 @@

    Arguments

    @@ -2344,7 +2344,7 @@

    Arguments

    @@ -2360,7 +2360,7 @@

    Arguments

    @@ -2376,7 +2376,7 @@

    Arguments

    @@ -2511,7 +2511,7 @@

    Arguments

    @@ -2526,7 +2526,7 @@

    Arguments

    @@ -2542,7 +2542,7 @@

    Arguments

    @@ -2558,7 +2558,7 @@

    Arguments

    @@ -2573,7 +2573,7 @@

    Arguments

    @@ -2588,7 +2588,7 @@

    Arguments

    @@ -2603,7 +2603,7 @@

    Arguments

    @@ -2648,7 +2648,7 @@

    Arguments

    @@ -2663,7 +2663,7 @@

    Arguments

    @@ -2678,7 +2678,7 @@

    Arguments

    @@ -2718,7 +2718,7 @@

    Arguments

    @@ -2733,7 +2733,7 @@

    Arguments

    @@ -2748,7 +2748,7 @@

    Arguments

    @@ -2788,7 +2788,7 @@

    Arguments

    @@ -2803,7 +2803,7 @@

    Arguments

    @@ -2818,7 +2818,7 @@

    Arguments

    @@ -2861,7 +2861,7 @@

    Arguments

    @@ -2876,7 +2876,7 @@

    Arguments

    @@ -2891,7 +2891,7 @@

    Arguments

    @@ -2906,7 +2906,7 @@

    Arguments

    @@ -2921,7 +2921,7 @@

    Arguments

    @@ -2936,7 +2936,7 @@

    Arguments

    @@ -2951,7 +2951,7 @@

    Arguments

    @@ -2966,7 +2966,7 @@

    Arguments

    @@ -2981,7 +2981,7 @@

    Arguments

    @@ -2996,7 +2996,7 @@

    Arguments

    @@ -3011,7 +3011,7 @@

    Arguments

    @@ -3026,7 +3026,7 @@

    Arguments

    @@ -3041,7 +3041,7 @@

    Arguments

    @@ -3056,7 +3056,7 @@

    Arguments

    @@ -3071,7 +3071,7 @@

    Arguments

    @@ -3086,7 +3086,7 @@

    Arguments

    @@ -3101,7 +3101,7 @@

    Arguments

    @@ -3143,7 +3143,7 @@

    Arguments

    @@ -3158,7 +3158,7 @@

    Arguments

    @@ -3173,7 +3173,7 @@

    Arguments

    @@ -3188,7 +3188,7 @@

    Arguments

    @@ -3203,7 +3203,7 @@

    Arguments

    @@ -3218,7 +3218,7 @@

    Arguments

    @@ -3233,7 +3233,7 @@

    Arguments

    @@ -3248,7 +3248,7 @@

    Arguments

    @@ -3263,7 +3263,7 @@

    Arguments

    @@ -3278,7 +3278,7 @@

    Arguments

    @@ -3293,7 +3293,7 @@

    Arguments

    @@ -3308,7 +3308,7 @@

    Arguments

    @@ -3324,7 +3324,7 @@

    Arguments

    @@ -3365,7 +3365,7 @@

    Arguments

    @@ -3395,7 +3395,7 @@

    Arguments

    @@ -3425,7 +3425,7 @@

    Arguments

    @@ -3455,7 +3455,7 @@

    Arguments

    @@ -3495,7 +3495,7 @@

    Arguments

    @@ -3612,7 +3612,7 @@

    Arguments

    @@ -3627,7 +3627,7 @@

    Arguments

    @@ -3667,7 +3667,7 @@

    Arguments

    @@ -3682,7 +3682,7 @@

    Arguments

    @@ -3773,7 +3773,7 @@

    Arguments

    @@ -3803,7 +3803,7 @@

    Arguments

    @@ -3843,7 +3843,7 @@

    Arguments

    @@ -3858,7 +3858,7 @@

    Arguments

    @@ -3873,7 +3873,7 @@

    Arguments

    @@ -3888,7 +3888,7 @@

    Arguments

    @@ -3903,7 +3903,7 @@

    Arguments

    @@ -3918,7 +3918,7 @@

    Arguments

    @@ -3948,7 +3948,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_tensor_api.html b/develop/module/dbcsr_tensor_api.html index f208692b8d6..2889e66f076 100644 --- a/develop/module/dbcsr_tensor_api.html +++ b/develop/module/dbcsr_tensor_api.html @@ -113,7 +113,7 @@

    Variables

    @@ -178,14 +178,14 @@

    Uses

    @@ -210,7 +210,7 @@

    Variables

    @@ -377,7 +377,7 @@

    Arguments

    @@ -442,7 +442,7 @@

    Arguments

    @@ -457,7 +457,7 @@

    Arguments

    @@ -532,7 +532,7 @@

    Arguments

    @@ -587,7 +587,7 @@

    Arguments

    @@ -602,7 +602,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_tensor_api_c.html b/develop/module/dbcsr_tensor_api_c.html index 92d09644261..42462325bdd 100644 --- a/develop/module/dbcsr_tensor_api_c.html +++ b/develop/module/dbcsr_tensor_api_c.html @@ -259,18 +259,18 @@

    Uses

    @@ -503,7 +503,7 @@

    Arguments

    @@ -563,7 +563,7 @@

    Arguments

    @@ -1113,7 +1113,7 @@

    Arguments

    @@ -1923,7 +1923,7 @@

    Arguments

    @@ -9648,7 +9648,7 @@

    Arguments

    @@ -11930,7 +11930,7 @@

    Arguments

    @@ -11945,7 +11945,7 @@

    Arguments

    @@ -11960,7 +11960,7 @@

    Arguments

    @@ -12095,7 +12095,7 @@

    Arguments

    @@ -12235,7 +12235,7 @@

    Arguments

    @@ -12350,7 +12350,7 @@

    Arguments

    @@ -12465,7 +12465,7 @@

    Arguments

    @@ -12580,7 +12580,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_tensor_block.html b/develop/module/dbcsr_tensor_block.html index c260849ab5a..7aa266327bc 100644 --- a/develop/module/dbcsr_tensor_block.html +++ b/develop/module/dbcsr_tensor_block.html @@ -113,7 +113,7 @@

    Variables

    @@ -272,17 +272,17 @@

    Uses

    @@ -307,7 +307,7 @@

    Variables

    @@ -359,7 +359,7 @@

    Arguments

    @@ -374,7 +374,7 @@

    Arguments

    @@ -389,7 +389,7 @@

    Arguments

    @@ -428,7 +428,7 @@

    Arguments

    @@ -443,7 +443,7 @@

    Arguments

    @@ -458,7 +458,7 @@

    Arguments

    @@ -497,7 +497,7 @@

    Arguments

    @@ -512,7 +512,7 @@

    Arguments

    @@ -527,7 +527,7 @@

    Arguments

    @@ -566,7 +566,7 @@

    Arguments

    @@ -581,7 +581,7 @@

    Arguments

    @@ -596,7 +596,7 @@

    Arguments

    @@ -635,7 +635,7 @@

    Arguments

    @@ -650,7 +650,7 @@

    Arguments

    @@ -665,7 +665,7 @@

    Arguments

    @@ -714,7 +714,7 @@

    Arguments

    @@ -729,7 +729,7 @@

    Arguments

    @@ -744,7 +744,7 @@

    Arguments

    @@ -759,7 +759,7 @@

    Arguments

    @@ -774,7 +774,7 @@

    Arguments

    @@ -789,7 +789,7 @@

    Arguments

    @@ -828,7 +828,7 @@

    Arguments

    @@ -843,7 +843,7 @@

    Arguments

    @@ -858,7 +858,7 @@

    Arguments

    @@ -873,7 +873,7 @@

    Arguments

    @@ -888,7 +888,7 @@

    Arguments

    @@ -903,7 +903,7 @@

    Arguments

    @@ -942,7 +942,7 @@

    Arguments

    @@ -957,7 +957,7 @@

    Arguments

    @@ -972,7 +972,7 @@

    Arguments

    @@ -987,7 +987,7 @@

    Arguments

    @@ -1002,7 +1002,7 @@

    Arguments

    @@ -1017,7 +1017,7 @@

    Arguments

    @@ -1056,7 +1056,7 @@

    Arguments

    @@ -1071,7 +1071,7 @@

    Arguments

    @@ -1086,7 +1086,7 @@

    Arguments

    @@ -1101,7 +1101,7 @@

    Arguments

    @@ -1116,7 +1116,7 @@

    Arguments

    @@ -1131,7 +1131,7 @@

    Arguments

    @@ -1170,7 +1170,7 @@

    Arguments

    @@ -1185,7 +1185,7 @@

    Arguments

    @@ -1200,7 +1200,7 @@

    Arguments

    @@ -1215,7 +1215,7 @@

    Arguments

    @@ -1230,7 +1230,7 @@

    Arguments

    @@ -1245,7 +1245,7 @@

    Arguments

    @@ -1284,7 +1284,7 @@

    Arguments

    @@ -1299,7 +1299,7 @@

    Arguments

    @@ -1314,7 +1314,7 @@

    Arguments

    @@ -1329,7 +1329,7 @@

    Arguments

    @@ -1344,7 +1344,7 @@

    Arguments

    @@ -1359,7 +1359,7 @@

    Arguments

    @@ -1398,7 +1398,7 @@

    Arguments

    @@ -1413,7 +1413,7 @@

    Arguments

    @@ -1428,7 +1428,7 @@

    Arguments

    @@ -1443,7 +1443,7 @@

    Arguments

    @@ -1458,7 +1458,7 @@

    Arguments

    @@ -1473,7 +1473,7 @@

    Arguments

    @@ -1512,7 +1512,7 @@

    Arguments

    @@ -1527,7 +1527,7 @@

    Arguments

    @@ -1542,7 +1542,7 @@

    Arguments

    @@ -1557,7 +1557,7 @@

    Arguments

    @@ -1572,7 +1572,7 @@

    Arguments

    @@ -1587,7 +1587,7 @@

    Arguments

    @@ -1626,7 +1626,7 @@

    Arguments

    @@ -1641,7 +1641,7 @@

    Arguments

    @@ -1656,7 +1656,7 @@

    Arguments

    @@ -1671,7 +1671,7 @@

    Arguments

    @@ -1686,7 +1686,7 @@

    Arguments

    @@ -1701,7 +1701,7 @@

    Arguments

    @@ -1740,7 +1740,7 @@

    Arguments

    @@ -1755,7 +1755,7 @@

    Arguments

    @@ -1770,7 +1770,7 @@

    Arguments

    @@ -1785,7 +1785,7 @@

    Arguments

    @@ -1800,7 +1800,7 @@

    Arguments

    @@ -1815,7 +1815,7 @@

    Arguments

    @@ -1854,7 +1854,7 @@

    Arguments

    @@ -1869,7 +1869,7 @@

    Arguments

    @@ -1884,7 +1884,7 @@

    Arguments

    @@ -1899,7 +1899,7 @@

    Arguments

    @@ -1914,7 +1914,7 @@

    Arguments

    @@ -1929,7 +1929,7 @@

    Arguments

    @@ -1968,7 +1968,7 @@

    Arguments

    @@ -1983,7 +1983,7 @@

    Arguments

    @@ -1998,7 +1998,7 @@

    Arguments

    @@ -2013,7 +2013,7 @@

    Arguments

    @@ -2028,7 +2028,7 @@

    Arguments

    @@ -2043,7 +2043,7 @@

    Arguments

    @@ -2082,7 +2082,7 @@

    Arguments

    @@ -2097,7 +2097,7 @@

    Arguments

    @@ -2112,7 +2112,7 @@

    Arguments

    @@ -2127,7 +2127,7 @@

    Arguments

    @@ -2142,7 +2142,7 @@

    Arguments

    @@ -2191,7 +2191,7 @@

    Arguments

    @@ -2206,7 +2206,7 @@

    Arguments

    @@ -2221,7 +2221,7 @@

    Arguments

    @@ -2236,7 +2236,7 @@

    Arguments

    @@ -2251,7 +2251,7 @@

    Arguments

    @@ -2290,7 +2290,7 @@

    Arguments

    @@ -2305,7 +2305,7 @@

    Arguments

    @@ -2320,7 +2320,7 @@

    Arguments

    @@ -2335,7 +2335,7 @@

    Arguments

    @@ -2374,7 +2374,7 @@

    Arguments

    @@ -2389,7 +2389,7 @@

    Arguments

    @@ -2404,7 +2404,7 @@

    Arguments

    @@ -2419,7 +2419,7 @@

    Arguments

    @@ -2434,7 +2434,7 @@

    Arguments

    @@ -2473,7 +2473,7 @@

    Arguments

    @@ -2488,7 +2488,7 @@

    Arguments

    @@ -2503,7 +2503,7 @@

    Arguments

    @@ -2518,7 +2518,7 @@

    Arguments

    @@ -2557,7 +2557,7 @@

    Arguments

    @@ -2572,7 +2572,7 @@

    Arguments

    @@ -2587,7 +2587,7 @@

    Arguments

    @@ -2602,7 +2602,7 @@

    Arguments

    @@ -2617,7 +2617,7 @@

    Arguments

    @@ -2656,7 +2656,7 @@

    Arguments

    @@ -2671,7 +2671,7 @@

    Arguments

    @@ -2686,7 +2686,7 @@

    Arguments

    @@ -2701,7 +2701,7 @@

    Arguments

    @@ -2740,7 +2740,7 @@

    Arguments

    @@ -2755,7 +2755,7 @@

    Arguments

    @@ -2770,7 +2770,7 @@

    Arguments

    @@ -2785,7 +2785,7 @@

    Arguments

    @@ -2800,7 +2800,7 @@

    Arguments

    @@ -2839,7 +2839,7 @@

    Arguments

    @@ -2854,7 +2854,7 @@

    Arguments

    @@ -2869,7 +2869,7 @@

    Arguments

    @@ -2884,7 +2884,7 @@

    Arguments

    @@ -2923,7 +2923,7 @@

    Arguments

    @@ -2938,7 +2938,7 @@

    Arguments

    @@ -2953,7 +2953,7 @@

    Arguments

    @@ -2968,7 +2968,7 @@

    Arguments

    @@ -2983,7 +2983,7 @@

    Arguments

    @@ -3022,7 +3022,7 @@

    Arguments

    @@ -3037,7 +3037,7 @@

    Arguments

    @@ -3052,7 +3052,7 @@

    Arguments

    @@ -3067,7 +3067,7 @@

    Arguments

    @@ -3106,7 +3106,7 @@

    Arguments

    @@ -3121,7 +3121,7 @@

    Arguments

    @@ -3136,7 +3136,7 @@

    Arguments

    @@ -3151,7 +3151,7 @@

    Arguments

    @@ -3166,7 +3166,7 @@

    Arguments

    @@ -3205,7 +3205,7 @@

    Arguments

    @@ -3220,7 +3220,7 @@

    Arguments

    @@ -3235,7 +3235,7 @@

    Arguments

    @@ -3250,7 +3250,7 @@

    Arguments

    @@ -3289,7 +3289,7 @@

    Arguments

    @@ -3304,7 +3304,7 @@

    Arguments

    @@ -3319,7 +3319,7 @@

    Arguments

    @@ -3334,7 +3334,7 @@

    Arguments

    @@ -3349,7 +3349,7 @@

    Arguments

    @@ -3388,7 +3388,7 @@

    Arguments

    @@ -3403,7 +3403,7 @@

    Arguments

    @@ -3418,7 +3418,7 @@

    Arguments

    @@ -3433,7 +3433,7 @@

    Arguments

    @@ -3472,7 +3472,7 @@

    Arguments

    @@ -3487,7 +3487,7 @@

    Arguments

    @@ -3502,7 +3502,7 @@

    Arguments

    @@ -3517,7 +3517,7 @@

    Arguments

    @@ -3532,7 +3532,7 @@

    Arguments

    @@ -3571,7 +3571,7 @@

    Arguments

    @@ -3586,7 +3586,7 @@

    Arguments

    @@ -3601,7 +3601,7 @@

    Arguments

    @@ -3616,7 +3616,7 @@

    Arguments

    @@ -3655,7 +3655,7 @@

    Arguments

    @@ -3670,7 +3670,7 @@

    Arguments

    @@ -3685,7 +3685,7 @@

    Arguments

    @@ -3700,7 +3700,7 @@

    Arguments

    @@ -3715,7 +3715,7 @@

    Arguments

    @@ -3754,7 +3754,7 @@

    Arguments

    @@ -3769,7 +3769,7 @@

    Arguments

    @@ -3784,7 +3784,7 @@

    Arguments

    @@ -3799,7 +3799,7 @@

    Arguments

    @@ -3838,7 +3838,7 @@

    Arguments

    @@ -3853,7 +3853,7 @@

    Arguments

    @@ -3868,7 +3868,7 @@

    Arguments

    @@ -3883,7 +3883,7 @@

    Arguments

    @@ -3898,7 +3898,7 @@

    Arguments

    @@ -3937,7 +3937,7 @@

    Arguments

    @@ -3952,7 +3952,7 @@

    Arguments

    @@ -3967,7 +3967,7 @@

    Arguments

    @@ -3982,7 +3982,7 @@

    Arguments

    @@ -4021,7 +4021,7 @@

    Arguments

    @@ -4036,7 +4036,7 @@

    Arguments

    @@ -4051,7 +4051,7 @@

    Arguments

    @@ -4066,7 +4066,7 @@

    Arguments

    @@ -4081,7 +4081,7 @@

    Arguments

    @@ -4120,7 +4120,7 @@

    Arguments

    @@ -4135,7 +4135,7 @@

    Arguments

    @@ -4150,7 +4150,7 @@

    Arguments

    @@ -4165,7 +4165,7 @@

    Arguments

    @@ -4204,7 +4204,7 @@

    Arguments

    @@ -4219,7 +4219,7 @@

    Arguments

    @@ -4234,7 +4234,7 @@

    Arguments

    @@ -4249,7 +4249,7 @@

    Arguments

    @@ -4264,7 +4264,7 @@

    Arguments

    @@ -4303,7 +4303,7 @@

    Arguments

    @@ -4318,7 +4318,7 @@

    Arguments

    @@ -4333,7 +4333,7 @@

    Arguments

    @@ -4348,7 +4348,7 @@

    Arguments

    @@ -4387,7 +4387,7 @@

    Arguments

    @@ -4402,7 +4402,7 @@

    Arguments

    @@ -4417,7 +4417,7 @@

    Arguments

    @@ -4432,7 +4432,7 @@

    Arguments

    @@ -4481,7 +4481,7 @@

    Arguments

    @@ -4496,7 +4496,7 @@

    Arguments

    @@ -4511,7 +4511,7 @@

    Arguments

    @@ -4526,7 +4526,7 @@

    Arguments

    @@ -4541,7 +4541,7 @@

    Arguments

    @@ -4580,7 +4580,7 @@

    Arguments

    @@ -4634,7 +4634,7 @@

    Arguments

    @@ -4649,7 +4649,7 @@

    Arguments

    @@ -4688,7 +4688,7 @@

    Arguments

    @@ -4703,7 +4703,7 @@

    Arguments

    @@ -4742,7 +4742,7 @@

    Arguments

    @@ -4757,7 +4757,7 @@

    Arguments

    @@ -4809,7 +4809,7 @@

    Components

    @@ -4843,7 +4843,7 @@

    Components

    @@ -4860,7 +4860,7 @@

    Components

    @@ -4926,7 +4926,7 @@

    Components

    @@ -4943,7 +4943,7 @@

    Components

    @@ -4992,7 +4992,7 @@

    Components

    @@ -5009,7 +5009,7 @@

    Components

    @@ -5058,7 +5058,7 @@

    Components

    @@ -5075,7 +5075,7 @@

    Components

    @@ -5124,7 +5124,7 @@

    Components

    @@ -5141,7 +5141,7 @@

    Components

    @@ -5190,7 +5190,7 @@

    Components

    @@ -5207,7 +5207,7 @@

    Components

    @@ -5224,7 +5224,7 @@

    Components

    @@ -5241,7 +5241,7 @@

    Components

    @@ -5258,7 +5258,7 @@

    Components

    @@ -5307,7 +5307,7 @@

    Arguments

    @@ -5352,7 +5352,7 @@

    Arguments

    @@ -5397,7 +5397,7 @@

    Arguments

    @@ -5447,7 +5447,7 @@

    Arguments

    @@ -5462,7 +5462,7 @@

    Arguments

    @@ -5477,7 +5477,7 @@

    Arguments

    @@ -5517,7 +5517,7 @@

    Arguments

    @@ -5557,7 +5557,7 @@

    Arguments

    @@ -5572,7 +5572,7 @@

    Arguments

    @@ -5612,7 +5612,7 @@

    Arguments

    @@ -5653,7 +5653,7 @@

    Arguments

    @@ -5668,7 +5668,7 @@

    Arguments

    @@ -5683,7 +5683,7 @@

    Arguments

    @@ -5698,7 +5698,7 @@

    Arguments

    @@ -5713,7 +5713,7 @@

    Arguments

    @@ -5729,7 +5729,7 @@

    Arguments

    @@ -5770,7 +5770,7 @@

    Arguments

    @@ -5825,7 +5825,7 @@

    Arguments

    @@ -5840,7 +5840,7 @@

    Arguments

    @@ -5855,7 +5855,7 @@

    Arguments

    @@ -5870,7 +5870,7 @@

    Arguments

    @@ -5885,7 +5885,7 @@

    Arguments

    @@ -5925,7 +5925,7 @@

    Arguments

    @@ -5940,7 +5940,7 @@

    Arguments

    @@ -5980,7 +5980,7 @@

    Arguments

    @@ -5995,7 +5995,7 @@

    Arguments

    @@ -6035,7 +6035,7 @@

    Arguments

    @@ -6050,7 +6050,7 @@

    Arguments

    @@ -6090,7 +6090,7 @@

    Arguments

    @@ -6145,7 +6145,7 @@

    Arguments

    @@ -6160,7 +6160,7 @@

    Arguments

    @@ -6175,7 +6175,7 @@

    Arguments

    @@ -6215,7 +6215,7 @@

    Arguments

    @@ -6230,7 +6230,7 @@

    Arguments

    @@ -6245,7 +6245,7 @@

    Arguments

    @@ -6285,7 +6285,7 @@

    Arguments

    @@ -6300,7 +6300,7 @@

    Arguments

    @@ -6315,7 +6315,7 @@

    Arguments

    @@ -6355,7 +6355,7 @@

    Arguments

    @@ -6370,7 +6370,7 @@

    Arguments

    @@ -6385,7 +6385,7 @@

    Arguments

    @@ -6425,7 +6425,7 @@

    Arguments

    @@ -6440,7 +6440,7 @@

    Arguments

    @@ -6480,7 +6480,7 @@

    Arguments

    @@ -6495,7 +6495,7 @@

    Arguments

    @@ -6535,7 +6535,7 @@

    Arguments

    @@ -6550,7 +6550,7 @@

    Arguments

    @@ -6590,7 +6590,7 @@

    Arguments

    @@ -6605,7 +6605,7 @@

    Arguments

    @@ -6645,7 +6645,7 @@

    Arguments

    @@ -6685,7 +6685,7 @@

    Arguments

    @@ -6725,7 +6725,7 @@

    Arguments

    @@ -6765,7 +6765,7 @@

    Arguments

    @@ -6805,7 +6805,7 @@

    Arguments

    @@ -6820,7 +6820,7 @@

    Arguments

    @@ -6835,7 +6835,7 @@

    Arguments

    @@ -6850,7 +6850,7 @@

    Arguments

    @@ -6890,7 +6890,7 @@

    Arguments

    @@ -6905,7 +6905,7 @@

    Arguments

    @@ -6920,7 +6920,7 @@

    Arguments

    @@ -6935,7 +6935,7 @@

    Arguments

    @@ -6950,7 +6950,7 @@

    Arguments

    @@ -6990,7 +6990,7 @@

    Arguments

    @@ -7005,7 +7005,7 @@

    Arguments

    @@ -7020,7 +7020,7 @@

    Arguments

    @@ -7035,7 +7035,7 @@

    Arguments

    @@ -7050,7 +7050,7 @@

    Arguments

    @@ -7090,7 +7090,7 @@

    Arguments

    @@ -7105,7 +7105,7 @@

    Arguments

    @@ -7120,7 +7120,7 @@

    Arguments

    @@ -7135,7 +7135,7 @@

    Arguments

    @@ -7150,7 +7150,7 @@

    Arguments

    @@ -7190,7 +7190,7 @@

    Arguments

    @@ -7205,7 +7205,7 @@

    Arguments

    @@ -7220,7 +7220,7 @@

    Arguments

    @@ -7235,7 +7235,7 @@

    Arguments

    @@ -7250,7 +7250,7 @@

    Arguments

    @@ -7290,7 +7290,7 @@

    Arguments

    @@ -7305,7 +7305,7 @@

    Arguments

    @@ -7320,7 +7320,7 @@

    Arguments

    @@ -7335,7 +7335,7 @@

    Arguments

    @@ -7350,7 +7350,7 @@

    Arguments

    @@ -7390,7 +7390,7 @@

    Arguments

    @@ -7405,7 +7405,7 @@

    Arguments

    @@ -7420,7 +7420,7 @@

    Arguments

    @@ -7435,7 +7435,7 @@

    Arguments

    @@ -7475,7 +7475,7 @@

    Arguments

    @@ -7490,7 +7490,7 @@

    Arguments

    @@ -7505,7 +7505,7 @@

    Arguments

    @@ -7520,7 +7520,7 @@

    Arguments

    @@ -7560,7 +7560,7 @@

    Arguments

    @@ -7575,7 +7575,7 @@

    Arguments

    @@ -7590,7 +7590,7 @@

    Arguments

    @@ -7605,7 +7605,7 @@

    Arguments

    @@ -7645,7 +7645,7 @@

    Arguments

    @@ -7660,7 +7660,7 @@

    Arguments

    @@ -7675,7 +7675,7 @@

    Arguments

    @@ -7690,7 +7690,7 @@

    Arguments

    @@ -7730,7 +7730,7 @@

    Arguments

    @@ -7745,7 +7745,7 @@

    Arguments

    @@ -7760,7 +7760,7 @@

    Arguments

    @@ -7775,7 +7775,7 @@

    Arguments

    @@ -7790,7 +7790,7 @@

    Arguments

    @@ -7805,7 +7805,7 @@

    Arguments

    @@ -7845,7 +7845,7 @@

    Arguments

    @@ -7860,7 +7860,7 @@

    Arguments

    @@ -7875,7 +7875,7 @@

    Arguments

    @@ -7890,7 +7890,7 @@

    Arguments

    @@ -7905,7 +7905,7 @@

    Arguments

    @@ -7920,7 +7920,7 @@

    Arguments

    @@ -7960,7 +7960,7 @@

    Arguments

    @@ -7975,7 +7975,7 @@

    Arguments

    @@ -7990,7 +7990,7 @@

    Arguments

    @@ -8005,7 +8005,7 @@

    Arguments

    @@ -8020,7 +8020,7 @@

    Arguments

    @@ -8035,7 +8035,7 @@

    Arguments

    @@ -8075,7 +8075,7 @@

    Arguments

    @@ -8090,7 +8090,7 @@

    Arguments

    @@ -8105,7 +8105,7 @@

    Arguments

    @@ -8120,7 +8120,7 @@

    Arguments

    @@ -8135,7 +8135,7 @@

    Arguments

    @@ -8150,7 +8150,7 @@

    Arguments

    @@ -8190,7 +8190,7 @@

    Arguments

    @@ -8205,7 +8205,7 @@

    Arguments

    @@ -8220,7 +8220,7 @@

    Arguments

    @@ -8235,7 +8235,7 @@

    Arguments

    @@ -8250,7 +8250,7 @@

    Arguments

    @@ -8265,7 +8265,7 @@

    Arguments

    @@ -8305,7 +8305,7 @@

    Arguments

    @@ -8320,7 +8320,7 @@

    Arguments

    @@ -8335,7 +8335,7 @@

    Arguments

    @@ -8350,7 +8350,7 @@

    Arguments

    @@ -8365,7 +8365,7 @@

    Arguments

    @@ -8380,7 +8380,7 @@

    Arguments

    @@ -8420,7 +8420,7 @@

    Arguments

    @@ -8435,7 +8435,7 @@

    Arguments

    @@ -8450,7 +8450,7 @@

    Arguments

    @@ -8465,7 +8465,7 @@

    Arguments

    @@ -8480,7 +8480,7 @@

    Arguments

    @@ -8495,7 +8495,7 @@

    Arguments

    @@ -8535,7 +8535,7 @@

    Arguments

    @@ -8550,7 +8550,7 @@

    Arguments

    @@ -8565,7 +8565,7 @@

    Arguments

    @@ -8580,7 +8580,7 @@

    Arguments

    @@ -8595,7 +8595,7 @@

    Arguments

    @@ -8610,7 +8610,7 @@

    Arguments

    @@ -8650,7 +8650,7 @@

    Arguments

    @@ -8665,7 +8665,7 @@

    Arguments

    @@ -8680,7 +8680,7 @@

    Arguments

    @@ -8695,7 +8695,7 @@

    Arguments

    @@ -8710,7 +8710,7 @@

    Arguments

    @@ -8725,7 +8725,7 @@

    Arguments

    @@ -8765,7 +8765,7 @@

    Arguments

    @@ -8780,7 +8780,7 @@

    Arguments

    @@ -8795,7 +8795,7 @@

    Arguments

    @@ -8810,7 +8810,7 @@

    Arguments

    @@ -8825,7 +8825,7 @@

    Arguments

    @@ -8840,7 +8840,7 @@

    Arguments

    @@ -8880,7 +8880,7 @@

    Arguments

    @@ -8895,7 +8895,7 @@

    Arguments

    @@ -8910,7 +8910,7 @@

    Arguments

    @@ -8925,7 +8925,7 @@

    Arguments

    @@ -8940,7 +8940,7 @@

    Arguments

    @@ -8955,7 +8955,7 @@

    Arguments

    @@ -8995,7 +8995,7 @@

    Arguments

    @@ -9010,7 +9010,7 @@

    Arguments

    @@ -9025,7 +9025,7 @@

    Arguments

    @@ -9040,7 +9040,7 @@

    Arguments

    @@ -9055,7 +9055,7 @@

    Arguments

    @@ -9070,7 +9070,7 @@

    Arguments

    @@ -9110,7 +9110,7 @@

    Arguments

    @@ -9125,7 +9125,7 @@

    Arguments

    @@ -9140,7 +9140,7 @@

    Arguments

    @@ -9155,7 +9155,7 @@

    Arguments

    @@ -9195,7 +9195,7 @@

    Arguments

    @@ -9210,7 +9210,7 @@

    Arguments

    @@ -9225,7 +9225,7 @@

    Arguments

    @@ -9240,7 +9240,7 @@

    Arguments

    @@ -9280,7 +9280,7 @@

    Arguments

    @@ -9295,7 +9295,7 @@

    Arguments

    @@ -9310,7 +9310,7 @@

    Arguments

    @@ -9325,7 +9325,7 @@

    Arguments

    @@ -9365,7 +9365,7 @@

    Arguments

    @@ -9380,7 +9380,7 @@

    Arguments

    @@ -9395,7 +9395,7 @@

    Arguments

    @@ -9410,7 +9410,7 @@

    Arguments

    @@ -9450,7 +9450,7 @@

    Arguments

    @@ -9465,7 +9465,7 @@

    Arguments

    @@ -9480,7 +9480,7 @@

    Arguments

    @@ -9495,7 +9495,7 @@

    Arguments

    @@ -9535,7 +9535,7 @@

    Arguments

    @@ -9550,7 +9550,7 @@

    Arguments

    @@ -9565,7 +9565,7 @@

    Arguments

    @@ -9580,7 +9580,7 @@

    Arguments

    @@ -9620,7 +9620,7 @@

    Arguments

    @@ -9635,7 +9635,7 @@

    Arguments

    @@ -9650,7 +9650,7 @@

    Arguments

    @@ -9665,7 +9665,7 @@

    Arguments

    @@ -9705,7 +9705,7 @@

    Arguments

    @@ -9720,7 +9720,7 @@

    Arguments

    @@ -9735,7 +9735,7 @@

    Arguments

    @@ -9750,7 +9750,7 @@

    Arguments

    @@ -9790,7 +9790,7 @@

    Arguments

    @@ -9805,7 +9805,7 @@

    Arguments

    @@ -9820,7 +9820,7 @@

    Arguments

    @@ -9835,7 +9835,7 @@

    Arguments

    @@ -9875,7 +9875,7 @@

    Arguments

    @@ -9890,7 +9890,7 @@

    Arguments

    @@ -9905,7 +9905,7 @@

    Arguments

    @@ -9920,7 +9920,7 @@

    Arguments

    @@ -9960,7 +9960,7 @@

    Arguments

    @@ -9975,7 +9975,7 @@

    Arguments

    @@ -9990,7 +9990,7 @@

    Arguments

    @@ -10005,7 +10005,7 @@

    Arguments

    @@ -10045,7 +10045,7 @@

    Arguments

    @@ -10060,7 +10060,7 @@

    Arguments

    @@ -10075,7 +10075,7 @@

    Arguments

    @@ -10090,7 +10090,7 @@

    Arguments

    @@ -10130,7 +10130,7 @@

    Arguments

    @@ -10145,7 +10145,7 @@

    Arguments

    @@ -10160,7 +10160,7 @@

    Arguments

    @@ -10175,7 +10175,7 @@

    Arguments

    @@ -10190,7 +10190,7 @@

    Arguments

    @@ -10230,7 +10230,7 @@

    Arguments

    @@ -10245,7 +10245,7 @@

    Arguments

    @@ -10260,7 +10260,7 @@

    Arguments

    @@ -10275,7 +10275,7 @@

    Arguments

    @@ -10290,7 +10290,7 @@

    Arguments

    @@ -10330,7 +10330,7 @@

    Arguments

    @@ -10345,7 +10345,7 @@

    Arguments

    @@ -10360,7 +10360,7 @@

    Arguments

    @@ -10375,7 +10375,7 @@

    Arguments

    @@ -10390,7 +10390,7 @@

    Arguments

    @@ -10430,7 +10430,7 @@

    Arguments

    @@ -10445,7 +10445,7 @@

    Arguments

    @@ -10460,7 +10460,7 @@

    Arguments

    @@ -10475,7 +10475,7 @@

    Arguments

    @@ -10490,7 +10490,7 @@

    Arguments

    @@ -10530,7 +10530,7 @@

    Arguments

    @@ -10545,7 +10545,7 @@

    Arguments

    @@ -10560,7 +10560,7 @@

    Arguments

    @@ -10575,7 +10575,7 @@

    Arguments

    @@ -10590,7 +10590,7 @@

    Arguments

    @@ -10630,7 +10630,7 @@

    Arguments

    @@ -10645,7 +10645,7 @@

    Arguments

    @@ -10660,7 +10660,7 @@

    Arguments

    @@ -10675,7 +10675,7 @@

    Arguments

    @@ -10690,7 +10690,7 @@

    Arguments

    @@ -10730,7 +10730,7 @@

    Arguments

    @@ -10745,7 +10745,7 @@

    Arguments

    @@ -10760,7 +10760,7 @@

    Arguments

    @@ -10775,7 +10775,7 @@

    Arguments

    @@ -10790,7 +10790,7 @@

    Arguments

    @@ -10830,7 +10830,7 @@

    Arguments

    @@ -10845,7 +10845,7 @@

    Arguments

    @@ -10860,7 +10860,7 @@

    Arguments

    @@ -10875,7 +10875,7 @@

    Arguments

    @@ -10890,7 +10890,7 @@

    Arguments

    @@ -10930,7 +10930,7 @@

    Arguments

    @@ -10945,7 +10945,7 @@

    Arguments

    @@ -10960,7 +10960,7 @@

    Arguments

    @@ -10975,7 +10975,7 @@

    Arguments

    @@ -10990,7 +10990,7 @@

    Arguments

    @@ -11030,7 +11030,7 @@

    Arguments

    @@ -11045,7 +11045,7 @@

    Arguments

    @@ -11060,7 +11060,7 @@

    Arguments

    @@ -11075,7 +11075,7 @@

    Arguments

    @@ -11090,7 +11090,7 @@

    Arguments

    @@ -11130,7 +11130,7 @@

    Arguments

    @@ -11145,7 +11145,7 @@

    Arguments

    @@ -11160,7 +11160,7 @@

    Arguments

    @@ -11175,7 +11175,7 @@

    Arguments

    @@ -11190,7 +11190,7 @@

    Arguments

    @@ -11230,7 +11230,7 @@

    Arguments

    @@ -11245,7 +11245,7 @@

    Arguments

    @@ -11260,7 +11260,7 @@

    Arguments

    @@ -11275,7 +11275,7 @@

    Arguments

    @@ -11290,7 +11290,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_tensor_index.html b/develop/module/dbcsr_tensor_index.html index 57d3a608e92..faa6f7febd9 100644 --- a/develop/module/dbcsr_tensor_index.html +++ b/develop/module/dbcsr_tensor_index.html @@ -113,7 +113,7 @@

    Variables

    @@ -198,8 +198,8 @@

    Uses

  • @@ -224,7 +224,7 @@

    Variables

    @@ -275,7 +275,7 @@

    Components

    @@ -292,7 +292,7 @@

    Components

    @@ -309,7 +309,7 @@

    Components

    @@ -326,7 +326,7 @@

    Components

    @@ -343,7 +343,7 @@

    Components

    @@ -394,7 +394,7 @@

    Components

    @@ -411,7 +411,7 @@

    Components

    @@ -445,7 +445,7 @@

    Components

    @@ -462,7 +462,7 @@

    Components

    @@ -511,7 +511,7 @@

    Arguments

    @@ -556,7 +556,7 @@

    Arguments

    @@ -601,7 +601,7 @@

    Arguments

    @@ -662,7 +662,7 @@

    Arguments

    @@ -724,7 +724,7 @@

    Arguments

    @@ -785,7 +785,7 @@

    Arguments

    @@ -845,7 +845,7 @@

    Arguments

    @@ -890,7 +890,7 @@

    Arguments

    @@ -950,7 +950,7 @@

    Arguments

    @@ -1010,7 +1010,7 @@

    Arguments

    @@ -1070,7 +1070,7 @@

    Arguments

    @@ -1130,7 +1130,7 @@

    Arguments

    @@ -1180,7 +1180,7 @@

    Arguments

    @@ -1195,7 +1195,7 @@

    Arguments

    @@ -1212,7 +1212,7 @@

    Arguments

    @@ -1229,7 +1229,7 @@

    Arguments

    @@ -1246,7 +1246,7 @@

    Arguments

    @@ -1261,7 +1261,7 @@

    Arguments

    @@ -1301,7 +1301,7 @@

    Arguments

    @@ -1341,7 +1341,7 @@

    Arguments

    @@ -1356,7 +1356,7 @@

    Arguments

    @@ -1373,7 +1373,7 @@

    Arguments

    @@ -1390,7 +1390,7 @@

    Arguments

    @@ -1422,7 +1422,7 @@

    Arguments

    @@ -1437,7 +1437,7 @@

    Arguments

    @@ -1482,7 +1482,7 @@

    Arguments

    @@ -1497,7 +1497,7 @@

    Arguments

    @@ -1527,7 +1527,7 @@

    Arguments

    @@ -1542,7 +1542,7 @@

    Arguments

    @@ -1612,7 +1612,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_tensor_io.html b/develop/module/dbcsr_tensor_io.html index 72d09c081ac..a47143ffd97 100644 --- a/develop/module/dbcsr_tensor_io.html +++ b/develop/module/dbcsr_tensor_io.html @@ -113,7 +113,7 @@

    Variables

    @@ -134,7 +134,7 @@

    Functions

    @@ -177,12 +177,12 @@

    Uses

    @@ -207,7 +207,7 @@

    Variables

    @@ -235,7 +235,7 @@

    Variables

    Functions

    -

    public function prep_output_unit(unit_nr) result(unit_nr_out) +

    public function prep_output_unit(unit_nr) result(unit_nr_out)

    @@ -254,7 +254,7 @@

    Arguments

    @@ -304,7 +304,7 @@

    Arguments

    @@ -319,7 +319,7 @@

    Arguments

    @@ -334,7 +334,7 @@

    Arguments

    @@ -374,7 +374,7 @@

    Arguments

    @@ -389,7 +389,7 @@

    Arguments

    @@ -429,7 +429,7 @@

    Arguments

    @@ -476,7 +476,7 @@

    Arguments

    @@ -516,7 +516,7 @@

    Arguments

    @@ -531,7 +531,7 @@

    Arguments

    @@ -546,7 +546,7 @@

    Arguments

    @@ -561,7 +561,7 @@

    Arguments

    @@ -576,7 +576,7 @@

    Arguments

    @@ -591,7 +591,7 @@

    Arguments

    @@ -606,7 +606,7 @@

    Arguments

    @@ -621,7 +621,7 @@

    Arguments

    @@ -636,7 +636,7 @@

    Arguments

    @@ -676,7 +676,7 @@

    Arguments

    @@ -746,7 +746,7 @@

    Arguments

    @@ -761,7 +761,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_tensor_reshape.html b/develop/module/dbcsr_tensor_reshape.html index b69b50244db..d13ccddf605 100644 --- a/develop/module/dbcsr_tensor_reshape.html +++ b/develop/module/dbcsr_tensor_reshape.html @@ -113,7 +113,7 @@

    Variables

    @@ -209,14 +209,14 @@

    Uses

    @@ -241,7 +241,7 @@

    Variables

    @@ -308,7 +308,7 @@

    Arguments

    @@ -323,7 +323,7 @@

    Arguments

    @@ -338,7 +338,7 @@

    Arguments

    @@ -392,7 +392,7 @@

    Arguments

    @@ -407,7 +407,7 @@

    Arguments

    @@ -422,7 +422,7 @@

    Arguments

    @@ -476,7 +476,7 @@

    Arguments

    @@ -491,7 +491,7 @@

    Arguments

    @@ -506,7 +506,7 @@

    Arguments

    @@ -560,7 +560,7 @@

    Arguments

    @@ -575,7 +575,7 @@

    Arguments

    @@ -590,7 +590,7 @@

    Arguments

    @@ -659,7 +659,7 @@

    Components

    @@ -761,7 +761,7 @@

    Components

    @@ -922,7 +922,7 @@

    Arguments

    @@ -937,7 +937,7 @@

    Arguments

    @@ -952,7 +952,7 @@

    Arguments

    @@ -968,7 +968,7 @@

    Arguments

    @@ -1023,7 +1023,7 @@

    Arguments

    @@ -1040,7 +1040,7 @@

    Arguments

    @@ -1057,7 +1057,7 @@

    Arguments

    @@ -1171,7 +1171,7 @@

    Arguments

    @@ -1186,7 +1186,7 @@

    Arguments

    @@ -1241,7 +1241,7 @@

    Arguments

    @@ -1256,7 +1256,7 @@

    Arguments

    @@ -1271,7 +1271,7 @@

    Arguments

    @@ -1341,7 +1341,7 @@

    Arguments

    @@ -1381,7 +1381,7 @@

    Arguments

    @@ -1481,7 +1481,7 @@

    Arguments

    @@ -1496,7 +1496,7 @@

    Arguments

    @@ -1511,7 +1511,7 @@

    Arguments

    @@ -1566,7 +1566,7 @@

    Arguments

    @@ -1581,7 +1581,7 @@

    Arguments

    @@ -1596,7 +1596,7 @@

    Arguments

    @@ -1651,7 +1651,7 @@

    Arguments

    @@ -1666,7 +1666,7 @@

    Arguments

    @@ -1681,7 +1681,7 @@

    Arguments

    @@ -1736,7 +1736,7 @@

    Arguments

    @@ -1751,7 +1751,7 @@

    Arguments

    @@ -1766,7 +1766,7 @@

    Arguments

    @@ -1821,7 +1821,7 @@

    Arguments

    @@ -1836,7 +1836,7 @@

    Arguments

    @@ -1851,7 +1851,7 @@

    Arguments

    @@ -1921,7 +1921,7 @@

    Arguments

    @@ -1936,7 +1936,7 @@

    Arguments

    @@ -1951,7 +1951,7 @@

    Arguments

    @@ -2021,7 +2021,7 @@

    Arguments

    @@ -2036,7 +2036,7 @@

    Arguments

    @@ -2051,7 +2051,7 @@

    Arguments

    @@ -2121,7 +2121,7 @@

    Arguments

    @@ -2136,7 +2136,7 @@

    Arguments

    @@ -2151,7 +2151,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_tensor_split.html b/develop/module/dbcsr_tensor_split.html index 4b372602b81..19d63be33c6 100644 --- a/develop/module/dbcsr_tensor_split.html +++ b/develop/module/dbcsr_tensor_split.html @@ -113,7 +113,7 @@

    Variables

    @@ -165,14 +165,14 @@

    Uses

    @@ -197,7 +197,7 @@

    Variables

    @@ -245,7 +245,7 @@

    Arguments

    @@ -260,7 +260,7 @@

    Arguments

    @@ -275,7 +275,7 @@

    Arguments

    @@ -290,7 +290,7 @@

    Arguments

    @@ -305,7 +305,7 @@

    Arguments

    @@ -320,7 +320,7 @@

    Arguments

    @@ -335,7 +335,7 @@

    Arguments

    @@ -375,7 +375,7 @@

    Arguments

    @@ -390,7 +390,7 @@

    Arguments

    @@ -405,7 +405,7 @@

    Arguments

    @@ -420,7 +420,7 @@

    Arguments

    @@ -475,7 +475,7 @@

    Arguments

    @@ -490,7 +490,7 @@

    Arguments

    @@ -643,7 +643,7 @@

    Arguments

    @@ -684,7 +684,7 @@

    Arguments

    @@ -699,7 +699,7 @@

    Arguments

    @@ -714,7 +714,7 @@

    Arguments

    @@ -729,7 +729,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_tensor_test.html b/develop/module/dbcsr_tensor_test.html index ebb10e922d4..8f11115f6b1 100644 --- a/develop/module/dbcsr_tensor_test.html +++ b/develop/module/dbcsr_tensor_test.html @@ -113,9 +113,9 @@

    Variables

    @@ -197,19 +197,19 @@

    Uses

    @@ -234,7 +234,7 @@

    Variables

    @@ -251,7 +251,7 @@

    Variables

    @@ -268,7 +268,7 @@

    Variables

    @@ -321,7 +321,7 @@

    Arguments

    @@ -336,7 +336,7 @@

    Arguments

    @@ -376,7 +376,7 @@

    Arguments

    @@ -391,7 +391,7 @@

    Arguments

    @@ -431,7 +431,7 @@

    Arguments

    @@ -446,7 +446,7 @@

    Arguments

    @@ -494,7 +494,7 @@

    Arguments

    @@ -509,7 +509,7 @@

    Arguments

    @@ -614,7 +614,7 @@

    Arguments

    @@ -674,7 +674,7 @@

    Arguments

    @@ -689,7 +689,7 @@

    Arguments

    @@ -734,7 +734,7 @@

    Arguments

    @@ -749,7 +749,7 @@

    Arguments

    @@ -764,7 +764,7 @@

    Arguments

    @@ -814,7 +814,7 @@

    Arguments

    @@ -829,7 +829,7 @@

    Arguments

    @@ -869,7 +869,7 @@

    Arguments

    @@ -884,7 +884,7 @@

    Arguments

    @@ -899,7 +899,7 @@

    Arguments

    @@ -914,7 +914,7 @@

    Arguments

    @@ -929,7 +929,7 @@

    Arguments

    @@ -944,7 +944,7 @@

    Arguments

    @@ -959,7 +959,7 @@

    Arguments

    @@ -974,7 +974,7 @@

    Arguments

    @@ -989,7 +989,7 @@

    Arguments

    @@ -1004,7 +1004,7 @@

    Arguments

    @@ -1019,7 +1019,7 @@

    Arguments

    @@ -1034,7 +1034,7 @@

    Arguments

    @@ -1075,7 +1075,7 @@

    Arguments

    @@ -1090,7 +1090,7 @@

    Arguments

    @@ -1120,7 +1120,7 @@

    Arguments

    @@ -1135,7 +1135,7 @@

    Arguments

    @@ -1150,7 +1150,7 @@

    Arguments

    @@ -1165,7 +1165,7 @@

    Arguments

    @@ -1207,7 +1207,7 @@

    Arguments

    @@ -1224,7 +1224,7 @@

    Arguments

    @@ -1329,7 +1329,7 @@

    Arguments

    @@ -1344,7 +1344,7 @@

    Arguments

    @@ -1385,7 +1385,7 @@

    Arguments

    @@ -1400,7 +1400,7 @@

    Arguments

    @@ -1441,7 +1441,7 @@

    Arguments

    @@ -1456,7 +1456,7 @@

    Arguments

    @@ -1496,7 +1496,7 @@

    Arguments

    @@ -1511,7 +1511,7 @@

    Arguments

    @@ -1526,7 +1526,7 @@

    Arguments

    @@ -1541,7 +1541,7 @@

    Arguments

    @@ -1556,7 +1556,7 @@

    Arguments

    @@ -1571,7 +1571,7 @@

    Arguments

    @@ -1586,7 +1586,7 @@

    Arguments

    @@ -1601,7 +1601,7 @@

    Arguments

    @@ -1616,7 +1616,7 @@

    Arguments

    @@ -1631,7 +1631,7 @@

    Arguments

    @@ -1646,7 +1646,7 @@

    Arguments

    @@ -1661,7 +1661,7 @@

    Arguments

    @@ -1676,7 +1676,7 @@

    Arguments

    @@ -1691,7 +1691,7 @@

    Arguments

    @@ -1706,7 +1706,7 @@

    Arguments

    @@ -1721,7 +1721,7 @@

    Arguments

    @@ -1736,7 +1736,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_tensor_types.html b/develop/module/dbcsr_tensor_types.html index 123cc51c234..6300f3e64f9 100644 --- a/develop/module/dbcsr_tensor_types.html +++ b/develop/module/dbcsr_tensor_types.html @@ -113,7 +113,7 @@

    Variables

    @@ -261,21 +261,21 @@

    Uses

    @@ -300,7 +300,7 @@

    Variables

    @@ -369,7 +369,7 @@

    Arguments

    @@ -384,7 +384,7 @@

    Arguments

    @@ -399,7 +399,7 @@

    Arguments

    @@ -414,7 +414,7 @@

    Arguments

    @@ -429,7 +429,7 @@

    Arguments

    @@ -444,7 +444,7 @@

    Arguments

    @@ -459,7 +459,7 @@

    Arguments

    @@ -474,7 +474,7 @@

    Arguments

    @@ -489,7 +489,7 @@

    Arguments

    @@ -528,7 +528,7 @@

    Arguments

    @@ -558,7 +558,7 @@

    Arguments

    @@ -573,7 +573,7 @@

    Arguments

    @@ -588,7 +588,7 @@

    Arguments

    @@ -603,7 +603,7 @@

    Arguments

    @@ -618,7 +618,7 @@

    Arguments

    @@ -657,7 +657,7 @@

    Arguments

    @@ -687,7 +687,7 @@

    Arguments

    @@ -702,7 +702,7 @@

    Arguments

    @@ -854,7 +854,7 @@

    Arguments

    @@ -953,7 +953,7 @@

    Arguments

    @@ -1007,7 +1007,7 @@

    Arguments

    @@ -1061,7 +1061,7 @@

    Arguments

    @@ -1115,7 +1115,7 @@

    Arguments

    @@ -1179,7 +1179,7 @@

    Arguments

    @@ -1194,7 +1194,7 @@

    Arguments

    @@ -1209,7 +1209,7 @@

    Arguments

    @@ -1263,7 +1263,7 @@

    Arguments

    @@ -1278,7 +1278,7 @@

    Arguments

    @@ -1293,7 +1293,7 @@

    Arguments

    @@ -1347,7 +1347,7 @@

    Arguments

    @@ -1362,7 +1362,7 @@

    Arguments

    @@ -1377,7 +1377,7 @@

    Arguments

    @@ -1431,7 +1431,7 @@

    Arguments

    @@ -1446,7 +1446,7 @@

    Arguments

    @@ -1461,7 +1461,7 @@

    Arguments

    @@ -1547,7 +1547,7 @@

    Components

    @@ -1564,7 +1564,7 @@

    Components

    @@ -1630,7 +1630,7 @@

    Components

    @@ -1747,7 +1747,7 @@

    Components

    @@ -1815,7 +1815,7 @@

    Components

    @@ -1849,7 +1849,7 @@

    Components

    @@ -1883,7 +1883,7 @@

    Components

    @@ -1917,7 +1917,7 @@

    Components

    @@ -1934,7 +1934,7 @@

    Components

    @@ -2000,7 +2000,7 @@

    Components

    @@ -2017,7 +2017,7 @@

    Components

    @@ -2051,7 +2051,7 @@

    Components

    @@ -2134,7 +2134,7 @@

    Components

    @@ -2212,7 +2212,7 @@

    Type-Bound Procedures

    + dist => tas_dist_t @@ -2284,7 +2284,7 @@

    Components

    @@ -2301,7 +2301,7 @@

    Components

    @@ -2345,7 +2345,7 @@

    Type-Bound Procedures

    + data => tas_blk_size_t @@ -2471,7 +2471,7 @@

    Arguments

    @@ -2531,7 +2531,7 @@

    Arguments

    @@ -2546,7 +2546,7 @@

    Arguments

    @@ -2592,7 +2592,7 @@

    Arguments

    @@ -2667,7 +2667,7 @@

    Arguments

    @@ -2731,7 +2731,7 @@

    Arguments

    @@ -2746,7 +2746,7 @@

    Arguments

    @@ -2762,7 +2762,7 @@

    Arguments

    @@ -2823,7 +2823,7 @@

    Arguments

    @@ -2838,7 +2838,7 @@

    Arguments

    @@ -2855,7 +2855,7 @@

    Arguments

    @@ -2870,7 +2870,7 @@

    Arguments

    @@ -3067,7 +3067,7 @@

    Arguments

    @@ -3127,7 +3127,7 @@

    Arguments

    @@ -3517,7 +3517,7 @@

    Arguments

    @@ -3722,7 +3722,7 @@

    Arguments

    @@ -3737,7 +3737,7 @@

    Arguments

    @@ -3792,7 +3792,7 @@

    Arguments

    @@ -3832,7 +3832,7 @@

    Arguments

    @@ -3847,7 +3847,7 @@

    Arguments

    @@ -3862,7 +3862,7 @@

    Arguments

    @@ -3877,7 +3877,7 @@

    Arguments

    @@ -3892,7 +3892,7 @@

    Arguments

    @@ -3907,7 +3907,7 @@

    Arguments

    @@ -3947,7 +3947,7 @@

    Arguments

    @@ -3962,7 +3962,7 @@

    Arguments

    @@ -3977,7 +3977,7 @@

    Arguments

    @@ -3992,7 +3992,7 @@

    Arguments

    @@ -4007,7 +4007,7 @@

    Arguments

    @@ -4022,7 +4022,7 @@

    Arguments

    @@ -4037,7 +4037,7 @@

    Arguments

    @@ -4052,7 +4052,7 @@

    Arguments

    @@ -4107,7 +4107,7 @@

    Arguments

    @@ -4148,7 +4148,7 @@

    Arguments

    @@ -4205,7 +4205,7 @@

    Arguments

    @@ -4220,7 +4220,7 @@

    Arguments

    @@ -4235,7 +4235,7 @@

    Arguments

    @@ -4250,7 +4250,7 @@

    Arguments

    @@ -4265,7 +4265,7 @@

    Arguments

    @@ -4280,7 +4280,7 @@

    Arguments

    @@ -4295,7 +4295,7 @@

    Arguments

    @@ -4310,7 +4310,7 @@

    Arguments

    @@ -4325,7 +4325,7 @@

    Arguments

    @@ -4406,7 +4406,7 @@

    Arguments

    @@ -4436,7 +4436,7 @@

    Arguments

    @@ -4451,7 +4451,7 @@

    Arguments

    @@ -4466,7 +4466,7 @@

    Arguments

    @@ -4481,7 +4481,7 @@

    Arguments

    @@ -4496,7 +4496,7 @@

    Arguments

    @@ -4536,7 +4536,7 @@

    Arguments

    @@ -4566,7 +4566,7 @@

    Arguments

    @@ -4581,7 +4581,7 @@

    Arguments

    @@ -4676,7 +4676,7 @@

    Arguments

    @@ -4731,7 +4731,7 @@

    Arguments

    @@ -4801,7 +4801,7 @@

    Arguments

    @@ -4871,7 +4871,7 @@

    Arguments

    @@ -4926,7 +4926,7 @@

    Arguments

    @@ -4941,7 +4941,7 @@

    Arguments

    @@ -4981,7 +4981,7 @@

    Arguments

    @@ -4996,7 +4996,7 @@

    Arguments

    @@ -5011,7 +5011,7 @@

    Arguments

    @@ -5026,7 +5026,7 @@

    Arguments

    @@ -5076,7 +5076,7 @@

    Arguments

    @@ -5091,7 +5091,7 @@

    Arguments

    @@ -5106,7 +5106,7 @@

    Arguments

    @@ -5121,7 +5121,7 @@

    Arguments

    @@ -5137,7 +5137,7 @@

    Arguments

    @@ -5153,7 +5153,7 @@

    Arguments

    @@ -5170,7 +5170,7 @@

    Arguments

    @@ -5186,7 +5186,7 @@

    Arguments

    @@ -5227,7 +5227,7 @@

    Arguments

    @@ -5282,7 +5282,7 @@

    Arguments

    @@ -5337,7 +5337,7 @@

    Arguments

    @@ -5353,7 +5353,7 @@

    Arguments

    @@ -5409,7 +5409,7 @@

    Arguments

    @@ -5424,7 +5424,7 @@

    Arguments

    @@ -5464,7 +5464,7 @@

    Arguments

    @@ -5479,7 +5479,7 @@

    Arguments

    @@ -5494,7 +5494,7 @@

    Arguments

    @@ -5549,7 +5549,7 @@

    Arguments

    @@ -5564,7 +5564,7 @@

    Arguments

    @@ -5634,7 +5634,7 @@

    Arguments

    @@ -5689,7 +5689,7 @@

    Arguments

    @@ -5744,7 +5744,7 @@

    Arguments

    @@ -5799,7 +5799,7 @@

    Arguments

    @@ -5854,7 +5854,7 @@

    Arguments

    @@ -5869,7 +5869,7 @@

    Arguments

    @@ -5884,7 +5884,7 @@

    Arguments

    @@ -5939,7 +5939,7 @@

    Arguments

    @@ -5954,7 +5954,7 @@

    Arguments

    @@ -5969,7 +5969,7 @@

    Arguments

    @@ -6024,7 +6024,7 @@

    Arguments

    @@ -6039,7 +6039,7 @@

    Arguments

    @@ -6054,7 +6054,7 @@

    Arguments

    @@ -6109,7 +6109,7 @@

    Arguments

    @@ -6124,7 +6124,7 @@

    Arguments

    @@ -6139,7 +6139,7 @@

    Arguments

    @@ -6224,7 +6224,7 @@

    Arguments

    @@ -6254,7 +6254,7 @@

    Arguments

    @@ -6404,7 +6404,7 @@

    Arguments

    @@ -6419,7 +6419,7 @@

    Arguments

    @@ -6434,7 +6434,7 @@

    Arguments

    @@ -6449,7 +6449,7 @@

    Arguments

    @@ -6524,7 +6524,7 @@

    Arguments

    @@ -6539,7 +6539,7 @@

    Arguments

    @@ -6554,7 +6554,7 @@

    Arguments

    @@ -6690,7 +6690,7 @@

    Arguments

    @@ -6745,7 +6745,7 @@

    Arguments

    @@ -6760,7 +6760,7 @@

    Arguments

    @@ -6775,7 +6775,7 @@

    Arguments

    @@ -6815,7 +6815,7 @@

    Arguments

    @@ -6830,7 +6830,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_test_methods.html b/develop/module/dbcsr_test_methods.html index 3971f3b70ce..be5bfa31682 100644 --- a/develop/module/dbcsr_test_methods.html +++ b/develop/module/dbcsr_test_methods.html @@ -113,9 +113,9 @@

    Variables

    @@ -181,22 +181,22 @@

    Uses

    @@ -221,7 +221,7 @@

    Variables

    @@ -238,7 +238,7 @@

    Variables

    @@ -255,7 +255,7 @@

    Variables

    @@ -302,7 +302,7 @@

    Arguments

    @@ -317,7 +317,7 @@

    Arguments

    @@ -395,7 +395,7 @@

    Arguments

    @@ -451,7 +451,7 @@

    Arguments

    @@ -492,7 +492,7 @@

    Arguments

    @@ -507,7 +507,7 @@

    Arguments

    @@ -522,7 +522,7 @@

    Arguments

    @@ -562,7 +562,7 @@

    Arguments

    @@ -577,7 +577,7 @@

    Arguments

    @@ -592,7 +592,7 @@

    Arguments

    @@ -607,7 +607,7 @@

    Arguments

    @@ -622,7 +622,7 @@

    Arguments

    @@ -637,7 +637,7 @@

    Arguments

    @@ -652,7 +652,7 @@

    Arguments

    @@ -682,7 +682,7 @@

    Arguments

    @@ -722,7 +722,7 @@

    Arguments

    @@ -792,7 +792,7 @@

    Arguments

    @@ -807,7 +807,7 @@

    Arguments

    @@ -847,7 +847,7 @@

    Arguments

    @@ -862,7 +862,7 @@

    Arguments

    @@ -877,7 +877,7 @@

    Arguments

    @@ -892,7 +892,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_test_scale_by_vector.html b/develop/module/dbcsr_test_scale_by_vector.html index a2b0fe5a203..25f827188e9 100644 --- a/develop/module/dbcsr_test_scale_by_vector.html +++ b/develop/module/dbcsr_test_scale_by_vector.html @@ -113,7 +113,7 @@

    Variables

    @@ -174,18 +174,18 @@

    Uses

    @@ -210,7 +210,7 @@

    Variables

    @@ -273,7 +273,7 @@

    Arguments

    @@ -288,7 +288,7 @@

    Arguments

    @@ -318,7 +318,7 @@

    Arguments

    @@ -380,7 +380,7 @@

    Arguments

    @@ -440,7 +440,7 @@

    Arguments

    @@ -470,7 +470,7 @@

    Arguments

    @@ -550,7 +550,7 @@

    Arguments

    @@ -605,7 +605,7 @@

    Arguments

    @@ -620,7 +620,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_tests.html b/develop/module/dbcsr_tests.html index 200f6dcdc93..f88e5ea4459 100644 --- a/develop/module/dbcsr_tests.html +++ b/develop/module/dbcsr_tests.html @@ -113,7 +113,7 @@

    Variables

    @@ -269,7 +269,7 @@

    Variables

    Subroutines

    -

    public subroutine dbcsr_run_tests(mp_group, io_unit, nproc, matrix_sizes, trs, bs_m, bs_n, bs_k, sparsities, alpha, beta, data_type, test_type, n_loops, eps, retain_sparsity, always_checksum) +

    public subroutine dbcsr_run_tests(mp_group, io_unit, nproc, matrix_sizes, trs, bs_m, bs_n, bs_k, sparsities, alpha, beta, data_type, test_type, n_loops, eps, retain_sparsity, always_checksum)

    @@ -289,7 +289,7 @@

    Arguments

    @@ -304,7 +304,7 @@

    Arguments

    @@ -320,7 +320,7 @@

    Arguments

    @@ -335,7 +335,7 @@

    Arguments

    @@ -350,7 +350,7 @@

    Arguments

    @@ -365,7 +365,7 @@

    Arguments

    @@ -382,7 +382,7 @@

    Arguments

    @@ -399,7 +399,7 @@

    Arguments

    @@ -416,7 +416,7 @@

    Arguments

    @@ -431,7 +431,7 @@

    Arguments

    @@ -447,7 +447,7 @@

    Arguments

    @@ -463,7 +463,7 @@

    Arguments

    @@ -479,7 +479,7 @@

    Arguments

    @@ -495,7 +495,7 @@

    Arguments

    @@ -511,7 +511,7 @@

    Arguments

    @@ -526,7 +526,7 @@

    Arguments

    @@ -541,7 +541,7 @@

    Arguments

    @@ -581,7 +581,7 @@

    Arguments

    @@ -596,7 +596,7 @@

    Arguments

    @@ -652,7 +652,7 @@

    Arguments

    @@ -669,7 +669,7 @@

    Arguments

    @@ -686,7 +686,7 @@

    Arguments

    @@ -703,7 +703,7 @@

    Arguments

    @@ -718,7 +718,7 @@

    Arguments

    @@ -733,7 +733,7 @@

    Arguments

    @@ -748,7 +748,7 @@

    Arguments

    @@ -763,7 +763,7 @@

    Arguments

    @@ -778,7 +778,7 @@

    Arguments

    @@ -793,7 +793,7 @@

    Arguments

    @@ -808,7 +808,7 @@

    Arguments

    @@ -823,7 +823,7 @@

    Arguments

    @@ -838,7 +838,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_timings.html b/develop/module/dbcsr_timings.html index 0fb41907a74..fe28d75648d 100644 --- a/develop/module/dbcsr_timings.html +++ b/develop/module/dbcsr_timings.html @@ -113,7 +113,7 @@

    Variables

    @@ -338,7 +338,7 @@

    Arguments

    @@ -401,7 +401,7 @@

    Arguments

    @@ -441,7 +441,7 @@

    Arguments

    @@ -494,7 +494,7 @@

    Arguments

    @@ -534,7 +534,7 @@

    Arguments

    @@ -574,7 +574,7 @@

    Arguments

    @@ -589,7 +589,7 @@

    Arguments

    @@ -629,7 +629,7 @@

    Arguments

    @@ -669,7 +669,7 @@

    Arguments

    @@ -685,7 +685,7 @@

    Arguments

    @@ -701,7 +701,7 @@

    Arguments

    @@ -716,7 +716,7 @@

    Arguments

    @@ -756,7 +756,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_timings_base_type.html b/develop/module/dbcsr_timings_base_type.html index 643549f1a49..e8430847cb2 100644 --- a/develop/module/dbcsr_timings_base_type.html +++ b/develop/module/dbcsr_timings_base_type.html @@ -199,7 +199,7 @@

    Components

    @@ -216,7 +216,7 @@

    Components

    @@ -352,7 +352,7 @@

    Components

    @@ -484,7 +484,7 @@

    Components

    @@ -567,7 +567,7 @@

    Components

    diff --git a/develop/module/dbcsr_timings_report.html b/develop/module/dbcsr_timings_report.html index 92db809996d..8fa6f9f20e1 100644 --- a/develop/module/dbcsr_timings_report.html +++ b/develop/module/dbcsr_timings_report.html @@ -165,18 +165,18 @@

    Uses

    @@ -266,7 +266,7 @@

    Arguments

    @@ -341,7 +341,7 @@

    Arguments

    @@ -411,7 +411,7 @@

    Arguments

    @@ -466,7 +466,7 @@

    Arguments

    @@ -481,7 +481,7 @@

    Arguments

    @@ -541,7 +541,7 @@

    Arguments

    @@ -582,7 +582,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_timings_types.html b/develop/module/dbcsr_timings_types.html index b1e95b09891..a953f6a441b 100644 --- a/develop/module/dbcsr_timings_types.html +++ b/develop/module/dbcsr_timings_types.html @@ -153,8 +153,8 @@

    Uses

    @@ -214,7 +214,7 @@

    Components

    @@ -282,7 +282,7 @@

    Components

    @@ -316,7 +316,7 @@

    Components

    diff --git a/develop/module/dbcsr_toollib.html b/develop/module/dbcsr_toollib.html index 00ee7993234..00194c07571 100644 --- a/develop/module/dbcsr_toollib.html +++ b/develop/module/dbcsr_toollib.html @@ -113,7 +113,7 @@

    Variables

    @@ -131,7 +131,7 @@

    Interfaces

    - swap + swap sort
    @@ -193,8 +193,8 @@

    Uses

    @@ -246,8 +246,8 @@

    Variables

    Interfaces

    - -

    public interface swap + +

    public interface swap

      @@ -272,7 +272,7 @@

      Arguments

    @@ -288,7 +288,7 @@

    Arguments

    @@ -328,7 +328,7 @@

    Arguments

    @@ -344,7 +344,7 @@

    Arguments

    @@ -395,7 +395,7 @@

    Arguments

    @@ -410,7 +410,7 @@

    Arguments

    @@ -425,7 +425,7 @@

    Arguments

    @@ -465,7 +465,7 @@

    Arguments

    @@ -480,7 +480,7 @@

    Arguments

    @@ -495,7 +495,7 @@

    Arguments

    @@ -535,7 +535,7 @@

    Arguments

    @@ -550,7 +550,7 @@

    Arguments

    @@ -565,7 +565,7 @@

    Arguments

    @@ -605,7 +605,7 @@

    Arguments

    @@ -620,7 +620,7 @@

    Arguments

    @@ -635,7 +635,7 @@

    Arguments

    @@ -698,7 +698,7 @@

    Arguments

    @@ -743,7 +743,7 @@

    Arguments

    @@ -758,7 +758,7 @@

    Arguments

    @@ -803,7 +803,7 @@

    Arguments

    @@ -818,7 +818,7 @@

    Arguments

    @@ -863,7 +863,7 @@

    Arguments

    @@ -908,7 +908,7 @@

    Arguments

    @@ -953,7 +953,7 @@

    Arguments

    @@ -998,7 +998,7 @@

    Arguments

    @@ -1048,7 +1048,7 @@

    Arguments

    @@ -1064,7 +1064,7 @@

    Arguments

    @@ -1105,7 +1105,7 @@

    Arguments

    @@ -1121,7 +1121,7 @@

    Arguments

    @@ -1234,7 +1234,7 @@

    Arguments

    @@ -1249,7 +1249,7 @@

    Arguments

    @@ -1264,7 +1264,7 @@

    Arguments

    @@ -1279,7 +1279,7 @@

    Arguments

    @@ -1294,7 +1294,7 @@

    Arguments

    @@ -1309,7 +1309,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_transformations.html b/develop/module/dbcsr_transformations.html index 05d449e9b64..7c2c60fbec4 100644 --- a/develop/module/dbcsr_transformations.html +++ b/develop/module/dbcsr_transformations.html @@ -113,7 +113,7 @@

    Variables

    @@ -137,18 +137,18 @@

    Subroutines

    @@ -285,7 +285,7 @@

    Arguments

    @@ -300,7 +300,7 @@

    Arguments

    @@ -315,7 +315,7 @@

    Arguments

    @@ -333,7 +333,7 @@

    Arguments

    @@ -351,7 +351,7 @@

    Arguments

    @@ -387,7 +387,7 @@

    Arguments

    @@ -423,7 +423,7 @@

    Arguments

    -

    public subroutine dbcsr_transposed(transposed, normal, shallow_data_copy, transpose_data, transpose_distribution, use_distribution) +

    public subroutine dbcsr_transposed(transposed, normal, shallow_data_copy, transpose_data, transpose_distribution, use_distribution)

    @@ -442,7 +442,7 @@

    Arguments

    @@ -457,7 +457,7 @@

    Arguments

    @@ -472,7 +472,7 @@

    Arguments

    @@ -487,7 +487,7 @@

    Arguments

    @@ -502,7 +502,7 @@

    Arguments

    @@ -517,7 +517,7 @@

    Arguments

    @@ -559,7 +559,7 @@

    Arguments

    @@ -610,7 +610,7 @@

    Arguments

    -

    public subroutine dbcsr_distribute(matrix, fast) +

    public subroutine dbcsr_distribute(matrix, fast)

    @@ -629,7 +629,7 @@

    Arguments

    @@ -644,7 +644,7 @@

    Arguments

    @@ -684,7 +684,7 @@

    Arguments

    @@ -724,7 +724,7 @@

    Arguments

    @@ -754,7 +754,7 @@

    Arguments

    @@ -799,7 +799,7 @@

    Arguments

    @@ -814,7 +814,7 @@

    Arguments

    @@ -1076,7 +1076,7 @@

    Arguments

    @@ -1100,7 +1100,7 @@

    Arguments

    @@ -1181,7 +1181,7 @@

    Arguments

    @@ -1211,7 +1211,7 @@

    Arguments

    @@ -1266,7 +1266,7 @@

    Arguments

    @@ -1286,7 +1286,7 @@

    Arguments

    @@ -1306,7 +1306,7 @@

    Arguments

    @@ -1326,7 +1326,7 @@

    Arguments

    @@ -1371,7 +1371,7 @@

    Arguments

    @@ -1417,7 +1417,7 @@

    Arguments

    @@ -1493,7 +1493,7 @@

    Arguments

    @@ -1508,7 +1508,7 @@

    Arguments

    @@ -1629,7 +1629,7 @@

    Arguments

    @@ -1675,7 +1675,7 @@

    Arguments

    @@ -1727,7 +1727,7 @@

    Arguments

    @@ -1745,7 +1745,7 @@

    Arguments

    @@ -1805,7 +1805,7 @@

    Arguments

    -

    public subroutine dbcsr_replicate_all(matrix) +

    public subroutine dbcsr_replicate_all(matrix)

    @@ -1824,7 +1824,7 @@

    Arguments

    @@ -1864,7 +1864,7 @@

    Arguments

    @@ -1932,7 +1932,7 @@

    Arguments

    -

    public subroutine dbcsr_complete_redistribute(matrix, redist, keep_sparsity, summation) +

    public subroutine dbcsr_complete_redistribute(matrix, redist, keep_sparsity, summation)

    @@ -1954,7 +1954,7 @@

    Arguments

    @@ -1969,7 +1969,7 @@

    Arguments

    @@ -1984,7 +1984,7 @@

    Arguments

    @@ -2000,7 +2000,7 @@

    Arguments

    @@ -2042,7 +2042,7 @@

    Arguments

    @@ -2057,7 +2057,7 @@

    Arguments

    @@ -2099,7 +2099,7 @@

    Arguments

    @@ -2114,7 +2114,7 @@

    Arguments

    @@ -2135,7 +2135,7 @@

    Arguments

    @@ -2156,7 +2156,7 @@

    Arguments

    @@ -2177,7 +2177,7 @@

    Arguments

    @@ -2198,7 +2198,7 @@

    Arguments

    diff --git a/develop/module/dbcsr_types.html b/develop/module/dbcsr_types.html index 35d049d071a..bb657fe8988 100644 --- a/develop/module/dbcsr_types.html +++ b/develop/module/dbcsr_types.html @@ -113,7 +113,7 @@

    Variables

    @@ -1304,7 +1304,7 @@

    Components

    @@ -1321,7 +1321,7 @@

    Components

    @@ -1338,7 +1338,7 @@

    Components

    @@ -1355,7 +1355,7 @@

    Components

    @@ -1372,7 +1372,7 @@

    Components

    @@ -1389,7 +1389,7 @@

    Components

    @@ -1406,7 +1406,7 @@

    Components

    @@ -1423,7 +1423,7 @@

    Components

    @@ -1474,7 +1474,7 @@

    Components

    @@ -1523,7 +1523,7 @@

    Components

    @@ -1572,7 +1572,7 @@

    Components

    @@ -1590,7 +1590,7 @@

    Components

    @@ -1644,7 +1644,7 @@

    Components

    @@ -1661,7 +1661,7 @@

    Components

    @@ -1814,7 +1814,7 @@

    Components

    @@ -1831,7 +1831,7 @@

    Components

    @@ -1848,7 +1848,7 @@

    Components

    @@ -1865,7 +1865,7 @@

    Components

    @@ -1882,7 +1882,7 @@

    Components

    @@ -1899,7 +1899,7 @@

    Components

    @@ -1916,7 +1916,7 @@

    Components

    @@ -1965,7 +1965,7 @@

    Components

    @@ -2138,7 +2138,7 @@

    Components

    @@ -2155,7 +2155,7 @@

    Components

    @@ -2308,7 +2308,7 @@

    Components

    @@ -2325,7 +2325,7 @@

    Components

    @@ -2374,7 +2374,7 @@

    Components

    @@ -2423,7 +2423,7 @@

    Components

    @@ -2457,7 +2457,7 @@

    Components

    @@ -2525,7 +2525,7 @@

    Components

    @@ -2574,7 +2574,7 @@

    Components

    @@ -2623,7 +2623,7 @@

    Components

    @@ -2657,7 +2657,7 @@

    Components

    @@ -2674,7 +2674,7 @@

    Components

    @@ -2691,7 +2691,7 @@

    Components

    @@ -2708,7 +2708,7 @@

    Components

    @@ -2725,7 +2725,7 @@

    Components

    @@ -2742,7 +2742,7 @@

    Components

    @@ -2810,7 +2810,7 @@

    Components

    @@ -2844,7 +2844,7 @@

    Components

    @@ -2861,7 +2861,7 @@

    Components

    @@ -2878,7 +2878,7 @@

    Components

    @@ -2895,7 +2895,7 @@

    Components

    @@ -2929,7 +2929,7 @@

    Components

    @@ -2946,7 +2946,7 @@

    Components

    @@ -2963,7 +2963,7 @@

    Components

    @@ -2980,7 +2980,7 @@

    Components

    @@ -2997,7 +2997,7 @@

    Components

    @@ -3065,7 +3065,7 @@

    Components

    @@ -3182,7 +3182,7 @@

    Components

    @@ -3199,7 +3199,7 @@

    Components

    @@ -3248,7 +3248,7 @@

    Components

    @@ -3297,7 +3297,7 @@

    Components

    @@ -3314,7 +3314,7 @@

    Components

    @@ -3331,7 +3331,7 @@

    Components

    @@ -3348,7 +3348,7 @@

    Components

    @@ -3365,7 +3365,7 @@

    Components

    @@ -3482,7 +3482,7 @@

    Components

    @@ -3499,7 +3499,7 @@

    Components

    @@ -3516,7 +3516,7 @@

    Components

    @@ -3550,7 +3550,7 @@

    Components

    @@ -3568,7 +3568,7 @@

    Components

    @@ -3585,7 +3585,7 @@

    Components

    @@ -3636,7 +3636,7 @@

    Components

    @@ -3653,7 +3653,7 @@

    Components

    @@ -3670,7 +3670,7 @@

    Components

    @@ -3687,7 +3687,7 @@

    Components

    @@ -3908,7 +3908,7 @@

    Components

    @@ -3925,7 +3925,7 @@

    Components

    @@ -3942,7 +3942,7 @@

    Components

    @@ -3959,7 +3959,7 @@

    Components

    @@ -3976,7 +3976,7 @@

    Components

    @@ -3993,7 +3993,7 @@

    Components

    @@ -4027,7 +4027,7 @@

    Components

    @@ -4044,7 +4044,7 @@

    Components

    @@ -4061,7 +4061,7 @@

    Components

    @@ -4078,7 +4078,7 @@

    Components

    @@ -4095,7 +4095,7 @@

    Components

    @@ -4214,7 +4214,7 @@

    Components

    @@ -4248,7 +4248,7 @@

    Components

    @@ -4282,7 +4282,7 @@

    Components

    @@ -4299,7 +4299,7 @@

    Components

    @@ -4316,7 +4316,7 @@

    Components

    @@ -4414,7 +4414,7 @@

    Components

    @@ -4578,7 +4578,7 @@

    Components

    @@ -4644,7 +4644,7 @@

    Components

    @@ -4710,7 +4710,7 @@

    Components

    @@ -4761,7 +4761,7 @@

    Components

    diff --git a/develop/module/dbcsr_work_operations.html b/develop/module/dbcsr_work_operations.html index 87e10305ab4..55b1c95c17c 100644 --- a/develop/module/dbcsr_work_operations.html +++ b/develop/module/dbcsr_work_operations.html @@ -113,8 +113,8 @@

    Variables

    @@ -214,24 +214,24 @@

    Uses

    @@ -256,7 +256,7 @@

    Variables

    @@ -273,7 +273,7 @@

    Variables

    @@ -329,7 +329,7 @@

    Arguments

    @@ -344,7 +344,7 @@

    Arguments

    @@ -359,7 +359,7 @@

    Arguments

    @@ -374,7 +374,7 @@

    Arguments

    @@ -389,7 +389,7 @@

    Arguments

    @@ -404,7 +404,7 @@

    Arguments

    @@ -419,7 +419,7 @@

    Arguments

    @@ -434,7 +434,7 @@

    Arguments

    @@ -449,7 +449,7 @@

    Arguments

    @@ -465,7 +465,7 @@

    Arguments

    @@ -481,7 +481,7 @@

    Arguments

    @@ -496,7 +496,7 @@

    Arguments

    @@ -558,7 +558,7 @@

    Arguments

    @@ -573,7 +573,7 @@

    Arguments

    @@ -588,7 +588,7 @@

    Arguments

    @@ -603,7 +603,7 @@

    Arguments

    @@ -635,7 +635,7 @@

    Arguments

    @@ -706,7 +706,7 @@

    Arguments

    @@ -736,7 +736,7 @@

    Arguments

    @@ -751,7 +751,7 @@

    Arguments

    @@ -766,7 +766,7 @@

    Arguments

    @@ -781,7 +781,7 @@

    Arguments

    @@ -796,7 +796,7 @@

    Arguments

    @@ -811,7 +811,7 @@

    Arguments

    @@ -826,7 +826,7 @@

    Arguments

    @@ -841,7 +841,7 @@

    Arguments

    @@ -856,7 +856,7 @@

    Arguments

    @@ -871,7 +871,7 @@

    Arguments

    @@ -886,7 +886,7 @@

    Arguments

    @@ -946,7 +946,7 @@

    Arguments

    @@ -961,7 +961,7 @@

    Arguments

    @@ -991,7 +991,7 @@

    Arguments

    @@ -1073,7 +1073,7 @@

    Components

    @@ -1122,7 +1122,7 @@

    Arguments

    @@ -1168,7 +1168,7 @@

    Arguments

    @@ -1184,7 +1184,7 @@

    Arguments

    @@ -1250,7 +1250,7 @@

    Arguments

    @@ -1265,7 +1265,7 @@

    Arguments

    @@ -1280,7 +1280,7 @@

    Arguments

    @@ -1295,7 +1295,7 @@

    Arguments

    @@ -1310,7 +1310,7 @@

    Arguments

    @@ -1325,7 +1325,7 @@

    Arguments

    @@ -1340,7 +1340,7 @@

    Arguments

    @@ -1355,7 +1355,7 @@

    Arguments

    @@ -1370,7 +1370,7 @@

    Arguments

    @@ -1386,7 +1386,7 @@

    Arguments

    @@ -1402,7 +1402,7 @@

    Arguments

    @@ -1417,7 +1417,7 @@

    Arguments

    @@ -1479,7 +1479,7 @@

    Arguments

    @@ -1494,7 +1494,7 @@

    Arguments

    @@ -1509,7 +1509,7 @@

    Arguments

    @@ -1524,7 +1524,7 @@

    Arguments

    @@ -1556,7 +1556,7 @@

    Arguments

    @@ -1628,7 +1628,7 @@

    Arguments

    @@ -1658,7 +1658,7 @@

    Arguments

    @@ -1673,7 +1673,7 @@

    Arguments

    @@ -1688,7 +1688,7 @@

    Arguments

    @@ -1703,7 +1703,7 @@

    Arguments

    @@ -1718,7 +1718,7 @@

    Arguments

    @@ -1733,7 +1733,7 @@

    Arguments

    @@ -1748,7 +1748,7 @@

    Arguments

    @@ -1763,7 +1763,7 @@

    Arguments

    @@ -1778,7 +1778,7 @@

    Arguments

    @@ -1793,7 +1793,7 @@

    Arguments

    @@ -1808,7 +1808,7 @@

    Arguments

    @@ -1868,7 +1868,7 @@

    Arguments

    @@ -1883,7 +1883,7 @@

    Arguments

    @@ -1913,7 +1913,7 @@

    Arguments

    @@ -1998,7 +1998,7 @@

    Arguments

    @@ -2045,7 +2045,7 @@

    Arguments

    @@ -2085,7 +2085,7 @@

    Arguments

    @@ -2134,7 +2134,7 @@

    Arguments

    @@ -2166,7 +2166,7 @@

    Arguments

    @@ -2209,7 +2209,7 @@

    Arguments

    @@ -2264,7 +2264,7 @@

    Arguments

    @@ -2321,7 +2321,7 @@

    Arguments

    @@ -2361,7 +2361,7 @@

    Arguments

    @@ -2432,7 +2432,7 @@

    Arguments

    @@ -2542,7 +2542,7 @@

    Arguments

    @@ -2583,7 +2583,7 @@

    Arguments

    @@ -2598,7 +2598,7 @@

    Arguments

    @@ -2630,7 +2630,7 @@

    Arguments

    @@ -2645,7 +2645,7 @@

    Arguments

    @@ -2685,7 +2685,7 @@

    Arguments

    @@ -2730,7 +2730,7 @@

    Arguments

    @@ -2785,7 +2785,7 @@

    Arguments

    @@ -2915,7 +2915,7 @@

    Arguments

    @@ -3005,7 +3005,7 @@

    Arguments

    diff --git a/develop/proc/acc_calculate_norms.html b/develop/proc/acc_calculate_norms.html index c62b9a6c1c2..c2c5ac784f9 100644 --- a/develop/proc/acc_calculate_norms.html +++ b/develop/proc/acc_calculate_norms.html @@ -159,7 +159,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    @@ -249,7 +249,7 @@

    Arguments

    diff --git a/develop/proc/acc_devmem_allocate_bytes.html b/develop/proc/acc_devmem_allocate_bytes.html index ad94df4392f..27fe071187b 100644 --- a/develop/proc/acc_devmem_allocate_bytes.html +++ b/develop/proc/acc_devmem_allocate_bytes.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/acc_devmem_allocated.html b/develop/proc/acc_devmem_allocated.html index 842bc25682d..7ca5b508bec 100644 --- a/develop/proc/acc_devmem_allocated.html +++ b/develop/proc/acc_devmem_allocated.html @@ -159,7 +159,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    Return Value - + logical

    diff --git a/develop/proc/acc_devmem_cptr.html b/develop/proc/acc_devmem_cptr.html index c29e51b3b87..34a95323c9d 100644 --- a/develop/proc/acc_devmem_cptr.html +++ b/develop/proc/acc_devmem_cptr.html @@ -159,7 +159,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    Return Value - + logical

    diff --git a/develop/proc/acc_devmem_deallocate.html b/develop/proc/acc_devmem_deallocate.html index e4801e771e5..3736c34d7f2 100644 --- a/develop/proc/acc_devmem_deallocate.html +++ b/develop/proc/acc_devmem_deallocate.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/acc_devmem_ensure_size_bytes.html b/develop/proc/acc_devmem_ensure_size_bytes.html index 1d3179b0930..e2b427b2768 100644 --- a/develop/proc/acc_devmem_ensure_size_bytes.html +++ b/develop/proc/acc_devmem_ensure_size_bytes.html @@ -159,7 +159,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -220,7 +220,7 @@

    Arguments

    diff --git a/develop/proc/acc_devmem_info.html b/develop/proc/acc_devmem_info.html index 8680bd46528..f4caf79a18b 100644 --- a/develop/proc/acc_devmem_info.html +++ b/develop/proc/acc_devmem_info.html @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/acc_devmem_set_cptr.html b/develop/proc/acc_devmem_set_cptr.html index e547a7233ce..ae791abc1e1 100644 --- a/develop/proc/acc_devmem_set_cptr.html +++ b/develop/proc/acc_devmem_set_cptr.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/acc_devmem_setzero_bytes.html b/develop/proc/acc_devmem_setzero_bytes.html index 2eac275693f..a56fdaa38b9 100644 --- a/develop/proc/acc_devmem_setzero_bytes.html +++ b/develop/proc/acc_devmem_setzero_bytes.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/acc_devmem_size_in_bytes.html b/develop/proc/acc_devmem_size_in_bytes.html index 76aa5f31beb..1b93325a0b3 100644 --- a/develop/proc/acc_devmem_size_in_bytes.html +++ b/develop/proc/acc_devmem_size_in_bytes.html @@ -159,7 +159,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/acc_event_create.html b/develop/proc/acc_event_create.html index 6ca5237d554..b6c8302d61d 100644 --- a/develop/proc/acc_event_create.html +++ b/develop/proc/acc_event_create.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/acc_event_destroy.html b/develop/proc/acc_event_destroy.html index 330c5355449..6b2f1ff1c36 100644 --- a/develop/proc/acc_event_destroy.html +++ b/develop/proc/acc_event_destroy.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/acc_event_query.html b/develop/proc/acc_event_query.html index 5ab5bb087dc..59c527806b0 100644 --- a/develop/proc/acc_event_query.html +++ b/develop/proc/acc_event_query.html @@ -159,7 +159,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    Return Value - + logical

    diff --git a/develop/proc/acc_event_record.html b/develop/proc/acc_event_record.html index d8dda7095e5..805292224ef 100644 --- a/develop/proc/acc_event_record.html +++ b/develop/proc/acc_event_record.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/acc_event_synchronize.html b/develop/proc/acc_event_synchronize.html index 1bc8a0d7fab..9d76619f3c4 100644 --- a/develop/proc/acc_event_synchronize.html +++ b/develop/proc/acc_event_synchronize.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/acc_hostmem_alloc_c4.html b/develop/proc/acc_hostmem_alloc_c4.html index 5a88afc856d..d67f6a7d22d 100644 --- a/develop/proc/acc_hostmem_alloc_c4.html +++ b/develop/proc/acc_hostmem_alloc_c4.html @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/acc_hostmem_alloc_c4_2d.html b/develop/proc/acc_hostmem_alloc_c4_2d.html index d08543aae25..cbd0c358279 100644 --- a/develop/proc/acc_hostmem_alloc_c4_2d.html +++ b/develop/proc/acc_hostmem_alloc_c4_2d.html @@ -206,7 +206,7 @@

    Arguments

    diff --git a/develop/proc/acc_hostmem_alloc_c8.html b/develop/proc/acc_hostmem_alloc_c8.html index 61943a263da..3ef0a9c07fe 100644 --- a/develop/proc/acc_hostmem_alloc_c8.html +++ b/develop/proc/acc_hostmem_alloc_c8.html @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/acc_hostmem_alloc_c8_2d.html b/develop/proc/acc_hostmem_alloc_c8_2d.html index c62006926cf..56f2b27badf 100644 --- a/develop/proc/acc_hostmem_alloc_c8_2d.html +++ b/develop/proc/acc_hostmem_alloc_c8_2d.html @@ -206,7 +206,7 @@

    Arguments

    diff --git a/develop/proc/acc_hostmem_alloc_i4.html b/develop/proc/acc_hostmem_alloc_i4.html index 1c719669169..a2e1efc97f2 100644 --- a/develop/proc/acc_hostmem_alloc_i4.html +++ b/develop/proc/acc_hostmem_alloc_i4.html @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/acc_hostmem_alloc_i4_2d.html b/develop/proc/acc_hostmem_alloc_i4_2d.html index 265000c3d16..76b9de624c5 100644 --- a/develop/proc/acc_hostmem_alloc_i4_2d.html +++ b/develop/proc/acc_hostmem_alloc_i4_2d.html @@ -206,7 +206,7 @@

    Arguments

    diff --git a/develop/proc/acc_hostmem_alloc_i8.html b/develop/proc/acc_hostmem_alloc_i8.html index 671d2f44d13..22d493e22de 100644 --- a/develop/proc/acc_hostmem_alloc_i8.html +++ b/develop/proc/acc_hostmem_alloc_i8.html @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/acc_hostmem_alloc_i8_2d.html b/develop/proc/acc_hostmem_alloc_i8_2d.html index 9a92452a5e7..e6200399901 100644 --- a/develop/proc/acc_hostmem_alloc_i8_2d.html +++ b/develop/proc/acc_hostmem_alloc_i8_2d.html @@ -206,7 +206,7 @@

    Arguments

    diff --git a/develop/proc/acc_hostmem_alloc_r4.html b/develop/proc/acc_hostmem_alloc_r4.html index fc0b0667d79..0a0cf2b6911 100644 --- a/develop/proc/acc_hostmem_alloc_r4.html +++ b/develop/proc/acc_hostmem_alloc_r4.html @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/acc_hostmem_alloc_r4_2d.html b/develop/proc/acc_hostmem_alloc_r4_2d.html index 0dca3dc6ed1..5e2345caec6 100644 --- a/develop/proc/acc_hostmem_alloc_r4_2d.html +++ b/develop/proc/acc_hostmem_alloc_r4_2d.html @@ -206,7 +206,7 @@

    Arguments

    diff --git a/develop/proc/acc_hostmem_alloc_r8.html b/develop/proc/acc_hostmem_alloc_r8.html index 18e794a3a29..2647234b338 100644 --- a/develop/proc/acc_hostmem_alloc_r8.html +++ b/develop/proc/acc_hostmem_alloc_r8.html @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/acc_hostmem_alloc_r8_2d.html b/develop/proc/acc_hostmem_alloc_r8_2d.html index 2c5c375acd6..b4ccdd100a8 100644 --- a/develop/proc/acc_hostmem_alloc_r8_2d.html +++ b/develop/proc/acc_hostmem_alloc_r8_2d.html @@ -206,7 +206,7 @@

    Arguments

    diff --git a/develop/proc/acc_hostmem_dealloc_c4.html b/develop/proc/acc_hostmem_dealloc_c4.html index 76bb8393a87..d8cace65d06 100644 --- a/develop/proc/acc_hostmem_dealloc_c4.html +++ b/develop/proc/acc_hostmem_dealloc_c4.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/acc_hostmem_dealloc_c4_2d.html b/develop/proc/acc_hostmem_dealloc_c4_2d.html index aa70c6638d0..f6ca4827a3b 100644 --- a/develop/proc/acc_hostmem_dealloc_c4_2d.html +++ b/develop/proc/acc_hostmem_dealloc_c4_2d.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/acc_hostmem_dealloc_c8.html b/develop/proc/acc_hostmem_dealloc_c8.html index bddb91ef0a8..3399acc18f5 100644 --- a/develop/proc/acc_hostmem_dealloc_c8.html +++ b/develop/proc/acc_hostmem_dealloc_c8.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/acc_hostmem_dealloc_c8_2d.html b/develop/proc/acc_hostmem_dealloc_c8_2d.html index e4898f7a6b7..fea833f920e 100644 --- a/develop/proc/acc_hostmem_dealloc_c8_2d.html +++ b/develop/proc/acc_hostmem_dealloc_c8_2d.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/acc_hostmem_dealloc_i4.html b/develop/proc/acc_hostmem_dealloc_i4.html index e9fa9f4a225..c7f99512649 100644 --- a/develop/proc/acc_hostmem_dealloc_i4.html +++ b/develop/proc/acc_hostmem_dealloc_i4.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/acc_hostmem_dealloc_i4_2d.html b/develop/proc/acc_hostmem_dealloc_i4_2d.html index 5a475e4b75c..7d6edac0d85 100644 --- a/develop/proc/acc_hostmem_dealloc_i4_2d.html +++ b/develop/proc/acc_hostmem_dealloc_i4_2d.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/acc_hostmem_dealloc_i8.html b/develop/proc/acc_hostmem_dealloc_i8.html index e9887d5b182..cd3184afa3c 100644 --- a/develop/proc/acc_hostmem_dealloc_i8.html +++ b/develop/proc/acc_hostmem_dealloc_i8.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/acc_hostmem_dealloc_i8_2d.html b/develop/proc/acc_hostmem_dealloc_i8_2d.html index 4faf2ecc5f1..04f8d5e5dea 100644 --- a/develop/proc/acc_hostmem_dealloc_i8_2d.html +++ b/develop/proc/acc_hostmem_dealloc_i8_2d.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/acc_hostmem_dealloc_r4.html b/develop/proc/acc_hostmem_dealloc_r4.html index 14e08ac08f9..054bad71963 100644 --- a/develop/proc/acc_hostmem_dealloc_r4.html +++ b/develop/proc/acc_hostmem_dealloc_r4.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/acc_hostmem_dealloc_r4_2d.html b/develop/proc/acc_hostmem_dealloc_r4_2d.html index 5fa37d2db2a..0045299f9c2 100644 --- a/develop/proc/acc_hostmem_dealloc_r4_2d.html +++ b/develop/proc/acc_hostmem_dealloc_r4_2d.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/acc_hostmem_dealloc_r8.html b/develop/proc/acc_hostmem_dealloc_r8.html index 2c07ba35485..4faeeaa56c1 100644 --- a/develop/proc/acc_hostmem_dealloc_r8.html +++ b/develop/proc/acc_hostmem_dealloc_r8.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/acc_hostmem_dealloc_r8_2d.html b/develop/proc/acc_hostmem_dealloc_r8_2d.html index 946ee1e7167..78aa79720cc 100644 --- a/develop/proc/acc_hostmem_dealloc_r8_2d.html +++ b/develop/proc/acc_hostmem_dealloc_r8_2d.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/acc_stream_associated.html b/develop/proc/acc_stream_associated.html index 0d31cfb5af4..4aeb0b46d69 100644 --- a/develop/proc/acc_stream_associated.html +++ b/develop/proc/acc_stream_associated.html @@ -159,7 +159,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    Return Value - + logical

    diff --git a/develop/proc/acc_stream_cptr.html b/develop/proc/acc_stream_cptr.html index 8ca81f48d4c..f9049228a38 100644 --- a/develop/proc/acc_stream_cptr.html +++ b/develop/proc/acc_stream_cptr.html @@ -159,7 +159,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    Return Value - + logical

    diff --git a/develop/proc/acc_stream_create.html b/develop/proc/acc_stream_create.html index 1d51044599f..c308d8ed1dc 100644 --- a/develop/proc/acc_stream_create.html +++ b/develop/proc/acc_stream_create.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/acc_stream_destroy.html b/develop/proc/acc_stream_destroy.html index c4cc1886690..12fd1bcc6f6 100644 --- a/develop/proc/acc_stream_destroy.html +++ b/develop/proc/acc_stream_destroy.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/acc_stream_equal.html b/develop/proc/acc_stream_equal.html index 3cfc8fffe8a..6f804a61551 100644 --- a/develop/proc/acc_stream_equal.html +++ b/develop/proc/acc_stream_equal.html @@ -159,7 +159,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    Return Value - + logical

    diff --git a/develop/proc/acc_stream_priority_range.html b/develop/proc/acc_stream_priority_range.html index 7c008294149..fefb8b0d05a 100644 --- a/develop/proc/acc_stream_priority_range.html +++ b/develop/proc/acc_stream_priority_range.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/acc_stream_synchronize.html b/develop/proc/acc_stream_synchronize.html index aeb4efda772..d39aef8866d 100644 --- a/develop/proc/acc_stream_synchronize.html +++ b/develop/proc/acc_stream_synchronize.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/acc_stream_wait_event.html b/develop/proc/acc_stream_wait_event.html index 5f70808999d..12a9b37e2d6 100644 --- a/develop/proc/acc_stream_wait_event.html +++ b/develop/proc/acc_stream_wait_event.html @@ -160,7 +160,7 @@

    Arguments

    diff --git a/develop/proc/acc_transpose_blocks.html b/develop/proc/acc_transpose_blocks.html index 90374f9627d..5522a69e68e 100644 --- a/develop/proc/acc_transpose_blocks.html +++ b/develop/proc/acc_transpose_blocks.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    @@ -249,7 +249,7 @@

    Arguments

    @@ -264,7 +264,7 @@

    Arguments

    diff --git a/develop/proc/accept_pgrid_dims.html b/develop/proc/accept_pgrid_dims.html index 5dfa0d54321..329fb285870 100644 --- a/develop/proc/accept_pgrid_dims.html +++ b/develop/proc/accept_pgrid_dims.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/proc/add_timer_env.html b/develop/proc/add_timer_env.html index a3c06becc17..2984f956d03 100644 --- a/develop/proc/add_timer_env.html +++ b/develop/proc/add_timer_env.html @@ -164,7 +164,7 @@

    Arguments

    diff --git a/develop/proc/add_work_coordinate.html b/develop/proc/add_work_coordinate.html index 66c0c72a1fd..ce0fd0a3353 100644 --- a/develop/proc/add_work_coordinate.html +++ b/develop/proc/add_work_coordinate.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -211,7 +211,7 @@

    Arguments

    @@ -226,7 +226,7 @@

    Arguments

    diff --git a/develop/proc/align_tensor.html b/develop/proc/align_tensor.html index e4cc1bda083..033835f50df 100644 --- a/develop/proc/align_tensor.html +++ b/develop/proc/align_tensor.html @@ -153,7 +153,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/allocate_1d_c_dp.html b/develop/proc/allocate_1d_c_dp.html index 37d684e0a08..5acdffe3ebf 100644 --- a/develop/proc/allocate_1d_c_dp.html +++ b/develop/proc/allocate_1d_c_dp.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/allocate_1d_c_sp.html b/develop/proc/allocate_1d_c_sp.html index 2176471bffb..d7dbb6c5d8d 100644 --- a/develop/proc/allocate_1d_c_sp.html +++ b/develop/proc/allocate_1d_c_sp.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/allocate_1d_i.html b/develop/proc/allocate_1d_i.html index 2e8c9803e01..08b24c4068f 100644 --- a/develop/proc/allocate_1d_i.html +++ b/develop/proc/allocate_1d_i.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/allocate_1d_r_dp.html b/develop/proc/allocate_1d_r_dp.html index 52c7be36698..aaf2899fed3 100644 --- a/develop/proc/allocate_1d_r_dp.html +++ b/develop/proc/allocate_1d_r_dp.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/allocate_1d_r_sp.html b/develop/proc/allocate_1d_r_sp.html index 1fe4b7f9180..c7b03f2fc4d 100644 --- a/develop/proc/allocate_1d_r_sp.html +++ b/develop/proc/allocate_1d_r_sp.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/allocate_2d_c_dp.html b/develop/proc/allocate_2d_c_dp.html index 5a0251543e4..696ea55c8f0 100644 --- a/develop/proc/allocate_2d_c_dp.html +++ b/develop/proc/allocate_2d_c_dp.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/allocate_2d_c_sp.html b/develop/proc/allocate_2d_c_sp.html index a4b919ddc32..1cfce632cb4 100644 --- a/develop/proc/allocate_2d_c_sp.html +++ b/develop/proc/allocate_2d_c_sp.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/allocate_2d_i.html b/develop/proc/allocate_2d_i.html index 48b854d01a1..fcc9473dfe9 100644 --- a/develop/proc/allocate_2d_i.html +++ b/develop/proc/allocate_2d_i.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/allocate_2d_r_dp.html b/develop/proc/allocate_2d_r_dp.html index 71365cb7b03..a6a9cd0890f 100644 --- a/develop/proc/allocate_2d_r_dp.html +++ b/develop/proc/allocate_2d_r_dp.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/allocate_2d_r_sp.html b/develop/proc/allocate_2d_r_sp.html index db9fa9000d1..fc328f20aeb 100644 --- a/develop/proc/allocate_2d_r_sp.html +++ b/develop/proc/allocate_2d_r_sp.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/allocate_3d_c_dp.html b/develop/proc/allocate_3d_c_dp.html index d7dfa2efbbc..6829c2f2315 100644 --- a/develop/proc/allocate_3d_c_dp.html +++ b/develop/proc/allocate_3d_c_dp.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/allocate_3d_c_sp.html b/develop/proc/allocate_3d_c_sp.html index efbbd933a66..cd4e8779187 100644 --- a/develop/proc/allocate_3d_c_sp.html +++ b/develop/proc/allocate_3d_c_sp.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/allocate_3d_i.html b/develop/proc/allocate_3d_i.html index 5b956c95c6b..cd9d29896e8 100644 --- a/develop/proc/allocate_3d_i.html +++ b/develop/proc/allocate_3d_i.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/allocate_3d_r_dp.html b/develop/proc/allocate_3d_r_dp.html index 53bbb57201e..2bda3c6df49 100644 --- a/develop/proc/allocate_3d_r_dp.html +++ b/develop/proc/allocate_3d_r_dp.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/allocate_3d_r_sp.html b/develop/proc/allocate_3d_r_sp.html index 054ae079948..d207181a459 100644 --- a/develop/proc/allocate_3d_r_sp.html +++ b/develop/proc/allocate_3d_r_sp.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/allocate_4d_c_dp.html b/develop/proc/allocate_4d_c_dp.html index 61a9e4102de..e1346b91cfe 100644 --- a/develop/proc/allocate_4d_c_dp.html +++ b/develop/proc/allocate_4d_c_dp.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/allocate_4d_c_sp.html b/develop/proc/allocate_4d_c_sp.html index c19635ef284..9649116605c 100644 --- a/develop/proc/allocate_4d_c_sp.html +++ b/develop/proc/allocate_4d_c_sp.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/allocate_4d_i.html b/develop/proc/allocate_4d_i.html index 769934945f8..37e1ae54180 100644 --- a/develop/proc/allocate_4d_i.html +++ b/develop/proc/allocate_4d_i.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/allocate_4d_r_dp.html b/develop/proc/allocate_4d_r_dp.html index 2dfdaf1ee5e..328fece9cce 100644 --- a/develop/proc/allocate_4d_r_dp.html +++ b/develop/proc/allocate_4d_r_dp.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/allocate_4d_r_sp.html b/develop/proc/allocate_4d_r_sp.html index f66142be10e..cddf5e1be70 100644 --- a/develop/proc/allocate_4d_r_sp.html +++ b/develop/proc/allocate_4d_r_sp.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/allocate_5d_c_dp.html b/develop/proc/allocate_5d_c_dp.html index 36242fe502b..1086a73ce1b 100644 --- a/develop/proc/allocate_5d_c_dp.html +++ b/develop/proc/allocate_5d_c_dp.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/allocate_5d_c_sp.html b/develop/proc/allocate_5d_c_sp.html index 1eeb25b1e88..d1fed4f01c2 100644 --- a/develop/proc/allocate_5d_c_sp.html +++ b/develop/proc/allocate_5d_c_sp.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/allocate_5d_i.html b/develop/proc/allocate_5d_i.html index 7c9912a2f9c..f14bca80234 100644 --- a/develop/proc/allocate_5d_i.html +++ b/develop/proc/allocate_5d_i.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/allocate_5d_r_dp.html b/develop/proc/allocate_5d_r_dp.html index 2297c455ef1..bf931bbe225 100644 --- a/develop/proc/allocate_5d_r_dp.html +++ b/develop/proc/allocate_5d_r_dp.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/allocate_5d_r_sp.html b/develop/proc/allocate_5d_r_sp.html index 763f6365b12..d97ce858d95 100644 --- a/develop/proc/allocate_5d_r_sp.html +++ b/develop/proc/allocate_5d_r_sp.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/allocate_6d_c_dp.html b/develop/proc/allocate_6d_c_dp.html index aa2f3ad14dc..c99f91c92c6 100644 --- a/develop/proc/allocate_6d_c_dp.html +++ b/develop/proc/allocate_6d_c_dp.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/allocate_6d_c_sp.html b/develop/proc/allocate_6d_c_sp.html index d88cf531e8e..b36cc262bf5 100644 --- a/develop/proc/allocate_6d_c_sp.html +++ b/develop/proc/allocate_6d_c_sp.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/allocate_6d_i.html b/develop/proc/allocate_6d_i.html index 8a1599399ee..483f77fe8cf 100644 --- a/develop/proc/allocate_6d_i.html +++ b/develop/proc/allocate_6d_i.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/allocate_6d_r_dp.html b/develop/proc/allocate_6d_r_dp.html index a94116c735f..a3e30a25050 100644 --- a/develop/proc/allocate_6d_r_dp.html +++ b/develop/proc/allocate_6d_r_dp.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/allocate_6d_r_sp.html b/develop/proc/allocate_6d_r_sp.html index fa83a0ad20b..b364b659f93 100644 --- a/develop/proc/allocate_6d_r_sp.html +++ b/develop/proc/allocate_6d_r_sp.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/allocate_7d_c_dp.html b/develop/proc/allocate_7d_c_dp.html index ceb362eafde..053c54b3a46 100644 --- a/develop/proc/allocate_7d_c_dp.html +++ b/develop/proc/allocate_7d_c_dp.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/allocate_7d_c_sp.html b/develop/proc/allocate_7d_c_sp.html index 62089a202c5..7ad89a2a83a 100644 --- a/develop/proc/allocate_7d_c_sp.html +++ b/develop/proc/allocate_7d_c_sp.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/allocate_7d_i.html b/develop/proc/allocate_7d_i.html index a84228e1d6a..dcaf1d42c6d 100644 --- a/develop/proc/allocate_7d_i.html +++ b/develop/proc/allocate_7d_i.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/allocate_7d_r_dp.html b/develop/proc/allocate_7d_r_dp.html index 74974c83ddc..b2afea086e3 100644 --- a/develop/proc/allocate_7d_r_dp.html +++ b/develop/proc/allocate_7d_r_dp.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/allocate_7d_r_sp.html b/develop/proc/allocate_7d_r_sp.html index 2899dc07abb..c107415735d 100644 --- a/develop/proc/allocate_7d_r_sp.html +++ b/develop/proc/allocate_7d_r_sp.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/allocate_and_get_ith_array.html b/develop/proc/allocate_and_get_ith_array.html index 67caf9218e7..43089573bbd 100644 --- a/develop/proc/allocate_and_get_ith_array.html +++ b/develop/proc/allocate_and_get_ith_array.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    diff --git a/develop/proc/arb_dist.html b/develop/proc/arb_dist.html index a814db7d4f6..5df081acb6e 100644 --- a/develop/proc/arb_dist.html +++ b/develop/proc/arb_dist.html @@ -154,7 +154,7 @@

    Arguments

    diff --git a/develop/proc/arb_rowcols.html b/develop/proc/arb_rowcols.html index dfdd63479db..7dbe9621856 100644 --- a/develop/proc/arb_rowcols.html +++ b/develop/proc/arb_rowcols.html @@ -154,7 +154,7 @@

    Arguments

    @@ -169,7 +169,7 @@

    Arguments

    diff --git a/develop/proc/array_data_i1d.html b/develop/proc/array_data_i1d.html index 2700932816c..ba59be3ccec 100644 --- a/develop/proc/array_data_i1d.html +++ b/develop/proc/array_data_i1d.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + integer, DIMENSION(:), POINTER, CONTIGUOUS

    diff --git a/develop/proc/array_exists_i1d.html b/develop/proc/array_exists_i1d.html index 7e2624d1dee..91f19732ba5 100644 --- a/develop/proc/array_exists_i1d.html +++ b/develop/proc/array_exists_i1d.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/array_get_i1.html b/develop/proc/array_get_i1.html index 2060083b60d..fb08d25568c 100644 --- a/develop/proc/array_get_i1.html +++ b/develop/proc/array_get_i1.html @@ -158,7 +158,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/array_get_i1d.html b/develop/proc/array_get_i1d.html index d2f90e41b66..3a3e612ab9c 100644 --- a/develop/proc/array_get_i1d.html +++ b/develop/proc/array_get_i1d.html @@ -158,7 +158,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/array_hold_i1d.html b/develop/proc/array_hold_i1d.html index d94119cfc2b..3851a0e1845 100644 --- a/develop/proc/array_hold_i1d.html +++ b/develop/proc/array_hold_i1d.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/array_new_i1d.html b/develop/proc/array_new_i1d.html index ad44264d6a5..482307172a4 100644 --- a/develop/proc/array_new_i1d.html +++ b/develop/proc/array_new_i1d.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/array_new_i1d_lb.html b/develop/proc/array_new_i1d_lb.html index 0503e4282b7..a39f760aad4 100644 --- a/develop/proc/array_new_i1d_lb.html +++ b/develop/proc/array_new_i1d_lb.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/array_nullify_i1d.html b/develop/proc/array_nullify_i1d.html index 8d113b38583..e002b951273 100644 --- a/develop/proc/array_nullify_i1d.html +++ b/develop/proc/array_nullify_i1d.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/array_release_i1d.html b/develop/proc/array_release_i1d.html index 4a2568c3bb1..951b6a60154 100644 --- a/develop/proc/array_release_i1d.html +++ b/develop/proc/array_release_i1d.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/array_size_i1d.html b/develop/proc/array_size_i1d.html index a052f0eaa93..59d49b6dc36 100644 --- a/develop/proc/array_size_i1d.html +++ b/develop/proc/array_size_i1d.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/array_sublist.html b/develop/proc/array_sublist.html index ba795957ad0..745708169b9 100644 --- a/develop/proc/array_sublist.html +++ b/develop/proc/array_sublist.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/proc/assign_preconnection.html b/develop/proc/assign_preconnection.html index e265193f19b..241572b57c0 100644 --- a/develop/proc/assign_preconnection.html +++ b/develop/proc/assign_preconnection.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/atoi.html b/develop/proc/atoi.html index 5d6021f6a0e..30f8283e0f6 100644 --- a/develop/proc/atoi.html +++ b/develop/proc/atoi.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/atol.html b/develop/proc/atol.html index e9320c15d13..b0c647a2c6b 100644 --- a/develop/proc/atol.html +++ b/develop/proc/atol.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/ator.html b/develop/proc/ator.html index 1c572cfc27c..f67d5c2c309 100644 --- a/develop/proc/ator.html +++ b/develop/proc/ator.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/blas_process_mm_stack_c.html b/develop/proc/blas_process_mm_stack_c.html index cb053e85838..e5530d8b6d7 100644 --- a/develop/proc/blas_process_mm_stack_c.html +++ b/develop/proc/blas_process_mm_stack_c.html @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    diff --git a/develop/proc/blas_process_mm_stack_d.html b/develop/proc/blas_process_mm_stack_d.html index 3b0cb31ea35..ea3dfb6d595 100644 --- a/develop/proc/blas_process_mm_stack_d.html +++ b/develop/proc/blas_process_mm_stack_d.html @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    diff --git a/develop/proc/blas_process_mm_stack_s.html b/develop/proc/blas_process_mm_stack_s.html index 0507e0c1551..968d7287dd8 100644 --- a/develop/proc/blas_process_mm_stack_s.html +++ b/develop/proc/blas_process_mm_stack_s.html @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    diff --git a/develop/proc/blas_process_mm_stack_z.html b/develop/proc/blas_process_mm_stack_z.html index 0bd4eebc7e4..40f5a057669 100644 --- a/develop/proc/blas_process_mm_stack_z.html +++ b/develop/proc/blas_process_mm_stack_z.html @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    diff --git a/develop/proc/blk_dims_tensor.html b/develop/proc/blk_dims_tensor.html index 9bedbe52f77..4d8c34e690c 100644 --- a/develop/proc/blk_dims_tensor.html +++ b/develop/proc/blk_dims_tensor.html @@ -168,7 +168,7 @@

    Arguments

    diff --git a/develop/proc/blk_size_arb.html b/develop/proc/blk_size_arb.html index 238c679b134..672e3e6aa50 100644 --- a/develop/proc/blk_size_arb.html +++ b/develop/proc/blk_size_arb.html @@ -154,7 +154,7 @@

    Arguments

    diff --git a/develop/proc/blk_size_one.html b/develop/proc/blk_size_one.html index 96579faa7ad..0d3b0d56243 100644 --- a/develop/proc/blk_size_one.html +++ b/develop/proc/blk_size_one.html @@ -154,7 +154,7 @@

    Arguments

    diff --git a/develop/proc/blk_size_repl.html b/develop/proc/blk_size_repl.html index d074429e4b2..0822449090b 100644 --- a/develop/proc/blk_size_repl.html +++ b/develop/proc/blk_size_repl.html @@ -154,7 +154,7 @@

    Arguments

    diff --git a/develop/proc/block_add_anytype.html b/develop/proc/block_add_anytype.html index de73cca19bd..7000b97bea0 100644 --- a/develop/proc/block_add_anytype.html +++ b/develop/proc/block_add_anytype.html @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/block_add_anytype_bounds.html b/develop/proc/block_add_anytype_bounds.html index af66f983d10..403235bc6f5 100644 --- a/develop/proc/block_add_anytype_bounds.html +++ b/develop/proc/block_add_anytype_bounds.html @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    diff --git a/develop/proc/block_add_c.html b/develop/proc/block_add_c.html index 001309d5864..9c6fbd40cc4 100644 --- a/develop/proc/block_add_c.html +++ b/develop/proc/block_add_c.html @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/block_add_d.html b/develop/proc/block_add_d.html index 19318883314..eea4ce347aa 100644 --- a/develop/proc/block_add_d.html +++ b/develop/proc/block_add_d.html @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/block_add_s.html b/develop/proc/block_add_s.html index 20bdb3dba67..82cbfe27f48 100644 --- a/develop/proc/block_add_s.html +++ b/develop/proc/block_add_s.html @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/block_add_z.html b/develop/proc/block_add_z.html index a23b6bd0026..d45824fe006 100644 --- a/develop/proc/block_add_z.html +++ b/develop/proc/block_add_z.html @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/block_buffer_add_anyd_block.html b/develop/proc/block_buffer_add_anyd_block.html index 6ce8eba9e17..d72a5ae3157 100644 --- a/develop/proc/block_buffer_add_anyd_block.html +++ b/develop/proc/block_buffer_add_anyd_block.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    diff --git a/develop/proc/block_buffer_add_area_block.html b/develop/proc/block_buffer_add_area_block.html index 97cf6699631..80488b16eb2 100644 --- a/develop/proc/block_buffer_add_area_block.html +++ b/develop/proc/block_buffer_add_area_block.html @@ -152,7 +152,7 @@

    Arguments

    @@ -182,7 +182,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    diff --git a/develop/proc/block_buffer_add_block_c_dp.html b/develop/proc/block_buffer_add_block_c_dp.html index 67c91776a8a..6ab73fec50e 100644 --- a/develop/proc/block_buffer_add_block_c_dp.html +++ b/develop/proc/block_buffer_add_block_c_dp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/block_buffer_add_block_c_dp~2.html b/develop/proc/block_buffer_add_block_c_dp~2.html index 82988eaf159..4bf23ceaa7e 100644 --- a/develop/proc/block_buffer_add_block_c_dp~2.html +++ b/develop/proc/block_buffer_add_block_c_dp~2.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/block_buffer_add_block_c_sp.html b/develop/proc/block_buffer_add_block_c_sp.html index 93b2e9c2073..8cfe98a5e3a 100644 --- a/develop/proc/block_buffer_add_block_c_sp.html +++ b/develop/proc/block_buffer_add_block_c_sp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/block_buffer_add_block_c_sp~2.html b/develop/proc/block_buffer_add_block_c_sp~2.html index 42172f3fcf3..c3bfc8780cf 100644 --- a/develop/proc/block_buffer_add_block_c_sp~2.html +++ b/develop/proc/block_buffer_add_block_c_sp~2.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/block_buffer_add_block_r_dp.html b/develop/proc/block_buffer_add_block_r_dp.html index 62795d39c42..5c9677862b4 100644 --- a/develop/proc/block_buffer_add_block_r_dp.html +++ b/develop/proc/block_buffer_add_block_r_dp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/block_buffer_add_block_r_dp~2.html b/develop/proc/block_buffer_add_block_r_dp~2.html index e2e4203b69b..6508db2790b 100644 --- a/develop/proc/block_buffer_add_block_r_dp~2.html +++ b/develop/proc/block_buffer_add_block_r_dp~2.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/block_buffer_add_block_r_sp.html b/develop/proc/block_buffer_add_block_r_sp.html index 1d5f9371ffb..5d4653dccb3 100644 --- a/develop/proc/block_buffer_add_block_r_sp.html +++ b/develop/proc/block_buffer_add_block_r_sp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/block_buffer_add_block_r_sp~2.html b/develop/proc/block_buffer_add_block_r_sp~2.html index d68878c36e4..4d91e4dc842 100644 --- a/develop/proc/block_buffer_add_block_r_sp~2.html +++ b/develop/proc/block_buffer_add_block_r_sp~2.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/block_buffer_blocks_left.html b/develop/proc/block_buffer_blocks_left.html index a4897877f7a..e7236e024a2 100644 --- a/develop/proc/block_buffer_blocks_left.html +++ b/develop/proc/block_buffer_blocks_left.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/proc/block_buffer_create.html b/develop/proc/block_buffer_create.html index 89740e030f4..0f551f57706 100644 --- a/develop/proc/block_buffer_create.html +++ b/develop/proc/block_buffer_create.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -200,7 +200,7 @@

    Arguments

    diff --git a/develop/proc/block_buffer_create~2.html b/develop/proc/block_buffer_create~2.html index b96d60215e8..48dd1d11148 100644 --- a/develop/proc/block_buffer_create~2.html +++ b/develop/proc/block_buffer_create~2.html @@ -174,7 +174,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/block_buffer_destroy.html b/develop/proc/block_buffer_destroy.html index 4fa1efae42d..27d7f5ddfa0 100644 --- a/develop/proc/block_buffer_destroy.html +++ b/develop/proc/block_buffer_destroy.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/block_buffer_get_index.html b/develop/proc/block_buffer_get_index.html index 61b6bf1d1f8..f9d7a33da86 100644 --- a/develop/proc/block_buffer_get_index.html +++ b/develop/proc/block_buffer_get_index.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/proc/block_buffer_get_index~2.html b/develop/proc/block_buffer_get_index~2.html index d643aa89e83..f83ce9db4d6 100644 --- a/develop/proc/block_buffer_get_index~2.html +++ b/develop/proc/block_buffer_get_index~2.html @@ -168,7 +168,7 @@

    Arguments

    diff --git a/develop/proc/block_buffer_get_next_anyd_block.html b/develop/proc/block_buffer_get_next_anyd_block.html index 7f25b6b5098..b21dd257b4f 100644 --- a/develop/proc/block_buffer_get_next_anyd_block.html +++ b/develop/proc/block_buffer_get_next_anyd_block.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/block_buffer_get_next_area_block.html b/develop/proc/block_buffer_get_next_area_block.html index 90848f0e612..3e92c30dca7 100644 --- a/develop/proc/block_buffer_get_next_area_block.html +++ b/develop/proc/block_buffer_get_next_area_block.html @@ -152,7 +152,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    diff --git a/develop/proc/block_buffer_get_next_block_c_dp.html b/develop/proc/block_buffer_get_next_block_c_dp.html index 66ae4ac8066..32f12f393f0 100644 --- a/develop/proc/block_buffer_get_next_block_c_dp.html +++ b/develop/proc/block_buffer_get_next_block_c_dp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/block_buffer_get_next_block_c_dp~2.html b/develop/proc/block_buffer_get_next_block_c_dp~2.html index c57977eec62..51c7d8d0aea 100644 --- a/develop/proc/block_buffer_get_next_block_c_dp~2.html +++ b/develop/proc/block_buffer_get_next_block_c_dp~2.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/block_buffer_get_next_block_c_sp.html b/develop/proc/block_buffer_get_next_block_c_sp.html index 54a7a762186..633291fc7c3 100644 --- a/develop/proc/block_buffer_get_next_block_c_sp.html +++ b/develop/proc/block_buffer_get_next_block_c_sp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/block_buffer_get_next_block_c_sp~2.html b/develop/proc/block_buffer_get_next_block_c_sp~2.html index 68ad00df47b..045562c469c 100644 --- a/develop/proc/block_buffer_get_next_block_c_sp~2.html +++ b/develop/proc/block_buffer_get_next_block_c_sp~2.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/block_buffer_get_next_block_r_dp.html b/develop/proc/block_buffer_get_next_block_r_dp.html index 11b0cc0fdc5..ed226351140 100644 --- a/develop/proc/block_buffer_get_next_block_r_dp.html +++ b/develop/proc/block_buffer_get_next_block_r_dp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/block_buffer_get_next_block_r_dp~2.html b/develop/proc/block_buffer_get_next_block_r_dp~2.html index 39aa964eaad..9ca412f7680 100644 --- a/develop/proc/block_buffer_get_next_block_r_dp~2.html +++ b/develop/proc/block_buffer_get_next_block_r_dp~2.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/block_buffer_get_next_block_r_sp.html b/develop/proc/block_buffer_get_next_block_r_sp.html index 30107548921..5ad57b870f8 100644 --- a/develop/proc/block_buffer_get_next_block_r_sp.html +++ b/develop/proc/block_buffer_get_next_block_r_sp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/block_buffer_get_next_block_r_sp~2.html b/develop/proc/block_buffer_get_next_block_r_sp~2.html index ee6683b6ba7..d1175f4820a 100644 --- a/develop/proc/block_buffer_get_next_block_r_sp~2.html +++ b/develop/proc/block_buffer_get_next_block_r_sp~2.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/block_copy_1d1d_c.html b/develop/proc/block_copy_1d1d_c.html index a978be438ad..6bd253b1c80 100644 --- a/develop/proc/block_copy_1d1d_c.html +++ b/develop/proc/block_copy_1d1d_c.html @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/block_copy_1d1d_d.html b/develop/proc/block_copy_1d1d_d.html index 9a3ed361196..63f4a5c26c0 100644 --- a/develop/proc/block_copy_1d1d_d.html +++ b/develop/proc/block_copy_1d1d_d.html @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/block_copy_1d1d_s.html b/develop/proc/block_copy_1d1d_s.html index d444022e73d..8ec95a0353f 100644 --- a/develop/proc/block_copy_1d1d_s.html +++ b/develop/proc/block_copy_1d1d_s.html @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/block_copy_1d1d_z.html b/develop/proc/block_copy_1d1d_z.html index 760d412c55b..db4afa03334 100644 --- a/develop/proc/block_copy_1d1d_z.html +++ b/develop/proc/block_copy_1d1d_z.html @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/block_copy_1d2d_c.html b/develop/proc/block_copy_1d2d_c.html index 0b5c3edc729..067cca6083c 100644 --- a/develop/proc/block_copy_1d2d_c.html +++ b/develop/proc/block_copy_1d2d_c.html @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/block_copy_1d2d_d.html b/develop/proc/block_copy_1d2d_d.html index d9a0637335d..7c850925dd8 100644 --- a/develop/proc/block_copy_1d2d_d.html +++ b/develop/proc/block_copy_1d2d_d.html @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/block_copy_1d2d_s.html b/develop/proc/block_copy_1d2d_s.html index e6113ad15da..d68e5735407 100644 --- a/develop/proc/block_copy_1d2d_s.html +++ b/develop/proc/block_copy_1d2d_s.html @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/block_copy_1d2d_z.html b/develop/proc/block_copy_1d2d_z.html index 0580865ffe9..208f650cb28 100644 --- a/develop/proc/block_copy_1d2d_z.html +++ b/develop/proc/block_copy_1d2d_z.html @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/block_copy_2d1d_c.html b/develop/proc/block_copy_2d1d_c.html index e5d8fc53f43..509c1e79622 100644 --- a/develop/proc/block_copy_2d1d_c.html +++ b/develop/proc/block_copy_2d1d_c.html @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/block_copy_2d1d_d.html b/develop/proc/block_copy_2d1d_d.html index 2b00fb86000..2b5fedfd88e 100644 --- a/develop/proc/block_copy_2d1d_d.html +++ b/develop/proc/block_copy_2d1d_d.html @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/block_copy_2d1d_s.html b/develop/proc/block_copy_2d1d_s.html index a1938019bf8..71313a82c96 100644 --- a/develop/proc/block_copy_2d1d_s.html +++ b/develop/proc/block_copy_2d1d_s.html @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/block_copy_2d1d_z.html b/develop/proc/block_copy_2d1d_z.html index 52b740da556..9fab3a47a33 100644 --- a/develop/proc/block_copy_2d1d_z.html +++ b/develop/proc/block_copy_2d1d_z.html @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/block_copy_2d2d_c.html b/develop/proc/block_copy_2d2d_c.html index 36552fc448b..e6bc010989d 100644 --- a/develop/proc/block_copy_2d2d_c.html +++ b/develop/proc/block_copy_2d2d_c.html @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/block_copy_2d2d_d.html b/develop/proc/block_copy_2d2d_d.html index 7b708ed0e1c..af4f95fda9b 100644 --- a/develop/proc/block_copy_2d2d_d.html +++ b/develop/proc/block_copy_2d2d_d.html @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/block_copy_2d2d_s.html b/develop/proc/block_copy_2d2d_s.html index 9e2e04b1e51..edc5d32ee1f 100644 --- a/develop/proc/block_copy_2d2d_s.html +++ b/develop/proc/block_copy_2d2d_s.html @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/block_copy_2d2d_z.html b/develop/proc/block_copy_2d2d_z.html index a21e5aa469d..e11537e4628 100644 --- a/develop/proc/block_copy_2d2d_z.html +++ b/develop/proc/block_copy_2d2d_z.html @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/block_copy_c.html b/develop/proc/block_copy_c.html index 27624e8aead..a0002cecab0 100644 --- a/develop/proc/block_copy_c.html +++ b/develop/proc/block_copy_c.html @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/block_copy_d.html b/develop/proc/block_copy_d.html index 4313a9c1212..0c1b37324c9 100644 --- a/develop/proc/block_copy_d.html +++ b/develop/proc/block_copy_d.html @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/block_copy_s.html b/develop/proc/block_copy_s.html index 79245a6ddb7..26f55631e2d 100644 --- a/develop/proc/block_copy_s.html +++ b/develop/proc/block_copy_s.html @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/block_copy_z.html b/develop/proc/block_copy_z.html index 3998bb5def3..0dab6845525 100644 --- a/develop/proc/block_copy_z.html +++ b/develop/proc/block_copy_z.html @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/block_index_global_to_local.html b/develop/proc/block_index_global_to_local.html index 65aeee2f69e..d9840107321 100644 --- a/develop/proc/block_index_global_to_local.html +++ b/develop/proc/block_index_global_to_local.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/block_index_local_to_global.html b/develop/proc/block_index_local_to_global.html index 12f7142d787..9b146f0e9d1 100644 --- a/develop/proc/block_index_local_to_global.html +++ b/develop/proc/block_index_local_to_global.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -215,7 +215,7 @@

    Arguments

    @@ -231,7 +231,7 @@

    Arguments

    diff --git a/develop/proc/block_minabsdiff.html b/develop/proc/block_minabsdiff.html index c3d3909cbf6..4316b5ee893 100644 --- a/develop/proc/block_minabsdiff.html +++ b/develop/proc/block_minabsdiff.html @@ -182,7 +182,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    diff --git a/develop/proc/block_partial_copy_1d2d_c.html b/develop/proc/block_partial_copy_1d2d_c.html index 55b78801b6d..23db86f82b0 100644 --- a/develop/proc/block_partial_copy_1d2d_c.html +++ b/develop/proc/block_partial_copy_1d2d_c.html @@ -163,7 +163,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    @@ -223,7 +223,7 @@

    Arguments

    @@ -238,7 +238,7 @@

    Arguments

    @@ -328,7 +328,7 @@

    Arguments

    diff --git a/develop/proc/block_partial_copy_1d2d_d.html b/develop/proc/block_partial_copy_1d2d_d.html index 6dee2f939a1..51838cf2ed5 100644 --- a/develop/proc/block_partial_copy_1d2d_d.html +++ b/develop/proc/block_partial_copy_1d2d_d.html @@ -163,7 +163,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    @@ -223,7 +223,7 @@

    Arguments

    @@ -238,7 +238,7 @@

    Arguments

    @@ -328,7 +328,7 @@

    Arguments

    diff --git a/develop/proc/block_partial_copy_1d2d_s.html b/develop/proc/block_partial_copy_1d2d_s.html index 5cdb8957781..773994f7ca6 100644 --- a/develop/proc/block_partial_copy_1d2d_s.html +++ b/develop/proc/block_partial_copy_1d2d_s.html @@ -163,7 +163,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    @@ -223,7 +223,7 @@

    Arguments

    @@ -238,7 +238,7 @@

    Arguments

    @@ -328,7 +328,7 @@

    Arguments

    diff --git a/develop/proc/block_partial_copy_1d2d_z.html b/develop/proc/block_partial_copy_1d2d_z.html index 7b443669abd..48c257878f3 100644 --- a/develop/proc/block_partial_copy_1d2d_z.html +++ b/develop/proc/block_partial_copy_1d2d_z.html @@ -163,7 +163,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    @@ -223,7 +223,7 @@

    Arguments

    @@ -238,7 +238,7 @@

    Arguments

    @@ -328,7 +328,7 @@

    Arguments

    diff --git a/develop/proc/block_partial_copy_2d1d_c.html b/develop/proc/block_partial_copy_2d1d_c.html index 6e60694d9a3..66ad34628e2 100644 --- a/develop/proc/block_partial_copy_2d1d_c.html +++ b/develop/proc/block_partial_copy_2d1d_c.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    @@ -223,7 +223,7 @@

    Arguments

    @@ -238,7 +238,7 @@

    Arguments

    @@ -328,7 +328,7 @@

    Arguments

    diff --git a/develop/proc/block_partial_copy_2d1d_d.html b/develop/proc/block_partial_copy_2d1d_d.html index 2918eae1d7e..8e38841225e 100644 --- a/develop/proc/block_partial_copy_2d1d_d.html +++ b/develop/proc/block_partial_copy_2d1d_d.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    @@ -223,7 +223,7 @@

    Arguments

    @@ -238,7 +238,7 @@

    Arguments

    @@ -328,7 +328,7 @@

    Arguments

    diff --git a/develop/proc/block_partial_copy_2d1d_s.html b/develop/proc/block_partial_copy_2d1d_s.html index 7e02576e323..eddd41266b6 100644 --- a/develop/proc/block_partial_copy_2d1d_s.html +++ b/develop/proc/block_partial_copy_2d1d_s.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    @@ -223,7 +223,7 @@

    Arguments

    @@ -238,7 +238,7 @@

    Arguments

    @@ -328,7 +328,7 @@

    Arguments

    diff --git a/develop/proc/block_partial_copy_2d1d_z.html b/develop/proc/block_partial_copy_2d1d_z.html index beb10a90a49..8520e1d2194 100644 --- a/develop/proc/block_partial_copy_2d1d_z.html +++ b/develop/proc/block_partial_copy_2d1d_z.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    @@ -223,7 +223,7 @@

    Arguments

    @@ -238,7 +238,7 @@

    Arguments

    @@ -328,7 +328,7 @@

    Arguments

    diff --git a/develop/proc/block_partial_copy_2d2d_c.html b/develop/proc/block_partial_copy_2d2d_c.html index 6f5d8da756b..be0f6d947d5 100644 --- a/develop/proc/block_partial_copy_2d2d_c.html +++ b/develop/proc/block_partial_copy_2d2d_c.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    @@ -298,7 +298,7 @@

    Arguments

    diff --git a/develop/proc/block_partial_copy_2d2d_d.html b/develop/proc/block_partial_copy_2d2d_d.html index b9ed7f3d2a2..b55c7eccad0 100644 --- a/develop/proc/block_partial_copy_2d2d_d.html +++ b/develop/proc/block_partial_copy_2d2d_d.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    @@ -298,7 +298,7 @@

    Arguments

    diff --git a/develop/proc/block_partial_copy_2d2d_s.html b/develop/proc/block_partial_copy_2d2d_s.html index ffd8a116340..e50e4753a53 100644 --- a/develop/proc/block_partial_copy_2d2d_s.html +++ b/develop/proc/block_partial_copy_2d2d_s.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    @@ -298,7 +298,7 @@

    Arguments

    diff --git a/develop/proc/block_partial_copy_2d2d_z.html b/develop/proc/block_partial_copy_2d2d_z.html index eac25271827..8e77688514d 100644 --- a/develop/proc/block_partial_copy_2d2d_z.html +++ b/develop/proc/block_partial_copy_2d2d_z.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    @@ -298,7 +298,7 @@

    Arguments

    diff --git a/develop/proc/block_partial_copy_c.html b/develop/proc/block_partial_copy_c.html index 2b7f057a6c6..0b60f7a0c15 100644 --- a/develop/proc/block_partial_copy_c.html +++ b/develop/proc/block_partial_copy_c.html @@ -163,7 +163,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    @@ -223,7 +223,7 @@

    Arguments

    @@ -238,7 +238,7 @@

    Arguments

    @@ -253,7 +253,7 @@

    Arguments

    @@ -268,7 +268,7 @@

    Arguments

    @@ -358,7 +358,7 @@

    Arguments

    diff --git a/develop/proc/block_partial_copy_d.html b/develop/proc/block_partial_copy_d.html index 4867f502fd0..140aa041c2d 100644 --- a/develop/proc/block_partial_copy_d.html +++ b/develop/proc/block_partial_copy_d.html @@ -163,7 +163,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    @@ -223,7 +223,7 @@

    Arguments

    @@ -238,7 +238,7 @@

    Arguments

    @@ -253,7 +253,7 @@

    Arguments

    @@ -268,7 +268,7 @@

    Arguments

    @@ -358,7 +358,7 @@

    Arguments

    diff --git a/develop/proc/block_partial_copy_s.html b/develop/proc/block_partial_copy_s.html index 1933ded9dd4..46243fda8f6 100644 --- a/develop/proc/block_partial_copy_s.html +++ b/develop/proc/block_partial_copy_s.html @@ -163,7 +163,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    @@ -223,7 +223,7 @@

    Arguments

    @@ -238,7 +238,7 @@

    Arguments

    @@ -253,7 +253,7 @@

    Arguments

    @@ -268,7 +268,7 @@

    Arguments

    @@ -358,7 +358,7 @@

    Arguments

    diff --git a/develop/proc/block_partial_copy_z.html b/develop/proc/block_partial_copy_z.html index 60edf1a5424..a11f636552c 100644 --- a/develop/proc/block_partial_copy_z.html +++ b/develop/proc/block_partial_copy_z.html @@ -163,7 +163,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    @@ -223,7 +223,7 @@

    Arguments

    @@ -238,7 +238,7 @@

    Arguments

    @@ -253,7 +253,7 @@

    Arguments

    @@ -268,7 +268,7 @@

    Arguments

    @@ -358,7 +358,7 @@

    Arguments

    diff --git a/develop/proc/block_size.html b/develop/proc/block_size.html index 37a80d83936..80325a2c862 100644 --- a/develop/proc/block_size.html +++ b/develop/proc/block_size.html @@ -153,7 +153,7 @@

    Arguments

    @@ -171,7 +171,7 @@

    Arguments

    Return Value - + integer, ALLOCATABLE, DIMENSION(:)

    diff --git a/develop/proc/block_transpose_copy_1d2d_c.html b/develop/proc/block_transpose_copy_1d2d_c.html index eea3732378e..48f0f963a20 100644 --- a/develop/proc/block_transpose_copy_1d2d_c.html +++ b/develop/proc/block_transpose_copy_1d2d_c.html @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/block_transpose_copy_1d2d_d.html b/develop/proc/block_transpose_copy_1d2d_d.html index 3d41a0bdc50..d7ea805bc0d 100644 --- a/develop/proc/block_transpose_copy_1d2d_d.html +++ b/develop/proc/block_transpose_copy_1d2d_d.html @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/block_transpose_copy_1d2d_s.html b/develop/proc/block_transpose_copy_1d2d_s.html index 005bef66a5e..3b14b22e501 100644 --- a/develop/proc/block_transpose_copy_1d2d_s.html +++ b/develop/proc/block_transpose_copy_1d2d_s.html @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/block_transpose_copy_1d2d_z.html b/develop/proc/block_transpose_copy_1d2d_z.html index 7cc81b63b11..4edea092ef9 100644 --- a/develop/proc/block_transpose_copy_1d2d_z.html +++ b/develop/proc/block_transpose_copy_1d2d_z.html @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/block_transpose_copy_2d1d_c.html b/develop/proc/block_transpose_copy_2d1d_c.html index 7749c4517bc..1655842dbf9 100644 --- a/develop/proc/block_transpose_copy_2d1d_c.html +++ b/develop/proc/block_transpose_copy_2d1d_c.html @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/block_transpose_copy_2d1d_d.html b/develop/proc/block_transpose_copy_2d1d_d.html index 45709618748..9216b4f42b4 100644 --- a/develop/proc/block_transpose_copy_2d1d_d.html +++ b/develop/proc/block_transpose_copy_2d1d_d.html @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/block_transpose_copy_2d1d_s.html b/develop/proc/block_transpose_copy_2d1d_s.html index 6941351e3b0..edfbeae5af6 100644 --- a/develop/proc/block_transpose_copy_2d1d_s.html +++ b/develop/proc/block_transpose_copy_2d1d_s.html @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/block_transpose_copy_2d1d_z.html b/develop/proc/block_transpose_copy_2d1d_z.html index 8557f3e1919..6ba3a0eff5a 100644 --- a/develop/proc/block_transpose_copy_2d1d_z.html +++ b/develop/proc/block_transpose_copy_2d1d_z.html @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/block_transpose_copy_c.html b/develop/proc/block_transpose_copy_c.html index d19d480ca10..dfee2a4353b 100644 --- a/develop/proc/block_transpose_copy_c.html +++ b/develop/proc/block_transpose_copy_c.html @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/block_transpose_copy_d.html b/develop/proc/block_transpose_copy_d.html index 1b8b6b58898..b0cc6843faa 100644 --- a/develop/proc/block_transpose_copy_d.html +++ b/develop/proc/block_transpose_copy_d.html @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/block_transpose_copy_s.html b/develop/proc/block_transpose_copy_s.html index 1eb13255091..41b154ba897 100644 --- a/develop/proc/block_transpose_copy_s.html +++ b/develop/proc/block_transpose_copy_s.html @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/block_transpose_copy_z.html b/develop/proc/block_transpose_copy_z.html index 22952b40f32..9b2776e373c 100644 --- a/develop/proc/block_transpose_copy_z.html +++ b/develop/proc/block_transpose_copy_z.html @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/block_transpose_inplace_c.html b/develop/proc/block_transpose_inplace_c.html index ac531422ae7..b0fa3ae890b 100644 --- a/develop/proc/block_transpose_inplace_c.html +++ b/develop/proc/block_transpose_inplace_c.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/block_transpose_inplace_d.html b/develop/proc/block_transpose_inplace_d.html index a4da9190358..bc35704a0a1 100644 --- a/develop/proc/block_transpose_inplace_d.html +++ b/develop/proc/block_transpose_inplace_d.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/block_transpose_inplace_s.html b/develop/proc/block_transpose_inplace_s.html index f0fb6ae4e3b..a55db5694a3 100644 --- a/develop/proc/block_transpose_inplace_s.html +++ b/develop/proc/block_transpose_inplace_s.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/block_transpose_inplace_z.html b/develop/proc/block_transpose_inplace_z.html index 3ec25686797..1a2c045f549 100644 --- a/develop/proc/block_transpose_inplace_z.html +++ b/develop/proc/block_transpose_inplace_z.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/bswap.html b/develop/proc/bswap.html index 7eab7584fbe..8ea0a9bd7a4 100644 --- a/develop/proc/bswap.html +++ b/develop/proc/bswap.html @@ -159,7 +159,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    diff --git a/develop/proc/btree_add_i8_cp2d.html b/develop/proc/btree_add_i8_cp2d.html index 8d7da92754a..b95e6082312 100644 --- a/develop/proc/btree_add_i8_cp2d.html +++ b/develop/proc/btree_add_i8_cp2d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/btree_add_i8_dp2d.html b/develop/proc/btree_add_i8_dp2d.html index 37e91e4af9d..c88845fe942 100644 --- a/develop/proc/btree_add_i8_dp2d.html +++ b/develop/proc/btree_add_i8_dp2d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/btree_add_i8_sp2d.html b/develop/proc/btree_add_i8_sp2d.html index 95f9eadfbd7..7c4a038297f 100644 --- a/develop/proc/btree_add_i8_sp2d.html +++ b/develop/proc/btree_add_i8_sp2d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/btree_add_i8_zp2d.html b/develop/proc/btree_add_i8_zp2d.html index bfa6a6cbb7a..3b3f12041ec 100644 --- a/develop/proc/btree_add_i8_zp2d.html +++ b/develop/proc/btree_add_i8_zp2d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/btree_add_into_i8_cp2d.html b/develop/proc/btree_add_into_i8_cp2d.html index c80feda159a..b8482b1182d 100644 --- a/develop/proc/btree_add_into_i8_cp2d.html +++ b/develop/proc/btree_add_into_i8_cp2d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    diff --git a/develop/proc/btree_add_into_i8_dp2d.html b/develop/proc/btree_add_into_i8_dp2d.html index 8f368f163fb..b4a09dac214 100644 --- a/develop/proc/btree_add_into_i8_dp2d.html +++ b/develop/proc/btree_add_into_i8_dp2d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    diff --git a/develop/proc/btree_add_into_i8_sp2d.html b/develop/proc/btree_add_into_i8_sp2d.html index 3503a48e592..d9b8c7e50e6 100644 --- a/develop/proc/btree_add_into_i8_sp2d.html +++ b/develop/proc/btree_add_into_i8_sp2d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    diff --git a/develop/proc/btree_add_into_i8_zp2d.html b/develop/proc/btree_add_into_i8_zp2d.html index 9b99125be43..4abc03e69af 100644 --- a/develop/proc/btree_add_into_i8_zp2d.html +++ b/develop/proc/btree_add_into_i8_zp2d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    diff --git a/develop/proc/btree_adopt_subtrees_i8_cp2d.html b/develop/proc/btree_adopt_subtrees_i8_cp2d.html index a88a6163a60..26eb1162bac 100644 --- a/develop/proc/btree_adopt_subtrees_i8_cp2d.html +++ b/develop/proc/btree_adopt_subtrees_i8_cp2d.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/btree_adopt_subtrees_i8_dp2d.html b/develop/proc/btree_adopt_subtrees_i8_dp2d.html index b4e5a57e966..6d496cf8079 100644 --- a/develop/proc/btree_adopt_subtrees_i8_dp2d.html +++ b/develop/proc/btree_adopt_subtrees_i8_dp2d.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/btree_adopt_subtrees_i8_sp2d.html b/develop/proc/btree_adopt_subtrees_i8_sp2d.html index 6b51eb781f7..2dead192d98 100644 --- a/develop/proc/btree_adopt_subtrees_i8_sp2d.html +++ b/develop/proc/btree_adopt_subtrees_i8_sp2d.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/btree_adopt_subtrees_i8_zp2d.html b/develop/proc/btree_adopt_subtrees_i8_zp2d.html index fdfdc3bbec3..f63b7fa566b 100644 --- a/develop/proc/btree_adopt_subtrees_i8_zp2d.html +++ b/develop/proc/btree_adopt_subtrees_i8_zp2d.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/btree_delete_i8_cp2d.html b/develop/proc/btree_delete_i8_cp2d.html index e8900a6825e..cd45d73aa8a 100644 --- a/develop/proc/btree_delete_i8_cp2d.html +++ b/develop/proc/btree_delete_i8_cp2d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/btree_delete_i8_dp2d.html b/develop/proc/btree_delete_i8_dp2d.html index df4f54a8c03..29e4b59dced 100644 --- a/develop/proc/btree_delete_i8_dp2d.html +++ b/develop/proc/btree_delete_i8_dp2d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/btree_delete_i8_sp2d.html b/develop/proc/btree_delete_i8_sp2d.html index 17942cc43cc..3497cf6fa46 100644 --- a/develop/proc/btree_delete_i8_sp2d.html +++ b/develop/proc/btree_delete_i8_sp2d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/btree_delete_i8_zp2d.html b/develop/proc/btree_delete_i8_zp2d.html index bc45885140e..1730cc1b595 100644 --- a/develop/proc/btree_delete_i8_zp2d.html +++ b/develop/proc/btree_delete_i8_zp2d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/btree_delete_node_i8_cp2d.html b/develop/proc/btree_delete_node_i8_cp2d.html index 1d3edb8874e..0f74891c71e 100644 --- a/develop/proc/btree_delete_node_i8_cp2d.html +++ b/develop/proc/btree_delete_node_i8_cp2d.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/btree_delete_node_i8_dp2d.html b/develop/proc/btree_delete_node_i8_dp2d.html index 8ce86ad1f48..9ce20ffdce3 100644 --- a/develop/proc/btree_delete_node_i8_dp2d.html +++ b/develop/proc/btree_delete_node_i8_dp2d.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/btree_delete_node_i8_sp2d.html b/develop/proc/btree_delete_node_i8_sp2d.html index 8fc25c4ce8e..0942fb55784 100644 --- a/develop/proc/btree_delete_node_i8_sp2d.html +++ b/develop/proc/btree_delete_node_i8_sp2d.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/btree_delete_node_i8_zp2d.html b/develop/proc/btree_delete_node_i8_zp2d.html index dccb632d3eb..fc7145143eb 100644 --- a/develop/proc/btree_delete_node_i8_zp2d.html +++ b/develop/proc/btree_delete_node_i8_zp2d.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/btree_find_full_i8_cp2d.html b/develop/proc/btree_find_full_i8_cp2d.html index a426e330209..1a3a29996b3 100644 --- a/develop/proc/btree_find_full_i8_cp2d.html +++ b/develop/proc/btree_find_full_i8_cp2d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/btree_find_full_i8_dp2d.html b/develop/proc/btree_find_full_i8_dp2d.html index 72f2c9cea45..ef904e1f169 100644 --- a/develop/proc/btree_find_full_i8_dp2d.html +++ b/develop/proc/btree_find_full_i8_dp2d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/btree_find_full_i8_sp2d.html b/develop/proc/btree_find_full_i8_sp2d.html index 031fd5d920c..b56cd820c0c 100644 --- a/develop/proc/btree_find_full_i8_sp2d.html +++ b/develop/proc/btree_find_full_i8_sp2d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/btree_find_full_i8_zp2d.html b/develop/proc/btree_find_full_i8_zp2d.html index a1013e1fd29..01a175c7178 100644 --- a/develop/proc/btree_find_full_i8_zp2d.html +++ b/develop/proc/btree_find_full_i8_zp2d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/btree_find_i8_cp2d.html b/develop/proc/btree_find_i8_cp2d.html index a5730a2d647..a296b577ff2 100644 --- a/develop/proc/btree_find_i8_cp2d.html +++ b/develop/proc/btree_find_i8_cp2d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/btree_find_i8_dp2d.html b/develop/proc/btree_find_i8_dp2d.html index 3075b581a1f..bfb726b909c 100644 --- a/develop/proc/btree_find_i8_dp2d.html +++ b/develop/proc/btree_find_i8_dp2d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/btree_find_i8_sp2d.html b/develop/proc/btree_find_i8_sp2d.html index abade8c408e..802bd044bb5 100644 --- a/develop/proc/btree_find_i8_sp2d.html +++ b/develop/proc/btree_find_i8_sp2d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/btree_find_i8_zp2d.html b/develop/proc/btree_find_i8_zp2d.html index e630b16222c..70222ae26a2 100644 --- a/develop/proc/btree_find_i8_zp2d.html +++ b/develop/proc/btree_find_i8_zp2d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/btree_find_leaf_i8_cp2d.html b/develop/proc/btree_find_leaf_i8_cp2d.html index e4302bddd02..01b01acae52 100644 --- a/develop/proc/btree_find_leaf_i8_cp2d.html +++ b/develop/proc/btree_find_leaf_i8_cp2d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/btree_find_leaf_i8_dp2d.html b/develop/proc/btree_find_leaf_i8_dp2d.html index 0c23870560e..f99151d232d 100644 --- a/develop/proc/btree_find_leaf_i8_dp2d.html +++ b/develop/proc/btree_find_leaf_i8_dp2d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/btree_find_leaf_i8_sp2d.html b/develop/proc/btree_find_leaf_i8_sp2d.html index 789aaf9921f..269f529a78b 100644 --- a/develop/proc/btree_find_leaf_i8_sp2d.html +++ b/develop/proc/btree_find_leaf_i8_sp2d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/btree_find_leaf_i8_zp2d.html b/develop/proc/btree_find_leaf_i8_zp2d.html index 3947b2f05f7..e2d66696def 100644 --- a/develop/proc/btree_find_leaf_i8_zp2d.html +++ b/develop/proc/btree_find_leaf_i8_zp2d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/btree_free_node_i8_cp2d.html b/develop/proc/btree_free_node_i8_cp2d.html index 7f8f906ad58..5e502c3433f 100644 --- a/develop/proc/btree_free_node_i8_cp2d.html +++ b/develop/proc/btree_free_node_i8_cp2d.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/btree_free_node_i8_dp2d.html b/develop/proc/btree_free_node_i8_dp2d.html index 44a34d1d673..e159458aa75 100644 --- a/develop/proc/btree_free_node_i8_dp2d.html +++ b/develop/proc/btree_free_node_i8_dp2d.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/btree_free_node_i8_sp2d.html b/develop/proc/btree_free_node_i8_sp2d.html index fe9c2f84d27..62e242972e3 100644 --- a/develop/proc/btree_free_node_i8_sp2d.html +++ b/develop/proc/btree_free_node_i8_sp2d.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/btree_free_node_i8_zp2d.html b/develop/proc/btree_free_node_i8_zp2d.html index ab325cec418..41a9d2f58d2 100644 --- a/develop/proc/btree_free_node_i8_zp2d.html +++ b/develop/proc/btree_free_node_i8_zp2d.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/btree_left_insertion_i8_cp2d.html b/develop/proc/btree_left_insertion_i8_cp2d.html index f172cae81e5..48f5101aa97 100644 --- a/develop/proc/btree_left_insertion_i8_cp2d.html +++ b/develop/proc/btree_left_insertion_i8_cp2d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    diff --git a/develop/proc/btree_left_insertion_i8_dp2d.html b/develop/proc/btree_left_insertion_i8_dp2d.html index fa381fd52eb..5b676823821 100644 --- a/develop/proc/btree_left_insertion_i8_dp2d.html +++ b/develop/proc/btree_left_insertion_i8_dp2d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    diff --git a/develop/proc/btree_left_insertion_i8_sp2d.html b/develop/proc/btree_left_insertion_i8_sp2d.html index af4e091d2a6..d09d4639830 100644 --- a/develop/proc/btree_left_insertion_i8_sp2d.html +++ b/develop/proc/btree_left_insertion_i8_sp2d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    diff --git a/develop/proc/btree_left_insertion_i8_zp2d.html b/develop/proc/btree_left_insertion_i8_zp2d.html index 97f5fed6d7d..c355d58c8a7 100644 --- a/develop/proc/btree_left_insertion_i8_zp2d.html +++ b/develop/proc/btree_left_insertion_i8_zp2d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    diff --git a/develop/proc/btree_new_i8_cp2d.html b/develop/proc/btree_new_i8_cp2d.html index 29cd6ce341e..e7fab6ab24c 100644 --- a/develop/proc/btree_new_i8_cp2d.html +++ b/develop/proc/btree_new_i8_cp2d.html @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/btree_new_i8_dp2d.html b/develop/proc/btree_new_i8_dp2d.html index e218cb5a922..1e0f06d8822 100644 --- a/develop/proc/btree_new_i8_dp2d.html +++ b/develop/proc/btree_new_i8_dp2d.html @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/btree_new_i8_sp2d.html b/develop/proc/btree_new_i8_sp2d.html index 52d92e67eae..8e4b6b57245 100644 --- a/develop/proc/btree_new_i8_sp2d.html +++ b/develop/proc/btree_new_i8_sp2d.html @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/btree_new_i8_zp2d.html b/develop/proc/btree_new_i8_zp2d.html index 61b459e001a..fbdaef3d86c 100644 --- a/develop/proc/btree_new_i8_zp2d.html +++ b/develop/proc/btree_new_i8_zp2d.html @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/btree_new_node_i8_cp2d.html b/develop/proc/btree_new_node_i8_cp2d.html index e3cf8150d3d..1a7ecd8eb9f 100644 --- a/develop/proc/btree_new_node_i8_cp2d.html +++ b/develop/proc/btree_new_node_i8_cp2d.html @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/btree_new_node_i8_dp2d.html b/develop/proc/btree_new_node_i8_dp2d.html index 2be5e67c00b..bf713f40a9f 100644 --- a/develop/proc/btree_new_node_i8_dp2d.html +++ b/develop/proc/btree_new_node_i8_dp2d.html @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/btree_new_node_i8_sp2d.html b/develop/proc/btree_new_node_i8_sp2d.html index e3fc1208860..91b20fab7c7 100644 --- a/develop/proc/btree_new_node_i8_sp2d.html +++ b/develop/proc/btree_new_node_i8_sp2d.html @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/btree_new_node_i8_zp2d.html b/develop/proc/btree_new_node_i8_zp2d.html index 69e0d781bbb..5cf2be3c719 100644 --- a/develop/proc/btree_new_node_i8_zp2d.html +++ b/develop/proc/btree_new_node_i8_zp2d.html @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/btree_new_root_i8_cp2d.html b/develop/proc/btree_new_root_i8_cp2d.html index 96b9bc83895..ee98f96275c 100644 --- a/develop/proc/btree_new_root_i8_cp2d.html +++ b/develop/proc/btree_new_root_i8_cp2d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/btree_new_root_i8_dp2d.html b/develop/proc/btree_new_root_i8_dp2d.html index dd96c384798..44ab4c0025c 100644 --- a/develop/proc/btree_new_root_i8_dp2d.html +++ b/develop/proc/btree_new_root_i8_dp2d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/btree_new_root_i8_sp2d.html b/develop/proc/btree_new_root_i8_sp2d.html index beac380169e..30514cd4451 100644 --- a/develop/proc/btree_new_root_i8_sp2d.html +++ b/develop/proc/btree_new_root_i8_sp2d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/btree_new_root_i8_zp2d.html b/develop/proc/btree_new_root_i8_zp2d.html index 065c9f8873d..e1b5f1effed 100644 --- a/develop/proc/btree_new_root_i8_zp2d.html +++ b/develop/proc/btree_new_root_i8_zp2d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/btree_node_find_ge_pos_i8_cp2d.html b/develop/proc/btree_node_find_ge_pos_i8_cp2d.html index c0481146b12..2a985bce543 100644 --- a/develop/proc/btree_node_find_ge_pos_i8_cp2d.html +++ b/develop/proc/btree_node_find_ge_pos_i8_cp2d.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/btree_node_find_ge_pos_i8_dp2d.html b/develop/proc/btree_node_find_ge_pos_i8_dp2d.html index 5ca94bd4724..e94061136ee 100644 --- a/develop/proc/btree_node_find_ge_pos_i8_dp2d.html +++ b/develop/proc/btree_node_find_ge_pos_i8_dp2d.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/btree_node_find_ge_pos_i8_sp2d.html b/develop/proc/btree_node_find_ge_pos_i8_sp2d.html index 42836f6391e..7072bc38b95 100644 --- a/develop/proc/btree_node_find_ge_pos_i8_sp2d.html +++ b/develop/proc/btree_node_find_ge_pos_i8_sp2d.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/btree_node_find_ge_pos_i8_zp2d.html b/develop/proc/btree_node_find_ge_pos_i8_zp2d.html index a28340e0aaa..2fbc4bcc3cb 100644 --- a/develop/proc/btree_node_find_ge_pos_i8_zp2d.html +++ b/develop/proc/btree_node_find_ge_pos_i8_zp2d.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/btree_node_find_gt_pos_i8_cp2d.html b/develop/proc/btree_node_find_gt_pos_i8_cp2d.html index 213dbb42e01..cbfe6b07b1f 100644 --- a/develop/proc/btree_node_find_gt_pos_i8_cp2d.html +++ b/develop/proc/btree_node_find_gt_pos_i8_cp2d.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/btree_node_find_gt_pos_i8_dp2d.html b/develop/proc/btree_node_find_gt_pos_i8_dp2d.html index e76bd3e00a4..66f2f12881a 100644 --- a/develop/proc/btree_node_find_gt_pos_i8_dp2d.html +++ b/develop/proc/btree_node_find_gt_pos_i8_dp2d.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/btree_node_find_gt_pos_i8_sp2d.html b/develop/proc/btree_node_find_gt_pos_i8_sp2d.html index f6da229e049..03d212bb536 100644 --- a/develop/proc/btree_node_find_gt_pos_i8_sp2d.html +++ b/develop/proc/btree_node_find_gt_pos_i8_sp2d.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/btree_node_find_gt_pos_i8_zp2d.html b/develop/proc/btree_node_find_gt_pos_i8_zp2d.html index d8df69ff3c5..c57fa60c3d1 100644 --- a/develop/proc/btree_node_find_gt_pos_i8_zp2d.html +++ b/develop/proc/btree_node_find_gt_pos_i8_zp2d.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/btree_node_find_gte_pos_i8_cp2d.html b/develop/proc/btree_node_find_gte_pos_i8_cp2d.html index 7411e53578a..b8aac1a12f7 100644 --- a/develop/proc/btree_node_find_gte_pos_i8_cp2d.html +++ b/develop/proc/btree_node_find_gte_pos_i8_cp2d.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/btree_node_find_gte_pos_i8_dp2d.html b/develop/proc/btree_node_find_gte_pos_i8_dp2d.html index 126d8d0c75c..8f704dae367 100644 --- a/develop/proc/btree_node_find_gte_pos_i8_dp2d.html +++ b/develop/proc/btree_node_find_gte_pos_i8_dp2d.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/btree_node_find_gte_pos_i8_sp2d.html b/develop/proc/btree_node_find_gte_pos_i8_sp2d.html index a538ca8bb3a..456272c41c5 100644 --- a/develop/proc/btree_node_find_gte_pos_i8_sp2d.html +++ b/develop/proc/btree_node_find_gte_pos_i8_sp2d.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/btree_node_find_gte_pos_i8_zp2d.html b/develop/proc/btree_node_find_gte_pos_i8_zp2d.html index 850d0625083..08cbc9c1faa 100644 --- a/develop/proc/btree_node_find_gte_pos_i8_zp2d.html +++ b/develop/proc/btree_node_find_gte_pos_i8_zp2d.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/btree_right_insertion_i8_cp2d.html b/develop/proc/btree_right_insertion_i8_cp2d.html index f4081a31ec5..560f6030cfb 100644 --- a/develop/proc/btree_right_insertion_i8_cp2d.html +++ b/develop/proc/btree_right_insertion_i8_cp2d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    diff --git a/develop/proc/btree_right_insertion_i8_dp2d.html b/develop/proc/btree_right_insertion_i8_dp2d.html index 5288a51a0c7..b063fc163c3 100644 --- a/develop/proc/btree_right_insertion_i8_dp2d.html +++ b/develop/proc/btree_right_insertion_i8_dp2d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    diff --git a/develop/proc/btree_right_insertion_i8_sp2d.html b/develop/proc/btree_right_insertion_i8_sp2d.html index d11eda71f89..9c3ee8ead05 100644 --- a/develop/proc/btree_right_insertion_i8_sp2d.html +++ b/develop/proc/btree_right_insertion_i8_sp2d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    diff --git a/develop/proc/btree_right_insertion_i8_zp2d.html b/develop/proc/btree_right_insertion_i8_zp2d.html index 95a41e3a761..6215a812d5b 100644 --- a/develop/proc/btree_right_insertion_i8_zp2d.html +++ b/develop/proc/btree_right_insertion_i8_zp2d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    diff --git a/develop/proc/btree_simple_insertion_i8_cp2d.html b/develop/proc/btree_simple_insertion_i8_cp2d.html index f551f150d10..1de262fff00 100644 --- a/develop/proc/btree_simple_insertion_i8_cp2d.html +++ b/develop/proc/btree_simple_insertion_i8_cp2d.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/btree_simple_insertion_i8_dp2d.html b/develop/proc/btree_simple_insertion_i8_dp2d.html index b404b995c17..bf27f9bc45f 100644 --- a/develop/proc/btree_simple_insertion_i8_dp2d.html +++ b/develop/proc/btree_simple_insertion_i8_dp2d.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/btree_simple_insertion_i8_sp2d.html b/develop/proc/btree_simple_insertion_i8_sp2d.html index 03164ff5ec8..29432fd53e7 100644 --- a/develop/proc/btree_simple_insertion_i8_sp2d.html +++ b/develop/proc/btree_simple_insertion_i8_sp2d.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/btree_simple_insertion_i8_zp2d.html b/develop/proc/btree_simple_insertion_i8_zp2d.html index 5bd6608f73d..be555ae4925 100644 --- a/develop/proc/btree_simple_insertion_i8_zp2d.html +++ b/develop/proc/btree_simple_insertion_i8_zp2d.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/buffer_init.html b/develop/proc/buffer_init.html index ab6d12eae07..8ec6c8aca6d 100644 --- a/develop/proc/buffer_init.html +++ b/develop/proc/buffer_init.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    diff --git a/develop/proc/buffer_matrices_ensure_size.html b/develop/proc/buffer_matrices_ensure_size.html index 744bafad63c..c9c7469f78f 100644 --- a/develop/proc/buffer_matrices_ensure_size.html +++ b/develop/proc/buffer_matrices_ensure_size.html @@ -195,7 +195,7 @@

    Arguments

    diff --git a/develop/proc/buffer_release.html b/develop/proc/buffer_release.html index a00f62900d5..74548bca9ad 100644 --- a/develop/proc/buffer_release.html +++ b/develop/proc/buffer_release.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/build_csr_index.html b/develop/proc/build_csr_index.html index b4aa11369e9..79c12d1f2e5 100644 --- a/develop/proc/build_csr_index.html +++ b/develop/proc/build_csr_index.html @@ -219,7 +219,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_add_on_diag_c.html b/develop/proc/c_dbcsr_add_on_diag_c.html index 1bbced7f13a..01767de287f 100644 --- a/develop/proc/c_dbcsr_add_on_diag_c.html +++ b/develop/proc/c_dbcsr_add_on_diag_c.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_add_on_diag_d.html b/develop/proc/c_dbcsr_add_on_diag_d.html index 10734592c54..573f39f75a0 100644 --- a/develop/proc/c_dbcsr_add_on_diag_d.html +++ b/develop/proc/c_dbcsr_add_on_diag_d.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_add_on_diag_s.html b/develop/proc/c_dbcsr_add_on_diag_s.html index b008a733510..cc1f13353b4 100644 --- a/develop/proc/c_dbcsr_add_on_diag_s.html +++ b/develop/proc/c_dbcsr_add_on_diag_s.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_add_on_diag_z.html b/develop/proc/c_dbcsr_add_on_diag_z.html index 7dd8c6d4628..6324e5b42d4 100644 --- a/develop/proc/c_dbcsr_add_on_diag_z.html +++ b/develop/proc/c_dbcsr_add_on_diag_z.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_binary_write.html b/develop/proc/c_dbcsr_binary_write.html index 3aa3ef13805..ce5341a000b 100644 --- a/develop/proc/c_dbcsr_binary_write.html +++ b/develop/proc/c_dbcsr_binary_write.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_checksum.html b/develop/proc/c_dbcsr_checksum.html index fdb0ba2b826..e7f76073f22 100644 --- a/develop/proc/c_dbcsr_checksum.html +++ b/develop/proc/c_dbcsr_checksum.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_complete_redistribute.html b/develop/proc/c_dbcsr_complete_redistribute.html index 3acf18397f9..6660f58a220 100644 --- a/develop/proc/c_dbcsr_complete_redistribute.html +++ b/develop/proc/c_dbcsr_complete_redistribute.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_create_new.html b/develop/proc/c_dbcsr_create_new.html index bf3ab3fa6ce..349fc0107a1 100644 --- a/develop/proc/c_dbcsr_create_new.html +++ b/develop/proc/c_dbcsr_create_new.html @@ -152,7 +152,7 @@

    Arguments

    @@ -272,7 +272,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_create_template.html b/develop/proc/c_dbcsr_create_template.html index 162d20f00dc..034d6203389 100644 --- a/develop/proc/c_dbcsr_create_template.html +++ b/develop/proc/c_dbcsr_create_template.html @@ -152,7 +152,7 @@

    Arguments

    @@ -287,7 +287,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_distribute.html b/develop/proc/c_dbcsr_distribute.html index 955611a5732..dda67a5e8c1 100644 --- a/develop/proc/c_dbcsr_distribute.html +++ b/develop/proc/c_dbcsr_distribute.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_filter.html b/develop/proc/c_dbcsr_filter.html index 61b2b6e2151..c84b08abe3a 100644 --- a/develop/proc/c_dbcsr_filter.html +++ b/develop/proc/c_dbcsr_filter.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_finalize.html b/develop/proc/c_dbcsr_finalize.html index 062b3bbc492..45586593d08 100644 --- a/develop/proc/c_dbcsr_finalize.html +++ b/develop/proc/c_dbcsr_finalize.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_frobenius_norm.html b/develop/proc/c_dbcsr_frobenius_norm.html index 172551736ea..c00ec80293f 100644 --- a/develop/proc/c_dbcsr_frobenius_norm.html +++ b/develop/proc/c_dbcsr_frobenius_norm.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_function_of_elements.html b/develop/proc/c_dbcsr_function_of_elements.html index 1a2c940779b..12e320a21fc 100644 --- a/develop/proc/c_dbcsr_function_of_elements.html +++ b/develop/proc/c_dbcsr_function_of_elements.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_gershgorin_norm.html b/develop/proc/c_dbcsr_gershgorin_norm.html index 51422008898..509cb49ba2f 100644 --- a/develop/proc/c_dbcsr_gershgorin_norm.html +++ b/develop/proc/c_dbcsr_gershgorin_norm.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_get_block_diag.html b/develop/proc/c_dbcsr_get_block_diag.html index 237d163c582..0734b82aa39 100644 --- a/develop/proc/c_dbcsr_get_block_diag.html +++ b/develop/proc/c_dbcsr_get_block_diag.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_get_block_notrans_p_c.html b/develop/proc/c_dbcsr_get_block_notrans_p_c.html index 0e97204c6cf..47a3ad6807e 100644 --- a/develop/proc/c_dbcsr_get_block_notrans_p_c.html +++ b/develop/proc/c_dbcsr_get_block_notrans_p_c.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_get_block_notrans_p_d.html b/develop/proc/c_dbcsr_get_block_notrans_p_d.html index a1fefa3bc4c..9cab30961b0 100644 --- a/develop/proc/c_dbcsr_get_block_notrans_p_d.html +++ b/develop/proc/c_dbcsr_get_block_notrans_p_d.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_get_block_notrans_p_s.html b/develop/proc/c_dbcsr_get_block_notrans_p_s.html index 9536271eeca..f73da2e85ed 100644 --- a/develop/proc/c_dbcsr_get_block_notrans_p_s.html +++ b/develop/proc/c_dbcsr_get_block_notrans_p_s.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_get_block_notrans_p_z.html b/develop/proc/c_dbcsr_get_block_notrans_p_z.html index 84828066679..de237bd6545 100644 --- a/develop/proc/c_dbcsr_get_block_notrans_p_z.html +++ b/develop/proc/c_dbcsr_get_block_notrans_p_z.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_get_block_p_c.html b/develop/proc/c_dbcsr_get_block_p_c.html index 0018e99fb47..8c735f5b1a0 100644 --- a/develop/proc/c_dbcsr_get_block_p_c.html +++ b/develop/proc/c_dbcsr_get_block_p_c.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_get_block_p_d.html b/develop/proc/c_dbcsr_get_block_p_d.html index 876e22ff030..8ea6b9cbf79 100644 --- a/develop/proc/c_dbcsr_get_block_p_d.html +++ b/develop/proc/c_dbcsr_get_block_p_d.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_get_block_p_s.html b/develop/proc/c_dbcsr_get_block_p_s.html index 6ec3f6558cf..d3c9d805291 100644 --- a/develop/proc/c_dbcsr_get_block_p_s.html +++ b/develop/proc/c_dbcsr_get_block_p_s.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_get_block_p_z.html b/develop/proc/c_dbcsr_get_block_p_z.html index 0e8d4af4769..45b9792c92e 100644 --- a/develop/proc/c_dbcsr_get_block_p_z.html +++ b/develop/proc/c_dbcsr_get_block_p_z.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_get_col_blk_offset.html b/develop/proc/c_dbcsr_get_col_blk_offset.html index a0cbbe2d309..3a4b5657856 100644 --- a/develop/proc/c_dbcsr_get_col_blk_offset.html +++ b/develop/proc/c_dbcsr_get_col_blk_offset.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_get_col_blk_size.html b/develop/proc/c_dbcsr_get_col_blk_size.html index a0ca608f52d..fdc9b9b7f31 100644 --- a/develop/proc/c_dbcsr_get_col_blk_size.html +++ b/develop/proc/c_dbcsr_get_col_blk_size.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_get_data_c.html b/develop/proc/c_dbcsr_get_data_c.html index 95f0b26e3c9..a0f03ccd3de 100644 --- a/develop/proc/c_dbcsr_get_data_c.html +++ b/develop/proc/c_dbcsr_get_data_c.html @@ -152,7 +152,7 @@

    Arguments

    @@ -167,7 +167,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_get_data_d.html b/develop/proc/c_dbcsr_get_data_d.html index 036e38f4a30..6d3f9f86b2a 100644 --- a/develop/proc/c_dbcsr_get_data_d.html +++ b/develop/proc/c_dbcsr_get_data_d.html @@ -152,7 +152,7 @@

    Arguments

    @@ -167,7 +167,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_get_data_s.html b/develop/proc/c_dbcsr_get_data_s.html index d2c46740d5f..92d71df1ffb 100644 --- a/develop/proc/c_dbcsr_get_data_s.html +++ b/develop/proc/c_dbcsr_get_data_s.html @@ -152,7 +152,7 @@

    Arguments

    @@ -167,7 +167,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_get_data_size.html b/develop/proc/c_dbcsr_get_data_size.html index 6c17ee746df..5aa08b86d1f 100644 --- a/develop/proc/c_dbcsr_get_data_size.html +++ b/develop/proc/c_dbcsr_get_data_size.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_get_data_type.html b/develop/proc/c_dbcsr_get_data_type.html index dd8063063f7..68c2c574331 100644 --- a/develop/proc/c_dbcsr_get_data_type.html +++ b/develop/proc/c_dbcsr_get_data_type.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_get_data_z.html b/develop/proc/c_dbcsr_get_data_z.html index bd2f3ddceca..41c0bd06da7 100644 --- a/develop/proc/c_dbcsr_get_data_z.html +++ b/develop/proc/c_dbcsr_get_data_z.html @@ -152,7 +152,7 @@

    Arguments

    @@ -167,7 +167,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_get_diag_c.html b/develop/proc/c_dbcsr_get_diag_c.html index dc5513a516b..eb19f88aaa1 100644 --- a/develop/proc/c_dbcsr_get_diag_c.html +++ b/develop/proc/c_dbcsr_get_diag_c.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_get_diag_d.html b/develop/proc/c_dbcsr_get_diag_d.html index 570aecc45a7..efef4e260fb 100644 --- a/develop/proc/c_dbcsr_get_diag_d.html +++ b/develop/proc/c_dbcsr_get_diag_d.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_get_diag_s.html b/develop/proc/c_dbcsr_get_diag_s.html index 1822a566d10..1f4a50a3818 100644 --- a/develop/proc/c_dbcsr_get_diag_s.html +++ b/develop/proc/c_dbcsr_get_diag_s.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_get_diag_z.html b/develop/proc/c_dbcsr_get_diag_z.html index 98e3b922c5e..4e47bd0d5e9 100644 --- a/develop/proc/c_dbcsr_get_diag_z.html +++ b/develop/proc/c_dbcsr_get_diag_z.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_get_distribution.html b/develop/proc/c_dbcsr_get_distribution.html index d225e52575b..579b8928b00 100644 --- a/develop/proc/c_dbcsr_get_distribution.html +++ b/develop/proc/c_dbcsr_get_distribution.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_get_group.html b/develop/proc/c_dbcsr_get_group.html index 02b5a0fdab2..695049b0bf6 100644 --- a/develop/proc/c_dbcsr_get_group.html +++ b/develop/proc/c_dbcsr_get_group.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_get_info.html b/develop/proc/c_dbcsr_get_info.html index 9fa4b4979ea..68dcd636370 100644 --- a/develop/proc/c_dbcsr_get_info.html +++ b/develop/proc/c_dbcsr_get_info.html @@ -152,7 +152,7 @@

    Arguments

    @@ -227,7 +227,7 @@

    Arguments

    @@ -242,7 +242,7 @@

    Arguments

    @@ -317,7 +317,7 @@

    Arguments

    @@ -332,7 +332,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_get_local_cols.html b/develop/proc/c_dbcsr_get_local_cols.html index d95e1d1ad27..7672c39799d 100644 --- a/develop/proc/c_dbcsr_get_local_cols.html +++ b/develop/proc/c_dbcsr_get_local_cols.html @@ -152,7 +152,7 @@

    Arguments

    @@ -167,7 +167,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_get_local_rows.html b/develop/proc/c_dbcsr_get_local_rows.html index e0f54f85b94..05b627353c3 100644 --- a/develop/proc/c_dbcsr_get_local_rows.html +++ b/develop/proc/c_dbcsr_get_local_rows.html @@ -152,7 +152,7 @@

    Arguments

    @@ -167,7 +167,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_get_matrix_type.html b/develop/proc/c_dbcsr_get_matrix_type.html index ad3a8b414a1..4ff62109c25 100644 --- a/develop/proc/c_dbcsr_get_matrix_type.html +++ b/develop/proc/c_dbcsr_get_matrix_type.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_get_name.html b/develop/proc/c_dbcsr_get_name.html index 0eec070fb72..8996a44577f 100644 --- a/develop/proc/c_dbcsr_get_name.html +++ b/develop/proc/c_dbcsr_get_name.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_get_num_blocks.html b/develop/proc/c_dbcsr_get_num_blocks.html index cfaa5d9e5c5..86acff47be3 100644 --- a/develop/proc/c_dbcsr_get_num_blocks.html +++ b/develop/proc/c_dbcsr_get_num_blocks.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_get_occupation.html b/develop/proc/c_dbcsr_get_occupation.html index a2ff44231a0..60ffd2950eb 100644 --- a/develop/proc/c_dbcsr_get_occupation.html +++ b/develop/proc/c_dbcsr_get_occupation.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_get_proc_col_dist.html b/develop/proc/c_dbcsr_get_proc_col_dist.html index 0f405854b18..c392e668c31 100644 --- a/develop/proc/c_dbcsr_get_proc_col_dist.html +++ b/develop/proc/c_dbcsr_get_proc_col_dist.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_get_proc_row_dist.html b/develop/proc/c_dbcsr_get_proc_row_dist.html index 6cc9d2760d2..df3a75bc80e 100644 --- a/develop/proc/c_dbcsr_get_proc_row_dist.html +++ b/develop/proc/c_dbcsr_get_proc_row_dist.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_get_row_blk_offset.html b/develop/proc/c_dbcsr_get_row_blk_offset.html index 7a65acc7488..ab70007a47d 100644 --- a/develop/proc/c_dbcsr_get_row_blk_offset.html +++ b/develop/proc/c_dbcsr_get_row_blk_offset.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_get_row_blk_size.html b/develop/proc/c_dbcsr_get_row_blk_size.html index 324cdbdb85c..1c390fb9b57 100644 --- a/develop/proc/c_dbcsr_get_row_blk_size.html +++ b/develop/proc/c_dbcsr_get_row_blk_size.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_get_stored_coordinates.html b/develop/proc/c_dbcsr_get_stored_coordinates.html index 517c593bfec..35dfd00daf2 100644 --- a/develop/proc/c_dbcsr_get_stored_coordinates.html +++ b/develop/proc/c_dbcsr_get_stored_coordinates.html @@ -152,7 +152,7 @@

    Arguments

    @@ -167,7 +167,7 @@

    Arguments

    @@ -182,7 +182,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_has_symmetry.html b/develop/proc/c_dbcsr_has_symmetry.html index b0d4e7e8362..6231f85c218 100644 --- a/develop/proc/c_dbcsr_has_symmetry.html +++ b/develop/proc/c_dbcsr_has_symmetry.html @@ -152,7 +152,7 @@

    Arguments

    @@ -170,7 +170,7 @@

    Arguments

    Return Value - + logical(kind=c_bool)

    diff --git a/develop/proc/c_dbcsr_init_lib.html b/develop/proc/c_dbcsr_init_lib.html index 8836c1aca5a..7fab50fdf9b 100644 --- a/develop/proc/c_dbcsr_init_lib.html +++ b/develop/proc/c_dbcsr_init_lib.html @@ -167,7 +167,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_init_random.html b/develop/proc/c_dbcsr_init_random.html index 6f5a72bfc66..dbd6c1fbff5 100644 --- a/develop/proc/c_dbcsr_init_random.html +++ b/develop/proc/c_dbcsr_init_random.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_iterator_next_block_index.html b/develop/proc/c_dbcsr_iterator_next_block_index.html index e0f623a08e0..c89c9c714f9 100644 --- a/develop/proc/c_dbcsr_iterator_next_block_index.html +++ b/develop/proc/c_dbcsr_iterator_next_block_index.html @@ -212,7 +212,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_iterator_start.html b/develop/proc/c_dbcsr_iterator_start.html index 54001262587..eefa9ffc7d7 100644 --- a/develop/proc/c_dbcsr_iterator_start.html +++ b/develop/proc/c_dbcsr_iterator_start.html @@ -167,7 +167,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_maxabs.html b/develop/proc/c_dbcsr_maxabs.html index 083fa8580dc..09649c67abb 100644 --- a/develop/proc/c_dbcsr_maxabs.html +++ b/develop/proc/c_dbcsr_maxabs.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_nblkcols_local.html b/develop/proc/c_dbcsr_nblkcols_local.html index e24137eb244..2e9bb0b9e46 100644 --- a/develop/proc/c_dbcsr_nblkcols_local.html +++ b/develop/proc/c_dbcsr_nblkcols_local.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_nblkcols_total.html b/develop/proc/c_dbcsr_nblkcols_total.html index 88fe732f075..f438d987da8 100644 --- a/develop/proc/c_dbcsr_nblkcols_total.html +++ b/develop/proc/c_dbcsr_nblkcols_total.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_nblkrows_local.html b/develop/proc/c_dbcsr_nblkrows_local.html index 9e1fda99595..9e492c82a99 100644 --- a/develop/proc/c_dbcsr_nblkrows_local.html +++ b/develop/proc/c_dbcsr_nblkrows_local.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_nblkrows_total.html b/develop/proc/c_dbcsr_nblkrows_total.html index 8aecc946138..bcb6001d4c9 100644 --- a/develop/proc/c_dbcsr_nblkrows_total.html +++ b/develop/proc/c_dbcsr_nblkrows_total.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_nfullcols_total.html b/develop/proc/c_dbcsr_nfullcols_total.html index 1ca765702bf..a6133e6b35a 100644 --- a/develop/proc/c_dbcsr_nfullcols_total.html +++ b/develop/proc/c_dbcsr_nfullcols_total.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_nfullrows_total.html b/develop/proc/c_dbcsr_nfullrows_total.html index 8e446735aac..4ba1805b908 100644 --- a/develop/proc/c_dbcsr_nfullrows_total.html +++ b/develop/proc/c_dbcsr_nfullrows_total.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_norm_scalar.html b/develop/proc/c_dbcsr_norm_scalar.html index af083468963..3ebdc2bdda6 100644 --- a/develop/proc/c_dbcsr_norm_scalar.html +++ b/develop/proc/c_dbcsr_norm_scalar.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_print.html b/develop/proc/c_dbcsr_print.html index d4ed9d9b04a..cbe7ef3b870 100644 --- a/develop/proc/c_dbcsr_print.html +++ b/develop/proc/c_dbcsr_print.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_print_block_sum.html b/develop/proc/c_dbcsr_print_block_sum.html index 529f0430809..ae7b9f3f44e 100644 --- a/develop/proc/c_dbcsr_print_block_sum.html +++ b/develop/proc/c_dbcsr_print_block_sum.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_put_block2d_c.html b/develop/proc/c_dbcsr_put_block2d_c.html index 2c30af079e0..a89e6e09812 100644 --- a/develop/proc/c_dbcsr_put_block2d_c.html +++ b/develop/proc/c_dbcsr_put_block2d_c.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_put_block2d_d.html b/develop/proc/c_dbcsr_put_block2d_d.html index b895730fbd3..62e15e4afdc 100644 --- a/develop/proc/c_dbcsr_put_block2d_d.html +++ b/develop/proc/c_dbcsr_put_block2d_d.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_put_block2d_s.html b/develop/proc/c_dbcsr_put_block2d_s.html index 6baba4dfa12..2665be2b284 100644 --- a/develop/proc/c_dbcsr_put_block2d_s.html +++ b/develop/proc/c_dbcsr_put_block2d_s.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_put_block2d_z.html b/develop/proc/c_dbcsr_put_block2d_z.html index 6e80a3fb477..f1873288ec9 100644 --- a/develop/proc/c_dbcsr_put_block2d_z.html +++ b/develop/proc/c_dbcsr_put_block2d_z.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_release.html b/develop/proc/c_dbcsr_release.html index d808c3324b5..5ba018ba93f 100644 --- a/develop/proc/c_dbcsr_release.html +++ b/develop/proc/c_dbcsr_release.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_replicate_all.html b/develop/proc/c_dbcsr_replicate_all.html index b468f56b9db..de0abc22928 100644 --- a/develop/proc/c_dbcsr_replicate_all.html +++ b/develop/proc/c_dbcsr_replicate_all.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_reserve_all_blocks.html b/develop/proc/c_dbcsr_reserve_all_blocks.html index 270c5dc6211..944a70accb1 100644 --- a/develop/proc/c_dbcsr_reserve_all_blocks.html +++ b/develop/proc/c_dbcsr_reserve_all_blocks.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_reserve_block2d_c.html b/develop/proc/c_dbcsr_reserve_block2d_c.html index 92578c3b7f7..c50ee78e146 100644 --- a/develop/proc/c_dbcsr_reserve_block2d_c.html +++ b/develop/proc/c_dbcsr_reserve_block2d_c.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_reserve_block2d_d.html b/develop/proc/c_dbcsr_reserve_block2d_d.html index c8a93b91889..b8280a90f81 100644 --- a/develop/proc/c_dbcsr_reserve_block2d_d.html +++ b/develop/proc/c_dbcsr_reserve_block2d_d.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_reserve_block2d_s.html b/develop/proc/c_dbcsr_reserve_block2d_s.html index 74d70dc8523..1816b086971 100644 --- a/develop/proc/c_dbcsr_reserve_block2d_s.html +++ b/develop/proc/c_dbcsr_reserve_block2d_s.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_reserve_block2d_z.html b/develop/proc/c_dbcsr_reserve_block2d_z.html index 4efc000c92e..385a91cb039 100644 --- a/develop/proc/c_dbcsr_reserve_block2d_z.html +++ b/develop/proc/c_dbcsr_reserve_block2d_z.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_reserve_blocks.html b/develop/proc/c_dbcsr_reserve_blocks.html index 6b943d233f1..5fe63104d96 100644 --- a/develop/proc/c_dbcsr_reserve_blocks.html +++ b/develop/proc/c_dbcsr_reserve_blocks.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_reserve_diag_blocks.html b/develop/proc/c_dbcsr_reserve_diag_blocks.html index 2d78d27b00f..0904a7fe47a 100644 --- a/develop/proc/c_dbcsr_reserve_diag_blocks.html +++ b/develop/proc/c_dbcsr_reserve_diag_blocks.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_set_c.html b/develop/proc/c_dbcsr_set_c.html index be75a93b5de..c272c3335a4 100644 --- a/develop/proc/c_dbcsr_set_c.html +++ b/develop/proc/c_dbcsr_set_c.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_set_d.html b/develop/proc/c_dbcsr_set_d.html index 110f3201e26..72269c12a51 100644 --- a/develop/proc/c_dbcsr_set_d.html +++ b/develop/proc/c_dbcsr_set_d.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_set_diag_c.html b/develop/proc/c_dbcsr_set_diag_c.html index 6fecc4877b8..568ac148f68 100644 --- a/develop/proc/c_dbcsr_set_diag_c.html +++ b/develop/proc/c_dbcsr_set_diag_c.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_set_diag_d.html b/develop/proc/c_dbcsr_set_diag_d.html index 06bb185c193..4d1162d8ec8 100644 --- a/develop/proc/c_dbcsr_set_diag_d.html +++ b/develop/proc/c_dbcsr_set_diag_d.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_set_diag_s.html b/develop/proc/c_dbcsr_set_diag_s.html index 479d3ece192..b0b6f7bf3c0 100644 --- a/develop/proc/c_dbcsr_set_diag_s.html +++ b/develop/proc/c_dbcsr_set_diag_s.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_set_diag_z.html b/develop/proc/c_dbcsr_set_diag_z.html index 30815378991..22a2263694d 100644 --- a/develop/proc/c_dbcsr_set_diag_z.html +++ b/develop/proc/c_dbcsr_set_diag_z.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_set_s.html b/develop/proc/c_dbcsr_set_s.html index 9295ee063b9..b7a8a0aa67c 100644 --- a/develop/proc/c_dbcsr_set_s.html +++ b/develop/proc/c_dbcsr_set_s.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_set_z.html b/develop/proc/c_dbcsr_set_z.html index a3c3b242021..704031bebf1 100644 --- a/develop/proc/c_dbcsr_set_z.html +++ b/develop/proc/c_dbcsr_set_z.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_setname.html b/develop/proc/c_dbcsr_setname.html index e1d3eabd6b2..1153038d4ab 100644 --- a/develop/proc/c_dbcsr_setname.html +++ b/develop/proc/c_dbcsr_setname.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_sum_replicated.html b/develop/proc/c_dbcsr_sum_replicated.html index e151bb2cc41..2bd4898880a 100644 --- a/develop/proc/c_dbcsr_sum_replicated.html +++ b/develop/proc/c_dbcsr_sum_replicated.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_t_create_template.html b/develop/proc/c_dbcsr_t_create_template.html index b9469f890d2..dfd1caf470e 100644 --- a/develop/proc/c_dbcsr_t_create_template.html +++ b/develop/proc/c_dbcsr_t_create_template.html @@ -272,7 +272,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_t_get_data_c_dp.html b/develop/proc/c_dbcsr_t_get_data_c_dp.html index 23fbbcfeb36..ef3a7864676 100644 --- a/develop/proc/c_dbcsr_t_get_data_c_dp.html +++ b/develop/proc/c_dbcsr_t_get_data_c_dp.html @@ -167,7 +167,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_t_get_data_c_sp.html b/develop/proc/c_dbcsr_t_get_data_c_sp.html index c333053cc81..6bace141bda 100644 --- a/develop/proc/c_dbcsr_t_get_data_c_sp.html +++ b/develop/proc/c_dbcsr_t_get_data_c_sp.html @@ -167,7 +167,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_t_get_data_r_dp.html b/develop/proc/c_dbcsr_t_get_data_r_dp.html index 022b896a25c..778a4a920d3 100644 --- a/develop/proc/c_dbcsr_t_get_data_r_dp.html +++ b/develop/proc/c_dbcsr_t_get_data_r_dp.html @@ -167,7 +167,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_t_get_data_r_sp.html b/develop/proc/c_dbcsr_t_get_data_r_sp.html index 1b93dd29a87..1531afc5d35 100644 --- a/develop/proc/c_dbcsr_t_get_data_r_sp.html +++ b/develop/proc/c_dbcsr_t_get_data_r_sp.html @@ -167,7 +167,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_t_get_mapping_info.html b/develop/proc/c_dbcsr_t_get_mapping_info.html index 46e5ebe3934..6e7e785c3ee 100644 --- a/develop/proc/c_dbcsr_t_get_mapping_info.html +++ b/develop/proc/c_dbcsr_t_get_mapping_info.html @@ -214,7 +214,7 @@

    Arguments

    @@ -229,7 +229,7 @@

    Arguments

    @@ -244,7 +244,7 @@

    Arguments

    @@ -379,7 +379,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_t_nblks_local.html b/develop/proc/c_dbcsr_t_nblks_local.html index 8288f05667b..e6731ddaef2 100644 --- a/develop/proc/c_dbcsr_t_nblks_local.html +++ b/develop/proc/c_dbcsr_t_nblks_local.html @@ -167,7 +167,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_t_nblks_total.html b/develop/proc/c_dbcsr_t_nblks_total.html index 8dc037f32c0..57fce9e5b65 100644 --- a/develop/proc/c_dbcsr_t_nblks_total.html +++ b/develop/proc/c_dbcsr_t_nblks_total.html @@ -167,7 +167,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_t_pgrid_create_expert.html b/develop/proc/c_dbcsr_t_pgrid_create_expert.html index cd6138c2bab..cd16d42a1d9 100644 --- a/develop/proc/c_dbcsr_t_pgrid_create_expert.html +++ b/develop/proc/c_dbcsr_t_pgrid_create_expert.html @@ -287,7 +287,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_t_reserve_blocks_index.html b/develop/proc/c_dbcsr_t_reserve_blocks_index.html index 3060ca95f2f..156c0c969a4 100644 --- a/develop/proc/c_dbcsr_t_reserve_blocks_index.html +++ b/develop/proc/c_dbcsr_t_reserve_blocks_index.html @@ -167,7 +167,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_triu.html b/develop/proc/c_dbcsr_triu.html index 3793de6c84a..57d10490bfd 100644 --- a/develop/proc/c_dbcsr_triu.html +++ b/develop/proc/c_dbcsr_triu.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_dbcsr_valid_index.html b/develop/proc/c_dbcsr_valid_index.html index 318043e8ba6..f23c258215c 100644 --- a/develop/proc/c_dbcsr_valid_index.html +++ b/develop/proc/c_dbcsr_valid_index.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/c_f_string~2.html b/develop/proc/c_f_string~2.html index 4b664936008..7a04784d845 100644 --- a/develop/proc/c_f_string~2.html +++ b/develop/proc/c_f_string~2.html @@ -185,7 +185,7 @@

    Arguments

    diff --git a/develop/proc/calc_norms_c.html b/develop/proc/calc_norms_c.html index c4001319dcb..25e88b6a3f7 100644 --- a/develop/proc/calc_norms_c.html +++ b/develop/proc/calc_norms_c.html @@ -174,7 +174,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    diff --git a/develop/proc/calc_norms_d.html b/develop/proc/calc_norms_d.html index fe9cd5f42f3..00463dcfc3b 100644 --- a/develop/proc/calc_norms_d.html +++ b/develop/proc/calc_norms_d.html @@ -174,7 +174,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    diff --git a/develop/proc/calc_norms_s.html b/develop/proc/calc_norms_s.html index 496bcbd3f3a..0f1b295c40e 100644 --- a/develop/proc/calc_norms_s.html +++ b/develop/proc/calc_norms_s.html @@ -174,7 +174,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    diff --git a/develop/proc/calc_norms_z.html b/develop/proc/calc_norms_z.html index 5d9d8d89c11..b173301a93c 100644 --- a/develop/proc/calc_norms_z.html +++ b/develop/proc/calc_norms_z.html @@ -174,7 +174,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    diff --git a/develop/proc/calculate_norms.html b/develop/proc/calculate_norms.html index fc6366eb70f..c2e7ac9d825 100644 --- a/develop/proc/calculate_norms.html +++ b/develop/proc/calculate_norms.html @@ -160,7 +160,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    diff --git a/develop/proc/call_rec_sort_index.html b/develop/proc/call_rec_sort_index.html index 10b852dbbd3..5da545042d1 100644 --- a/develop/proc/call_rec_sort_index.html +++ b/develop/proc/call_rec_sort_index.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    diff --git a/develop/proc/can_quickly_finalize.html b/develop/proc/can_quickly_finalize.html index e447f983f7e..c05ec90d1da 100644 --- a/develop/proc/can_quickly_finalize.html +++ b/develop/proc/can_quickly_finalize.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/change_capacity_callstackentry.html b/develop/proc/change_capacity_callstackentry.html index 88f165ddf4c..953df09d071 100644 --- a/develop/proc/change_capacity_callstackentry.html +++ b/develop/proc/change_capacity_callstackentry.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/change_capacity_i4tuple_callstat.html b/develop/proc/change_capacity_i4tuple_callstat.html index 511094a95f7..06a0e678f01 100644 --- a/develop/proc/change_capacity_i4tuple_callstat.html +++ b/develop/proc/change_capacity_i4tuple_callstat.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/change_capacity_routinereport.html b/develop/proc/change_capacity_routinereport.html index f44f2bce8cb..17467666ddd 100644 --- a/develop/proc/change_capacity_routinereport.html +++ b/develop/proc/change_capacity_routinereport.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/change_capacity_routinestat.html b/develop/proc/change_capacity_routinestat.html index 55641a33869..e7aaba8f82c 100644 --- a/develop/proc/change_capacity_routinestat.html +++ b/develop/proc/change_capacity_routinestat.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/change_capacity_str_i4.html b/develop/proc/change_capacity_str_i4.html index 2bfe0799417..97baabf822c 100644 --- a/develop/proc/change_capacity_str_i4.html +++ b/develop/proc/change_capacity_str_i4.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/change_capacity_timerenv.html b/develop/proc/change_capacity_timerenv.html index 95b7aea4bd3..fe7622bf77f 100644 --- a/develop/proc/change_capacity_timerenv.html +++ b/develop/proc/change_capacity_timerenv.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/change_split.html b/develop/proc/change_split.html index f595b2c9902..4109dcf718b 100644 --- a/develop/proc/change_split.html +++ b/develop/proc/change_split.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -243,7 +243,7 @@

    Arguments

    @@ -258,7 +258,7 @@

    Arguments

    diff --git a/develop/proc/checker_square_proc.html b/develop/proc/checker_square_proc.html index aa7a4e24c75..5c9e7a505e7 100644 --- a/develop/proc/checker_square_proc.html +++ b/develop/proc/checker_square_proc.html @@ -169,7 +169,7 @@

    Arguments

    @@ -185,7 +185,7 @@

    Arguments

    @@ -201,7 +201,7 @@

    Arguments

    @@ -216,7 +216,7 @@

    Arguments

    @@ -232,7 +232,7 @@

    Arguments

    diff --git a/develop/proc/checker_tr.html b/develop/proc/checker_tr.html index 9ffd01edf71..d187aa89d76 100644 --- a/develop/proc/checker_tr.html +++ b/develop/proc/checker_tr.html @@ -159,7 +159,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    Return Value - + logical

    diff --git a/develop/proc/collect_reports_from_ranks.html b/develop/proc/collect_reports_from_ranks.html index 0655e13b87e..ca4c7198af7 100644 --- a/develop/proc/collect_reports_from_ranks.html +++ b/develop/proc/collect_reports_from_ranks.html @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/combine_pgrid_index.html b/develop/proc/combine_pgrid_index.html index ac1adf25477..8625734d8ac 100644 --- a/develop/proc/combine_pgrid_index.html +++ b/develop/proc/combine_pgrid_index.html @@ -169,7 +169,7 @@

    Arguments

    diff --git a/develop/proc/combine_tensor_index.html b/develop/proc/combine_tensor_index.html index fc191d3b812..0d2431f69e1 100644 --- a/develop/proc/combine_tensor_index.html +++ b/develop/proc/combine_tensor_index.html @@ -169,7 +169,7 @@

    Arguments

    diff --git a/develop/proc/compat_map.html b/develop/proc/compat_map.html index e0f630f505d..78d71632879 100644 --- a/develop/proc/compat_map.html +++ b/develop/proc/compat_map.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/proc/compress.html b/develop/proc/compress.html index b67e7ed3882..727007a37ef 100644 --- a/develop/proc/compress.html +++ b/develop/proc/compress.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    diff --git a/develop/proc/compx_to_dbcsr_scalar.html b/develop/proc/compx_to_dbcsr_scalar.html index c1221356db7..cc9c8a66b6d 100644 --- a/develop/proc/compx_to_dbcsr_scalar.html +++ b/develop/proc/compx_to_dbcsr_scalar.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    Return Value - + type(dbcsr_scalar_type)

    diff --git a/develop/proc/conf_par_env_value.html b/develop/proc/conf_par_env_value.html index b66998fb410..fcc80974c87 100644 --- a/develop/proc/conf_par_env_value.html +++ b/develop/proc/conf_par_env_value.html @@ -160,7 +160,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    Return Value - + logical

    diff --git a/develop/proc/convert_brd_to_csr.html b/develop/proc/convert_brd_to_csr.html index 15ea4d667e7..2ff312e8176 100644 --- a/develop/proc/convert_brd_to_csr.html +++ b/develop/proc/convert_brd_to_csr.html @@ -175,7 +175,7 @@

    Arguments

    diff --git a/develop/proc/convert_csr_to_brd.html b/develop/proc/convert_csr_to_brd.html index 3ecf977f3a6..a3a401a88c1 100644 --- a/develop/proc/convert_csr_to_brd.html +++ b/develop/proc/convert_csr_to_brd.html @@ -175,7 +175,7 @@

    Arguments

    diff --git a/develop/proc/convert_csr_to_dbcsr.html b/develop/proc/convert_csr_to_dbcsr.html index c6995571092..17b80fd2dda 100644 --- a/develop/proc/convert_csr_to_dbcsr.html +++ b/develop/proc/convert_csr_to_dbcsr.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/convert_dbcsr_to_csr.html b/develop/proc/convert_dbcsr_to_csr.html index 67486c3e392..8bdff2037d8 100644 --- a/develop/proc/convert_dbcsr_to_csr.html +++ b/develop/proc/convert_dbcsr_to_csr.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/convert_offsets_to_sizes.html b/develop/proc/convert_offsets_to_sizes.html index c5d91465ee1..36ef8abe617 100644 --- a/develop/proc/convert_offsets_to_sizes.html +++ b/develop/proc/convert_offsets_to_sizes.html @@ -176,7 +176,7 @@

    Arguments

    diff --git a/develop/proc/convert_sizes_to_offsets.html b/develop/proc/convert_sizes_to_offsets.html index 89bb1b1c17f..48c9d7641cb 100644 --- a/develop/proc/convert_sizes_to_offsets.html +++ b/develop/proc/convert_sizes_to_offsets.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/convert_to_new_pgrid.html b/develop/proc/convert_to_new_pgrid.html index 111951bd328..338ed7d5aac 100644 --- a/develop/proc/convert_to_new_pgrid.html +++ b/develop/proc/convert_to_new_pgrid.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -214,7 +214,7 @@

    Arguments

    diff --git a/develop/proc/count_mpi_statistics.html b/develop/proc/count_mpi_statistics.html index 007236d36a5..1adf667c8ec 100644 --- a/develop/proc/count_mpi_statistics.html +++ b/develop/proc/count_mpi_statistics.html @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/create_array_list.html b/develop/proc/create_array_list.html index e3ea1bc5975..b0daed23ca2 100644 --- a/develop/proc/create_array_list.html +++ b/develop/proc/create_array_list.html @@ -154,7 +154,7 @@

    Arguments

    @@ -169,7 +169,7 @@

    Arguments

    diff --git a/develop/proc/create_batches.html b/develop/proc/create_batches.html index de764b058b7..a52b5917a26 100644 --- a/develop/proc/create_batches.html +++ b/develop/proc/create_batches.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/create_block_data_c_dp.html b/develop/proc/create_block_data_c_dp.html index 24b2889462f..e948accd485 100644 --- a/develop/proc/create_block_data_c_dp.html +++ b/develop/proc/create_block_data_c_dp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    diff --git a/develop/proc/create_block_data_c_sp.html b/develop/proc/create_block_data_c_sp.html index 2eb128bf7e2..cd3f23565a4 100644 --- a/develop/proc/create_block_data_c_sp.html +++ b/develop/proc/create_block_data_c_sp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    diff --git a/develop/proc/create_block_data_r_dp.html b/develop/proc/create_block_data_r_dp.html index d150b3f5262..f90201bd363 100644 --- a/develop/proc/create_block_data_r_dp.html +++ b/develop/proc/create_block_data_r_dp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    diff --git a/develop/proc/create_block_data_r_sp.html b/develop/proc/create_block_data_r_sp.html index a7c3f6080c7..0b71818b58f 100644 --- a/develop/proc/create_block_data_r_sp.html +++ b/develop/proc/create_block_data_r_sp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    diff --git a/develop/proc/create_block_nodata.html b/develop/proc/create_block_nodata.html index 900592994b0..fb28068b323 100644 --- a/develop/proc/create_block_nodata.html +++ b/develop/proc/create_block_nodata.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    diff --git a/develop/proc/create_block_nodata_c_dp.html b/develop/proc/create_block_nodata_c_dp.html index 5db57bc3bd5..52973659731 100644 --- a/develop/proc/create_block_nodata_c_dp.html +++ b/develop/proc/create_block_nodata_c_dp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    diff --git a/develop/proc/create_block_nodata_c_sp.html b/develop/proc/create_block_nodata_c_sp.html index b5464e1e700..eccb04af6cf 100644 --- a/develop/proc/create_block_nodata_c_sp.html +++ b/develop/proc/create_block_nodata_c_sp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    diff --git a/develop/proc/create_block_nodata_r_dp.html b/develop/proc/create_block_nodata_r_dp.html index 2a8f99da5fb..4dbf8ed3c2c 100644 --- a/develop/proc/create_block_nodata_r_dp.html +++ b/develop/proc/create_block_nodata_r_dp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    diff --git a/develop/proc/create_block_nodata_r_sp.html b/develop/proc/create_block_nodata_r_sp.html index 44357c7cd8b..f8f9f41757b 100644 --- a/develop/proc/create_block_nodata_r_sp.html +++ b/develop/proc/create_block_nodata_r_sp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    diff --git a/develop/proc/create_block_norms_matrix.html b/develop/proc/create_block_norms_matrix.html index 275a98c1411..8b06675638b 100644 --- a/develop/proc/create_block_norms_matrix.html +++ b/develop/proc/create_block_norms_matrix.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    diff --git a/develop/proc/create_nd_to_2d_mapping.html b/develop/proc/create_nd_to_2d_mapping.html index 74eef120358..500cb8d8ce3 100644 --- a/develop/proc/create_nd_to_2d_mapping.html +++ b/develop/proc/create_nd_to_2d_mapping.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    @@ -225,7 +225,7 @@

    Arguments

    @@ -240,7 +240,7 @@

    Arguments

    diff --git a/develop/proc/csr_assert_consistency_with_dbcsr.html b/develop/proc/csr_assert_consistency_with_dbcsr.html index 66a7951f206..92aab6c1e8f 100644 --- a/develop/proc/csr_assert_consistency_with_dbcsr.html +++ b/develop/proc/csr_assert_consistency_with_dbcsr.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    diff --git a/develop/proc/csr_conversion_test.html b/develop/proc/csr_conversion_test.html index 781330cf3d4..814b54b011b 100644 --- a/develop/proc/csr_conversion_test.html +++ b/develop/proc/csr_conversion_test.html @@ -162,7 +162,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    @@ -207,7 +207,7 @@

    Arguments

    diff --git a/develop/proc/csr_create_from_brd.html b/develop/proc/csr_create_from_brd.html index 2b762579764..7b8f7094075 100644 --- a/develop/proc/csr_create_from_brd.html +++ b/develop/proc/csr_create_from_brd.html @@ -175,7 +175,7 @@

    Arguments

    diff --git a/develop/proc/csr_create_from_dbcsr.html b/develop/proc/csr_create_from_dbcsr.html index 7c72b675b3d..92fe7dc851b 100644 --- a/develop/proc/csr_create_from_dbcsr.html +++ b/develop/proc/csr_create_from_dbcsr.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    @@ -207,7 +207,7 @@

    Arguments

    @@ -223,7 +223,7 @@

    Arguments

    diff --git a/develop/proc/csr_create_new.html b/develop/proc/csr_create_new.html index f86a649aebe..3b3fa01a479 100644 --- a/develop/proc/csr_create_new.html +++ b/develop/proc/csr_create_new.html @@ -74,20 +74,20 @@

    csr_create_new
  • 45 statements + title=" 0.0% of total for procedures.">11 statements
  • - Source File + Source File
  • @@ -139,11 +139,10 @@

    Contents

    -

    public subroutine csr_create_new(csr_mat, nrows_total, ncols_total, nze_total, nze_local, nrows_local, mp_group, data_type) +

    private subroutine csr_create_new(csr_mat, nrows_total, ncols_total, nze_total, nze_local, nrows_local, mp_group, data_type)

    -

    Create a new CSR matrix and allocate all internal data (excluding dbcsr_mapping)

    Arguments

    @@ -159,8 +158,8 @@

    Arguments

    @@ -184,13 +183,12 @@

    Arguments

    @@ -200,13 +198,12 @@

    Arguments

    @@ -216,12 +213,12 @@

    Arguments

    @@ -231,13 +228,12 @@

    Arguments

    @@ -247,14 +243,13 @@

    Arguments

    @@ -278,7 +273,7 @@

    Arguments

    @@ -300,74 +295,19 @@

    Arguments

    Source Code

       SUBROUTINE csr_create_new(csr_mat, nrows_total, ncols_total, nze_total, &
                                  nze_local, nrows_local, mp_group, data_type)
    -      !! Create a new CSR matrix and allocate all internal data (excluding dbcsr_mapping)
    -
    -      TYPE(csr_type), INTENT(OUT)                        :: csr_mat
    -         !! CSR matrix to return
    +      TYPE(dbcsr_csr_type), INTENT(OUT)                  :: csr_mat
           INTEGER, INTENT(IN)                                :: nrows_total, ncols_total
    -         !! total number of rows
    -         !! total number of columns
           INTEGER(KIND=int_8)                                :: nze_total
    -         !! total number of non-zero elements
           INTEGER, INTENT(IN)                                :: nze_local, nrows_local
    -         !! local number of non-zero elements
    -         !! local number of rows
    -      TYPE(mp_comm_type), INTENT(IN)                     :: mp_group
    +      INTEGER, INTENT(IN)                                :: mp_group
           INTEGER, INTENT(IN), OPTIONAL                      :: data_type
    -         !! data type of the CSR matrix (default real double prec.)
    -
    -      CHARACTER(LEN=*), PARAMETER :: routineN = 'csr_create_new'
    -      INTEGER                                            :: handle
    -
    -      CALL timeset(routineN, handle)
    -
    -      IF (nrows_total .LT. nrows_local) &
    -         DBCSR_ABORT("local number of rows must not exceed total number of rows")
    -
    -      IF (nze_total .LT. nze_local) CALL dbcsr_abort(__LOCATION__, "local number of non-zero "// &
    -                                                     "elements must not exceed total number of non-zero elements")
    -
    -      IF (INT(nrows_total, kind=int_8)*INT(ncols_total, kind=int_8) .LT. nze_total) &
    -         DBCSR_ABORT("Total number of non-zero elements must not exceed total matrix size")
    -
    -      IF (INT(nrows_local, kind=int_8)*INT(ncols_total, kind=int_8) .LT. nze_local) &
    -         DBCSR_ABORT("Local number of non-zero elements must not exceed local matrix size")
    -
    -      csr_mat%ncols_total = ncols_total
    -      csr_mat%nrows_total = nrows_total
    -      csr_mat%nze_total = nze_total
    -      csr_mat%nze_local = nze_local
    -      ALLOCATE (csr_mat%colind_local(nze_local))
    -      csr_mat%nrows_local = nrows_local
    -      ALLOCATE (csr_mat%rowptr_local(nrows_local + 1))
    -      ALLOCATE (csr_mat%nzerow_local(nrows_local))
    -
    -      IF (PRESENT(data_type)) THEN
    -         csr_mat%nzval_local%data_type = data_type
    -      ELSE
    -         csr_mat%nzval_local%data_type = dbcsr_type_real_default
    -      END IF
    -
    -      SELECT CASE (csr_mat%nzval_local%data_type)
    -      CASE (dbcsr_type_real_4)
    -         ALLOCATE (csr_mat%nzval_local%r_sp(nze_local))
    -      CASE (dbcsr_type_real_8)
    -         ALLOCATE (csr_mat%nzval_local%r_dp(nze_local))
    -      CASE (dbcsr_type_complex_4)
    -         ALLOCATE (csr_mat%nzval_local%c_sp(nze_local))
    -      CASE (dbcsr_type_complex_8)
    -         ALLOCATE (csr_mat%nzval_local%c_dp(nze_local))
    -      CASE DEFAULT
    -         DBCSR_ABORT("Invalid matrix type")
    -      END SELECT
    -
    -      csr_mat%mp_group = mp_group
    -
    -      csr_mat%valid = .TRUE.
    -      csr_mat%has_mapping = .FALSE.
    -      csr_mat%has_indices = .FALSE.
    -
    -      CALL timestop(handle)
    +
    +      TYPE(mp_comm_type)                                 :: my_mp_group
    +
    +      CALL my_mp_group%set_handle(mp_group)
    +
    +      CALL csr_create_new_prv(csr_mat, nrows_total, ncols_total, nze_total, &
    +                              nze_local, nrows_local, my_mp_group, data_type)
     
        END SUBROUTINE csr_create_new
     
    diff --git a/develop/proc/csr_create_new~2.html b/develop/proc/csr_create_new~2.html index da6cacd4175..38547a718b5 100644 --- a/develop/proc/csr_create_new~2.html +++ b/develop/proc/csr_create_new~2.html @@ -74,20 +74,20 @@

    csr_create_new
  • 11 statements + title=" 0.1% of total for procedures.">45 statements
  • - Source File + Source File
  • @@ -139,10 +139,11 @@

    Contents

    -

    private subroutine csr_create_new(csr_mat, nrows_total, ncols_total, nze_total, nze_local, nrows_local, mp_group, data_type) +

    public subroutine csr_create_new(csr_mat, nrows_total, ncols_total, nze_total, nze_local, nrows_local, mp_group, data_type)

    +

    Create a new CSR matrix and allocate all internal data (excluding dbcsr_mapping)

    Arguments

    @@ -158,8 +159,8 @@

    Arguments

    @@ -183,7 +184,8 @@

    Arguments

    @@ -198,12 +200,13 @@

    Arguments

    @@ -213,12 +216,12 @@

    Arguments

    @@ -228,7 +231,8 @@

    Arguments

    @@ -243,13 +247,14 @@

    Arguments

    @@ -273,7 +278,7 @@

    Arguments

    @@ -295,19 +300,74 @@

    Arguments

    Source Code

       SUBROUTINE csr_create_new(csr_mat, nrows_total, ncols_total, nze_total, &
                                  nze_local, nrows_local, mp_group, data_type)
    -      TYPE(dbcsr_csr_type), INTENT(OUT)                  :: csr_mat
    +      !! Create a new CSR matrix and allocate all internal data (excluding dbcsr_mapping)
    +
    +      TYPE(csr_type), INTENT(OUT)                        :: csr_mat
    +         !! CSR matrix to return
           INTEGER, INTENT(IN)                                :: nrows_total, ncols_total
    +         !! total number of rows
    +         !! total number of columns
           INTEGER(KIND=int_8)                                :: nze_total
    +         !! total number of non-zero elements
           INTEGER, INTENT(IN)                                :: nze_local, nrows_local
    -      INTEGER, INTENT(IN)                                :: mp_group
    +         !! local number of non-zero elements
    +         !! local number of rows
    +      TYPE(mp_comm_type), INTENT(IN)                     :: mp_group
           INTEGER, INTENT(IN), OPTIONAL                      :: data_type
    -
    -      TYPE(mp_comm_type)                                 :: my_mp_group
    -
    -      CALL my_mp_group%set_handle(mp_group)
    -
    -      CALL csr_create_new_prv(csr_mat, nrows_total, ncols_total, nze_total, &
    -                              nze_local, nrows_local, my_mp_group, data_type)
    +         !! data type of the CSR matrix (default real double prec.)
    +
    +      CHARACTER(LEN=*), PARAMETER :: routineN = 'csr_create_new'
    +      INTEGER                                            :: handle
    +
    +      CALL timeset(routineN, handle)
    +
    +      IF (nrows_total .LT. nrows_local) &
    +         DBCSR_ABORT("local number of rows must not exceed total number of rows")
    +
    +      IF (nze_total .LT. nze_local) CALL dbcsr_abort(__LOCATION__, "local number of non-zero "// &
    +                                                     "elements must not exceed total number of non-zero elements")
    +
    +      IF (INT(nrows_total, kind=int_8)*INT(ncols_total, kind=int_8) .LT. nze_total) &
    +         DBCSR_ABORT("Total number of non-zero elements must not exceed total matrix size")
    +
    +      IF (INT(nrows_local, kind=int_8)*INT(ncols_total, kind=int_8) .LT. nze_local) &
    +         DBCSR_ABORT("Local number of non-zero elements must not exceed local matrix size")
    +
    +      csr_mat%ncols_total = ncols_total
    +      csr_mat%nrows_total = nrows_total
    +      csr_mat%nze_total = nze_total
    +      csr_mat%nze_local = nze_local
    +      ALLOCATE (csr_mat%colind_local(nze_local))
    +      csr_mat%nrows_local = nrows_local
    +      ALLOCATE (csr_mat%rowptr_local(nrows_local + 1))
    +      ALLOCATE (csr_mat%nzerow_local(nrows_local))
    +
    +      IF (PRESENT(data_type)) THEN
    +         csr_mat%nzval_local%data_type = data_type
    +      ELSE
    +         csr_mat%nzval_local%data_type = dbcsr_type_real_default
    +      END IF
    +
    +      SELECT CASE (csr_mat%nzval_local%data_type)
    +      CASE (dbcsr_type_real_4)
    +         ALLOCATE (csr_mat%nzval_local%r_sp(nze_local))
    +      CASE (dbcsr_type_real_8)
    +         ALLOCATE (csr_mat%nzval_local%r_dp(nze_local))
    +      CASE (dbcsr_type_complex_4)
    +         ALLOCATE (csr_mat%nzval_local%c_sp(nze_local))
    +      CASE (dbcsr_type_complex_8)
    +         ALLOCATE (csr_mat%nzval_local%c_dp(nze_local))
    +      CASE DEFAULT
    +         DBCSR_ABORT("Invalid matrix type")
    +      END SELECT
    +
    +      csr_mat%mp_group = mp_group
    +
    +      csr_mat%valid = .TRUE.
    +      csr_mat%has_mapping = .FALSE.
    +      csr_mat%has_indices = .FALSE.
    +
    +      CALL timestop(handle)
     
        END SUBROUTINE csr_create_new
     
    diff --git a/develop/proc/csr_create_nzerow.html b/develop/proc/csr_create_nzerow.html index 60194ae4845..c173bc5cc9c 100644 --- a/develop/proc/csr_create_nzerow.html +++ b/develop/proc/csr_create_nzerow.html @@ -160,7 +160,7 @@

    Arguments

    diff --git a/develop/proc/csr_create_template.html b/develop/proc/csr_create_template.html index b437c1a9b62..9fa24d94fcf 100644 --- a/develop/proc/csr_create_template.html +++ b/develop/proc/csr_create_template.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    diff --git a/develop/proc/csr_destroy.html b/develop/proc/csr_destroy.html index 8608636f6d7..598e1905746 100644 --- a/develop/proc/csr_destroy.html +++ b/develop/proc/csr_destroy.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/csr_print_sparsity.html b/develop/proc/csr_print_sparsity.html index 4f3e073c188..4d7f1d7bb62 100644 --- a/develop/proc/csr_print_sparsity.html +++ b/develop/proc/csr_print_sparsity.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/csr_write.html b/develop/proc/csr_write.html index cd768cfec8d..38760d9b44d 100644 --- a/develop/proc/csr_write.html +++ b/develop/proc/csr_write.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    diff --git a/develop/proc/cuda_nvtx_range_push.html b/develop/proc/cuda_nvtx_range_push.html index c87e21d948b..e768ea2c639 100644 --- a/develop/proc/cuda_nvtx_range_push.html +++ b/develop/proc/cuda_nvtx_range_push.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/cyclic_dist.html b/develop/proc/cyclic_dist.html index 0e2e378fe94..4c63cdc785c 100644 --- a/develop/proc/cyclic_dist.html +++ b/develop/proc/cyclic_dist.html @@ -154,7 +154,7 @@

    Arguments

    diff --git a/develop/proc/cyclic_rowcols.html b/develop/proc/cyclic_rowcols.html index 8d2b731e3d2..3da0efe6dcb 100644 --- a/develop/proc/cyclic_rowcols.html +++ b/develop/proc/cyclic_rowcols.html @@ -154,7 +154,7 @@

    Arguments

    @@ -169,7 +169,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_1d_d_sort.html b/develop/proc/dbcsr_1d_d_sort.html index fcba72f849a..0cbdbced3e1 100644 --- a/develop/proc/dbcsr_1d_d_sort.html +++ b/develop/proc/dbcsr_1d_d_sort.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_1d_d_sort_low.html b/develop/proc/dbcsr_1d_d_sort_low.html index ebaafa654c3..30e734d8c8d 100644 --- a/develop/proc/dbcsr_1d_d_sort_low.html +++ b/develop/proc/dbcsr_1d_d_sort_low.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_1d_i4_sort.html b/develop/proc/dbcsr_1d_i4_sort.html index 0c28493f260..e32b2a53e39 100644 --- a/develop/proc/dbcsr_1d_i4_sort.html +++ b/develop/proc/dbcsr_1d_i4_sort.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_1d_i4_sort_low.html b/develop/proc/dbcsr_1d_i4_sort_low.html index 9b4ae4928b0..d066384e59b 100644 --- a/develop/proc/dbcsr_1d_i4_sort_low.html +++ b/develop/proc/dbcsr_1d_i4_sort_low.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_1d_i8_sort.html b/develop/proc/dbcsr_1d_i8_sort.html index 8b18d75a8db..43c499d30a6 100644 --- a/develop/proc/dbcsr_1d_i8_sort.html +++ b/develop/proc/dbcsr_1d_i8_sort.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_1d_i8_sort_low.html b/develop/proc/dbcsr_1d_i8_sort_low.html index f5f884b159f..7aa2dcdf5f0 100644 --- a/develop/proc/dbcsr_1d_i8_sort_low.html +++ b/develop/proc/dbcsr_1d_i8_sort_low.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_1d_s_sort.html b/develop/proc/dbcsr_1d_s_sort.html index dd600e438f9..d76cce79cc5 100644 --- a/develop/proc/dbcsr_1d_s_sort.html +++ b/develop/proc/dbcsr_1d_s_sort.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_1d_s_sort_low.html b/develop/proc/dbcsr_1d_s_sort_low.html index 209c8ee36a7..ebe7e3cf0bc 100644 --- a/develop/proc/dbcsr_1d_s_sort_low.html +++ b/develop/proc/dbcsr_1d_s_sort_low.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr__a.html b/develop/proc/dbcsr__a.html index 62336a20606..cb1f9eb4b50 100644 --- a/develop/proc/dbcsr__a.html +++ b/develop/proc/dbcsr__a.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr__b.html b/develop/proc/dbcsr__b.html index 868a66ff64f..befbe73c60d 100644 --- a/develop/proc/dbcsr__b.html +++ b/develop/proc/dbcsr__b.html @@ -159,7 +159,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr__l.html b/develop/proc/dbcsr__l.html index 8b97af48f7c..42417417c67 100644 --- a/develop/proc/dbcsr__l.html +++ b/develop/proc/dbcsr__l.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr__w.html b/develop/proc/dbcsr__w.html index 86e33e25b50..b26c18dcedc 100644 --- a/develop/proc/dbcsr__w.html +++ b/develop/proc/dbcsr__w.html @@ -159,7 +159,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_abort.html b/develop/proc/dbcsr_abort.html index 6acb84ac874..61dc19a8750 100644 --- a/develop/proc/dbcsr_abort.html +++ b/develop/proc/dbcsr_abort.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_abort_handler.html b/develop/proc/dbcsr_abort_handler.html index 8ccba9f2a9c..feb40625269 100644 --- a/develop/proc/dbcsr_abort_handler.html +++ b/develop/proc/dbcsr_abort_handler.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_acc_do_mm_stack.html b/develop/proc/dbcsr_acc_do_mm_stack.html index ba839c5323c..91d6cf4a56e 100644 --- a/develop/proc/dbcsr_acc_do_mm_stack.html +++ b/develop/proc/dbcsr_acc_do_mm_stack.html @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    @@ -249,7 +249,7 @@

    Arguments

    @@ -354,7 +354,7 @@

    Arguments

    @@ -369,7 +369,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_acc_get_ndevices.html b/develop/proc/dbcsr_acc_get_ndevices.html index 5550399f0b8..c82e8e91a15 100644 --- a/develop/proc/dbcsr_acc_get_ndevices.html +++ b/develop/proc/dbcsr_acc_get_ndevices.html @@ -151,7 +151,7 @@

    Arguments


    Return Value - + integer

    diff --git a/develop/proc/dbcsr_acc_set_active_device.html b/develop/proc/dbcsr_acc_set_active_device.html index 5c0586e3046..0e7d5cda7df 100644 --- a/develop/proc/dbcsr_acc_set_active_device.html +++ b/develop/proc/dbcsr_acc_set_active_device.html @@ -197,11 +197,16 @@

    Source Code

    #if defined (__DBCSR_ACC) INTEGER :: istat -!$OMP PARALLEL DEFAULT(NONE) PRIVATE(istat) SHARED(device_id) - istat = acc_set_active_device_cu(device_id) +!$ IF (0 == omp_get_level()) THEN + istat = 0 +!$OMP PARALLEL DEFAULT(NONE) SHARED(device_id) REDUCTION(MAX:istat) + istat = acc_set_active_device_cu(device_id) +!$OMP END PARALLEL +!$ ELSE + istat = acc_set_active_device_cu(device_id) +!$ END IF IF (istat /= 0) & DBCSR_ABORT("dbcsr_acc_set_active_device: failed") -!$OMP END PARALLEL#else MARK_USED(device_id) diff --git a/develop/proc/dbcsr_acc_transpose.html b/develop/proc/dbcsr_acc_transpose.html index 6d490b1a425..d64f4848ada 100644 --- a/develop/proc/dbcsr_acc_transpose.html +++ b/develop/proc/dbcsr_acc_transpose.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    @@ -249,7 +249,7 @@

    Arguments

    @@ -264,7 +264,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_add_anytype.html b/develop/proc/dbcsr_add_anytype.html index bc691828b2d..772f437a46f 100644 --- a/develop/proc/dbcsr_add_anytype.html +++ b/develop/proc/dbcsr_add_anytype.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -220,7 +220,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_add_anytype_c.html b/develop/proc/dbcsr_add_anytype_c.html index 8506c41846a..04021817d1f 100644 --- a/develop/proc/dbcsr_add_anytype_c.html +++ b/develop/proc/dbcsr_add_anytype_c.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -249,7 +249,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_add_anytype_d.html b/develop/proc/dbcsr_add_anytype_d.html index 5ceab14c43a..55a4fe12826 100644 --- a/develop/proc/dbcsr_add_anytype_d.html +++ b/develop/proc/dbcsr_add_anytype_d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -249,7 +249,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_add_anytype_s.html b/develop/proc/dbcsr_add_anytype_s.html index 73acc28e429..5bb2db194b7 100644 --- a/develop/proc/dbcsr_add_anytype_s.html +++ b/develop/proc/dbcsr_add_anytype_s.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -249,7 +249,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_add_anytype_z.html b/develop/proc/dbcsr_add_anytype_z.html index 30dc2e2f637..3e6a36c3ddd 100644 --- a/develop/proc/dbcsr_add_anytype_z.html +++ b/develop/proc/dbcsr_add_anytype_z.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -249,7 +249,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_add_block_node.html b/develop/proc/dbcsr_add_block_node.html index 39283c2935d..e7d1086bb6d 100644 --- a/develop/proc/dbcsr_add_block_node.html +++ b/develop/proc/dbcsr_add_block_node.html @@ -162,7 +162,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_add_block_node~2.html b/develop/proc/dbcsr_add_block_node~2.html index 8b3bbbd583f..f84dfea2fde 100644 --- a/develop/proc/dbcsr_add_block_node~2.html +++ b/develop/proc/dbcsr_add_block_node~2.html @@ -162,7 +162,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_add_c.html b/develop/proc/dbcsr_add_c.html index c55193c43e2..956f5f04dcc 100644 --- a/develop/proc/dbcsr_add_c.html +++ b/develop/proc/dbcsr_add_c.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_add_c~2.html b/develop/proc/dbcsr_add_c~2.html index fbe880fe620..e3e47fd4431 100644 --- a/develop/proc/dbcsr_add_c~2.html +++ b/develop/proc/dbcsr_add_c~2.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_add_d.html b/develop/proc/dbcsr_add_d.html index 667b37fe1a0..7a162d00ea3 100644 --- a/develop/proc/dbcsr_add_d.html +++ b/develop/proc/dbcsr_add_d.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_add_d~2.html b/develop/proc/dbcsr_add_d~2.html index 4232be8d1de..6761658a3bc 100644 --- a/develop/proc/dbcsr_add_d~2.html +++ b/develop/proc/dbcsr_add_d~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_add_on_diag_c.html b/develop/proc/dbcsr_add_on_diag_c.html index 44d45de8b14..10b029f4735 100644 --- a/develop/proc/dbcsr_add_on_diag_c.html +++ b/develop/proc/dbcsr_add_on_diag_c.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_add_on_diag_c~2.html b/develop/proc/dbcsr_add_on_diag_c~2.html index f8fbd1d4ebe..503b425ec3e 100644 --- a/develop/proc/dbcsr_add_on_diag_c~2.html +++ b/develop/proc/dbcsr_add_on_diag_c~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_add_on_diag_d.html b/develop/proc/dbcsr_add_on_diag_d.html index e86c62428cd..0b7d14ec2a1 100644 --- a/develop/proc/dbcsr_add_on_diag_d.html +++ b/develop/proc/dbcsr_add_on_diag_d.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_add_on_diag_ds.html b/develop/proc/dbcsr_add_on_diag_ds.html index ecb8914999c..4c075d5fb20 100644 --- a/develop/proc/dbcsr_add_on_diag_ds.html +++ b/develop/proc/dbcsr_add_on_diag_ds.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_add_on_diag_d~2.html b/develop/proc/dbcsr_add_on_diag_d~2.html index 31b4b361c4e..0d2a116f5aa 100644 --- a/develop/proc/dbcsr_add_on_diag_d~2.html +++ b/develop/proc/dbcsr_add_on_diag_d~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_add_on_diag_s.html b/develop/proc/dbcsr_add_on_diag_s.html index cdb8ceaff6f..27f553bc364 100644 --- a/develop/proc/dbcsr_add_on_diag_s.html +++ b/develop/proc/dbcsr_add_on_diag_s.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_add_on_diag_s~2.html b/develop/proc/dbcsr_add_on_diag_s~2.html index ead1458a180..2a8c577cb8a 100644 --- a/develop/proc/dbcsr_add_on_diag_s~2.html +++ b/develop/proc/dbcsr_add_on_diag_s~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_add_on_diag_z.html b/develop/proc/dbcsr_add_on_diag_z.html index 56cad3dd9d4..cf505667e27 100644 --- a/develop/proc/dbcsr_add_on_diag_z.html +++ b/develop/proc/dbcsr_add_on_diag_z.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_add_on_diag_z~2.html b/develop/proc/dbcsr_add_on_diag_z~2.html index b2aa008d254..3c8f73667c3 100644 --- a/develop/proc/dbcsr_add_on_diag_z~2.html +++ b/develop/proc/dbcsr_add_on_diag_z~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_add_s.html b/develop/proc/dbcsr_add_s.html index c678f4e9294..bfae5c0173e 100644 --- a/develop/proc/dbcsr_add_s.html +++ b/develop/proc/dbcsr_add_s.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_add_s~2.html b/develop/proc/dbcsr_add_s~2.html index f397af0a5ca..30ca88c192f 100644 --- a/develop/proc/dbcsr_add_s~2.html +++ b/develop/proc/dbcsr_add_s~2.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_add_wm_from_matrix.html b/develop/proc/dbcsr_add_wm_from_matrix.html index 5785144770e..592715a541e 100644 --- a/develop/proc/dbcsr_add_wm_from_matrix.html +++ b/develop/proc/dbcsr_add_wm_from_matrix.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_add_work_coordinate.html b/develop/proc/dbcsr_add_work_coordinate.html index 1abd7444843..0a07d1bfc4d 100644 --- a/develop/proc/dbcsr_add_work_coordinate.html +++ b/develop/proc/dbcsr_add_work_coordinate.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_add_z.html b/develop/proc/dbcsr_add_z.html index b098c9bab93..010272ac79a 100644 --- a/develop/proc/dbcsr_add_z.html +++ b/develop/proc/dbcsr_add_z.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_add_z~2.html b/develop/proc/dbcsr_add_z~2.html index dac3a59b64b..c41db07b457 100644 --- a/develop/proc/dbcsr_add_z~2.html +++ b/develop/proc/dbcsr_add_z~2.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_addto_index_array.html b/develop/proc/dbcsr_addto_index_array.html index 9d22aa0f340..57d17978bfe 100644 --- a/develop/proc/dbcsr_addto_index_array.html +++ b/develop/proc/dbcsr_addto_index_array.html @@ -159,7 +159,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_allgatherv.html b/develop/proc/dbcsr_allgatherv.html index 471c081f576..59f595b7410 100644 --- a/develop/proc/dbcsr_allgatherv.html +++ b/develop/proc/dbcsr_allgatherv.html @@ -178,7 +178,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    @@ -238,7 +238,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_binary_read.html b/develop/proc/dbcsr_binary_read.html index 20d25a831ca..6c101bd4d56 100644 --- a/develop/proc/dbcsr_binary_read.html +++ b/develop/proc/dbcsr_binary_read.html @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_binary_read~2.html b/develop/proc/dbcsr_binary_read~2.html index c6764a4d4b9..b0efa2e3208 100644 --- a/develop/proc/dbcsr_binary_read~2.html +++ b/develop/proc/dbcsr_binary_read~2.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_binary_write.html b/develop/proc/dbcsr_binary_write.html index 236cceebce5..0b499ec1f9d 100644 --- a/develop/proc/dbcsr_binary_write.html +++ b/develop/proc/dbcsr_binary_write.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_binary_write~2.html b/develop/proc/dbcsr_binary_write~2.html index 10d1749dd1c..cc3d554ed0a 100644 --- a/develop/proc/dbcsr_binary_write~2.html +++ b/develop/proc/dbcsr_binary_write~2.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_blk_col_offset.html b/develop/proc/dbcsr_blk_col_offset.html index 610cf5edcae..7b6d9cf3e8b 100644 --- a/develop/proc/dbcsr_blk_col_offset.html +++ b/develop/proc/dbcsr_blk_col_offset.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_blk_column_size.html b/develop/proc/dbcsr_blk_column_size.html index c37b5ccfb6a..24ed9564f17 100644 --- a/develop/proc/dbcsr_blk_column_size.html +++ b/develop/proc/dbcsr_blk_column_size.html @@ -160,7 +160,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_blk_row_offset.html b/develop/proc/dbcsr_blk_row_offset.html index adff6499caf..ea8f6134ec9 100644 --- a/develop/proc/dbcsr_blk_row_offset.html +++ b/develop/proc/dbcsr_blk_row_offset.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_blk_row_size.html b/develop/proc/dbcsr_blk_row_size.html index 40939e13937..7bc884858a5 100644 --- a/develop/proc/dbcsr_blk_row_size.html +++ b/develop/proc/dbcsr_blk_row_size.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_block_conjg.html b/develop/proc/dbcsr_block_conjg.html index 757070516b7..e927092a115 100644 --- a/develop/proc/dbcsr_block_conjg.html +++ b/develop/proc/dbcsr_block_conjg.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -210,7 +210,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_block_copy_aa.html b/develop/proc/dbcsr_block_copy_aa.html index ada7d7e3d22..bd4bdac0b99 100644 --- a/develop/proc/dbcsr_block_copy_aa.html +++ b/develop/proc/dbcsr_block_copy_aa.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -222,7 +222,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_block_in_limits.html b/develop/proc/dbcsr_block_in_limits.html index 33a1a5365a5..69a3ae7fb4c 100644 --- a/develop/proc/dbcsr_block_in_limits.html +++ b/develop/proc/dbcsr_block_in_limits.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_block_partial_copy.html b/develop/proc/dbcsr_block_partial_copy.html index 0424f72e5d4..adcded7e33e 100644 --- a/develop/proc/dbcsr_block_partial_copy.html +++ b/develop/proc/dbcsr_block_partial_copy.html @@ -159,7 +159,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    @@ -252,7 +252,7 @@

    Arguments

    @@ -268,7 +268,7 @@

    Arguments

    @@ -383,7 +383,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_block_real_neg.html b/develop/proc/dbcsr_block_real_neg.html index 4fb8b2135c6..efede8e2d6d 100644 --- a/develop/proc/dbcsr_block_real_neg.html +++ b/develop/proc/dbcsr_block_real_neg.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -210,7 +210,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_block_scale.html b/develop/proc/dbcsr_block_scale.html index ad8e70bf58c..f5fca375978 100644 --- a/develop/proc/dbcsr_block_scale.html +++ b/develop/proc/dbcsr_block_scale.html @@ -163,7 +163,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    @@ -225,7 +225,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_block_transpose_a.html b/develop/proc/dbcsr_block_transpose_a.html index 6d6e56d6e39..1c026af2b46 100644 --- a/develop/proc/dbcsr_block_transpose_a.html +++ b/develop/proc/dbcsr_block_transpose_a.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_block_transpose_aa.html b/develop/proc/dbcsr_block_transpose_aa.html index d59d39c687f..10d1ea73ea8 100644 --- a/develop/proc/dbcsr_block_transpose_aa.html +++ b/develop/proc/dbcsr_block_transpose_aa.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -222,7 +222,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_build_row_index_copy.html b/develop/proc/dbcsr_build_row_index_copy.html index 682f8b3465e..02cc17e3ab5 100644 --- a/develop/proc/dbcsr_build_row_index_copy.html +++ b/develop/proc/dbcsr_build_row_index_copy.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_build_row_index_inplace.html b/develop/proc/dbcsr_build_row_index_inplace.html index e9da464dc6d..96ae7f81f98 100644 --- a/develop/proc/dbcsr_build_row_index_inplace.html +++ b/develop/proc/dbcsr_build_row_index_inplace.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_calc_block_sizes.html b/develop/proc/dbcsr_calc_block_sizes.html index 83ee6c0899b..a387f235990 100644 --- a/develop/proc/dbcsr_calc_block_sizes.html +++ b/develop/proc/dbcsr_calc_block_sizes.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -223,7 +223,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_checksum.html b/develop/proc/dbcsr_checksum.html index 5d932ba6256..298c0c8d6c0 100644 --- a/develop/proc/dbcsr_checksum.html +++ b/develop/proc/dbcsr_checksum.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_checksum~2.html b/develop/proc/dbcsr_checksum~2.html index f02cf730bd0..14fa96db3fb 100644 --- a/develop/proc/dbcsr_checksum~2.html +++ b/develop/proc/dbcsr_checksum~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    Return Value - + real(kind=dp)

    diff --git a/develop/proc/dbcsr_clear.html b/develop/proc/dbcsr_clear.html index 6136e31a9ca..22b3e220d0e 100644 --- a/develop/proc/dbcsr_clear.html +++ b/develop/proc/dbcsr_clear.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_clearfrom_index_array.html b/develop/proc/dbcsr_clearfrom_index_array.html index a84d96ae9c5..3f354b0af64 100644 --- a/develop/proc/dbcsr_clearfrom_index_array.html +++ b/develop/proc/dbcsr_clearfrom_index_array.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_clear~2.html b/develop/proc/dbcsr_clear~2.html index 39a249649a5..aa4fb43bb2e 100644 --- a/develop/proc/dbcsr_clear~2.html +++ b/develop/proc/dbcsr_clear~2.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_col_block_offsets.html b/develop/proc/dbcsr_col_block_offsets.html index 82626eb6152..7f1862f024c 100644 --- a/develop/proc/dbcsr_col_block_offsets.html +++ b/develop/proc/dbcsr_col_block_offsets.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_col_block_sizes.html b/develop/proc/dbcsr_col_block_sizes.html index fc89b74ad32..f42fad7cca0 100644 --- a/develop/proc/dbcsr_col_block_sizes.html +++ b/develop/proc/dbcsr_col_block_sizes.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_complete_redistribute.html b/develop/proc/dbcsr_complete_redistribute.html index ebfb726114e..3af1d3d3d68 100644 --- a/develop/proc/dbcsr_complete_redistribute.html +++ b/develop/proc/dbcsr_complete_redistribute.html @@ -74,20 +74,20 @@

    dbcsr_complete_redistribute
  • 251 statements + title=" 0.0% of total for procedures.">6 statements
  • - Source File + Source File
  • @@ -143,10 +143,6 @@

    public subroutine dbcsr_complete_redistribute(matrix, redist, keep_sparsity

    -

    Fully redistributes a DBCSR matrix. -The new distribution may be arbitrary as long as the total -number full rows and columns matches that of the existing -matrix.

    Arguments

    @@ -162,8 +158,8 @@

    Arguments

    @@ -202,13 +198,12 @@

    Arguments

    @@ -218,8 +213,7 @@

    Arguments

    @@ -240,408 +234,11 @@

    Arguments

    Source Code

       SUBROUTINE dbcsr_complete_redistribute(matrix, redist, keep_sparsity, summation)
    -      !! Fully redistributes a DBCSR matrix.
    -      !! The new distribution may be arbitrary as long as the total
    -      !! number full rows and columns matches that of the existing
    -      !! matrix.
    -
           TYPE(dbcsr_type), INTENT(IN)                       :: matrix
    -         !! matrix to redistribute
           TYPE(dbcsr_type), INTENT(INOUT)                    :: redist
    -         !! redistributed matrix
           LOGICAL, INTENT(IN), OPTIONAL                      :: keep_sparsity, summation
    -         !! retains the sparsity of the redist matrix
    -         !! sum blocks with identical row and col from different processes
    -
    -      CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_complete_redistribute'
    -      INTEGER, PARAMETER                                 :: metalen = 7
    -      LOGICAL, PARAMETER                                 :: dbg = .FALSE.
    -
    -      INTEGER :: blk, blk_col_new, blk_ps, blk_row_new, blks, cnt_fnd, cnt_new, cnt_skip, col, &
    -                 col_int, col_offset_new, col_offset_old, col_rle, col_size, col_size_new, data_offset_l, &
    -                 data_type, dst_p, handle, i, meta_l, numnodes, nze_rle, row, row_int, &
    -                 row_offset_new, row_offset_old, row_rle, row_size, row_size_new, src_p, stored_col_new, &
    -                 stored_row_new
    -      INTEGER, ALLOCATABLE, DIMENSION(:) :: col_end_new, col_end_old, col_start_new, &
    -                                            col_start_old, rd_disp, recv_meta, rm_disp, row_end_new, row_end_old, row_start_new, &
    -                                            row_start_old, sd_disp, sdp, send_meta, sm_disp, smp
    -      INTEGER, ALLOCATABLE, DIMENSION(:, :) :: col_reblocks, n_col_reblocks, n_row_reblocks, &
    -                                               recv_count, row_reblocks, send_count, total_recv_count, total_send_count
    -      INTEGER, DIMENSION(:), POINTER                     :: col_blk_size_new, col_blk_size_old, &
    -                                                            col_dist_new, row_blk_size_new, &
    -                                                            row_blk_size_old, row_dist_new
    -      INTEGER, DIMENSION(:, :), POINTER                  :: pgrid
    -      LOGICAL                                            :: found, my_keep_sparsity, my_summation, &
    -                                                            sym, tr, valid_block
    -      REAL(kind=dp)                                      :: cs1, cs2
    -      TYPE(dbcsr_data_obj)                               :: buff_data, data_block, recv_data, &
    -                                                            send_data
    -      TYPE(dbcsr_distribution_obj)                       :: dist_new
    -      TYPE(dbcsr_iterator)                               :: iter
    -      TYPE(dbcsr_mp_obj)                                 :: mp_obj_new
    -      TYPE(mp_comm_type)                                 :: mp_group
    -
    -!   ---------------------------------------------------------------------------
    -
    -      CALL timeset(routineN, handle)
    -
    -      IF (.NOT. dbcsr_valid_index(matrix)) &
    -         DBCSR_ABORT("Input not valid.")
    -      IF (matrix%replication_type .NE. dbcsr_repl_none) &
    -         DBCSR_WARN("Can not redistribute replicated matrix.")
    -      IF (dbcsr_has_symmetry(matrix) .AND. .NOT. dbcsr_has_symmetry(redist)) &
    -         DBCSR_ABORT("Can not redistribute a symmetric matrix into a non-symmetric one")
    -      !
    -      my_keep_sparsity = .FALSE.
    -      IF (PRESENT(keep_sparsity)) my_keep_sparsity = keep_sparsity
    -      !
    -      my_summation = .FALSE.
    -      IF (PRESENT(summation)) my_summation = summation
    -
    -      ! zero blocks that might be present in the target (redist) but not in the source (matrix)
    -      CALL dbcsr_set(redist, 0.0_dp)
    -
    -      sym = dbcsr_has_symmetry(redist)
    -      data_type = matrix%data_type
    -      ! Get row and column start and end positions
    -      ! Old matrix
    -      row_blk_size_old => array_data(matrix%row_blk_size)
    -      col_blk_size_old => array_data(matrix%col_blk_size)
    -      ALLOCATE (row_start_old(dbcsr_nblkrows_total(matrix)), &
    -                row_end_old(dbcsr_nblkrows_total(matrix)), &
    -                col_start_old(dbcsr_nblkcols_total(matrix)), &
    -                col_end_old(dbcsr_nblkcols_total(matrix)))
    -      CALL convert_sizes_to_offsets(row_blk_size_old, &
    -                                    row_start_old, row_end_old)
    -      CALL convert_sizes_to_offsets(col_blk_size_old, &
    -                                    col_start_old, col_end_old)
    -      ! New matrix
    -      dist_new = dbcsr_distribution(redist)
    -      row_blk_size_new => array_data(redist%row_blk_size)
    -      col_blk_size_new => array_data(redist%col_blk_size)
    -      ALLOCATE (row_start_new(dbcsr_nblkrows_total(redist)), &
    -                row_end_new(dbcsr_nblkrows_total(redist)), &
    -                col_start_new(dbcsr_nblkcols_total(redist)), &
    -                col_end_new(dbcsr_nblkcols_total(redist)))
    -      CALL convert_sizes_to_offsets(row_blk_size_new, &
    -                                    row_start_new, row_end_new)
    -      CALL convert_sizes_to_offsets(col_blk_size_new, &
    -                                    col_start_new, col_end_new)
    -      row_dist_new => dbcsr_distribution_row_dist(dist_new)
    -      col_dist_new => dbcsr_distribution_col_dist(dist_new)
    -      ! Create mappings
    -      i = dbcsr_nfullrows_total(redist)
    -      ALLOCATE (row_reblocks(4, i))
    -      ALLOCATE (n_row_reblocks(2, dbcsr_nblkrows_total(matrix)))
    -      CALL dbcsr_reblocking_targets(row_reblocks, i, n_row_reblocks, &
    -                                    row_blk_size_old, row_blk_size_new)
    -      i = dbcsr_nfullcols_total(redist)
    -      ALLOCATE (col_reblocks(4, i))
    -      ALLOCATE (n_col_reblocks(2, dbcsr_nblkcols_total(matrix)))
    -      CALL dbcsr_reblocking_targets(col_reblocks, i, n_col_reblocks, &
    -                                    col_blk_size_old, col_blk_size_new)
    -      !
    -      mp_obj_new = dbcsr_distribution_mp(dist_new)
    -      pgrid => dbcsr_mp_pgrid(mp_obj_new)
    -      numnodes = dbcsr_mp_numnodes(mp_obj_new)
    -      mp_group = dbcsr_mp_group(mp_obj_new)
    -      !
    -      IF (MAXVAL(row_dist_new) > UBOUND(pgrid, 1)) &
    -         DBCSR_ABORT('Row distribution references unexistent processor rows')
    -      IF (dbg) THEN
    -         IF (MAXVAL(row_dist_new) .NE. UBOUND(pgrid, 1)) &
    -            DBCSR_WARN('Range of row distribution not equal to processor rows')
    -      END IF
    -      IF (MAXVAL(col_dist_new) > UBOUND(pgrid, 2)) &
    -         DBCSR_ABORT('Col distribution references unexistent processor cols')
    -      IF (dbg) THEN
    -         IF (MAXVAL(col_dist_new) .NE. UBOUND(pgrid, 2)) &
    -            DBCSR_WARN('Range of col distribution not equal to processor cols')
    -      END IF
    -      ALLOCATE (send_count(2, 0:numnodes - 1))
    -      ALLOCATE (recv_count(2, 0:numnodes - 1))
    -      ALLOCATE (total_send_count(2, 0:numnodes - 1))
    -      ALLOCATE (total_recv_count(2, 0:numnodes - 1))
    -      ALLOCATE (sdp(0:numnodes - 1))
    -      ALLOCATE (sd_disp(0:numnodes - 1))
    -      ALLOCATE (smp(0:numnodes - 1))
    -      ALLOCATE (sm_disp(0:numnodes - 1))
    -      ALLOCATE (rd_disp(0:numnodes - 1))
    -      ALLOCATE (rm_disp(0:numnodes - 1))
    -      IF (dbg) THEN
    -         cs1 = dbcsr_checksum(matrix)
    -      END IF
    -      !cs1 = dbcsr_checksum (matrix)
    -      !call dbcsr_print(matrix)
    -      !
    -      !
    -      ! Count initial sizes for sending.
    -      !
    -      ! We go through every element of every local block and determine
    -      ! to which processor it must be sent. It could be more efficient,
    -      ! but at least the index data are run-length encoded.
    -      send_count(:, :) = 0
    -      CALL dbcsr_iterator_start(iter, matrix)
    -      dst_p = -1
    -      DO WHILE (dbcsr_iterator_blocks_left(iter))
    -         CALL dbcsr_iterator_next_block(iter, row, col, blk)
    -         DO col_int = n_col_reblocks(1, col), &
    -            n_col_reblocks(1, col) + n_col_reblocks(2, col) - 1
    -            blk_col_new = col_reblocks(1, col_int)
    -            DO row_int = n_row_reblocks(1, row), &
    -               n_row_reblocks(1, row) + n_row_reblocks(2, row) - 1
    -               blk_row_new = row_reblocks(1, row_int)
    -               IF (.NOT. sym .OR. blk_col_new .GE. blk_row_new) THEN
    -                  tr = .FALSE.
    -                  CALL dbcsr_get_stored_coordinates(redist, &
    -                                                    blk_row_new, blk_col_new, dst_p)
    -                  send_count(1, dst_p) = send_count(1, dst_p) + 1
    -                  send_count(2, dst_p) = send_count(2, dst_p) + &
    -                                         col_reblocks(2, col_int)*row_reblocks(2, row_int)
    -               END IF
    -            END DO
    -         END DO
    -      END DO
    -      CALL dbcsr_iterator_stop(iter)
    -      !
    -      !
    -      CALL mp_alltoall(send_count, recv_count, 2, mp_group)
    -      ! Allocate data structures needed for data exchange.
    -      CALL dbcsr_data_init(recv_data)
    -      CALL dbcsr_data_new(recv_data, data_type, SUM(recv_count(2, :)))
    -      ALLOCATE (recv_meta(metalen*SUM(recv_count(1, :))))
    -      CALL dbcsr_data_init(send_data)
    -      CALL dbcsr_data_new(send_data, data_type, SUM(send_count(2, :)))
    -      ALLOCATE (send_meta(metalen*SUM(send_count(1, :))))
    -      ! Fill in the meta data structures and copy the data.
    -      DO dst_p = 0, numnodes - 1
    -         total_send_count(1, dst_p) = send_count(1, dst_p)
    -         total_send_count(2, dst_p) = send_count(2, dst_p)
    -         total_recv_count(1, dst_p) = recv_count(1, dst_p)
    -         total_recv_count(2, dst_p) = recv_count(2, dst_p)
    -      END DO
    -      sd_disp = -1; sm_disp = -1
    -      rd_disp = -1; rm_disp = -1
    -      sd_disp(0) = 1; sm_disp(0) = 1
    -      rd_disp(0) = 1; rm_disp(0) = 1
    -      DO dst_p = 1, numnodes - 1
    -         sm_disp(dst_p) = sm_disp(dst_p - 1) &
    -                          + metalen*total_send_count(1, dst_p - 1)
    -         sd_disp(dst_p) = sd_disp(dst_p - 1) &
    -                          + total_send_count(2, dst_p - 1)
    -         rm_disp(dst_p) = rm_disp(dst_p - 1) &
    -                          + metalen*total_recv_count(1, dst_p - 1)
    -         rd_disp(dst_p) = rd_disp(dst_p - 1) &
    -                          + total_recv_count(2, dst_p - 1)
    -      END DO
    -      sdp(:) = sd_disp     ! sdp points to the the next place to store
    -      ! data. It is postincremented.
    -      smp(:) = sm_disp - metalen  ! But smp points to the "working" data, not
    -      ! the next. It is pre-incremented, so we must
    -      ! first rewind it.
    -      !
    -      CALL dbcsr_data_init(data_block)
    -      CALL dbcsr_data_new(data_block, data_type)
    -      CALL dbcsr_iterator_start(iter, matrix)
    -      dst_p = -1
    -      DO WHILE (dbcsr_iterator_blocks_left(iter))
    -         CALL dbcsr_iterator_next_block(iter, row, col, data_block, tr, blk, &
    -                                        row_size=row_size, col_size=col_size)
    -         !IF (tr) WRITE(*,*)"block at",row,col," is transposed"
    -         DO col_int = n_col_reblocks(1, col), &
    -            n_col_reblocks(1, col) + n_col_reblocks(2, col) - 1
    -            blk_col_new = col_reblocks(1, col_int)
    -            DO row_int = n_row_reblocks(1, row), &
    -               n_row_reblocks(1, row) + n_row_reblocks(2, row) - 1
    -               blk_row_new = row_reblocks(1, row_int)
    -               loc_ok: IF (.NOT. sym .OR. blk_col_new .GE. blk_row_new) THEN
    -                  IF (dbg) &
    -                     WRITE (*, *) 'using block', blk_row_new, 'x', blk_col_new
    -                  ! Start a new RLE run
    -                  tr = .FALSE.
    -                  CALL dbcsr_get_stored_coordinates(redist, &
    -                                                    blk_row_new, blk_col_new, dst_p)
    -                  row_offset_old = row_reblocks(3, row_int)
    -                  col_offset_old = col_reblocks(3, col_int)
    -                  row_offset_new = row_reblocks(4, row_int)
    -                  col_offset_new = col_reblocks(4, col_int)
    -                  row_rle = row_reblocks(2, row_int)
    -                  col_rle = col_reblocks(2, col_int)
    -                  smp(dst_p) = smp(dst_p) + metalen
    -                  send_meta(smp(dst_p)) = blk_row_new   ! new blocked row
    -                  send_meta(smp(dst_p) + 1) = blk_col_new ! new blocked column
    -                  send_meta(smp(dst_p) + 2) = row_offset_new  ! row in new block
    -                  send_meta(smp(dst_p) + 3) = col_offset_new  ! col in new block
    -                  send_meta(smp(dst_p) + 4) = row_rle ! RLE rows
    -                  send_meta(smp(dst_p) + 5) = col_rle ! RLE columns
    -                  send_meta(smp(dst_p) + 6) = sdp(dst_p) - sd_disp(dst_p) ! Offset in data
    -                  nze_rle = row_rle*col_rle
    -                  ! Copy current block into the send buffer
    -                  CALL dbcsr_block_partial_copy( &
    -                     send_data, dst_offset=sdp(dst_p) - 1, &
    -                     dst_rs=row_rle, dst_cs=col_rle, dst_tr=.FALSE., &
    -                     dst_r_lb=1, dst_c_lb=1, &
    -                     src=data_block, &
    -                     src_rs=row_size, src_cs=col_size, src_tr=tr, &
    -                     src_r_lb=row_offset_old, src_c_lb=col_offset_old, &
    -                     nrow=row_rle, ncol=col_rle)
    -                  sdp(dst_p) = sdp(dst_p) + nze_rle
    -               END IF loc_ok
    -            END DO ! row_int
    -         END DO ! col_int
    -      END DO
    -      CALL dbcsr_iterator_stop(iter)
    -      CALL dbcsr_data_clear_pointer(data_block)
    -      CALL dbcsr_data_release(data_block)
    -
    -      ! Exchange the data and metadata structures.
    -      !
    -      SELECT CASE (data_type)
    -      CASE (dbcsr_type_real_4)
    -         CALL hybrid_alltoall_s1( &
    -            send_data%d%r_sp(:), total_send_count(2, :), sd_disp(:) - 1, &
    -            recv_data%d%r_sp(:), total_recv_count(2, :), rd_disp(:) - 1, &
    -            mp_obj_new)
    -      CASE (dbcsr_type_real_8)
    -         !CALL mp_alltoall(&
    -         !     send_data%d%r_dp(:), total_send_count(2,:), sd_disp(:)-1,&
    -         !     recv_data%d%r_dp(:), total_recv_count(2,:), rd_disp(:)-1,&
    -         !     mp_group)
    -         CALL hybrid_alltoall_d1( &
    -            send_data%d%r_dp(:), total_send_count(2, :), sd_disp(:) - 1, &
    -            recv_data%d%r_dp(:), total_recv_count(2, :), rd_disp(:) - 1, &
    -            mp_obj_new)
    -      CASE (dbcsr_type_complex_4)
    -         CALL hybrid_alltoall_c1( &
    -            send_data%d%c_sp(:), total_send_count(2, :), sd_disp(:) - 1, &
    -            recv_data%d%c_sp(:), total_recv_count(2, :), rd_disp(:) - 1, &
    -            mp_obj_new)
    -      CASE (dbcsr_type_complex_8)
    -         CALL hybrid_alltoall_z1( &
    -            send_data%d%c_dp(:), total_send_count(2, :), sd_disp(:) - 1, &
    -            recv_data%d%c_dp(:), total_recv_count(2, :), rd_disp(:) - 1, &
    -            mp_obj_new)
    -      CASE default
    -         DBCSR_ABORT("Invalid matrix type")
    -      END SELECT
    -      CALL hybrid_alltoall_i1(send_meta(:), metalen*total_send_count(1, :), sm_disp(:) - 1, &
    -                              recv_meta(:), metalen*total_recv_count(1, :), rm_disp(:) - 1, mp_obj_new)
    -      !
    -      ! Now fill in the data.
    -      CALL dbcsr_work_create(redist, &
    -                             nblks_guess=SUM(recv_count(1, :)), &
    -                             sizedata_guess=SUM(recv_count(2, :)), work_mutable=.TRUE.)
    -      CALL dbcsr_data_init(buff_data)
    -      CALL dbcsr_data_init(data_block)
    -      CALL dbcsr_data_new(buff_data, dbcsr_type_1d_to_2d(data_type), &
    -                          redist%max_rbs, redist%max_cbs)
    -      CALL dbcsr_data_new(data_block, dbcsr_type_1d_to_2d(data_type))
    -
    -      !blk_p = 1
    -      !blk = 1
    -      blk_ps = 0
    -      blks = 0
    -      cnt_fnd = 0; cnt_new = 0; cnt_skip = 0
    -      DO src_p = 0, numnodes - 1
    -         data_offset_l = rd_disp(src_p)
    -         DO meta_l = 1, recv_count(1, src_p)
    -            stored_row_new = recv_meta(rm_disp(src_p) + metalen*(meta_l - 1))
    -            stored_col_new = recv_meta(rm_disp(src_p) + metalen*(meta_l - 1) + 1)
    -            row_offset_new = recv_meta(rm_disp(src_p) + metalen*(meta_l - 1) + 2)
    -            col_offset_new = recv_meta(rm_disp(src_p) + metalen*(meta_l - 1) + 3)
    -            row_rle = recv_meta(rm_disp(src_p) + metalen*(meta_l - 1) + 4)
    -            col_rle = recv_meta(rm_disp(src_p) + metalen*(meta_l - 1) + 5)
    -            data_offset_l = rd_disp(src_p) &
    -                            + recv_meta(rm_disp(src_p) + metalen*(meta_l - 1) + 6)
    -
    -            CALL dbcsr_data_clear_pointer(data_block)
    -            CALL dbcsr_get_block_p(redist, stored_row_new, stored_col_new, &
    -                                   data_block, tr, found)
    -            valid_block = found
    -
    -            IF (found) cnt_fnd = cnt_fnd + 1
    -            IF (.NOT. found .AND. .NOT. my_keep_sparsity) THEN
    -               ! We have to set up a buffer block
    -               CALL dbcsr_data_set_pointer(data_block, &
    -                                           rsize=row_blk_size_new(stored_row_new), &
    -                                           csize=col_blk_size_new(stored_col_new), &
    -                                           pointee=buff_data)
    -               CALL dbcsr_data_clear(data_block)
    -               !r2_dp => r2_dp_buff(1:row_blk_size_new (stored_row_new),&
    -               !     1:col_blk_size_new (stored_col_new))
    -               !r2_dp(:,:) = 0.0_dp
    -               tr = .FALSE.
    -               blks = blks + 1
    -               blk_ps = blk_ps + row_blk_size_new(stored_row_new)* &
    -                        col_blk_size_new(stored_col_new)
    -               valid_block = .TRUE.
    -               cnt_new = cnt_new + 1
    -            END IF
    -            nze_rle = row_rle*col_rle
    -
    -            IF (valid_block) THEN
    -               row_size_new = row_blk_size_new(stored_row_new)
    -               col_size_new = col_blk_size_new(stored_col_new)
    -               CALL dbcsr_block_partial_copy( &
    -                  dst=data_block, dst_tr=tr, &
    -                  dst_rs=row_size_new, dst_cs=col_size_new, &
    -                  dst_r_lb=row_offset_new, dst_c_lb=col_offset_new, &
    -                  src=recv_data, src_offset=data_offset_l - 1, &
    -                  src_rs=row_rle, src_cs=col_rle, src_tr=.FALSE., &
    -                  src_r_lb=1, src_c_lb=1, &
    -                  nrow=row_rle, ncol=col_rle)
    -            ELSE
    -               cnt_skip = cnt_skip + 1
    -            END IF
    -
    -            data_offset_l = data_offset_l + nze_rle
    -            IF ((.NOT. found .OR. my_summation) .AND. valid_block) THEN
    -               IF (dbg) WRITE (*, *) routineN//" Adding new block at", &
    -                  stored_row_new, stored_col_new
    -               CALL dbcsr_put_block(redist, stored_row_new, stored_col_new, &
    -                                    data_block, transposed=tr, summation=my_summation)
    -               !DEALLOCATE (r2_dp)
    -            ELSE
    -               IF (.NOT. my_keep_sparsity .AND. dbg) &
    -                  WRITE (*, *) routineN//" Reusing block at", &
    -                  stored_row_new, stored_col_new
    -            END IF
    -         END DO
    -      END DO
    -
    -      CALL dbcsr_data_clear_pointer(data_block)
    -      CALL dbcsr_data_release(buff_data)
    -      CALL dbcsr_data_release(data_block)
    -      !
    -      IF (dbg) THEN
    -         WRITE (*, *) routineN//" Declared blocks=", redist%wms(1)%lastblk, &
    -            "actual=", blks
    -         WRITE (*, *) routineN//" Declared data size=", redist%wms(1)%datasize, &
    -            "actual=", blk_ps
    -      END IF
    -
    -      CALL dbcsr_finalize(redist)
    -
    -      DEALLOCATE (send_count)
    -      DEALLOCATE (recv_count)
    -      DEALLOCATE (sdp); DEALLOCATE (sd_disp)
    -      DEALLOCATE (smp); DEALLOCATE (sm_disp)
    -      DEALLOCATE (rd_disp)
    -      DEALLOCATE (rm_disp)
    -
    -      CALL dbcsr_data_release(recv_data)
    -      CALL dbcsr_data_release(send_data)
    -
    -      DEALLOCATE (recv_meta)
    -      DEALLOCATE (send_meta)
     
    -      !if (dbg) call dbcsr_print(redist)
    -      IF (dbg) THEN
    -         cs2 = dbcsr_checksum(redist)
    -         WRITE (*, *) routineN//" Checksums=", cs1, cs2, cs1 - cs2
    -      END IF
    -      !IF(cs1-cs2 > 0.00001) DBCSR_ABORT("Mangled data!")
    -      CALL timestop(handle)
    +      CALL dbcsr_complete_redistribute_prv(matrix%prv, redist%prv, keep_sparsity, summation)
        END SUBROUTINE dbcsr_complete_redistribute
     
    diff --git a/develop/proc/dbcsr_complete_redistribute~2.html b/develop/proc/dbcsr_complete_redistribute~2.html index 97657b5d0c7..1ac17b40d8a 100644 --- a/develop/proc/dbcsr_complete_redistribute~2.html +++ b/develop/proc/dbcsr_complete_redistribute~2.html @@ -74,20 +74,20 @@

    dbcsr_complete_redistribute
  • 6 statements + title=" 0.4% of total for procedures.">251 statements
  • - Source File + Source File
  • @@ -143,6 +143,10 @@

    public subroutine dbcsr_complete_redistribute(matrix, redist, keep_sparsity

    +

    Fully redistributes a DBCSR matrix. +The new distribution may be arbitrary as long as the total +number full rows and columns matches that of the existing +matrix.

    Arguments

    @@ -158,8 +162,8 @@

    Arguments

    @@ -198,12 +202,13 @@

    Arguments

    @@ -213,7 +218,8 @@

    Arguments

    @@ -234,11 +240,408 @@

    Arguments

    Source Code

       SUBROUTINE dbcsr_complete_redistribute(matrix, redist, keep_sparsity, summation)
    +      !! Fully redistributes a DBCSR matrix.
    +      !! The new distribution may be arbitrary as long as the total
    +      !! number full rows and columns matches that of the existing
    +      !! matrix.
    +
           TYPE(dbcsr_type), INTENT(IN)                       :: matrix
    +         !! matrix to redistribute
           TYPE(dbcsr_type), INTENT(INOUT)                    :: redist
    +         !! redistributed matrix
           LOGICAL, INTENT(IN), OPTIONAL                      :: keep_sparsity, summation
    +         !! retains the sparsity of the redist matrix
    +         !! sum blocks with identical row and col from different processes
    +
    +      CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_complete_redistribute'
    +      INTEGER, PARAMETER                                 :: metalen = 7
    +      LOGICAL, PARAMETER                                 :: dbg = .FALSE.
    +
    +      INTEGER :: blk, blk_col_new, blk_ps, blk_row_new, blks, cnt_fnd, cnt_new, cnt_skip, col, &
    +                 col_int, col_offset_new, col_offset_old, col_rle, col_size, col_size_new, data_offset_l, &
    +                 data_type, dst_p, handle, i, meta_l, numnodes, nze_rle, row, row_int, &
    +                 row_offset_new, row_offset_old, row_rle, row_size, row_size_new, src_p, stored_col_new, &
    +                 stored_row_new
    +      INTEGER, ALLOCATABLE, DIMENSION(:) :: col_end_new, col_end_old, col_start_new, &
    +                                            col_start_old, rd_disp, recv_meta, rm_disp, row_end_new, row_end_old, row_start_new, &
    +                                            row_start_old, sd_disp, sdp, send_meta, sm_disp, smp
    +      INTEGER, ALLOCATABLE, DIMENSION(:, :) :: col_reblocks, n_col_reblocks, n_row_reblocks, &
    +                                               recv_count, row_reblocks, send_count, total_recv_count, total_send_count
    +      INTEGER, DIMENSION(:), POINTER                     :: col_blk_size_new, col_blk_size_old, &
    +                                                            col_dist_new, row_blk_size_new, &
    +                                                            row_blk_size_old, row_dist_new
    +      INTEGER, DIMENSION(:, :), POINTER                  :: pgrid
    +      LOGICAL                                            :: found, my_keep_sparsity, my_summation, &
    +                                                            sym, tr, valid_block
    +      REAL(kind=dp)                                      :: cs1, cs2
    +      TYPE(dbcsr_data_obj)                               :: buff_data, data_block, recv_data, &
    +                                                            send_data
    +      TYPE(dbcsr_distribution_obj)                       :: dist_new
    +      TYPE(dbcsr_iterator)                               :: iter
    +      TYPE(dbcsr_mp_obj)                                 :: mp_obj_new
    +      TYPE(mp_comm_type)                                 :: mp_group
    +
    +!   ---------------------------------------------------------------------------
    +
    +      CALL timeset(routineN, handle)
    +
    +      IF (.NOT. dbcsr_valid_index(matrix)) &
    +         DBCSR_ABORT("Input not valid.")
    +      IF (matrix%replication_type .NE. dbcsr_repl_none) &
    +         DBCSR_WARN("Can not redistribute replicated matrix.")
    +      IF (dbcsr_has_symmetry(matrix) .AND. .NOT. dbcsr_has_symmetry(redist)) &
    +         DBCSR_ABORT("Can not redistribute a symmetric matrix into a non-symmetric one")
    +      !
    +      my_keep_sparsity = .FALSE.
    +      IF (PRESENT(keep_sparsity)) my_keep_sparsity = keep_sparsity
    +      !
    +      my_summation = .FALSE.
    +      IF (PRESENT(summation)) my_summation = summation
    +
    +      ! zero blocks that might be present in the target (redist) but not in the source (matrix)
    +      CALL dbcsr_set(redist, 0.0_dp)
    +
    +      sym = dbcsr_has_symmetry(redist)
    +      data_type = matrix%data_type
    +      ! Get row and column start and end positions
    +      ! Old matrix
    +      row_blk_size_old => array_data(matrix%row_blk_size)
    +      col_blk_size_old => array_data(matrix%col_blk_size)
    +      ALLOCATE (row_start_old(dbcsr_nblkrows_total(matrix)), &
    +                row_end_old(dbcsr_nblkrows_total(matrix)), &
    +                col_start_old(dbcsr_nblkcols_total(matrix)), &
    +                col_end_old(dbcsr_nblkcols_total(matrix)))
    +      CALL convert_sizes_to_offsets(row_blk_size_old, &
    +                                    row_start_old, row_end_old)
    +      CALL convert_sizes_to_offsets(col_blk_size_old, &
    +                                    col_start_old, col_end_old)
    +      ! New matrix
    +      dist_new = dbcsr_distribution(redist)
    +      row_blk_size_new => array_data(redist%row_blk_size)
    +      col_blk_size_new => array_data(redist%col_blk_size)
    +      ALLOCATE (row_start_new(dbcsr_nblkrows_total(redist)), &
    +                row_end_new(dbcsr_nblkrows_total(redist)), &
    +                col_start_new(dbcsr_nblkcols_total(redist)), &
    +                col_end_new(dbcsr_nblkcols_total(redist)))
    +      CALL convert_sizes_to_offsets(row_blk_size_new, &
    +                                    row_start_new, row_end_new)
    +      CALL convert_sizes_to_offsets(col_blk_size_new, &
    +                                    col_start_new, col_end_new)
    +      row_dist_new => dbcsr_distribution_row_dist(dist_new)
    +      col_dist_new => dbcsr_distribution_col_dist(dist_new)
    +      ! Create mappings
    +      i = dbcsr_nfullrows_total(redist)
    +      ALLOCATE (row_reblocks(4, i))
    +      ALLOCATE (n_row_reblocks(2, dbcsr_nblkrows_total(matrix)))
    +      CALL dbcsr_reblocking_targets(row_reblocks, i, n_row_reblocks, &
    +                                    row_blk_size_old, row_blk_size_new)
    +      i = dbcsr_nfullcols_total(redist)
    +      ALLOCATE (col_reblocks(4, i))
    +      ALLOCATE (n_col_reblocks(2, dbcsr_nblkcols_total(matrix)))
    +      CALL dbcsr_reblocking_targets(col_reblocks, i, n_col_reblocks, &
    +                                    col_blk_size_old, col_blk_size_new)
    +      !
    +      mp_obj_new = dbcsr_distribution_mp(dist_new)
    +      pgrid => dbcsr_mp_pgrid(mp_obj_new)
    +      numnodes = dbcsr_mp_numnodes(mp_obj_new)
    +      mp_group = dbcsr_mp_group(mp_obj_new)
    +      !
    +      IF (MAXVAL(row_dist_new) > UBOUND(pgrid, 1)) &
    +         DBCSR_ABORT('Row distribution references unexistent processor rows')
    +      IF (dbg) THEN
    +         IF (MAXVAL(row_dist_new) .NE. UBOUND(pgrid, 1)) &
    +            DBCSR_WARN('Range of row distribution not equal to processor rows')
    +      END IF
    +      IF (MAXVAL(col_dist_new) > UBOUND(pgrid, 2)) &
    +         DBCSR_ABORT('Col distribution references unexistent processor cols')
    +      IF (dbg) THEN
    +         IF (MAXVAL(col_dist_new) .NE. UBOUND(pgrid, 2)) &
    +            DBCSR_WARN('Range of col distribution not equal to processor cols')
    +      END IF
    +      ALLOCATE (send_count(2, 0:numnodes - 1))
    +      ALLOCATE (recv_count(2, 0:numnodes - 1))
    +      ALLOCATE (total_send_count(2, 0:numnodes - 1))
    +      ALLOCATE (total_recv_count(2, 0:numnodes - 1))
    +      ALLOCATE (sdp(0:numnodes - 1))
    +      ALLOCATE (sd_disp(0:numnodes - 1))
    +      ALLOCATE (smp(0:numnodes - 1))
    +      ALLOCATE (sm_disp(0:numnodes - 1))
    +      ALLOCATE (rd_disp(0:numnodes - 1))
    +      ALLOCATE (rm_disp(0:numnodes - 1))
    +      IF (dbg) THEN
    +         cs1 = dbcsr_checksum(matrix)
    +      END IF
    +      !cs1 = dbcsr_checksum (matrix)
    +      !call dbcsr_print(matrix)
    +      !
    +      !
    +      ! Count initial sizes for sending.
    +      !
    +      ! We go through every element of every local block and determine
    +      ! to which processor it must be sent. It could be more efficient,
    +      ! but at least the index data are run-length encoded.
    +      send_count(:, :) = 0
    +      CALL dbcsr_iterator_start(iter, matrix)
    +      dst_p = -1
    +      DO WHILE (dbcsr_iterator_blocks_left(iter))
    +         CALL dbcsr_iterator_next_block(iter, row, col, blk)
    +         DO col_int = n_col_reblocks(1, col), &
    +            n_col_reblocks(1, col) + n_col_reblocks(2, col) - 1
    +            blk_col_new = col_reblocks(1, col_int)
    +            DO row_int = n_row_reblocks(1, row), &
    +               n_row_reblocks(1, row) + n_row_reblocks(2, row) - 1
    +               blk_row_new = row_reblocks(1, row_int)
    +               IF (.NOT. sym .OR. blk_col_new .GE. blk_row_new) THEN
    +                  tr = .FALSE.
    +                  CALL dbcsr_get_stored_coordinates(redist, &
    +                                                    blk_row_new, blk_col_new, dst_p)
    +                  send_count(1, dst_p) = send_count(1, dst_p) + 1
    +                  send_count(2, dst_p) = send_count(2, dst_p) + &
    +                                         col_reblocks(2, col_int)*row_reblocks(2, row_int)
    +               END IF
    +            END DO
    +         END DO
    +      END DO
    +      CALL dbcsr_iterator_stop(iter)
    +      !
    +      !
    +      CALL mp_alltoall(send_count, recv_count, 2, mp_group)
    +      ! Allocate data structures needed for data exchange.
    +      CALL dbcsr_data_init(recv_data)
    +      CALL dbcsr_data_new(recv_data, data_type, SUM(recv_count(2, :)))
    +      ALLOCATE (recv_meta(metalen*SUM(recv_count(1, :))))
    +      CALL dbcsr_data_init(send_data)
    +      CALL dbcsr_data_new(send_data, data_type, SUM(send_count(2, :)))
    +      ALLOCATE (send_meta(metalen*SUM(send_count(1, :))))
    +      ! Fill in the meta data structures and copy the data.
    +      DO dst_p = 0, numnodes - 1
    +         total_send_count(1, dst_p) = send_count(1, dst_p)
    +         total_send_count(2, dst_p) = send_count(2, dst_p)
    +         total_recv_count(1, dst_p) = recv_count(1, dst_p)
    +         total_recv_count(2, dst_p) = recv_count(2, dst_p)
    +      END DO
    +      sd_disp = -1; sm_disp = -1
    +      rd_disp = -1; rm_disp = -1
    +      sd_disp(0) = 1; sm_disp(0) = 1
    +      rd_disp(0) = 1; rm_disp(0) = 1
    +      DO dst_p = 1, numnodes - 1
    +         sm_disp(dst_p) = sm_disp(dst_p - 1) &
    +                          + metalen*total_send_count(1, dst_p - 1)
    +         sd_disp(dst_p) = sd_disp(dst_p - 1) &
    +                          + total_send_count(2, dst_p - 1)
    +         rm_disp(dst_p) = rm_disp(dst_p - 1) &
    +                          + metalen*total_recv_count(1, dst_p - 1)
    +         rd_disp(dst_p) = rd_disp(dst_p - 1) &
    +                          + total_recv_count(2, dst_p - 1)
    +      END DO
    +      sdp(:) = sd_disp     ! sdp points to the the next place to store
    +      ! data. It is postincremented.
    +      smp(:) = sm_disp - metalen  ! But smp points to the "working" data, not
    +      ! the next. It is pre-incremented, so we must
    +      ! first rewind it.
    +      !
    +      CALL dbcsr_data_init(data_block)
    +      CALL dbcsr_data_new(data_block, data_type)
    +      CALL dbcsr_iterator_start(iter, matrix)
    +      dst_p = -1
    +      DO WHILE (dbcsr_iterator_blocks_left(iter))
    +         CALL dbcsr_iterator_next_block(iter, row, col, data_block, tr, blk, &
    +                                        row_size=row_size, col_size=col_size)
    +         !IF (tr) WRITE(*,*)"block at",row,col," is transposed"
    +         DO col_int = n_col_reblocks(1, col), &
    +            n_col_reblocks(1, col) + n_col_reblocks(2, col) - 1
    +            blk_col_new = col_reblocks(1, col_int)
    +            DO row_int = n_row_reblocks(1, row), &
    +               n_row_reblocks(1, row) + n_row_reblocks(2, row) - 1
    +               blk_row_new = row_reblocks(1, row_int)
    +               loc_ok: IF (.NOT. sym .OR. blk_col_new .GE. blk_row_new) THEN
    +                  IF (dbg) &
    +                     WRITE (*, *) 'using block', blk_row_new, 'x', blk_col_new
    +                  ! Start a new RLE run
    +                  tr = .FALSE.
    +                  CALL dbcsr_get_stored_coordinates(redist, &
    +                                                    blk_row_new, blk_col_new, dst_p)
    +                  row_offset_old = row_reblocks(3, row_int)
    +                  col_offset_old = col_reblocks(3, col_int)
    +                  row_offset_new = row_reblocks(4, row_int)
    +                  col_offset_new = col_reblocks(4, col_int)
    +                  row_rle = row_reblocks(2, row_int)
    +                  col_rle = col_reblocks(2, col_int)
    +                  smp(dst_p) = smp(dst_p) + metalen
    +                  send_meta(smp(dst_p)) = blk_row_new   ! new blocked row
    +                  send_meta(smp(dst_p) + 1) = blk_col_new ! new blocked column
    +                  send_meta(smp(dst_p) + 2) = row_offset_new  ! row in new block
    +                  send_meta(smp(dst_p) + 3) = col_offset_new  ! col in new block
    +                  send_meta(smp(dst_p) + 4) = row_rle ! RLE rows
    +                  send_meta(smp(dst_p) + 5) = col_rle ! RLE columns
    +                  send_meta(smp(dst_p) + 6) = sdp(dst_p) - sd_disp(dst_p) ! Offset in data
    +                  nze_rle = row_rle*col_rle
    +                  ! Copy current block into the send buffer
    +                  CALL dbcsr_block_partial_copy( &
    +                     send_data, dst_offset=sdp(dst_p) - 1, &
    +                     dst_rs=row_rle, dst_cs=col_rle, dst_tr=.FALSE., &
    +                     dst_r_lb=1, dst_c_lb=1, &
    +                     src=data_block, &
    +                     src_rs=row_size, src_cs=col_size, src_tr=tr, &
    +                     src_r_lb=row_offset_old, src_c_lb=col_offset_old, &
    +                     nrow=row_rle, ncol=col_rle)
    +                  sdp(dst_p) = sdp(dst_p) + nze_rle
    +               END IF loc_ok
    +            END DO ! row_int
    +         END DO ! col_int
    +      END DO
    +      CALL dbcsr_iterator_stop(iter)
    +      CALL dbcsr_data_clear_pointer(data_block)
    +      CALL dbcsr_data_release(data_block)
    +
    +      ! Exchange the data and metadata structures.
    +      !
    +      SELECT CASE (data_type)
    +      CASE (dbcsr_type_real_4)
    +         CALL hybrid_alltoall_s1( &
    +            send_data%d%r_sp(:), total_send_count(2, :), sd_disp(:) - 1, &
    +            recv_data%d%r_sp(:), total_recv_count(2, :), rd_disp(:) - 1, &
    +            mp_obj_new)
    +      CASE (dbcsr_type_real_8)
    +         !CALL mp_alltoall(&
    +         !     send_data%d%r_dp(:), total_send_count(2,:), sd_disp(:)-1,&
    +         !     recv_data%d%r_dp(:), total_recv_count(2,:), rd_disp(:)-1,&
    +         !     mp_group)
    +         CALL hybrid_alltoall_d1( &
    +            send_data%d%r_dp(:), total_send_count(2, :), sd_disp(:) - 1, &
    +            recv_data%d%r_dp(:), total_recv_count(2, :), rd_disp(:) - 1, &
    +            mp_obj_new)
    +      CASE (dbcsr_type_complex_4)
    +         CALL hybrid_alltoall_c1( &
    +            send_data%d%c_sp(:), total_send_count(2, :), sd_disp(:) - 1, &
    +            recv_data%d%c_sp(:), total_recv_count(2, :), rd_disp(:) - 1, &
    +            mp_obj_new)
    +      CASE (dbcsr_type_complex_8)
    +         CALL hybrid_alltoall_z1( &
    +            send_data%d%c_dp(:), total_send_count(2, :), sd_disp(:) - 1, &
    +            recv_data%d%c_dp(:), total_recv_count(2, :), rd_disp(:) - 1, &
    +            mp_obj_new)
    +      CASE default
    +         DBCSR_ABORT("Invalid matrix type")
    +      END SELECT
    +      CALL hybrid_alltoall_i1(send_meta(:), metalen*total_send_count(1, :), sm_disp(:) - 1, &
    +                              recv_meta(:), metalen*total_recv_count(1, :), rm_disp(:) - 1, mp_obj_new)
    +      !
    +      ! Now fill in the data.
    +      CALL dbcsr_work_create(redist, &
    +                             nblks_guess=SUM(recv_count(1, :)), &
    +                             sizedata_guess=SUM(recv_count(2, :)), work_mutable=.TRUE.)
    +      CALL dbcsr_data_init(buff_data)
    +      CALL dbcsr_data_init(data_block)
    +      CALL dbcsr_data_new(buff_data, dbcsr_type_1d_to_2d(data_type), &
    +                          redist%max_rbs, redist%max_cbs)
    +      CALL dbcsr_data_new(data_block, dbcsr_type_1d_to_2d(data_type))
    +
    +      !blk_p = 1
    +      !blk = 1
    +      blk_ps = 0
    +      blks = 0
    +      cnt_fnd = 0; cnt_new = 0; cnt_skip = 0
    +      DO src_p = 0, numnodes - 1
    +         data_offset_l = rd_disp(src_p)
    +         DO meta_l = 1, recv_count(1, src_p)
    +            stored_row_new = recv_meta(rm_disp(src_p) + metalen*(meta_l - 1))
    +            stored_col_new = recv_meta(rm_disp(src_p) + metalen*(meta_l - 1) + 1)
    +            row_offset_new = recv_meta(rm_disp(src_p) + metalen*(meta_l - 1) + 2)
    +            col_offset_new = recv_meta(rm_disp(src_p) + metalen*(meta_l - 1) + 3)
    +            row_rle = recv_meta(rm_disp(src_p) + metalen*(meta_l - 1) + 4)
    +            col_rle = recv_meta(rm_disp(src_p) + metalen*(meta_l - 1) + 5)
    +            data_offset_l = rd_disp(src_p) &
    +                            + recv_meta(rm_disp(src_p) + metalen*(meta_l - 1) + 6)
    +
    +            CALL dbcsr_data_clear_pointer(data_block)
    +            CALL dbcsr_get_block_p(redist, stored_row_new, stored_col_new, &
    +                                   data_block, tr, found)
    +            valid_block = found
    +
    +            IF (found) cnt_fnd = cnt_fnd + 1
    +            IF (.NOT. found .AND. .NOT. my_keep_sparsity) THEN
    +               ! We have to set up a buffer block
    +               CALL dbcsr_data_set_pointer(data_block, &
    +                                           rsize=row_blk_size_new(stored_row_new), &
    +                                           csize=col_blk_size_new(stored_col_new), &
    +                                           pointee=buff_data)
    +               CALL dbcsr_data_clear(data_block)
    +               !r2_dp => r2_dp_buff(1:row_blk_size_new (stored_row_new),&
    +               !     1:col_blk_size_new (stored_col_new))
    +               !r2_dp(:,:) = 0.0_dp
    +               tr = .FALSE.
    +               blks = blks + 1
    +               blk_ps = blk_ps + row_blk_size_new(stored_row_new)* &
    +                        col_blk_size_new(stored_col_new)
    +               valid_block = .TRUE.
    +               cnt_new = cnt_new + 1
    +            END IF
    +            nze_rle = row_rle*col_rle
    +
    +            IF (valid_block) THEN
    +               row_size_new = row_blk_size_new(stored_row_new)
    +               col_size_new = col_blk_size_new(stored_col_new)
    +               CALL dbcsr_block_partial_copy( &
    +                  dst=data_block, dst_tr=tr, &
    +                  dst_rs=row_size_new, dst_cs=col_size_new, &
    +                  dst_r_lb=row_offset_new, dst_c_lb=col_offset_new, &
    +                  src=recv_data, src_offset=data_offset_l - 1, &
    +                  src_rs=row_rle, src_cs=col_rle, src_tr=.FALSE., &
    +                  src_r_lb=1, src_c_lb=1, &
    +                  nrow=row_rle, ncol=col_rle)
    +            ELSE
    +               cnt_skip = cnt_skip + 1
    +            END IF
    +
    +            data_offset_l = data_offset_l + nze_rle
    +            IF ((.NOT. found .OR. my_summation) .AND. valid_block) THEN
    +               IF (dbg) WRITE (*, *) routineN//" Adding new block at", &
    +                  stored_row_new, stored_col_new
    +               CALL dbcsr_put_block(redist, stored_row_new, stored_col_new, &
    +                                    data_block, transposed=tr, summation=my_summation)
    +               !DEALLOCATE (r2_dp)
    +            ELSE
    +               IF (.NOT. my_keep_sparsity .AND. dbg) &
    +                  WRITE (*, *) routineN//" Reusing block at", &
    +                  stored_row_new, stored_col_new
    +            END IF
    +         END DO
    +      END DO
    +
    +      CALL dbcsr_data_clear_pointer(data_block)
    +      CALL dbcsr_data_release(buff_data)
    +      CALL dbcsr_data_release(data_block)
    +      !
    +      IF (dbg) THEN
    +         WRITE (*, *) routineN//" Declared blocks=", redist%wms(1)%lastblk, &
    +            "actual=", blks
    +         WRITE (*, *) routineN//" Declared data size=", redist%wms(1)%datasize, &
    +            "actual=", blk_ps
    +      END IF
    +
    +      CALL dbcsr_finalize(redist)
    +
    +      DEALLOCATE (send_count)
    +      DEALLOCATE (recv_count)
    +      DEALLOCATE (sdp); DEALLOCATE (sd_disp)
    +      DEALLOCATE (smp); DEALLOCATE (sm_disp)
    +      DEALLOCATE (rd_disp)
    +      DEALLOCATE (rm_disp)
    +
    +      CALL dbcsr_data_release(recv_data)
    +      CALL dbcsr_data_release(send_data)
    +
    +      DEALLOCATE (recv_meta)
    +      DEALLOCATE (send_meta)
     
    -      CALL dbcsr_complete_redistribute_prv(matrix%prv, redist%prv, keep_sparsity, summation)
    +      !if (dbg) call dbcsr_print(redist)
    +      IF (dbg) THEN
    +         cs2 = dbcsr_checksum(redist)
    +         WRITE (*, *) routineN//" Checksums=", cs1, cs2, cs1 - cs2
    +      END IF
    +      !IF(cs1-cs2 > 0.00001) DBCSR_ABORT("Mangled data!")
    +      CALL timestop(handle)
        END SUBROUTINE dbcsr_complete_redistribute
     
    diff --git a/develop/proc/dbcsr_conjg.html b/develop/proc/dbcsr_conjg.html index 0318e4aba0e..0fbff22f8a8 100644 --- a/develop/proc/dbcsr_conjg.html +++ b/develop/proc/dbcsr_conjg.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_convert_csr_to_dbcsr.html b/develop/proc/dbcsr_convert_csr_to_dbcsr.html index 0d5e02a05ea..dc23fbdc034 100644 --- a/develop/proc/dbcsr_convert_csr_to_dbcsr.html +++ b/develop/proc/dbcsr_convert_csr_to_dbcsr.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_convert_dbcsr_to_csr.html b/develop/proc/dbcsr_convert_dbcsr_to_csr.html index 897c4e782f7..0665203a4e9 100644 --- a/develop/proc/dbcsr_convert_dbcsr_to_csr.html +++ b/develop/proc/dbcsr_convert_dbcsr_to_csr.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_copy.html b/develop/proc/dbcsr_copy.html index 7f35753a314..236fc479e40 100644 --- a/develop/proc/dbcsr_copy.html +++ b/develop/proc/dbcsr_copy.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_copy_into_existing.html b/develop/proc/dbcsr_copy_into_existing.html index 5eddba550b6..7f7ae5fa0db 100644 --- a/develop/proc/dbcsr_copy_into_existing.html +++ b/develop/proc/dbcsr_copy_into_existing.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_copy_into_existing_sym.html b/develop/proc/dbcsr_copy_into_existing_sym.html index 03018cd09fc..a5ea027d9b4 100644 --- a/develop/proc/dbcsr_copy_into_existing_sym.html +++ b/develop/proc/dbcsr_copy_into_existing_sym.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_copy_into_existing~2.html b/develop/proc/dbcsr_copy_into_existing~2.html index bf3b76da1a0..631f004a54c 100644 --- a/develop/proc/dbcsr_copy_into_existing~2.html +++ b/develop/proc/dbcsr_copy_into_existing~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_copy_sort_data.html b/develop/proc/dbcsr_copy_sort_data.html index bd9d1c25962..32ea5aefe6a 100644 --- a/develop/proc/dbcsr_copy_sort_data.html +++ b/develop/proc/dbcsr_copy_sort_data.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -195,7 +195,7 @@

    Arguments

    @@ -214,7 +214,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    @@ -252,7 +252,7 @@

    Arguments

    @@ -271,7 +271,7 @@

    Arguments

    @@ -286,7 +286,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_copy_submatrix.html b/develop/proc/dbcsr_copy_submatrix.html index 6a2d4456133..1e399ca8359 100644 --- a/develop/proc/dbcsr_copy_submatrix.html +++ b/develop/proc/dbcsr_copy_submatrix.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_copy~2.html b/develop/proc/dbcsr_copy~2.html index 8d0a13ed565..c834ccda870 100644 --- a/develop/proc/dbcsr_copy~2.html +++ b/develop/proc/dbcsr_copy~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -258,7 +258,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_count_row_index_copy.html b/develop/proc/dbcsr_count_row_index_copy.html index c9916159a62..7aef4b26a53 100644 --- a/develop/proc/dbcsr_count_row_index_copy.html +++ b/develop/proc/dbcsr_count_row_index_copy.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_count_row_index_inplace.html b/develop/proc/dbcsr_count_row_index_inplace.html index 34cc7de26f9..218612d5219 100644 --- a/develop/proc/dbcsr_count_row_index_inplace.html +++ b/develop/proc/dbcsr_count_row_index_inplace.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_create_brd.html b/develop/proc/dbcsr_create_brd.html index 429b063184e..f31af9fefb5 100644 --- a/develop/proc/dbcsr_create_brd.html +++ b/develop/proc/dbcsr_create_brd.html @@ -159,7 +159,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_create_image_dist.html b/develop/proc/dbcsr_create_image_dist.html index 4daaad1c361..161a2b17f8f 100644 --- a/develop/proc/dbcsr_create_image_dist.html +++ b/develop/proc/dbcsr_create_image_dist.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_create_new.html b/develop/proc/dbcsr_create_new.html index 2ef15e113ca..a2d9d66a7d1 100644 --- a/develop/proc/dbcsr_create_new.html +++ b/develop/proc/dbcsr_create_new.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    @@ -263,7 +263,7 @@

    Arguments

    @@ -293,7 +293,7 @@

    Arguments

    @@ -323,7 +323,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_create_new~2.html b/develop/proc/dbcsr_create_new~2.html index 74dadee0f61..4a6a5915ad9 100644 --- a/develop/proc/dbcsr_create_new~2.html +++ b/develop/proc/dbcsr_create_new~2.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    @@ -223,7 +223,7 @@

    Arguments

    @@ -238,7 +238,7 @@

    Arguments

    @@ -253,7 +253,7 @@

    Arguments

    @@ -268,7 +268,7 @@

    Arguments

    @@ -283,7 +283,7 @@

    Arguments

    @@ -299,7 +299,7 @@

    Arguments

    @@ -315,7 +315,7 @@

    Arguments

    @@ -330,7 +330,7 @@

    Arguments

    @@ -392,7 +392,7 @@

    Arguments

    @@ -407,7 +407,7 @@

    Arguments

    @@ -422,7 +422,7 @@

    Arguments

    @@ -437,7 +437,7 @@

    Arguments

    @@ -469,7 +469,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_create_template.html b/develop/proc/dbcsr_create_template.html index 3d573361318..373bd3b0d7c 100644 --- a/develop/proc/dbcsr_create_template.html +++ b/develop/proc/dbcsr_create_template.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    @@ -263,7 +263,7 @@

    Arguments

    @@ -278,7 +278,7 @@

    Arguments

    @@ -293,7 +293,7 @@

    Arguments

    @@ -323,7 +323,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_create_template~2.html b/develop/proc/dbcsr_create_template~2.html index d388b552fdb..a036b819a28 100644 --- a/develop/proc/dbcsr_create_template~2.html +++ b/develop/proc/dbcsr_create_template~2.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    @@ -263,7 +263,7 @@

    Arguments

    @@ -278,7 +278,7 @@

    Arguments

    @@ -293,7 +293,7 @@

    Arguments

    @@ -308,7 +308,7 @@

    Arguments

    @@ -323,7 +323,7 @@

    Arguments

    @@ -338,7 +338,7 @@

    Arguments

    @@ -398,7 +398,7 @@

    Arguments

    @@ -413,7 +413,7 @@

    Arguments

    @@ -443,7 +443,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_crop_matrix.html b/develop/proc/dbcsr_crop_matrix.html index 4ce40984fbd..e695919f07a 100644 --- a/develop/proc/dbcsr_crop_matrix.html +++ b/develop/proc/dbcsr_crop_matrix.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_csr_create_from_dbcsr.html b/develop/proc/dbcsr_csr_create_from_dbcsr.html index b29e7f6e0d9..f278b02d197 100644 --- a/develop/proc/dbcsr_csr_create_from_dbcsr.html +++ b/develop/proc/dbcsr_csr_create_from_dbcsr.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_data_area.html b/develop/proc/dbcsr_data_area.html index 6e061332413..17280dd9138 100644 --- a/develop/proc/dbcsr_data_area.html +++ b/develop/proc/dbcsr_data_area.html @@ -159,7 +159,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    Return Value - + type(dbcsr_data_obj)

    diff --git a/develop/proc/dbcsr_data_clear0.html b/develop/proc/dbcsr_data_clear0.html index 156cd7845aa..97d55fbac37 100644 --- a/develop/proc/dbcsr_data_clear0.html +++ b/develop/proc/dbcsr_data_clear0.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_data_clear_nt.html b/develop/proc/dbcsr_data_clear_nt.html index a25ba6a9a01..3e2c74939a2 100644 --- a/develop/proc/dbcsr_data_clear_nt.html +++ b/develop/proc/dbcsr_data_clear_nt.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -249,7 +249,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_data_clear_pointer.html b/develop/proc/dbcsr_data_clear_pointer.html index 653c94d49c6..f21fa1428ca 100644 --- a/develop/proc/dbcsr_data_clear_pointer.html +++ b/develop/proc/dbcsr_data_clear_pointer.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_data_copy_aa.html b/develop/proc/dbcsr_data_copy_aa.html index 11d98d21aff..c4aa14b625c 100644 --- a/develop/proc/dbcsr_data_copy_aa.html +++ b/develop/proc/dbcsr_data_copy_aa.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -207,7 +207,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_data_copy_aa2.html b/develop/proc/dbcsr_data_copy_aa2.html index b28536f8797..0ccf5b22252 100644 --- a/develop/proc/dbcsr_data_copy_aa2.html +++ b/develop/proc/dbcsr_data_copy_aa2.html @@ -160,7 +160,7 @@

    Arguments

    @@ -207,7 +207,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_data_copyall.html b/develop/proc/dbcsr_data_copyall.html index 0304a39ed33..76d6aff28f2 100644 --- a/develop/proc/dbcsr_data_copyall.html +++ b/develop/proc/dbcsr_data_copyall.html @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_data_dev2host.html b/develop/proc/dbcsr_data_dev2host.html index 6f8ff514d80..edd0610b744 100644 --- a/develop/proc/dbcsr_data_dev2host.html +++ b/develop/proc/dbcsr_data_dev2host.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_data_ensure_size.html b/develop/proc/dbcsr_data_ensure_size.html index e21d27f82bf..c3d404cb968 100644 --- a/develop/proc/dbcsr_data_ensure_size.html +++ b/develop/proc/dbcsr_data_ensure_size.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_data_exists.html b/develop/proc/dbcsr_data_exists.html index 76289aaf377..13e6eef526e 100644 --- a/develop/proc/dbcsr_data_exists.html +++ b/develop/proc/dbcsr_data_exists.html @@ -159,7 +159,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    Return Value - + logical

    diff --git a/develop/proc/dbcsr_data_get_memory_type.html b/develop/proc/dbcsr_data_get_memory_type.html index 787f01d708c..7ae649a9e9c 100644 --- a/develop/proc/dbcsr_data_get_memory_type.html +++ b/develop/proc/dbcsr_data_get_memory_type.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + type(dbcsr_memtype_type)

    diff --git a/develop/proc/dbcsr_data_get_size.html b/develop/proc/dbcsr_data_get_size.html index 1449152019c..343d535cbcc 100644 --- a/develop/proc/dbcsr_data_get_size.html +++ b/develop/proc/dbcsr_data_get_size.html @@ -159,7 +159,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_data_get_size_referenced.html b/develop/proc/dbcsr_data_get_size_referenced.html index b9377f6fc16..6530b3c485c 100644 --- a/develop/proc/dbcsr_data_get_size_referenced.html +++ b/develop/proc/dbcsr_data_get_size_referenced.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_data_get_sizes_1.html b/develop/proc/dbcsr_data_get_sizes_1.html index 67e2afca9bc..11645ec2b36 100644 --- a/develop/proc/dbcsr_data_get_sizes_1.html +++ b/develop/proc/dbcsr_data_get_sizes_1.html @@ -159,7 +159,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_data_get_sizes_2.html b/develop/proc/dbcsr_data_get_sizes_2.html index 65fab457500..eda03965212 100644 --- a/develop/proc/dbcsr_data_get_sizes_2.html +++ b/develop/proc/dbcsr_data_get_sizes_2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_data_get_sizes_any.html b/develop/proc/dbcsr_data_get_sizes_any.html index 6fe07699c33..0599eccee78 100644 --- a/develop/proc/dbcsr_data_get_sizes_any.html +++ b/develop/proc/dbcsr_data_get_sizes_any.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_data_get_type.html b/develop/proc/dbcsr_data_get_type.html index df4400aaa91..43f25be3f9b 100644 --- a/develop/proc/dbcsr_data_get_type.html +++ b/develop/proc/dbcsr_data_get_type.html @@ -159,7 +159,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_data_hold.html b/develop/proc/dbcsr_data_hold.html index e925c55956f..7d3f8c66a58 100644 --- a/develop/proc/dbcsr_data_hold.html +++ b/develop/proc/dbcsr_data_hold.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_data_host2dev.html b/develop/proc/dbcsr_data_host2dev.html index 68db538402e..89ce6b10eca 100644 --- a/develop/proc/dbcsr_data_host2dev.html +++ b/develop/proc/dbcsr_data_host2dev.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_data_init.html b/develop/proc/dbcsr_data_init.html index 83b3c92d9ef..b7f37aad0bd 100644 --- a/develop/proc/dbcsr_data_init.html +++ b/develop/proc/dbcsr_data_init.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_data_new.html b/develop/proc/dbcsr_data_new.html index 198dd5621ac..cec95fed7b8 100644 --- a/develop/proc/dbcsr_data_new.html +++ b/develop/proc/dbcsr_data_new.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_data_release.html b/develop/proc/dbcsr_data_release.html index 9174bcdc914..13d4d03f004 100644 --- a/develop/proc/dbcsr_data_release.html +++ b/develop/proc/dbcsr_data_release.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_data_set_ac.html b/develop/proc/dbcsr_data_set_ac.html index 31a85f9bd91..310e60e3441 100644 --- a/develop/proc/dbcsr_data_set_ac.html +++ b/develop/proc/dbcsr_data_set_ac.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -207,7 +207,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_data_set_ad.html b/develop/proc/dbcsr_data_set_ad.html index a6779c38d37..d53cbe5d75b 100644 --- a/develop/proc/dbcsr_data_set_ad.html +++ b/develop/proc/dbcsr_data_set_ad.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -207,7 +207,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_data_set_as.html b/develop/proc/dbcsr_data_set_as.html index f520ae88351..b2d63b8a7eb 100644 --- a/develop/proc/dbcsr_data_set_as.html +++ b/develop/proc/dbcsr_data_set_as.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -207,7 +207,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_data_set_az.html b/develop/proc/dbcsr_data_set_az.html index f1b9e35c941..5a784e28068 100644 --- a/develop/proc/dbcsr_data_set_az.html +++ b/develop/proc/dbcsr_data_set_az.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -207,7 +207,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_data_set_size_referenced.html b/develop/proc/dbcsr_data_set_size_referenced.html index 8589d2283c3..f81dafded99 100644 --- a/develop/proc/dbcsr_data_set_size_referenced.html +++ b/develop/proc/dbcsr_data_set_size_referenced.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_data_valid.html b/develop/proc/dbcsr_data_valid.html index 6bf9abe89fb..1ea8c1eaea9 100644 --- a/develop/proc/dbcsr_data_valid.html +++ b/develop/proc/dbcsr_data_valid.html @@ -159,7 +159,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    Return Value - + logical

    diff --git a/develop/proc/dbcsr_data_verify_bounds.html b/develop/proc/dbcsr_data_verify_bounds.html index f9667d520e9..81d07d7c0cb 100644 --- a/develop/proc/dbcsr_data_verify_bounds.html +++ b/develop/proc/dbcsr_data_verify_bounds.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_data_zero.html b/develop/proc/dbcsr_data_zero.html index 52b6a018a5c..6cee98fb47e 100644 --- a/develop/proc/dbcsr_data_zero.html +++ b/develop/proc/dbcsr_data_zero.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_datablock_redistribute.html b/develop/proc/dbcsr_datablock_redistribute.html index cf288f7d04c..8909924c0b0 100644 --- a/develop/proc/dbcsr_datablock_redistribute.html +++ b/develop/proc/dbcsr_datablock_redistribute.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -239,7 +239,7 @@

    Arguments

    @@ -260,7 +260,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_datatype_sizeof.html b/develop/proc/dbcsr_datatype_sizeof.html index d1e5227dc76..7015247c81b 100644 --- a/develop/proc/dbcsr_datatype_sizeof.html +++ b/develop/proc/dbcsr_datatype_sizeof.html @@ -159,7 +159,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_deallocate_matrix.html b/develop/proc/dbcsr_deallocate_matrix.html index 08863837d60..83fa3850405 100644 --- a/develop/proc/dbcsr_deallocate_matrix.html +++ b/develop/proc/dbcsr_deallocate_matrix.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_default_logger_stack_size.html b/develop/proc/dbcsr_default_logger_stack_size.html index 44477cd63d1..c4dde409d44 100644 --- a/develop/proc/dbcsr_default_logger_stack_size.html +++ b/develop/proc/dbcsr_default_logger_stack_size.html @@ -150,7 +150,7 @@

    Arguments


    Return Value - + integer

    diff --git a/develop/proc/dbcsr_destroy.html b/develop/proc/dbcsr_destroy.html index f00ce274d6f..7c500d8e19f 100644 --- a/develop/proc/dbcsr_destroy.html +++ b/develop/proc/dbcsr_destroy.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_desymmetrize.html b/develop/proc/dbcsr_desymmetrize.html index b58bebc1b53..daaeed7ac1c 100644 --- a/develop/proc/dbcsr_desymmetrize.html +++ b/develop/proc/dbcsr_desymmetrize.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_desymmetrize_deep.html b/develop/proc/dbcsr_desymmetrize_deep.html index 085e1fe659d..8e5fddc2e03 100644 --- a/develop/proc/dbcsr_desymmetrize_deep.html +++ b/develop/proc/dbcsr_desymmetrize_deep.html @@ -161,7 +161,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_dist_bin.html b/develop/proc/dbcsr_dist_bin.html index 6bb6f5555a5..fbae48d20d9 100644 --- a/develop/proc/dbcsr_dist_bin.html +++ b/develop/proc/dbcsr_dist_bin.html @@ -174,7 +174,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_dist_release_locals.html b/develop/proc/dbcsr_dist_release_locals.html index 3969b3eb802..b29f3235b1a 100644 --- a/develop/proc/dbcsr_dist_release_locals.html +++ b/develop/proc/dbcsr_dist_release_locals.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_distribute.html b/develop/proc/dbcsr_distribute.html index f12125cb01a..ff39e102d75 100644 --- a/develop/proc/dbcsr_distribute.html +++ b/develop/proc/dbcsr_distribute.html @@ -74,20 +74,20 @@

    dbcsr_distribute
  • 95 statements + title=" 0.0% of total for procedures.">5 statements
  • - Source File + Source File
  • @@ -143,7 +143,6 @@

    public subroutine dbcsr_distribute(matrix, fast)

    -

    Distributes a matrix that is currently replicated.

    Arguments

    @@ -159,8 +158,8 @@

    Arguments

    @@ -184,7 +183,7 @@

    Arguments

    @@ -205,122 +204,10 @@

    Arguments

    Source Code

       SUBROUTINE dbcsr_distribute(matrix, fast)
    -      !! Distributes a matrix that is currently replicated.
    -
           TYPE(dbcsr_type), INTENT(INOUT)                    :: matrix
    -         !! matrix to replicate
           LOGICAL, INTENT(in), OPTIONAL                      :: fast
    -         !! change just the index, don't touch the data
    -
    -      CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_distribute'
    -
    -      COMPLEX(KIND=dp), DIMENSION(:), POINTER, CONTIGUOUS :: c_dp
    -      COMPLEX(KIND=sp), DIMENSION(:), POINTER, CONTIGUOUS :: c_sp
    -      INTEGER                                            :: blk, col, handle, mynode, nblks, nze, p, &
    -                                                            row
    -      INTEGER, DIMENSION(:), POINTER, CONTIGUOUS         :: col_blk_size, row_blk_size, tmp_index
    -      LOGICAL                                            :: mini, tr
    -      REAL(KIND=dp), DIMENSION(:), POINTER, CONTIGUOUS   :: r_dp
    -      REAL(KIND=sp), DIMENSION(:), POINTER, CONTIGUOUS   :: r_sp
    -      TYPE(dbcsr_data_obj)                               :: tmp_data
    -      TYPE(dbcsr_distribution_obj)                       :: dist
    -      TYPE(dbcsr_iterator)                               :: iter
    -      TYPE(dbcsr_mp_obj)                                 :: mp_obj
    -      TYPE(dbcsr_type)                                   :: distributed
    -
    -!   ---------------------------------------------------------------------------
     
    -      CALL timeset(routineN, handle)
    -      IF (.NOT. dbcsr_valid_index(matrix)) &
    -         DBCSR_ABORT("Matrix not initialized.")
    -      IF (matrix%replication_type .EQ. dbcsr_repl_none) &
    -         DBCSR_WARN("Distributing a non-replicated matrix makes no sense.")
    -      IF (PRESENT(fast)) THEN
    -         mini = fast
    -      ELSE
    -         mini = .FALSE.
    -      END IF
    -      SELECT CASE (matrix%data_type)
    -      CASE (dbcsr_type_real_8)
    -         CALL dbcsr_get_data(matrix%data_area, r_dp)
    -      CASE (dbcsr_type_real_4)
    -         CALL dbcsr_get_data(matrix%data_area, r_sp)
    -         DBCSR_ABORT("Only real double precision")
    -      CASE (dbcsr_type_complex_8)
    -         CALL dbcsr_get_data(matrix%data_area, c_dp)
    -         DBCSR_ABORT("Only real double precision")
    -      CASE (dbcsr_type_complex_4)
    -         CALL dbcsr_get_data(matrix%data_area, c_sp)
    -         DBCSR_ABORT("Only real double precision")
    -      END SELECT
    -      row_blk_size => array_data(matrix%row_blk_size)
    -      col_blk_size => array_data(matrix%col_blk_size)
    -      dist = dbcsr_distribution(matrix)
    -      mp_obj = dbcsr_distribution_mp(dist)
    -      mynode = dbcsr_mp_mynode(dbcsr_distribution_mp(dist))
    -      !
    -      IF (mini) THEN
    -         ! We just mark the blocks as deleted.
    -         CALL dbcsr_iterator_start(iter, matrix)
    -         DO WHILE (dbcsr_iterator_blocks_left(iter))
    -            CALL dbcsr_iterator_next_block(iter, row, col, r_dp, tr, blk)
    -            tr = .FALSE.
    -            CALL dbcsr_get_stored_coordinates(matrix, row, col, p)
    -            IF (mynode .EQ. p) THEN
    -               matrix%blk_p(blk) = 0
    -            END IF
    -         END DO
    -         CALL dbcsr_iterator_stop(iter)
    -         matrix%replication_type = dbcsr_repl_none
    -      ELSE
    -         CALL dbcsr_create(distributed, name='Distributed '//TRIM(matrix%name), &
    -                           template=matrix, &
    -                           matrix_type=dbcsr_type_no_symmetry, &
    -                           replication_type=dbcsr_repl_none)
    -         distributed%replication_type = dbcsr_repl_none
    -         ! First count how many blocks are local.
    -         nze = 0
    -         nblks = 0
    -         CALL dbcsr_iterator_start(iter, matrix)
    -         DO WHILE (dbcsr_iterator_blocks_left(iter))
    -            CALL dbcsr_iterator_next_block(iter, row, col, r_dp, tr, blk)
    -            tr = .FALSE.
    -            CALL dbcsr_get_stored_coordinates(matrix, row, col, p)
    -            IF (mynode .EQ. p) THEN
    -               nze = nze + row_blk_size(row)*col_blk_size(col)
    -               nblks = nblks + 1
    -            END IF
    -         END DO
    -         CALL dbcsr_iterator_stop(iter)
    -         ! Preallocate the array
    -         CALL dbcsr_work_create(distributed, nblks_guess=nblks, &
    -                                sizedata_guess=nze, work_mutable=.FALSE.)
    -         ! Now actually do the work
    -         CALL dbcsr_iterator_start(iter, matrix)
    -         DO WHILE (dbcsr_iterator_blocks_left(iter))
    -            CALL dbcsr_iterator_next_block(iter, row, col, r_dp, tr, blk)
    -            tr = .FALSE.
    -            CALL dbcsr_get_stored_coordinates(matrix, row, col, p)
    -            IF (mynode .EQ. p) THEN
    -               CALL dbcsr_put_block(distributed, row, col, r_dp, transposed=tr)
    -            END IF
    -         END DO
    -         CALL dbcsr_iterator_stop(iter)
    -         CALL dbcsr_finalize(distributed)
    -         ! Now replace the data and index
    -         CALL dbcsr_switch_data_area(matrix, distributed%data_area, &
    -                                     previous_data_area=tmp_data)
    -         CALL dbcsr_switch_data_area(distributed, tmp_data)
    -         CALL dbcsr_data_release(tmp_data)
    -         tmp_index => matrix%index
    -         matrix%index => distributed%index
    -         distributed%index => tmp_index
    -         CALL dbcsr_repoint_index(matrix)
    -         matrix%nze = distributed%nze
    -         matrix%nblks = distributed%nblks
    -         CALL dbcsr_release(distributed)
    -      END IF
    -      CALL timestop(handle)
    +      CALL dbcsr_distribute_prv(matrix%prv, fast)
        END SUBROUTINE dbcsr_distribute
     
    diff --git a/develop/proc/dbcsr_distribute~2.html b/develop/proc/dbcsr_distribute~2.html index dea51e112b5..5e1ac74ce00 100644 --- a/develop/proc/dbcsr_distribute~2.html +++ b/develop/proc/dbcsr_distribute~2.html @@ -74,20 +74,20 @@

    dbcsr_distribute
  • 5 statements + title=" 0.2% of total for procedures.">95 statements
  • - Source File + Source File
  • @@ -143,6 +143,7 @@

    public subroutine dbcsr_distribute(matrix, fast)

    +

    Distributes a matrix that is currently replicated.

    Arguments

    @@ -158,8 +159,8 @@

    Arguments

    @@ -183,7 +184,7 @@

    Arguments

    @@ -204,10 +205,122 @@

    Arguments

    Source Code

       SUBROUTINE dbcsr_distribute(matrix, fast)
    +      !! Distributes a matrix that is currently replicated.
    +
           TYPE(dbcsr_type), INTENT(INOUT)                    :: matrix
    +         !! matrix to replicate
           LOGICAL, INTENT(in), OPTIONAL                      :: fast
    +         !! change just the index, don't touch the data
    +
    +      CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_distribute'
    +
    +      COMPLEX(KIND=dp), DIMENSION(:), POINTER, CONTIGUOUS :: c_dp
    +      COMPLEX(KIND=sp), DIMENSION(:), POINTER, CONTIGUOUS :: c_sp
    +      INTEGER                                            :: blk, col, handle, mynode, nblks, nze, p, &
    +                                                            row
    +      INTEGER, DIMENSION(:), POINTER, CONTIGUOUS         :: col_blk_size, row_blk_size, tmp_index
    +      LOGICAL                                            :: mini, tr
    +      REAL(KIND=dp), DIMENSION(:), POINTER, CONTIGUOUS   :: r_dp
    +      REAL(KIND=sp), DIMENSION(:), POINTER, CONTIGUOUS   :: r_sp
    +      TYPE(dbcsr_data_obj)                               :: tmp_data
    +      TYPE(dbcsr_distribution_obj)                       :: dist
    +      TYPE(dbcsr_iterator)                               :: iter
    +      TYPE(dbcsr_mp_obj)                                 :: mp_obj
    +      TYPE(dbcsr_type)                                   :: distributed
    +
    +!   ---------------------------------------------------------------------------
     
    -      CALL dbcsr_distribute_prv(matrix%prv, fast)
    +      CALL timeset(routineN, handle)
    +      IF (.NOT. dbcsr_valid_index(matrix)) &
    +         DBCSR_ABORT("Matrix not initialized.")
    +      IF (matrix%replication_type .EQ. dbcsr_repl_none) &
    +         DBCSR_WARN("Distributing a non-replicated matrix makes no sense.")
    +      IF (PRESENT(fast)) THEN
    +         mini = fast
    +      ELSE
    +         mini = .FALSE.
    +      END IF
    +      SELECT CASE (matrix%data_type)
    +      CASE (dbcsr_type_real_8)
    +         CALL dbcsr_get_data(matrix%data_area, r_dp)
    +      CASE (dbcsr_type_real_4)
    +         CALL dbcsr_get_data(matrix%data_area, r_sp)
    +         DBCSR_ABORT("Only real double precision")
    +      CASE (dbcsr_type_complex_8)
    +         CALL dbcsr_get_data(matrix%data_area, c_dp)
    +         DBCSR_ABORT("Only real double precision")
    +      CASE (dbcsr_type_complex_4)
    +         CALL dbcsr_get_data(matrix%data_area, c_sp)
    +         DBCSR_ABORT("Only real double precision")
    +      END SELECT
    +      row_blk_size => array_data(matrix%row_blk_size)
    +      col_blk_size => array_data(matrix%col_blk_size)
    +      dist = dbcsr_distribution(matrix)
    +      mp_obj = dbcsr_distribution_mp(dist)
    +      mynode = dbcsr_mp_mynode(dbcsr_distribution_mp(dist))
    +      !
    +      IF (mini) THEN
    +         ! We just mark the blocks as deleted.
    +         CALL dbcsr_iterator_start(iter, matrix)
    +         DO WHILE (dbcsr_iterator_blocks_left(iter))
    +            CALL dbcsr_iterator_next_block(iter, row, col, r_dp, tr, blk)
    +            tr = .FALSE.
    +            CALL dbcsr_get_stored_coordinates(matrix, row, col, p)
    +            IF (mynode .EQ. p) THEN
    +               matrix%blk_p(blk) = 0
    +            END IF
    +         END DO
    +         CALL dbcsr_iterator_stop(iter)
    +         matrix%replication_type = dbcsr_repl_none
    +      ELSE
    +         CALL dbcsr_create(distributed, name='Distributed '//TRIM(matrix%name), &
    +                           template=matrix, &
    +                           matrix_type=dbcsr_type_no_symmetry, &
    +                           replication_type=dbcsr_repl_none)
    +         distributed%replication_type = dbcsr_repl_none
    +         ! First count how many blocks are local.
    +         nze = 0
    +         nblks = 0
    +         CALL dbcsr_iterator_start(iter, matrix)
    +         DO WHILE (dbcsr_iterator_blocks_left(iter))
    +            CALL dbcsr_iterator_next_block(iter, row, col, r_dp, tr, blk)
    +            tr = .FALSE.
    +            CALL dbcsr_get_stored_coordinates(matrix, row, col, p)
    +            IF (mynode .EQ. p) THEN
    +               nze = nze + row_blk_size(row)*col_blk_size(col)
    +               nblks = nblks + 1
    +            END IF
    +         END DO
    +         CALL dbcsr_iterator_stop(iter)
    +         ! Preallocate the array
    +         CALL dbcsr_work_create(distributed, nblks_guess=nblks, &
    +                                sizedata_guess=nze, work_mutable=.FALSE.)
    +         ! Now actually do the work
    +         CALL dbcsr_iterator_start(iter, matrix)
    +         DO WHILE (dbcsr_iterator_blocks_left(iter))
    +            CALL dbcsr_iterator_next_block(iter, row, col, r_dp, tr, blk)
    +            tr = .FALSE.
    +            CALL dbcsr_get_stored_coordinates(matrix, row, col, p)
    +            IF (mynode .EQ. p) THEN
    +               CALL dbcsr_put_block(distributed, row, col, r_dp, transposed=tr)
    +            END IF
    +         END DO
    +         CALL dbcsr_iterator_stop(iter)
    +         CALL dbcsr_finalize(distributed)
    +         ! Now replace the data and index
    +         CALL dbcsr_switch_data_area(matrix, distributed%data_area, &
    +                                     previous_data_area=tmp_data)
    +         CALL dbcsr_switch_data_area(distributed, tmp_data)
    +         CALL dbcsr_data_release(tmp_data)
    +         tmp_index => matrix%index
    +         matrix%index => distributed%index
    +         distributed%index => tmp_index
    +         CALL dbcsr_repoint_index(matrix)
    +         matrix%nze = distributed%nze
    +         matrix%nblks = distributed%nblks
    +         CALL dbcsr_release(distributed)
    +      END IF
    +      CALL timestop(handle)
        END SUBROUTINE dbcsr_distribute
     
    diff --git a/develop/proc/dbcsr_distribution.html b/develop/proc/dbcsr_distribution.html index a6f61d612d4..ecd244782eb 100644 --- a/develop/proc/dbcsr_distribution.html +++ b/develop/proc/dbcsr_distribution.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + type(dbcsr_distribution_obj)

    diff --git a/develop/proc/dbcsr_distribution_col_dist.html b/develop/proc/dbcsr_distribution_col_dist.html index d187c7219dd..7dd879acca8 100644 --- a/develop/proc/dbcsr_distribution_col_dist.html +++ b/develop/proc/dbcsr_distribution_col_dist.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + integer, DIMENSION(:), POINTER, CONTIGUOUS

    diff --git a/develop/proc/dbcsr_distribution_get.html b/develop/proc/dbcsr_distribution_get.html index dd7fbc1ed12..c666fbcf472 100644 --- a/develop/proc/dbcsr_distribution_get.html +++ b/develop/proc/dbcsr_distribution_get.html @@ -74,20 +74,20 @@

    dbcsr_distribution_get
  • 27 statements + title=" 0.0% of total for procedures.">15 statements
  • - Source File + Source File
  • @@ -143,7 +143,6 @@

    public subroutine dbcsr_distribution_get(dist, row_dist, col_dist, nrows, n

    -

    Get distribution parameters

    Arguments

    @@ -159,8 +158,8 @@

    Arguments

    @@ -189,7 +188,7 @@

    Arguments

    @@ -204,7 +203,7 @@

    Arguments

    @@ -219,7 +218,7 @@

    Arguments

    @@ -234,7 +233,7 @@

    Arguments

    @@ -249,8 +248,8 @@

    Arguments

    @@ -279,7 +278,7 @@

    Arguments

    @@ -294,7 +293,7 @@

    Arguments

    @@ -309,7 +308,7 @@

    Arguments

    @@ -324,7 +323,7 @@

    Arguments

    @@ -339,7 +338,7 @@

    Arguments

    @@ -354,7 +353,7 @@

    Arguments

    @@ -385,7 +384,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -210,7 +210,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_distribution_get~2.html b/develop/proc/dbcsr_distribution_get~2.html index df190e45860..a5816a60d08 100644 --- a/develop/proc/dbcsr_distribution_get~2.html +++ b/develop/proc/dbcsr_distribution_get~2.html @@ -74,20 +74,20 @@

    dbcsr_distribution_get
  • 15 statements + title=" 0.0% of total for procedures.">27 statements
  • - Source File + Source File
  • @@ -143,6 +143,7 @@

    public subroutine dbcsr_distribution_get(dist, row_dist, col_dist, nrows, n

    +

    Get distribution parameters

    Arguments

    @@ -158,8 +159,8 @@

    Arguments

    @@ -188,7 +189,7 @@

    Arguments

    @@ -203,7 +204,7 @@

    Arguments

    @@ -218,7 +219,7 @@

    Arguments

    @@ -233,7 +234,7 @@

    Arguments

    @@ -248,8 +249,8 @@

    Arguments

    @@ -278,7 +279,7 @@

    Arguments

    @@ -353,7 +354,7 @@

    Arguments

    @@ -368,7 +369,7 @@

    Arguments

    @@ -384,7 +385,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + logical

    diff --git a/develop/proc/dbcsr_distribution_hold.html b/develop/proc/dbcsr_distribution_hold.html index a62e104a3dd..673b22b73f3 100644 --- a/develop/proc/dbcsr_distribution_hold.html +++ b/develop/proc/dbcsr_distribution_hold.html @@ -79,15 +79,15 @@

    dbcsr_distribution_hold
  • - Source File + Source File
  • @@ -143,7 +143,6 @@

    public subroutine dbcsr_distribution_hold(dist)

    -

    Marks another use of the distribution

    Arguments

    @@ -159,10 +158,10 @@

    Arguments

    - + @@ -190,13 +189,9 @@

    Arguments

    Source Code

       SUBROUTINE dbcsr_distribution_hold(dist)
    -      !! Marks another use of the distribution
    -      TYPE(dbcsr_distribution_obj), INTENT(INOUT)        :: dist
    +      TYPE(dbcsr_distribution_type)                      :: dist
     
    -!   ---------------------------------------------------------------------------
    -
    -!$OMP ATOMIC
    -      dist%d%refcount = dist%d%refcount + 1
    +      CALL dbcsr_distribution_hold_prv(dist%prv)
        END SUBROUTINE dbcsr_distribution_hold
     
    diff --git a/develop/proc/dbcsr_distribution_hold~2.html b/develop/proc/dbcsr_distribution_hold~2.html index 9441c393432..61a8bd23b93 100644 --- a/develop/proc/dbcsr_distribution_hold~2.html +++ b/develop/proc/dbcsr_distribution_hold~2.html @@ -79,15 +79,15 @@

    dbcsr_distribution_hold
  • - Source File + Source File
  • @@ -143,6 +143,7 @@

    public subroutine dbcsr_distribution_hold(dist)

    +

    Marks another use of the distribution

    Arguments

    @@ -158,10 +159,10 @@

    Arguments

    - + @@ -189,9 +190,13 @@

    Arguments

    Source Code

       SUBROUTINE dbcsr_distribution_hold(dist)
    -      TYPE(dbcsr_distribution_type)                      :: dist
    +      !! Marks another use of the distribution
    +      TYPE(dbcsr_distribution_obj), INTENT(INOUT)        :: dist
     
    -      CALL dbcsr_distribution_hold_prv(dist%prv)
    +!   ---------------------------------------------------------------------------
    +
    +!$OMP ATOMIC
    +      dist%d%refcount = dist%d%refcount + 1
        END SUBROUTINE dbcsr_distribution_hold
     
    diff --git a/develop/proc/dbcsr_distribution_local_cols.html b/develop/proc/dbcsr_distribution_local_cols.html index 7de6b83bb56..aeac1192799 100644 --- a/develop/proc/dbcsr_distribution_local_cols.html +++ b/develop/proc/dbcsr_distribution_local_cols.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + integer, DIMENSION(:), POINTER, CONTIGUOUS

    diff --git a/develop/proc/dbcsr_distribution_local_cols_obj.html b/develop/proc/dbcsr_distribution_local_cols_obj.html index 73a215cfaec..593bb131c75 100644 --- a/develop/proc/dbcsr_distribution_local_cols_obj.html +++ b/develop/proc/dbcsr_distribution_local_cols_obj.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + type(array_i1d_obj)

    diff --git a/develop/proc/dbcsr_distribution_local_rows.html b/develop/proc/dbcsr_distribution_local_rows.html index 6747a35748e..2a243850685 100644 --- a/develop/proc/dbcsr_distribution_local_rows.html +++ b/develop/proc/dbcsr_distribution_local_rows.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + integer, DIMENSION(:), POINTER, CONTIGUOUS

    diff --git a/develop/proc/dbcsr_distribution_local_rows_obj.html b/develop/proc/dbcsr_distribution_local_rows_obj.html index 43eb1337981..ddfd99d3c47 100644 --- a/develop/proc/dbcsr_distribution_local_rows_obj.html +++ b/develop/proc/dbcsr_distribution_local_rows_obj.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + type(array_i1d_obj)

    diff --git a/develop/proc/dbcsr_distribution_make_threads.html b/develop/proc/dbcsr_distribution_make_threads.html index 98ba3d2f055..63b9f081996 100644 --- a/develop/proc/dbcsr_distribution_make_threads.html +++ b/develop/proc/dbcsr_distribution_make_threads.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_distribution_max_col_dist.html b/develop/proc/dbcsr_distribution_max_col_dist.html index c52af621ac2..00dfe7a1200 100644 --- a/develop/proc/dbcsr_distribution_max_col_dist.html +++ b/develop/proc/dbcsr_distribution_max_col_dist.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_distribution_max_row_dist.html b/develop/proc/dbcsr_distribution_max_row_dist.html index f52225372ee..43c2cf78cec 100644 --- a/develop/proc/dbcsr_distribution_max_row_dist.html +++ b/develop/proc/dbcsr_distribution_max_row_dist.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_distribution_mp.html b/develop/proc/dbcsr_distribution_mp.html index 6f848448b16..0f54c89d206 100644 --- a/develop/proc/dbcsr_distribution_mp.html +++ b/develop/proc/dbcsr_distribution_mp.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + type(dbcsr_mp_obj)

    diff --git a/develop/proc/dbcsr_distribution_ncols.html b/develop/proc/dbcsr_distribution_ncols.html index a592236241d..c391a740232 100644 --- a/develop/proc/dbcsr_distribution_ncols.html +++ b/develop/proc/dbcsr_distribution_ncols.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_distribution_new.html b/develop/proc/dbcsr_distribution_new.html index 50be5d22aa1..fcdc77ad76f 100644 --- a/develop/proc/dbcsr_distribution_new.html +++ b/develop/proc/dbcsr_distribution_new.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    @@ -249,7 +249,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_distribution_new_low.html b/develop/proc/dbcsr_distribution_new_low.html index ab4bf6ddbe3..6dbff58084f 100644 --- a/develop/proc/dbcsr_distribution_new_low.html +++ b/develop/proc/dbcsr_distribution_new_low.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    @@ -249,7 +249,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_distribution_new_obj.html b/develop/proc/dbcsr_distribution_new_obj.html index ad76b13a491..3474158467b 100644 --- a/develop/proc/dbcsr_distribution_new_obj.html +++ b/develop/proc/dbcsr_distribution_new_obj.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    @@ -220,7 +220,7 @@

    Arguments

    @@ -235,7 +235,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_distribution_new_template.html b/develop/proc/dbcsr_distribution_new_template.html index a4f294022ff..bcad9700c3b 100644 --- a/develop/proc/dbcsr_distribution_new_template.html +++ b/develop/proc/dbcsr_distribution_new_template.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    @@ -249,7 +249,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_distribution_nlocal_cols.html b/develop/proc/dbcsr_distribution_nlocal_cols.html index 1bae4e976d0..597b355ff98 100644 --- a/develop/proc/dbcsr_distribution_nlocal_cols.html +++ b/develop/proc/dbcsr_distribution_nlocal_cols.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_distribution_nlocal_rows.html b/develop/proc/dbcsr_distribution_nlocal_rows.html index 3a90a694589..e28268f24e2 100644 --- a/develop/proc/dbcsr_distribution_nlocal_rows.html +++ b/develop/proc/dbcsr_distribution_nlocal_rows.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_distribution_no_threads.html b/develop/proc/dbcsr_distribution_no_threads.html index 552a4e40307..f7e4ccaaf3a 100644 --- a/develop/proc/dbcsr_distribution_no_threads.html +++ b/develop/proc/dbcsr_distribution_no_threads.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_distribution_nrows.html b/develop/proc/dbcsr_distribution_nrows.html index 06b047d6b61..a89061caf8d 100644 --- a/develop/proc/dbcsr_distribution_nrows.html +++ b/develop/proc/dbcsr_distribution_nrows.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_distribution_num_threads.html b/develop/proc/dbcsr_distribution_num_threads.html index 20298e496a0..8f292bf753b 100644 --- a/develop/proc/dbcsr_distribution_num_threads.html +++ b/develop/proc/dbcsr_distribution_num_threads.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_distribution_processor.html b/develop/proc/dbcsr_distribution_processor.html index 6533027e114..8fc3d7c565b 100644 --- a/develop/proc/dbcsr_distribution_processor.html +++ b/develop/proc/dbcsr_distribution_processor.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_distribution_release.html b/develop/proc/dbcsr_distribution_release.html index 085d0809aa2..636d54da3e2 100644 --- a/develop/proc/dbcsr_distribution_release.html +++ b/develop/proc/dbcsr_distribution_release.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_distribution_release~2.html b/develop/proc/dbcsr_distribution_release~2.html index 4d7e1b36495..52c8a23ae5e 100644 --- a/develop/proc/dbcsr_distribution_release~2.html +++ b/develop/proc/dbcsr_distribution_release~2.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_distribution_row_dist.html b/develop/proc/dbcsr_distribution_row_dist.html index c5d6e9125e8..684282addd9 100644 --- a/develop/proc/dbcsr_distribution_row_dist.html +++ b/develop/proc/dbcsr_distribution_row_dist.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + integer, DIMENSION(:), POINTER, CONTIGUOUS

    diff --git a/develop/proc/dbcsr_distribution_thread_dist.html b/develop/proc/dbcsr_distribution_thread_dist.html index e0b01e8de77..e7c6512cc48 100644 --- a/develop/proc/dbcsr_distribution_thread_dist.html +++ b/develop/proc/dbcsr_distribution_thread_dist.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + type(array_i1d_obj)

    diff --git a/develop/proc/dbcsr_dot_c.html b/develop/proc/dbcsr_dot_c.html index 1bab15e7bac..9657ad98f66 100644 --- a/develop/proc/dbcsr_dot_c.html +++ b/develop/proc/dbcsr_dot_c.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_dot_c~2.html b/develop/proc/dbcsr_dot_c~2.html index 77668c97bae..397a933a7cd 100644 --- a/develop/proc/dbcsr_dot_c~2.html +++ b/develop/proc/dbcsr_dot_c~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_dot_d.html b/develop/proc/dbcsr_dot_d.html index d6cb178bdc5..37506d81f0d 100644 --- a/develop/proc/dbcsr_dot_d.html +++ b/develop/proc/dbcsr_dot_d.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_dot_d~2.html b/develop/proc/dbcsr_dot_d~2.html index a73abfeba42..dbbaa90827d 100644 --- a/develop/proc/dbcsr_dot_d~2.html +++ b/develop/proc/dbcsr_dot_d~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_dot_s.html b/develop/proc/dbcsr_dot_s.html index 6cf23e341fa..5f084742e60 100644 --- a/develop/proc/dbcsr_dot_s.html +++ b/develop/proc/dbcsr_dot_s.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_dot_sd.html b/develop/proc/dbcsr_dot_sd.html index d15c0998086..e5e6f4e5007 100644 --- a/develop/proc/dbcsr_dot_sd.html +++ b/develop/proc/dbcsr_dot_sd.html @@ -160,7 +160,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_dot_s~2.html b/develop/proc/dbcsr_dot_s~2.html index f579b05b28c..e0c5356ab6c 100644 --- a/develop/proc/dbcsr_dot_s~2.html +++ b/develop/proc/dbcsr_dot_s~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_dot_z.html b/develop/proc/dbcsr_dot_z.html index 86bfd898a82..fdc886d3f0f 100644 --- a/develop/proc/dbcsr_dot_z.html +++ b/develop/proc/dbcsr_dot_z.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_dot_z~2.html b/develop/proc/dbcsr_dot_z~2.html index ad4542a1c78..4a4f30e41f0 100644 --- a/develop/proc/dbcsr_dot_z~2.html +++ b/develop/proc/dbcsr_dot_z~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_expand_row_index.html b/develop/proc/dbcsr_expand_row_index.html index 07be6c5c5d6..9f5959e216a 100644 --- a/develop/proc/dbcsr_expand_row_index.html +++ b/develop/proc/dbcsr_expand_row_index.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_expand_row_index_2d.html b/develop/proc/dbcsr_expand_row_index_2d.html index 66de67eaa9c..b25399a54f4 100644 --- a/develop/proc/dbcsr_expand_row_index_2d.html +++ b/develop/proc/dbcsr_expand_row_index_2d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_fill_wm_from_matrix.html b/develop/proc/dbcsr_fill_wm_from_matrix.html index c53c614a238..3ff74e3a3d9 100644 --- a/develop/proc/dbcsr_fill_wm_from_matrix.html +++ b/develop/proc/dbcsr_fill_wm_from_matrix.html @@ -178,7 +178,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_filter.html b/develop/proc/dbcsr_filter.html index 077dd65b15f..6b22ff337c1 100644 --- a/develop/proc/dbcsr_filter.html +++ b/develop/proc/dbcsr_filter.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_filter_anytype.html b/develop/proc/dbcsr_filter_anytype.html index 2cd7a5d33d0..398dbb50a0f 100644 --- a/develop/proc/dbcsr_filter_anytype.html +++ b/develop/proc/dbcsr_filter_anytype.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_filter_c.html b/develop/proc/dbcsr_filter_c.html index cc13d6f0573..3abcedec5f8 100644 --- a/develop/proc/dbcsr_filter_c.html +++ b/develop/proc/dbcsr_filter_c.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_filter_d.html b/develop/proc/dbcsr_filter_d.html index b733bcf3888..4938e69c7e2 100644 --- a/develop/proc/dbcsr_filter_d.html +++ b/develop/proc/dbcsr_filter_d.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_filter_s.html b/develop/proc/dbcsr_filter_s.html index 9881942d95d..6952098fbaa 100644 --- a/develop/proc/dbcsr_filter_s.html +++ b/develop/proc/dbcsr_filter_s.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_filter_z.html b/develop/proc/dbcsr_filter_z.html index 312ba487aea..806a7a5f91b 100644 --- a/develop/proc/dbcsr_filter_z.html +++ b/develop/proc/dbcsr_filter_z.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_finalize.html b/develop/proc/dbcsr_finalize.html index 2c1985cfa2e..ad351e11334 100644 --- a/develop/proc/dbcsr_finalize.html +++ b/develop/proc/dbcsr_finalize.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_finalize~2.html b/develop/proc/dbcsr_finalize~2.html index 8bfdd06c4eb..67fcd06493b 100644 --- a/develop/proc/dbcsr_finalize~2.html +++ b/develop/proc/dbcsr_finalize~2.html @@ -162,7 +162,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_find_column.html b/develop/proc/dbcsr_find_column.html index 266c41a868d..e8ab3df08c4 100644 --- a/develop/proc/dbcsr_find_column.html +++ b/develop/proc/dbcsr_find_column.html @@ -216,7 +216,7 @@

    Arguments

    @@ -232,7 +232,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    @@ -263,7 +263,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_frobenius_norm.html b/develop/proc/dbcsr_frobenius_norm.html index 049c83a5c4f..19948dd11a9 100644 --- a/develop/proc/dbcsr_frobenius_norm.html +++ b/develop/proc/dbcsr_frobenius_norm.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    Return Value - + real(kind=real_8)

    diff --git a/develop/proc/dbcsr_frobenius_norm~2.html b/develop/proc/dbcsr_frobenius_norm~2.html index 84f8581d115..d795dd625b7 100644 --- a/develop/proc/dbcsr_frobenius_norm~2.html +++ b/develop/proc/dbcsr_frobenius_norm~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    Return Value - + real(kind=real_8)

    diff --git a/develop/proc/dbcsr_function_of_elements.html b/develop/proc/dbcsr_function_of_elements.html index 01098b5e882..c5966715189 100644 --- a/develop/proc/dbcsr_function_of_elements.html +++ b/develop/proc/dbcsr_function_of_elements.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_function_of_elements~2.html b/develop/proc/dbcsr_function_of_elements~2.html index 508b1c8d72a..24bab0929ae 100644 --- a/develop/proc/dbcsr_function_of_elements~2.html +++ b/develop/proc/dbcsr_function_of_elements~2.html @@ -180,7 +180,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_gatherv_any.html b/develop/proc/dbcsr_gatherv_any.html index 48236c0ec74..ecec86e0c7b 100644 --- a/develop/proc/dbcsr_gatherv_any.html +++ b/develop/proc/dbcsr_gatherv_any.html @@ -159,7 +159,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    @@ -249,7 +249,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_gershgorin_norm.html b/develop/proc/dbcsr_gershgorin_norm.html index afd7d9b6d02..3f4ee8dd27e 100644 --- a/develop/proc/dbcsr_gershgorin_norm.html +++ b/develop/proc/dbcsr_gershgorin_norm.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + real(kind=real_8)

    diff --git a/develop/proc/dbcsr_gershgorin_norm~2.html b/develop/proc/dbcsr_gershgorin_norm~2.html index b5c4319867c..fc28de617be 100644 --- a/develop/proc/dbcsr_gershgorin_norm~2.html +++ b/develop/proc/dbcsr_gershgorin_norm~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    Return Value - + real(kind=real_8)

    diff --git a/develop/proc/dbcsr_get_2d_block_notrans_p_c.html b/develop/proc/dbcsr_get_2d_block_notrans_p_c.html index 71b076e330b..420c6bd3650 100644 --- a/develop/proc/dbcsr_get_2d_block_notrans_p_c.html +++ b/develop/proc/dbcsr_get_2d_block_notrans_p_c.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_get_2d_block_notrans_p_d.html b/develop/proc/dbcsr_get_2d_block_notrans_p_d.html index f3574df4c0d..ce22417cdd9 100644 --- a/develop/proc/dbcsr_get_2d_block_notrans_p_d.html +++ b/develop/proc/dbcsr_get_2d_block_notrans_p_d.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_get_2d_block_notrans_p_s.html b/develop/proc/dbcsr_get_2d_block_notrans_p_s.html index 882a5990636..823ff3b2138 100644 --- a/develop/proc/dbcsr_get_2d_block_notrans_p_s.html +++ b/develop/proc/dbcsr_get_2d_block_notrans_p_s.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_get_2d_block_notrans_p_z.html b/develop/proc/dbcsr_get_2d_block_notrans_p_z.html index e98efa2d61c..56c7106067b 100644 --- a/develop/proc/dbcsr_get_2d_block_notrans_p_z.html +++ b/develop/proc/dbcsr_get_2d_block_notrans_p_z.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_get_2d_block_p_c.html b/develop/proc/dbcsr_get_2d_block_p_c.html index 1d13711dcdb..3ffbb7a3097 100644 --- a/develop/proc/dbcsr_get_2d_block_p_c.html +++ b/develop/proc/dbcsr_get_2d_block_p_c.html @@ -74,20 +74,20 @@

    dbcsr_get_2d_block_p_c
  • 50 statements + title=" 0.0% of total for procedures.">9 statements
  • - Source File + Source File
  • @@ -143,7 +143,6 @@

    private subroutine dbcsr_get_2d_block_p_c(matrix, row, col, block, tr, foun

    -

    Gets a 2-d block from a dbcsr matrix

    Arguments

    @@ -159,8 +158,8 @@

    Arguments

    @@ -184,13 +183,12 @@

    Arguments

    @@ -200,13 +198,12 @@

    Arguments

    @@ -216,12 +213,12 @@

    Arguments

    @@ -231,12 +228,12 @@

    Arguments

    @@ -246,12 +243,12 @@

    Arguments

    @@ -261,13 +258,12 @@

    Arguments

    @@ -277,8 +273,7 @@

    Arguments

    @@ -298,86 +293,15 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_get_2d_block_p_c (matrix, row, col, block, tr, found, &
    -                                                     row_size, col_size)
    -     !! Gets a 2-d block from a dbcsr matrix
    -
    -         TYPE(dbcsr_type), INTENT(INOUT)           :: matrix
    -        !! DBCSR matrix
    +    
          SUBROUTINE dbcsr_get_2d_block_p_c (matrix, row, col, block, tr, found, row_size, col_size)
    +         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix
              INTEGER, INTENT(IN)                      :: row, col
    -        !! the row
    -        !! the column
    -         COMPLEX(kind=real_4), DIMENSION(:, :), POINTER         :: block
    -        !! the block to get (rank-2 array)
    -         LOGICAL, INTENT(OUT)                     :: tr
    -        !! whether the data is transposed
    +         COMPLEX(kind=real_4), DIMENSION(:, :), POINTER        :: block
    +         LOGICAL, INTENT(OUT)                     :: tr
              LOGICAL, INTENT(OUT)                     :: found
    -        !! whether the block exists in the matrix
              INTEGER, INTENT(OUT), OPTIONAL           :: row_size, col_size
    -        !! logical row size of block
    -        !! logical column size of block
    -
    -         CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_get_2d_block_p_c'
    -
    -         COMPLEX(kind=real_4), DIMENSION(:), POINTER         :: block_1d
    -         INTEGER                                  :: rsize, csize, &
    -                                                     blk, nze, offset, &
    -                                                     stored_row, &
    -                                                     stored_col, iw, nwms
    -         INTEGER                                  :: error_handle
    -         TYPE(btree_data_cp2d)          :: data_block
    -         LOGICAL                                  :: stored_tr
    -         COMPLEX(kind=real_4), DIMENSION(1, 1), TARGET, SAVE    :: block0
    -!   ---------------------------------------------------------------------------
    -         IF (careful_mod) CALL timeset(routineN, error_handle)
    -         IF (debug_mod) THEN
    -            IF (matrix%data_type /= dbcsr_type_complex_4) &
    -               DBCSR_ABORT("Data type mismatch for requested block.")
    -         END IF
    -
    -         CALL dbcsr_get_block_index(matrix, row, col, stored_row, stored_col, &
    -                                    stored_tr, found, blk, offset)
    -         tr = stored_tr
    -
    -         rsize = dbcsr_blk_row_size(matrix, stored_row)
    -         csize = dbcsr_blk_column_size(matrix, stored_col)
    -         IF (PRESENT(row_size)) row_size = rsize
    -         IF (PRESENT(col_size)) col_size = csize
     
    -         NULLIFY (block)
    -         IF (found) THEN
    -            nze = rsize*csize
    -            IF (nze .eq. 0) THEN
    -               found = .TRUE.
    -               block => block0(1:0, 1:0)
    -            ELSE
    -               block_1d => pointer_view(dbcsr_get_data_p( &
    -                                        matrix%data_area, CMPLX(0.0, 0.0, real_4)), offset, offset + nze - 1)
    -               CALL dbcsr_set_block_pointer(matrix, block, rsize, csize, offset)
    -            END IF
    -         ELSEIF (ASSOCIATED(matrix%wms)) THEN
    -            nwms = SIZE(matrix%wms)
    -            iw = 1
    -!$          IF (nwms < omp_get_num_threads()) &
    -!$             DBCSR_ABORT("Number of work matrices not equal to number of threads")
    -!$          iw = omp_get_thread_num() + 1
    -            IF (.NOT. dbcsr_use_mutable(matrix)) &
    -               DBCSR_ABORT("Can not retrieve blocks from non-mutable work matrices.")
    -            IF (dbcsr_use_mutable(matrix)) THEN
    -               IF (.NOT. dbcsr_mutable_instantiated(matrix%wms(iw)%mutable)) THEN
    -                  CALL dbcsr_mutable_new(matrix%wms(iw)%mutable, &
    -                                         dbcsr_get_data_type(matrix))
    -               END IF
    -               CALL btree_find( &
    -                  matrix%wms(iw)%mutable%m%btree_c, &
    -                  make_coordinate_tuple(stored_row, stored_col), &
    -                  data_block, found)
    -               IF (found) THEN
    -                  block => data_block%p
    -               END IF
    -            END IF
    -         END IF
    -         IF (careful_mod) CALL timestop(error_handle)
    +         CALL dbcsr_get_block_p_prv(matrix%prv, row, col, block, tr, found, row_size, col_size)
           END SUBROUTINE dbcsr_get_2d_block_p_c
     
    diff --git a/develop/proc/dbcsr_get_2d_block_p_c~2.html b/develop/proc/dbcsr_get_2d_block_p_c~2.html index ee506820f34..933a37037a6 100644 --- a/develop/proc/dbcsr_get_2d_block_p_c~2.html +++ b/develop/proc/dbcsr_get_2d_block_p_c~2.html @@ -74,20 +74,20 @@

    dbcsr_get_2d_block_p_c
  • 9 statements + title=" 0.1% of total for procedures.">50 statements
  • - Source File + Source File
  • @@ -143,6 +143,7 @@

    private subroutine dbcsr_get_2d_block_p_c(matrix, row, col, block, tr, foun

    +

    Gets a 2-d block from a dbcsr matrix

    Arguments

    @@ -158,8 +159,8 @@

    Arguments

    @@ -183,12 +184,13 @@

    Arguments

    @@ -198,12 +200,13 @@

    Arguments

    @@ -213,12 +216,12 @@

    Arguments

    @@ -228,12 +231,12 @@

    Arguments

    @@ -243,12 +246,12 @@

    Arguments

    @@ -258,12 +261,13 @@

    Arguments

    @@ -273,7 +277,8 @@

    Arguments

    @@ -293,15 +298,86 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_get_2d_block_p_c (matrix, row, col, block, tr, found, row_size, col_size)
    -         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix
    +    
          SUBROUTINE dbcsr_get_2d_block_p_c (matrix, row, col, block, tr, found, &
    +                                                     row_size, col_size)
    +     !! Gets a 2-d block from a dbcsr matrix
    +
    +         TYPE(dbcsr_type), INTENT(INOUT)           :: matrix
    +        !! DBCSR matrix
              INTEGER, INTENT(IN)                      :: row, col
    -         COMPLEX(kind=real_4), DIMENSION(:, :), POINTER        :: block
    -         LOGICAL, INTENT(OUT)                     :: tr
    +        !! the row
    +        !! the column
    +         COMPLEX(kind=real_4), DIMENSION(:, :), POINTER         :: block
    +        !! the block to get (rank-2 array)
    +         LOGICAL, INTENT(OUT)                     :: tr
    +        !! whether the data is transposed
              LOGICAL, INTENT(OUT)                     :: found
    +        !! whether the block exists in the matrix
              INTEGER, INTENT(OUT), OPTIONAL           :: row_size, col_size
    +        !! logical row size of block
    +        !! logical column size of block
    +
    +         CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_get_2d_block_p_c'
    +
    +         COMPLEX(kind=real_4), DIMENSION(:), POINTER         :: block_1d
    +         INTEGER                                  :: rsize, csize, &
    +                                                     blk, nze, offset, &
    +                                                     stored_row, &
    +                                                     stored_col, iw, nwms
    +         INTEGER                                  :: error_handle
    +         TYPE(btree_data_cp2d)          :: data_block
    +         LOGICAL                                  :: stored_tr
    +         COMPLEX(kind=real_4), DIMENSION(1, 1), TARGET, SAVE    :: block0
    +!   ---------------------------------------------------------------------------
    +         IF (careful_mod) CALL timeset(routineN, error_handle)
    +         IF (debug_mod) THEN
    +            IF (matrix%data_type /= dbcsr_type_complex_4) &
    +               DBCSR_ABORT("Data type mismatch for requested block.")
    +         END IF
    +
    +         CALL dbcsr_get_block_index(matrix, row, col, stored_row, stored_col, &
    +                                    stored_tr, found, blk, offset)
    +         tr = stored_tr
    +
    +         rsize = dbcsr_blk_row_size(matrix, stored_row)
    +         csize = dbcsr_blk_column_size(matrix, stored_col)
    +         IF (PRESENT(row_size)) row_size = rsize
    +         IF (PRESENT(col_size)) col_size = csize
     
    -         CALL dbcsr_get_block_p_prv(matrix%prv, row, col, block, tr, found, row_size, col_size)
    +         NULLIFY (block)
    +         IF (found) THEN
    +            nze = rsize*csize
    +            IF (nze .eq. 0) THEN
    +               found = .TRUE.
    +               block => block0(1:0, 1:0)
    +            ELSE
    +               block_1d => pointer_view(dbcsr_get_data_p( &
    +                                        matrix%data_area, CMPLX(0.0, 0.0, real_4)), offset, offset + nze - 1)
    +               CALL dbcsr_set_block_pointer(matrix, block, rsize, csize, offset)
    +            END IF
    +         ELSEIF (ASSOCIATED(matrix%wms)) THEN
    +            nwms = SIZE(matrix%wms)
    +            iw = 1
    +!$          IF (nwms < omp_get_num_threads()) &
    +!$             DBCSR_ABORT("Number of work matrices not equal to number of threads")
    +!$          iw = omp_get_thread_num() + 1
    +            IF (.NOT. dbcsr_use_mutable(matrix)) &
    +               DBCSR_ABORT("Can not retrieve blocks from non-mutable work matrices.")
    +            IF (dbcsr_use_mutable(matrix)) THEN
    +               IF (.NOT. dbcsr_mutable_instantiated(matrix%wms(iw)%mutable)) THEN
    +                  CALL dbcsr_mutable_new(matrix%wms(iw)%mutable, &
    +                                         dbcsr_get_data_type(matrix))
    +               END IF
    +               CALL btree_find( &
    +                  matrix%wms(iw)%mutable%m%btree_c, &
    +                  make_coordinate_tuple(stored_row, stored_col), &
    +                  data_block, found)
    +               IF (found) THEN
    +                  block => data_block%p
    +               END IF
    +            END IF
    +         END IF
    +         IF (careful_mod) CALL timestop(error_handle)
           END SUBROUTINE dbcsr_get_2d_block_p_c
     
    diff --git a/develop/proc/dbcsr_get_2d_block_p_d.html b/develop/proc/dbcsr_get_2d_block_p_d.html index a8f770d6446..199a4c7252f 100644 --- a/develop/proc/dbcsr_get_2d_block_p_d.html +++ b/develop/proc/dbcsr_get_2d_block_p_d.html @@ -74,20 +74,20 @@

    dbcsr_get_2d_block_p_d
  • 50 statements + title=" 0.0% of total for procedures.">9 statements
  • - Source File + Source File
  • @@ -143,7 +143,6 @@

    private subroutine dbcsr_get_2d_block_p_d(matrix, row, col, block, tr, foun

    -

    Gets a 2-d block from a dbcsr matrix

    Arguments

    @@ -159,8 +158,8 @@

    Arguments

    @@ -184,13 +183,12 @@

    Arguments

    @@ -200,13 +198,12 @@

    Arguments

    @@ -216,12 +213,12 @@

    Arguments

    @@ -231,12 +228,12 @@

    Arguments

    @@ -246,12 +243,12 @@

    Arguments

    @@ -261,13 +258,12 @@

    Arguments

    @@ -277,8 +273,7 @@

    Arguments

    @@ -298,86 +293,15 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_get_2d_block_p_d (matrix, row, col, block, tr, found, &
    -                                                     row_size, col_size)
    -     !! Gets a 2-d block from a dbcsr matrix
    -
    -         TYPE(dbcsr_type), INTENT(INOUT)           :: matrix
    -        !! DBCSR matrix
    +    
          SUBROUTINE dbcsr_get_2d_block_p_d (matrix, row, col, block, tr, found, row_size, col_size)
    +         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix
              INTEGER, INTENT(IN)                      :: row, col
    -        !! the row
    -        !! the column
    -         REAL(kind=real_8), DIMENSION(:, :), POINTER         :: block
    -        !! the block to get (rank-2 array)
    -         LOGICAL, INTENT(OUT)                     :: tr
    -        !! whether the data is transposed
    +         REAL(kind=real_8), DIMENSION(:, :), POINTER        :: block
    +         LOGICAL, INTENT(OUT)                     :: tr
              LOGICAL, INTENT(OUT)                     :: found
    -        !! whether the block exists in the matrix
              INTEGER, INTENT(OUT), OPTIONAL           :: row_size, col_size
    -        !! logical row size of block
    -        !! logical column size of block
    -
    -         CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_get_2d_block_p_d'
    -
    -         REAL(kind=real_8), DIMENSION(:), POINTER         :: block_1d
    -         INTEGER                                  :: rsize, csize, &
    -                                                     blk, nze, offset, &
    -                                                     stored_row, &
    -                                                     stored_col, iw, nwms
    -         INTEGER                                  :: error_handle
    -         TYPE(btree_data_dp2d)          :: data_block
    -         LOGICAL                                  :: stored_tr
    -         REAL(kind=real_8), DIMENSION(1, 1), TARGET, SAVE    :: block0
    -!   ---------------------------------------------------------------------------
    -         IF (careful_mod) CALL timeset(routineN, error_handle)
    -         IF (debug_mod) THEN
    -            IF (matrix%data_type /= dbcsr_type_real_8) &
    -               DBCSR_ABORT("Data type mismatch for requested block.")
    -         END IF
    -
    -         CALL dbcsr_get_block_index(matrix, row, col, stored_row, stored_col, &
    -                                    stored_tr, found, blk, offset)
    -         tr = stored_tr
    -
    -         rsize = dbcsr_blk_row_size(matrix, stored_row)
    -         csize = dbcsr_blk_column_size(matrix, stored_col)
    -         IF (PRESENT(row_size)) row_size = rsize
    -         IF (PRESENT(col_size)) col_size = csize
     
    -         NULLIFY (block)
    -         IF (found) THEN
    -            nze = rsize*csize
    -            IF (nze .eq. 0) THEN
    -               found = .TRUE.
    -               block => block0(1:0, 1:0)
    -            ELSE
    -               block_1d => pointer_view(dbcsr_get_data_p( &
    -                                        matrix%data_area, 0.0_real_8), offset, offset + nze - 1)
    -               CALL dbcsr_set_block_pointer(matrix, block, rsize, csize, offset)
    -            END IF
    -         ELSEIF (ASSOCIATED(matrix%wms)) THEN
    -            nwms = SIZE(matrix%wms)
    -            iw = 1
    -!$          IF (nwms < omp_get_num_threads()) &
    -!$             DBCSR_ABORT("Number of work matrices not equal to number of threads")
    -!$          iw = omp_get_thread_num() + 1
    -            IF (.NOT. dbcsr_use_mutable(matrix)) &
    -               DBCSR_ABORT("Can not retrieve blocks from non-mutable work matrices.")
    -            IF (dbcsr_use_mutable(matrix)) THEN
    -               IF (.NOT. dbcsr_mutable_instantiated(matrix%wms(iw)%mutable)) THEN
    -                  CALL dbcsr_mutable_new(matrix%wms(iw)%mutable, &
    -                                         dbcsr_get_data_type(matrix))
    -               END IF
    -               CALL btree_find( &
    -                  matrix%wms(iw)%mutable%m%btree_d, &
    -                  make_coordinate_tuple(stored_row, stored_col), &
    -                  data_block, found)
    -               IF (found) THEN
    -                  block => data_block%p
    -               END IF
    -            END IF
    -         END IF
    -         IF (careful_mod) CALL timestop(error_handle)
    +         CALL dbcsr_get_block_p_prv(matrix%prv, row, col, block, tr, found, row_size, col_size)
           END SUBROUTINE dbcsr_get_2d_block_p_d
     
    diff --git a/develop/proc/dbcsr_get_2d_block_p_d~2.html b/develop/proc/dbcsr_get_2d_block_p_d~2.html index 5ec985b9270..8521e1ca6d8 100644 --- a/develop/proc/dbcsr_get_2d_block_p_d~2.html +++ b/develop/proc/dbcsr_get_2d_block_p_d~2.html @@ -74,20 +74,20 @@

    dbcsr_get_2d_block_p_d
  • 9 statements + title=" 0.1% of total for procedures.">50 statements
  • - Source File + Source File
  • @@ -143,6 +143,7 @@

    private subroutine dbcsr_get_2d_block_p_d(matrix, row, col, block, tr, foun

    +

    Gets a 2-d block from a dbcsr matrix

    Arguments

    @@ -158,8 +159,8 @@

    Arguments

    @@ -183,12 +184,13 @@

    Arguments

    @@ -198,12 +200,13 @@

    Arguments

    @@ -213,12 +216,12 @@

    Arguments

    @@ -228,12 +231,12 @@

    Arguments

    @@ -243,12 +246,12 @@

    Arguments

    @@ -258,12 +261,13 @@

    Arguments

    @@ -273,7 +277,8 @@

    Arguments

    @@ -293,15 +298,86 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_get_2d_block_p_d (matrix, row, col, block, tr, found, row_size, col_size)
    -         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix
    +    
          SUBROUTINE dbcsr_get_2d_block_p_d (matrix, row, col, block, tr, found, &
    +                                                     row_size, col_size)
    +     !! Gets a 2-d block from a dbcsr matrix
    +
    +         TYPE(dbcsr_type), INTENT(INOUT)           :: matrix
    +        !! DBCSR matrix
              INTEGER, INTENT(IN)                      :: row, col
    -         REAL(kind=real_8), DIMENSION(:, :), POINTER        :: block
    -         LOGICAL, INTENT(OUT)                     :: tr
    +        !! the row
    +        !! the column
    +         REAL(kind=real_8), DIMENSION(:, :), POINTER         :: block
    +        !! the block to get (rank-2 array)
    +         LOGICAL, INTENT(OUT)                     :: tr
    +        !! whether the data is transposed
              LOGICAL, INTENT(OUT)                     :: found
    +        !! whether the block exists in the matrix
              INTEGER, INTENT(OUT), OPTIONAL           :: row_size, col_size
    +        !! logical row size of block
    +        !! logical column size of block
    +
    +         CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_get_2d_block_p_d'
    +
    +         REAL(kind=real_8), DIMENSION(:), POINTER         :: block_1d
    +         INTEGER                                  :: rsize, csize, &
    +                                                     blk, nze, offset, &
    +                                                     stored_row, &
    +                                                     stored_col, iw, nwms
    +         INTEGER                                  :: error_handle
    +         TYPE(btree_data_dp2d)          :: data_block
    +         LOGICAL                                  :: stored_tr
    +         REAL(kind=real_8), DIMENSION(1, 1), TARGET, SAVE    :: block0
    +!   ---------------------------------------------------------------------------
    +         IF (careful_mod) CALL timeset(routineN, error_handle)
    +         IF (debug_mod) THEN
    +            IF (matrix%data_type /= dbcsr_type_real_8) &
    +               DBCSR_ABORT("Data type mismatch for requested block.")
    +         END IF
    +
    +         CALL dbcsr_get_block_index(matrix, row, col, stored_row, stored_col, &
    +                                    stored_tr, found, blk, offset)
    +         tr = stored_tr
    +
    +         rsize = dbcsr_blk_row_size(matrix, stored_row)
    +         csize = dbcsr_blk_column_size(matrix, stored_col)
    +         IF (PRESENT(row_size)) row_size = rsize
    +         IF (PRESENT(col_size)) col_size = csize
     
    -         CALL dbcsr_get_block_p_prv(matrix%prv, row, col, block, tr, found, row_size, col_size)
    +         NULLIFY (block)
    +         IF (found) THEN
    +            nze = rsize*csize
    +            IF (nze .eq. 0) THEN
    +               found = .TRUE.
    +               block => block0(1:0, 1:0)
    +            ELSE
    +               block_1d => pointer_view(dbcsr_get_data_p( &
    +                                        matrix%data_area, 0.0_real_8), offset, offset + nze - 1)
    +               CALL dbcsr_set_block_pointer(matrix, block, rsize, csize, offset)
    +            END IF
    +         ELSEIF (ASSOCIATED(matrix%wms)) THEN
    +            nwms = SIZE(matrix%wms)
    +            iw = 1
    +!$          IF (nwms < omp_get_num_threads()) &
    +!$             DBCSR_ABORT("Number of work matrices not equal to number of threads")
    +!$          iw = omp_get_thread_num() + 1
    +            IF (.NOT. dbcsr_use_mutable(matrix)) &
    +               DBCSR_ABORT("Can not retrieve blocks from non-mutable work matrices.")
    +            IF (dbcsr_use_mutable(matrix)) THEN
    +               IF (.NOT. dbcsr_mutable_instantiated(matrix%wms(iw)%mutable)) THEN
    +                  CALL dbcsr_mutable_new(matrix%wms(iw)%mutable, &
    +                                         dbcsr_get_data_type(matrix))
    +               END IF
    +               CALL btree_find( &
    +                  matrix%wms(iw)%mutable%m%btree_d, &
    +                  make_coordinate_tuple(stored_row, stored_col), &
    +                  data_block, found)
    +               IF (found) THEN
    +                  block => data_block%p
    +               END IF
    +            END IF
    +         END IF
    +         IF (careful_mod) CALL timestop(error_handle)
           END SUBROUTINE dbcsr_get_2d_block_p_d
     
    diff --git a/develop/proc/dbcsr_get_2d_block_p_s.html b/develop/proc/dbcsr_get_2d_block_p_s.html index 45ef0383969..9defdde22dc 100644 --- a/develop/proc/dbcsr_get_2d_block_p_s.html +++ b/develop/proc/dbcsr_get_2d_block_p_s.html @@ -74,20 +74,20 @@

    dbcsr_get_2d_block_p_s
  • 50 statements + title=" 0.0% of total for procedures.">9 statements
  • - Source File + Source File
  • @@ -143,7 +143,6 @@

    private subroutine dbcsr_get_2d_block_p_s(matrix, row, col, block, tr, foun

    -

    Gets a 2-d block from a dbcsr matrix

    Arguments

    @@ -159,8 +158,8 @@

    Arguments

    @@ -184,13 +183,12 @@

    Arguments

    @@ -200,13 +198,12 @@

    Arguments

    @@ -216,12 +213,12 @@

    Arguments

    @@ -231,12 +228,12 @@

    Arguments

    @@ -246,12 +243,12 @@

    Arguments

    @@ -261,13 +258,12 @@

    Arguments

    @@ -277,8 +273,7 @@

    Arguments

    @@ -298,86 +293,15 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_get_2d_block_p_s (matrix, row, col, block, tr, found, &
    -                                                     row_size, col_size)
    -     !! Gets a 2-d block from a dbcsr matrix
    -
    -         TYPE(dbcsr_type), INTENT(INOUT)           :: matrix
    -        !! DBCSR matrix
    +    
          SUBROUTINE dbcsr_get_2d_block_p_s (matrix, row, col, block, tr, found, row_size, col_size)
    +         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix
              INTEGER, INTENT(IN)                      :: row, col
    -        !! the row
    -        !! the column
    -         REAL(kind=real_4), DIMENSION(:, :), POINTER         :: block
    -        !! the block to get (rank-2 array)
    -         LOGICAL, INTENT(OUT)                     :: tr
    -        !! whether the data is transposed
    +         REAL(kind=real_4), DIMENSION(:, :), POINTER        :: block
    +         LOGICAL, INTENT(OUT)                     :: tr
              LOGICAL, INTENT(OUT)                     :: found
    -        !! whether the block exists in the matrix
              INTEGER, INTENT(OUT), OPTIONAL           :: row_size, col_size
    -        !! logical row size of block
    -        !! logical column size of block
    -
    -         CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_get_2d_block_p_s'
    -
    -         REAL(kind=real_4), DIMENSION(:), POINTER         :: block_1d
    -         INTEGER                                  :: rsize, csize, &
    -                                                     blk, nze, offset, &
    -                                                     stored_row, &
    -                                                     stored_col, iw, nwms
    -         INTEGER                                  :: error_handle
    -         TYPE(btree_data_sp2d)          :: data_block
    -         LOGICAL                                  :: stored_tr
    -         REAL(kind=real_4), DIMENSION(1, 1), TARGET, SAVE    :: block0
    -!   ---------------------------------------------------------------------------
    -         IF (careful_mod) CALL timeset(routineN, error_handle)
    -         IF (debug_mod) THEN
    -            IF (matrix%data_type /= dbcsr_type_real_4) &
    -               DBCSR_ABORT("Data type mismatch for requested block.")
    -         END IF
    -
    -         CALL dbcsr_get_block_index(matrix, row, col, stored_row, stored_col, &
    -                                    stored_tr, found, blk, offset)
    -         tr = stored_tr
    -
    -         rsize = dbcsr_blk_row_size(matrix, stored_row)
    -         csize = dbcsr_blk_column_size(matrix, stored_col)
    -         IF (PRESENT(row_size)) row_size = rsize
    -         IF (PRESENT(col_size)) col_size = csize
     
    -         NULLIFY (block)
    -         IF (found) THEN
    -            nze = rsize*csize
    -            IF (nze .eq. 0) THEN
    -               found = .TRUE.
    -               block => block0(1:0, 1:0)
    -            ELSE
    -               block_1d => pointer_view(dbcsr_get_data_p( &
    -                                        matrix%data_area, 0.0_real_4), offset, offset + nze - 1)
    -               CALL dbcsr_set_block_pointer(matrix, block, rsize, csize, offset)
    -            END IF
    -         ELSEIF (ASSOCIATED(matrix%wms)) THEN
    -            nwms = SIZE(matrix%wms)
    -            iw = 1
    -!$          IF (nwms < omp_get_num_threads()) &
    -!$             DBCSR_ABORT("Number of work matrices not equal to number of threads")
    -!$          iw = omp_get_thread_num() + 1
    -            IF (.NOT. dbcsr_use_mutable(matrix)) &
    -               DBCSR_ABORT("Can not retrieve blocks from non-mutable work matrices.")
    -            IF (dbcsr_use_mutable(matrix)) THEN
    -               IF (.NOT. dbcsr_mutable_instantiated(matrix%wms(iw)%mutable)) THEN
    -                  CALL dbcsr_mutable_new(matrix%wms(iw)%mutable, &
    -                                         dbcsr_get_data_type(matrix))
    -               END IF
    -               CALL btree_find( &
    -                  matrix%wms(iw)%mutable%m%btree_s, &
    -                  make_coordinate_tuple(stored_row, stored_col), &
    -                  data_block, found)
    -               IF (found) THEN
    -                  block => data_block%p
    -               END IF
    -            END IF
    -         END IF
    -         IF (careful_mod) CALL timestop(error_handle)
    +         CALL dbcsr_get_block_p_prv(matrix%prv, row, col, block, tr, found, row_size, col_size)
           END SUBROUTINE dbcsr_get_2d_block_p_s
     
    diff --git a/develop/proc/dbcsr_get_2d_block_p_s~2.html b/develop/proc/dbcsr_get_2d_block_p_s~2.html index e767c211197..5c7409ab2bb 100644 --- a/develop/proc/dbcsr_get_2d_block_p_s~2.html +++ b/develop/proc/dbcsr_get_2d_block_p_s~2.html @@ -74,20 +74,20 @@

    dbcsr_get_2d_block_p_s
  • 9 statements + title=" 0.1% of total for procedures.">50 statements
  • - Source File + Source File
  • @@ -143,6 +143,7 @@

    private subroutine dbcsr_get_2d_block_p_s(matrix, row, col, block, tr, foun

    +

    Gets a 2-d block from a dbcsr matrix

    Arguments

    @@ -158,8 +159,8 @@

    Arguments

    @@ -183,12 +184,13 @@

    Arguments

    @@ -198,12 +200,13 @@

    Arguments

    @@ -213,12 +216,12 @@

    Arguments

    @@ -228,12 +231,12 @@

    Arguments

    @@ -243,12 +246,12 @@

    Arguments

    @@ -258,12 +261,13 @@

    Arguments

    @@ -273,7 +277,8 @@

    Arguments

    @@ -293,15 +298,86 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_get_2d_block_p_s (matrix, row, col, block, tr, found, row_size, col_size)
    -         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix
    +    
          SUBROUTINE dbcsr_get_2d_block_p_s (matrix, row, col, block, tr, found, &
    +                                                     row_size, col_size)
    +     !! Gets a 2-d block from a dbcsr matrix
    +
    +         TYPE(dbcsr_type), INTENT(INOUT)           :: matrix
    +        !! DBCSR matrix
              INTEGER, INTENT(IN)                      :: row, col
    -         REAL(kind=real_4), DIMENSION(:, :), POINTER        :: block
    -         LOGICAL, INTENT(OUT)                     :: tr
    +        !! the row
    +        !! the column
    +         REAL(kind=real_4), DIMENSION(:, :), POINTER         :: block
    +        !! the block to get (rank-2 array)
    +         LOGICAL, INTENT(OUT)                     :: tr
    +        !! whether the data is transposed
              LOGICAL, INTENT(OUT)                     :: found
    +        !! whether the block exists in the matrix
              INTEGER, INTENT(OUT), OPTIONAL           :: row_size, col_size
    +        !! logical row size of block
    +        !! logical column size of block
    +
    +         CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_get_2d_block_p_s'
    +
    +         REAL(kind=real_4), DIMENSION(:), POINTER         :: block_1d
    +         INTEGER                                  :: rsize, csize, &
    +                                                     blk, nze, offset, &
    +                                                     stored_row, &
    +                                                     stored_col, iw, nwms
    +         INTEGER                                  :: error_handle
    +         TYPE(btree_data_sp2d)          :: data_block
    +         LOGICAL                                  :: stored_tr
    +         REAL(kind=real_4), DIMENSION(1, 1), TARGET, SAVE    :: block0
    +!   ---------------------------------------------------------------------------
    +         IF (careful_mod) CALL timeset(routineN, error_handle)
    +         IF (debug_mod) THEN
    +            IF (matrix%data_type /= dbcsr_type_real_4) &
    +               DBCSR_ABORT("Data type mismatch for requested block.")
    +         END IF
    +
    +         CALL dbcsr_get_block_index(matrix, row, col, stored_row, stored_col, &
    +                                    stored_tr, found, blk, offset)
    +         tr = stored_tr
    +
    +         rsize = dbcsr_blk_row_size(matrix, stored_row)
    +         csize = dbcsr_blk_column_size(matrix, stored_col)
    +         IF (PRESENT(row_size)) row_size = rsize
    +         IF (PRESENT(col_size)) col_size = csize
     
    -         CALL dbcsr_get_block_p_prv(matrix%prv, row, col, block, tr, found, row_size, col_size)
    +         NULLIFY (block)
    +         IF (found) THEN
    +            nze = rsize*csize
    +            IF (nze .eq. 0) THEN
    +               found = .TRUE.
    +               block => block0(1:0, 1:0)
    +            ELSE
    +               block_1d => pointer_view(dbcsr_get_data_p( &
    +                                        matrix%data_area, 0.0_real_4), offset, offset + nze - 1)
    +               CALL dbcsr_set_block_pointer(matrix, block, rsize, csize, offset)
    +            END IF
    +         ELSEIF (ASSOCIATED(matrix%wms)) THEN
    +            nwms = SIZE(matrix%wms)
    +            iw = 1
    +!$          IF (nwms < omp_get_num_threads()) &
    +!$             DBCSR_ABORT("Number of work matrices not equal to number of threads")
    +!$          iw = omp_get_thread_num() + 1
    +            IF (.NOT. dbcsr_use_mutable(matrix)) &
    +               DBCSR_ABORT("Can not retrieve blocks from non-mutable work matrices.")
    +            IF (dbcsr_use_mutable(matrix)) THEN
    +               IF (.NOT. dbcsr_mutable_instantiated(matrix%wms(iw)%mutable)) THEN
    +                  CALL dbcsr_mutable_new(matrix%wms(iw)%mutable, &
    +                                         dbcsr_get_data_type(matrix))
    +               END IF
    +               CALL btree_find( &
    +                  matrix%wms(iw)%mutable%m%btree_s, &
    +                  make_coordinate_tuple(stored_row, stored_col), &
    +                  data_block, found)
    +               IF (found) THEN
    +                  block => data_block%p
    +               END IF
    +            END IF
    +         END IF
    +         IF (careful_mod) CALL timestop(error_handle)
           END SUBROUTINE dbcsr_get_2d_block_p_s
     
    diff --git a/develop/proc/dbcsr_get_2d_block_p_z.html b/develop/proc/dbcsr_get_2d_block_p_z.html index f94169e3b26..10cc651b20e 100644 --- a/develop/proc/dbcsr_get_2d_block_p_z.html +++ b/develop/proc/dbcsr_get_2d_block_p_z.html @@ -74,20 +74,20 @@

    dbcsr_get_2d_block_p_z
  • 50 statements + title=" 0.0% of total for procedures.">9 statements
  • - Source File + Source File
  • @@ -143,7 +143,6 @@

    private subroutine dbcsr_get_2d_block_p_z(matrix, row, col, block, tr, foun

    -

    Gets a 2-d block from a dbcsr matrix

    Arguments

    @@ -159,8 +158,8 @@

    Arguments

    @@ -184,13 +183,12 @@

    Arguments

    @@ -200,13 +198,12 @@

    Arguments

    @@ -216,12 +213,12 @@

    Arguments

    @@ -231,12 +228,12 @@

    Arguments

    @@ -246,12 +243,12 @@

    Arguments

    @@ -261,8 +258,7 @@

    Arguments

    @@ -277,8 +273,7 @@

    Arguments

    @@ -298,86 +293,15 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_get_2d_block_p_z (matrix, row, col, block, tr, found, &
    -                                                     row_size, col_size)
    -     !! Gets a 2-d block from a dbcsr matrix
    -
    -         TYPE(dbcsr_type), INTENT(INOUT)           :: matrix
    -        !! DBCSR matrix
    +    
          SUBROUTINE dbcsr_get_2d_block_p_z (matrix, row, col, block, tr, found, row_size, col_size)
    +         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix
              INTEGER, INTENT(IN)                      :: row, col
    -        !! the row
    -        !! the column
    -         COMPLEX(kind=real_8), DIMENSION(:, :), POINTER         :: block
    -        !! the block to get (rank-2 array)
    -         LOGICAL, INTENT(OUT)                     :: tr
    -        !! whether the data is transposed
    +         COMPLEX(kind=real_8), DIMENSION(:, :), POINTER        :: block
    +         LOGICAL, INTENT(OUT)                     :: tr
              LOGICAL, INTENT(OUT)                     :: found
    -        !! whether the block exists in the matrix
              INTEGER, INTENT(OUT), OPTIONAL           :: row_size, col_size
    -        !! logical row size of block
    -        !! logical column size of block
    -
    -         CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_get_2d_block_p_z'
    -
    -         COMPLEX(kind=real_8), DIMENSION(:), POINTER         :: block_1d
    -         INTEGER                                  :: rsize, csize, &
    -                                                     blk, nze, offset, &
    -                                                     stored_row, &
    -                                                     stored_col, iw, nwms
    -         INTEGER                                  :: error_handle
    -         TYPE(btree_data_zp2d)          :: data_block
    -         LOGICAL                                  :: stored_tr
    -         COMPLEX(kind=real_8), DIMENSION(1, 1), TARGET, SAVE    :: block0
    -!   ---------------------------------------------------------------------------
    -         IF (careful_mod) CALL timeset(routineN, error_handle)
    -         IF (debug_mod) THEN
    -            IF (matrix%data_type /= dbcsr_type_complex_8) &
    -               DBCSR_ABORT("Data type mismatch for requested block.")
    -         END IF
    -
    -         CALL dbcsr_get_block_index(matrix, row, col, stored_row, stored_col, &
    -                                    stored_tr, found, blk, offset)
    -         tr = stored_tr
    -
    -         rsize = dbcsr_blk_row_size(matrix, stored_row)
    -         csize = dbcsr_blk_column_size(matrix, stored_col)
    -         IF (PRESENT(row_size)) row_size = rsize
    -         IF (PRESENT(col_size)) col_size = csize
     
    -         NULLIFY (block)
    -         IF (found) THEN
    -            nze = rsize*csize
    -            IF (nze .eq. 0) THEN
    -               found = .TRUE.
    -               block => block0(1:0, 1:0)
    -            ELSE
    -               block_1d => pointer_view(dbcsr_get_data_p( &
    -                                        matrix%data_area, CMPLX(0.0, 0.0, real_8)), offset, offset + nze - 1)
    -               CALL dbcsr_set_block_pointer(matrix, block, rsize, csize, offset)
    -            END IF
    -         ELSEIF (ASSOCIATED(matrix%wms)) THEN
    -            nwms = SIZE(matrix%wms)
    -            iw = 1
    -!$          IF (nwms < omp_get_num_threads()) &
    -!$             DBCSR_ABORT("Number of work matrices not equal to number of threads")
    -!$          iw = omp_get_thread_num() + 1
    -            IF (.NOT. dbcsr_use_mutable(matrix)) &
    -               DBCSR_ABORT("Can not retrieve blocks from non-mutable work matrices.")
    -            IF (dbcsr_use_mutable(matrix)) THEN
    -               IF (.NOT. dbcsr_mutable_instantiated(matrix%wms(iw)%mutable)) THEN
    -                  CALL dbcsr_mutable_new(matrix%wms(iw)%mutable, &
    -                                         dbcsr_get_data_type(matrix))
    -               END IF
    -               CALL btree_find( &
    -                  matrix%wms(iw)%mutable%m%btree_z, &
    -                  make_coordinate_tuple(stored_row, stored_col), &
    -                  data_block, found)
    -               IF (found) THEN
    -                  block => data_block%p
    -               END IF
    -            END IF
    -         END IF
    -         IF (careful_mod) CALL timestop(error_handle)
    +         CALL dbcsr_get_block_p_prv(matrix%prv, row, col, block, tr, found, row_size, col_size)
           END SUBROUTINE dbcsr_get_2d_block_p_z
     
    diff --git a/develop/proc/dbcsr_get_2d_block_p_z~2.html b/develop/proc/dbcsr_get_2d_block_p_z~2.html index a7081a10d7d..b6e4e82bd84 100644 --- a/develop/proc/dbcsr_get_2d_block_p_z~2.html +++ b/develop/proc/dbcsr_get_2d_block_p_z~2.html @@ -74,20 +74,20 @@

    dbcsr_get_2d_block_p_z
  • 9 statements + title=" 0.1% of total for procedures.">50 statements
  • - Source File + Source File
  • @@ -143,6 +143,7 @@

    private subroutine dbcsr_get_2d_block_p_z(matrix, row, col, block, tr, foun

    +

    Gets a 2-d block from a dbcsr matrix

    Arguments

    @@ -158,8 +159,8 @@

    Arguments

    @@ -183,12 +184,13 @@

    Arguments

    @@ -198,12 +200,13 @@

    Arguments

    @@ -213,12 +216,12 @@

    Arguments

    @@ -228,12 +231,12 @@

    Arguments

    @@ -243,12 +246,12 @@

    Arguments

    @@ -258,12 +261,13 @@

    Arguments

    @@ -273,7 +277,8 @@

    Arguments

    @@ -293,15 +298,86 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_get_2d_block_p_z (matrix, row, col, block, tr, found, row_size, col_size)
    -         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix
    +    
          SUBROUTINE dbcsr_get_2d_block_p_z (matrix, row, col, block, tr, found, &
    +                                                     row_size, col_size)
    +     !! Gets a 2-d block from a dbcsr matrix
    +
    +         TYPE(dbcsr_type), INTENT(INOUT)           :: matrix
    +        !! DBCSR matrix
              INTEGER, INTENT(IN)                      :: row, col
    -         COMPLEX(kind=real_8), DIMENSION(:, :), POINTER        :: block
    -         LOGICAL, INTENT(OUT)                     :: tr
    +        !! the row
    +        !! the column
    +         COMPLEX(kind=real_8), DIMENSION(:, :), POINTER         :: block
    +        !! the block to get (rank-2 array)
    +         LOGICAL, INTENT(OUT)                     :: tr
    +        !! whether the data is transposed
              LOGICAL, INTENT(OUT)                     :: found
    +        !! whether the block exists in the matrix
              INTEGER, INTENT(OUT), OPTIONAL           :: row_size, col_size
    +        !! logical row size of block
    +        !! logical column size of block
    +
    +         CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_get_2d_block_p_z'
    +
    +         COMPLEX(kind=real_8), DIMENSION(:), POINTER         :: block_1d
    +         INTEGER                                  :: rsize, csize, &
    +                                                     blk, nze, offset, &
    +                                                     stored_row, &
    +                                                     stored_col, iw, nwms
    +         INTEGER                                  :: error_handle
    +         TYPE(btree_data_zp2d)          :: data_block
    +         LOGICAL                                  :: stored_tr
    +         COMPLEX(kind=real_8), DIMENSION(1, 1), TARGET, SAVE    :: block0
    +!   ---------------------------------------------------------------------------
    +         IF (careful_mod) CALL timeset(routineN, error_handle)
    +         IF (debug_mod) THEN
    +            IF (matrix%data_type /= dbcsr_type_complex_8) &
    +               DBCSR_ABORT("Data type mismatch for requested block.")
    +         END IF
    +
    +         CALL dbcsr_get_block_index(matrix, row, col, stored_row, stored_col, &
    +                                    stored_tr, found, blk, offset)
    +         tr = stored_tr
    +
    +         rsize = dbcsr_blk_row_size(matrix, stored_row)
    +         csize = dbcsr_blk_column_size(matrix, stored_col)
    +         IF (PRESENT(row_size)) row_size = rsize
    +         IF (PRESENT(col_size)) col_size = csize
     
    -         CALL dbcsr_get_block_p_prv(matrix%prv, row, col, block, tr, found, row_size, col_size)
    +         NULLIFY (block)
    +         IF (found) THEN
    +            nze = rsize*csize
    +            IF (nze .eq. 0) THEN
    +               found = .TRUE.
    +               block => block0(1:0, 1:0)
    +            ELSE
    +               block_1d => pointer_view(dbcsr_get_data_p( &
    +                                        matrix%data_area, CMPLX(0.0, 0.0, real_8)), offset, offset + nze - 1)
    +               CALL dbcsr_set_block_pointer(matrix, block, rsize, csize, offset)
    +            END IF
    +         ELSEIF (ASSOCIATED(matrix%wms)) THEN
    +            nwms = SIZE(matrix%wms)
    +            iw = 1
    +!$          IF (nwms < omp_get_num_threads()) &
    +!$             DBCSR_ABORT("Number of work matrices not equal to number of threads")
    +!$          iw = omp_get_thread_num() + 1
    +            IF (.NOT. dbcsr_use_mutable(matrix)) &
    +               DBCSR_ABORT("Can not retrieve blocks from non-mutable work matrices.")
    +            IF (dbcsr_use_mutable(matrix)) THEN
    +               IF (.NOT. dbcsr_mutable_instantiated(matrix%wms(iw)%mutable)) THEN
    +                  CALL dbcsr_mutable_new(matrix%wms(iw)%mutable, &
    +                                         dbcsr_get_data_type(matrix))
    +               END IF
    +               CALL btree_find( &
    +                  matrix%wms(iw)%mutable%m%btree_z, &
    +                  make_coordinate_tuple(stored_row, stored_col), &
    +                  data_block, found)
    +               IF (found) THEN
    +                  block => data_block%p
    +               END IF
    +            END IF
    +         END IF
    +         IF (careful_mod) CALL timestop(error_handle)
           END SUBROUTINE dbcsr_get_2d_block_p_z
     
    diff --git a/develop/proc/dbcsr_get_block_diag.html b/develop/proc/dbcsr_get_block_diag.html index f462e0fa7c3..787acce4b3c 100644 --- a/develop/proc/dbcsr_get_block_diag.html +++ b/develop/proc/dbcsr_get_block_diag.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_get_block_diag~2.html b/develop/proc/dbcsr_get_block_diag~2.html index 3a578b8eb0f..9647bb7db84 100644 --- a/develop/proc/dbcsr_get_block_diag~2.html +++ b/develop/proc/dbcsr_get_block_diag~2.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_get_block_index.html b/develop/proc/dbcsr_get_block_index.html index 2b810aec605..0362e9dd864 100644 --- a/develop/proc/dbcsr_get_block_index.html +++ b/develop/proc/dbcsr_get_block_index.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    @@ -238,7 +238,7 @@

    Arguments

    @@ -254,7 +254,7 @@

    Arguments

    @@ -270,7 +270,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_get_block_notrans_p_c.html b/develop/proc/dbcsr_get_block_notrans_p_c.html index 157e9801788..afced390969 100644 --- a/develop/proc/dbcsr_get_block_notrans_p_c.html +++ b/develop/proc/dbcsr_get_block_notrans_p_c.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_get_block_notrans_p_d.html b/develop/proc/dbcsr_get_block_notrans_p_d.html index 86b5bd18443..48ef83f042d 100644 --- a/develop/proc/dbcsr_get_block_notrans_p_d.html +++ b/develop/proc/dbcsr_get_block_notrans_p_d.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_get_block_notrans_p_s.html b/develop/proc/dbcsr_get_block_notrans_p_s.html index 50f12a6a20f..ccc69050196 100644 --- a/develop/proc/dbcsr_get_block_notrans_p_s.html +++ b/develop/proc/dbcsr_get_block_notrans_p_s.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_get_block_notrans_p_z.html b/develop/proc/dbcsr_get_block_notrans_p_z.html index 0acaccb2e1a..8faf51a2511 100644 --- a/develop/proc/dbcsr_get_block_notrans_p_z.html +++ b/develop/proc/dbcsr_get_block_notrans_p_z.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_get_block_p_area.html b/develop/proc/dbcsr_get_block_p_area.html index 26c50afe150..a04103eeaa6 100644 --- a/develop/proc/dbcsr_get_block_p_area.html +++ b/develop/proc/dbcsr_get_block_p_area.html @@ -162,7 +162,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    @@ -224,7 +224,7 @@

    Arguments

    @@ -240,7 +240,7 @@

    Arguments

    @@ -256,7 +256,7 @@

    Arguments

    @@ -272,7 +272,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_get_block_p_c.html b/develop/proc/dbcsr_get_block_p_c.html index bf7a3ac98cd..26a44601ceb 100644 --- a/develop/proc/dbcsr_get_block_p_c.html +++ b/develop/proc/dbcsr_get_block_p_c.html @@ -74,20 +74,20 @@

    dbcsr_get_block_p_c
  • 27 statements + title=" 0.0% of total for procedures.">9 statements
  • - Source File + Source File
  • @@ -143,7 +143,6 @@

    private subroutine dbcsr_get_block_p_c(matrix, row, col, block, tr, found,

    -

    Gets a 1-d block from a dbcsr matrix

    Arguments

    @@ -159,8 +158,8 @@

    Arguments

    @@ -184,13 +183,12 @@

    Arguments

    @@ -200,13 +198,12 @@

    Arguments

    @@ -216,12 +213,12 @@

    Arguments

    @@ -231,12 +228,12 @@

    Arguments

    @@ -246,12 +243,12 @@

    Arguments

    @@ -261,13 +258,12 @@

    Arguments

    @@ -277,8 +273,7 @@

    Arguments

    @@ -298,61 +293,16 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_get_block_p_c (matrix, row, col, block, tr, found, &
    -                                                  row_size, col_size)
    -     !! Gets a 1-d block from a dbcsr matrix
    -
    +    
          SUBROUTINE dbcsr_get_block_p_c (matrix, row, col, block, tr, found, row_size, col_size)
              TYPE(dbcsr_type), INTENT(IN)              :: matrix
    -        !! DBCSR matrix
    -         INTEGER, INTENT(IN)                      :: row, col
    -        !! the row
    -        !! the column
    -         COMPLEX(kind=real_4), DIMENSION(:), POINTER           :: block
    -        !! the block to get (rank-1 array)
    -         LOGICAL, INTENT(OUT)                     :: tr
    -        !! whether the data is transposed
    -         LOGICAL, INTENT(OUT)                     :: found
    -        !! whether the block exists in the matrix
    -         INTEGER, INTENT(OUT), OPTIONAL           :: row_size, col_size
    -        !! logical row size of block
    -        !! logical column size of block
    -
    -         INTEGER                                  :: blk, csize, &
    -                                                     nze, offset, &
    -                                                     rsize, stored_row, &
    -                                                     stored_col
    -         LOGICAL                                  :: stored_tr
    -
    -!   ---------------------------------------------------------------------------
    -
    -         IF (debug_mod) THEN
    -            IF (matrix%data_type /= dbcsr_type_complex_4) &
    -               DBCSR_ABORT("Data type mismatch for requested block.")
    -         END IF
    -
    -         CALL dbcsr_get_block_index(matrix, row, col, stored_row, stored_col, &
    -                                    stored_tr, found, blk, offset)
    -         tr = stored_tr
    -
    -         rsize = dbcsr_blk_row_size(matrix, stored_row)
    -         csize = dbcsr_blk_column_size(matrix, stored_col)
    -         IF (PRESENT(row_size)) row_size = rsize
    -         IF (PRESENT(col_size)) col_size = csize
    -
    -         NULLIFY (block)
    -         IF (found) THEN
    -            nze = rsize*csize
    -            !
    -            block => pointer_view( &
    -                     dbcsr_get_data_p(matrix%data_area, CMPLX(0.0, 0.0, real_4)), offset, offset + nze - 1 &
    -                     )
    -         ELSEIF (ASSOCIATED(matrix%wms)) THEN
    -            IF (.NOT. dbcsr_use_mutable(matrix)) &
    -               DBCSR_ABORT("Can not retrieve blocks from non-mutable work matrices.")
    -            IF (dbcsr_use_mutable(matrix)) &
    -               DBCSR_ABORT("Can not retrieve rank-1 block pointers from mutable work matrices.")
    -         END IF
    -      END SUBROUTINE dbcsr_get_block_p_c
    +         INTEGER, INTENT(IN)                       :: row, col
    +         COMPLEX(kind=real_4), DIMENSION(:), POINTER            :: block
    +         LOGICAL, INTENT(OUT)                      :: tr
    +         LOGICAL, INTENT(OUT)                      :: found
    +         INTEGER, INTENT(OUT), OPTIONAL            :: row_size, col_size
    +
    +         CALL dbcsr_get_block_p_prv(matrix%prv, row, col, block, tr, found, row_size, col_size)
    +      END SUBROUTINE dbcsr_get_block_p_c
     
    diff --git a/develop/proc/dbcsr_get_block_p_c~2.html b/develop/proc/dbcsr_get_block_p_c~2.html index ff776da26a7..e6f8a7439e9 100644 --- a/develop/proc/dbcsr_get_block_p_c~2.html +++ b/develop/proc/dbcsr_get_block_p_c~2.html @@ -74,20 +74,20 @@

    dbcsr_get_block_p_c
  • 9 statements + title=" 0.0% of total for procedures.">27 statements
  • - Source File + Source File
  • @@ -143,6 +143,7 @@

    private subroutine dbcsr_get_block_p_c(matrix, row, col, block, tr, found,

    +

    Gets a 1-d block from a dbcsr matrix

    Arguments

    @@ -158,8 +159,8 @@

    Arguments

    @@ -183,12 +184,13 @@

    Arguments

    @@ -198,12 +200,13 @@

    Arguments

    @@ -213,12 +216,12 @@

    Arguments

    @@ -228,12 +231,12 @@

    Arguments

    @@ -243,7 +246,7 @@

    Arguments

    @@ -258,12 +261,13 @@

    Arguments

    @@ -273,7 +277,8 @@

    Arguments

    @@ -293,16 +298,61 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_get_block_p_c (matrix, row, col, block, tr, found, row_size, col_size)
    +    
          SUBROUTINE dbcsr_get_block_p_c (matrix, row, col, block, tr, found, &
    +                                                  row_size, col_size)
    +     !! Gets a 1-d block from a dbcsr matrix
    +
              TYPE(dbcsr_type), INTENT(IN)              :: matrix
    -         INTEGER, INTENT(IN)                       :: row, col
    -         COMPLEX(kind=real_4), DIMENSION(:), POINTER            :: block
    -         LOGICAL, INTENT(OUT)                      :: tr
    -         LOGICAL, INTENT(OUT)                      :: found
    -         INTEGER, INTENT(OUT), OPTIONAL            :: row_size, col_size
    -
    -         CALL dbcsr_get_block_p_prv(matrix%prv, row, col, block, tr, found, row_size, col_size)
    -      END SUBROUTINE dbcsr_get_block_p_c
    +        !! DBCSR matrix
    +         INTEGER, INTENT(IN)                      :: row, col
    +        !! the row
    +        !! the column
    +         COMPLEX(kind=real_4), DIMENSION(:), POINTER           :: block
    +        !! the block to get (rank-1 array)
    +         LOGICAL, INTENT(OUT)                     :: tr
    +        !! whether the data is transposed
    +         LOGICAL, INTENT(OUT)                     :: found
    +        !! whether the block exists in the matrix
    +         INTEGER, INTENT(OUT), OPTIONAL           :: row_size, col_size
    +        !! logical row size of block
    +        !! logical column size of block
    +
    +         INTEGER                                  :: blk, csize, &
    +                                                     nze, offset, &
    +                                                     rsize, stored_row, &
    +                                                     stored_col
    +         LOGICAL                                  :: stored_tr
    +
    +!   ---------------------------------------------------------------------------
    +
    +         IF (debug_mod) THEN
    +            IF (matrix%data_type /= dbcsr_type_complex_4) &
    +               DBCSR_ABORT("Data type mismatch for requested block.")
    +         END IF
    +
    +         CALL dbcsr_get_block_index(matrix, row, col, stored_row, stored_col, &
    +                                    stored_tr, found, blk, offset)
    +         tr = stored_tr
    +
    +         rsize = dbcsr_blk_row_size(matrix, stored_row)
    +         csize = dbcsr_blk_column_size(matrix, stored_col)
    +         IF (PRESENT(row_size)) row_size = rsize
    +         IF (PRESENT(col_size)) col_size = csize
    +
    +         NULLIFY (block)
    +         IF (found) THEN
    +            nze = rsize*csize
    +            !
    +            block => pointer_view( &
    +                     dbcsr_get_data_p(matrix%data_area, CMPLX(0.0, 0.0, real_4)), offset, offset + nze - 1 &
    +                     )
    +         ELSEIF (ASSOCIATED(matrix%wms)) THEN
    +            IF (.NOT. dbcsr_use_mutable(matrix)) &
    +               DBCSR_ABORT("Can not retrieve blocks from non-mutable work matrices.")
    +            IF (dbcsr_use_mutable(matrix)) &
    +               DBCSR_ABORT("Can not retrieve rank-1 block pointers from mutable work matrices.")
    +         END IF
    +      END SUBROUTINE dbcsr_get_block_p_c
     
    diff --git a/develop/proc/dbcsr_get_block_p_d.html b/develop/proc/dbcsr_get_block_p_d.html index bc41918d304..8b98e0a790f 100644 --- a/develop/proc/dbcsr_get_block_p_d.html +++ b/develop/proc/dbcsr_get_block_p_d.html @@ -74,20 +74,20 @@

    dbcsr_get_block_p_d
  • 27 statements + title=" 0.0% of total for procedures.">9 statements
  • - Source File + Source File
  • @@ -143,7 +143,6 @@

    private subroutine dbcsr_get_block_p_d(matrix, row, col, block, tr, found,

    -

    Gets a 1-d block from a dbcsr matrix

    Arguments

    @@ -159,8 +158,8 @@

    Arguments

    @@ -184,13 +183,12 @@

    Arguments

    @@ -200,13 +198,12 @@

    Arguments

    @@ -216,12 +213,12 @@

    Arguments

    @@ -231,12 +228,12 @@

    Arguments

    @@ -246,12 +243,12 @@

    Arguments

    @@ -261,13 +258,12 @@

    Arguments

    @@ -277,8 +273,7 @@

    Arguments

    @@ -298,61 +293,16 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_get_block_p_d (matrix, row, col, block, tr, found, &
    -                                                  row_size, col_size)
    -     !! Gets a 1-d block from a dbcsr matrix
    -
    +    
          SUBROUTINE dbcsr_get_block_p_d (matrix, row, col, block, tr, found, row_size, col_size)
              TYPE(dbcsr_type), INTENT(IN)              :: matrix
    -        !! DBCSR matrix
    -         INTEGER, INTENT(IN)                      :: row, col
    -        !! the row
    -        !! the column
    -         REAL(kind=real_8), DIMENSION(:), POINTER           :: block
    -        !! the block to get (rank-1 array)
    -         LOGICAL, INTENT(OUT)                     :: tr
    -        !! whether the data is transposed
    -         LOGICAL, INTENT(OUT)                     :: found
    -        !! whether the block exists in the matrix
    -         INTEGER, INTENT(OUT), OPTIONAL           :: row_size, col_size
    -        !! logical row size of block
    -        !! logical column size of block
    -
    -         INTEGER                                  :: blk, csize, &
    -                                                     nze, offset, &
    -                                                     rsize, stored_row, &
    -                                                     stored_col
    -         LOGICAL                                  :: stored_tr
    -
    -!   ---------------------------------------------------------------------------
    -
    -         IF (debug_mod) THEN
    -            IF (matrix%data_type /= dbcsr_type_real_8) &
    -               DBCSR_ABORT("Data type mismatch for requested block.")
    -         END IF
    -
    -         CALL dbcsr_get_block_index(matrix, row, col, stored_row, stored_col, &
    -                                    stored_tr, found, blk, offset)
    -         tr = stored_tr
    -
    -         rsize = dbcsr_blk_row_size(matrix, stored_row)
    -         csize = dbcsr_blk_column_size(matrix, stored_col)
    -         IF (PRESENT(row_size)) row_size = rsize
    -         IF (PRESENT(col_size)) col_size = csize
    -
    -         NULLIFY (block)
    -         IF (found) THEN
    -            nze = rsize*csize
    -            !
    -            block => pointer_view( &
    -                     dbcsr_get_data_p(matrix%data_area, 0.0_real_8), offset, offset + nze - 1 &
    -                     )
    -         ELSEIF (ASSOCIATED(matrix%wms)) THEN
    -            IF (.NOT. dbcsr_use_mutable(matrix)) &
    -               DBCSR_ABORT("Can not retrieve blocks from non-mutable work matrices.")
    -            IF (dbcsr_use_mutable(matrix)) &
    -               DBCSR_ABORT("Can not retrieve rank-1 block pointers from mutable work matrices.")
    -         END IF
    -      END SUBROUTINE dbcsr_get_block_p_d
    +         INTEGER, INTENT(IN)                       :: row, col
    +         REAL(kind=real_8), DIMENSION(:), POINTER            :: block
    +         LOGICAL, INTENT(OUT)                      :: tr
    +         LOGICAL, INTENT(OUT)                      :: found
    +         INTEGER, INTENT(OUT), OPTIONAL            :: row_size, col_size
    +
    +         CALL dbcsr_get_block_p_prv(matrix%prv, row, col, block, tr, found, row_size, col_size)
    +      END SUBROUTINE dbcsr_get_block_p_d
     
    diff --git a/develop/proc/dbcsr_get_block_p_d~2.html b/develop/proc/dbcsr_get_block_p_d~2.html index 3ea6d9ee818..9248fb8e71d 100644 --- a/develop/proc/dbcsr_get_block_p_d~2.html +++ b/develop/proc/dbcsr_get_block_p_d~2.html @@ -74,20 +74,20 @@

    dbcsr_get_block_p_d
  • 9 statements + title=" 0.0% of total for procedures.">27 statements
  • - Source File + Source File
  • @@ -143,6 +143,7 @@

    private subroutine dbcsr_get_block_p_d(matrix, row, col, block, tr, found,

    +

    Gets a 1-d block from a dbcsr matrix

    Arguments

    @@ -158,8 +159,8 @@

    Arguments

    @@ -183,12 +184,13 @@

    Arguments

    @@ -198,12 +200,13 @@

    Arguments

    @@ -213,12 +216,12 @@

    Arguments

    @@ -228,12 +231,12 @@

    Arguments

    @@ -243,12 +246,12 @@

    Arguments

    @@ -258,12 +261,13 @@

    Arguments

    @@ -273,7 +277,8 @@

    Arguments

    @@ -293,16 +298,61 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_get_block_p_d (matrix, row, col, block, tr, found, row_size, col_size)
    +    
          SUBROUTINE dbcsr_get_block_p_d (matrix, row, col, block, tr, found, &
    +                                                  row_size, col_size)
    +     !! Gets a 1-d block from a dbcsr matrix
    +
              TYPE(dbcsr_type), INTENT(IN)              :: matrix
    -         INTEGER, INTENT(IN)                       :: row, col
    -         REAL(kind=real_8), DIMENSION(:), POINTER            :: block
    -         LOGICAL, INTENT(OUT)                      :: tr
    -         LOGICAL, INTENT(OUT)                      :: found
    -         INTEGER, INTENT(OUT), OPTIONAL            :: row_size, col_size
    -
    -         CALL dbcsr_get_block_p_prv(matrix%prv, row, col, block, tr, found, row_size, col_size)
    -      END SUBROUTINE dbcsr_get_block_p_d
    +        !! DBCSR matrix
    +         INTEGER, INTENT(IN)                      :: row, col
    +        !! the row
    +        !! the column
    +         REAL(kind=real_8), DIMENSION(:), POINTER           :: block
    +        !! the block to get (rank-1 array)
    +         LOGICAL, INTENT(OUT)                     :: tr
    +        !! whether the data is transposed
    +         LOGICAL, INTENT(OUT)                     :: found
    +        !! whether the block exists in the matrix
    +         INTEGER, INTENT(OUT), OPTIONAL           :: row_size, col_size
    +        !! logical row size of block
    +        !! logical column size of block
    +
    +         INTEGER                                  :: blk, csize, &
    +                                                     nze, offset, &
    +                                                     rsize, stored_row, &
    +                                                     stored_col
    +         LOGICAL                                  :: stored_tr
    +
    +!   ---------------------------------------------------------------------------
    +
    +         IF (debug_mod) THEN
    +            IF (matrix%data_type /= dbcsr_type_real_8) &
    +               DBCSR_ABORT("Data type mismatch for requested block.")
    +         END IF
    +
    +         CALL dbcsr_get_block_index(matrix, row, col, stored_row, stored_col, &
    +                                    stored_tr, found, blk, offset)
    +         tr = stored_tr
    +
    +         rsize = dbcsr_blk_row_size(matrix, stored_row)
    +         csize = dbcsr_blk_column_size(matrix, stored_col)
    +         IF (PRESENT(row_size)) row_size = rsize
    +         IF (PRESENT(col_size)) col_size = csize
    +
    +         NULLIFY (block)
    +         IF (found) THEN
    +            nze = rsize*csize
    +            !
    +            block => pointer_view( &
    +                     dbcsr_get_data_p(matrix%data_area, 0.0_real_8), offset, offset + nze - 1 &
    +                     )
    +         ELSEIF (ASSOCIATED(matrix%wms)) THEN
    +            IF (.NOT. dbcsr_use_mutable(matrix)) &
    +               DBCSR_ABORT("Can not retrieve blocks from non-mutable work matrices.")
    +            IF (dbcsr_use_mutable(matrix)) &
    +               DBCSR_ABORT("Can not retrieve rank-1 block pointers from mutable work matrices.")
    +         END IF
    +      END SUBROUTINE dbcsr_get_block_p_d
     
    diff --git a/develop/proc/dbcsr_get_block_p_s.html b/develop/proc/dbcsr_get_block_p_s.html index 6104200a83e..36f3311328a 100644 --- a/develop/proc/dbcsr_get_block_p_s.html +++ b/develop/proc/dbcsr_get_block_p_s.html @@ -74,20 +74,20 @@

    dbcsr_get_block_p_s
  • 27 statements + title=" 0.0% of total for procedures.">9 statements
  • - Source File + Source File
  • @@ -143,7 +143,6 @@

    private subroutine dbcsr_get_block_p_s(matrix, row, col, block, tr, found,

    -

    Gets a 1-d block from a dbcsr matrix

    Arguments

    @@ -159,8 +158,8 @@

    Arguments

    @@ -184,13 +183,12 @@

    Arguments

    @@ -200,13 +198,12 @@

    Arguments

    @@ -216,12 +213,12 @@

    Arguments

    @@ -231,12 +228,12 @@

    Arguments

    @@ -246,12 +243,12 @@

    Arguments

    @@ -261,13 +258,12 @@

    Arguments

    @@ -277,8 +273,7 @@

    Arguments

    @@ -298,61 +293,16 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_get_block_p_s (matrix, row, col, block, tr, found, &
    -                                                  row_size, col_size)
    -     !! Gets a 1-d block from a dbcsr matrix
    -
    +    
          SUBROUTINE dbcsr_get_block_p_s (matrix, row, col, block, tr, found, row_size, col_size)
              TYPE(dbcsr_type), INTENT(IN)              :: matrix
    -        !! DBCSR matrix
    -         INTEGER, INTENT(IN)                      :: row, col
    -        !! the row
    -        !! the column
    -         REAL(kind=real_4), DIMENSION(:), POINTER           :: block
    -        !! the block to get (rank-1 array)
    -         LOGICAL, INTENT(OUT)                     :: tr
    -        !! whether the data is transposed
    -         LOGICAL, INTENT(OUT)                     :: found
    -        !! whether the block exists in the matrix
    -         INTEGER, INTENT(OUT), OPTIONAL           :: row_size, col_size
    -        !! logical row size of block
    -        !! logical column size of block
    -
    -         INTEGER                                  :: blk, csize, &
    -                                                     nze, offset, &
    -                                                     rsize, stored_row, &
    -                                                     stored_col
    -         LOGICAL                                  :: stored_tr
    -
    -!   ---------------------------------------------------------------------------
    -
    -         IF (debug_mod) THEN
    -            IF (matrix%data_type /= dbcsr_type_real_4) &
    -               DBCSR_ABORT("Data type mismatch for requested block.")
    -         END IF
    -
    -         CALL dbcsr_get_block_index(matrix, row, col, stored_row, stored_col, &
    -                                    stored_tr, found, blk, offset)
    -         tr = stored_tr
    -
    -         rsize = dbcsr_blk_row_size(matrix, stored_row)
    -         csize = dbcsr_blk_column_size(matrix, stored_col)
    -         IF (PRESENT(row_size)) row_size = rsize
    -         IF (PRESENT(col_size)) col_size = csize
    -
    -         NULLIFY (block)
    -         IF (found) THEN
    -            nze = rsize*csize
    -            !
    -            block => pointer_view( &
    -                     dbcsr_get_data_p(matrix%data_area, 0.0_real_4), offset, offset + nze - 1 &
    -                     )
    -         ELSEIF (ASSOCIATED(matrix%wms)) THEN
    -            IF (.NOT. dbcsr_use_mutable(matrix)) &
    -               DBCSR_ABORT("Can not retrieve blocks from non-mutable work matrices.")
    -            IF (dbcsr_use_mutable(matrix)) &
    -               DBCSR_ABORT("Can not retrieve rank-1 block pointers from mutable work matrices.")
    -         END IF
    -      END SUBROUTINE dbcsr_get_block_p_s
    +         INTEGER, INTENT(IN)                       :: row, col
    +         REAL(kind=real_4), DIMENSION(:), POINTER            :: block
    +         LOGICAL, INTENT(OUT)                      :: tr
    +         LOGICAL, INTENT(OUT)                      :: found
    +         INTEGER, INTENT(OUT), OPTIONAL            :: row_size, col_size
    +
    +         CALL dbcsr_get_block_p_prv(matrix%prv, row, col, block, tr, found, row_size, col_size)
    +      END SUBROUTINE dbcsr_get_block_p_s
     
    diff --git a/develop/proc/dbcsr_get_block_p_s~2.html b/develop/proc/dbcsr_get_block_p_s~2.html index 5dd6c610c87..d3b71775e04 100644 --- a/develop/proc/dbcsr_get_block_p_s~2.html +++ b/develop/proc/dbcsr_get_block_p_s~2.html @@ -74,20 +74,20 @@

    dbcsr_get_block_p_s
  • 9 statements + title=" 0.0% of total for procedures.">27 statements
  • - Source File + Source File
  • @@ -143,6 +143,7 @@

    private subroutine dbcsr_get_block_p_s(matrix, row, col, block, tr, found,

    +

    Gets a 1-d block from a dbcsr matrix

    Arguments

    @@ -158,8 +159,8 @@

    Arguments

    @@ -183,12 +184,13 @@

    Arguments

    @@ -198,12 +200,13 @@

    Arguments

    @@ -213,12 +216,12 @@

    Arguments

    @@ -228,12 +231,12 @@

    Arguments

    @@ -243,12 +246,12 @@

    Arguments

    @@ -258,12 +261,13 @@

    Arguments

    @@ -273,7 +277,8 @@

    Arguments

    @@ -293,16 +298,61 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_get_block_p_s (matrix, row, col, block, tr, found, row_size, col_size)
    +    
          SUBROUTINE dbcsr_get_block_p_s (matrix, row, col, block, tr, found, &
    +                                                  row_size, col_size)
    +     !! Gets a 1-d block from a dbcsr matrix
    +
              TYPE(dbcsr_type), INTENT(IN)              :: matrix
    -         INTEGER, INTENT(IN)                       :: row, col
    -         REAL(kind=real_4), DIMENSION(:), POINTER            :: block
    -         LOGICAL, INTENT(OUT)                      :: tr
    -         LOGICAL, INTENT(OUT)                      :: found
    -         INTEGER, INTENT(OUT), OPTIONAL            :: row_size, col_size
    -
    -         CALL dbcsr_get_block_p_prv(matrix%prv, row, col, block, tr, found, row_size, col_size)
    -      END SUBROUTINE dbcsr_get_block_p_s
    +        !! DBCSR matrix
    +         INTEGER, INTENT(IN)                      :: row, col
    +        !! the row
    +        !! the column
    +         REAL(kind=real_4), DIMENSION(:), POINTER           :: block
    +        !! the block to get (rank-1 array)
    +         LOGICAL, INTENT(OUT)                     :: tr
    +        !! whether the data is transposed
    +         LOGICAL, INTENT(OUT)                     :: found
    +        !! whether the block exists in the matrix
    +         INTEGER, INTENT(OUT), OPTIONAL           :: row_size, col_size
    +        !! logical row size of block
    +        !! logical column size of block
    +
    +         INTEGER                                  :: blk, csize, &
    +                                                     nze, offset, &
    +                                                     rsize, stored_row, &
    +                                                     stored_col
    +         LOGICAL                                  :: stored_tr
    +
    +!   ---------------------------------------------------------------------------
    +
    +         IF (debug_mod) THEN
    +            IF (matrix%data_type /= dbcsr_type_real_4) &
    +               DBCSR_ABORT("Data type mismatch for requested block.")
    +         END IF
    +
    +         CALL dbcsr_get_block_index(matrix, row, col, stored_row, stored_col, &
    +                                    stored_tr, found, blk, offset)
    +         tr = stored_tr
    +
    +         rsize = dbcsr_blk_row_size(matrix, stored_row)
    +         csize = dbcsr_blk_column_size(matrix, stored_col)
    +         IF (PRESENT(row_size)) row_size = rsize
    +         IF (PRESENT(col_size)) col_size = csize
    +
    +         NULLIFY (block)
    +         IF (found) THEN
    +            nze = rsize*csize
    +            !
    +            block => pointer_view( &
    +                     dbcsr_get_data_p(matrix%data_area, 0.0_real_4), offset, offset + nze - 1 &
    +                     )
    +         ELSEIF (ASSOCIATED(matrix%wms)) THEN
    +            IF (.NOT. dbcsr_use_mutable(matrix)) &
    +               DBCSR_ABORT("Can not retrieve blocks from non-mutable work matrices.")
    +            IF (dbcsr_use_mutable(matrix)) &
    +               DBCSR_ABORT("Can not retrieve rank-1 block pointers from mutable work matrices.")
    +         END IF
    +      END SUBROUTINE dbcsr_get_block_p_s
     
    diff --git a/develop/proc/dbcsr_get_block_p_z.html b/develop/proc/dbcsr_get_block_p_z.html index 48a2bb1d668..696e026ae3f 100644 --- a/develop/proc/dbcsr_get_block_p_z.html +++ b/develop/proc/dbcsr_get_block_p_z.html @@ -74,20 +74,20 @@

    dbcsr_get_block_p_z
  • 27 statements + title=" 0.0% of total for procedures.">9 statements
  • - Source File + Source File
  • @@ -143,7 +143,6 @@

    private subroutine dbcsr_get_block_p_z(matrix, row, col, block, tr, found,

    -

    Gets a 1-d block from a dbcsr matrix

    Arguments

    @@ -159,8 +158,8 @@

    Arguments

    @@ -184,13 +183,12 @@

    Arguments

    @@ -200,13 +198,12 @@

    Arguments

    @@ -216,12 +213,12 @@

    Arguments

    @@ -231,12 +228,12 @@

    Arguments

    @@ -246,7 +243,7 @@

    Arguments

    @@ -261,13 +258,12 @@

    Arguments

    @@ -277,8 +273,7 @@

    Arguments

    @@ -298,61 +293,16 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_get_block_p_z (matrix, row, col, block, tr, found, &
    -                                                  row_size, col_size)
    -     !! Gets a 1-d block from a dbcsr matrix
    -
    +    
          SUBROUTINE dbcsr_get_block_p_z (matrix, row, col, block, tr, found, row_size, col_size)
              TYPE(dbcsr_type), INTENT(IN)              :: matrix
    -        !! DBCSR matrix
    -         INTEGER, INTENT(IN)                      :: row, col
    -        !! the row
    -        !! the column
    -         COMPLEX(kind=real_8), DIMENSION(:), POINTER           :: block
    -        !! the block to get (rank-1 array)
    -         LOGICAL, INTENT(OUT)                     :: tr
    -        !! whether the data is transposed
    -         LOGICAL, INTENT(OUT)                     :: found
    -        !! whether the block exists in the matrix
    -         INTEGER, INTENT(OUT), OPTIONAL           :: row_size, col_size
    -        !! logical row size of block
    -        !! logical column size of block
    -
    -         INTEGER                                  :: blk, csize, &
    -                                                     nze, offset, &
    -                                                     rsize, stored_row, &
    -                                                     stored_col
    -         LOGICAL                                  :: stored_tr
    -
    -!   ---------------------------------------------------------------------------
    -
    -         IF (debug_mod) THEN
    -            IF (matrix%data_type /= dbcsr_type_complex_8) &
    -               DBCSR_ABORT("Data type mismatch for requested block.")
    -         END IF
    -
    -         CALL dbcsr_get_block_index(matrix, row, col, stored_row, stored_col, &
    -                                    stored_tr, found, blk, offset)
    -         tr = stored_tr
    -
    -         rsize = dbcsr_blk_row_size(matrix, stored_row)
    -         csize = dbcsr_blk_column_size(matrix, stored_col)
    -         IF (PRESENT(row_size)) row_size = rsize
    -         IF (PRESENT(col_size)) col_size = csize
    -
    -         NULLIFY (block)
    -         IF (found) THEN
    -            nze = rsize*csize
    -            !
    -            block => pointer_view( &
    -                     dbcsr_get_data_p(matrix%data_area, CMPLX(0.0, 0.0, real_8)), offset, offset + nze - 1 &
    -                     )
    -         ELSEIF (ASSOCIATED(matrix%wms)) THEN
    -            IF (.NOT. dbcsr_use_mutable(matrix)) &
    -               DBCSR_ABORT("Can not retrieve blocks from non-mutable work matrices.")
    -            IF (dbcsr_use_mutable(matrix)) &
    -               DBCSR_ABORT("Can not retrieve rank-1 block pointers from mutable work matrices.")
    -         END IF
    -      END SUBROUTINE dbcsr_get_block_p_z
    +         INTEGER, INTENT(IN)                       :: row, col
    +         COMPLEX(kind=real_8), DIMENSION(:), POINTER            :: block
    +         LOGICAL, INTENT(OUT)                      :: tr
    +         LOGICAL, INTENT(OUT)                      :: found
    +         INTEGER, INTENT(OUT), OPTIONAL            :: row_size, col_size
    +
    +         CALL dbcsr_get_block_p_prv(matrix%prv, row, col, block, tr, found, row_size, col_size)
    +      END SUBROUTINE dbcsr_get_block_p_z
     
    diff --git a/develop/proc/dbcsr_get_block_p_z~2.html b/develop/proc/dbcsr_get_block_p_z~2.html index 020023aafdc..386ef8000c4 100644 --- a/develop/proc/dbcsr_get_block_p_z~2.html +++ b/develop/proc/dbcsr_get_block_p_z~2.html @@ -74,20 +74,20 @@

    dbcsr_get_block_p_z
  • 9 statements + title=" 0.0% of total for procedures.">27 statements
  • - Source File + Source File
  • @@ -143,6 +143,7 @@

    private subroutine dbcsr_get_block_p_z(matrix, row, col, block, tr, found,

    +

    Gets a 1-d block from a dbcsr matrix

    Arguments

    @@ -158,8 +159,8 @@

    Arguments

    @@ -183,12 +184,13 @@

    Arguments

    @@ -198,12 +200,13 @@

    Arguments

    @@ -213,12 +216,12 @@

    Arguments

    @@ -228,12 +231,12 @@

    Arguments

    @@ -243,12 +246,12 @@

    Arguments

    @@ -258,12 +261,13 @@

    Arguments

    @@ -273,7 +277,8 @@

    Arguments

    @@ -293,16 +298,61 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_get_block_p_z (matrix, row, col, block, tr, found, row_size, col_size)
    +    
          SUBROUTINE dbcsr_get_block_p_z (matrix, row, col, block, tr, found, &
    +                                                  row_size, col_size)
    +     !! Gets a 1-d block from a dbcsr matrix
    +
              TYPE(dbcsr_type), INTENT(IN)              :: matrix
    -         INTEGER, INTENT(IN)                       :: row, col
    -         COMPLEX(kind=real_8), DIMENSION(:), POINTER            :: block
    -         LOGICAL, INTENT(OUT)                      :: tr
    -         LOGICAL, INTENT(OUT)                      :: found
    -         INTEGER, INTENT(OUT), OPTIONAL            :: row_size, col_size
    -
    -         CALL dbcsr_get_block_p_prv(matrix%prv, row, col, block, tr, found, row_size, col_size)
    -      END SUBROUTINE dbcsr_get_block_p_z
    +        !! DBCSR matrix
    +         INTEGER, INTENT(IN)                      :: row, col
    +        !! the row
    +        !! the column
    +         COMPLEX(kind=real_8), DIMENSION(:), POINTER           :: block
    +        !! the block to get (rank-1 array)
    +         LOGICAL, INTENT(OUT)                     :: tr
    +        !! whether the data is transposed
    +         LOGICAL, INTENT(OUT)                     :: found
    +        !! whether the block exists in the matrix
    +         INTEGER, INTENT(OUT), OPTIONAL           :: row_size, col_size
    +        !! logical row size of block
    +        !! logical column size of block
    +
    +         INTEGER                                  :: blk, csize, &
    +                                                     nze, offset, &
    +                                                     rsize, stored_row, &
    +                                                     stored_col
    +         LOGICAL                                  :: stored_tr
    +
    +!   ---------------------------------------------------------------------------
    +
    +         IF (debug_mod) THEN
    +            IF (matrix%data_type /= dbcsr_type_complex_8) &
    +               DBCSR_ABORT("Data type mismatch for requested block.")
    +         END IF
    +
    +         CALL dbcsr_get_block_index(matrix, row, col, stored_row, stored_col, &
    +                                    stored_tr, found, blk, offset)
    +         tr = stored_tr
    +
    +         rsize = dbcsr_blk_row_size(matrix, stored_row)
    +         csize = dbcsr_blk_column_size(matrix, stored_col)
    +         IF (PRESENT(row_size)) row_size = rsize
    +         IF (PRESENT(col_size)) col_size = csize
    +
    +         NULLIFY (block)
    +         IF (found) THEN
    +            nze = rsize*csize
    +            !
    +            block => pointer_view( &
    +                     dbcsr_get_data_p(matrix%data_area, CMPLX(0.0, 0.0, real_8)), offset, offset + nze - 1 &
    +                     )
    +         ELSEIF (ASSOCIATED(matrix%wms)) THEN
    +            IF (.NOT. dbcsr_use_mutable(matrix)) &
    +               DBCSR_ABORT("Can not retrieve blocks from non-mutable work matrices.")
    +            IF (dbcsr_use_mutable(matrix)) &
    +               DBCSR_ABORT("Can not retrieve rank-1 block pointers from mutable work matrices.")
    +         END IF
    +      END SUBROUTINE dbcsr_get_block_p_z
     
    diff --git a/develop/proc/dbcsr_get_data_c.html b/develop/proc/dbcsr_get_data_c.html index a6c6c8b45b4..6a7db271440 100644 --- a/develop/proc/dbcsr_get_data_c.html +++ b/develop/proc/dbcsr_get_data_c.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    Return Value - + complex(kind=real_4), DIMENSION(:), POINTER

    diff --git a/develop/proc/dbcsr_get_data_c_c.html b/develop/proc/dbcsr_get_data_c_c.html index 4e52bca54df..0a1504060de 100644 --- a/develop/proc/dbcsr_get_data_c_c.html +++ b/develop/proc/dbcsr_get_data_c_c.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    Return Value - + complex(kind=real_4), DIMENSION(:), POINTER

    diff --git a/develop/proc/dbcsr_get_data_c_d.html b/develop/proc/dbcsr_get_data_c_d.html index 328319481ef..a28f789dda4 100644 --- a/develop/proc/dbcsr_get_data_c_d.html +++ b/develop/proc/dbcsr_get_data_c_d.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    Return Value - + real(kind=real_8), DIMENSION(:), POINTER

    diff --git a/develop/proc/dbcsr_get_data_c_s.html b/develop/proc/dbcsr_get_data_c_s.html index 3c0ff052b21..be277525954 100644 --- a/develop/proc/dbcsr_get_data_c_s.html +++ b/develop/proc/dbcsr_get_data_c_s.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    Return Value - + real(kind=real_4), DIMENSION(:), POINTER

    diff --git a/develop/proc/dbcsr_get_data_c_z.html b/develop/proc/dbcsr_get_data_c_z.html index c59dd1f82d2..15839497929 100644 --- a/develop/proc/dbcsr_get_data_c_z.html +++ b/develop/proc/dbcsr_get_data_c_z.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    Return Value - + complex(kind=real_8), DIMENSION(:), POINTER

    diff --git a/develop/proc/dbcsr_get_data_d.html b/develop/proc/dbcsr_get_data_d.html index d8850344543..bfb7012fac0 100644 --- a/develop/proc/dbcsr_get_data_d.html +++ b/develop/proc/dbcsr_get_data_d.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    Return Value - + real(kind=real_8), DIMENSION(:), POINTER

    diff --git a/develop/proc/dbcsr_get_data_memory_type.html b/develop/proc/dbcsr_get_data_memory_type.html index 94f1188948f..6dee4bf1641 100644 --- a/develop/proc/dbcsr_get_data_memory_type.html +++ b/develop/proc/dbcsr_get_data_memory_type.html @@ -163,7 +163,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_get_data_p_2d_c.html b/develop/proc/dbcsr_get_data_p_2d_c.html index 6042acc17ac..886333792e8 100644 --- a/develop/proc/dbcsr_get_data_p_2d_c.html +++ b/develop/proc/dbcsr_get_data_p_2d_c.html @@ -162,7 +162,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    Return Value - + complex(kind=real_4), DIMENSION(:, :), POINTER

    diff --git a/develop/proc/dbcsr_get_data_p_2d_d.html b/develop/proc/dbcsr_get_data_p_2d_d.html index c4be98e64f0..78ba396d4f3 100644 --- a/develop/proc/dbcsr_get_data_p_2d_d.html +++ b/develop/proc/dbcsr_get_data_p_2d_d.html @@ -162,7 +162,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    Return Value - + real(kind=real_8), DIMENSION(:, :), POINTER

    diff --git a/develop/proc/dbcsr_get_data_p_2d_s.html b/develop/proc/dbcsr_get_data_p_2d_s.html index 70640061290..2f9296efed0 100644 --- a/develop/proc/dbcsr_get_data_p_2d_s.html +++ b/develop/proc/dbcsr_get_data_p_2d_s.html @@ -162,7 +162,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    Return Value - + real(kind=real_4), DIMENSION(:, :), POINTER

    diff --git a/develop/proc/dbcsr_get_data_p_2d_z.html b/develop/proc/dbcsr_get_data_p_2d_z.html index 75f8f48e94f..b56768a2b48 100644 --- a/develop/proc/dbcsr_get_data_p_2d_z.html +++ b/develop/proc/dbcsr_get_data_p_2d_z.html @@ -162,7 +162,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    Return Value - + complex(kind=real_8), DIMENSION(:, :), POINTER

    diff --git a/develop/proc/dbcsr_get_data_p_c.html b/develop/proc/dbcsr_get_data_p_c.html index 3a89609df77..f69936d9aac 100644 --- a/develop/proc/dbcsr_get_data_p_c.html +++ b/develop/proc/dbcsr_get_data_p_c.html @@ -162,7 +162,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    Return Value - + complex(kind=real_4), DIMENSION(:), POINTER, CONTIGUOUS

    diff --git a/develop/proc/dbcsr_get_data_p_d.html b/develop/proc/dbcsr_get_data_p_d.html index b99ee782189..adfdcd2640e 100644 --- a/develop/proc/dbcsr_get_data_p_d.html +++ b/develop/proc/dbcsr_get_data_p_d.html @@ -162,7 +162,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    Return Value - + real(kind=real_8), DIMENSION(:), POINTER, CONTIGUOUS

    diff --git a/develop/proc/dbcsr_get_data_p_s.html b/develop/proc/dbcsr_get_data_p_s.html index 46a6eb6e716..0c20e821a4e 100644 --- a/develop/proc/dbcsr_get_data_p_s.html +++ b/develop/proc/dbcsr_get_data_p_s.html @@ -162,7 +162,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    Return Value - + real(kind=real_4), DIMENSION(:), POINTER, CONTIGUOUS

    diff --git a/develop/proc/dbcsr_get_data_p_z.html b/develop/proc/dbcsr_get_data_p_z.html index 892e1f9865e..c7df8dd1997 100644 --- a/develop/proc/dbcsr_get_data_p_z.html +++ b/develop/proc/dbcsr_get_data_p_z.html @@ -162,7 +162,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    Return Value - + complex(kind=real_8), DIMENSION(:), POINTER, CONTIGUOUS

    diff --git a/develop/proc/dbcsr_get_data_s.html b/develop/proc/dbcsr_get_data_s.html index 685f688a723..005a8574d89 100644 --- a/develop/proc/dbcsr_get_data_s.html +++ b/develop/proc/dbcsr_get_data_s.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    Return Value - + real(kind=real_4), DIMENSION(:), POINTER

    diff --git a/develop/proc/dbcsr_get_data_size.html b/develop/proc/dbcsr_get_data_size.html index 9ef46ae5cf8..de37487885f 100644 --- a/develop/proc/dbcsr_get_data_size.html +++ b/develop/proc/dbcsr_get_data_size.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_get_data_size_used.html b/develop/proc/dbcsr_get_data_size_used.html index 3f0e7f47090..90e8e220d16 100644 --- a/develop/proc/dbcsr_get_data_size_used.html +++ b/develop/proc/dbcsr_get_data_size_used.html @@ -159,7 +159,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_get_data_size~2.html b/develop/proc/dbcsr_get_data_size~2.html index 477bd39cbf6..e5a22bbdb30 100644 --- a/develop/proc/dbcsr_get_data_size~2.html +++ b/develop/proc/dbcsr_get_data_size~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_get_data_type.html b/develop/proc/dbcsr_get_data_type.html index 29daa628830..93f57d03917 100644 --- a/develop/proc/dbcsr_get_data_type.html +++ b/develop/proc/dbcsr_get_data_type.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_get_data_type~2.html b/develop/proc/dbcsr_get_data_type~2.html index c0a8ebf4185..338158a86a9 100644 --- a/develop/proc/dbcsr_get_data_type~2.html +++ b/develop/proc/dbcsr_get_data_type~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_get_data_z.html b/develop/proc/dbcsr_get_data_z.html index 4ba9d886b59..d47919bb98f 100644 --- a/develop/proc/dbcsr_get_data_z.html +++ b/develop/proc/dbcsr_get_data_z.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    Return Value - + complex(kind=real_8), DIMENSION(:), POINTER

    diff --git a/develop/proc/dbcsr_get_default_config.html b/develop/proc/dbcsr_get_default_config.html index e24e091cf4b..86dd802971c 100644 --- a/develop/proc/dbcsr_get_default_config.html +++ b/develop/proc/dbcsr_get_default_config.html @@ -218,7 +218,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_get_default_logger.html b/develop/proc/dbcsr_get_default_logger.html index a6d7925c6bd..7060f64acd1 100644 --- a/develop/proc/dbcsr_get_default_logger.html +++ b/develop/proc/dbcsr_get_default_logger.html @@ -155,7 +155,7 @@

    Arguments


    Return Value - + type(dbcsr_logger_type), POINTER

    diff --git a/develop/proc/dbcsr_get_diag_c.html b/develop/proc/dbcsr_get_diag_c.html index 72d711982f5..13cf6146403 100644 --- a/develop/proc/dbcsr_get_diag_c.html +++ b/develop/proc/dbcsr_get_diag_c.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_get_diag_c~2.html b/develop/proc/dbcsr_get_diag_c~2.html index bd4a235867f..0819b69a190 100644 --- a/develop/proc/dbcsr_get_diag_c~2.html +++ b/develop/proc/dbcsr_get_diag_c~2.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_get_diag_d.html b/develop/proc/dbcsr_get_diag_d.html index 5ea8eb32920..4bfdbb52175 100644 --- a/develop/proc/dbcsr_get_diag_d.html +++ b/develop/proc/dbcsr_get_diag_d.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_get_diag_d~2.html b/develop/proc/dbcsr_get_diag_d~2.html index 0e449b57d65..733e1a46b9d 100644 --- a/develop/proc/dbcsr_get_diag_d~2.html +++ b/develop/proc/dbcsr_get_diag_d~2.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_get_diag_s.html b/develop/proc/dbcsr_get_diag_s.html index 305ddaeb379..a9325d7bdea 100644 --- a/develop/proc/dbcsr_get_diag_s.html +++ b/develop/proc/dbcsr_get_diag_s.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_get_diag_s~2.html b/develop/proc/dbcsr_get_diag_s~2.html index 55533fde4e7..455e162e3fd 100644 --- a/develop/proc/dbcsr_get_diag_s~2.html +++ b/develop/proc/dbcsr_get_diag_s~2.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_get_diag_z.html b/develop/proc/dbcsr_get_diag_z.html index fb5d43dcd56..25d693fe2f3 100644 --- a/develop/proc/dbcsr_get_diag_z.html +++ b/develop/proc/dbcsr_get_diag_z.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_get_diag_z~2.html b/develop/proc/dbcsr_get_diag_z~2.html index 35ab2f73c62..a8c776d8cf5 100644 --- a/develop/proc/dbcsr_get_diag_z~2.html +++ b/develop/proc/dbcsr_get_diag_z~2.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_get_global_col_map.html b/develop/proc/dbcsr_get_global_col_map.html index 9c9ab1cb268..2ea50e89747 100644 --- a/develop/proc/dbcsr_get_global_col_map.html +++ b/develop/proc/dbcsr_get_global_col_map.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_get_global_row_map.html b/develop/proc/dbcsr_get_global_row_map.html index 242bf9febf9..2772e833e72 100644 --- a/develop/proc/dbcsr_get_global_row_map.html +++ b/develop/proc/dbcsr_get_global_row_map.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_get_index_memory_type.html b/develop/proc/dbcsr_get_index_memory_type.html index 8bfd9990fde..3f03d70a022 100644 --- a/develop/proc/dbcsr_get_index_memory_type.html +++ b/develop/proc/dbcsr_get_index_memory_type.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_get_info.html b/develop/proc/dbcsr_get_info.html index 54898d22a80..e61d75d38c2 100644 --- a/develop/proc/dbcsr_get_info.html +++ b/develop/proc/dbcsr_get_info.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    @@ -263,7 +263,7 @@

    Arguments

    @@ -278,7 +278,7 @@

    Arguments

    @@ -293,7 +293,7 @@

    Arguments

    @@ -308,7 +308,7 @@

    Arguments

    @@ -323,7 +323,7 @@

    Arguments

    @@ -338,7 +338,7 @@

    Arguments

    @@ -353,7 +353,7 @@

    Arguments

    @@ -368,7 +368,7 @@

    Arguments

    @@ -383,7 +383,7 @@

    Arguments

    @@ -398,7 +398,7 @@

    Arguments

    @@ -413,7 +413,7 @@

    Arguments

    @@ -428,7 +428,7 @@

    Arguments

    @@ -443,7 +443,7 @@

    Arguments

    @@ -458,7 +458,7 @@

    Arguments

    @@ -473,7 +473,7 @@

    Arguments

    @@ -488,7 +488,7 @@

    Arguments

    @@ -503,7 +503,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_get_info~2.html b/develop/proc/dbcsr_get_info~2.html index ac243813e15..f20b695d683 100644 --- a/develop/proc/dbcsr_get_info~2.html +++ b/develop/proc/dbcsr_get_info~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    @@ -249,7 +249,7 @@

    Arguments

    @@ -264,7 +264,7 @@

    Arguments

    @@ -279,7 +279,7 @@

    Arguments

    @@ -294,7 +294,7 @@

    Arguments

    @@ -309,7 +309,7 @@

    Arguments

    @@ -324,7 +324,7 @@

    Arguments

    @@ -339,7 +339,7 @@

    Arguments

    @@ -354,7 +354,7 @@

    Arguments

    @@ -369,7 +369,7 @@

    Arguments

    @@ -384,7 +384,7 @@

    Arguments

    @@ -399,7 +399,7 @@

    Arguments

    @@ -414,7 +414,7 @@

    Arguments

    @@ -429,7 +429,7 @@

    Arguments

    @@ -444,7 +444,7 @@

    Arguments

    @@ -459,7 +459,7 @@

    Arguments

    @@ -474,7 +474,7 @@

    Arguments

    @@ -489,7 +489,7 @@

    Arguments

    @@ -504,7 +504,7 @@

    Arguments

    @@ -519,7 +519,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_get_local_cols.html b/develop/proc/dbcsr_get_local_cols.html index 2293bb55769..54fbf1e1f5c 100644 --- a/develop/proc/dbcsr_get_local_cols.html +++ b/develop/proc/dbcsr_get_local_cols.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_get_local_rows.html b/develop/proc/dbcsr_get_local_rows.html index 308cd21995d..3f49525a764 100644 --- a/develop/proc/dbcsr_get_local_rows.html +++ b/develop/proc/dbcsr_get_local_rows.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_get_matrix_type.html b/develop/proc/dbcsr_get_matrix_type.html index fefc6554a25..bbd2930787e 100644 --- a/develop/proc/dbcsr_get_matrix_type.html +++ b/develop/proc/dbcsr_get_matrix_type.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + character(len=1)

    diff --git a/develop/proc/dbcsr_get_matrix_type~2.html b/develop/proc/dbcsr_get_matrix_type~2.html index d676b34bf01..1b17673320f 100644 --- a/develop/proc/dbcsr_get_matrix_type~2.html +++ b/develop/proc/dbcsr_get_matrix_type~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    Return Value - + character(len=1)

    diff --git a/develop/proc/dbcsr_get_num_blocks.html b/develop/proc/dbcsr_get_num_blocks.html index d2fac4a985d..fb46e757ed2 100644 --- a/develop/proc/dbcsr_get_num_blocks.html +++ b/develop/proc/dbcsr_get_num_blocks.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_get_num_blocks~2.html b/develop/proc/dbcsr_get_num_blocks~2.html index bb450b667f0..a26624a61d4 100644 --- a/develop/proc/dbcsr_get_num_blocks~2.html +++ b/develop/proc/dbcsr_get_num_blocks~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_get_nze.html b/develop/proc/dbcsr_get_nze.html index 09949b43342..d1063470d6c 100644 --- a/develop/proc/dbcsr_get_nze.html +++ b/develop/proc/dbcsr_get_nze.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_get_occupation.html b/develop/proc/dbcsr_get_occupation.html index 9aa673b34ff..01e0cd89ffe 100644 --- a/develop/proc/dbcsr_get_occupation.html +++ b/develop/proc/dbcsr_get_occupation.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + real(kind=real_8)

    diff --git a/develop/proc/dbcsr_get_occupation~2.html b/develop/proc/dbcsr_get_occupation~2.html index dffddad22ab..ee15d8a60d1 100644 --- a/develop/proc/dbcsr_get_occupation~2.html +++ b/develop/proc/dbcsr_get_occupation~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    Return Value - + real(kind=real_8)

    diff --git a/develop/proc/dbcsr_get_replication_type.html b/develop/proc/dbcsr_get_replication_type.html index dbe5969453e..457f9bb51c0 100644 --- a/develop/proc/dbcsr_get_replication_type.html +++ b/develop/proc/dbcsr_get_replication_type.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_get_stored_block_info.html b/develop/proc/dbcsr_get_stored_block_info.html index c941a434a3e..bcce44e565c 100644 --- a/develop/proc/dbcsr_get_stored_block_info.html +++ b/develop/proc/dbcsr_get_stored_block_info.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -207,7 +207,7 @@

    Arguments

    @@ -222,7 +222,7 @@

    Arguments

    @@ -267,7 +267,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_get_stored_coordinates.html b/develop/proc/dbcsr_get_stored_coordinates.html index 2c8be8e915c..ba4b82e0429 100644 --- a/develop/proc/dbcsr_get_stored_coordinates.html +++ b/develop/proc/dbcsr_get_stored_coordinates.html @@ -74,20 +74,20 @@

    dbcsr_get_stored_coordinates
  • 12 statements + title=" 0.0% of total for procedures.">6 statements
  • - Source File + Source File
  • @@ -139,13 +139,10 @@

    Contents

    -

    public pure subroutine dbcsr_get_stored_coordinates(matrix, row, column, processor) +

    public subroutine dbcsr_get_stored_coordinates(matrix, row, column, processor)

    -

    Sets the correct source matrix, row, column and possible data -transposition for a given matrix and matrix logical row and -column.

    Arguments

    @@ -161,8 +158,8 @@

    Arguments

    @@ -186,13 +183,12 @@

    Arguments

    @@ -202,13 +198,12 @@

    Arguments

    @@ -218,7 +213,7 @@

    Arguments

    @@ -238,32 +233,13 @@

    Arguments

    Source Code

    -
       PURE SUBROUTINE dbcsr_get_stored_coordinates(matrix, row, column, processor)
    -      !! Sets the correct source matrix, row, column and possible data
    -      !! transposition for a given matrix and matrix logical row and
    -      !! column.
    -
    +    
       SUBROUTINE dbcsr_get_stored_coordinates(matrix, row, column, processor)
           TYPE(dbcsr_type), INTENT(IN)                       :: matrix
    -         !! DBCSR matrix
           INTEGER, INTENT(IN)                                :: row, column
    -         !! input is logical row
    -         !! input is logical column
           INTEGER, INTENT(OUT), OPTIONAL                     :: processor
    -         !! returns the processor on which this block resides
    -
    -!   ---------------------------------------------------------------------------
    -! SM-compatible way
     
    -      IF (PRESENT(processor)) THEN
    -         IF (matrix%symmetry .AND. checker_tr(row, column)) THEN
    -            ! The transposed way.
    -            processor = dbcsr_distribution_processor(matrix%dist, column, row)
    -         ELSE
    -            ! The default way.
    -            processor = dbcsr_distribution_processor(matrix%dist, row, column)
    -         END IF
    -      END IF
    -   END SUBROUTINE dbcsr_get_stored_coordinates
    +      CALL dbcsr_get_stored_coordinates_prv(matrix%prv, row, column, processor)
    +   END SUBROUTINE dbcsr_get_stored_coordinates
     
    diff --git a/develop/proc/dbcsr_get_stored_coordinates~2.html b/develop/proc/dbcsr_get_stored_coordinates~2.html index 75c4620f26d..0fee1034a2e 100644 --- a/develop/proc/dbcsr_get_stored_coordinates~2.html +++ b/develop/proc/dbcsr_get_stored_coordinates~2.html @@ -74,20 +74,20 @@

    dbcsr_get_stored_coordinates
  • 6 statements + title=" 0.0% of total for procedures.">12 statements
  • - Source File + Source File
  • @@ -139,10 +139,13 @@

    Contents

    -

    public subroutine dbcsr_get_stored_coordinates(matrix, row, column, processor) +

    public pure subroutine dbcsr_get_stored_coordinates(matrix, row, column, processor)

    +

    Sets the correct source matrix, row, column and possible data +transposition for a given matrix and matrix logical row and +column.

    Arguments

    @@ -158,8 +161,8 @@

    Arguments

    @@ -183,12 +186,13 @@

    Arguments

    @@ -198,12 +202,13 @@

    Arguments

    @@ -213,7 +218,7 @@

    Arguments

    @@ -233,13 +238,32 @@

    Arguments

    Source Code

    -
       SUBROUTINE dbcsr_get_stored_coordinates(matrix, row, column, processor)
    +    
       PURE SUBROUTINE dbcsr_get_stored_coordinates(matrix, row, column, processor)
    +      !! Sets the correct source matrix, row, column and possible data
    +      !! transposition for a given matrix and matrix logical row and
    +      !! column.
    +
           TYPE(dbcsr_type), INTENT(IN)                       :: matrix
    +         !! DBCSR matrix
           INTEGER, INTENT(IN)                                :: row, column
    +         !! input is logical row
    +         !! input is logical column
           INTEGER, INTENT(OUT), OPTIONAL                     :: processor
    +         !! returns the processor on which this block resides
    +
    +!   ---------------------------------------------------------------------------
    +! SM-compatible way
     
    -      CALL dbcsr_get_stored_coordinates_prv(matrix%prv, row, column, processor)
    -   END SUBROUTINE dbcsr_get_stored_coordinates
    +      IF (PRESENT(processor)) THEN
    +         IF (matrix%symmetry .AND. checker_tr(row, column)) THEN
    +            ! The transposed way.
    +            processor = dbcsr_distribution_processor(matrix%dist, column, row)
    +         ELSE
    +            ! The default way.
    +            processor = dbcsr_distribution_processor(matrix%dist, row, column)
    +         END IF
    +      END IF
    +   END SUBROUTINE dbcsr_get_stored_coordinates
     
    diff --git a/develop/proc/dbcsr_get_wms_data_c.html b/develop/proc/dbcsr_get_wms_data_c.html index b64d82a83d4..98f85a0d54e 100644 --- a/develop/proc/dbcsr_get_wms_data_c.html +++ b/develop/proc/dbcsr_get_wms_data_c.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    Return Value - + complex(kind=real_4), DIMENSION(:), POINTER

    diff --git a/develop/proc/dbcsr_get_wms_data_d.html b/develop/proc/dbcsr_get_wms_data_d.html index 30e5099d5d2..2e8b5858bd4 100644 --- a/develop/proc/dbcsr_get_wms_data_d.html +++ b/develop/proc/dbcsr_get_wms_data_d.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    Return Value - + real(kind=real_8), DIMENSION(:), POINTER

    diff --git a/develop/proc/dbcsr_get_wms_data_s.html b/develop/proc/dbcsr_get_wms_data_s.html index a54b6cccb12..9a981b4edbd 100644 --- a/develop/proc/dbcsr_get_wms_data_s.html +++ b/develop/proc/dbcsr_get_wms_data_s.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    Return Value - + real(kind=real_4), DIMENSION(:), POINTER

    diff --git a/develop/proc/dbcsr_get_wms_data_z.html b/develop/proc/dbcsr_get_wms_data_z.html index 96742faeecf..605a2746f7e 100644 --- a/develop/proc/dbcsr_get_wms_data_z.html +++ b/develop/proc/dbcsr_get_wms_data_z.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    Return Value - + complex(kind=real_8), DIMENSION(:), POINTER

    diff --git a/develop/proc/dbcsr_hadamard_product.html b/develop/proc/dbcsr_hadamard_product.html index c3735eba834..875100b4864 100644 --- a/develop/proc/dbcsr_hadamard_product.html +++ b/develop/proc/dbcsr_hadamard_product.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_hadamard_product~2.html b/develop/proc/dbcsr_hadamard_product~2.html index df23a36d5ee..e63e05f9723 100644 --- a/develop/proc/dbcsr_hadamard_product~2.html +++ b/develop/proc/dbcsr_hadamard_product~2.html @@ -160,7 +160,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_has_local_row_index.html b/develop/proc/dbcsr_has_local_row_index.html index b30c8542f75..e36fa9b731a 100644 --- a/develop/proc/dbcsr_has_local_row_index.html +++ b/develop/proc/dbcsr_has_local_row_index.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_has_same_block_structure.html b/develop/proc/dbcsr_has_same_block_structure.html index 178ce828bab..f2916d2c22c 100644 --- a/develop/proc/dbcsr_has_same_block_structure.html +++ b/develop/proc/dbcsr_has_same_block_structure.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_has_symmetry.html b/develop/proc/dbcsr_has_symmetry.html index 6da75529147..569ac716a2c 100644 --- a/develop/proc/dbcsr_has_symmetry.html +++ b/develop/proc/dbcsr_has_symmetry.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_has_symmetry~2.html b/develop/proc/dbcsr_has_symmetry~2.html index 961040e3a23..cb629737d9e 100644 --- a/develop/proc/dbcsr_has_symmetry~2.html +++ b/develop/proc/dbcsr_has_symmetry~2.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_heap_fill.html b/develop/proc/dbcsr_heap_fill.html index 4114ac24a76..f10d1c11de2 100644 --- a/develop/proc/dbcsr_heap_fill.html +++ b/develop/proc/dbcsr_heap_fill.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_heap_get_first.html b/develop/proc/dbcsr_heap_get_first.html index 82f3284d89c..5057da1307b 100644 --- a/develop/proc/dbcsr_heap_get_first.html +++ b/develop/proc/dbcsr_heap_get_first.html @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_heap_new.html b/develop/proc/dbcsr_heap_new.html index a0ec3faa7ed..4f540c942d8 100644 --- a/develop/proc/dbcsr_heap_new.html +++ b/develop/proc/dbcsr_heap_new.html @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_heap_pop.html b/develop/proc/dbcsr_heap_pop.html index f33d2aafa6a..e504fc4d4ad 100644 --- a/develop/proc/dbcsr_heap_pop.html +++ b/develop/proc/dbcsr_heap_pop.html @@ -175,7 +175,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_heap_reset_first.html b/develop/proc/dbcsr_heap_reset_first.html index 184ed4c25e8..d4c91647a0b 100644 --- a/develop/proc/dbcsr_heap_reset_first.html +++ b/develop/proc/dbcsr_heap_reset_first.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_heap_reset_node.html b/develop/proc/dbcsr_heap_reset_node.html index 9328180a828..9725bfd137c 100644 --- a/develop/proc/dbcsr_heap_reset_node.html +++ b/develop/proc/dbcsr_heap_reset_node.html @@ -175,7 +175,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_ibcast_any.html b/develop/proc/dbcsr_ibcast_any.html index bb59aec7413..926b496a2f4 100644 --- a/develop/proc/dbcsr_ibcast_any.html +++ b/develop/proc/dbcsr_ibcast_any.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_impose_sparsity.html b/develop/proc/dbcsr_impose_sparsity.html index a980f48b05f..aaedb81eb3b 100644 --- a/develop/proc/dbcsr_impose_sparsity.html +++ b/develop/proc/dbcsr_impose_sparsity.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_index_checksum.html b/develop/proc/dbcsr_index_checksum.html index 4db62f52caf..fcfe95aa9c6 100644 --- a/develop/proc/dbcsr_index_checksum.html +++ b/develop/proc/dbcsr_index_checksum.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_index_compact.html b/develop/proc/dbcsr_index_compact.html index 0dc52791120..c75d243cfbd 100644 --- a/develop/proc/dbcsr_index_compact.html +++ b/develop/proc/dbcsr_index_compact.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_index_prune_deleted.html b/develop/proc/dbcsr_index_prune_deleted.html index 90422772129..657d7894f1d 100644 --- a/develop/proc/dbcsr_index_prune_deleted.html +++ b/develop/proc/dbcsr_index_prune_deleted.html @@ -160,7 +160,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_init_lib_def.html b/develop/proc/dbcsr_init_lib_def.html index 870c263e3ad..35f78605d8b 100644 --- a/develop/proc/dbcsr_init_lib_def.html +++ b/develop/proc/dbcsr_init_lib_def.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_init_lib_hooks.html b/develop/proc/dbcsr_init_lib_hooks.html index e0b1a09badc..6109543fe82 100644 --- a/develop/proc/dbcsr_init_lib_hooks.html +++ b/develop/proc/dbcsr_init_lib_hooks.html @@ -161,7 +161,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    @@ -251,7 +251,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_init_lib_pre.html b/develop/proc/dbcsr_init_lib_pre.html index d6d1177e3c9..ed7588f37f8 100644 --- a/develop/proc/dbcsr_init_lib_pre.html +++ b/develop/proc/dbcsr_init_lib_pre.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_init_p.html b/develop/proc/dbcsr_init_p.html index 4351cc122e3..d9bdee0fbc6 100644 --- a/develop/proc/dbcsr_init_p.html +++ b/develop/proc/dbcsr_init_p.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_init_random.html b/develop/proc/dbcsr_init_random.html index 656edbf58da..47b75653639 100644 --- a/develop/proc/dbcsr_init_random.html +++ b/develop/proc/dbcsr_init_random.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_init_random~2.html b/develop/proc/dbcsr_init_random~2.html index 4273f164b7a..f176d636c5b 100644 --- a/develop/proc/dbcsr_init_random~2.html +++ b/develop/proc/dbcsr_init_random~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_init_wm.html b/develop/proc/dbcsr_init_wm.html index 8bb5b57f680..74e5dd8b51d 100644 --- a/develop/proc/dbcsr_init_wm.html +++ b/develop/proc/dbcsr_init_wm.html @@ -174,7 +174,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_int_to_string.html b/develop/proc/dbcsr_int_to_string.html index 0ac67fa5590..0e1d424bea6 100644 --- a/develop/proc/dbcsr_int_to_string.html +++ b/develop/proc/dbcsr_int_to_string.html @@ -161,7 +161,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    Return Value - + character(len=6)

    diff --git a/develop/proc/dbcsr_irecv_any.html b/develop/proc/dbcsr_irecv_any.html index 24cc27435f4..41dddba39e1 100644 --- a/develop/proc/dbcsr_irecv_any.html +++ b/develop/proc/dbcsr_irecv_any.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    @@ -223,7 +223,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_iscatterv_any.html b/develop/proc/dbcsr_iscatterv_any.html index 4a5751f48d7..a0591a07501 100644 --- a/develop/proc/dbcsr_iscatterv_any.html +++ b/develop/proc/dbcsr_iscatterv_any.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    @@ -249,7 +249,7 @@

    Arguments

    @@ -264,7 +264,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_isend_any.html b/develop/proc/dbcsr_isend_any.html index dd60276117f..bcace67f2f5 100644 --- a/develop/proc/dbcsr_isend_any.html +++ b/develop/proc/dbcsr_isend_any.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    @@ -223,7 +223,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_isendrecv_any.html b/develop/proc/dbcsr_isendrecv_any.html index 694c234f456..b0f16b2dd81 100644 --- a/develop/proc/dbcsr_isendrecv_any.html +++ b/develop/proc/dbcsr_isendrecv_any.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    @@ -249,7 +249,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_iterator_blocks_left.html b/develop/proc/dbcsr_iterator_blocks_left.html index e69691b5bba..e9596d62f90 100644 --- a/develop/proc/dbcsr_iterator_blocks_left.html +++ b/develop/proc/dbcsr_iterator_blocks_left.html @@ -79,15 +79,15 @@

    dbcsr_iterator_blocks_left
  • - Source File + Source File
  • @@ -143,6 +143,7 @@

    public pure function dbcsr_iterator_blocks_left(iterator) result(blocks_left

    +

    Returns whether there any blocks left in the iterator.

    Arguments

    @@ -158,8 +159,8 @@

    Arguments

    @@ -196,10 +197,13 @@

    Return Value

    Source Code

       PURE FUNCTION dbcsr_iterator_blocks_left(iterator) RESULT(blocks_left)
    -      TYPE(dbcsr_iterator_type), INTENT(IN)              :: iterator
    +      !! Returns whether there any blocks left in the iterator.
    +
    +      TYPE(dbcsr_iterator), INTENT(IN)                   :: iterator
    +         !! the iterator
           LOGICAL                                            :: blocks_left
     
    -      blocks_left = dbcsr_iterator_blocks_left_prv(iterator%prv)
    +      blocks_left = iterator%pos .NE. 0
        END FUNCTION dbcsr_iterator_blocks_left
     
    diff --git a/develop/proc/dbcsr_iterator_blocks_left~2.html b/develop/proc/dbcsr_iterator_blocks_left~2.html index 2adb02027a5..5598d73c251 100644 --- a/develop/proc/dbcsr_iterator_blocks_left~2.html +++ b/develop/proc/dbcsr_iterator_blocks_left~2.html @@ -79,15 +79,15 @@

    dbcsr_iterator_blocks_left
  • - Source File + Source File
  • @@ -143,7 +143,6 @@

    public pure function dbcsr_iterator_blocks_left(iterator) result(blocks_left

    -

    Returns whether there any blocks left in the iterator.

    Arguments

    @@ -159,8 +158,8 @@

    Arguments

    @@ -197,13 +196,10 @@

    Return Value

    Source Code

       PURE FUNCTION dbcsr_iterator_blocks_left(iterator) RESULT(blocks_left)
    -      !! Returns whether there any blocks left in the iterator.
    -
    -      TYPE(dbcsr_iterator), INTENT(IN)                   :: iterator
    -         !! the iterator
    +      TYPE(dbcsr_iterator_type), INTENT(IN)              :: iterator
           LOGICAL                                            :: blocks_left
     
    -      blocks_left = iterator%pos .NE. 0
    +      blocks_left = dbcsr_iterator_blocks_left_prv(iterator%prv)
        END FUNCTION dbcsr_iterator_blocks_left
     
    diff --git a/develop/proc/dbcsr_iterator_next_1d_block_c.html b/develop/proc/dbcsr_iterator_next_1d_block_c.html index 03dd0d10108..832b9e4f95d 100644 --- a/develop/proc/dbcsr_iterator_next_1d_block_c.html +++ b/develop/proc/dbcsr_iterator_next_1d_block_c.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    @@ -263,7 +263,7 @@

    Arguments

    @@ -278,7 +278,7 @@

    Arguments

    @@ -293,7 +293,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_iterator_next_1d_block_d.html b/develop/proc/dbcsr_iterator_next_1d_block_d.html index 767a4ff911b..ed509cb4f5b 100644 --- a/develop/proc/dbcsr_iterator_next_1d_block_d.html +++ b/develop/proc/dbcsr_iterator_next_1d_block_d.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    @@ -263,7 +263,7 @@

    Arguments

    @@ -278,7 +278,7 @@

    Arguments

    @@ -293,7 +293,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_iterator_next_1d_block_notrans_c.html b/develop/proc/dbcsr_iterator_next_1d_block_notrans_c.html index 4f09f4f96a6..007a156abd8 100644 --- a/develop/proc/dbcsr_iterator_next_1d_block_notrans_c.html +++ b/develop/proc/dbcsr_iterator_next_1d_block_notrans_c.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    @@ -263,7 +263,7 @@

    Arguments

    @@ -278,7 +278,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_iterator_next_1d_block_notrans_d.html b/develop/proc/dbcsr_iterator_next_1d_block_notrans_d.html index cd936295b1e..d2362f9ee2c 100644 --- a/develop/proc/dbcsr_iterator_next_1d_block_notrans_d.html +++ b/develop/proc/dbcsr_iterator_next_1d_block_notrans_d.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    @@ -263,7 +263,7 @@

    Arguments

    @@ -278,7 +278,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_iterator_next_1d_block_notrans_s.html b/develop/proc/dbcsr_iterator_next_1d_block_notrans_s.html index 65a42f3ef0c..b9786294f84 100644 --- a/develop/proc/dbcsr_iterator_next_1d_block_notrans_s.html +++ b/develop/proc/dbcsr_iterator_next_1d_block_notrans_s.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    @@ -263,7 +263,7 @@

    Arguments

    @@ -278,7 +278,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_iterator_next_1d_block_notrans_z.html b/develop/proc/dbcsr_iterator_next_1d_block_notrans_z.html index d15991ca183..8fdc44da676 100644 --- a/develop/proc/dbcsr_iterator_next_1d_block_notrans_z.html +++ b/develop/proc/dbcsr_iterator_next_1d_block_notrans_z.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    @@ -263,7 +263,7 @@

    Arguments

    @@ -278,7 +278,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_iterator_next_1d_block_s.html b/develop/proc/dbcsr_iterator_next_1d_block_s.html index 86efc875309..4496703aa89 100644 --- a/develop/proc/dbcsr_iterator_next_1d_block_s.html +++ b/develop/proc/dbcsr_iterator_next_1d_block_s.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    @@ -263,7 +263,7 @@

    Arguments

    @@ -278,7 +278,7 @@

    Arguments

    @@ -293,7 +293,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_iterator_next_1d_block_z.html b/develop/proc/dbcsr_iterator_next_1d_block_z.html index 983d373cc2a..379e3944ced 100644 --- a/develop/proc/dbcsr_iterator_next_1d_block_z.html +++ b/develop/proc/dbcsr_iterator_next_1d_block_z.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    @@ -263,7 +263,7 @@

    Arguments

    @@ -278,7 +278,7 @@

    Arguments

    @@ -293,7 +293,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_iterator_next_2d_block_c.html b/develop/proc/dbcsr_iterator_next_2d_block_c.html index f289836d0d0..4c54f0782b7 100644 --- a/develop/proc/dbcsr_iterator_next_2d_block_c.html +++ b/develop/proc/dbcsr_iterator_next_2d_block_c.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    @@ -263,7 +263,7 @@

    Arguments

    @@ -278,7 +278,7 @@

    Arguments

    @@ -293,7 +293,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_iterator_next_2d_block_d.html b/develop/proc/dbcsr_iterator_next_2d_block_d.html index e6a333fee4b..4c93c10aac7 100644 --- a/develop/proc/dbcsr_iterator_next_2d_block_d.html +++ b/develop/proc/dbcsr_iterator_next_2d_block_d.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    @@ -263,7 +263,7 @@

    Arguments

    @@ -278,7 +278,7 @@

    Arguments

    @@ -293,7 +293,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_iterator_next_2d_block_notrans_c.html b/develop/proc/dbcsr_iterator_next_2d_block_notrans_c.html index 6e7381c36ea..20b0eb451d5 100644 --- a/develop/proc/dbcsr_iterator_next_2d_block_notrans_c.html +++ b/develop/proc/dbcsr_iterator_next_2d_block_notrans_c.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    @@ -263,7 +263,7 @@

    Arguments

    @@ -278,7 +278,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_iterator_next_2d_block_notrans_d.html b/develop/proc/dbcsr_iterator_next_2d_block_notrans_d.html index b3d4b6f9d82..18494327e9f 100644 --- a/develop/proc/dbcsr_iterator_next_2d_block_notrans_d.html +++ b/develop/proc/dbcsr_iterator_next_2d_block_notrans_d.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    @@ -263,7 +263,7 @@

    Arguments

    @@ -278,7 +278,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_iterator_next_2d_block_notrans_s.html b/develop/proc/dbcsr_iterator_next_2d_block_notrans_s.html index 0a2fb2e021b..1a54b349e76 100644 --- a/develop/proc/dbcsr_iterator_next_2d_block_notrans_s.html +++ b/develop/proc/dbcsr_iterator_next_2d_block_notrans_s.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    @@ -263,7 +263,7 @@

    Arguments

    @@ -278,7 +278,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_iterator_next_2d_block_notrans_z.html b/develop/proc/dbcsr_iterator_next_2d_block_notrans_z.html index 89cccb7e605..f32fa3b2d90 100644 --- a/develop/proc/dbcsr_iterator_next_2d_block_notrans_z.html +++ b/develop/proc/dbcsr_iterator_next_2d_block_notrans_z.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    @@ -263,7 +263,7 @@

    Arguments

    @@ -278,7 +278,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_iterator_next_2d_block_s.html b/develop/proc/dbcsr_iterator_next_2d_block_s.html index 163ab32b8cf..af934e732a4 100644 --- a/develop/proc/dbcsr_iterator_next_2d_block_s.html +++ b/develop/proc/dbcsr_iterator_next_2d_block_s.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    @@ -263,7 +263,7 @@

    Arguments

    @@ -278,7 +278,7 @@

    Arguments

    @@ -293,7 +293,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_iterator_next_2d_block_z.html b/develop/proc/dbcsr_iterator_next_2d_block_z.html index c382f6d2ad9..878e3af0522 100644 --- a/develop/proc/dbcsr_iterator_next_2d_block_z.html +++ b/develop/proc/dbcsr_iterator_next_2d_block_z.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    @@ -263,7 +263,7 @@

    Arguments

    @@ -278,7 +278,7 @@

    Arguments

    @@ -293,7 +293,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_iterator_next_block_index.html b/develop/proc/dbcsr_iterator_next_block_index.html index af9738c467b..305e83416fc 100644 --- a/develop/proc/dbcsr_iterator_next_block_index.html +++ b/develop/proc/dbcsr_iterator_next_block_index.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    @@ -225,7 +225,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_iterator_seek.html b/develop/proc/dbcsr_iterator_seek.html index ccc3240c136..31b50bbe90d 100644 --- a/develop/proc/dbcsr_iterator_seek.html +++ b/develop/proc/dbcsr_iterator_seek.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_iterator_start.html b/develop/proc/dbcsr_iterator_start.html index 63652ac6cf7..3d1f49ddace 100644 --- a/develop/proc/dbcsr_iterator_start.html +++ b/develop/proc/dbcsr_iterator_start.html @@ -74,20 +74,20 @@

    dbcsr_iterator_start
  • 6 statements + title=" 0.1% of total for procedures.">75 statements
  • - Source File + Source File
  • @@ -143,6 +143,43 @@

    public subroutine dbcsr_iterator_start(iterator, matrix, shared, dynamic, d

    +

    Sets up an iterator

    +

    Contiguous pointers +Contiguous pointers may incur reallocation penalties but enable quick +passing of arrays to routines with unspecified interfaces (i.e., direct +calls to BLACS or MPI).

    +

    Threading +The TYPE(dbcsr_iterator) variable should be thread-private.

    +

    The iterator has several modes of operation when used with +OpenMP. Two options can be set to influence the behavior.

    +

    Threading: shared vs. non-shared +The "shared" flag specifies that several threads will be +iterating through the same matrix. +- Sharing is the default when called from an active parallel +region. In the shared mode no two threads will receive the +same block; i.e., the work is split among the threads. +- If each (or one) thread needs to iterator through all blocks +then shared should be set to .FALSE.. (E.g., when called +from an enclosing MASTER region or when each thread has its +own matrix.) +- It is safe to use an iterator in non-shared mode with only +one thread. No thread synchronization constructs are used +in this case)

    +

    Threading in shared mode +When in shared mode there are three possibilities to select +how the blocks are distributed to the threads.

    +
    +
    Thread distribution
    +
    The default is to use the thread distribution. The thread +distribution statically maps rows to threads and should be +used whenever retaining a consistent mapping among +subsequent iterations is important.
    +
    Dynamic scheduling
    +
    If the dynamic flag is .TRUE., then blocks are given to +threads dynamically. By default the assignment is grouped +by rows (to minimize synchronization); however, if the +dynamic_byrows flag is .FALSE. then every block is +assigned dynamically.

    Arguments

    @@ -158,8 +195,8 @@

    Arguments

    @@ -198,12 +235,16 @@

    Arguments

    @@ -213,12 +254,16 @@

    Arguments

    @@ -228,12 +273,16 @@

    Arguments

    @@ -243,12 +292,16 @@

    Arguments

    @@ -258,7 +311,11 @@

    Arguments

    @@ -280,13 +337,180 @@

    Arguments

    Source Code

       SUBROUTINE dbcsr_iterator_start(iterator, matrix, shared, dynamic, &
                                        dynamic_byrows, contiguous_pointers, read_only)
    -      TYPE(dbcsr_iterator_type), INTENT(OUT)             :: iterator
    +      !! Sets up an iterator
    +      !!
    +      !! Contiguous pointers
    +      !! Contiguous pointers may incur reallocation penalties but enable quick
    +      !! passing of arrays to routines with unspecified interfaces (i.e., direct
    +      !! calls to BLACS or MPI).
    +      !!
    +      !! Threading
    +      !! The TYPE(dbcsr_iterator) variable should be thread-private.
    +      !!
    +      !! The iterator has several modes of operation when used with
    +      !! OpenMP. Two options can be set to influence the behavior.
    +      !!
    +      !! Threading: shared vs. non-shared
    +      !! The "shared" flag specifies that several threads will be
    +      !! iterating through the same matrix.
    +      !! - Sharing is the default when called from an active parallel
    +      !! region. In the shared mode no two threads will receive the
    +      !! same block; i.e., the work is split among the threads.
    +      !! - If each (or one) thread needs to iterator through all blocks
    +      !! then shared should be set to .FALSE.. (E.g., when called
    +      !! from an enclosing MASTER region or when each thread has its
    +      !! own matrix.)
    +      !! - It is safe to use an iterator in non-shared mode with only
    +      !! one thread.  No thread synchronization constructs are used
    +      !! in this case)
    +      !!
    +      !! Threading in shared mode
    +      !! When in shared mode there are three possibilities to select
    +      !! how the blocks are distributed to the threads.
    +      !! <DL>
    +      !! <DT>Thread distribution</DT>
    +      !! <DD>The default is to use the thread distribution. The thread
    +      !! distribution statically maps rows to threads and should be
    +      !! used whenever retaining a consistent mapping among
    +      !! subsequent iterations is important.</DD>
    +      !! <DT>Dynamic scheduling</DT>
    +      !! <DD>If the dynamic flag is .TRUE., then blocks are given to
    +      !! threads dynamically. By default the assignment is grouped
    +      !! by rows (to minimize synchronization); however, if the
    +      !! dynamic_byrows flag is .FALSE. then every block is
    +      !! assigned dynamically.</DD></DL>
    +
    +      TYPE(dbcsr_iterator), INTENT(OUT)                  :: iterator
    +         !! the iterator
           TYPE(dbcsr_type), INTENT(IN)                       :: matrix
    +         !! DBCSR matrix
           LOGICAL, INTENT(IN), OPTIONAL                      :: shared, dynamic, dynamic_byrows, &
                                                                 contiguous_pointers, read_only
    +         !! The matrix is shared between several iterators. Default is .TRUE.
    +         !! Threads are given blocks regardless of the thread distribution; default is .FALSE.
    +         !! Threads are given blocks regardless of the thread distribution, but still grouped by rows; default is .FALSE.
    +         !! Whether returned pointers need to be contiguous; default is FALSE.
    +         !! User promises not to change returned data; default is FALSE
    +
    +      CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_iterator_start'
    +
    +      INTEGER                                            :: error_handle
    +      TYPE(dbcsr_distribution_obj)                       :: dist
    +
    +!   ---------------------------------------------------------------------------
    +
    +      MARK_USED(dynamic) ! only used with OMP
    +
    +      CALL timeset(routineN, error_handle)
    +      iterator%shared = .TRUE.
    +!$    iterator%shared = omp_in_parallel()
    +      IF (PRESENT(shared)) iterator%shared = shared
    +      iterator%dynamic = .TRUE.
    +!$    iterator%dynamic = .FALSE.
    +!$    IF (PRESENT(dynamic)) iterator%dynamic = dynamic
    +      IF (PRESENT(dynamic_byrows)) THEN
    +         iterator%dynamic_byrows = dynamic_byrows
    +         IF (iterator%dynamic_byrows) iterator%dynamic = .TRUE.
    +      ELSE
    +         iterator%dynamic_byrows = iterator%dynamic
    +!$       iterator%dynamic_byrows = iterator%dynamic
    +      END IF
    +!$    IF (.NOT. iterator%shared) THEN
    +!$       iterator%dynamic = .FALSE.
    +!$    END IF
    +      dist = dbcsr_distribution(matrix)
    +!$    IF (.NOT. dbcsr_distribution_has_threads(dist)) &
    +!$       DBCSR_WARN("Thread distribution should be defined for OpenMP.")
    +      IF (.NOT. iterator%dynamic .AND. .NOT. dbcsr_distribution_has_threads(dist)) &
    +         DBCSR_ABORT("Thread distribution must be defined for non-dynamic iterator.")
    +!$    IF (omp_in_parallel() .AND. omp_get_num_threads() /= dbcsr_distribution_num_threads(dist)) &
    +!$       CALL dbcsr_abort(__LOCATION__, &
    +!$                        "Number of threads has changed from "// &
    +!$                        stringify(dbcsr_distribution_num_threads(dist))// &
    +!$                        " to "//stringify(omp_get_num_threads())//"!")
    +      !Synchronize the positions
    +      NULLIFY (iterator%common_pos)
    +      IF (iterator%dynamic) THEN
    +         ! All threads point into the master thread's data space
    +         ! (temporarily using the common_int_pointer variable). This is
    +         ! not the nicest OpenMP way of doing this but it is also not
    +         ! explicitly forbidden.
    +         !
    +!$OMP        BARRIER
    +!$OMP        MASTER
    +         ALLOCATE (iterator%common_pos)
    +         common_int_pointer => iterator%common_pos
    +         common_int_pointer = 0
    +!$OMP        FLUSH (common_int_pointer)
    +!$OMP        END MASTER
    +!$OMP        BARRIER
    +         IF (.NOT. ASSOCIATED(iterator%common_pos)) THEN
    +            iterator%common_pos => common_int_pointer
    +         END IF
    +!$OMP        BARRIER
    +      END IF
    +      !
    +      IF (PRESENT(contiguous_pointers)) THEN
    +         iterator%contiguous_pointers = contiguous_pointers
    +      ELSE
    +         iterator%contiguous_pointers = .TRUE.
    +      END IF
    +      IF (PRESENT(read_only)) THEN
    +         iterator%read_only = read_only
    +      ELSE
    +         iterator%read_only = .FALSE.
    +      END IF
    +      iterator%row = 0
    +      iterator%pos = 0
    +      iterator%rbs => array_data(matrix%row_blk_size)
    +      iterator%cbs => array_data(matrix%col_blk_size)
    +      iterator%roff => array_data(matrix%row_blk_offset)
    +      iterator%coff => array_data(matrix%col_blk_offset)
    +
    +      iterator%local_indexing = matrix%local_indexing
    +      !IF(iterator%local_indexing .AND. .NOT. iterator%dynamic) &
    +      !   DBCSR_ABORT("Locally-indexed matrices can only have a dynamic iterator.")
    +      IF (iterator%local_indexing .AND. .NOT. array_exists(matrix%local_rows)) &
    +         CALL dbcsr_abort(__LOCATION__, &
    +                          "Local rows mapping array should exist when local indexing is used.")
    +      IF (iterator%local_indexing .AND. .NOT. array_exists(matrix%global_rows)) &
    +         CALL dbcsr_abort(__LOCATION__, &
    +                          "Global rows mapping array should exist when local indexing is used.")
    +      iterator%global_rows => array_data(matrix%global_rows)
    +      iterator%local_rows => array_data(matrix%local_rows)
    +
    +      iterator%transpose = .FALSE. !matrix%transpose
    +      iterator%nblks = matrix%nblks
    +      IF (iterator%transpose) THEN
    +         iterator%nblkrows_total = matrix%nblkcols_total
    +      ELSE
    +         iterator%nblkrows_total = matrix%nblkrows_total
    +      END IF
     
    -      CALL dbcsr_iterator_start_prv(iterator%prv, matrix%prv, shared, dynamic, &
    -                                    dynamic_byrows, contiguous_pointers, read_only)
    +      iterator%row_p => matrix%row_p
    +      iterator%col_i => matrix%col_i
    +      iterator%blk_p => matrix%blk_p
    +!$OMP     CRITICAL (crit_data)
    +      iterator%data_area = matrix%data_area
    +      CALL dbcsr_data_hold(iterator%data_area)
    +!$OMP     END CRITICAL (crit_data)
    +      iterator%row_size = 0
    +      IF (.NOT. iterator%dynamic) THEN
    +         iterator%tdist => array_data(dbcsr_distribution_thread_dist(dist))
    +      ELSE
    +         NULLIFY (iterator%tdist)
    +      END IF
    +!$    IF (iterator%dynamic) THEN
    +!$OMP           SINGLE
    +!$       IF (iterator%dynamic_byrows) THEN
    +!$          iterator%common_pos = omp_get_num_threads()
    +!$       END IF
    +!$OMP           END SINGLE
    +!$       CALL dbcsr_iterator_seek(iterator, omp_get_thread_num() + 1)
    +!$    ELSE
    +         CALL dbcsr_iterator_seek(iterator, 1)
    +!$    END IF
    +      CALL timestop(error_handle)
        END SUBROUTINE dbcsr_iterator_start
     
    diff --git a/develop/proc/dbcsr_iterator_start~2.html b/develop/proc/dbcsr_iterator_start~2.html index 5a0a2074a43..57000dba897 100644 --- a/develop/proc/dbcsr_iterator_start~2.html +++ b/develop/proc/dbcsr_iterator_start~2.html @@ -74,20 +74,20 @@

    dbcsr_iterator_start
  • 75 statements + title=" 0.0% of total for procedures.">6 statements
  • - Source File + Source File
  • @@ -143,43 +143,6 @@

    public subroutine dbcsr_iterator_start(iterator, matrix, shared, dynamic, d

    -

    Sets up an iterator

    -

    Contiguous pointers -Contiguous pointers may incur reallocation penalties but enable quick -passing of arrays to routines with unspecified interfaces (i.e., direct -calls to BLACS or MPI).

    -

    Threading -The TYPE(dbcsr_iterator) variable should be thread-private.

    -

    The iterator has several modes of operation when used with -OpenMP. Two options can be set to influence the behavior.

    -

    Threading: shared vs. non-shared -The "shared" flag specifies that several threads will be -iterating through the same matrix. -- Sharing is the default when called from an active parallel -region. In the shared mode no two threads will receive the -same block; i.e., the work is split among the threads. -- If each (or one) thread needs to iterator through all blocks -then shared should be set to .FALSE.. (E.g., when called -from an enclosing MASTER region or when each thread has its -own matrix.) -- It is safe to use an iterator in non-shared mode with only -one thread. No thread synchronization constructs are used -in this case)

    -

    Threading in shared mode -When in shared mode there are three possibilities to select -how the blocks are distributed to the threads.

    -
    -
    Thread distribution
    -
    The default is to use the thread distribution. The thread -distribution statically maps rows to threads and should be -used whenever retaining a consistent mapping among -subsequent iterations is important.
    -
    Dynamic scheduling
    -
    If the dynamic flag is .TRUE., then blocks are given to -threads dynamically. By default the assignment is grouped -by rows (to minimize synchronization); however, if the -dynamic_byrows flag is .FALSE. then every block is -assigned dynamically.

    Arguments

    @@ -195,8 +158,8 @@

    Arguments

    @@ -235,16 +198,12 @@

    Arguments

    @@ -254,16 +213,12 @@

    Arguments

    @@ -273,16 +228,12 @@

    Arguments

    @@ -292,16 +243,12 @@

    Arguments

    @@ -311,11 +258,7 @@

    Arguments

    @@ -337,180 +280,13 @@

    Arguments

    Source Code

       SUBROUTINE dbcsr_iterator_start(iterator, matrix, shared, dynamic, &
                                        dynamic_byrows, contiguous_pointers, read_only)
    -      !! Sets up an iterator
    -      !!
    -      !! Contiguous pointers
    -      !! Contiguous pointers may incur reallocation penalties but enable quick
    -      !! passing of arrays to routines with unspecified interfaces (i.e., direct
    -      !! calls to BLACS or MPI).
    -      !!
    -      !! Threading
    -      !! The TYPE(dbcsr_iterator) variable should be thread-private.
    -      !!
    -      !! The iterator has several modes of operation when used with
    -      !! OpenMP. Two options can be set to influence the behavior.
    -      !!
    -      !! Threading: shared vs. non-shared
    -      !! The "shared" flag specifies that several threads will be
    -      !! iterating through the same matrix.
    -      !! - Sharing is the default when called from an active parallel
    -      !! region. In the shared mode no two threads will receive the
    -      !! same block; i.e., the work is split among the threads.
    -      !! - If each (or one) thread needs to iterator through all blocks
    -      !! then shared should be set to .FALSE.. (E.g., when called
    -      !! from an enclosing MASTER region or when each thread has its
    -      !! own matrix.)
    -      !! - It is safe to use an iterator in non-shared mode with only
    -      !! one thread.  No thread synchronization constructs are used
    -      !! in this case)
    -      !!
    -      !! Threading in shared mode
    -      !! When in shared mode there are three possibilities to select
    -      !! how the blocks are distributed to the threads.
    -      !! <DL>
    -      !! <DT>Thread distribution</DT>
    -      !! <DD>The default is to use the thread distribution. The thread
    -      !! distribution statically maps rows to threads and should be
    -      !! used whenever retaining a consistent mapping among
    -      !! subsequent iterations is important.</DD>
    -      !! <DT>Dynamic scheduling</DT>
    -      !! <DD>If the dynamic flag is .TRUE., then blocks are given to
    -      !! threads dynamically. By default the assignment is grouped
    -      !! by rows (to minimize synchronization); however, if the
    -      !! dynamic_byrows flag is .FALSE. then every block is
    -      !! assigned dynamically.</DD></DL>
    -
    -      TYPE(dbcsr_iterator), INTENT(OUT)                  :: iterator
    -         !! the iterator
    +      TYPE(dbcsr_iterator_type), INTENT(OUT)             :: iterator
           TYPE(dbcsr_type), INTENT(IN)                       :: matrix
    -         !! DBCSR matrix
           LOGICAL, INTENT(IN), OPTIONAL                      :: shared, dynamic, dynamic_byrows, &
                                                                 contiguous_pointers, read_only
    -         !! The matrix is shared between several iterators. Default is .TRUE.
    -         !! Threads are given blocks regardless of the thread distribution; default is .FALSE.
    -         !! Threads are given blocks regardless of the thread distribution, but still grouped by rows; default is .FALSE.
    -         !! Whether returned pointers need to be contiguous; default is FALSE.
    -         !! User promises not to change returned data; default is FALSE
    -
    -      CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_iterator_start'
    -
    -      INTEGER                                            :: error_handle
    -      TYPE(dbcsr_distribution_obj)                       :: dist
    -
    -!   ---------------------------------------------------------------------------
    -
    -      MARK_USED(dynamic) ! only used with OMP
    -
    -      CALL timeset(routineN, error_handle)
    -      iterator%shared = .TRUE.
    -!$    iterator%shared = omp_in_parallel()
    -      IF (PRESENT(shared)) iterator%shared = shared
    -      iterator%dynamic = .TRUE.
    -!$    iterator%dynamic = .FALSE.
    -!$    IF (PRESENT(dynamic)) iterator%dynamic = dynamic
    -      IF (PRESENT(dynamic_byrows)) THEN
    -         iterator%dynamic_byrows = dynamic_byrows
    -         IF (iterator%dynamic_byrows) iterator%dynamic = .TRUE.
    -      ELSE
    -         iterator%dynamic_byrows = iterator%dynamic
    -!$       iterator%dynamic_byrows = iterator%dynamic
    -      END IF
    -!$    IF (.NOT. iterator%shared) THEN
    -!$       iterator%dynamic = .FALSE.
    -!$    END IF
    -      dist = dbcsr_distribution(matrix)
    -!$    IF (.NOT. dbcsr_distribution_has_threads(dist)) &
    -!$       DBCSR_WARN("Thread distribution should be defined for OpenMP.")
    -      IF (.NOT. iterator%dynamic .AND. .NOT. dbcsr_distribution_has_threads(dist)) &
    -         DBCSR_ABORT("Thread distribution must be defined for non-dynamic iterator.")
    -!$    IF (omp_in_parallel() .AND. omp_get_num_threads() /= dbcsr_distribution_num_threads(dist)) &
    -!$       CALL dbcsr_abort(__LOCATION__, &
    -!$                        "Number of threads has changed from "// &
    -!$                        stringify(dbcsr_distribution_num_threads(dist))// &
    -!$                        " to "//stringify(omp_get_num_threads())//"!")
    -      !Synchronize the positions
    -      NULLIFY (iterator%common_pos)
    -      IF (iterator%dynamic) THEN
    -         ! All threads point into the master thread's data space
    -         ! (temporarily using the common_int_pointer variable). This is
    -         ! not the nicest OpenMP way of doing this but it is also not
    -         ! explicitly forbidden.
    -         !
    -!$OMP        BARRIER
    -!$OMP        MASTER
    -         ALLOCATE (iterator%common_pos)
    -         common_int_pointer => iterator%common_pos
    -         common_int_pointer = 0
    -!$OMP        FLUSH (common_int_pointer)
    -!$OMP        END MASTER
    -!$OMP        BARRIER
    -         IF (.NOT. ASSOCIATED(iterator%common_pos)) THEN
    -            iterator%common_pos => common_int_pointer
    -         END IF
    -!$OMP        BARRIER
    -      END IF
    -      !
    -      IF (PRESENT(contiguous_pointers)) THEN
    -         iterator%contiguous_pointers = contiguous_pointers
    -      ELSE
    -         iterator%contiguous_pointers = .TRUE.
    -      END IF
    -      IF (PRESENT(read_only)) THEN
    -         iterator%read_only = read_only
    -      ELSE
    -         iterator%read_only = .FALSE.
    -      END IF
    -      iterator%row = 0
    -      iterator%pos = 0
    -      iterator%rbs => array_data(matrix%row_blk_size)
    -      iterator%cbs => array_data(matrix%col_blk_size)
    -      iterator%roff => array_data(matrix%row_blk_offset)
    -      iterator%coff => array_data(matrix%col_blk_offset)
    -
    -      iterator%local_indexing = matrix%local_indexing
    -      !IF(iterator%local_indexing .AND. .NOT. iterator%dynamic) &
    -      !   DBCSR_ABORT("Locally-indexed matrices can only have a dynamic iterator.")
    -      IF (iterator%local_indexing .AND. .NOT. array_exists(matrix%local_rows)) &
    -         CALL dbcsr_abort(__LOCATION__, &
    -                          "Local rows mapping array should exist when local indexing is used.")
    -      IF (iterator%local_indexing .AND. .NOT. array_exists(matrix%global_rows)) &
    -         CALL dbcsr_abort(__LOCATION__, &
    -                          "Global rows mapping array should exist when local indexing is used.")
    -      iterator%global_rows => array_data(matrix%global_rows)
    -      iterator%local_rows => array_data(matrix%local_rows)
    -
    -      iterator%transpose = .FALSE. !matrix%transpose
    -      iterator%nblks = matrix%nblks
    -      IF (iterator%transpose) THEN
    -         iterator%nblkrows_total = matrix%nblkcols_total
    -      ELSE
    -         iterator%nblkrows_total = matrix%nblkrows_total
    -      END IF
     
    -      iterator%row_p => matrix%row_p
    -      iterator%col_i => matrix%col_i
    -      iterator%blk_p => matrix%blk_p
    -!$OMP     CRITICAL (crit_data)
    -      iterator%data_area = matrix%data_area
    -      CALL dbcsr_data_hold(iterator%data_area)
    -!$OMP     END CRITICAL (crit_data)
    -      iterator%row_size = 0
    -      IF (.NOT. iterator%dynamic) THEN
    -         iterator%tdist => array_data(dbcsr_distribution_thread_dist(dist))
    -      ELSE
    -         NULLIFY (iterator%tdist)
    -      END IF
    -!$    IF (iterator%dynamic) THEN
    -!$OMP           SINGLE
    -!$       IF (iterator%dynamic_byrows) THEN
    -!$          iterator%common_pos = omp_get_num_threads()
    -!$       END IF
    -!$OMP           END SINGLE
    -!$       CALL dbcsr_iterator_seek(iterator, omp_get_thread_num() + 1)
    -!$    ELSE
    -         CALL dbcsr_iterator_seek(iterator, 1)
    -!$    END IF
    -      CALL timestop(error_handle)
    +      CALL dbcsr_iterator_start_prv(iterator%prv, matrix%prv, shared, dynamic, &
    +                                    dynamic_byrows, contiguous_pointers, read_only)
        END SUBROUTINE dbcsr_iterator_start
     
    diff --git a/develop/proc/dbcsr_iterator_stop.html b/develop/proc/dbcsr_iterator_stop.html index 58a4389f085..4d8332b2bec 100644 --- a/develop/proc/dbcsr_iterator_stop.html +++ b/develop/proc/dbcsr_iterator_stop.html @@ -74,20 +74,20 @@

    dbcsr_iterator_stop
  • 4 statements + title=" 0.0% of total for procedures.">20 statements
  • - Source File + Source File
  • @@ -143,6 +143,7 @@

    public subroutine dbcsr_iterator_stop(iterator)

    +

    Stops up an iterator

    Arguments

    @@ -158,8 +159,8 @@

    Arguments

    @@ -189,9 +190,40 @@

    Arguments

    Source Code

       SUBROUTINE dbcsr_iterator_stop(iterator)
    -      TYPE(dbcsr_iterator_type), INTENT(INOUT)           :: iterator
    +      !! Stops up an iterator
     
    -      CALL dbcsr_iterator_stop_prv(iterator%prv)
    +      TYPE(dbcsr_iterator), INTENT(INOUT)                :: iterator
    +         !! the iterator
    +
    +      CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_iterator_stop'
    +
    +      INTEGER                                            :: error_handle
    +
    +!   ---------------------------------------------------------------------------
    +
    +      CALL timeset(routineN, error_handle)
    +      iterator%row = 0
    +      iterator%pos = 0
    +
    +      NULLIFY (iterator%tdist)
    +!$OMP     CRITICAL (crit_data)
    +      CALL dbcsr_data_release(iterator%data_area)
    +!$OMP     END CRITICAL (crit_data)
    +      IF (iterator%dynamic) THEN
    +!$OMP        BARRIER
    +!$OMP        MASTER
    +         common_int_pointer => iterator%common_pos
    +         DEALLOCATE (common_int_pointer)
    +!$OMP        FLUSH (common_int_pointer)
    +!$OMP        END MASTER
    +         NULLIFY (iterator%common_pos)
    +!$OMP        BARRIER
    +      END IF
    +      IF (iterator%local_indexing) THEN
    +         NULLIFY (iterator%local_rows)
    +         NULLIFY (iterator%global_rows)
    +      END IF
    +      CALL timestop(error_handle)
        END SUBROUTINE dbcsr_iterator_stop
     
    diff --git a/develop/proc/dbcsr_iterator_stop~2.html b/develop/proc/dbcsr_iterator_stop~2.html index 255e284b3fd..25ef9993946 100644 --- a/develop/proc/dbcsr_iterator_stop~2.html +++ b/develop/proc/dbcsr_iterator_stop~2.html @@ -74,20 +74,20 @@

    dbcsr_iterator_stop
  • 20 statements + title=" 0.0% of total for procedures.">4 statements
  • - Source File + Source File
  • @@ -143,7 +143,6 @@

    public subroutine dbcsr_iterator_stop(iterator)

    -

    Stops up an iterator

    Arguments

    @@ -159,8 +158,8 @@

    Arguments

    @@ -190,40 +189,9 @@

    Arguments

    Source Code

       SUBROUTINE dbcsr_iterator_stop(iterator)
    -      !! Stops up an iterator
    +      TYPE(dbcsr_iterator_type), INTENT(INOUT)           :: iterator
     
    -      TYPE(dbcsr_iterator), INTENT(INOUT)                :: iterator
    -         !! the iterator
    -
    -      CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_iterator_stop'
    -
    -      INTEGER                                            :: error_handle
    -
    -!   ---------------------------------------------------------------------------
    -
    -      CALL timeset(routineN, error_handle)
    -      iterator%row = 0
    -      iterator%pos = 0
    -
    -      NULLIFY (iterator%tdist)
    -!$OMP     CRITICAL (crit_data)
    -      CALL dbcsr_data_release(iterator%data_area)
    -!$OMP     END CRITICAL (crit_data)
    -      IF (iterator%dynamic) THEN
    -!$OMP        BARRIER
    -!$OMP        MASTER
    -         common_int_pointer => iterator%common_pos
    -         DEALLOCATE (common_int_pointer)
    -!$OMP        FLUSH (common_int_pointer)
    -!$OMP        END MASTER
    -         NULLIFY (iterator%common_pos)
    -!$OMP        BARRIER
    -      END IF
    -      IF (iterator%local_indexing) THEN
    -         NULLIFY (iterator%local_rows)
    -         NULLIFY (iterator%global_rows)
    -      END IF
    -      CALL timestop(error_handle)
    +      CALL dbcsr_iterator_stop_prv(iterator%prv)
        END SUBROUTINE dbcsr_iterator_stop
     
    diff --git a/develop/proc/dbcsr_lapack_larnv.html b/develop/proc/dbcsr_lapack_larnv.html index d0c9e7a355d..8dbc6bfb458 100644 --- a/develop/proc/dbcsr_lapack_larnv.html +++ b/develop/proc/dbcsr_lapack_larnv.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_logger_create.html b/develop/proc/dbcsr_logger_create.html index 3c92412ebb3..5fa3381af4d 100644 --- a/develop/proc/dbcsr_logger_create.html +++ b/develop/proc/dbcsr_logger_create.html @@ -180,7 +180,7 @@

    Arguments

    @@ -195,7 +195,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_logger_generate_filename.html b/develop/proc/dbcsr_logger_generate_filename.html index c8dd8091453..b78b381b660 100644 --- a/develop/proc/dbcsr_logger_generate_filename.html +++ b/develop/proc/dbcsr_logger_generate_filename.html @@ -182,7 +182,7 @@

    Arguments

    @@ -229,7 +229,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_logger_get_default_io_unit.html b/develop/proc/dbcsr_logger_get_default_io_unit.html index 2b84a51d8bc..adde57c2c87 100644 --- a/develop/proc/dbcsr_logger_get_default_io_unit.html +++ b/develop/proc/dbcsr_logger_get_default_io_unit.html @@ -178,7 +178,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_logger_get_default_unit_nr.html b/develop/proc/dbcsr_logger_get_default_unit_nr.html index db95b73583c..aed408539a6 100644 --- a/develop/proc/dbcsr_logger_get_default_unit_nr.html +++ b/develop/proc/dbcsr_logger_get_default_unit_nr.html @@ -175,7 +175,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_logger_get_unit_nr.html b/develop/proc/dbcsr_logger_get_unit_nr.html index 8e6542402e6..ea802a5e284 100644 --- a/develop/proc/dbcsr_logger_get_unit_nr.html +++ b/develop/proc/dbcsr_logger_get_unit_nr.html @@ -174,7 +174,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_logger_would_log.html b/develop/proc/dbcsr_logger_would_log.html index 7a0a6831593..0d9854b95f8 100644 --- a/develop/proc/dbcsr_logger_would_log.html +++ b/develop/proc/dbcsr_logger_would_log.html @@ -196,7 +196,7 @@

    Arguments

    Return Value - + logical

    diff --git a/develop/proc/dbcsr_logical_to_string.html b/develop/proc/dbcsr_logical_to_string.html index fe2a029b33b..e07d380ae80 100644 --- a/develop/proc/dbcsr_logical_to_string.html +++ b/develop/proc/dbcsr_logical_to_string.html @@ -159,7 +159,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    Return Value - + character(len=1)

    diff --git a/develop/proc/dbcsr_make_1dist_dense.html b/develop/proc/dbcsr_make_1dist_dense.html index 3fde1195736..ff5a457ac45 100644 --- a/develop/proc/dbcsr_make_1dist_dense.html +++ b/develop/proc/dbcsr_make_1dist_dense.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_make_buffers.html b/develop/proc/dbcsr_make_buffers.html index e3fc94a96cc..cf2dbd560fc 100644 --- a/develop/proc/dbcsr_make_buffers.html +++ b/develop/proc/dbcsr_make_buffers.html @@ -159,7 +159,7 @@

    Arguments

    @@ -279,7 +279,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_make_dbcsr_index.html b/develop/proc/dbcsr_make_dbcsr_index.html index 1cae21bbff0..eb4721dea7f 100644 --- a/develop/proc/dbcsr_make_dbcsr_index.html +++ b/develop/proc/dbcsr_make_dbcsr_index.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_make_dense.html b/develop/proc/dbcsr_make_dense.html index bc1fdbf0235..f14eba4d6b9 100644 --- a/develop/proc/dbcsr_make_dense.html +++ b/develop/proc/dbcsr_make_dense.html @@ -163,7 +163,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -238,7 +238,7 @@

    Arguments

    @@ -253,7 +253,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_make_dense_low.html b/develop/proc/dbcsr_make_dense_low.html index bb5307fb535..0473e8e1422 100644 --- a/develop/proc/dbcsr_make_dense_low.html +++ b/develop/proc/dbcsr_make_dense_low.html @@ -385,7 +385,7 @@

    Arguments

    @@ -409,7 +409,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_make_dists_dense.html b/develop/proc/dbcsr_make_dists_dense.html index 6e3dee8de60..595f318109d 100644 --- a/develop/proc/dbcsr_make_dists_dense.html +++ b/develop/proc/dbcsr_make_dists_dense.html @@ -264,7 +264,7 @@

    Arguments

    @@ -279,7 +279,7 @@

    Arguments

    @@ -294,7 +294,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_make_images.html b/develop/proc/dbcsr_make_images.html index f6361f8ef42..ed4efa9f96e 100644 --- a/develop/proc/dbcsr_make_images.html +++ b/develop/proc/dbcsr_make_images.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_make_images_dense.html b/develop/proc/dbcsr_make_images_dense.html index 83eabe3126d..0893eecea61 100644 --- a/develop/proc/dbcsr_make_images_dense.html +++ b/develop/proc/dbcsr_make_images_dense.html @@ -163,7 +163,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_make_index_canonical.html b/develop/proc/dbcsr_make_index_canonical.html index 12ddee5c232..d82f423f2e6 100644 --- a/develop/proc/dbcsr_make_index_canonical.html +++ b/develop/proc/dbcsr_make_index_canonical.html @@ -160,7 +160,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_make_index_exist.html b/develop/proc/dbcsr_make_index_exist.html index 7d32df1eb8f..45d852415c9 100644 --- a/develop/proc/dbcsr_make_index_exist.html +++ b/develop/proc/dbcsr_make_index_exist.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_make_index_list.html b/develop/proc/dbcsr_make_index_list.html index bdd5b8f47a2..d96eba9816b 100644 --- a/develop/proc/dbcsr_make_index_list.html +++ b/develop/proc/dbcsr_make_index_list.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_make_index_local_row.html b/develop/proc/dbcsr_make_index_local_row.html index 6a71b3d2284..49637b7387d 100644 --- a/develop/proc/dbcsr_make_index_local_row.html +++ b/develop/proc/dbcsr_make_index_local_row.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_make_null_dist.html b/develop/proc/dbcsr_make_null_dist.html index 8176f8fc76a..867ecad252c 100644 --- a/develop/proc/dbcsr_make_null_dist.html +++ b/develop/proc/dbcsr_make_null_dist.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_make_null_mp.html b/develop/proc/dbcsr_make_null_mp.html index 92f164f2230..b0b58838da6 100644 --- a/develop/proc/dbcsr_make_null_mp.html +++ b/develop/proc/dbcsr_make_null_mp.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_make_random_block_sizes.html b/develop/proc/dbcsr_make_random_block_sizes.html index 31f8cbb86c1..38d64f3d11b 100644 --- a/develop/proc/dbcsr_make_random_block_sizes.html +++ b/develop/proc/dbcsr_make_random_block_sizes.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_make_random_matrix.html b/develop/proc/dbcsr_make_random_matrix.html index 2d3a157b257..3a819bb5123 100644 --- a/develop/proc/dbcsr_make_random_matrix.html +++ b/develop/proc/dbcsr_make_random_matrix.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    @@ -249,7 +249,7 @@

    Arguments

    @@ -279,7 +279,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_make_undense.html b/develop/proc/dbcsr_make_undense.html index 95b6cf91716..9c20e08b51e 100644 --- a/develop/proc/dbcsr_make_undense.html +++ b/develop/proc/dbcsr_make_undense.html @@ -163,7 +163,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    @@ -268,7 +268,7 @@

    Arguments

    @@ -288,7 +288,7 @@

    Arguments

    @@ -308,7 +308,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_make_untransposed_blocks.html b/develop/proc/dbcsr_make_untransposed_blocks.html index 774512a35de..bc7e12b296a 100644 --- a/develop/proc/dbcsr_make_untransposed_blocks.html +++ b/develop/proc/dbcsr_make_untransposed_blocks.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_max_col_size.html b/develop/proc/dbcsr_max_col_size.html index 019a72d7334..9043bbba3a4 100644 --- a/develop/proc/dbcsr_max_col_size.html +++ b/develop/proc/dbcsr_max_col_size.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_max_row_size.html b/develop/proc/dbcsr_max_row_size.html index 799796cf8f0..3655852745b 100644 --- a/develop/proc/dbcsr_max_row_size.html +++ b/develop/proc/dbcsr_max_row_size.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_maxabs.html b/develop/proc/dbcsr_maxabs.html index 8a82ad9dc20..8d1227970d0 100644 --- a/develop/proc/dbcsr_maxabs.html +++ b/develop/proc/dbcsr_maxabs.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + real(kind=real_8)

    diff --git a/develop/proc/dbcsr_maxabs~2.html b/develop/proc/dbcsr_maxabs~2.html index 75778567a6e..07bdf7726ff 100644 --- a/develop/proc/dbcsr_maxabs~2.html +++ b/develop/proc/dbcsr_maxabs~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    Return Value - + real(kind=real_8)

    diff --git a/develop/proc/dbcsr_may_be_dense.html b/develop/proc/dbcsr_may_be_dense.html index d507f7cb618..ce808431736 100644 --- a/develop/proc/dbcsr_may_be_dense.html +++ b/develop/proc/dbcsr_may_be_dense.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mempool_add.html b/develop/proc/dbcsr_mempool_add.html index dc51cbee06d..242b55bbbc2 100644 --- a/develop/proc/dbcsr_mempool_add.html +++ b/develop/proc/dbcsr_mempool_add.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mempool_clear.html b/develop/proc/dbcsr_mempool_clear.html index 26f41c7a7a6..67a08b623ee 100644 --- a/develop/proc/dbcsr_mempool_clear.html +++ b/develop/proc/dbcsr_mempool_clear.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mempool_create.html b/develop/proc/dbcsr_mempool_create.html index 55df4c84b2b..0d81af04825 100644 --- a/develop/proc/dbcsr_mempool_create.html +++ b/develop/proc/dbcsr_mempool_create.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mempool_destruct.html b/develop/proc/dbcsr_mempool_destruct.html index a61400d417f..363e322c2eb 100644 --- a/develop/proc/dbcsr_mempool_destruct.html +++ b/develop/proc/dbcsr_mempool_destruct.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mempool_get.html b/develop/proc/dbcsr_mempool_get.html index 9b55b7fb76b..222ef1d068f 100644 --- a/develop/proc/dbcsr_mempool_get.html +++ b/develop/proc/dbcsr_mempool_get.html @@ -174,7 +174,7 @@

    Arguments

    @@ -207,7 +207,7 @@

    Arguments

    Return Value - + type(dbcsr_data_obj)

    diff --git a/develop/proc/dbcsr_mempool_limit_capacity.html b/develop/proc/dbcsr_mempool_limit_capacity.html index 633a88b9b33..fd39539d2b0 100644 --- a/develop/proc/dbcsr_mempool_limit_capacity.html +++ b/develop/proc/dbcsr_mempool_limit_capacity.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_memtype_equal.html b/develop/proc/dbcsr_memtype_equal.html index 1c23f3d396b..4048d2bff46 100644 --- a/develop/proc/dbcsr_memtype_equal.html +++ b/develop/proc/dbcsr_memtype_equal.html @@ -192,7 +192,7 @@

    Arguments

    Return Value - + logical

    diff --git a/develop/proc/dbcsr_memtype_setup.html b/develop/proc/dbcsr_memtype_setup.html index e32e5c79c70..c600af2dd11 100644 --- a/develop/proc/dbcsr_memtype_setup.html +++ b/develop/proc/dbcsr_memtype_setup.html @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_merge_all.html b/develop/proc/dbcsr_merge_all.html index 0d42e922e4e..34f141adc6e 100644 --- a/develop/proc/dbcsr_merge_all.html +++ b/develop/proc/dbcsr_merge_all.html @@ -159,7 +159,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_merge_single_wm.html b/develop/proc/dbcsr_merge_single_wm.html index 061cb8d6066..aaac3875766 100644 --- a/develop/proc/dbcsr_merge_single_wm.html +++ b/develop/proc/dbcsr_merge_single_wm.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mm_accdrv_dev2host_init.html b/develop/proc/dbcsr_mm_accdrv_dev2host_init.html index b25491cef6f..d1185e73bef 100644 --- a/develop/proc/dbcsr_mm_accdrv_dev2host_init.html +++ b/develop/proc/dbcsr_mm_accdrv_dev2host_init.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mm_accdrv_finalize.html b/develop/proc/dbcsr_mm_accdrv_finalize.html index e151fe79af7..449bfea0652 100644 --- a/develop/proc/dbcsr_mm_accdrv_finalize.html +++ b/develop/proc/dbcsr_mm_accdrv_finalize.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mm_accdrv_init.html b/develop/proc/dbcsr_mm_accdrv_init.html index cc32d81285a..7f2cc6e8a11 100644 --- a/develop/proc/dbcsr_mm_accdrv_init.html +++ b/develop/proc/dbcsr_mm_accdrv_init.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mm_accdrv_process.html b/develop/proc/dbcsr_mm_accdrv_process.html index 91365f9f586..fa4462b3bfd 100644 --- a/develop/proc/dbcsr_mm_accdrv_process.html +++ b/develop/proc/dbcsr_mm_accdrv_process.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    @@ -249,7 +249,7 @@

    Arguments

    @@ -264,7 +264,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mm_csr_dev2host_init.html b/develop/proc/dbcsr_mm_csr_dev2host_init.html index c538035438d..aa120d408d7 100644 --- a/develop/proc/dbcsr_mm_csr_dev2host_init.html +++ b/develop/proc/dbcsr_mm_csr_dev2host_init.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mm_csr_finalize.html b/develop/proc/dbcsr_mm_csr_finalize.html index b8dfe864d28..50a54de5337 100644 --- a/develop/proc/dbcsr_mm_csr_finalize.html +++ b/develop/proc/dbcsr_mm_csr_finalize.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mm_csr_init.html b/develop/proc/dbcsr_mm_csr_init.html index ae53da2b5d1..50192ea2b3c 100644 --- a/develop/proc/dbcsr_mm_csr_init.html +++ b/develop/proc/dbcsr_mm_csr_init.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    @@ -294,7 +294,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mm_csr_multiply.html b/develop/proc/dbcsr_mm_csr_multiply.html index 5a1e772c7b1..48b1b85499e 100644 --- a/develop/proc/dbcsr_mm_csr_multiply.html +++ b/develop/proc/dbcsr_mm_csr_multiply.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -354,7 +354,7 @@

    Arguments

    @@ -369,7 +369,7 @@

    Arguments

    @@ -384,7 +384,7 @@

    Arguments

    @@ -399,7 +399,7 @@

    Arguments

    @@ -414,7 +414,7 @@

    Arguments

    @@ -429,7 +429,7 @@

    Arguments

    @@ -444,7 +444,7 @@

    Arguments

    @@ -474,7 +474,7 @@

    Arguments

    @@ -489,7 +489,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mm_csr_multiply_low.html b/develop/proc/dbcsr_mm_csr_multiply_low.html index 6baedd1ce8b..158db45ccba 100644 --- a/develop/proc/dbcsr_mm_csr_multiply_low.html +++ b/develop/proc/dbcsr_mm_csr_multiply_low.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -354,7 +354,7 @@

    Arguments

    @@ -399,7 +399,7 @@

    Arguments

    @@ -414,7 +414,7 @@

    Arguments

    @@ -429,7 +429,7 @@

    Arguments

    @@ -444,7 +444,7 @@

    Arguments

    @@ -459,7 +459,7 @@

    Arguments

    @@ -474,7 +474,7 @@

    Arguments

    @@ -489,7 +489,7 @@

    Arguments

    @@ -519,7 +519,7 @@

    Arguments

    @@ -534,7 +534,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mm_csr_purge_stacks.html b/develop/proc/dbcsr_mm_csr_purge_stacks.html index 1d9be7ed38a..aa48d213b9d 100644 --- a/develop/proc/dbcsr_mm_csr_purge_stacks.html +++ b/develop/proc/dbcsr_mm_csr_purge_stacks.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mm_csr_red3d.html b/develop/proc/dbcsr_mm_csr_red3d.html index 8ec467af8c2..1d173c43b67 100644 --- a/develop/proc/dbcsr_mm_csr_red3d.html +++ b/develop/proc/dbcsr_mm_csr_red3d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    @@ -294,7 +294,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mm_hostdrv_init.html b/develop/proc/dbcsr_mm_hostdrv_init.html index 4fb86f8d79a..7c12719be84 100644 --- a/develop/proc/dbcsr_mm_hostdrv_init.html +++ b/develop/proc/dbcsr_mm_hostdrv_init.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mm_hostdrv_process.html b/develop/proc/dbcsr_mm_hostdrv_process.html index 674b5821073..4c270f6380e 100644 --- a/develop/proc/dbcsr_mm_hostdrv_process.html +++ b/develop/proc/dbcsr_mm_hostdrv_process.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    @@ -251,7 +251,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mm_multrec_dev2host_init.html b/develop/proc/dbcsr_mm_multrec_dev2host_init.html index c9fca17631f..07d694ed327 100644 --- a/develop/proc/dbcsr_mm_multrec_dev2host_init.html +++ b/develop/proc/dbcsr_mm_multrec_dev2host_init.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mm_multrec_finalize.html b/develop/proc/dbcsr_mm_multrec_finalize.html index d422f999088..162d3ee042b 100644 --- a/develop/proc/dbcsr_mm_multrec_finalize.html +++ b/develop/proc/dbcsr_mm_multrec_finalize.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mm_multrec_get_nblks.html b/develop/proc/dbcsr_mm_multrec_get_nblks.html index fe75f471197..215838dfdb2 100644 --- a/develop/proc/dbcsr_mm_multrec_get_nblks.html +++ b/develop/proc/dbcsr_mm_multrec_get_nblks.html @@ -159,7 +159,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_mm_multrec_get_nze.html b/develop/proc/dbcsr_mm_multrec_get_nze.html index 2de36d7e2d4..4ed69a5026c 100644 --- a/develop/proc/dbcsr_mm_multrec_get_nze.html +++ b/develop/proc/dbcsr_mm_multrec_get_nze.html @@ -159,7 +159,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_mm_multrec_init.html b/develop/proc/dbcsr_mm_multrec_init.html index 64061c84fc7..731fb722ec7 100644 --- a/develop/proc/dbcsr_mm_multrec_init.html +++ b/develop/proc/dbcsr_mm_multrec_init.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    @@ -251,7 +251,7 @@

    Arguments

    @@ -296,7 +296,7 @@

    Arguments

    @@ -311,7 +311,7 @@

    Arguments

    @@ -326,7 +326,7 @@

    Arguments

    @@ -341,7 +341,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mm_multrec_multiply.html b/develop/proc/dbcsr_mm_multrec_multiply.html index fc8fe135b7f..acdd1cdb420 100644 --- a/develop/proc/dbcsr_mm_multrec_multiply.html +++ b/develop/proc/dbcsr_mm_multrec_multiply.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -210,7 +210,7 @@

    Arguments

    @@ -257,7 +257,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mm_multrec_red3d.html b/develop/proc/dbcsr_mm_multrec_red3d.html index 9f918dcd956..719341d3b8f 100644 --- a/develop/proc/dbcsr_mm_multrec_red3d.html +++ b/develop/proc/dbcsr_mm_multrec_red3d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mm_sched_begin_burst.html b/develop/proc/dbcsr_mm_sched_begin_burst.html index 7638d9bcc17..4a79efa39bd 100644 --- a/develop/proc/dbcsr_mm_sched_begin_burst.html +++ b/develop/proc/dbcsr_mm_sched_begin_burst.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mm_sched_dev2host_init.html b/develop/proc/dbcsr_mm_sched_dev2host_init.html index bd696b0b559..e9ae637e809 100644 --- a/develop/proc/dbcsr_mm_sched_dev2host_init.html +++ b/develop/proc/dbcsr_mm_sched_dev2host_init.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mm_sched_finalize.html b/develop/proc/dbcsr_mm_sched_finalize.html index 99528926044..d8e3765f1f4 100644 --- a/develop/proc/dbcsr_mm_sched_finalize.html +++ b/develop/proc/dbcsr_mm_sched_finalize.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mm_sched_init.html b/develop/proc/dbcsr_mm_sched_init.html index d0203dc6c68..f5717e27238 100644 --- a/develop/proc/dbcsr_mm_sched_init.html +++ b/develop/proc/dbcsr_mm_sched_init.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mm_sched_print_statistics.html b/develop/proc/dbcsr_mm_sched_print_statistics.html index 164edd4acd4..e525fbd372e 100644 --- a/develop/proc/dbcsr_mm_sched_print_statistics.html +++ b/develop/proc/dbcsr_mm_sched_print_statistics.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mm_sched_process.html b/develop/proc/dbcsr_mm_sched_process.html index 5ff1d03667f..ba78feaf1d7 100644 --- a/develop/proc/dbcsr_mm_sched_process.html +++ b/develop/proc/dbcsr_mm_sched_process.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mm_sched_set_orig_datasize.html b/develop/proc/dbcsr_mm_sched_set_orig_datasize.html index 6a5e40762b8..4244e84f111 100644 --- a/develop/proc/dbcsr_mm_sched_set_orig_datasize.html +++ b/develop/proc/dbcsr_mm_sched_set_orig_datasize.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mp_active.html b/develop/proc/dbcsr_mp_active.html index 6c6b561958a..52f3af509c2 100644 --- a/develop/proc/dbcsr_mp_active.html +++ b/develop/proc/dbcsr_mp_active.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mp_environ.html b/develop/proc/dbcsr_mp_environ.html index 56aec2a0057..1070495219c 100644 --- a/develop/proc/dbcsr_mp_environ.html +++ b/develop/proc/dbcsr_mp_environ.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mp_get_process.html b/develop/proc/dbcsr_mp_get_process.html index a4098b50bd6..9fcb30c3a93 100644 --- a/develop/proc/dbcsr_mp_get_process.html +++ b/develop/proc/dbcsr_mp_get_process.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mp_grid_remove.html b/develop/proc/dbcsr_mp_grid_remove.html index ca1f3baae8f..9c07293cd3a 100644 --- a/develop/proc/dbcsr_mp_grid_remove.html +++ b/develop/proc/dbcsr_mp_grid_remove.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mp_grid_setup.html b/develop/proc/dbcsr_mp_grid_setup.html index e617642f56a..7d7f1bcb86b 100644 --- a/develop/proc/dbcsr_mp_grid_setup.html +++ b/develop/proc/dbcsr_mp_grid_setup.html @@ -74,20 +74,20 @@

    dbcsr_mp_grid_setup
  • 20 statements + title=" 0.0% of total for procedures.">4 statements
  • - Source File + Source File
  • @@ -139,11 +139,10 @@

    Contents

    -

    public subroutine dbcsr_mp_grid_setup(mp_env) +

    public subroutine dbcsr_mp_grid_setup(dist)

    -

    Sets up MPI cartesian process grid

    Arguments

    @@ -159,17 +158,17 @@

    Arguments

    - + @@ -189,40 +188,11 @@

    Arguments

    Source Code

    -
       SUBROUTINE dbcsr_mp_grid_setup(mp_env)
    -      !! Sets up MPI cartesian process grid
    +    
       SUBROUTINE dbcsr_mp_grid_setup(dist)
    +      TYPE(dbcsr_distribution_type), INTENT(INOUT)       :: dist
     
    -      TYPE(dbcsr_mp_obj), INTENT(INOUT)                  :: mp_env
    -         !! multiprocessor environment
    -
    -      INTEGER                                            :: ndims
    -      INTEGER, DIMENSION(2)                              :: dims, my_pos
    -      LOGICAL, DIMENSION(2)                              :: remain
    -      TYPE(mp_comm_type)                                 :: tmp_group
    -
    -!   ---------------------------------------------------------------------------
    -
    -      IF (.NOT. mp_env%mp%subgroups_defined) THEN
    -         ! KG workaround.
    -         ! This will be deleted (replaced by code in mp_new).
    -         ndims = 2
    -         dims(1:2) = (/SIZE(mp_env%mp%pgrid, 1), SIZE(mp_env%mp%pgrid, 2)/)
    -         CALL mp_cart_create(mp_env%mp%mp_group, ndims, &
    -                             dims, my_pos, &
    -                             tmp_group)
    -         IF (my_pos(1) .NE. mp_env%mp%myprow) &
    -            DBCSR_ABORT("Got different MPI process grid")
    -         IF (my_pos(2) .NE. mp_env%mp%mypcol) &
    -            DBCSR_ABORT("Got different MPI process grid")
    -         !
    -         remain = (/.FALSE., .TRUE./)
    -         CALL mp_cart_sub(tmp_group, remain, mp_env%mp%prow_group)
    -         remain = (/.TRUE., .FALSE./)
    -         CALL mp_cart_sub(tmp_group, remain, mp_env%mp%pcol_group)
    -         CALL mp_comm_free(tmp_group)
    -         mp_env%mp%subgroups_defined = .TRUE.
    -      END IF
    -   END SUBROUTINE dbcsr_mp_grid_setup
    +      CALL dbcsr_mp_grid_setup_prv(dist%prv%d%mp_env)
    +   END SUBROUTINE dbcsr_mp_grid_setup
     
    diff --git a/develop/proc/dbcsr_mp_grid_setup~2.html b/develop/proc/dbcsr_mp_grid_setup~2.html index 9ca3b77b99b..bcff7d3e392 100644 --- a/develop/proc/dbcsr_mp_grid_setup~2.html +++ b/develop/proc/dbcsr_mp_grid_setup~2.html @@ -74,20 +74,20 @@

    dbcsr_mp_grid_setup
  • 4 statements + title=" 0.0% of total for procedures.">20 statements
  • - Source File + Source File
  • @@ -139,10 +139,11 @@

    Contents

    -

    public subroutine dbcsr_mp_grid_setup(dist) +

    public subroutine dbcsr_mp_grid_setup(mp_env)

    +

    Sets up MPI cartesian process grid

    Arguments

    @@ -158,17 +159,17 @@

    Arguments

    - + @@ -188,11 +189,40 @@

    Arguments

    Source Code

    -
       SUBROUTINE dbcsr_mp_grid_setup(dist)
    -      TYPE(dbcsr_distribution_type), INTENT(INOUT)       :: dist
    +    
       SUBROUTINE dbcsr_mp_grid_setup(mp_env)
    +      !! Sets up MPI cartesian process grid
     
    -      CALL dbcsr_mp_grid_setup_prv(dist%prv%d%mp_env)
    -   END SUBROUTINE dbcsr_mp_grid_setup
    +      TYPE(dbcsr_mp_obj), INTENT(INOUT)                  :: mp_env
    +         !! multiprocessor environment
    +
    +      INTEGER                                            :: ndims
    +      INTEGER, DIMENSION(2)                              :: dims, my_pos
    +      LOGICAL, DIMENSION(2)                              :: remain
    +      TYPE(mp_comm_type)                                 :: tmp_group
    +
    +!   ---------------------------------------------------------------------------
    +
    +      IF (.NOT. mp_env%mp%subgroups_defined) THEN
    +         ! KG workaround.
    +         ! This will be deleted (replaced by code in mp_new).
    +         ndims = 2
    +         dims(1:2) = (/SIZE(mp_env%mp%pgrid, 1), SIZE(mp_env%mp%pgrid, 2)/)
    +         CALL mp_cart_create(mp_env%mp%mp_group, ndims, &
    +                             dims, my_pos, &
    +                             tmp_group)
    +         IF (my_pos(1) .NE. mp_env%mp%myprow) &
    +            DBCSR_ABORT("Got different MPI process grid")
    +         IF (my_pos(2) .NE. mp_env%mp%mypcol) &
    +            DBCSR_ABORT("Got different MPI process grid")
    +         !
    +         remain = (/.FALSE., .TRUE./)
    +         CALL mp_cart_sub(tmp_group, remain, mp_env%mp%prow_group)
    +         remain = (/.TRUE., .FALSE./)
    +         CALL mp_cart_sub(tmp_group, remain, mp_env%mp%pcol_group)
    +         CALL mp_comm_free(tmp_group)
    +         mp_env%mp%subgroups_defined = .TRUE.
    +      END IF
    +   END SUBROUTINE dbcsr_mp_grid_setup
     
    diff --git a/develop/proc/dbcsr_mp_group.html b/develop/proc/dbcsr_mp_group.html index 1222f49c6f0..1f202288fd5 100644 --- a/develop/proc/dbcsr_mp_group.html +++ b/develop/proc/dbcsr_mp_group.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + type(mp_comm_type)

    diff --git a/develop/proc/dbcsr_mp_has_subgroups.html b/develop/proc/dbcsr_mp_has_subgroups.html index f8bece39e37..e0681db22c8 100644 --- a/develop/proc/dbcsr_mp_has_subgroups.html +++ b/develop/proc/dbcsr_mp_has_subgroups.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mp_hold.html b/develop/proc/dbcsr_mp_hold.html index 718879bffc5..c0f42ab2597 100644 --- a/develop/proc/dbcsr_mp_hold.html +++ b/develop/proc/dbcsr_mp_hold.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mp_init.html b/develop/proc/dbcsr_mp_init.html index 02d29188b46..f83b0547552 100644 --- a/develop/proc/dbcsr_mp_init.html +++ b/develop/proc/dbcsr_mp_init.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mp_make_env.html b/develop/proc/dbcsr_mp_make_env.html index 0167ffe0786..db69fa69353 100644 --- a/develop/proc/dbcsr_mp_make_env.html +++ b/develop/proc/dbcsr_mp_make_env.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mp_my_col_group.html b/develop/proc/dbcsr_mp_my_col_group.html index 1ad14ab4aae..1a4e5b14933 100644 --- a/develop/proc/dbcsr_mp_my_col_group.html +++ b/develop/proc/dbcsr_mp_my_col_group.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mp_my_row_group.html b/develop/proc/dbcsr_mp_my_row_group.html index 469a335d864..04616c0a37c 100644 --- a/develop/proc/dbcsr_mp_my_row_group.html +++ b/develop/proc/dbcsr_mp_my_row_group.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mp_mynode.html b/develop/proc/dbcsr_mp_mynode.html index bd11eb75a55..d084b05ce42 100644 --- a/develop/proc/dbcsr_mp_mynode.html +++ b/develop/proc/dbcsr_mp_mynode.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mp_mypcol.html b/develop/proc/dbcsr_mp_mypcol.html index a065e7319a5..8c4b0fb746c 100644 --- a/develop/proc/dbcsr_mp_mypcol.html +++ b/develop/proc/dbcsr_mp_mypcol.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_mp_myprow.html b/develop/proc/dbcsr_mp_myprow.html index 7dcf4b81850..804b8037917 100644 --- a/develop/proc/dbcsr_mp_myprow.html +++ b/develop/proc/dbcsr_mp_myprow.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_mp_new_grid.html b/develop/proc/dbcsr_mp_new_grid.html index eb21e570e91..ea429434327 100644 --- a/develop/proc/dbcsr_mp_new_grid.html +++ b/develop/proc/dbcsr_mp_new_grid.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    @@ -249,7 +249,7 @@

    Arguments

    @@ -264,7 +264,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mp_new_group.html b/develop/proc/dbcsr_mp_new_group.html index 2b0ee707790..6129fc20da7 100644 --- a/develop/proc/dbcsr_mp_new_group.html +++ b/develop/proc/dbcsr_mp_new_group.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mp_new_transposed.html b/develop/proc/dbcsr_mp_new_transposed.html index b81b7e565f9..7dcedc74f93 100644 --- a/develop/proc/dbcsr_mp_new_transposed.html +++ b/develop/proc/dbcsr_mp_new_transposed.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mp_npcols.html b/develop/proc/dbcsr_mp_npcols.html index 14ca4b2cc63..f46a43dc03a 100644 --- a/develop/proc/dbcsr_mp_npcols.html +++ b/develop/proc/dbcsr_mp_npcols.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_mp_nprows.html b/develop/proc/dbcsr_mp_nprows.html index 104b6721055..1d9a4bf96b5 100644 --- a/develop/proc/dbcsr_mp_nprows.html +++ b/develop/proc/dbcsr_mp_nprows.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_mp_numnodes.html b/develop/proc/dbcsr_mp_numnodes.html index 5028445ea6b..84dd1f97133 100644 --- a/develop/proc/dbcsr_mp_numnodes.html +++ b/develop/proc/dbcsr_mp_numnodes.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_mp_pgrid.html b/develop/proc/dbcsr_mp_pgrid.html index f2f8fd61d50..03a623c9ee0 100644 --- a/develop/proc/dbcsr_mp_pgrid.html +++ b/develop/proc/dbcsr_mp_pgrid.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + integer, DIMENSION(:, :), POINTER, CONTIGUOUS

    diff --git a/develop/proc/dbcsr_mp_release.html b/develop/proc/dbcsr_mp_release.html index 0da9f409aea..33199261534 100644 --- a/develop/proc/dbcsr_mp_release.html +++ b/develop/proc/dbcsr_mp_release.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_mp_type_from_anytype.html b/develop/proc/dbcsr_mp_type_from_anytype.html index 37a43295c0f..75d0860b92b 100644 --- a/develop/proc/dbcsr_mp_type_from_anytype.html +++ b/develop/proc/dbcsr_mp_type_from_anytype.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_multiply_c.html b/develop/proc/dbcsr_multiply_c.html index 328ddc59c44..6e1ebc2b94d 100644 --- a/develop/proc/dbcsr_multiply_c.html +++ b/develop/proc/dbcsr_multiply_c.html @@ -79,15 +79,15 @@

    dbcsr_multiply_c
  • - Source File + Source File
  • @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,8 +203,8 @@

    Arguments

    @@ -248,8 +248,8 @@

    Arguments

    @@ -293,7 +293,7 @@

    Arguments

    @@ -308,7 +308,7 @@

    Arguments

    @@ -338,7 +338,7 @@

    Arguments

    @@ -353,7 +353,7 @@

    Arguments

    @@ -368,7 +368,7 @@

    Arguments

    @@ -383,7 +383,7 @@

    Arguments

    @@ -413,29 +413,29 @@

    Arguments

    Source Code

    -
       SUBROUTINE dbcsr_multiply_c(transa, transb, &
    -                               alpha, matrix_a, matrix_b, beta, matrix_c, &
    -                               first_row, last_row, first_column, last_column, first_k, last_k, &
    -                               retain_sparsity, filter_eps, &
    -                               flop)
    -      CHARACTER(LEN=1), INTENT(IN)                       :: transa, transb
    -      COMPLEX(KIND=real_4), INTENT(IN)                   :: alpha
    -      TYPE(dbcsr_type), INTENT(IN)                       :: matrix_a, matrix_b
    -      COMPLEX(KIND=real_4), INTENT(IN)                   :: beta
    -      TYPE(dbcsr_type), INTENT(INOUT)                    :: matrix_c
    -      INTEGER, INTENT(IN), OPTIONAL                      :: first_row, last_row, first_column, &
    -                                                            last_column, first_k, last_k
    -      LOGICAL, INTENT(IN), OPTIONAL                      :: retain_sparsity
    -      REAL(KIND=real_8), INTENT(IN), OPTIONAL            :: filter_eps
    -      INTEGER(KIND=int_8), INTENT(OUT), OPTIONAL         :: flop
    +    
          SUBROUTINE dbcsr_multiply_c (transa, transb, &
    +                                               alpha, matrix_a, matrix_b, beta, matrix_c, &
    +                                               first_row, last_row, first_column, last_column, first_k, last_k, &
    +                                               retain_sparsity, filter_eps, flop)
    +         CHARACTER(LEN=1), INTENT(IN)             :: transa, transb
    +         COMPLEX(kind=real_4), INTENT(IN)                      :: alpha
    +         TYPE(dbcsr_type), INTENT(IN)             :: matrix_a, matrix_b
    +         COMPLEX(kind=real_4), INTENT(IN)                      :: beta
    +         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix_c
    +         INTEGER, INTENT(IN), OPTIONAL            :: first_row, last_row, &
    +                                                     first_column, last_column, &
    +                                                     first_k, last_k
    +         LOGICAL, INTENT(IN), OPTIONAL            :: retain_sparsity
    +         REAL(kind=real_8), INTENT(IN), OPTIONAL :: filter_eps
    +         INTEGER(int_8), INTENT(OUT), OPTIONAL    :: flop
     
    -      CALL dbcsr_multiply_generic(transa, transb, &
    -                                  dbcsr_scalar(alpha), matrix_a, matrix_b, dbcsr_scalar(beta), matrix_c, &
    -                                  first_row, last_row, first_column, last_column, first_k, last_k, &
    -                                  retain_sparsity, &
    -                                  filter_eps=filter_eps, &
    -                                  flop=flop)
    -   END SUBROUTINE dbcsr_multiply_c
    +         CALL dbcsr_multiply_prv(transa, transb, &
    +                                 alpha, matrix_a%prv, matrix_b%prv, beta, matrix_c%prv, &
    +                                 first_row, last_row, first_column, last_column, first_k, last_k, &
    +                                 retain_sparsity, &
    +                                 filter_eps=filter_eps, &
    +                                 flop=flop)
    +      END SUBROUTINE dbcsr_multiply_c
     
    diff --git a/develop/proc/dbcsr_multiply_c~2.html b/develop/proc/dbcsr_multiply_c~2.html index 9039bd66682..b279a11c722 100644 --- a/develop/proc/dbcsr_multiply_c~2.html +++ b/develop/proc/dbcsr_multiply_c~2.html @@ -79,15 +79,15 @@

    dbcsr_multiply_c
  • - Source File + Source File
  • @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,8 +203,8 @@

    Arguments

    @@ -248,8 +248,8 @@

    Arguments

    @@ -278,7 +278,7 @@

    Arguments

    @@ -293,7 +293,7 @@

    Arguments

    @@ -308,7 +308,7 @@

    Arguments

    @@ -323,7 +323,7 @@

    Arguments

    @@ -338,7 +338,7 @@

    Arguments

    @@ -353,7 +353,7 @@

    Arguments

    @@ -368,7 +368,7 @@

    Arguments

    @@ -383,7 +383,7 @@

    Arguments

    @@ -413,29 +413,29 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_multiply_c (transa, transb, &
    -                                               alpha, matrix_a, matrix_b, beta, matrix_c, &
    -                                               first_row, last_row, first_column, last_column, first_k, last_k, &
    -                                               retain_sparsity, filter_eps, flop)
    -         CHARACTER(LEN=1), INTENT(IN)             :: transa, transb
    -         COMPLEX(kind=real_4), INTENT(IN)                      :: alpha
    -         TYPE(dbcsr_type), INTENT(IN)             :: matrix_a, matrix_b
    -         COMPLEX(kind=real_4), INTENT(IN)                      :: beta
    -         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix_c
    -         INTEGER, INTENT(IN), OPTIONAL            :: first_row, last_row, &
    -                                                     first_column, last_column, &
    -                                                     first_k, last_k
    -         LOGICAL, INTENT(IN), OPTIONAL            :: retain_sparsity
    -         REAL(kind=real_8), INTENT(IN), OPTIONAL :: filter_eps
    -         INTEGER(int_8), INTENT(OUT), OPTIONAL    :: flop
    +    
       SUBROUTINE dbcsr_multiply_c(transa, transb, &
    +                               alpha, matrix_a, matrix_b, beta, matrix_c, &
    +                               first_row, last_row, first_column, last_column, first_k, last_k, &
    +                               retain_sparsity, filter_eps, &
    +                               flop)
    +      CHARACTER(LEN=1), INTENT(IN)                       :: transa, transb
    +      COMPLEX(KIND=real_4), INTENT(IN)                   :: alpha
    +      TYPE(dbcsr_type), INTENT(IN)                       :: matrix_a, matrix_b
    +      COMPLEX(KIND=real_4), INTENT(IN)                   :: beta
    +      TYPE(dbcsr_type), INTENT(INOUT)                    :: matrix_c
    +      INTEGER, INTENT(IN), OPTIONAL                      :: first_row, last_row, first_column, &
    +                                                            last_column, first_k, last_k
    +      LOGICAL, INTENT(IN), OPTIONAL                      :: retain_sparsity
    +      REAL(KIND=real_8), INTENT(IN), OPTIONAL            :: filter_eps
    +      INTEGER(KIND=int_8), INTENT(OUT), OPTIONAL         :: flop
     
    -         CALL dbcsr_multiply_prv(transa, transb, &
    -                                 alpha, matrix_a%prv, matrix_b%prv, beta, matrix_c%prv, &
    -                                 first_row, last_row, first_column, last_column, first_k, last_k, &
    -                                 retain_sparsity, &
    -                                 filter_eps=filter_eps, &
    -                                 flop=flop)
    -      END SUBROUTINE dbcsr_multiply_c
    +      CALL dbcsr_multiply_generic(transa, transb, &
    +                                  dbcsr_scalar(alpha), matrix_a, matrix_b, dbcsr_scalar(beta), matrix_c, &
    +                                  first_row, last_row, first_column, last_column, first_k, last_k, &
    +                                  retain_sparsity, &
    +                                  filter_eps=filter_eps, &
    +                                  flop=flop)
    +   END SUBROUTINE dbcsr_multiply_c
     
    diff --git a/develop/proc/dbcsr_multiply_d.html b/develop/proc/dbcsr_multiply_d.html index ecb41f1648c..ec07d6f5cfb 100644 --- a/develop/proc/dbcsr_multiply_d.html +++ b/develop/proc/dbcsr_multiply_d.html @@ -74,20 +74,20 @@

    dbcsr_multiply_d
  • 18 statements + title=" 0.0% of total for procedures.">12 statements
  • - Source File + Source File
  • @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,8 +203,8 @@

    Arguments

    @@ -248,8 +248,8 @@

    Arguments

    @@ -278,7 +278,7 @@

    Arguments

    @@ -293,7 +293,7 @@

    Arguments

    @@ -308,7 +308,7 @@

    Arguments

    @@ -323,7 +323,7 @@

    Arguments

    @@ -353,7 +353,7 @@

    Arguments

    @@ -368,7 +368,7 @@

    Arguments

    @@ -383,7 +383,7 @@

    Arguments

    @@ -413,45 +413,29 @@

    Arguments

    Source Code

    -
       SUBROUTINE dbcsr_multiply_d(transa, transb, &
    -                               alpha, matrix_a, matrix_b, beta, matrix_c, &
    -                               first_row, last_row, first_column, last_column, first_k, last_k, &
    -                               retain_sparsity, filter_eps, &
    -                               flop)
    -      CHARACTER(LEN=1), INTENT(IN)                       :: transa, transb
    -      REAL(KIND=real_8), INTENT(IN)                      :: alpha
    -      TYPE(dbcsr_type), INTENT(IN)                       :: matrix_a, matrix_b
    -      REAL(KIND=real_8), INTENT(IN)                      :: beta
    -      TYPE(dbcsr_type), INTENT(INOUT)                    :: matrix_c
    -      INTEGER, INTENT(IN), OPTIONAL                      :: first_row, last_row, first_column, &
    -                                                            last_column, first_k, last_k
    -      LOGICAL, INTENT(IN), OPTIONAL                      :: retain_sparsity
    -      REAL(KIND=real_8), INTENT(IN), OPTIONAL            :: filter_eps
    -      INTEGER(KIND=int_8), INTENT(OUT), OPTIONAL         :: flop
    +    
          SUBROUTINE dbcsr_multiply_d (transa, transb, &
    +                                               alpha, matrix_a, matrix_b, beta, matrix_c, &
    +                                               first_row, last_row, first_column, last_column, first_k, last_k, &
    +                                               retain_sparsity, filter_eps, flop)
    +         CHARACTER(LEN=1), INTENT(IN)             :: transa, transb
    +         REAL(kind=real_8), INTENT(IN)                      :: alpha
    +         TYPE(dbcsr_type), INTENT(IN)             :: matrix_a, matrix_b
    +         REAL(kind=real_8), INTENT(IN)                      :: beta
    +         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix_c
    +         INTEGER, INTENT(IN), OPTIONAL            :: first_row, last_row, &
    +                                                     first_column, last_column, &
    +                                                     first_k, last_k
    +         LOGICAL, INTENT(IN), OPTIONAL            :: retain_sparsity
    +         REAL(kind=real_8), INTENT(IN), OPTIONAL :: filter_eps
    +         INTEGER(int_8), INTENT(OUT), OPTIONAL    :: flop
     
    -      IF (dbcsr_get_data_type(matrix_a) .EQ. dbcsr_type_real_4 .AND. &
    -          dbcsr_get_data_type(matrix_b) .EQ. dbcsr_type_real_4 .AND. &
    -          dbcsr_get_data_type(matrix_c) .EQ. dbcsr_type_real_4) THEN
    -         CALL dbcsr_multiply_generic(transa, transb, &
    -                                     dbcsr_scalar(REAL(alpha, real_4)), matrix_a, matrix_b, &
    -                                     dbcsr_scalar(REAL(beta, real_4)), matrix_c, &
    -                                     first_row, last_row, first_column, last_column, first_k, last_k, &
    -                                     retain_sparsity, &
    -                                     filter_eps=filter_eps, &
    -                                     flop=flop)
    -      ELSEIF (dbcsr_get_data_type(matrix_a) .EQ. dbcsr_type_real_8 .AND. &
    -              dbcsr_get_data_type(matrix_b) .EQ. dbcsr_type_real_8 .AND. &
    -              dbcsr_get_data_type(matrix_c) .EQ. dbcsr_type_real_8) THEN
    -         CALL dbcsr_multiply_generic(transa, transb, &
    -                                     dbcsr_scalar(alpha), matrix_a, matrix_b, dbcsr_scalar(beta), matrix_c, &
    -                                     first_row, last_row, first_column, last_column, first_k, last_k, &
    -                                     retain_sparsity, &
    -                                     filter_eps=filter_eps, &
    -                                     flop=flop)
    -      ELSE
    -         DBCSR_ABORT("This combination of data types NYI")
    -      END IF
    -   END SUBROUTINE dbcsr_multiply_d
    +         CALL dbcsr_multiply_prv(transa, transb, &
    +                                 alpha, matrix_a%prv, matrix_b%prv, beta, matrix_c%prv, &
    +                                 first_row, last_row, first_column, last_column, first_k, last_k, &
    +                                 retain_sparsity, &
    +                                 filter_eps=filter_eps, &
    +                                 flop=flop)
    +      END SUBROUTINE dbcsr_multiply_d
     
    diff --git a/develop/proc/dbcsr_multiply_d~2.html b/develop/proc/dbcsr_multiply_d~2.html index 3301fc03694..d28dfe414f4 100644 --- a/develop/proc/dbcsr_multiply_d~2.html +++ b/develop/proc/dbcsr_multiply_d~2.html @@ -74,20 +74,20 @@

    dbcsr_multiply_d
  • 12 statements + title=" 0.0% of total for procedures.">18 statements
  • - Source File + Source File
  • @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,8 +203,8 @@

    Arguments

    @@ -248,8 +248,8 @@

    Arguments

    @@ -278,7 +278,7 @@

    Arguments

    @@ -293,7 +293,7 @@

    Arguments

    @@ -308,7 +308,7 @@

    Arguments

    @@ -323,7 +323,7 @@

    Arguments

    @@ -338,7 +338,7 @@

    Arguments

    @@ -353,7 +353,7 @@

    Arguments

    @@ -368,7 +368,7 @@

    Arguments

    @@ -383,7 +383,7 @@

    Arguments

    @@ -413,29 +413,45 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_multiply_d (transa, transb, &
    -                                               alpha, matrix_a, matrix_b, beta, matrix_c, &
    -                                               first_row, last_row, first_column, last_column, first_k, last_k, &
    -                                               retain_sparsity, filter_eps, flop)
    -         CHARACTER(LEN=1), INTENT(IN)             :: transa, transb
    -         REAL(kind=real_8), INTENT(IN)                      :: alpha
    -         TYPE(dbcsr_type), INTENT(IN)             :: matrix_a, matrix_b
    -         REAL(kind=real_8), INTENT(IN)                      :: beta
    -         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix_c
    -         INTEGER, INTENT(IN), OPTIONAL            :: first_row, last_row, &
    -                                                     first_column, last_column, &
    -                                                     first_k, last_k
    -         LOGICAL, INTENT(IN), OPTIONAL            :: retain_sparsity
    -         REAL(kind=real_8), INTENT(IN), OPTIONAL :: filter_eps
    -         INTEGER(int_8), INTENT(OUT), OPTIONAL    :: flop
    +    
       SUBROUTINE dbcsr_multiply_d(transa, transb, &
    +                               alpha, matrix_a, matrix_b, beta, matrix_c, &
    +                               first_row, last_row, first_column, last_column, first_k, last_k, &
    +                               retain_sparsity, filter_eps, &
    +                               flop)
    +      CHARACTER(LEN=1), INTENT(IN)                       :: transa, transb
    +      REAL(KIND=real_8), INTENT(IN)                      :: alpha
    +      TYPE(dbcsr_type), INTENT(IN)                       :: matrix_a, matrix_b
    +      REAL(KIND=real_8), INTENT(IN)                      :: beta
    +      TYPE(dbcsr_type), INTENT(INOUT)                    :: matrix_c
    +      INTEGER, INTENT(IN), OPTIONAL                      :: first_row, last_row, first_column, &
    +                                                            last_column, first_k, last_k
    +      LOGICAL, INTENT(IN), OPTIONAL                      :: retain_sparsity
    +      REAL(KIND=real_8), INTENT(IN), OPTIONAL            :: filter_eps
    +      INTEGER(KIND=int_8), INTENT(OUT), OPTIONAL         :: flop
     
    -         CALL dbcsr_multiply_prv(transa, transb, &
    -                                 alpha, matrix_a%prv, matrix_b%prv, beta, matrix_c%prv, &
    -                                 first_row, last_row, first_column, last_column, first_k, last_k, &
    -                                 retain_sparsity, &
    -                                 filter_eps=filter_eps, &
    -                                 flop=flop)
    -      END SUBROUTINE dbcsr_multiply_d
    +      IF (dbcsr_get_data_type(matrix_a) .EQ. dbcsr_type_real_4 .AND. &
    +          dbcsr_get_data_type(matrix_b) .EQ. dbcsr_type_real_4 .AND. &
    +          dbcsr_get_data_type(matrix_c) .EQ. dbcsr_type_real_4) THEN
    +         CALL dbcsr_multiply_generic(transa, transb, &
    +                                     dbcsr_scalar(REAL(alpha, real_4)), matrix_a, matrix_b, &
    +                                     dbcsr_scalar(REAL(beta, real_4)), matrix_c, &
    +                                     first_row, last_row, first_column, last_column, first_k, last_k, &
    +                                     retain_sparsity, &
    +                                     filter_eps=filter_eps, &
    +                                     flop=flop)
    +      ELSEIF (dbcsr_get_data_type(matrix_a) .EQ. dbcsr_type_real_8 .AND. &
    +              dbcsr_get_data_type(matrix_b) .EQ. dbcsr_type_real_8 .AND. &
    +              dbcsr_get_data_type(matrix_c) .EQ. dbcsr_type_real_8) THEN
    +         CALL dbcsr_multiply_generic(transa, transb, &
    +                                     dbcsr_scalar(alpha), matrix_a, matrix_b, dbcsr_scalar(beta), matrix_c, &
    +                                     first_row, last_row, first_column, last_column, first_k, last_k, &
    +                                     retain_sparsity, &
    +                                     filter_eps=filter_eps, &
    +                                     flop=flop)
    +      ELSE
    +         DBCSR_ABORT("This combination of data types NYI")
    +      END IF
    +   END SUBROUTINE dbcsr_multiply_d
     
    diff --git a/develop/proc/dbcsr_multiply_generic.html b/develop/proc/dbcsr_multiply_generic.html index 996cfae410b..0b7c9299603 100644 --- a/develop/proc/dbcsr_multiply_generic.html +++ b/develop/proc/dbcsr_multiply_generic.html @@ -183,7 +183,7 @@

    Arguments

    @@ -201,7 +201,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    @@ -250,7 +250,7 @@

    Arguments

    @@ -266,7 +266,7 @@

    Arguments

    @@ -316,7 +316,7 @@

    Arguments

    @@ -356,7 +356,7 @@

    Arguments

    @@ -416,7 +416,7 @@

    Arguments

    @@ -431,7 +431,7 @@

    Arguments

    @@ -446,7 +446,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_multiply_print_statistics.html b/develop/proc/dbcsr_multiply_print_statistics.html index 320679adf44..3e13079dde0 100644 --- a/develop/proc/dbcsr_multiply_print_statistics.html +++ b/develop/proc/dbcsr_multiply_print_statistics.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_multiply_s.html b/develop/proc/dbcsr_multiply_s.html index 3868fb98afe..cc14c780429 100644 --- a/develop/proc/dbcsr_multiply_s.html +++ b/develop/proc/dbcsr_multiply_s.html @@ -79,15 +79,15 @@

    dbcsr_multiply_s
  • - Source File + Source File
  • @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,8 +203,8 @@

    Arguments

    @@ -248,8 +248,8 @@

    Arguments

    @@ -293,7 +293,7 @@

    Arguments

    @@ -308,7 +308,7 @@

    Arguments

    @@ -338,7 +338,7 @@

    Arguments

    @@ -353,7 +353,7 @@

    Arguments

    @@ -368,7 +368,7 @@

    Arguments

    @@ -383,7 +383,7 @@

    Arguments

    @@ -413,29 +413,29 @@

    Arguments

    Source Code

    -
       SUBROUTINE dbcsr_multiply_s(transa, transb, &
    -                               alpha, matrix_a, matrix_b, beta, matrix_c, &
    -                               first_row, last_row, first_column, last_column, first_k, last_k, &
    -                               retain_sparsity, filter_eps, &
    -                               flop)
    -      CHARACTER(LEN=1), INTENT(IN)                       :: transa, transb
    -      REAL(KIND=real_4), INTENT(IN)                      :: alpha
    -      TYPE(dbcsr_type), INTENT(IN)                       :: matrix_a, matrix_b
    -      REAL(KIND=real_4), INTENT(IN)                      :: beta
    -      TYPE(dbcsr_type), INTENT(INOUT)                    :: matrix_c
    -      INTEGER, INTENT(IN), OPTIONAL                      :: first_row, last_row, first_column, &
    -                                                            last_column, first_k, last_k
    -      LOGICAL, INTENT(IN), OPTIONAL                      :: retain_sparsity
    -      REAL(KIND=real_8), INTENT(IN), OPTIONAL            :: filter_eps
    -      INTEGER(KIND=int_8), INTENT(OUT), OPTIONAL         :: flop
    +    
          SUBROUTINE dbcsr_multiply_s (transa, transb, &
    +                                               alpha, matrix_a, matrix_b, beta, matrix_c, &
    +                                               first_row, last_row, first_column, last_column, first_k, last_k, &
    +                                               retain_sparsity, filter_eps, flop)
    +         CHARACTER(LEN=1), INTENT(IN)             :: transa, transb
    +         REAL(kind=real_4), INTENT(IN)                      :: alpha
    +         TYPE(dbcsr_type), INTENT(IN)             :: matrix_a, matrix_b
    +         REAL(kind=real_4), INTENT(IN)                      :: beta
    +         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix_c
    +         INTEGER, INTENT(IN), OPTIONAL            :: first_row, last_row, &
    +                                                     first_column, last_column, &
    +                                                     first_k, last_k
    +         LOGICAL, INTENT(IN), OPTIONAL            :: retain_sparsity
    +         REAL(kind=real_8), INTENT(IN), OPTIONAL :: filter_eps
    +         INTEGER(int_8), INTENT(OUT), OPTIONAL    :: flop
     
    -      CALL dbcsr_multiply_generic(transa, transb, &
    -                                  dbcsr_scalar(alpha), matrix_a, matrix_b, dbcsr_scalar(beta), matrix_c, &
    -                                  first_row, last_row, first_column, last_column, first_k, last_k, &
    -                                  retain_sparsity, &
    -                                  filter_eps=filter_eps, &
    -                                  flop=flop)
    -   END SUBROUTINE dbcsr_multiply_s
    +         CALL dbcsr_multiply_prv(transa, transb, &
    +                                 alpha, matrix_a%prv, matrix_b%prv, beta, matrix_c%prv, &
    +                                 first_row, last_row, first_column, last_column, first_k, last_k, &
    +                                 retain_sparsity, &
    +                                 filter_eps=filter_eps, &
    +                                 flop=flop)
    +      END SUBROUTINE dbcsr_multiply_s
     
    diff --git a/develop/proc/dbcsr_multiply_s~2.html b/develop/proc/dbcsr_multiply_s~2.html index 736e1e4574d..3b4607d0078 100644 --- a/develop/proc/dbcsr_multiply_s~2.html +++ b/develop/proc/dbcsr_multiply_s~2.html @@ -79,15 +79,15 @@

    dbcsr_multiply_s
  • - Source File + Source File
  • @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,8 +203,8 @@

    Arguments

    @@ -248,8 +248,8 @@

    Arguments

    @@ -278,7 +278,7 @@

    Arguments

    @@ -293,7 +293,7 @@

    Arguments

    @@ -308,7 +308,7 @@

    Arguments

    @@ -323,7 +323,7 @@

    Arguments

    @@ -338,7 +338,7 @@

    Arguments

    @@ -353,7 +353,7 @@

    Arguments

    @@ -368,7 +368,7 @@

    Arguments

    @@ -383,7 +383,7 @@

    Arguments

    @@ -413,29 +413,29 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_multiply_s (transa, transb, &
    -                                               alpha, matrix_a, matrix_b, beta, matrix_c, &
    -                                               first_row, last_row, first_column, last_column, first_k, last_k, &
    -                                               retain_sparsity, filter_eps, flop)
    -         CHARACTER(LEN=1), INTENT(IN)             :: transa, transb
    -         REAL(kind=real_4), INTENT(IN)                      :: alpha
    -         TYPE(dbcsr_type), INTENT(IN)             :: matrix_a, matrix_b
    -         REAL(kind=real_4), INTENT(IN)                      :: beta
    -         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix_c
    -         INTEGER, INTENT(IN), OPTIONAL            :: first_row, last_row, &
    -                                                     first_column, last_column, &
    -                                                     first_k, last_k
    -         LOGICAL, INTENT(IN), OPTIONAL            :: retain_sparsity
    -         REAL(kind=real_8), INTENT(IN), OPTIONAL :: filter_eps
    -         INTEGER(int_8), INTENT(OUT), OPTIONAL    :: flop
    +    
       SUBROUTINE dbcsr_multiply_s(transa, transb, &
    +                               alpha, matrix_a, matrix_b, beta, matrix_c, &
    +                               first_row, last_row, first_column, last_column, first_k, last_k, &
    +                               retain_sparsity, filter_eps, &
    +                               flop)
    +      CHARACTER(LEN=1), INTENT(IN)                       :: transa, transb
    +      REAL(KIND=real_4), INTENT(IN)                      :: alpha
    +      TYPE(dbcsr_type), INTENT(IN)                       :: matrix_a, matrix_b
    +      REAL(KIND=real_4), INTENT(IN)                      :: beta
    +      TYPE(dbcsr_type), INTENT(INOUT)                    :: matrix_c
    +      INTEGER, INTENT(IN), OPTIONAL                      :: first_row, last_row, first_column, &
    +                                                            last_column, first_k, last_k
    +      LOGICAL, INTENT(IN), OPTIONAL                      :: retain_sparsity
    +      REAL(KIND=real_8), INTENT(IN), OPTIONAL            :: filter_eps
    +      INTEGER(KIND=int_8), INTENT(OUT), OPTIONAL         :: flop
     
    -         CALL dbcsr_multiply_prv(transa, transb, &
    -                                 alpha, matrix_a%prv, matrix_b%prv, beta, matrix_c%prv, &
    -                                 first_row, last_row, first_column, last_column, first_k, last_k, &
    -                                 retain_sparsity, &
    -                                 filter_eps=filter_eps, &
    -                                 flop=flop)
    -      END SUBROUTINE dbcsr_multiply_s
    +      CALL dbcsr_multiply_generic(transa, transb, &
    +                                  dbcsr_scalar(alpha), matrix_a, matrix_b, dbcsr_scalar(beta), matrix_c, &
    +                                  first_row, last_row, first_column, last_column, first_k, last_k, &
    +                                  retain_sparsity, &
    +                                  filter_eps=filter_eps, &
    +                                  flop=flop)
    +   END SUBROUTINE dbcsr_multiply_s
     
    diff --git a/develop/proc/dbcsr_multiply_z.html b/develop/proc/dbcsr_multiply_z.html index 5bef079f2c0..5c61da20b8f 100644 --- a/develop/proc/dbcsr_multiply_z.html +++ b/develop/proc/dbcsr_multiply_z.html @@ -79,15 +79,15 @@

    dbcsr_multiply_z
  • - Source File + Source File
  • @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,8 +203,8 @@

    Arguments

    @@ -248,8 +248,8 @@

    Arguments

    @@ -278,7 +278,7 @@

    Arguments

    @@ -293,7 +293,7 @@

    Arguments

    @@ -308,7 +308,7 @@

    Arguments

    @@ -323,7 +323,7 @@

    Arguments

    @@ -353,7 +353,7 @@

    Arguments

    @@ -368,7 +368,7 @@

    Arguments

    @@ -383,7 +383,7 @@

    Arguments

    @@ -413,29 +413,29 @@

    Arguments

    Source Code

    -
       SUBROUTINE dbcsr_multiply_z(transa, transb, &
    -                               alpha, matrix_a, matrix_b, beta, matrix_c, &
    -                               first_row, last_row, first_column, last_column, first_k, last_k, &
    -                               retain_sparsity, filter_eps, &
    -                               flop)
    -      CHARACTER(LEN=1), INTENT(IN)                       :: transa, transb
    -      COMPLEX(KIND=real_8), INTENT(IN)                   :: alpha
    -      TYPE(dbcsr_type), INTENT(IN)                       :: matrix_a, matrix_b
    -      COMPLEX(KIND=real_8), INTENT(IN)                   :: beta
    -      TYPE(dbcsr_type), INTENT(INOUT)                    :: matrix_c
    -      INTEGER, INTENT(IN), OPTIONAL                      :: first_row, last_row, first_column, &
    -                                                            last_column, first_k, last_k
    -      LOGICAL, INTENT(IN), OPTIONAL                      :: retain_sparsity
    -      REAL(KIND=real_8), INTENT(IN), OPTIONAL            :: filter_eps
    -      INTEGER(KIND=int_8), INTENT(OUT), OPTIONAL         :: flop
    +    
          SUBROUTINE dbcsr_multiply_z (transa, transb, &
    +                                               alpha, matrix_a, matrix_b, beta, matrix_c, &
    +                                               first_row, last_row, first_column, last_column, first_k, last_k, &
    +                                               retain_sparsity, filter_eps, flop)
    +         CHARACTER(LEN=1), INTENT(IN)             :: transa, transb
    +         COMPLEX(kind=real_8), INTENT(IN)                      :: alpha
    +         TYPE(dbcsr_type), INTENT(IN)             :: matrix_a, matrix_b
    +         COMPLEX(kind=real_8), INTENT(IN)                      :: beta
    +         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix_c
    +         INTEGER, INTENT(IN), OPTIONAL            :: first_row, last_row, &
    +                                                     first_column, last_column, &
    +                                                     first_k, last_k
    +         LOGICAL, INTENT(IN), OPTIONAL            :: retain_sparsity
    +         REAL(kind=real_8), INTENT(IN), OPTIONAL :: filter_eps
    +         INTEGER(int_8), INTENT(OUT), OPTIONAL    :: flop
     
    -      CALL dbcsr_multiply_generic(transa, transb, &
    -                                  dbcsr_scalar(alpha), matrix_a, matrix_b, dbcsr_scalar(beta), matrix_c, &
    -                                  first_row, last_row, first_column, last_column, first_k, last_k, &
    -                                  retain_sparsity, &
    -                                  filter_eps=filter_eps, &
    -                                  flop=flop)
    -   END SUBROUTINE dbcsr_multiply_z
    +         CALL dbcsr_multiply_prv(transa, transb, &
    +                                 alpha, matrix_a%prv, matrix_b%prv, beta, matrix_c%prv, &
    +                                 first_row, last_row, first_column, last_column, first_k, last_k, &
    +                                 retain_sparsity, &
    +                                 filter_eps=filter_eps, &
    +                                 flop=flop)
    +      END SUBROUTINE dbcsr_multiply_z
     
    diff --git a/develop/proc/dbcsr_multiply_z~2.html b/develop/proc/dbcsr_multiply_z~2.html index 2a57c858992..cfa45d88ec9 100644 --- a/develop/proc/dbcsr_multiply_z~2.html +++ b/develop/proc/dbcsr_multiply_z~2.html @@ -79,15 +79,15 @@

    dbcsr_multiply_z
  • - Source File + Source File
  • @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,8 +203,8 @@

    Arguments

    @@ -248,8 +248,8 @@

    Arguments

    @@ -278,7 +278,7 @@

    Arguments

    @@ -293,7 +293,7 @@

    Arguments

    @@ -308,7 +308,7 @@

    Arguments

    @@ -323,7 +323,7 @@

    Arguments

    @@ -338,7 +338,7 @@

    Arguments

    @@ -353,7 +353,7 @@

    Arguments

    @@ -368,7 +368,7 @@

    Arguments

    @@ -383,7 +383,7 @@

    Arguments

    @@ -413,29 +413,29 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_multiply_z (transa, transb, &
    -                                               alpha, matrix_a, matrix_b, beta, matrix_c, &
    -                                               first_row, last_row, first_column, last_column, first_k, last_k, &
    -                                               retain_sparsity, filter_eps, flop)
    -         CHARACTER(LEN=1), INTENT(IN)             :: transa, transb
    -         COMPLEX(kind=real_8), INTENT(IN)                      :: alpha
    -         TYPE(dbcsr_type), INTENT(IN)             :: matrix_a, matrix_b
    -         COMPLEX(kind=real_8), INTENT(IN)                      :: beta
    -         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix_c
    -         INTEGER, INTENT(IN), OPTIONAL            :: first_row, last_row, &
    -                                                     first_column, last_column, &
    -                                                     first_k, last_k
    -         LOGICAL, INTENT(IN), OPTIONAL            :: retain_sparsity
    -         REAL(kind=real_8), INTENT(IN), OPTIONAL :: filter_eps
    -         INTEGER(int_8), INTENT(OUT), OPTIONAL    :: flop
    +    
       SUBROUTINE dbcsr_multiply_z(transa, transb, &
    +                               alpha, matrix_a, matrix_b, beta, matrix_c, &
    +                               first_row, last_row, first_column, last_column, first_k, last_k, &
    +                               retain_sparsity, filter_eps, &
    +                               flop)
    +      CHARACTER(LEN=1), INTENT(IN)                       :: transa, transb
    +      COMPLEX(KIND=real_8), INTENT(IN)                   :: alpha
    +      TYPE(dbcsr_type), INTENT(IN)                       :: matrix_a, matrix_b
    +      COMPLEX(KIND=real_8), INTENT(IN)                   :: beta
    +      TYPE(dbcsr_type), INTENT(INOUT)                    :: matrix_c
    +      INTEGER, INTENT(IN), OPTIONAL                      :: first_row, last_row, first_column, &
    +                                                            last_column, first_k, last_k
    +      LOGICAL, INTENT(IN), OPTIONAL                      :: retain_sparsity
    +      REAL(KIND=real_8), INTENT(IN), OPTIONAL            :: filter_eps
    +      INTEGER(KIND=int_8), INTENT(OUT), OPTIONAL         :: flop
     
    -         CALL dbcsr_multiply_prv(transa, transb, &
    -                                 alpha, matrix_a%prv, matrix_b%prv, beta, matrix_c%prv, &
    -                                 first_row, last_row, first_column, last_column, first_k, last_k, &
    -                                 retain_sparsity, &
    -                                 filter_eps=filter_eps, &
    -                                 flop=flop)
    -      END SUBROUTINE dbcsr_multiply_z
    +      CALL dbcsr_multiply_generic(transa, transb, &
    +                                  dbcsr_scalar(alpha), matrix_a, matrix_b, dbcsr_scalar(beta), matrix_c, &
    +                                  first_row, last_row, first_column, last_column, first_k, last_k, &
    +                                  retain_sparsity, &
    +                                  filter_eps=filter_eps, &
    +                                  flop=flop)
    +   END SUBROUTINE dbcsr_multiply_z
     
    diff --git a/develop/proc/dbcsr_mutable_new.html b/develop/proc/dbcsr_mutable_new.html index bbadbe616e3..8169cb6c349 100644 --- a/develop/proc/dbcsr_mutable_new.html +++ b/develop/proc/dbcsr_mutable_new.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_name.html b/develop/proc/dbcsr_name.html index 8700fbeefa7..02f8928dca7 100644 --- a/develop/proc/dbcsr_name.html +++ b/develop/proc/dbcsr_name.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + character(len=default_string_length)

    diff --git a/develop/proc/dbcsr_nblkcols_local.html b/develop/proc/dbcsr_nblkcols_local.html index 5597e1639c9..97f69606da5 100644 --- a/develop/proc/dbcsr_nblkcols_local.html +++ b/develop/proc/dbcsr_nblkcols_local.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_nblkcols_local~2.html b/develop/proc/dbcsr_nblkcols_local~2.html index ae4e471e38f..dd5f3c17a57 100644 --- a/develop/proc/dbcsr_nblkcols_local~2.html +++ b/develop/proc/dbcsr_nblkcols_local~2.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_nblkcols_total.html b/develop/proc/dbcsr_nblkcols_total.html index 18fa30eb21f..fabb635b174 100644 --- a/develop/proc/dbcsr_nblkcols_total.html +++ b/develop/proc/dbcsr_nblkcols_total.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_nblkcols_total~2.html b/develop/proc/dbcsr_nblkcols_total~2.html index 75c889b93f3..1babe87bb1e 100644 --- a/develop/proc/dbcsr_nblkcols_total~2.html +++ b/develop/proc/dbcsr_nblkcols_total~2.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_nblkrows_local.html b/develop/proc/dbcsr_nblkrows_local.html index 32085411cca..fc89e0da724 100644 --- a/develop/proc/dbcsr_nblkrows_local.html +++ b/develop/proc/dbcsr_nblkrows_local.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_nblkrows_local~2.html b/develop/proc/dbcsr_nblkrows_local~2.html index 0b198c5708b..1129b77512d 100644 --- a/develop/proc/dbcsr_nblkrows_local~2.html +++ b/develop/proc/dbcsr_nblkrows_local~2.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_nblkrows_total.html b/develop/proc/dbcsr_nblkrows_total.html index bcf742d808a..c7b9269c904 100644 --- a/develop/proc/dbcsr_nblkrows_total.html +++ b/develop/proc/dbcsr_nblkrows_total.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_nblkrows_total~2.html b/develop/proc/dbcsr_nblkrows_total~2.html index b56024663ff..5ab292e08c4 100644 --- a/develop/proc/dbcsr_nblkrows_total~2.html +++ b/develop/proc/dbcsr_nblkrows_total~2.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_new_image_dist.html b/develop/proc/dbcsr_new_image_dist.html index 9262e83d66b..f5aabc5d91f 100644 --- a/develop/proc/dbcsr_new_image_dist.html +++ b/develop/proc/dbcsr_new_image_dist.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_new_transposed.html b/develop/proc/dbcsr_new_transposed.html index e45055999f2..5d32e6959d1 100644 --- a/develop/proc/dbcsr_new_transposed.html +++ b/develop/proc/dbcsr_new_transposed.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -211,7 +211,7 @@

    Arguments

    @@ -229,7 +229,7 @@

    Arguments

    @@ -265,7 +265,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_nfullcols_local.html b/develop/proc/dbcsr_nfullcols_local.html index a413c71a2ed..8e2623447fd 100644 --- a/develop/proc/dbcsr_nfullcols_local.html +++ b/develop/proc/dbcsr_nfullcols_local.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_nfullcols_total.html b/develop/proc/dbcsr_nfullcols_total.html index 7283e0d5deb..987d6d95818 100644 --- a/develop/proc/dbcsr_nfullcols_total.html +++ b/develop/proc/dbcsr_nfullcols_total.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_nfullcols_total~2.html b/develop/proc/dbcsr_nfullcols_total~2.html index ead6ec5ce92..19c2196516b 100644 --- a/develop/proc/dbcsr_nfullcols_total~2.html +++ b/develop/proc/dbcsr_nfullcols_total~2.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_nfullrows_local.html b/develop/proc/dbcsr_nfullrows_local.html index 8d4ed6fd351..79c3e28cc97 100644 --- a/develop/proc/dbcsr_nfullrows_local.html +++ b/develop/proc/dbcsr_nfullrows_local.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_nfullrows_total.html b/develop/proc/dbcsr_nfullrows_total.html index edf2ea09100..f503d7069d3 100644 --- a/develop/proc/dbcsr_nfullrows_total.html +++ b/develop/proc/dbcsr_nfullrows_total.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_nfullrows_total~2.html b/develop/proc/dbcsr_nfullrows_total~2.html index 729b8b0a80b..f5908b5f749 100644 --- a/develop/proc/dbcsr_nfullrows_total~2.html +++ b/develop/proc/dbcsr_nfullrows_total~2.html @@ -158,7 +158,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_norm_r8_vec.html b/develop/proc/dbcsr_norm_r8_vec.html index 98cdfcb9fe7..9a734f9d88a 100644 --- a/develop/proc/dbcsr_norm_r8_vec.html +++ b/develop/proc/dbcsr_norm_r8_vec.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_norm_r8_vec~2.html b/develop/proc/dbcsr_norm_r8_vec~2.html index 9ccdbaddf8a..afead8f8606 100644 --- a/develop/proc/dbcsr_norm_r8_vec~2.html +++ b/develop/proc/dbcsr_norm_r8_vec~2.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_norm_scalar.html b/develop/proc/dbcsr_norm_scalar.html index f70bb06eec1..dce0b81ed7c 100644 --- a/develop/proc/dbcsr_norm_scalar.html +++ b/develop/proc/dbcsr_norm_scalar.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_norm_scalar~2.html b/develop/proc/dbcsr_norm_scalar~2.html index edbf9d53aca..2b31f0572a1 100644 --- a/develop/proc/dbcsr_norm_scalar~2.html +++ b/develop/proc/dbcsr_norm_scalar~2.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_norm_vec.html b/develop/proc/dbcsr_norm_vec.html index 6569db167e9..71a73a9c506 100644 --- a/develop/proc/dbcsr_norm_vec.html +++ b/develop/proc/dbcsr_norm_vec.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_pack_meta.html b/develop/proc/dbcsr_pack_meta.html index fe3d5462ca3..8821c01a1f4 100644 --- a/develop/proc/dbcsr_pack_meta.html +++ b/develop/proc/dbcsr_pack_meta.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_print.html b/develop/proc/dbcsr_print.html index b5d5e76e791..443decc99f0 100644 --- a/develop/proc/dbcsr_print.html +++ b/develop/proc/dbcsr_print.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_print_block_sum.html b/develop/proc/dbcsr_print_block_sum.html index 8e479f9b8ff..26205a9da14 100644 --- a/develop/proc/dbcsr_print_block_sum.html +++ b/develop/proc/dbcsr_print_block_sum.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_print_block_sum~2.html b/develop/proc/dbcsr_print_block_sum~2.html index 77b2ce8fa56..023c39e2959 100644 --- a/develop/proc/dbcsr_print_block_sum~2.html +++ b/develop/proc/dbcsr_print_block_sum~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_print_config.html b/develop/proc/dbcsr_print_config.html index 9a83f28f999..0a7d5bf23e8 100644 --- a/develop/proc/dbcsr_print_config.html +++ b/develop/proc/dbcsr_print_config.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_print_statistics~2.html b/develop/proc/dbcsr_print_statistics~2.html index e7ac701cc47..f411df56269 100644 --- a/develop/proc/dbcsr_print_statistics~2.html +++ b/develop/proc/dbcsr_print_statistics~2.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_printmat_matlab_c.html b/develop/proc/dbcsr_printmat_matlab_c.html index 870ee1d35e0..43c1d72ea05 100644 --- a/develop/proc/dbcsr_printmat_matlab_c.html +++ b/develop/proc/dbcsr_printmat_matlab_c.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_printmat_matlab_d.html b/develop/proc/dbcsr_printmat_matlab_d.html index 36631e8d097..c4a286bff2a 100644 --- a/develop/proc/dbcsr_printmat_matlab_d.html +++ b/develop/proc/dbcsr_printmat_matlab_d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    @@ -254,7 +254,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_printmat_matlab_s.html b/develop/proc/dbcsr_printmat_matlab_s.html index 63b8c604e63..c26a92ce549 100644 --- a/develop/proc/dbcsr_printmat_matlab_s.html +++ b/develop/proc/dbcsr_printmat_matlab_s.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_printmat_matlab_z.html b/develop/proc/dbcsr_printmat_matlab_z.html index 965c700aee4..a15f351e800 100644 --- a/develop/proc/dbcsr_printmat_matlab_z.html +++ b/develop/proc/dbcsr_printmat_matlab_z.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_print~2.html b/develop/proc/dbcsr_print~2.html index 1176f44e7e3..1b6cb290a2f 100644 --- a/develop/proc/dbcsr_print~2.html +++ b/develop/proc/dbcsr_print~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_put_block2d_c.html b/develop/proc/dbcsr_put_block2d_c.html index d6a36995bfa..b77f058f608 100644 --- a/develop/proc/dbcsr_put_block2d_c.html +++ b/develop/proc/dbcsr_put_block2d_c.html @@ -74,20 +74,20 @@

    dbcsr_put_block2d_c
  • 13 statements + title=" 0.0% of total for procedures.">8 statements
  • - Source File + Source File
  • @@ -139,11 +139,10 @@

    Contents

    -

    private subroutine dbcsr_put_block2d_c(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale) +

    private subroutine dbcsr_put_block2d_c(matrix, row, col, block, summation, scale)

    -

    Put a 2-D block in a DBCSR matrix

    Arguments

    @@ -159,8 +158,8 @@

    Arguments

    @@ -184,13 +183,12 @@

    Arguments

    @@ -200,59 +198,27 @@

    Arguments

    - - - - - - - - - - - - - - - - @@ -261,29 +227,13 @@

    Arguments

    - - - - - - - - @@ -293,7 +243,7 @@

    Arguments

    @@ -313,33 +263,15 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_put_block2d_c (matrix, row, col, block, lb_row_col, transposed, &
    -                                                  summation, flop, scale)
    -     !! Put a 2-D block in a DBCSR matrix
    -
    -         TYPE(dbcsr_type), INTENT(INOUT)           :: matrix
    -        !! DBCSR matrix
    +    
          SUBROUTINE dbcsr_put_block2d_c (matrix, row, col, block, &
    +                                                  summation, scale)
    +         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix
              INTEGER, INTENT(IN)                      :: row, col
    -        !! the row
    -        !! the column
    -         COMPLEX(kind=real_4), DIMENSION(:, :), INTENT(IN), &
    -            CONTIGUOUS, TARGET                    :: block
    -        !! the block to put
    -         INTEGER, DIMENSION(2), OPTIONAL, INTENT(INOUT) :: lb_row_col
    -         LOGICAL, INTENT(IN), OPTIONAL            :: transposed, summation
    -        !! the block is transposed
    -        !! if block exists, then sum the new block to the old one instead of replacing it
    -         INTEGER(KIND=int_8), INTENT(INOUT), OPTIONAL :: flop
    +         COMPLEX(kind=real_4), DIMENSION(:, :), INTENT(IN)     :: block
    +         LOGICAL, INTENT(IN), OPTIONAL            :: summation
              COMPLEX(kind=real_4), INTENT(IN), OPTIONAL            :: scale
    -        !! scale the block being added
    -
    -         COMPLEX(kind=real_4), DIMENSION(:), POINTER           :: block_1d
    -
    -         NULLIFY (block_1d)
    -
    -         block_1d(1:SIZE(block)) => block
     
    -         CALL dbcsr_put_block(matrix, row, col, block_1d, lb_row_col, transposed, summation, flop, scale)
    +         CALL dbcsr_put_block_prv(matrix%prv, row, col, block, summation=summation, scale=scale)
           END SUBROUTINE dbcsr_put_block2d_c
     
    diff --git a/develop/proc/dbcsr_put_block2d_c~2.html b/develop/proc/dbcsr_put_block2d_c~2.html index d5b676d73af..c38bb5237ad 100644 --- a/develop/proc/dbcsr_put_block2d_c~2.html +++ b/develop/proc/dbcsr_put_block2d_c~2.html @@ -74,20 +74,20 @@

    dbcsr_put_block2d_c
  • 8 statements + title=" 0.0% of total for procedures.">13 statements
  • - Source File + Source File
  • @@ -139,10 +139,11 @@

    Contents

    -

    private subroutine dbcsr_put_block2d_c(matrix, row, col, block, summation, scale) +

    private subroutine dbcsr_put_block2d_c(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale)

    +

    Put a 2-D block in a DBCSR matrix

    Arguments

    @@ -158,8 +159,8 @@

    Arguments

    @@ -183,12 +184,13 @@

    Arguments

    @@ -198,27 +200,59 @@

    Arguments

    + + + + + + + + + + + + + + + + @@ -227,13 +261,29 @@

    Arguments

    + + + + + + + + @@ -243,7 +293,7 @@

    Arguments

    @@ -263,15 +313,33 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_put_block2d_c (matrix, row, col, block, &
    -                                                  summation, scale)
    -         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix
    +    
          SUBROUTINE dbcsr_put_block2d_c (matrix, row, col, block, lb_row_col, transposed, &
    +                                                  summation, flop, scale)
    +     !! Put a 2-D block in a DBCSR matrix
    +
    +         TYPE(dbcsr_type), INTENT(INOUT)           :: matrix
    +        !! DBCSR matrix
              INTEGER, INTENT(IN)                      :: row, col
    -         COMPLEX(kind=real_4), DIMENSION(:, :), INTENT(IN)     :: block
    -         LOGICAL, INTENT(IN), OPTIONAL            :: summation
    +        !! the row
    +        !! the column
    +         COMPLEX(kind=real_4), DIMENSION(:, :), INTENT(IN), &
    +            CONTIGUOUS, TARGET                    :: block
    +        !! the block to put
    +         INTEGER, DIMENSION(2), OPTIONAL, INTENT(INOUT) :: lb_row_col
    +         LOGICAL, INTENT(IN), OPTIONAL            :: transposed, summation
    +        !! the block is transposed
    +        !! if block exists, then sum the new block to the old one instead of replacing it
    +         INTEGER(KIND=int_8), INTENT(INOUT), OPTIONAL :: flop
              COMPLEX(kind=real_4), INTENT(IN), OPTIONAL            :: scale
    +        !! scale the block being added
    +
    +         COMPLEX(kind=real_4), DIMENSION(:), POINTER           :: block_1d
    +
    +         NULLIFY (block_1d)
    +
    +         block_1d(1:SIZE(block)) => block
     
    -         CALL dbcsr_put_block_prv(matrix%prv, row, col, block, summation=summation, scale=scale)
    +         CALL dbcsr_put_block(matrix, row, col, block_1d, lb_row_col, transposed, summation, flop, scale)
           END SUBROUTINE dbcsr_put_block2d_c
     
    diff --git a/develop/proc/dbcsr_put_block2d_d.html b/develop/proc/dbcsr_put_block2d_d.html index c6e021446cd..83ab0ffb376 100644 --- a/develop/proc/dbcsr_put_block2d_d.html +++ b/develop/proc/dbcsr_put_block2d_d.html @@ -74,20 +74,20 @@

    dbcsr_put_block2d_d
  • 13 statements + title=" 0.0% of total for procedures.">8 statements
  • - Source File + Source File
  • @@ -139,11 +139,10 @@

    Contents

    -

    private subroutine dbcsr_put_block2d_d(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale) +

    private subroutine dbcsr_put_block2d_d(matrix, row, col, block, summation, scale)

    -

    Put a 2-D block in a DBCSR matrix

    Arguments

    @@ -159,8 +158,8 @@

    Arguments

    @@ -184,13 +183,12 @@

    Arguments

    @@ -200,59 +198,27 @@

    Arguments

    - - - - - - - - - - - - - - - - @@ -261,29 +227,13 @@

    Arguments

    - - - - - - - - @@ -293,7 +243,7 @@

    Arguments

    @@ -313,33 +263,15 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_put_block2d_d (matrix, row, col, block, lb_row_col, transposed, &
    -                                                  summation, flop, scale)
    -     !! Put a 2-D block in a DBCSR matrix
    -
    -         TYPE(dbcsr_type), INTENT(INOUT)           :: matrix
    -        !! DBCSR matrix
    +    
          SUBROUTINE dbcsr_put_block2d_d (matrix, row, col, block, &
    +                                                  summation, scale)
    +         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix
              INTEGER, INTENT(IN)                      :: row, col
    -        !! the row
    -        !! the column
    -         REAL(kind=real_8), DIMENSION(:, :), INTENT(IN), &
    -            CONTIGUOUS, TARGET                    :: block
    -        !! the block to put
    -         INTEGER, DIMENSION(2), OPTIONAL, INTENT(INOUT) :: lb_row_col
    -         LOGICAL, INTENT(IN), OPTIONAL            :: transposed, summation
    -        !! the block is transposed
    -        !! if block exists, then sum the new block to the old one instead of replacing it
    -         INTEGER(KIND=int_8), INTENT(INOUT), OPTIONAL :: flop
    +         REAL(kind=real_8), DIMENSION(:, :), INTENT(IN)     :: block
    +         LOGICAL, INTENT(IN), OPTIONAL            :: summation
              REAL(kind=real_8), INTENT(IN), OPTIONAL            :: scale
    -        !! scale the block being added
    -
    -         REAL(kind=real_8), DIMENSION(:), POINTER           :: block_1d
    -
    -         NULLIFY (block_1d)
    -
    -         block_1d(1:SIZE(block)) => block
     
    -         CALL dbcsr_put_block(matrix, row, col, block_1d, lb_row_col, transposed, summation, flop, scale)
    +         CALL dbcsr_put_block_prv(matrix%prv, row, col, block, summation=summation, scale=scale)
           END SUBROUTINE dbcsr_put_block2d_d
     
    diff --git a/develop/proc/dbcsr_put_block2d_d~2.html b/develop/proc/dbcsr_put_block2d_d~2.html index db1e1112bea..15d0510e7ca 100644 --- a/develop/proc/dbcsr_put_block2d_d~2.html +++ b/develop/proc/dbcsr_put_block2d_d~2.html @@ -74,20 +74,20 @@

    dbcsr_put_block2d_d
  • 8 statements + title=" 0.0% of total for procedures.">13 statements
  • - Source File + Source File
  • @@ -139,10 +139,11 @@

    Contents

    -

    private subroutine dbcsr_put_block2d_d(matrix, row, col, block, summation, scale) +

    private subroutine dbcsr_put_block2d_d(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale)

    +

    Put a 2-D block in a DBCSR matrix

    Arguments

    @@ -158,8 +159,8 @@

    Arguments

    @@ -183,12 +184,13 @@

    Arguments

    @@ -198,27 +200,59 @@

    Arguments

    + + + + + + + + + + + + + + + + @@ -227,13 +261,29 @@

    Arguments

    + + + + + + + + @@ -243,7 +293,7 @@

    Arguments

    @@ -263,15 +313,33 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_put_block2d_d (matrix, row, col, block, &
    -                                                  summation, scale)
    -         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix
    +    
          SUBROUTINE dbcsr_put_block2d_d (matrix, row, col, block, lb_row_col, transposed, &
    +                                                  summation, flop, scale)
    +     !! Put a 2-D block in a DBCSR matrix
    +
    +         TYPE(dbcsr_type), INTENT(INOUT)           :: matrix
    +        !! DBCSR matrix
              INTEGER, INTENT(IN)                      :: row, col
    -         REAL(kind=real_8), DIMENSION(:, :), INTENT(IN)     :: block
    -         LOGICAL, INTENT(IN), OPTIONAL            :: summation
    +        !! the row
    +        !! the column
    +         REAL(kind=real_8), DIMENSION(:, :), INTENT(IN), &
    +            CONTIGUOUS, TARGET                    :: block
    +        !! the block to put
    +         INTEGER, DIMENSION(2), OPTIONAL, INTENT(INOUT) :: lb_row_col
    +         LOGICAL, INTENT(IN), OPTIONAL            :: transposed, summation
    +        !! the block is transposed
    +        !! if block exists, then sum the new block to the old one instead of replacing it
    +         INTEGER(KIND=int_8), INTENT(INOUT), OPTIONAL :: flop
              REAL(kind=real_8), INTENT(IN), OPTIONAL            :: scale
    +        !! scale the block being added
    +
    +         REAL(kind=real_8), DIMENSION(:), POINTER           :: block_1d
    +
    +         NULLIFY (block_1d)
    +
    +         block_1d(1:SIZE(block)) => block
     
    -         CALL dbcsr_put_block_prv(matrix%prv, row, col, block, summation=summation, scale=scale)
    +         CALL dbcsr_put_block(matrix, row, col, block_1d, lb_row_col, transposed, summation, flop, scale)
           END SUBROUTINE dbcsr_put_block2d_d
     
    diff --git a/develop/proc/dbcsr_put_block2d_s.html b/develop/proc/dbcsr_put_block2d_s.html index 7cd9435c5e7..db25ec1d6ab 100644 --- a/develop/proc/dbcsr_put_block2d_s.html +++ b/develop/proc/dbcsr_put_block2d_s.html @@ -74,20 +74,20 @@

    dbcsr_put_block2d_s
  • 13 statements + title=" 0.0% of total for procedures.">8 statements
  • - Source File + Source File
  • @@ -139,11 +139,10 @@

    Contents

    -

    private subroutine dbcsr_put_block2d_s(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale) +

    private subroutine dbcsr_put_block2d_s(matrix, row, col, block, summation, scale)

    -

    Put a 2-D block in a DBCSR matrix

    Arguments

    @@ -159,8 +158,8 @@

    Arguments

    @@ -184,13 +183,12 @@

    Arguments

    @@ -200,59 +198,27 @@

    Arguments

    - - - - - - - - - - - - - - - - @@ -261,29 +227,13 @@

    Arguments

    - - - - - - - - @@ -293,7 +243,7 @@

    Arguments

    @@ -313,33 +263,15 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_put_block2d_s (matrix, row, col, block, lb_row_col, transposed, &
    -                                                  summation, flop, scale)
    -     !! Put a 2-D block in a DBCSR matrix
    -
    -         TYPE(dbcsr_type), INTENT(INOUT)           :: matrix
    -        !! DBCSR matrix
    +    
          SUBROUTINE dbcsr_put_block2d_s (matrix, row, col, block, &
    +                                                  summation, scale)
    +         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix
              INTEGER, INTENT(IN)                      :: row, col
    -        !! the row
    -        !! the column
    -         REAL(kind=real_4), DIMENSION(:, :), INTENT(IN), &
    -            CONTIGUOUS, TARGET                    :: block
    -        !! the block to put
    -         INTEGER, DIMENSION(2), OPTIONAL, INTENT(INOUT) :: lb_row_col
    -         LOGICAL, INTENT(IN), OPTIONAL            :: transposed, summation
    -        !! the block is transposed
    -        !! if block exists, then sum the new block to the old one instead of replacing it
    -         INTEGER(KIND=int_8), INTENT(INOUT), OPTIONAL :: flop
    +         REAL(kind=real_4), DIMENSION(:, :), INTENT(IN)     :: block
    +         LOGICAL, INTENT(IN), OPTIONAL            :: summation
              REAL(kind=real_4), INTENT(IN), OPTIONAL            :: scale
    -        !! scale the block being added
    -
    -         REAL(kind=real_4), DIMENSION(:), POINTER           :: block_1d
    -
    -         NULLIFY (block_1d)
    -
    -         block_1d(1:SIZE(block)) => block
     
    -         CALL dbcsr_put_block(matrix, row, col, block_1d, lb_row_col, transposed, summation, flop, scale)
    +         CALL dbcsr_put_block_prv(matrix%prv, row, col, block, summation=summation, scale=scale)
           END SUBROUTINE dbcsr_put_block2d_s
     
    diff --git a/develop/proc/dbcsr_put_block2d_s~2.html b/develop/proc/dbcsr_put_block2d_s~2.html index 643751ac24a..c4644d735f8 100644 --- a/develop/proc/dbcsr_put_block2d_s~2.html +++ b/develop/proc/dbcsr_put_block2d_s~2.html @@ -74,20 +74,20 @@

    dbcsr_put_block2d_s
  • 8 statements + title=" 0.0% of total for procedures.">13 statements
  • - Source File + Source File
  • @@ -139,10 +139,11 @@

    Contents

    -

    private subroutine dbcsr_put_block2d_s(matrix, row, col, block, summation, scale) +

    private subroutine dbcsr_put_block2d_s(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale)

    +

    Put a 2-D block in a DBCSR matrix

    Arguments

    @@ -158,8 +159,8 @@

    Arguments

    @@ -183,12 +184,13 @@

    Arguments

    @@ -198,27 +200,59 @@

    Arguments

    + + + + + + + + + + + + + + + + @@ -227,13 +261,29 @@

    Arguments

    + + + + + + + + @@ -243,7 +293,7 @@

    Arguments

    @@ -263,15 +313,33 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_put_block2d_s (matrix, row, col, block, &
    -                                                  summation, scale)
    -         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix
    +    
          SUBROUTINE dbcsr_put_block2d_s (matrix, row, col, block, lb_row_col, transposed, &
    +                                                  summation, flop, scale)
    +     !! Put a 2-D block in a DBCSR matrix
    +
    +         TYPE(dbcsr_type), INTENT(INOUT)           :: matrix
    +        !! DBCSR matrix
              INTEGER, INTENT(IN)                      :: row, col
    -         REAL(kind=real_4), DIMENSION(:, :), INTENT(IN)     :: block
    -         LOGICAL, INTENT(IN), OPTIONAL            :: summation
    +        !! the row
    +        !! the column
    +         REAL(kind=real_4), DIMENSION(:, :), INTENT(IN), &
    +            CONTIGUOUS, TARGET                    :: block
    +        !! the block to put
    +         INTEGER, DIMENSION(2), OPTIONAL, INTENT(INOUT) :: lb_row_col
    +         LOGICAL, INTENT(IN), OPTIONAL            :: transposed, summation
    +        !! the block is transposed
    +        !! if block exists, then sum the new block to the old one instead of replacing it
    +         INTEGER(KIND=int_8), INTENT(INOUT), OPTIONAL :: flop
              REAL(kind=real_4), INTENT(IN), OPTIONAL            :: scale
    +        !! scale the block being added
    +
    +         REAL(kind=real_4), DIMENSION(:), POINTER           :: block_1d
    +
    +         NULLIFY (block_1d)
    +
    +         block_1d(1:SIZE(block)) => block
     
    -         CALL dbcsr_put_block_prv(matrix%prv, row, col, block, summation=summation, scale=scale)
    +         CALL dbcsr_put_block(matrix, row, col, block_1d, lb_row_col, transposed, summation, flop, scale)
           END SUBROUTINE dbcsr_put_block2d_s
     
    diff --git a/develop/proc/dbcsr_put_block2d_z.html b/develop/proc/dbcsr_put_block2d_z.html index e732608d244..60123e38a56 100644 --- a/develop/proc/dbcsr_put_block2d_z.html +++ b/develop/proc/dbcsr_put_block2d_z.html @@ -74,20 +74,20 @@

    dbcsr_put_block2d_z
  • 13 statements + title=" 0.0% of total for procedures.">8 statements
  • - Source File + Source File
  • @@ -139,11 +139,10 @@

    Contents

    -

    private subroutine dbcsr_put_block2d_z(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale) +

    private subroutine dbcsr_put_block2d_z(matrix, row, col, block, summation, scale)

    -

    Put a 2-D block in a DBCSR matrix

    Arguments

    @@ -159,8 +158,8 @@

    Arguments

    @@ -184,13 +183,12 @@

    Arguments

    @@ -200,59 +198,27 @@

    Arguments

    - - - - - - - - - - - - - - - - @@ -261,29 +227,13 @@

    Arguments

    - - - - - - - - @@ -293,7 +243,7 @@

    Arguments

    @@ -313,33 +263,15 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_put_block2d_z (matrix, row, col, block, lb_row_col, transposed, &
    -                                                  summation, flop, scale)
    -     !! Put a 2-D block in a DBCSR matrix
    -
    -         TYPE(dbcsr_type), INTENT(INOUT)           :: matrix
    -        !! DBCSR matrix
    +    
          SUBROUTINE dbcsr_put_block2d_z (matrix, row, col, block, &
    +                                                  summation, scale)
    +         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix
              INTEGER, INTENT(IN)                      :: row, col
    -        !! the row
    -        !! the column
    -         COMPLEX(kind=real_8), DIMENSION(:, :), INTENT(IN), &
    -            CONTIGUOUS, TARGET                    :: block
    -        !! the block to put
    -         INTEGER, DIMENSION(2), OPTIONAL, INTENT(INOUT) :: lb_row_col
    -         LOGICAL, INTENT(IN), OPTIONAL            :: transposed, summation
    -        !! the block is transposed
    -        !! if block exists, then sum the new block to the old one instead of replacing it
    -         INTEGER(KIND=int_8), INTENT(INOUT), OPTIONAL :: flop
    +         COMPLEX(kind=real_8), DIMENSION(:, :), INTENT(IN)     :: block
    +         LOGICAL, INTENT(IN), OPTIONAL            :: summation
              COMPLEX(kind=real_8), INTENT(IN), OPTIONAL            :: scale
    -        !! scale the block being added
    -
    -         COMPLEX(kind=real_8), DIMENSION(:), POINTER           :: block_1d
    -
    -         NULLIFY (block_1d)
    -
    -         block_1d(1:SIZE(block)) => block
     
    -         CALL dbcsr_put_block(matrix, row, col, block_1d, lb_row_col, transposed, summation, flop, scale)
    +         CALL dbcsr_put_block_prv(matrix%prv, row, col, block, summation=summation, scale=scale)
           END SUBROUTINE dbcsr_put_block2d_z
     
    diff --git a/develop/proc/dbcsr_put_block2d_z~2.html b/develop/proc/dbcsr_put_block2d_z~2.html index 07fef1afddc..ccd3384386b 100644 --- a/develop/proc/dbcsr_put_block2d_z~2.html +++ b/develop/proc/dbcsr_put_block2d_z~2.html @@ -74,20 +74,20 @@

    dbcsr_put_block2d_z
  • 8 statements + title=" 0.0% of total for procedures.">13 statements
  • - Source File + Source File
  • @@ -139,10 +139,11 @@

    Contents

    -

    private subroutine dbcsr_put_block2d_z(matrix, row, col, block, summation, scale) +

    private subroutine dbcsr_put_block2d_z(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale)

    +

    Put a 2-D block in a DBCSR matrix

    Arguments

    @@ -158,8 +159,8 @@

    Arguments

    @@ -183,12 +184,13 @@

    Arguments

    @@ -198,27 +200,59 @@

    Arguments

    + + + + + + + + + + + + + + + + @@ -227,13 +261,29 @@

    Arguments

    + + + + + + + + @@ -243,7 +293,7 @@

    Arguments

    @@ -263,15 +313,33 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_put_block2d_z (matrix, row, col, block, &
    -                                                  summation, scale)
    -         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix
    +    
          SUBROUTINE dbcsr_put_block2d_z (matrix, row, col, block, lb_row_col, transposed, &
    +                                                  summation, flop, scale)
    +     !! Put a 2-D block in a DBCSR matrix
    +
    +         TYPE(dbcsr_type), INTENT(INOUT)           :: matrix
    +        !! DBCSR matrix
              INTEGER, INTENT(IN)                      :: row, col
    -         COMPLEX(kind=real_8), DIMENSION(:, :), INTENT(IN)     :: block
    -         LOGICAL, INTENT(IN), OPTIONAL            :: summation
    +        !! the row
    +        !! the column
    +         COMPLEX(kind=real_8), DIMENSION(:, :), INTENT(IN), &
    +            CONTIGUOUS, TARGET                    :: block
    +        !! the block to put
    +         INTEGER, DIMENSION(2), OPTIONAL, INTENT(INOUT) :: lb_row_col
    +         LOGICAL, INTENT(IN), OPTIONAL            :: transposed, summation
    +        !! the block is transposed
    +        !! if block exists, then sum the new block to the old one instead of replacing it
    +         INTEGER(KIND=int_8), INTENT(INOUT), OPTIONAL :: flop
              COMPLEX(kind=real_8), INTENT(IN), OPTIONAL            :: scale
    +        !! scale the block being added
    +
    +         COMPLEX(kind=real_8), DIMENSION(:), POINTER           :: block_1d
    +
    +         NULLIFY (block_1d)
    +
    +         block_1d(1:SIZE(block)) => block
     
    -         CALL dbcsr_put_block_prv(matrix%prv, row, col, block, summation=summation, scale=scale)
    +         CALL dbcsr_put_block(matrix, row, col, block_1d, lb_row_col, transposed, summation, flop, scale)
           END SUBROUTINE dbcsr_put_block2d_z
     
    diff --git a/develop/proc/dbcsr_put_block_area.html b/develop/proc/dbcsr_put_block_area.html index 0638127ab5a..fd424551cd1 100644 --- a/develop/proc/dbcsr_put_block_area.html +++ b/develop/proc/dbcsr_put_block_area.html @@ -162,7 +162,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    @@ -207,7 +207,7 @@

    Arguments

    @@ -237,7 +237,7 @@

    Arguments

    @@ -252,7 +252,7 @@

    Arguments

    @@ -267,7 +267,7 @@

    Arguments

    @@ -282,7 +282,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_put_block_c.html b/develop/proc/dbcsr_put_block_c.html index 03c89316dc2..14f6a52cd87 100644 --- a/develop/proc/dbcsr_put_block_c.html +++ b/develop/proc/dbcsr_put_block_c.html @@ -74,20 +74,20 @@

    dbcsr_put_block_c
  • 109 statements + title=" 0.0% of total for procedures.">8 statements
  • - Source File + Source File
  • @@ -139,13 +139,10 @@

    Contents

    -

    private subroutine dbcsr_put_block_c(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale) +

    private subroutine dbcsr_put_block_c(matrix, row, col, block, summation, scale)

    -

    Inserts a block in a dbcsr matrix. - If the block exists, the current data is overwritten.

    -

    @@@

    Arguments

    @@ -161,8 +158,8 @@

    Arguments

    @@ -186,13 +183,12 @@

    Arguments

    @@ -202,59 +198,27 @@

    Arguments

    - - - - - - - - - - - - - - - - @@ -263,29 +227,13 @@

    Arguments

    - - - - - - - - @@ -295,7 +243,7 @@

    Arguments

    @@ -315,167 +263,15 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_put_block_c (matrix, row, col, block, lb_row_col, transposed, &
    -                                                summation, flop, scale)
    -     !! Inserts a block in a dbcsr matrix.
    -     !! If the block exists, the current data is overwritten.
    -
    -         TYPE(dbcsr_type), INTENT(INOUT)           :: matrix
    -        !! DBCSR matrix
    +    
          SUBROUTINE dbcsr_put_block_c (matrix, row, col, block, &
    +                                                summation, scale)
    +         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix
              INTEGER, INTENT(IN)                      :: row, col
    -        !! the logical row
    -        !! the logical column
    -         COMPLEX(kind=real_4), DIMENSION(:), CONTIGUOUS, INTENT(IN) :: block
    -        !! the block to put
    -         INTEGER, DIMENSION(2), OPTIONAL, INTENT(INOUT) :: lb_row_col
    -         LOGICAL, INTENT(IN), OPTIONAL            :: transposed, summation
    -        !! the block is transposed
    -        !! if block exists, then sum the new block to the old one instead of replacing it
    -         INTEGER(KIND=int_8), INTENT(INOUT), OPTIONAL :: flop
    +         COMPLEX(kind=real_4), DIMENSION(:), INTENT(IN)        :: block
    +         LOGICAL, INTENT(IN), OPTIONAL            :: summation
              COMPLEX(kind=real_4), INTENT(IN), OPTIONAL            :: scale
    -        !! scale the OBblock being added
    -
    -         TYPE(btree_data_cp2d)          :: data_block, data_block2
    -         INTEGER                                  :: blk, col_size, &
    -                                                     nze, offset, &
    -                                                     row_size, blk_p, &
    -                                                     stored_row, stored_col, &
    -                                                     iw, nwms
    -         LOGICAL                                  :: found, tr, do_sum, tr_diff
    -         COMPLEX(kind=real_4), DIMENSION(:), POINTER         :: block_1d
    -         INTEGER(KIND=int_8)                      :: my_flop
    -
    -!   ---------------------------------------------------------------------------
    -         IF (PRESENT(transposed)) THEN
    -            tr = transposed
    -         ELSE
    -            tr = .FALSE.
    -         END IF
    -         IF (PRESENT(summation)) THEN
    -            do_sum = summation
    -         ELSE
    -            do_sum = .FALSE.
    -         END IF
    -         my_flop = 0
    -         row_size = dbcsr_blk_row_size(matrix, row)
    -         col_size = dbcsr_blk_column_size(matrix, col)
    -         IF (tr) CALL swap(row_size, col_size)
     
    -         stored_row = row; stored_col = col
    -         nze = row_size*col_size
    -         !
    -         IF (debug_mod .AND. SIZE(block) < nze) &
    -            DBCSR_ABORT("Invalid block dimensions")
    -         CALL dbcsr_get_stored_block_info(matrix, stored_row, stored_col, &
    -                                          found, blk, lb_row_col, offset)
    -         IF (found) THEN
    -            ! let's copy the block
    -            offset = ABS(offset)
    -            ! Fix the index if the new block's transpose flag is different
    -            ! from the old one.
    -            tr_diff = .FALSE.
    -            IF (matrix%blk_p(blk) .LT. 0 .NEQV. tr) THEN
    -               tr_diff = .TRUE.
    -               matrix%blk_p(blk) = -matrix%blk_p(blk)
    -            END IF
    -            block_1d => pointer_view(dbcsr_get_data_p( &
    -                                     matrix%data_area, CMPLX(0.0, 0.0, real_4)), offset, offset + nze - 1)
    -            IF (nze .GT. 0) THEN
    -               IF (do_sum) THEN
    -                  IF (tr_diff) &
    -                     block_1d = RESHAPE(TRANSPOSE(RESHAPE(block_1d, (/col_size, row_size/))), (/nze/))
    -                  IF (PRESENT(scale)) THEN
    -                     CALL caxpy(nze, scale, block(1:nze), 1, &
    -                                            block_1d, 1)
    -                  ELSE
    -                     CALL caxpy(nze, CMPLX(1.0, 0.0, real_4), block(1:nze), 1, &
    -                                            block_1d, 1)
    -                  END IF
    -                  my_flop = my_flop + nze*2
    -               ELSE
    -                  IF (PRESENT(scale)) THEN
    -                     CALL ccopy(nze, scale*block(1:nze), 1, &
    -                                            block_1d, 1)
    -                  ELSE
    -                     CALL ccopy(nze, block(1:nze), 1, &
    -                                            block_1d, 1)
    -                  END IF
    -               END IF
    -            END IF
    -         ELSE
    -        !!@@@
    -            !call dbcsr_assert (associated (matrix%wms), dbcsr_fatal_level,&
    -            !     dbcsr_caller_error, routineN, "Work matrices not prepared")
    -            IF (.NOT. ASSOCIATED(matrix%wms)) THEN
    -               CALL dbcsr_work_create(matrix, nblks_guess=1, &
    -                                      sizedata_guess=nze)
    -            END IF
    -            nwms = SIZE(matrix%wms)
    -            iw = 1
    -!$          IF (debug_mod .AND. nwms < omp_get_num_threads()) &
    -!$             DBCSR_ABORT("Number of work matrices not equal to number of threads")
    -!$          iw = omp_get_thread_num() + 1
    -            blk_p = matrix%wms(iw)%datasize + 1
    -            IF (.NOT. dbcsr_wm_use_mutable(matrix%wms(iw))) THEN
    -               IF (tr) blk_p = -blk_p
    -               CALL add_work_coordinate(matrix%wms(iw), row, col, blk_p)
    -               CALL dbcsr_data_ensure_size(matrix%wms(iw)%data_area, &
    -                                           matrix%wms(iw)%datasize + nze, &
    -                                           factor=default_resize_factor)
    -               IF (PRESENT(scale)) THEN
    -                  CALL dbcsr_data_set(matrix%wms(iw)%data_area, ABS(blk_p), &
    -                                      data_size=nze, src=scale*block, source_lb=1)
    -               ELSE
    -                  CALL dbcsr_data_set(matrix%wms(iw)%data_area, ABS(blk_p), &
    -                                      data_size=nze, src=block, source_lb=1)
    -               END IF
    -            ELSE
    -               ALLOCATE (data_block%p(row_size, col_size))
    -               IF (PRESENT(scale)) THEN
    -                  data_block%p(:, :) = scale*RESHAPE(block, (/row_size, col_size/))
    -               ELSE
    -                  data_block%p(:, :) = RESHAPE(block, (/row_size, col_size/))
    -               END IF
    -               data_block%tr = tr
    -               IF (.NOT. dbcsr_mutable_instantiated(matrix%wms(iw)%mutable)) THEN
    -                  CALL dbcsr_mutable_new(matrix%wms(iw)%mutable, &
    -                                         dbcsr_get_data_type(matrix))
    -               END IF
    -               IF (.NOT. do_sum) THEN
    -                  CALL btree_add( &
    -                     matrix%wms(iw)%mutable%m%btree_c, &
    -                     make_coordinate_tuple(stored_row, stored_col), &
    -                     data_block, found, data_block2, replace=.TRUE.)
    -                  IF (found) THEN
    -                     IF (.NOT. ASSOCIATED(data_block2%p)) &
    -                        DBCSR_WARN("Data was not present in block")
    -                     IF (ASSOCIATED(data_block2%p)) DEALLOCATE (data_block2%p)
    -                  END IF
    -               ELSE
    -                  CALL btree_add( &
    -                     matrix%wms(iw)%mutable%m%btree_c, &
    -                     make_coordinate_tuple(stored_row, stored_col), &
    -                     data_block, found, data_block2, replace=.FALSE.)
    -                  IF (found) THEN
    -                     IF (nze > 0) &
    -                        CALL caxpy(nze, CMPLX(1.0, 0.0, real_4), block, 1, &
    -                                               data_block2%p, 1)
    -                     IF (.NOT. ASSOCIATED(data_block%p)) &
    -                        DBCSR_WARN("Data was not present in block")
    -                     IF (ASSOCIATED(data_block%p)) DEALLOCATE (data_block%p)
    -                  END IF
    -               END IF
    -               IF (.NOT. found) THEN
    -                  matrix%wms(iw)%lastblk = matrix%wms(iw)%lastblk + 1
    -               END IF
    -            END IF
    -            IF (.NOT. found) THEN
    -               matrix%wms(iw)%datasize = matrix%wms(iw)%datasize + nze
    -            END IF
    -!$OMP ATOMIC WRITE
    -            matrix%valid = .FALSE.
    -         END IF
    -         IF (PRESENT(flop)) flop = flop + my_flop
    +         CALL dbcsr_put_block_prv(matrix%prv, row, col, block, summation=summation, scale=scale)
           END SUBROUTINE dbcsr_put_block_c
     
    diff --git a/develop/proc/dbcsr_put_block_c~2.html b/develop/proc/dbcsr_put_block_c~2.html index d0ca6617200..223030073b8 100644 --- a/develop/proc/dbcsr_put_block_c~2.html +++ b/develop/proc/dbcsr_put_block_c~2.html @@ -74,20 +74,20 @@

    dbcsr_put_block_c
  • 8 statements + title=" 0.2% of total for procedures.">109 statements
  • - Source File + Source File
  • @@ -139,10 +139,13 @@

    Contents

    -

    private subroutine dbcsr_put_block_c(matrix, row, col, block, summation, scale) +

    private subroutine dbcsr_put_block_c(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale)

    +

    Inserts a block in a dbcsr matrix. + If the block exists, the current data is overwritten.

    +

    @@@

    Arguments

    @@ -158,8 +161,8 @@

    Arguments

    @@ -183,12 +186,13 @@

    Arguments

    @@ -198,27 +202,59 @@

    Arguments

    + + + + + + + + + + + + + + + + @@ -227,13 +263,29 @@

    Arguments

    + + + + + + + + @@ -243,7 +295,7 @@

    Arguments

    @@ -263,15 +315,167 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_put_block_c (matrix, row, col, block, &
    -                                                summation, scale)
    -         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix
    +    
          SUBROUTINE dbcsr_put_block_c (matrix, row, col, block, lb_row_col, transposed, &
    +                                                summation, flop, scale)
    +     !! Inserts a block in a dbcsr matrix.
    +     !! If the block exists, the current data is overwritten.
    +
    +         TYPE(dbcsr_type), INTENT(INOUT)           :: matrix
    +        !! DBCSR matrix
              INTEGER, INTENT(IN)                      :: row, col
    -         COMPLEX(kind=real_4), DIMENSION(:), INTENT(IN)        :: block
    -         LOGICAL, INTENT(IN), OPTIONAL            :: summation
    +        !! the logical row
    +        !! the logical column
    +         COMPLEX(kind=real_4), DIMENSION(:), CONTIGUOUS, INTENT(IN) :: block
    +        !! the block to put
    +         INTEGER, DIMENSION(2), OPTIONAL, INTENT(INOUT) :: lb_row_col
    +         LOGICAL, INTENT(IN), OPTIONAL            :: transposed, summation
    +        !! the block is transposed
    +        !! if block exists, then sum the new block to the old one instead of replacing it
    +         INTEGER(KIND=int_8), INTENT(INOUT), OPTIONAL :: flop
              COMPLEX(kind=real_4), INTENT(IN), OPTIONAL            :: scale
    +        !! scale the OBblock being added
    +
    +         TYPE(btree_data_cp2d)          :: data_block, data_block2
    +         INTEGER                                  :: blk, col_size, &
    +                                                     nze, offset, &
    +                                                     row_size, blk_p, &
    +                                                     stored_row, stored_col, &
    +                                                     iw, nwms
    +         LOGICAL                                  :: found, tr, do_sum, tr_diff
    +         COMPLEX(kind=real_4), DIMENSION(:), POINTER         :: block_1d
    +         INTEGER(KIND=int_8)                      :: my_flop
    +
    +!   ---------------------------------------------------------------------------
    +         IF (PRESENT(transposed)) THEN
    +            tr = transposed
    +         ELSE
    +            tr = .FALSE.
    +         END IF
    +         IF (PRESENT(summation)) THEN
    +            do_sum = summation
    +         ELSE
    +            do_sum = .FALSE.
    +         END IF
    +         my_flop = 0
    +         row_size = dbcsr_blk_row_size(matrix, row)
    +         col_size = dbcsr_blk_column_size(matrix, col)
    +         IF (tr) CALL swap(row_size, col_size)
     
    -         CALL dbcsr_put_block_prv(matrix%prv, row, col, block, summation=summation, scale=scale)
    +         stored_row = row; stored_col = col
    +         nze = row_size*col_size
    +         !
    +         IF (debug_mod .AND. SIZE(block) < nze) &
    +            DBCSR_ABORT("Invalid block dimensions")
    +         CALL dbcsr_get_stored_block_info(matrix, stored_row, stored_col, &
    +                                          found, blk, lb_row_col, offset)
    +         IF (found) THEN
    +            ! let's copy the block
    +            offset = ABS(offset)
    +            ! Fix the index if the new block's transpose flag is different
    +            ! from the old one.
    +            tr_diff = .FALSE.
    +            IF (matrix%blk_p(blk) .LT. 0 .NEQV. tr) THEN
    +               tr_diff = .TRUE.
    +               matrix%blk_p(blk) = -matrix%blk_p(blk)
    +            END IF
    +            block_1d => pointer_view(dbcsr_get_data_p( &
    +                                     matrix%data_area, CMPLX(0.0, 0.0, real_4)), offset, offset + nze - 1)
    +            IF (nze .GT. 0) THEN
    +               IF (do_sum) THEN
    +                  IF (tr_diff) &
    +                     block_1d = RESHAPE(TRANSPOSE(RESHAPE(block_1d, (/col_size, row_size/))), (/nze/))
    +                  IF (PRESENT(scale)) THEN
    +                     CALL caxpy(nze, scale, block(1:nze), 1, &
    +                                            block_1d, 1)
    +                  ELSE
    +                     CALL caxpy(nze, CMPLX(1.0, 0.0, real_4), block(1:nze), 1, &
    +                                            block_1d, 1)
    +                  END IF
    +                  my_flop = my_flop + nze*2
    +               ELSE
    +                  IF (PRESENT(scale)) THEN
    +                     CALL ccopy(nze, scale*block(1:nze), 1, &
    +                                            block_1d, 1)
    +                  ELSE
    +                     CALL ccopy(nze, block(1:nze), 1, &
    +                                            block_1d, 1)
    +                  END IF
    +               END IF
    +            END IF
    +         ELSE
    +        !!@@@
    +            !call dbcsr_assert (associated (matrix%wms), dbcsr_fatal_level,&
    +            !     dbcsr_caller_error, routineN, "Work matrices not prepared")
    +            IF (.NOT. ASSOCIATED(matrix%wms)) THEN
    +               CALL dbcsr_work_create(matrix, nblks_guess=1, &
    +                                      sizedata_guess=nze)
    +            END IF
    +            nwms = SIZE(matrix%wms)
    +            iw = 1
    +!$          IF (debug_mod .AND. nwms < omp_get_num_threads()) &
    +!$             DBCSR_ABORT("Number of work matrices not equal to number of threads")
    +!$          iw = omp_get_thread_num() + 1
    +            blk_p = matrix%wms(iw)%datasize + 1
    +            IF (.NOT. dbcsr_wm_use_mutable(matrix%wms(iw))) THEN
    +               IF (tr) blk_p = -blk_p
    +               CALL add_work_coordinate(matrix%wms(iw), row, col, blk_p)
    +               CALL dbcsr_data_ensure_size(matrix%wms(iw)%data_area, &
    +                                           matrix%wms(iw)%datasize + nze, &
    +                                           factor=default_resize_factor)
    +               IF (PRESENT(scale)) THEN
    +                  CALL dbcsr_data_set(matrix%wms(iw)%data_area, ABS(blk_p), &
    +                                      data_size=nze, src=scale*block, source_lb=1)
    +               ELSE
    +                  CALL dbcsr_data_set(matrix%wms(iw)%data_area, ABS(blk_p), &
    +                                      data_size=nze, src=block, source_lb=1)
    +               END IF
    +            ELSE
    +               ALLOCATE (data_block%p(row_size, col_size))
    +               IF (PRESENT(scale)) THEN
    +                  data_block%p(:, :) = scale*RESHAPE(block, (/row_size, col_size/))
    +               ELSE
    +                  data_block%p(:, :) = RESHAPE(block, (/row_size, col_size/))
    +               END IF
    +               data_block%tr = tr
    +               IF (.NOT. dbcsr_mutable_instantiated(matrix%wms(iw)%mutable)) THEN
    +                  CALL dbcsr_mutable_new(matrix%wms(iw)%mutable, &
    +                                         dbcsr_get_data_type(matrix))
    +               END IF
    +               IF (.NOT. do_sum) THEN
    +                  CALL btree_add( &
    +                     matrix%wms(iw)%mutable%m%btree_c, &
    +                     make_coordinate_tuple(stored_row, stored_col), &
    +                     data_block, found, data_block2, replace=.TRUE.)
    +                  IF (found) THEN
    +                     IF (.NOT. ASSOCIATED(data_block2%p)) &
    +                        DBCSR_WARN("Data was not present in block")
    +                     IF (ASSOCIATED(data_block2%p)) DEALLOCATE (data_block2%p)
    +                  END IF
    +               ELSE
    +                  CALL btree_add( &
    +                     matrix%wms(iw)%mutable%m%btree_c, &
    +                     make_coordinate_tuple(stored_row, stored_col), &
    +                     data_block, found, data_block2, replace=.FALSE.)
    +                  IF (found) THEN
    +                     IF (nze > 0) &
    +                        CALL caxpy(nze, CMPLX(1.0, 0.0, real_4), block, 1, &
    +                                               data_block2%p, 1)
    +                     IF (.NOT. ASSOCIATED(data_block%p)) &
    +                        DBCSR_WARN("Data was not present in block")
    +                     IF (ASSOCIATED(data_block%p)) DEALLOCATE (data_block%p)
    +                  END IF
    +               END IF
    +               IF (.NOT. found) THEN
    +                  matrix%wms(iw)%lastblk = matrix%wms(iw)%lastblk + 1
    +               END IF
    +            END IF
    +            IF (.NOT. found) THEN
    +               matrix%wms(iw)%datasize = matrix%wms(iw)%datasize + nze
    +            END IF
    +!$OMP ATOMIC WRITE
    +            matrix%valid = .FALSE.
    +         END IF
    +         IF (PRESENT(flop)) flop = flop + my_flop
           END SUBROUTINE dbcsr_put_block_c
     
    diff --git a/develop/proc/dbcsr_put_block_d.html b/develop/proc/dbcsr_put_block_d.html index 70e7d969427..4d570793f7d 100644 --- a/develop/proc/dbcsr_put_block_d.html +++ b/develop/proc/dbcsr_put_block_d.html @@ -74,20 +74,20 @@

    dbcsr_put_block_d
  • 109 statements + title=" 0.0% of total for procedures.">8 statements
  • - Source File + Source File
  • @@ -139,13 +139,10 @@

    Contents

    -

    private subroutine dbcsr_put_block_d(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale) +

    private subroutine dbcsr_put_block_d(matrix, row, col, block, summation, scale)

    -

    Inserts a block in a dbcsr matrix. - If the block exists, the current data is overwritten.

    -

    @@@

    Arguments

    @@ -161,8 +158,8 @@

    Arguments

    @@ -186,13 +183,12 @@

    Arguments

    @@ -202,59 +198,27 @@

    Arguments

    - - - - - - - - - - - - - - - - @@ -263,29 +227,13 @@

    Arguments

    - - - - - - - - @@ -295,7 +243,7 @@

    Arguments

    @@ -315,167 +263,15 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_put_block_d (matrix, row, col, block, lb_row_col, transposed, &
    -                                                summation, flop, scale)
    -     !! Inserts a block in a dbcsr matrix.
    -     !! If the block exists, the current data is overwritten.
    -
    -         TYPE(dbcsr_type), INTENT(INOUT)           :: matrix
    -        !! DBCSR matrix
    +    
          SUBROUTINE dbcsr_put_block_d (matrix, row, col, block, &
    +                                                summation, scale)
    +         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix
              INTEGER, INTENT(IN)                      :: row, col
    -        !! the logical row
    -        !! the logical column
    -         REAL(kind=real_8), DIMENSION(:), CONTIGUOUS, INTENT(IN) :: block
    -        !! the block to put
    -         INTEGER, DIMENSION(2), OPTIONAL, INTENT(INOUT) :: lb_row_col
    -         LOGICAL, INTENT(IN), OPTIONAL            :: transposed, summation
    -        !! the block is transposed
    -        !! if block exists, then sum the new block to the old one instead of replacing it
    -         INTEGER(KIND=int_8), INTENT(INOUT), OPTIONAL :: flop
    +         REAL(kind=real_8), DIMENSION(:), INTENT(IN)        :: block
    +         LOGICAL, INTENT(IN), OPTIONAL            :: summation
              REAL(kind=real_8), INTENT(IN), OPTIONAL            :: scale
    -        !! scale the OBblock being added
    -
    -         TYPE(btree_data_dp2d)          :: data_block, data_block2
    -         INTEGER                                  :: blk, col_size, &
    -                                                     nze, offset, &
    -                                                     row_size, blk_p, &
    -                                                     stored_row, stored_col, &
    -                                                     iw, nwms
    -         LOGICAL                                  :: found, tr, do_sum, tr_diff
    -         REAL(kind=real_8), DIMENSION(:), POINTER         :: block_1d
    -         INTEGER(KIND=int_8)                      :: my_flop
    -
    -!   ---------------------------------------------------------------------------
    -         IF (PRESENT(transposed)) THEN
    -            tr = transposed
    -         ELSE
    -            tr = .FALSE.
    -         END IF
    -         IF (PRESENT(summation)) THEN
    -            do_sum = summation
    -         ELSE
    -            do_sum = .FALSE.
    -         END IF
    -         my_flop = 0
    -         row_size = dbcsr_blk_row_size(matrix, row)
    -         col_size = dbcsr_blk_column_size(matrix, col)
    -         IF (tr) CALL swap(row_size, col_size)
     
    -         stored_row = row; stored_col = col
    -         nze = row_size*col_size
    -         !
    -         IF (debug_mod .AND. SIZE(block) < nze) &
    -            DBCSR_ABORT("Invalid block dimensions")
    -         CALL dbcsr_get_stored_block_info(matrix, stored_row, stored_col, &
    -                                          found, blk, lb_row_col, offset)
    -         IF (found) THEN
    -            ! let's copy the block
    -            offset = ABS(offset)
    -            ! Fix the index if the new block's transpose flag is different
    -            ! from the old one.
    -            tr_diff = .FALSE.
    -            IF (matrix%blk_p(blk) .LT. 0 .NEQV. tr) THEN
    -               tr_diff = .TRUE.
    -               matrix%blk_p(blk) = -matrix%blk_p(blk)
    -            END IF
    -            block_1d => pointer_view(dbcsr_get_data_p( &
    -                                     matrix%data_area, 0.0_real_8), offset, offset + nze - 1)
    -            IF (nze .GT. 0) THEN
    -               IF (do_sum) THEN
    -                  IF (tr_diff) &
    -                     block_1d = RESHAPE(TRANSPOSE(RESHAPE(block_1d, (/col_size, row_size/))), (/nze/))
    -                  IF (PRESENT(scale)) THEN
    -                     CALL daxpy(nze, scale, block(1:nze), 1, &
    -                                            block_1d, 1)
    -                  ELSE
    -                     CALL daxpy(nze, 1.0_real_8, block(1:nze), 1, &
    -                                            block_1d, 1)
    -                  END IF
    -                  my_flop = my_flop + nze*2
    -               ELSE
    -                  IF (PRESENT(scale)) THEN
    -                     CALL dcopy(nze, scale*block(1:nze), 1, &
    -                                            block_1d, 1)
    -                  ELSE
    -                     CALL dcopy(nze, block(1:nze), 1, &
    -                                            block_1d, 1)
    -                  END IF
    -               END IF
    -            END IF
    -         ELSE
    -        !!@@@
    -            !call dbcsr_assert (associated (matrix%wms), dbcsr_fatal_level,&
    -            !     dbcsr_caller_error, routineN, "Work matrices not prepared")
    -            IF (.NOT. ASSOCIATED(matrix%wms)) THEN
    -               CALL dbcsr_work_create(matrix, nblks_guess=1, &
    -                                      sizedata_guess=nze)
    -            END IF
    -            nwms = SIZE(matrix%wms)
    -            iw = 1
    -!$          IF (debug_mod .AND. nwms < omp_get_num_threads()) &
    -!$             DBCSR_ABORT("Number of work matrices not equal to number of threads")
    -!$          iw = omp_get_thread_num() + 1
    -            blk_p = matrix%wms(iw)%datasize + 1
    -            IF (.NOT. dbcsr_wm_use_mutable(matrix%wms(iw))) THEN
    -               IF (tr) blk_p = -blk_p
    -               CALL add_work_coordinate(matrix%wms(iw), row, col, blk_p)
    -               CALL dbcsr_data_ensure_size(matrix%wms(iw)%data_area, &
    -                                           matrix%wms(iw)%datasize + nze, &
    -                                           factor=default_resize_factor)
    -               IF (PRESENT(scale)) THEN
    -                  CALL dbcsr_data_set(matrix%wms(iw)%data_area, ABS(blk_p), &
    -                                      data_size=nze, src=scale*block, source_lb=1)
    -               ELSE
    -                  CALL dbcsr_data_set(matrix%wms(iw)%data_area, ABS(blk_p), &
    -                                      data_size=nze, src=block, source_lb=1)
    -               END IF
    -            ELSE
    -               ALLOCATE (data_block%p(row_size, col_size))
    -               IF (PRESENT(scale)) THEN
    -                  data_block%p(:, :) = scale*RESHAPE(block, (/row_size, col_size/))
    -               ELSE
    -                  data_block%p(:, :) = RESHAPE(block, (/row_size, col_size/))
    -               END IF
    -               data_block%tr = tr
    -               IF (.NOT. dbcsr_mutable_instantiated(matrix%wms(iw)%mutable)) THEN
    -                  CALL dbcsr_mutable_new(matrix%wms(iw)%mutable, &
    -                                         dbcsr_get_data_type(matrix))
    -               END IF
    -               IF (.NOT. do_sum) THEN
    -                  CALL btree_add( &
    -                     matrix%wms(iw)%mutable%m%btree_d, &
    -                     make_coordinate_tuple(stored_row, stored_col), &
    -                     data_block, found, data_block2, replace=.TRUE.)
    -                  IF (found) THEN
    -                     IF (.NOT. ASSOCIATED(data_block2%p)) &
    -                        DBCSR_WARN("Data was not present in block")
    -                     IF (ASSOCIATED(data_block2%p)) DEALLOCATE (data_block2%p)
    -                  END IF
    -               ELSE
    -                  CALL btree_add( &
    -                     matrix%wms(iw)%mutable%m%btree_d, &
    -                     make_coordinate_tuple(stored_row, stored_col), &
    -                     data_block, found, data_block2, replace=.FALSE.)
    -                  IF (found) THEN
    -                     IF (nze > 0) &
    -                        CALL daxpy(nze, 1.0_real_8, block, 1, &
    -                                               data_block2%p, 1)
    -                     IF (.NOT. ASSOCIATED(data_block%p)) &
    -                        DBCSR_WARN("Data was not present in block")
    -                     IF (ASSOCIATED(data_block%p)) DEALLOCATE (data_block%p)
    -                  END IF
    -               END IF
    -               IF (.NOT. found) THEN
    -                  matrix%wms(iw)%lastblk = matrix%wms(iw)%lastblk + 1
    -               END IF
    -            END IF
    -            IF (.NOT. found) THEN
    -               matrix%wms(iw)%datasize = matrix%wms(iw)%datasize + nze
    -            END IF
    -!$OMP ATOMIC WRITE
    -            matrix%valid = .FALSE.
    -         END IF
    -         IF (PRESENT(flop)) flop = flop + my_flop
    +         CALL dbcsr_put_block_prv(matrix%prv, row, col, block, summation=summation, scale=scale)
           END SUBROUTINE dbcsr_put_block_d
     
    diff --git a/develop/proc/dbcsr_put_block_d~2.html b/develop/proc/dbcsr_put_block_d~2.html index b1b918d7acf..0ffc1ddee89 100644 --- a/develop/proc/dbcsr_put_block_d~2.html +++ b/develop/proc/dbcsr_put_block_d~2.html @@ -74,20 +74,20 @@

    dbcsr_put_block_d
  • 8 statements + title=" 0.2% of total for procedures.">109 statements
  • - Source File + Source File
  • @@ -139,10 +139,13 @@

    Contents

    -

    private subroutine dbcsr_put_block_d(matrix, row, col, block, summation, scale) +

    private subroutine dbcsr_put_block_d(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale)

    +

    Inserts a block in a dbcsr matrix. + If the block exists, the current data is overwritten.

    +

    @@@

    Arguments

    @@ -158,8 +161,8 @@

    Arguments

    @@ -183,12 +186,13 @@

    Arguments

    @@ -198,27 +202,59 @@

    Arguments

    + + + + + + + + + + + + + + + + @@ -227,13 +263,29 @@

    Arguments

    + + + + + + + + @@ -243,7 +295,7 @@

    Arguments

    @@ -263,15 +315,167 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_put_block_d (matrix, row, col, block, &
    -                                                summation, scale)
    -         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix
    +    
          SUBROUTINE dbcsr_put_block_d (matrix, row, col, block, lb_row_col, transposed, &
    +                                                summation, flop, scale)
    +     !! Inserts a block in a dbcsr matrix.
    +     !! If the block exists, the current data is overwritten.
    +
    +         TYPE(dbcsr_type), INTENT(INOUT)           :: matrix
    +        !! DBCSR matrix
              INTEGER, INTENT(IN)                      :: row, col
    -         REAL(kind=real_8), DIMENSION(:), INTENT(IN)        :: block
    -         LOGICAL, INTENT(IN), OPTIONAL            :: summation
    +        !! the logical row
    +        !! the logical column
    +         REAL(kind=real_8), DIMENSION(:), CONTIGUOUS, INTENT(IN) :: block
    +        !! the block to put
    +         INTEGER, DIMENSION(2), OPTIONAL, INTENT(INOUT) :: lb_row_col
    +         LOGICAL, INTENT(IN), OPTIONAL            :: transposed, summation
    +        !! the block is transposed
    +        !! if block exists, then sum the new block to the old one instead of replacing it
    +         INTEGER(KIND=int_8), INTENT(INOUT), OPTIONAL :: flop
              REAL(kind=real_8), INTENT(IN), OPTIONAL            :: scale
    +        !! scale the OBblock being added
    +
    +         TYPE(btree_data_dp2d)          :: data_block, data_block2
    +         INTEGER                                  :: blk, col_size, &
    +                                                     nze, offset, &
    +                                                     row_size, blk_p, &
    +                                                     stored_row, stored_col, &
    +                                                     iw, nwms
    +         LOGICAL                                  :: found, tr, do_sum, tr_diff
    +         REAL(kind=real_8), DIMENSION(:), POINTER         :: block_1d
    +         INTEGER(KIND=int_8)                      :: my_flop
    +
    +!   ---------------------------------------------------------------------------
    +         IF (PRESENT(transposed)) THEN
    +            tr = transposed
    +         ELSE
    +            tr = .FALSE.
    +         END IF
    +         IF (PRESENT(summation)) THEN
    +            do_sum = summation
    +         ELSE
    +            do_sum = .FALSE.
    +         END IF
    +         my_flop = 0
    +         row_size = dbcsr_blk_row_size(matrix, row)
    +         col_size = dbcsr_blk_column_size(matrix, col)
    +         IF (tr) CALL swap(row_size, col_size)
     
    -         CALL dbcsr_put_block_prv(matrix%prv, row, col, block, summation=summation, scale=scale)
    +         stored_row = row; stored_col = col
    +         nze = row_size*col_size
    +         !
    +         IF (debug_mod .AND. SIZE(block) < nze) &
    +            DBCSR_ABORT("Invalid block dimensions")
    +         CALL dbcsr_get_stored_block_info(matrix, stored_row, stored_col, &
    +                                          found, blk, lb_row_col, offset)
    +         IF (found) THEN
    +            ! let's copy the block
    +            offset = ABS(offset)
    +            ! Fix the index if the new block's transpose flag is different
    +            ! from the old one.
    +            tr_diff = .FALSE.
    +            IF (matrix%blk_p(blk) .LT. 0 .NEQV. tr) THEN
    +               tr_diff = .TRUE.
    +               matrix%blk_p(blk) = -matrix%blk_p(blk)
    +            END IF
    +            block_1d => pointer_view(dbcsr_get_data_p( &
    +                                     matrix%data_area, 0.0_real_8), offset, offset + nze - 1)
    +            IF (nze .GT. 0) THEN
    +               IF (do_sum) THEN
    +                  IF (tr_diff) &
    +                     block_1d = RESHAPE(TRANSPOSE(RESHAPE(block_1d, (/col_size, row_size/))), (/nze/))
    +                  IF (PRESENT(scale)) THEN
    +                     CALL daxpy(nze, scale, block(1:nze), 1, &
    +                                            block_1d, 1)
    +                  ELSE
    +                     CALL daxpy(nze, 1.0_real_8, block(1:nze), 1, &
    +                                            block_1d, 1)
    +                  END IF
    +                  my_flop = my_flop + nze*2
    +               ELSE
    +                  IF (PRESENT(scale)) THEN
    +                     CALL dcopy(nze, scale*block(1:nze), 1, &
    +                                            block_1d, 1)
    +                  ELSE
    +                     CALL dcopy(nze, block(1:nze), 1, &
    +                                            block_1d, 1)
    +                  END IF
    +               END IF
    +            END IF
    +         ELSE
    +        !!@@@
    +            !call dbcsr_assert (associated (matrix%wms), dbcsr_fatal_level,&
    +            !     dbcsr_caller_error, routineN, "Work matrices not prepared")
    +            IF (.NOT. ASSOCIATED(matrix%wms)) THEN
    +               CALL dbcsr_work_create(matrix, nblks_guess=1, &
    +                                      sizedata_guess=nze)
    +            END IF
    +            nwms = SIZE(matrix%wms)
    +            iw = 1
    +!$          IF (debug_mod .AND. nwms < omp_get_num_threads()) &
    +!$             DBCSR_ABORT("Number of work matrices not equal to number of threads")
    +!$          iw = omp_get_thread_num() + 1
    +            blk_p = matrix%wms(iw)%datasize + 1
    +            IF (.NOT. dbcsr_wm_use_mutable(matrix%wms(iw))) THEN
    +               IF (tr) blk_p = -blk_p
    +               CALL add_work_coordinate(matrix%wms(iw), row, col, blk_p)
    +               CALL dbcsr_data_ensure_size(matrix%wms(iw)%data_area, &
    +                                           matrix%wms(iw)%datasize + nze, &
    +                                           factor=default_resize_factor)
    +               IF (PRESENT(scale)) THEN
    +                  CALL dbcsr_data_set(matrix%wms(iw)%data_area, ABS(blk_p), &
    +                                      data_size=nze, src=scale*block, source_lb=1)
    +               ELSE
    +                  CALL dbcsr_data_set(matrix%wms(iw)%data_area, ABS(blk_p), &
    +                                      data_size=nze, src=block, source_lb=1)
    +               END IF
    +            ELSE
    +               ALLOCATE (data_block%p(row_size, col_size))
    +               IF (PRESENT(scale)) THEN
    +                  data_block%p(:, :) = scale*RESHAPE(block, (/row_size, col_size/))
    +               ELSE
    +                  data_block%p(:, :) = RESHAPE(block, (/row_size, col_size/))
    +               END IF
    +               data_block%tr = tr
    +               IF (.NOT. dbcsr_mutable_instantiated(matrix%wms(iw)%mutable)) THEN
    +                  CALL dbcsr_mutable_new(matrix%wms(iw)%mutable, &
    +                                         dbcsr_get_data_type(matrix))
    +               END IF
    +               IF (.NOT. do_sum) THEN
    +                  CALL btree_add( &
    +                     matrix%wms(iw)%mutable%m%btree_d, &
    +                     make_coordinate_tuple(stored_row, stored_col), &
    +                     data_block, found, data_block2, replace=.TRUE.)
    +                  IF (found) THEN
    +                     IF (.NOT. ASSOCIATED(data_block2%p)) &
    +                        DBCSR_WARN("Data was not present in block")
    +                     IF (ASSOCIATED(data_block2%p)) DEALLOCATE (data_block2%p)
    +                  END IF
    +               ELSE
    +                  CALL btree_add( &
    +                     matrix%wms(iw)%mutable%m%btree_d, &
    +                     make_coordinate_tuple(stored_row, stored_col), &
    +                     data_block, found, data_block2, replace=.FALSE.)
    +                  IF (found) THEN
    +                     IF (nze > 0) &
    +                        CALL daxpy(nze, 1.0_real_8, block, 1, &
    +                                               data_block2%p, 1)
    +                     IF (.NOT. ASSOCIATED(data_block%p)) &
    +                        DBCSR_WARN("Data was not present in block")
    +                     IF (ASSOCIATED(data_block%p)) DEALLOCATE (data_block%p)
    +                  END IF
    +               END IF
    +               IF (.NOT. found) THEN
    +                  matrix%wms(iw)%lastblk = matrix%wms(iw)%lastblk + 1
    +               END IF
    +            END IF
    +            IF (.NOT. found) THEN
    +               matrix%wms(iw)%datasize = matrix%wms(iw)%datasize + nze
    +            END IF
    +!$OMP ATOMIC WRITE
    +            matrix%valid = .FALSE.
    +         END IF
    +         IF (PRESENT(flop)) flop = flop + my_flop
           END SUBROUTINE dbcsr_put_block_d
     
    diff --git a/develop/proc/dbcsr_put_block_s.html b/develop/proc/dbcsr_put_block_s.html index 31464ecfe41..0210c9fc93f 100644 --- a/develop/proc/dbcsr_put_block_s.html +++ b/develop/proc/dbcsr_put_block_s.html @@ -74,20 +74,20 @@

    dbcsr_put_block_s
  • 109 statements + title=" 0.0% of total for procedures.">8 statements
  • - Source File + Source File
  • @@ -139,13 +139,10 @@

    Contents

    -

    private subroutine dbcsr_put_block_s(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale) +

    private subroutine dbcsr_put_block_s(matrix, row, col, block, summation, scale)

    -

    Inserts a block in a dbcsr matrix. - If the block exists, the current data is overwritten.

    -

    @@@

    Arguments

    @@ -161,8 +158,8 @@

    Arguments

    @@ -186,13 +183,12 @@

    Arguments

    @@ -202,59 +198,27 @@

    Arguments

    - - - - - - - - - - - - - - - - @@ -263,29 +227,13 @@

    Arguments

    - - - - - - - - @@ -295,7 +243,7 @@

    Arguments

    @@ -315,167 +263,15 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_put_block_s (matrix, row, col, block, lb_row_col, transposed, &
    -                                                summation, flop, scale)
    -     !! Inserts a block in a dbcsr matrix.
    -     !! If the block exists, the current data is overwritten.
    -
    -         TYPE(dbcsr_type), INTENT(INOUT)           :: matrix
    -        !! DBCSR matrix
    +    
          SUBROUTINE dbcsr_put_block_s (matrix, row, col, block, &
    +                                                summation, scale)
    +         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix
              INTEGER, INTENT(IN)                      :: row, col
    -        !! the logical row
    -        !! the logical column
    -         REAL(kind=real_4), DIMENSION(:), CONTIGUOUS, INTENT(IN) :: block
    -        !! the block to put
    -         INTEGER, DIMENSION(2), OPTIONAL, INTENT(INOUT) :: lb_row_col
    -         LOGICAL, INTENT(IN), OPTIONAL            :: transposed, summation
    -        !! the block is transposed
    -        !! if block exists, then sum the new block to the old one instead of replacing it
    -         INTEGER(KIND=int_8), INTENT(INOUT), OPTIONAL :: flop
    +         REAL(kind=real_4), DIMENSION(:), INTENT(IN)        :: block
    +         LOGICAL, INTENT(IN), OPTIONAL            :: summation
              REAL(kind=real_4), INTENT(IN), OPTIONAL            :: scale
    -        !! scale the OBblock being added
    -
    -         TYPE(btree_data_sp2d)          :: data_block, data_block2
    -         INTEGER                                  :: blk, col_size, &
    -                                                     nze, offset, &
    -                                                     row_size, blk_p, &
    -                                                     stored_row, stored_col, &
    -                                                     iw, nwms
    -         LOGICAL                                  :: found, tr, do_sum, tr_diff
    -         REAL(kind=real_4), DIMENSION(:), POINTER         :: block_1d
    -         INTEGER(KIND=int_8)                      :: my_flop
    -
    -!   ---------------------------------------------------------------------------
    -         IF (PRESENT(transposed)) THEN
    -            tr = transposed
    -         ELSE
    -            tr = .FALSE.
    -         END IF
    -         IF (PRESENT(summation)) THEN
    -            do_sum = summation
    -         ELSE
    -            do_sum = .FALSE.
    -         END IF
    -         my_flop = 0
    -         row_size = dbcsr_blk_row_size(matrix, row)
    -         col_size = dbcsr_blk_column_size(matrix, col)
    -         IF (tr) CALL swap(row_size, col_size)
     
    -         stored_row = row; stored_col = col
    -         nze = row_size*col_size
    -         !
    -         IF (debug_mod .AND. SIZE(block) < nze) &
    -            DBCSR_ABORT("Invalid block dimensions")
    -         CALL dbcsr_get_stored_block_info(matrix, stored_row, stored_col, &
    -                                          found, blk, lb_row_col, offset)
    -         IF (found) THEN
    -            ! let's copy the block
    -            offset = ABS(offset)
    -            ! Fix the index if the new block's transpose flag is different
    -            ! from the old one.
    -            tr_diff = .FALSE.
    -            IF (matrix%blk_p(blk) .LT. 0 .NEQV. tr) THEN
    -               tr_diff = .TRUE.
    -               matrix%blk_p(blk) = -matrix%blk_p(blk)
    -            END IF
    -            block_1d => pointer_view(dbcsr_get_data_p( &
    -                                     matrix%data_area, 0.0_real_4), offset, offset + nze - 1)
    -            IF (nze .GT. 0) THEN
    -               IF (do_sum) THEN
    -                  IF (tr_diff) &
    -                     block_1d = RESHAPE(TRANSPOSE(RESHAPE(block_1d, (/col_size, row_size/))), (/nze/))
    -                  IF (PRESENT(scale)) THEN
    -                     CALL saxpy(nze, scale, block(1:nze), 1, &
    -                                            block_1d, 1)
    -                  ELSE
    -                     CALL saxpy(nze, 1.0_real_4, block(1:nze), 1, &
    -                                            block_1d, 1)
    -                  END IF
    -                  my_flop = my_flop + nze*2
    -               ELSE
    -                  IF (PRESENT(scale)) THEN
    -                     CALL scopy(nze, scale*block(1:nze), 1, &
    -                                            block_1d, 1)
    -                  ELSE
    -                     CALL scopy(nze, block(1:nze), 1, &
    -                                            block_1d, 1)
    -                  END IF
    -               END IF
    -            END IF
    -         ELSE
    -        !!@@@
    -            !call dbcsr_assert (associated (matrix%wms), dbcsr_fatal_level,&
    -            !     dbcsr_caller_error, routineN, "Work matrices not prepared")
    -            IF (.NOT. ASSOCIATED(matrix%wms)) THEN
    -               CALL dbcsr_work_create(matrix, nblks_guess=1, &
    -                                      sizedata_guess=nze)
    -            END IF
    -            nwms = SIZE(matrix%wms)
    -            iw = 1
    -!$          IF (debug_mod .AND. nwms < omp_get_num_threads()) &
    -!$             DBCSR_ABORT("Number of work matrices not equal to number of threads")
    -!$          iw = omp_get_thread_num() + 1
    -            blk_p = matrix%wms(iw)%datasize + 1
    -            IF (.NOT. dbcsr_wm_use_mutable(matrix%wms(iw))) THEN
    -               IF (tr) blk_p = -blk_p
    -               CALL add_work_coordinate(matrix%wms(iw), row, col, blk_p)
    -               CALL dbcsr_data_ensure_size(matrix%wms(iw)%data_area, &
    -                                           matrix%wms(iw)%datasize + nze, &
    -                                           factor=default_resize_factor)
    -               IF (PRESENT(scale)) THEN
    -                  CALL dbcsr_data_set(matrix%wms(iw)%data_area, ABS(blk_p), &
    -                                      data_size=nze, src=scale*block, source_lb=1)
    -               ELSE
    -                  CALL dbcsr_data_set(matrix%wms(iw)%data_area, ABS(blk_p), &
    -                                      data_size=nze, src=block, source_lb=1)
    -               END IF
    -            ELSE
    -               ALLOCATE (data_block%p(row_size, col_size))
    -               IF (PRESENT(scale)) THEN
    -                  data_block%p(:, :) = scale*RESHAPE(block, (/row_size, col_size/))
    -               ELSE
    -                  data_block%p(:, :) = RESHAPE(block, (/row_size, col_size/))
    -               END IF
    -               data_block%tr = tr
    -               IF (.NOT. dbcsr_mutable_instantiated(matrix%wms(iw)%mutable)) THEN
    -                  CALL dbcsr_mutable_new(matrix%wms(iw)%mutable, &
    -                                         dbcsr_get_data_type(matrix))
    -               END IF
    -               IF (.NOT. do_sum) THEN
    -                  CALL btree_add( &
    -                     matrix%wms(iw)%mutable%m%btree_s, &
    -                     make_coordinate_tuple(stored_row, stored_col), &
    -                     data_block, found, data_block2, replace=.TRUE.)
    -                  IF (found) THEN
    -                     IF (.NOT. ASSOCIATED(data_block2%p)) &
    -                        DBCSR_WARN("Data was not present in block")
    -                     IF (ASSOCIATED(data_block2%p)) DEALLOCATE (data_block2%p)
    -                  END IF
    -               ELSE
    -                  CALL btree_add( &
    -                     matrix%wms(iw)%mutable%m%btree_s, &
    -                     make_coordinate_tuple(stored_row, stored_col), &
    -                     data_block, found, data_block2, replace=.FALSE.)
    -                  IF (found) THEN
    -                     IF (nze > 0) &
    -                        CALL saxpy(nze, 1.0_real_4, block, 1, &
    -                                               data_block2%p, 1)
    -                     IF (.NOT. ASSOCIATED(data_block%p)) &
    -                        DBCSR_WARN("Data was not present in block")
    -                     IF (ASSOCIATED(data_block%p)) DEALLOCATE (data_block%p)
    -                  END IF
    -               END IF
    -               IF (.NOT. found) THEN
    -                  matrix%wms(iw)%lastblk = matrix%wms(iw)%lastblk + 1
    -               END IF
    -            END IF
    -            IF (.NOT. found) THEN
    -               matrix%wms(iw)%datasize = matrix%wms(iw)%datasize + nze
    -            END IF
    -!$OMP ATOMIC WRITE
    -            matrix%valid = .FALSE.
    -         END IF
    -         IF (PRESENT(flop)) flop = flop + my_flop
    +         CALL dbcsr_put_block_prv(matrix%prv, row, col, block, summation=summation, scale=scale)
           END SUBROUTINE dbcsr_put_block_s
     
    diff --git a/develop/proc/dbcsr_put_block_s~2.html b/develop/proc/dbcsr_put_block_s~2.html index 85ee52920f2..73301450b0d 100644 --- a/develop/proc/dbcsr_put_block_s~2.html +++ b/develop/proc/dbcsr_put_block_s~2.html @@ -74,20 +74,20 @@

    dbcsr_put_block_s
  • 8 statements + title=" 0.2% of total for procedures.">109 statements
  • - Source File + Source File
  • @@ -139,10 +139,13 @@

    Contents

    -

    private subroutine dbcsr_put_block_s(matrix, row, col, block, summation, scale) +

    private subroutine dbcsr_put_block_s(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale)

    +

    Inserts a block in a dbcsr matrix. + If the block exists, the current data is overwritten.

    +

    @@@

    Arguments

    @@ -158,8 +161,8 @@

    Arguments

    @@ -183,12 +186,13 @@

    Arguments

    @@ -198,27 +202,59 @@

    Arguments

    + + + + + + + + + + + + + + + + @@ -227,13 +263,29 @@

    Arguments

    + + + + + + + + @@ -243,7 +295,7 @@

    Arguments

    @@ -263,15 +315,167 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_put_block_s (matrix, row, col, block, &
    -                                                summation, scale)
    -         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix
    +    
          SUBROUTINE dbcsr_put_block_s (matrix, row, col, block, lb_row_col, transposed, &
    +                                                summation, flop, scale)
    +     !! Inserts a block in a dbcsr matrix.
    +     !! If the block exists, the current data is overwritten.
    +
    +         TYPE(dbcsr_type), INTENT(INOUT)           :: matrix
    +        !! DBCSR matrix
              INTEGER, INTENT(IN)                      :: row, col
    -         REAL(kind=real_4), DIMENSION(:), INTENT(IN)        :: block
    -         LOGICAL, INTENT(IN), OPTIONAL            :: summation
    +        !! the logical row
    +        !! the logical column
    +         REAL(kind=real_4), DIMENSION(:), CONTIGUOUS, INTENT(IN) :: block
    +        !! the block to put
    +         INTEGER, DIMENSION(2), OPTIONAL, INTENT(INOUT) :: lb_row_col
    +         LOGICAL, INTENT(IN), OPTIONAL            :: transposed, summation
    +        !! the block is transposed
    +        !! if block exists, then sum the new block to the old one instead of replacing it
    +         INTEGER(KIND=int_8), INTENT(INOUT), OPTIONAL :: flop
              REAL(kind=real_4), INTENT(IN), OPTIONAL            :: scale
    +        !! scale the OBblock being added
    +
    +         TYPE(btree_data_sp2d)          :: data_block, data_block2
    +         INTEGER                                  :: blk, col_size, &
    +                                                     nze, offset, &
    +                                                     row_size, blk_p, &
    +                                                     stored_row, stored_col, &
    +                                                     iw, nwms
    +         LOGICAL                                  :: found, tr, do_sum, tr_diff
    +         REAL(kind=real_4), DIMENSION(:), POINTER         :: block_1d
    +         INTEGER(KIND=int_8)                      :: my_flop
    +
    +!   ---------------------------------------------------------------------------
    +         IF (PRESENT(transposed)) THEN
    +            tr = transposed
    +         ELSE
    +            tr = .FALSE.
    +         END IF
    +         IF (PRESENT(summation)) THEN
    +            do_sum = summation
    +         ELSE
    +            do_sum = .FALSE.
    +         END IF
    +         my_flop = 0
    +         row_size = dbcsr_blk_row_size(matrix, row)
    +         col_size = dbcsr_blk_column_size(matrix, col)
    +         IF (tr) CALL swap(row_size, col_size)
     
    -         CALL dbcsr_put_block_prv(matrix%prv, row, col, block, summation=summation, scale=scale)
    +         stored_row = row; stored_col = col
    +         nze = row_size*col_size
    +         !
    +         IF (debug_mod .AND. SIZE(block) < nze) &
    +            DBCSR_ABORT("Invalid block dimensions")
    +         CALL dbcsr_get_stored_block_info(matrix, stored_row, stored_col, &
    +                                          found, blk, lb_row_col, offset)
    +         IF (found) THEN
    +            ! let's copy the block
    +            offset = ABS(offset)
    +            ! Fix the index if the new block's transpose flag is different
    +            ! from the old one.
    +            tr_diff = .FALSE.
    +            IF (matrix%blk_p(blk) .LT. 0 .NEQV. tr) THEN
    +               tr_diff = .TRUE.
    +               matrix%blk_p(blk) = -matrix%blk_p(blk)
    +            END IF
    +            block_1d => pointer_view(dbcsr_get_data_p( &
    +                                     matrix%data_area, 0.0_real_4), offset, offset + nze - 1)
    +            IF (nze .GT. 0) THEN
    +               IF (do_sum) THEN
    +                  IF (tr_diff) &
    +                     block_1d = RESHAPE(TRANSPOSE(RESHAPE(block_1d, (/col_size, row_size/))), (/nze/))
    +                  IF (PRESENT(scale)) THEN
    +                     CALL saxpy(nze, scale, block(1:nze), 1, &
    +                                            block_1d, 1)
    +                  ELSE
    +                     CALL saxpy(nze, 1.0_real_4, block(1:nze), 1, &
    +                                            block_1d, 1)
    +                  END IF
    +                  my_flop = my_flop + nze*2
    +               ELSE
    +                  IF (PRESENT(scale)) THEN
    +                     CALL scopy(nze, scale*block(1:nze), 1, &
    +                                            block_1d, 1)
    +                  ELSE
    +                     CALL scopy(nze, block(1:nze), 1, &
    +                                            block_1d, 1)
    +                  END IF
    +               END IF
    +            END IF
    +         ELSE
    +        !!@@@
    +            !call dbcsr_assert (associated (matrix%wms), dbcsr_fatal_level,&
    +            !     dbcsr_caller_error, routineN, "Work matrices not prepared")
    +            IF (.NOT. ASSOCIATED(matrix%wms)) THEN
    +               CALL dbcsr_work_create(matrix, nblks_guess=1, &
    +                                      sizedata_guess=nze)
    +            END IF
    +            nwms = SIZE(matrix%wms)
    +            iw = 1
    +!$          IF (debug_mod .AND. nwms < omp_get_num_threads()) &
    +!$             DBCSR_ABORT("Number of work matrices not equal to number of threads")
    +!$          iw = omp_get_thread_num() + 1
    +            blk_p = matrix%wms(iw)%datasize + 1
    +            IF (.NOT. dbcsr_wm_use_mutable(matrix%wms(iw))) THEN
    +               IF (tr) blk_p = -blk_p
    +               CALL add_work_coordinate(matrix%wms(iw), row, col, blk_p)
    +               CALL dbcsr_data_ensure_size(matrix%wms(iw)%data_area, &
    +                                           matrix%wms(iw)%datasize + nze, &
    +                                           factor=default_resize_factor)
    +               IF (PRESENT(scale)) THEN
    +                  CALL dbcsr_data_set(matrix%wms(iw)%data_area, ABS(blk_p), &
    +                                      data_size=nze, src=scale*block, source_lb=1)
    +               ELSE
    +                  CALL dbcsr_data_set(matrix%wms(iw)%data_area, ABS(blk_p), &
    +                                      data_size=nze, src=block, source_lb=1)
    +               END IF
    +            ELSE
    +               ALLOCATE (data_block%p(row_size, col_size))
    +               IF (PRESENT(scale)) THEN
    +                  data_block%p(:, :) = scale*RESHAPE(block, (/row_size, col_size/))
    +               ELSE
    +                  data_block%p(:, :) = RESHAPE(block, (/row_size, col_size/))
    +               END IF
    +               data_block%tr = tr
    +               IF (.NOT. dbcsr_mutable_instantiated(matrix%wms(iw)%mutable)) THEN
    +                  CALL dbcsr_mutable_new(matrix%wms(iw)%mutable, &
    +                                         dbcsr_get_data_type(matrix))
    +               END IF
    +               IF (.NOT. do_sum) THEN
    +                  CALL btree_add( &
    +                     matrix%wms(iw)%mutable%m%btree_s, &
    +                     make_coordinate_tuple(stored_row, stored_col), &
    +                     data_block, found, data_block2, replace=.TRUE.)
    +                  IF (found) THEN
    +                     IF (.NOT. ASSOCIATED(data_block2%p)) &
    +                        DBCSR_WARN("Data was not present in block")
    +                     IF (ASSOCIATED(data_block2%p)) DEALLOCATE (data_block2%p)
    +                  END IF
    +               ELSE
    +                  CALL btree_add( &
    +                     matrix%wms(iw)%mutable%m%btree_s, &
    +                     make_coordinate_tuple(stored_row, stored_col), &
    +                     data_block, found, data_block2, replace=.FALSE.)
    +                  IF (found) THEN
    +                     IF (nze > 0) &
    +                        CALL saxpy(nze, 1.0_real_4, block, 1, &
    +                                               data_block2%p, 1)
    +                     IF (.NOT. ASSOCIATED(data_block%p)) &
    +                        DBCSR_WARN("Data was not present in block")
    +                     IF (ASSOCIATED(data_block%p)) DEALLOCATE (data_block%p)
    +                  END IF
    +               END IF
    +               IF (.NOT. found) THEN
    +                  matrix%wms(iw)%lastblk = matrix%wms(iw)%lastblk + 1
    +               END IF
    +            END IF
    +            IF (.NOT. found) THEN
    +               matrix%wms(iw)%datasize = matrix%wms(iw)%datasize + nze
    +            END IF
    +!$OMP ATOMIC WRITE
    +            matrix%valid = .FALSE.
    +         END IF
    +         IF (PRESENT(flop)) flop = flop + my_flop
           END SUBROUTINE dbcsr_put_block_s
     
    diff --git a/develop/proc/dbcsr_put_block_z.html b/develop/proc/dbcsr_put_block_z.html index 3054e4f3793..cda2ad40f03 100644 --- a/develop/proc/dbcsr_put_block_z.html +++ b/develop/proc/dbcsr_put_block_z.html @@ -74,20 +74,20 @@

    dbcsr_put_block_z
  • 109 statements + title=" 0.0% of total for procedures.">8 statements
  • - Source File + Source File
  • @@ -139,13 +139,10 @@

    Contents

    -

    private subroutine dbcsr_put_block_z(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale) +

    private subroutine dbcsr_put_block_z(matrix, row, col, block, summation, scale)

    -

    Inserts a block in a dbcsr matrix. - If the block exists, the current data is overwritten.

    -

    @@@

    Arguments

    @@ -161,8 +158,8 @@

    Arguments

    @@ -186,13 +183,12 @@

    Arguments

    @@ -202,59 +198,27 @@

    Arguments

    - - - - - - - - - - - - - - - - @@ -263,29 +227,13 @@

    Arguments

    - - - - - - - - @@ -295,7 +243,7 @@

    Arguments

    @@ -315,167 +263,15 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_put_block_z (matrix, row, col, block, lb_row_col, transposed, &
    -                                                summation, flop, scale)
    -     !! Inserts a block in a dbcsr matrix.
    -     !! If the block exists, the current data is overwritten.
    -
    -         TYPE(dbcsr_type), INTENT(INOUT)           :: matrix
    -        !! DBCSR matrix
    +    
          SUBROUTINE dbcsr_put_block_z (matrix, row, col, block, &
    +                                                summation, scale)
    +         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix
              INTEGER, INTENT(IN)                      :: row, col
    -        !! the logical row
    -        !! the logical column
    -         COMPLEX(kind=real_8), DIMENSION(:), CONTIGUOUS, INTENT(IN) :: block
    -        !! the block to put
    -         INTEGER, DIMENSION(2), OPTIONAL, INTENT(INOUT) :: lb_row_col
    -         LOGICAL, INTENT(IN), OPTIONAL            :: transposed, summation
    -        !! the block is transposed
    -        !! if block exists, then sum the new block to the old one instead of replacing it
    -         INTEGER(KIND=int_8), INTENT(INOUT), OPTIONAL :: flop
    +         COMPLEX(kind=real_8), DIMENSION(:), INTENT(IN)        :: block
    +         LOGICAL, INTENT(IN), OPTIONAL            :: summation
              COMPLEX(kind=real_8), INTENT(IN), OPTIONAL            :: scale
    -        !! scale the OBblock being added
    -
    -         TYPE(btree_data_zp2d)          :: data_block, data_block2
    -         INTEGER                                  :: blk, col_size, &
    -                                                     nze, offset, &
    -                                                     row_size, blk_p, &
    -                                                     stored_row, stored_col, &
    -                                                     iw, nwms
    -         LOGICAL                                  :: found, tr, do_sum, tr_diff
    -         COMPLEX(kind=real_8), DIMENSION(:), POINTER         :: block_1d
    -         INTEGER(KIND=int_8)                      :: my_flop
    -
    -!   ---------------------------------------------------------------------------
    -         IF (PRESENT(transposed)) THEN
    -            tr = transposed
    -         ELSE
    -            tr = .FALSE.
    -         END IF
    -         IF (PRESENT(summation)) THEN
    -            do_sum = summation
    -         ELSE
    -            do_sum = .FALSE.
    -         END IF
    -         my_flop = 0
    -         row_size = dbcsr_blk_row_size(matrix, row)
    -         col_size = dbcsr_blk_column_size(matrix, col)
    -         IF (tr) CALL swap(row_size, col_size)
     
    -         stored_row = row; stored_col = col
    -         nze = row_size*col_size
    -         !
    -         IF (debug_mod .AND. SIZE(block) < nze) &
    -            DBCSR_ABORT("Invalid block dimensions")
    -         CALL dbcsr_get_stored_block_info(matrix, stored_row, stored_col, &
    -                                          found, blk, lb_row_col, offset)
    -         IF (found) THEN
    -            ! let's copy the block
    -            offset = ABS(offset)
    -            ! Fix the index if the new block's transpose flag is different
    -            ! from the old one.
    -            tr_diff = .FALSE.
    -            IF (matrix%blk_p(blk) .LT. 0 .NEQV. tr) THEN
    -               tr_diff = .TRUE.
    -               matrix%blk_p(blk) = -matrix%blk_p(blk)
    -            END IF
    -            block_1d => pointer_view(dbcsr_get_data_p( &
    -                                     matrix%data_area, CMPLX(0.0, 0.0, real_8)), offset, offset + nze - 1)
    -            IF (nze .GT. 0) THEN
    -               IF (do_sum) THEN
    -                  IF (tr_diff) &
    -                     block_1d = RESHAPE(TRANSPOSE(RESHAPE(block_1d, (/col_size, row_size/))), (/nze/))
    -                  IF (PRESENT(scale)) THEN
    -                     CALL zaxpy(nze, scale, block(1:nze), 1, &
    -                                            block_1d, 1)
    -                  ELSE
    -                     CALL zaxpy(nze, CMPLX(1.0, 0.0, real_8), block(1:nze), 1, &
    -                                            block_1d, 1)
    -                  END IF
    -                  my_flop = my_flop + nze*2
    -               ELSE
    -                  IF (PRESENT(scale)) THEN
    -                     CALL zcopy(nze, scale*block(1:nze), 1, &
    -                                            block_1d, 1)
    -                  ELSE
    -                     CALL zcopy(nze, block(1:nze), 1, &
    -                                            block_1d, 1)
    -                  END IF
    -               END IF
    -            END IF
    -         ELSE
    -        !!@@@
    -            !call dbcsr_assert (associated (matrix%wms), dbcsr_fatal_level,&
    -            !     dbcsr_caller_error, routineN, "Work matrices not prepared")
    -            IF (.NOT. ASSOCIATED(matrix%wms)) THEN
    -               CALL dbcsr_work_create(matrix, nblks_guess=1, &
    -                                      sizedata_guess=nze)
    -            END IF
    -            nwms = SIZE(matrix%wms)
    -            iw = 1
    -!$          IF (debug_mod .AND. nwms < omp_get_num_threads()) &
    -!$             DBCSR_ABORT("Number of work matrices not equal to number of threads")
    -!$          iw = omp_get_thread_num() + 1
    -            blk_p = matrix%wms(iw)%datasize + 1
    -            IF (.NOT. dbcsr_wm_use_mutable(matrix%wms(iw))) THEN
    -               IF (tr) blk_p = -blk_p
    -               CALL add_work_coordinate(matrix%wms(iw), row, col, blk_p)
    -               CALL dbcsr_data_ensure_size(matrix%wms(iw)%data_area, &
    -                                           matrix%wms(iw)%datasize + nze, &
    -                                           factor=default_resize_factor)
    -               IF (PRESENT(scale)) THEN
    -                  CALL dbcsr_data_set(matrix%wms(iw)%data_area, ABS(blk_p), &
    -                                      data_size=nze, src=scale*block, source_lb=1)
    -               ELSE
    -                  CALL dbcsr_data_set(matrix%wms(iw)%data_area, ABS(blk_p), &
    -                                      data_size=nze, src=block, source_lb=1)
    -               END IF
    -            ELSE
    -               ALLOCATE (data_block%p(row_size, col_size))
    -               IF (PRESENT(scale)) THEN
    -                  data_block%p(:, :) = scale*RESHAPE(block, (/row_size, col_size/))
    -               ELSE
    -                  data_block%p(:, :) = RESHAPE(block, (/row_size, col_size/))
    -               END IF
    -               data_block%tr = tr
    -               IF (.NOT. dbcsr_mutable_instantiated(matrix%wms(iw)%mutable)) THEN
    -                  CALL dbcsr_mutable_new(matrix%wms(iw)%mutable, &
    -                                         dbcsr_get_data_type(matrix))
    -               END IF
    -               IF (.NOT. do_sum) THEN
    -                  CALL btree_add( &
    -                     matrix%wms(iw)%mutable%m%btree_z, &
    -                     make_coordinate_tuple(stored_row, stored_col), &
    -                     data_block, found, data_block2, replace=.TRUE.)
    -                  IF (found) THEN
    -                     IF (.NOT. ASSOCIATED(data_block2%p)) &
    -                        DBCSR_WARN("Data was not present in block")
    -                     IF (ASSOCIATED(data_block2%p)) DEALLOCATE (data_block2%p)
    -                  END IF
    -               ELSE
    -                  CALL btree_add( &
    -                     matrix%wms(iw)%mutable%m%btree_z, &
    -                     make_coordinate_tuple(stored_row, stored_col), &
    -                     data_block, found, data_block2, replace=.FALSE.)
    -                  IF (found) THEN
    -                     IF (nze > 0) &
    -                        CALL zaxpy(nze, CMPLX(1.0, 0.0, real_8), block, 1, &
    -                                               data_block2%p, 1)
    -                     IF (.NOT. ASSOCIATED(data_block%p)) &
    -                        DBCSR_WARN("Data was not present in block")
    -                     IF (ASSOCIATED(data_block%p)) DEALLOCATE (data_block%p)
    -                  END IF
    -               END IF
    -               IF (.NOT. found) THEN
    -                  matrix%wms(iw)%lastblk = matrix%wms(iw)%lastblk + 1
    -               END IF
    -            END IF
    -            IF (.NOT. found) THEN
    -               matrix%wms(iw)%datasize = matrix%wms(iw)%datasize + nze
    -            END IF
    -!$OMP ATOMIC WRITE
    -            matrix%valid = .FALSE.
    -         END IF
    -         IF (PRESENT(flop)) flop = flop + my_flop
    +         CALL dbcsr_put_block_prv(matrix%prv, row, col, block, summation=summation, scale=scale)
           END SUBROUTINE dbcsr_put_block_z
     
    diff --git a/develop/proc/dbcsr_put_block_z~2.html b/develop/proc/dbcsr_put_block_z~2.html index 12123b293dd..9359fac214f 100644 --- a/develop/proc/dbcsr_put_block_z~2.html +++ b/develop/proc/dbcsr_put_block_z~2.html @@ -74,20 +74,20 @@

    dbcsr_put_block_z
  • 8 statements + title=" 0.2% of total for procedures.">109 statements
  • - Source File + Source File
  • @@ -139,10 +139,13 @@

    Contents

    -

    private subroutine dbcsr_put_block_z(matrix, row, col, block, summation, scale) +

    private subroutine dbcsr_put_block_z(matrix, row, col, block, lb_row_col, transposed, summation, flop, scale)

    +

    Inserts a block in a dbcsr matrix. + If the block exists, the current data is overwritten.

    +

    @@@

    Arguments

    @@ -158,8 +161,8 @@

    Arguments

    @@ -183,12 +186,13 @@

    Arguments

    @@ -198,27 +202,59 @@

    Arguments

    + + + + + + + + + + + + + + + + @@ -227,13 +263,29 @@

    Arguments

    + + + + + + + + @@ -243,7 +295,7 @@

    Arguments

    @@ -263,15 +315,167 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_put_block_z (matrix, row, col, block, &
    -                                                summation, scale)
    -         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix
    +    
          SUBROUTINE dbcsr_put_block_z (matrix, row, col, block, lb_row_col, transposed, &
    +                                                summation, flop, scale)
    +     !! Inserts a block in a dbcsr matrix.
    +     !! If the block exists, the current data is overwritten.
    +
    +         TYPE(dbcsr_type), INTENT(INOUT)           :: matrix
    +        !! DBCSR matrix
              INTEGER, INTENT(IN)                      :: row, col
    -         COMPLEX(kind=real_8), DIMENSION(:), INTENT(IN)        :: block
    -         LOGICAL, INTENT(IN), OPTIONAL            :: summation
    +        !! the logical row
    +        !! the logical column
    +         COMPLEX(kind=real_8), DIMENSION(:), CONTIGUOUS, INTENT(IN) :: block
    +        !! the block to put
    +         INTEGER, DIMENSION(2), OPTIONAL, INTENT(INOUT) :: lb_row_col
    +         LOGICAL, INTENT(IN), OPTIONAL            :: transposed, summation
    +        !! the block is transposed
    +        !! if block exists, then sum the new block to the old one instead of replacing it
    +         INTEGER(KIND=int_8), INTENT(INOUT), OPTIONAL :: flop
              COMPLEX(kind=real_8), INTENT(IN), OPTIONAL            :: scale
    +        !! scale the OBblock being added
    +
    +         TYPE(btree_data_zp2d)          :: data_block, data_block2
    +         INTEGER                                  :: blk, col_size, &
    +                                                     nze, offset, &
    +                                                     row_size, blk_p, &
    +                                                     stored_row, stored_col, &
    +                                                     iw, nwms
    +         LOGICAL                                  :: found, tr, do_sum, tr_diff
    +         COMPLEX(kind=real_8), DIMENSION(:), POINTER         :: block_1d
    +         INTEGER(KIND=int_8)                      :: my_flop
    +
    +!   ---------------------------------------------------------------------------
    +         IF (PRESENT(transposed)) THEN
    +            tr = transposed
    +         ELSE
    +            tr = .FALSE.
    +         END IF
    +         IF (PRESENT(summation)) THEN
    +            do_sum = summation
    +         ELSE
    +            do_sum = .FALSE.
    +         END IF
    +         my_flop = 0
    +         row_size = dbcsr_blk_row_size(matrix, row)
    +         col_size = dbcsr_blk_column_size(matrix, col)
    +         IF (tr) CALL swap(row_size, col_size)
     
    -         CALL dbcsr_put_block_prv(matrix%prv, row, col, block, summation=summation, scale=scale)
    +         stored_row = row; stored_col = col
    +         nze = row_size*col_size
    +         !
    +         IF (debug_mod .AND. SIZE(block) < nze) &
    +            DBCSR_ABORT("Invalid block dimensions")
    +         CALL dbcsr_get_stored_block_info(matrix, stored_row, stored_col, &
    +                                          found, blk, lb_row_col, offset)
    +         IF (found) THEN
    +            ! let's copy the block
    +            offset = ABS(offset)
    +            ! Fix the index if the new block's transpose flag is different
    +            ! from the old one.
    +            tr_diff = .FALSE.
    +            IF (matrix%blk_p(blk) .LT. 0 .NEQV. tr) THEN
    +               tr_diff = .TRUE.
    +               matrix%blk_p(blk) = -matrix%blk_p(blk)
    +            END IF
    +            block_1d => pointer_view(dbcsr_get_data_p( &
    +                                     matrix%data_area, CMPLX(0.0, 0.0, real_8)), offset, offset + nze - 1)
    +            IF (nze .GT. 0) THEN
    +               IF (do_sum) THEN
    +                  IF (tr_diff) &
    +                     block_1d = RESHAPE(TRANSPOSE(RESHAPE(block_1d, (/col_size, row_size/))), (/nze/))
    +                  IF (PRESENT(scale)) THEN
    +                     CALL zaxpy(nze, scale, block(1:nze), 1, &
    +                                            block_1d, 1)
    +                  ELSE
    +                     CALL zaxpy(nze, CMPLX(1.0, 0.0, real_8), block(1:nze), 1, &
    +                                            block_1d, 1)
    +                  END IF
    +                  my_flop = my_flop + nze*2
    +               ELSE
    +                  IF (PRESENT(scale)) THEN
    +                     CALL zcopy(nze, scale*block(1:nze), 1, &
    +                                            block_1d, 1)
    +                  ELSE
    +                     CALL zcopy(nze, block(1:nze), 1, &
    +                                            block_1d, 1)
    +                  END IF
    +               END IF
    +            END IF
    +         ELSE
    +        !!@@@
    +            !call dbcsr_assert (associated (matrix%wms), dbcsr_fatal_level,&
    +            !     dbcsr_caller_error, routineN, "Work matrices not prepared")
    +            IF (.NOT. ASSOCIATED(matrix%wms)) THEN
    +               CALL dbcsr_work_create(matrix, nblks_guess=1, &
    +                                      sizedata_guess=nze)
    +            END IF
    +            nwms = SIZE(matrix%wms)
    +            iw = 1
    +!$          IF (debug_mod .AND. nwms < omp_get_num_threads()) &
    +!$             DBCSR_ABORT("Number of work matrices not equal to number of threads")
    +!$          iw = omp_get_thread_num() + 1
    +            blk_p = matrix%wms(iw)%datasize + 1
    +            IF (.NOT. dbcsr_wm_use_mutable(matrix%wms(iw))) THEN
    +               IF (tr) blk_p = -blk_p
    +               CALL add_work_coordinate(matrix%wms(iw), row, col, blk_p)
    +               CALL dbcsr_data_ensure_size(matrix%wms(iw)%data_area, &
    +                                           matrix%wms(iw)%datasize + nze, &
    +                                           factor=default_resize_factor)
    +               IF (PRESENT(scale)) THEN
    +                  CALL dbcsr_data_set(matrix%wms(iw)%data_area, ABS(blk_p), &
    +                                      data_size=nze, src=scale*block, source_lb=1)
    +               ELSE
    +                  CALL dbcsr_data_set(matrix%wms(iw)%data_area, ABS(blk_p), &
    +                                      data_size=nze, src=block, source_lb=1)
    +               END IF
    +            ELSE
    +               ALLOCATE (data_block%p(row_size, col_size))
    +               IF (PRESENT(scale)) THEN
    +                  data_block%p(:, :) = scale*RESHAPE(block, (/row_size, col_size/))
    +               ELSE
    +                  data_block%p(:, :) = RESHAPE(block, (/row_size, col_size/))
    +               END IF
    +               data_block%tr = tr
    +               IF (.NOT. dbcsr_mutable_instantiated(matrix%wms(iw)%mutable)) THEN
    +                  CALL dbcsr_mutable_new(matrix%wms(iw)%mutable, &
    +                                         dbcsr_get_data_type(matrix))
    +               END IF
    +               IF (.NOT. do_sum) THEN
    +                  CALL btree_add( &
    +                     matrix%wms(iw)%mutable%m%btree_z, &
    +                     make_coordinate_tuple(stored_row, stored_col), &
    +                     data_block, found, data_block2, replace=.TRUE.)
    +                  IF (found) THEN
    +                     IF (.NOT. ASSOCIATED(data_block2%p)) &
    +                        DBCSR_WARN("Data was not present in block")
    +                     IF (ASSOCIATED(data_block2%p)) DEALLOCATE (data_block2%p)
    +                  END IF
    +               ELSE
    +                  CALL btree_add( &
    +                     matrix%wms(iw)%mutable%m%btree_z, &
    +                     make_coordinate_tuple(stored_row, stored_col), &
    +                     data_block, found, data_block2, replace=.FALSE.)
    +                  IF (found) THEN
    +                     IF (nze > 0) &
    +                        CALL zaxpy(nze, CMPLX(1.0, 0.0, real_8), block, 1, &
    +                                               data_block2%p, 1)
    +                     IF (.NOT. ASSOCIATED(data_block%p)) &
    +                        DBCSR_WARN("Data was not present in block")
    +                     IF (ASSOCIATED(data_block%p)) DEALLOCATE (data_block%p)
    +                  END IF
    +               END IF
    +               IF (.NOT. found) THEN
    +                  matrix%wms(iw)%lastblk = matrix%wms(iw)%lastblk + 1
    +               END IF
    +            END IF
    +            IF (.NOT. found) THEN
    +               matrix%wms(iw)%datasize = matrix%wms(iw)%datasize + nze
    +            END IF
    +!$OMP ATOMIC WRITE
    +            matrix%valid = .FALSE.
    +         END IF
    +         IF (PRESENT(flop)) flop = flop + my_flop
           END SUBROUTINE dbcsr_put_block_z
     
    diff --git a/develop/proc/dbcsr_random_dist.html b/develop/proc/dbcsr_random_dist.html index 3dac1e0b115..4f05af7381a 100644 --- a/develop/proc/dbcsr_random_dist.html +++ b/develop/proc/dbcsr_random_dist.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_real_dp_to_string.html b/develop/proc/dbcsr_real_dp_to_string.html index 875baf0ae86..ecf2704b99e 100644 --- a/develop/proc/dbcsr_real_dp_to_string.html +++ b/develop/proc/dbcsr_real_dp_to_string.html @@ -161,7 +161,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    Return Value - + character(len=11)

    diff --git a/develop/proc/dbcsr_redistribute.html b/develop/proc/dbcsr_redistribute.html index f0772801704..7b8245d44f4 100644 --- a/develop/proc/dbcsr_redistribute.html +++ b/develop/proc/dbcsr_redistribute.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_release.html b/develop/proc/dbcsr_release.html index 12e6e6e8a1c..4d7e680382a 100644 --- a/develop/proc/dbcsr_release.html +++ b/develop/proc/dbcsr_release.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_release_locals.html b/develop/proc/dbcsr_release_locals.html index 931bb317b1a..c724e0fd29d 100644 --- a/develop/proc/dbcsr_release_locals.html +++ b/develop/proc/dbcsr_release_locals.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_release_p.html b/develop/proc/dbcsr_release_p.html index 5f916965dbb..d4e45a74724 100644 --- a/develop/proc/dbcsr_release_p.html +++ b/develop/proc/dbcsr_release_p.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_release~2.html b/develop/proc/dbcsr_release~2.html index 97dc6eac593..733dd0e86b9 100644 --- a/develop/proc/dbcsr_release~2.html +++ b/develop/proc/dbcsr_release~2.html @@ -160,7 +160,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_remove_block.html b/develop/proc/dbcsr_remove_block.html index 5b55e6b089c..13f69e7616d 100644 --- a/develop/proc/dbcsr_remove_block.html +++ b/develop/proc/dbcsr_remove_block.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -223,7 +223,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_repl_get_stored_coordinates.html b/develop/proc/dbcsr_repl_get_stored_coordinates.html index 50dd70e1f01..9a7f4bd77cb 100644 --- a/develop/proc/dbcsr_repl_get_stored_coordinates.html +++ b/develop/proc/dbcsr_repl_get_stored_coordinates.html @@ -154,7 +154,7 @@

    Arguments

    @@ -169,7 +169,7 @@

    Arguments

    @@ -185,7 +185,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_replicate.html b/develop/proc/dbcsr_replicate.html index f902048e4ca..4784d647516 100644 --- a/develop/proc/dbcsr_replicate.html +++ b/develop/proc/dbcsr_replicate.html @@ -163,7 +163,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_replicate_all.html b/develop/proc/dbcsr_replicate_all.html index 694ae84d4ce..dd4bcf48d61 100644 --- a/develop/proc/dbcsr_replicate_all.html +++ b/develop/proc/dbcsr_replicate_all.html @@ -79,15 +79,15 @@

    dbcsr_replicate_all
  • - Source File + Source File
  • @@ -143,7 +143,6 @@

    public subroutine dbcsr_replicate_all(matrix)

    -

    Replicates a DBCSR on all processors.

    Arguments

    @@ -159,8 +158,8 @@

    Arguments

    @@ -190,13 +189,9 @@

    Arguments

    Source Code

       SUBROUTINE dbcsr_replicate_all(matrix)
    -      !! Replicates a DBCSR on all processors.
    -
           TYPE(dbcsr_type), INTENT(INOUT)                    :: matrix
    -         !! matrix to replicate
     
    -      CALL dbcsr_replicate(matrix, replicate_rows=.TRUE., &
    -                           replicate_columns=.TRUE.)
    +      CALL dbcsr_replicate_all_prv(matrix%prv)
        END SUBROUTINE dbcsr_replicate_all
     
    diff --git a/develop/proc/dbcsr_replicate_all~2.html b/develop/proc/dbcsr_replicate_all~2.html index 516636ff4a5..d48c6be7259 100644 --- a/develop/proc/dbcsr_replicate_all~2.html +++ b/develop/proc/dbcsr_replicate_all~2.html @@ -79,15 +79,15 @@

    dbcsr_replicate_all
  • - Source File + Source File
  • @@ -143,6 +143,7 @@

    public subroutine dbcsr_replicate_all(matrix)

    +

    Replicates a DBCSR on all processors.

    Arguments

    @@ -158,8 +159,8 @@

    Arguments

    @@ -189,9 +190,13 @@

    Arguments

    Source Code

       SUBROUTINE dbcsr_replicate_all(matrix)
    +      !! Replicates a DBCSR on all processors.
    +
           TYPE(dbcsr_type), INTENT(INOUT)                    :: matrix
    +         !! matrix to replicate
     
    -      CALL dbcsr_replicate_all_prv(matrix%prv)
    +      CALL dbcsr_replicate(matrix, replicate_rows=.TRUE., &
    +                           replicate_columns=.TRUE.)
        END SUBROUTINE dbcsr_replicate_all
     
    diff --git a/develop/proc/dbcsr_repoint_index.html b/develop/proc/dbcsr_repoint_index.html index 2529398cd13..97235cb7c60 100644 --- a/develop/proc/dbcsr_repoint_index.html +++ b/develop/proc/dbcsr_repoint_index.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_reserve_all_blocks.html b/develop/proc/dbcsr_reserve_all_blocks.html index 0e5a0ace0cb..08ae7973e7f 100644 --- a/develop/proc/dbcsr_reserve_all_blocks.html +++ b/develop/proc/dbcsr_reserve_all_blocks.html @@ -74,20 +74,20 @@

    dbcsr_reserve_all_blocks
  • 43 statements + title=" 0.0% of total for procedures.">4 statements
  • - Source File + Source File
  • @@ -143,8 +143,6 @@

    public subroutine dbcsr_reserve_all_blocks(matrix)

    -

    Inserts all blocks of a dbcsr matrix to make it a full matrix. -Thus obviously not linear scaling.

    Arguments

    @@ -160,8 +158,8 @@

    Arguments

    @@ -191,63 +189,9 @@

    Arguments

    Source Code

       SUBROUTINE dbcsr_reserve_all_blocks(matrix)
    -      !! Inserts all blocks of a dbcsr matrix to make it a full matrix.
    -      !! Thus obviously not linear scaling.
    -
           TYPE(dbcsr_type), INTENT(INOUT)                    :: matrix
    -         !! Matrix into which blocks should be added.
    -
    -      CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_reserve_all_blocks'
    -
    -      INTEGER                                            :: blk_count, col, col_local, col_s, &
    -                                                            error_handle, myrank, rank, row, &
    -                                                            row_local, row_s
    -      INTEGER, ALLOCATABLE, DIMENSION(:)                 :: columns, rows
    -      INTEGER, DIMENSION(:), POINTER                     :: local_cols, local_rows
    -      LOGICAL                                            :: tr
    -
    -      CALL timeset(routineN, error_handle)
    -
    -      myrank = dbcsr_mp_mynode(dbcsr_distribution_mp(dbcsr_distribution(matrix)))
    -      local_rows => dbcsr_distribution_local_rows(dbcsr_distribution(matrix))
    -      local_cols => dbcsr_distribution_local_cols(dbcsr_distribution(matrix))
    -
    -      blk_count = 0
    -      ! should be possible to loop only over the local blockrows/blockcols
    -      DO row_local = 1, SIZE(local_rows)
    -         DO col_local = 1, SIZE(local_cols)
    -            tr = .FALSE.
    -            row = local_rows(row_local)
    -            col = local_cols(col_local)
    -            row_s = row; col_s = col
    -            CALL dbcsr_get_stored_coordinates(matrix, row_s, col_s, rank)
    -            ! is that the correct condition for symmetric matrices ?
    -            IF (rank .EQ. myrank .AND. row_s .EQ. row .AND. col_s .EQ. col) blk_count = blk_count + 1
    -         END DO
    -      END DO
    -
    -      ALLOCATE (rows(blk_count), columns(blk_count))
    -
    -      blk_count = 0
    -      DO row_local = 1, SIZE(local_rows)
    -         DO col_local = 1, SIZE(local_cols)
    -            tr = .FALSE.
    -            row = local_rows(row_local)
    -            col = local_cols(col_local)
    -            row_s = row; col_s = col
    -            CALL dbcsr_get_stored_coordinates(matrix, row_s, col_s, rank)
    -            IF (rank .EQ. myrank .AND. row_s .EQ. row .AND. col_s .EQ. col) THEN
    -               blk_count = blk_count + 1
    -               rows(blk_count) = row
    -               columns(blk_count) = col
    -            END IF
    -         END DO
    -      END DO
    -
    -      CALL dbcsr_reserve_blocks(matrix, rows, columns)
    -
    -      CALL timestop(error_handle)
     
    +      CALL dbcsr_reserve_all_blocks_prv(matrix%prv)
        END SUBROUTINE dbcsr_reserve_all_blocks
     
    diff --git a/develop/proc/dbcsr_reserve_all_blocks~2.html b/develop/proc/dbcsr_reserve_all_blocks~2.html index c6de6b8c073..ca532d36c08 100644 --- a/develop/proc/dbcsr_reserve_all_blocks~2.html +++ b/develop/proc/dbcsr_reserve_all_blocks~2.html @@ -74,20 +74,20 @@

    dbcsr_reserve_all_blocks
  • 4 statements + title=" 0.1% of total for procedures.">43 statements
  • - Source File + Source File
  • @@ -143,6 +143,8 @@

    public subroutine dbcsr_reserve_all_blocks(matrix)

    +

    Inserts all blocks of a dbcsr matrix to make it a full matrix. +Thus obviously not linear scaling.

    Arguments

    @@ -158,8 +160,8 @@

    Arguments

    @@ -189,9 +191,63 @@

    Arguments

    Source Code

       SUBROUTINE dbcsr_reserve_all_blocks(matrix)
    +      !! Inserts all blocks of a dbcsr matrix to make it a full matrix.
    +      !! Thus obviously not linear scaling.
    +
           TYPE(dbcsr_type), INTENT(INOUT)                    :: matrix
    +         !! Matrix into which blocks should be added.
    +
    +      CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_reserve_all_blocks'
    +
    +      INTEGER                                            :: blk_count, col, col_local, col_s, &
    +                                                            error_handle, myrank, rank, row, &
    +                                                            row_local, row_s
    +      INTEGER, ALLOCATABLE, DIMENSION(:)                 :: columns, rows
    +      INTEGER, DIMENSION(:), POINTER                     :: local_cols, local_rows
    +      LOGICAL                                            :: tr
    +
    +      CALL timeset(routineN, error_handle)
    +
    +      myrank = dbcsr_mp_mynode(dbcsr_distribution_mp(dbcsr_distribution(matrix)))
    +      local_rows => dbcsr_distribution_local_rows(dbcsr_distribution(matrix))
    +      local_cols => dbcsr_distribution_local_cols(dbcsr_distribution(matrix))
    +
    +      blk_count = 0
    +      ! should be possible to loop only over the local blockrows/blockcols
    +      DO row_local = 1, SIZE(local_rows)
    +         DO col_local = 1, SIZE(local_cols)
    +            tr = .FALSE.
    +            row = local_rows(row_local)
    +            col = local_cols(col_local)
    +            row_s = row; col_s = col
    +            CALL dbcsr_get_stored_coordinates(matrix, row_s, col_s, rank)
    +            ! is that the correct condition for symmetric matrices ?
    +            IF (rank .EQ. myrank .AND. row_s .EQ. row .AND. col_s .EQ. col) blk_count = blk_count + 1
    +         END DO
    +      END DO
    +
    +      ALLOCATE (rows(blk_count), columns(blk_count))
    +
    +      blk_count = 0
    +      DO row_local = 1, SIZE(local_rows)
    +         DO col_local = 1, SIZE(local_cols)
    +            tr = .FALSE.
    +            row = local_rows(row_local)
    +            col = local_cols(col_local)
    +            row_s = row; col_s = col
    +            CALL dbcsr_get_stored_coordinates(matrix, row_s, col_s, rank)
    +            IF (rank .EQ. myrank .AND. row_s .EQ. row .AND. col_s .EQ. col) THEN
    +               blk_count = blk_count + 1
    +               rows(blk_count) = row
    +               columns(blk_count) = col
    +            END IF
    +         END DO
    +      END DO
    +
    +      CALL dbcsr_reserve_blocks(matrix, rows, columns)
    +
    +      CALL timestop(error_handle)
     
    -      CALL dbcsr_reserve_all_blocks_prv(matrix%prv)
        END SUBROUTINE dbcsr_reserve_all_blocks
     
    diff --git a/develop/proc/dbcsr_reserve_block2d_c.html b/develop/proc/dbcsr_reserve_block2d_c.html index 05200f8811c..fc2c8cb71aa 100644 --- a/develop/proc/dbcsr_reserve_block2d_c.html +++ b/develop/proc/dbcsr_reserve_block2d_c.html @@ -74,20 +74,20 @@

    dbcsr_reserve_block2d_c
  • 59 statements + title=" 0.0% of total for procedures.">8 statements
  • - Source File + Source File
  • @@ -143,7 +143,6 @@

    private subroutine dbcsr_reserve_block2d_c(matrix, row, col, block, transpo

    -

    Put a 2-D block in a DBCSR matrix using the btree

    Arguments

    @@ -159,8 +158,8 @@

    Arguments

    @@ -184,13 +183,12 @@

    Arguments

    @@ -200,13 +198,12 @@

    Arguments

    @@ -216,12 +213,12 @@

    Arguments

    @@ -231,7 +228,7 @@

    Arguments

    @@ -246,7 +243,7 @@

    Arguments

    @@ -266,97 +263,15 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_reserve_block2d_c (matrix, row, col, block, &
    -                                                      transposed, existed)
    -     !! Put a 2-D block in a DBCSR matrix using the btree
    -
    -         TYPE(dbcsr_type), INTENT(INOUT)           :: matrix
    -        !! DBCSR matrix
    +    
          SUBROUTINE dbcsr_reserve_block2d_c (matrix, row, col, block, transposed, existed)
    +         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix
              INTEGER, INTENT(IN)                      :: row, col
    -        !! the row
    -        !! the column
    -         COMPLEX(kind=real_4), DIMENSION(:, :), POINTER         :: block
    -        !! the block to reserve; added if not NULL
    -         LOGICAL, INTENT(IN), OPTIONAL            :: transposed
    -        !! the block holds transposed data
    +         COMPLEX(kind=real_4), DIMENSION(:, :), POINTER        :: block
    +         LOGICAL, INTENT(IN), OPTIONAL            :: transposed
              LOGICAL, INTENT(OUT), OPTIONAL           :: existed
    -        !! block already existed
    -
    -         TYPE(btree_data_cp2d)          :: data_block, data_block2
    -         INTEGER                                  :: col_size, row_size, &
    -                                                     stored_row, stored_col, &
    -                                                     iw, nwms
    -         INTEGER, DIMENSION(:), POINTER           :: col_blk_size, row_blk_size
    -         LOGICAL                                  :: found, gift, tr, sym_tr
    -         COMPLEX(kind=real_4), DIMENSION(:, :), POINTER         :: original_block
    -
    -!   ---------------------------------------------------------------------------
    -
    -         gift = ASSOCIATED(block)
    -         IF (gift) THEN
    -            original_block => block
    -         ELSE
    -            NULLIFY (original_block)
    -         END IF
    -         row_blk_size => array_data(matrix%row_blk_size)
    -         col_blk_size => array_data(matrix%col_blk_size)
    -         row_size = row_blk_size(row)
    -         col_size = col_blk_size(col)
    -
    -         stored_row = row; stored_col = col
    -         IF (PRESENT(transposed)) THEN
    -            tr = transposed
    -         ELSE
    -            tr = .FALSE.
    -         END IF
    -         sym_tr = .FALSE.
    -         CALL dbcsr_get_stored_coordinates(matrix, stored_row, stored_col)
    -         IF (.NOT. ASSOCIATED(matrix%wms)) THEN
    -            CALL dbcsr_work_create(matrix, work_mutable=.TRUE.)
    -!$OMP        MASTER
    -            matrix%valid = .FALSE.
    -!$OMP        END MASTER
    -!$OMP        BARRIER
    -         END IF
    -
    -         NULLIFY (data_block%p)
    -         IF (.NOT. gift) THEN
    -            ALLOCATE (data_block%p(row_size, col_size))
    -            block => data_block%p
    -         ELSE
    -            data_block%p => block
    -         END IF
    -         data_block%tr = tr
    -
    -         nwms = SIZE(matrix%wms)
    -         iw = 1
    -!$       IF (nwms < omp_get_num_threads()) &
    -!$          DBCSR_ABORT("Number of work matrices not equal to number of threads")
    -!$       iw = omp_get_thread_num() + 1
    -         CALL btree_add(matrix%wms(iw)%mutable%m%btree_c, &
    -                        make_coordinate_tuple(stored_row, stored_col), &
    -                        data_block, found, data_block2)
     
    -         IF (.NOT. found) THEN
    -#if defined(_OPENMP) && (200711 <= _OPENMP)
    -!$OMP ATOMIC WRITE
    -            matrix%valid = .FALSE.
    -#else
    -!$OMP CRITICAL (critical_reserve_block2d)
    -            matrix%valid = .FALSE.
    -!$OMP END CRITICAL (critical_reserve_block2d)
    -#endif
    -            matrix%wms(iw)%lastblk = matrix%wms(iw)%lastblk + 1
    -            matrix%wms(iw)%datasize = matrix%wms(iw)%datasize + row_size*col_size
    -         ELSE
    -            IF (.NOT. gift) THEN
    -               DEALLOCATE (data_block%p)
    -            ELSE
    -               DEALLOCATE (original_block)
    -            END IF
    -            block => data_block2%p
    -         END IF
    -         IF (PRESENT(existed)) existed = found
    +         CALL dbcsr_reserve_block2d_prv(matrix%prv, row, col, block, &
    +                                        transposed, existed)
           END SUBROUTINE dbcsr_reserve_block2d_c
     
    diff --git a/develop/proc/dbcsr_reserve_block2d_c~2.html b/develop/proc/dbcsr_reserve_block2d_c~2.html index ded09639842..cfdfab4a191 100644 --- a/develop/proc/dbcsr_reserve_block2d_c~2.html +++ b/develop/proc/dbcsr_reserve_block2d_c~2.html @@ -74,20 +74,20 @@

    dbcsr_reserve_block2d_c
  • 8 statements + title=" 0.1% of total for procedures.">59 statements
  • - Source File + Source File
  • @@ -143,6 +143,7 @@

    private subroutine dbcsr_reserve_block2d_c(matrix, row, col, block, transpo

    +

    Put a 2-D block in a DBCSR matrix using the btree

    Arguments

    @@ -158,8 +159,8 @@

    Arguments

    @@ -183,12 +184,13 @@

    Arguments

    @@ -198,12 +200,13 @@

    Arguments

    @@ -213,12 +216,12 @@

    Arguments

    @@ -228,7 +231,7 @@

    Arguments

    @@ -243,7 +246,7 @@

    Arguments

    @@ -263,15 +266,97 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_reserve_block2d_c (matrix, row, col, block, transposed, existed)
    -         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix
    +    
          SUBROUTINE dbcsr_reserve_block2d_c (matrix, row, col, block, &
    +                                                      transposed, existed)
    +     !! Put a 2-D block in a DBCSR matrix using the btree
    +
    +         TYPE(dbcsr_type), INTENT(INOUT)           :: matrix
    +        !! DBCSR matrix
              INTEGER, INTENT(IN)                      :: row, col
    -         COMPLEX(kind=real_4), DIMENSION(:, :), POINTER        :: block
    -         LOGICAL, INTENT(IN), OPTIONAL            :: transposed
    +        !! the row
    +        !! the column
    +         COMPLEX(kind=real_4), DIMENSION(:, :), POINTER         :: block
    +        !! the block to reserve; added if not NULL
    +         LOGICAL, INTENT(IN), OPTIONAL            :: transposed
    +        !! the block holds transposed data
              LOGICAL, INTENT(OUT), OPTIONAL           :: existed
    +        !! block already existed
    +
    +         TYPE(btree_data_cp2d)          :: data_block, data_block2
    +         INTEGER                                  :: col_size, row_size, &
    +                                                     stored_row, stored_col, &
    +                                                     iw, nwms
    +         INTEGER, DIMENSION(:), POINTER           :: col_blk_size, row_blk_size
    +         LOGICAL                                  :: found, gift, tr, sym_tr
    +         COMPLEX(kind=real_4), DIMENSION(:, :), POINTER         :: original_block
    +
    +!   ---------------------------------------------------------------------------
    +
    +         gift = ASSOCIATED(block)
    +         IF (gift) THEN
    +            original_block => block
    +         ELSE
    +            NULLIFY (original_block)
    +         END IF
    +         row_blk_size => array_data(matrix%row_blk_size)
    +         col_blk_size => array_data(matrix%col_blk_size)
    +         row_size = row_blk_size(row)
    +         col_size = col_blk_size(col)
    +
    +         stored_row = row; stored_col = col
    +         IF (PRESENT(transposed)) THEN
    +            tr = transposed
    +         ELSE
    +            tr = .FALSE.
    +         END IF
    +         sym_tr = .FALSE.
    +         CALL dbcsr_get_stored_coordinates(matrix, stored_row, stored_col)
    +         IF (.NOT. ASSOCIATED(matrix%wms)) THEN
    +            CALL dbcsr_work_create(matrix, work_mutable=.TRUE.)
    +!$OMP        MASTER
    +            matrix%valid = .FALSE.
    +!$OMP        END MASTER
    +!$OMP        BARRIER
    +         END IF
    +
    +         NULLIFY (data_block%p)
    +         IF (.NOT. gift) THEN
    +            ALLOCATE (data_block%p(row_size, col_size))
    +            block => data_block%p
    +         ELSE
    +            data_block%p => block
    +         END IF
    +         data_block%tr = tr
    +
    +         nwms = SIZE(matrix%wms)
    +         iw = 1
    +!$       IF (nwms < omp_get_num_threads()) &
    +!$          DBCSR_ABORT("Number of work matrices not equal to number of threads")
    +!$       iw = omp_get_thread_num() + 1
    +         CALL btree_add(matrix%wms(iw)%mutable%m%btree_c, &
    +                        make_coordinate_tuple(stored_row, stored_col), &
    +                        data_block, found, data_block2)
     
    -         CALL dbcsr_reserve_block2d_prv(matrix%prv, row, col, block, &
    -                                        transposed, existed)
    +         IF (.NOT. found) THEN
    +#if defined(_OPENMP) && (200711 <= _OPENMP)
    +!$OMP ATOMIC WRITE
    +            matrix%valid = .FALSE.
    +#else
    +!$OMP CRITICAL (critical_reserve_block2d)
    +            matrix%valid = .FALSE.
    +!$OMP END CRITICAL (critical_reserve_block2d)
    +#endif
    +            matrix%wms(iw)%lastblk = matrix%wms(iw)%lastblk + 1
    +            matrix%wms(iw)%datasize = matrix%wms(iw)%datasize + row_size*col_size
    +         ELSE
    +            IF (.NOT. gift) THEN
    +               DEALLOCATE (data_block%p)
    +            ELSE
    +               DEALLOCATE (original_block)
    +            END IF
    +            block => data_block2%p
    +         END IF
    +         IF (PRESENT(existed)) existed = found
           END SUBROUTINE dbcsr_reserve_block2d_c
     
    diff --git a/develop/proc/dbcsr_reserve_block2d_d.html b/develop/proc/dbcsr_reserve_block2d_d.html index 928ec922cdc..c5139feee48 100644 --- a/develop/proc/dbcsr_reserve_block2d_d.html +++ b/develop/proc/dbcsr_reserve_block2d_d.html @@ -74,20 +74,20 @@

    dbcsr_reserve_block2d_d
  • 59 statements + title=" 0.0% of total for procedures.">8 statements
  • - Source File + Source File
  • @@ -143,7 +143,6 @@

    private subroutine dbcsr_reserve_block2d_d(matrix, row, col, block, transpo

    -

    Put a 2-D block in a DBCSR matrix using the btree

    Arguments

    @@ -159,8 +158,8 @@

    Arguments

    @@ -184,13 +183,12 @@

    Arguments

    @@ -200,13 +198,12 @@

    Arguments

    @@ -216,12 +213,12 @@

    Arguments

    @@ -231,7 +228,7 @@

    Arguments

    @@ -246,7 +243,7 @@

    Arguments

    @@ -266,97 +263,15 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_reserve_block2d_d (matrix, row, col, block, &
    -                                                      transposed, existed)
    -     !! Put a 2-D block in a DBCSR matrix using the btree
    -
    -         TYPE(dbcsr_type), INTENT(INOUT)           :: matrix
    -        !! DBCSR matrix
    +    
          SUBROUTINE dbcsr_reserve_block2d_d (matrix, row, col, block, transposed, existed)
    +         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix
              INTEGER, INTENT(IN)                      :: row, col
    -        !! the row
    -        !! the column
    -         REAL(kind=real_8), DIMENSION(:, :), POINTER         :: block
    -        !! the block to reserve; added if not NULL
    -         LOGICAL, INTENT(IN), OPTIONAL            :: transposed
    -        !! the block holds transposed data
    +         REAL(kind=real_8), DIMENSION(:, :), POINTER        :: block
    +         LOGICAL, INTENT(IN), OPTIONAL            :: transposed
              LOGICAL, INTENT(OUT), OPTIONAL           :: existed
    -        !! block already existed
    -
    -         TYPE(btree_data_dp2d)          :: data_block, data_block2
    -         INTEGER                                  :: col_size, row_size, &
    -                                                     stored_row, stored_col, &
    -                                                     iw, nwms
    -         INTEGER, DIMENSION(:), POINTER           :: col_blk_size, row_blk_size
    -         LOGICAL                                  :: found, gift, tr, sym_tr
    -         REAL(kind=real_8), DIMENSION(:, :), POINTER         :: original_block
    -
    -!   ---------------------------------------------------------------------------
    -
    -         gift = ASSOCIATED(block)
    -         IF (gift) THEN
    -            original_block => block
    -         ELSE
    -            NULLIFY (original_block)
    -         END IF
    -         row_blk_size => array_data(matrix%row_blk_size)
    -         col_blk_size => array_data(matrix%col_blk_size)
    -         row_size = row_blk_size(row)
    -         col_size = col_blk_size(col)
    -
    -         stored_row = row; stored_col = col
    -         IF (PRESENT(transposed)) THEN
    -            tr = transposed
    -         ELSE
    -            tr = .FALSE.
    -         END IF
    -         sym_tr = .FALSE.
    -         CALL dbcsr_get_stored_coordinates(matrix, stored_row, stored_col)
    -         IF (.NOT. ASSOCIATED(matrix%wms)) THEN
    -            CALL dbcsr_work_create(matrix, work_mutable=.TRUE.)
    -!$OMP        MASTER
    -            matrix%valid = .FALSE.
    -!$OMP        END MASTER
    -!$OMP        BARRIER
    -         END IF
    -
    -         NULLIFY (data_block%p)
    -         IF (.NOT. gift) THEN
    -            ALLOCATE (data_block%p(row_size, col_size))
    -            block => data_block%p
    -         ELSE
    -            data_block%p => block
    -         END IF
    -         data_block%tr = tr
    -
    -         nwms = SIZE(matrix%wms)
    -         iw = 1
    -!$       IF (nwms < omp_get_num_threads()) &
    -!$          DBCSR_ABORT("Number of work matrices not equal to number of threads")
    -!$       iw = omp_get_thread_num() + 1
    -         CALL btree_add(matrix%wms(iw)%mutable%m%btree_d, &
    -                        make_coordinate_tuple(stored_row, stored_col), &
    -                        data_block, found, data_block2)
     
    -         IF (.NOT. found) THEN
    -#if defined(_OPENMP) && (200711 <= _OPENMP)
    -!$OMP ATOMIC WRITE
    -            matrix%valid = .FALSE.
    -#else
    -!$OMP CRITICAL (critical_reserve_block2d)
    -            matrix%valid = .FALSE.
    -!$OMP END CRITICAL (critical_reserve_block2d)
    -#endif
    -            matrix%wms(iw)%lastblk = matrix%wms(iw)%lastblk + 1
    -            matrix%wms(iw)%datasize = matrix%wms(iw)%datasize + row_size*col_size
    -         ELSE
    -            IF (.NOT. gift) THEN
    -               DEALLOCATE (data_block%p)
    -            ELSE
    -               DEALLOCATE (original_block)
    -            END IF
    -            block => data_block2%p
    -         END IF
    -         IF (PRESENT(existed)) existed = found
    +         CALL dbcsr_reserve_block2d_prv(matrix%prv, row, col, block, &
    +                                        transposed, existed)
           END SUBROUTINE dbcsr_reserve_block2d_d
     
    diff --git a/develop/proc/dbcsr_reserve_block2d_d~2.html b/develop/proc/dbcsr_reserve_block2d_d~2.html index cf0d2d99847..7620ca0ae5f 100644 --- a/develop/proc/dbcsr_reserve_block2d_d~2.html +++ b/develop/proc/dbcsr_reserve_block2d_d~2.html @@ -74,20 +74,20 @@

    dbcsr_reserve_block2d_d
  • 8 statements + title=" 0.1% of total for procedures.">59 statements
  • - Source File + Source File
  • @@ -143,6 +143,7 @@

    private subroutine dbcsr_reserve_block2d_d(matrix, row, col, block, transpo

    +

    Put a 2-D block in a DBCSR matrix using the btree

    Arguments

    @@ -158,8 +159,8 @@

    Arguments

    @@ -183,12 +184,13 @@

    Arguments

    @@ -198,12 +200,13 @@

    Arguments

    @@ -213,12 +216,12 @@

    Arguments

    @@ -228,7 +231,7 @@

    Arguments

    @@ -243,7 +246,7 @@

    Arguments

    @@ -263,15 +266,97 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_reserve_block2d_d (matrix, row, col, block, transposed, existed)
    -         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix
    +    
          SUBROUTINE dbcsr_reserve_block2d_d (matrix, row, col, block, &
    +                                                      transposed, existed)
    +     !! Put a 2-D block in a DBCSR matrix using the btree
    +
    +         TYPE(dbcsr_type), INTENT(INOUT)           :: matrix
    +        !! DBCSR matrix
              INTEGER, INTENT(IN)                      :: row, col
    -         REAL(kind=real_8), DIMENSION(:, :), POINTER        :: block
    -         LOGICAL, INTENT(IN), OPTIONAL            :: transposed
    +        !! the row
    +        !! the column
    +         REAL(kind=real_8), DIMENSION(:, :), POINTER         :: block
    +        !! the block to reserve; added if not NULL
    +         LOGICAL, INTENT(IN), OPTIONAL            :: transposed
    +        !! the block holds transposed data
              LOGICAL, INTENT(OUT), OPTIONAL           :: existed
    +        !! block already existed
    +
    +         TYPE(btree_data_dp2d)          :: data_block, data_block2
    +         INTEGER                                  :: col_size, row_size, &
    +                                                     stored_row, stored_col, &
    +                                                     iw, nwms
    +         INTEGER, DIMENSION(:), POINTER           :: col_blk_size, row_blk_size
    +         LOGICAL                                  :: found, gift, tr, sym_tr
    +         REAL(kind=real_8), DIMENSION(:, :), POINTER         :: original_block
    +
    +!   ---------------------------------------------------------------------------
    +
    +         gift = ASSOCIATED(block)
    +         IF (gift) THEN
    +            original_block => block
    +         ELSE
    +            NULLIFY (original_block)
    +         END IF
    +         row_blk_size => array_data(matrix%row_blk_size)
    +         col_blk_size => array_data(matrix%col_blk_size)
    +         row_size = row_blk_size(row)
    +         col_size = col_blk_size(col)
    +
    +         stored_row = row; stored_col = col
    +         IF (PRESENT(transposed)) THEN
    +            tr = transposed
    +         ELSE
    +            tr = .FALSE.
    +         END IF
    +         sym_tr = .FALSE.
    +         CALL dbcsr_get_stored_coordinates(matrix, stored_row, stored_col)
    +         IF (.NOT. ASSOCIATED(matrix%wms)) THEN
    +            CALL dbcsr_work_create(matrix, work_mutable=.TRUE.)
    +!$OMP        MASTER
    +            matrix%valid = .FALSE.
    +!$OMP        END MASTER
    +!$OMP        BARRIER
    +         END IF
    +
    +         NULLIFY (data_block%p)
    +         IF (.NOT. gift) THEN
    +            ALLOCATE (data_block%p(row_size, col_size))
    +            block => data_block%p
    +         ELSE
    +            data_block%p => block
    +         END IF
    +         data_block%tr = tr
    +
    +         nwms = SIZE(matrix%wms)
    +         iw = 1
    +!$       IF (nwms < omp_get_num_threads()) &
    +!$          DBCSR_ABORT("Number of work matrices not equal to number of threads")
    +!$       iw = omp_get_thread_num() + 1
    +         CALL btree_add(matrix%wms(iw)%mutable%m%btree_d, &
    +                        make_coordinate_tuple(stored_row, stored_col), &
    +                        data_block, found, data_block2)
     
    -         CALL dbcsr_reserve_block2d_prv(matrix%prv, row, col, block, &
    -                                        transposed, existed)
    +         IF (.NOT. found) THEN
    +#if defined(_OPENMP) && (200711 <= _OPENMP)
    +!$OMP ATOMIC WRITE
    +            matrix%valid = .FALSE.
    +#else
    +!$OMP CRITICAL (critical_reserve_block2d)
    +            matrix%valid = .FALSE.
    +!$OMP END CRITICAL (critical_reserve_block2d)
    +#endif
    +            matrix%wms(iw)%lastblk = matrix%wms(iw)%lastblk + 1
    +            matrix%wms(iw)%datasize = matrix%wms(iw)%datasize + row_size*col_size
    +         ELSE
    +            IF (.NOT. gift) THEN
    +               DEALLOCATE (data_block%p)
    +            ELSE
    +               DEALLOCATE (original_block)
    +            END IF
    +            block => data_block2%p
    +         END IF
    +         IF (PRESENT(existed)) existed = found
           END SUBROUTINE dbcsr_reserve_block2d_d
     
    diff --git a/develop/proc/dbcsr_reserve_block2d_s.html b/develop/proc/dbcsr_reserve_block2d_s.html index cbfc214fdc2..f5a9ff909e1 100644 --- a/develop/proc/dbcsr_reserve_block2d_s.html +++ b/develop/proc/dbcsr_reserve_block2d_s.html @@ -74,20 +74,20 @@

    dbcsr_reserve_block2d_s
  • 59 statements + title=" 0.0% of total for procedures.">8 statements
  • - Source File + Source File
  • @@ -143,7 +143,6 @@

    private subroutine dbcsr_reserve_block2d_s(matrix, row, col, block, transpo

    -

    Put a 2-D block in a DBCSR matrix using the btree

    Arguments

    @@ -159,8 +158,8 @@

    Arguments

    @@ -184,13 +183,12 @@

    Arguments

    @@ -200,13 +198,12 @@

    Arguments

    @@ -216,12 +213,12 @@

    Arguments

    @@ -231,7 +228,7 @@

    Arguments

    @@ -246,7 +243,7 @@

    Arguments

    @@ -266,97 +263,15 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_reserve_block2d_s (matrix, row, col, block, &
    -                                                      transposed, existed)
    -     !! Put a 2-D block in a DBCSR matrix using the btree
    -
    -         TYPE(dbcsr_type), INTENT(INOUT)           :: matrix
    -        !! DBCSR matrix
    +    
          SUBROUTINE dbcsr_reserve_block2d_s (matrix, row, col, block, transposed, existed)
    +         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix
              INTEGER, INTENT(IN)                      :: row, col
    -        !! the row
    -        !! the column
    -         REAL(kind=real_4), DIMENSION(:, :), POINTER         :: block
    -        !! the block to reserve; added if not NULL
    -         LOGICAL, INTENT(IN), OPTIONAL            :: transposed
    -        !! the block holds transposed data
    +         REAL(kind=real_4), DIMENSION(:, :), POINTER        :: block
    +         LOGICAL, INTENT(IN), OPTIONAL            :: transposed
              LOGICAL, INTENT(OUT), OPTIONAL           :: existed
    -        !! block already existed
    -
    -         TYPE(btree_data_sp2d)          :: data_block, data_block2
    -         INTEGER                                  :: col_size, row_size, &
    -                                                     stored_row, stored_col, &
    -                                                     iw, nwms
    -         INTEGER, DIMENSION(:), POINTER           :: col_blk_size, row_blk_size
    -         LOGICAL                                  :: found, gift, tr, sym_tr
    -         REAL(kind=real_4), DIMENSION(:, :), POINTER         :: original_block
    -
    -!   ---------------------------------------------------------------------------
    -
    -         gift = ASSOCIATED(block)
    -         IF (gift) THEN
    -            original_block => block
    -         ELSE
    -            NULLIFY (original_block)
    -         END IF
    -         row_blk_size => array_data(matrix%row_blk_size)
    -         col_blk_size => array_data(matrix%col_blk_size)
    -         row_size = row_blk_size(row)
    -         col_size = col_blk_size(col)
    -
    -         stored_row = row; stored_col = col
    -         IF (PRESENT(transposed)) THEN
    -            tr = transposed
    -         ELSE
    -            tr = .FALSE.
    -         END IF
    -         sym_tr = .FALSE.
    -         CALL dbcsr_get_stored_coordinates(matrix, stored_row, stored_col)
    -         IF (.NOT. ASSOCIATED(matrix%wms)) THEN
    -            CALL dbcsr_work_create(matrix, work_mutable=.TRUE.)
    -!$OMP        MASTER
    -            matrix%valid = .FALSE.
    -!$OMP        END MASTER
    -!$OMP        BARRIER
    -         END IF
    -
    -         NULLIFY (data_block%p)
    -         IF (.NOT. gift) THEN
    -            ALLOCATE (data_block%p(row_size, col_size))
    -            block => data_block%p
    -         ELSE
    -            data_block%p => block
    -         END IF
    -         data_block%tr = tr
    -
    -         nwms = SIZE(matrix%wms)
    -         iw = 1
    -!$       IF (nwms < omp_get_num_threads()) &
    -!$          DBCSR_ABORT("Number of work matrices not equal to number of threads")
    -!$       iw = omp_get_thread_num() + 1
    -         CALL btree_add(matrix%wms(iw)%mutable%m%btree_s, &
    -                        make_coordinate_tuple(stored_row, stored_col), &
    -                        data_block, found, data_block2)
     
    -         IF (.NOT. found) THEN
    -#if defined(_OPENMP) && (200711 <= _OPENMP)
    -!$OMP ATOMIC WRITE
    -            matrix%valid = .FALSE.
    -#else
    -!$OMP CRITICAL (critical_reserve_block2d)
    -            matrix%valid = .FALSE.
    -!$OMP END CRITICAL (critical_reserve_block2d)
    -#endif
    -            matrix%wms(iw)%lastblk = matrix%wms(iw)%lastblk + 1
    -            matrix%wms(iw)%datasize = matrix%wms(iw)%datasize + row_size*col_size
    -         ELSE
    -            IF (.NOT. gift) THEN
    -               DEALLOCATE (data_block%p)
    -            ELSE
    -               DEALLOCATE (original_block)
    -            END IF
    -            block => data_block2%p
    -         END IF
    -         IF (PRESENT(existed)) existed = found
    +         CALL dbcsr_reserve_block2d_prv(matrix%prv, row, col, block, &
    +                                        transposed, existed)
           END SUBROUTINE dbcsr_reserve_block2d_s
     
    diff --git a/develop/proc/dbcsr_reserve_block2d_s~2.html b/develop/proc/dbcsr_reserve_block2d_s~2.html index c26ee4f6c4e..57eca18fa2f 100644 --- a/develop/proc/dbcsr_reserve_block2d_s~2.html +++ b/develop/proc/dbcsr_reserve_block2d_s~2.html @@ -74,20 +74,20 @@

    dbcsr_reserve_block2d_s
  • 8 statements + title=" 0.1% of total for procedures.">59 statements
  • - Source File + Source File
  • @@ -143,6 +143,7 @@

    private subroutine dbcsr_reserve_block2d_s(matrix, row, col, block, transpo

    +

    Put a 2-D block in a DBCSR matrix using the btree

    Arguments

    @@ -158,8 +159,8 @@

    Arguments

    @@ -183,12 +184,13 @@

    Arguments

    @@ -198,12 +200,13 @@

    Arguments

    @@ -213,12 +216,12 @@

    Arguments

    @@ -228,7 +231,7 @@

    Arguments

    @@ -243,7 +246,7 @@

    Arguments

    @@ -263,15 +266,97 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_reserve_block2d_s (matrix, row, col, block, transposed, existed)
    -         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix
    +    
          SUBROUTINE dbcsr_reserve_block2d_s (matrix, row, col, block, &
    +                                                      transposed, existed)
    +     !! Put a 2-D block in a DBCSR matrix using the btree
    +
    +         TYPE(dbcsr_type), INTENT(INOUT)           :: matrix
    +        !! DBCSR matrix
              INTEGER, INTENT(IN)                      :: row, col
    -         REAL(kind=real_4), DIMENSION(:, :), POINTER        :: block
    -         LOGICAL, INTENT(IN), OPTIONAL            :: transposed
    +        !! the row
    +        !! the column
    +         REAL(kind=real_4), DIMENSION(:, :), POINTER         :: block
    +        !! the block to reserve; added if not NULL
    +         LOGICAL, INTENT(IN), OPTIONAL            :: transposed
    +        !! the block holds transposed data
              LOGICAL, INTENT(OUT), OPTIONAL           :: existed
    +        !! block already existed
    +
    +         TYPE(btree_data_sp2d)          :: data_block, data_block2
    +         INTEGER                                  :: col_size, row_size, &
    +                                                     stored_row, stored_col, &
    +                                                     iw, nwms
    +         INTEGER, DIMENSION(:), POINTER           :: col_blk_size, row_blk_size
    +         LOGICAL                                  :: found, gift, tr, sym_tr
    +         REAL(kind=real_4), DIMENSION(:, :), POINTER         :: original_block
    +
    +!   ---------------------------------------------------------------------------
    +
    +         gift = ASSOCIATED(block)
    +         IF (gift) THEN
    +            original_block => block
    +         ELSE
    +            NULLIFY (original_block)
    +         END IF
    +         row_blk_size => array_data(matrix%row_blk_size)
    +         col_blk_size => array_data(matrix%col_blk_size)
    +         row_size = row_blk_size(row)
    +         col_size = col_blk_size(col)
    +
    +         stored_row = row; stored_col = col
    +         IF (PRESENT(transposed)) THEN
    +            tr = transposed
    +         ELSE
    +            tr = .FALSE.
    +         END IF
    +         sym_tr = .FALSE.
    +         CALL dbcsr_get_stored_coordinates(matrix, stored_row, stored_col)
    +         IF (.NOT. ASSOCIATED(matrix%wms)) THEN
    +            CALL dbcsr_work_create(matrix, work_mutable=.TRUE.)
    +!$OMP        MASTER
    +            matrix%valid = .FALSE.
    +!$OMP        END MASTER
    +!$OMP        BARRIER
    +         END IF
    +
    +         NULLIFY (data_block%p)
    +         IF (.NOT. gift) THEN
    +            ALLOCATE (data_block%p(row_size, col_size))
    +            block => data_block%p
    +         ELSE
    +            data_block%p => block
    +         END IF
    +         data_block%tr = tr
    +
    +         nwms = SIZE(matrix%wms)
    +         iw = 1
    +!$       IF (nwms < omp_get_num_threads()) &
    +!$          DBCSR_ABORT("Number of work matrices not equal to number of threads")
    +!$       iw = omp_get_thread_num() + 1
    +         CALL btree_add(matrix%wms(iw)%mutable%m%btree_s, &
    +                        make_coordinate_tuple(stored_row, stored_col), &
    +                        data_block, found, data_block2)
     
    -         CALL dbcsr_reserve_block2d_prv(matrix%prv, row, col, block, &
    -                                        transposed, existed)
    +         IF (.NOT. found) THEN
    +#if defined(_OPENMP) && (200711 <= _OPENMP)
    +!$OMP ATOMIC WRITE
    +            matrix%valid = .FALSE.
    +#else
    +!$OMP CRITICAL (critical_reserve_block2d)
    +            matrix%valid = .FALSE.
    +!$OMP END CRITICAL (critical_reserve_block2d)
    +#endif
    +            matrix%wms(iw)%lastblk = matrix%wms(iw)%lastblk + 1
    +            matrix%wms(iw)%datasize = matrix%wms(iw)%datasize + row_size*col_size
    +         ELSE
    +            IF (.NOT. gift) THEN
    +               DEALLOCATE (data_block%p)
    +            ELSE
    +               DEALLOCATE (original_block)
    +            END IF
    +            block => data_block2%p
    +         END IF
    +         IF (PRESENT(existed)) existed = found
           END SUBROUTINE dbcsr_reserve_block2d_s
     
    diff --git a/develop/proc/dbcsr_reserve_block2d_z.html b/develop/proc/dbcsr_reserve_block2d_z.html index 1df5c15db26..55a056d9691 100644 --- a/develop/proc/dbcsr_reserve_block2d_z.html +++ b/develop/proc/dbcsr_reserve_block2d_z.html @@ -74,20 +74,20 @@

    dbcsr_reserve_block2d_z
  • 59 statements + title=" 0.0% of total for procedures.">8 statements
  • - Source File + Source File
  • @@ -143,7 +143,6 @@

    private subroutine dbcsr_reserve_block2d_z(matrix, row, col, block, transpo

    -

    Put a 2-D block in a DBCSR matrix using the btree

    Arguments

    @@ -159,8 +158,8 @@

    Arguments

    @@ -184,13 +183,12 @@

    Arguments

    @@ -200,13 +198,12 @@

    Arguments

    @@ -216,12 +213,12 @@

    Arguments

    @@ -231,7 +228,7 @@

    Arguments

    @@ -246,7 +243,7 @@

    Arguments

    @@ -266,97 +263,15 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_reserve_block2d_z (matrix, row, col, block, &
    -                                                      transposed, existed)
    -     !! Put a 2-D block in a DBCSR matrix using the btree
    -
    -         TYPE(dbcsr_type), INTENT(INOUT)           :: matrix
    -        !! DBCSR matrix
    +    
          SUBROUTINE dbcsr_reserve_block2d_z (matrix, row, col, block, transposed, existed)
    +         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix
              INTEGER, INTENT(IN)                      :: row, col
    -        !! the row
    -        !! the column
    -         COMPLEX(kind=real_8), DIMENSION(:, :), POINTER         :: block
    -        !! the block to reserve; added if not NULL
    -         LOGICAL, INTENT(IN), OPTIONAL            :: transposed
    -        !! the block holds transposed data
    +         COMPLEX(kind=real_8), DIMENSION(:, :), POINTER        :: block
    +         LOGICAL, INTENT(IN), OPTIONAL            :: transposed
              LOGICAL, INTENT(OUT), OPTIONAL           :: existed
    -        !! block already existed
    -
    -         TYPE(btree_data_zp2d)          :: data_block, data_block2
    -         INTEGER                                  :: col_size, row_size, &
    -                                                     stored_row, stored_col, &
    -                                                     iw, nwms
    -         INTEGER, DIMENSION(:), POINTER           :: col_blk_size, row_blk_size
    -         LOGICAL                                  :: found, gift, tr, sym_tr
    -         COMPLEX(kind=real_8), DIMENSION(:, :), POINTER         :: original_block
    -
    -!   ---------------------------------------------------------------------------
    -
    -         gift = ASSOCIATED(block)
    -         IF (gift) THEN
    -            original_block => block
    -         ELSE
    -            NULLIFY (original_block)
    -         END IF
    -         row_blk_size => array_data(matrix%row_blk_size)
    -         col_blk_size => array_data(matrix%col_blk_size)
    -         row_size = row_blk_size(row)
    -         col_size = col_blk_size(col)
    -
    -         stored_row = row; stored_col = col
    -         IF (PRESENT(transposed)) THEN
    -            tr = transposed
    -         ELSE
    -            tr = .FALSE.
    -         END IF
    -         sym_tr = .FALSE.
    -         CALL dbcsr_get_stored_coordinates(matrix, stored_row, stored_col)
    -         IF (.NOT. ASSOCIATED(matrix%wms)) THEN
    -            CALL dbcsr_work_create(matrix, work_mutable=.TRUE.)
    -!$OMP        MASTER
    -            matrix%valid = .FALSE.
    -!$OMP        END MASTER
    -!$OMP        BARRIER
    -         END IF
    -
    -         NULLIFY (data_block%p)
    -         IF (.NOT. gift) THEN
    -            ALLOCATE (data_block%p(row_size, col_size))
    -            block => data_block%p
    -         ELSE
    -            data_block%p => block
    -         END IF
    -         data_block%tr = tr
    -
    -         nwms = SIZE(matrix%wms)
    -         iw = 1
    -!$       IF (nwms < omp_get_num_threads()) &
    -!$          DBCSR_ABORT("Number of work matrices not equal to number of threads")
    -!$       iw = omp_get_thread_num() + 1
    -         CALL btree_add(matrix%wms(iw)%mutable%m%btree_z, &
    -                        make_coordinate_tuple(stored_row, stored_col), &
    -                        data_block, found, data_block2)
     
    -         IF (.NOT. found) THEN
    -#if defined(_OPENMP) && (200711 <= _OPENMP)
    -!$OMP ATOMIC WRITE
    -            matrix%valid = .FALSE.
    -#else
    -!$OMP CRITICAL (critical_reserve_block2d)
    -            matrix%valid = .FALSE.
    -!$OMP END CRITICAL (critical_reserve_block2d)
    -#endif
    -            matrix%wms(iw)%lastblk = matrix%wms(iw)%lastblk + 1
    -            matrix%wms(iw)%datasize = matrix%wms(iw)%datasize + row_size*col_size
    -         ELSE
    -            IF (.NOT. gift) THEN
    -               DEALLOCATE (data_block%p)
    -            ELSE
    -               DEALLOCATE (original_block)
    -            END IF
    -            block => data_block2%p
    -         END IF
    -         IF (PRESENT(existed)) existed = found
    +         CALL dbcsr_reserve_block2d_prv(matrix%prv, row, col, block, &
    +                                        transposed, existed)
           END SUBROUTINE dbcsr_reserve_block2d_z
     
    diff --git a/develop/proc/dbcsr_reserve_block2d_z~2.html b/develop/proc/dbcsr_reserve_block2d_z~2.html index 484be59cb39..792e1697938 100644 --- a/develop/proc/dbcsr_reserve_block2d_z~2.html +++ b/develop/proc/dbcsr_reserve_block2d_z~2.html @@ -74,20 +74,20 @@

    dbcsr_reserve_block2d_z
  • 8 statements + title=" 0.1% of total for procedures.">59 statements
  • - Source File + Source File
  • @@ -143,6 +143,7 @@

    private subroutine dbcsr_reserve_block2d_z(matrix, row, col, block, transpo

    +

    Put a 2-D block in a DBCSR matrix using the btree

    Arguments

    @@ -158,8 +159,8 @@

    Arguments

    @@ -183,12 +184,13 @@

    Arguments

    @@ -198,12 +200,13 @@

    Arguments

    @@ -213,12 +216,12 @@

    Arguments

    @@ -228,7 +231,7 @@

    Arguments

    @@ -243,7 +246,7 @@

    Arguments

    @@ -263,15 +266,97 @@

    Arguments

    Source Code

    -
          SUBROUTINE dbcsr_reserve_block2d_z (matrix, row, col, block, transposed, existed)
    -         TYPE(dbcsr_type), INTENT(INOUT)          :: matrix
    +    
          SUBROUTINE dbcsr_reserve_block2d_z (matrix, row, col, block, &
    +                                                      transposed, existed)
    +     !! Put a 2-D block in a DBCSR matrix using the btree
    +
    +         TYPE(dbcsr_type), INTENT(INOUT)           :: matrix
    +        !! DBCSR matrix
              INTEGER, INTENT(IN)                      :: row, col
    -         COMPLEX(kind=real_8), DIMENSION(:, :), POINTER        :: block
    -         LOGICAL, INTENT(IN), OPTIONAL            :: transposed
    +        !! the row
    +        !! the column
    +         COMPLEX(kind=real_8), DIMENSION(:, :), POINTER         :: block
    +        !! the block to reserve; added if not NULL
    +         LOGICAL, INTENT(IN), OPTIONAL            :: transposed
    +        !! the block holds transposed data
              LOGICAL, INTENT(OUT), OPTIONAL           :: existed
    +        !! block already existed
    +
    +         TYPE(btree_data_zp2d)          :: data_block, data_block2
    +         INTEGER                                  :: col_size, row_size, &
    +                                                     stored_row, stored_col, &
    +                                                     iw, nwms
    +         INTEGER, DIMENSION(:), POINTER           :: col_blk_size, row_blk_size
    +         LOGICAL                                  :: found, gift, tr, sym_tr
    +         COMPLEX(kind=real_8), DIMENSION(:, :), POINTER         :: original_block
    +
    +!   ---------------------------------------------------------------------------
    +
    +         gift = ASSOCIATED(block)
    +         IF (gift) THEN
    +            original_block => block
    +         ELSE
    +            NULLIFY (original_block)
    +         END IF
    +         row_blk_size => array_data(matrix%row_blk_size)
    +         col_blk_size => array_data(matrix%col_blk_size)
    +         row_size = row_blk_size(row)
    +         col_size = col_blk_size(col)
    +
    +         stored_row = row; stored_col = col
    +         IF (PRESENT(transposed)) THEN
    +            tr = transposed
    +         ELSE
    +            tr = .FALSE.
    +         END IF
    +         sym_tr = .FALSE.
    +         CALL dbcsr_get_stored_coordinates(matrix, stored_row, stored_col)
    +         IF (.NOT. ASSOCIATED(matrix%wms)) THEN
    +            CALL dbcsr_work_create(matrix, work_mutable=.TRUE.)
    +!$OMP        MASTER
    +            matrix%valid = .FALSE.
    +!$OMP        END MASTER
    +!$OMP        BARRIER
    +         END IF
    +
    +         NULLIFY (data_block%p)
    +         IF (.NOT. gift) THEN
    +            ALLOCATE (data_block%p(row_size, col_size))
    +            block => data_block%p
    +         ELSE
    +            data_block%p => block
    +         END IF
    +         data_block%tr = tr
    +
    +         nwms = SIZE(matrix%wms)
    +         iw = 1
    +!$       IF (nwms < omp_get_num_threads()) &
    +!$          DBCSR_ABORT("Number of work matrices not equal to number of threads")
    +!$       iw = omp_get_thread_num() + 1
    +         CALL btree_add(matrix%wms(iw)%mutable%m%btree_z, &
    +                        make_coordinate_tuple(stored_row, stored_col), &
    +                        data_block, found, data_block2)
     
    -         CALL dbcsr_reserve_block2d_prv(matrix%prv, row, col, block, &
    -                                        transposed, existed)
    +         IF (.NOT. found) THEN
    +#if defined(_OPENMP) && (200711 <= _OPENMP)
    +!$OMP ATOMIC WRITE
    +            matrix%valid = .FALSE.
    +#else
    +!$OMP CRITICAL (critical_reserve_block2d)
    +            matrix%valid = .FALSE.
    +!$OMP END CRITICAL (critical_reserve_block2d)
    +#endif
    +            matrix%wms(iw)%lastblk = matrix%wms(iw)%lastblk + 1
    +            matrix%wms(iw)%datasize = matrix%wms(iw)%datasize + row_size*col_size
    +         ELSE
    +            IF (.NOT. gift) THEN
    +               DEALLOCATE (data_block%p)
    +            ELSE
    +               DEALLOCATE (original_block)
    +            END IF
    +            block => data_block2%p
    +         END IF
    +         IF (PRESENT(existed)) existed = found
           END SUBROUTINE dbcsr_reserve_block2d_z
     
    diff --git a/develop/proc/dbcsr_reserve_blocks.html b/develop/proc/dbcsr_reserve_blocks.html index 5a8debd5a2c..904f72176b2 100644 --- a/develop/proc/dbcsr_reserve_blocks.html +++ b/develop/proc/dbcsr_reserve_blocks.html @@ -74,20 +74,20 @@

    dbcsr_reserve_blocks
  • 80 statements + title=" 0.0% of total for procedures.">6 statements
  • - Source File + Source File
  • @@ -139,20 +139,10 @@

    Contents

    -

    public subroutine dbcsr_reserve_blocks(matrix, rows, columns, blk_pointers) +

    public subroutine dbcsr_reserve_blocks(matrix, rows, cols, blk_pointers)

    -

    Inserts block reservations into a matrix, avoiding the work matrix.

    -

    Data -No data can be specified; instead, space is reserved and zeroed. To -add data, call dbcsr_put_block afterwards.

    -

    Reserving existing blocks -Duplicates are not added, but allocations may be greater than -the minimum necessary.

    -

    blk_pointers -When blk_pointers is passed, the newly added blocks use these pointers. -No data is cleared in this case

    Arguments

    @@ -168,8 +158,8 @@

    Arguments

    @@ -193,13 +183,12 @@

    Arguments

    @@ -207,10 +196,9 @@

    Arguments

    DIMENSION(:) - + @@ -225,7 +213,7 @@

    Arguments

    @@ -245,141 +233,12 @@

    Arguments

    Source Code

    -
       SUBROUTINE dbcsr_reserve_blocks(matrix, rows, columns, blk_pointers)
    -      !! Inserts block reservations into a matrix, avoiding the work matrix.
    -      !!
    -      !! Data
    -      !! No data can be specified; instead, space is reserved and zeroed. To
    -      !! add data, call dbcsr_put_block afterwards.
    -      !!
    -      !! Reserving existing blocks
    -      !! Duplicates are not added, but allocations may be greater than
    -      !! the minimum necessary.
    -      !!
    -      !! blk_pointers
    -      !! When blk_pointers is passed, the newly added blocks use these pointers.
    -      !! No data is cleared in this case
    -
    +    
       SUBROUTINE dbcsr_reserve_blocks(matrix, rows, cols, blk_pointers)
           TYPE(dbcsr_type), INTENT(INOUT)                    :: matrix
    -         !! Matrix into which blocks should be added.
    -      INTEGER, DIMENSION(:), INTENT(IN)                  :: rows, columns
    -         !! Rows of the blocks to add
    -         !! Columns of the blocks to add
    +      INTEGER, DIMENSION(:), INTENT(IN)                  :: rows, cols
           INTEGER, DIMENSION(:), INTENT(IN), OPTIONAL        :: blk_pointers
    -         !! block pointers to use for new blocks
    -
    -      CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_reserve_blocks'
    -
    -      INTEGER :: blk, blk_p, data_size_new, data_size_old, handle, nblkrows, nblks_actual_added, &
    -                 nblks_added, nblks_new, nblks_old, new_data_sizes, nze
    -      INTEGER, ALLOCATABLE, DIMENSION(:)                 :: add_blkp, add_cols, add_rows, &
    -                                                            added_sizes, new_blk_p, new_col_i, &
    -                                                            new_row_i, old_row_i
    -      INTEGER, ALLOCATABLE, DIMENSION(:, :)              :: added_blk_info
    -
    -!   ---------------------------------------------------------------------------
     
    -      CALL timeset(routineN, handle)
    -      IF (SIZE(rows) /= SIZE(columns)) &
    -         DBCSR_ABORT("Size of rows and columns array must match.")
    -      IF (PRESENT(blk_pointers)) THEN
    -         IF (SIZE(rows) /= SIZE(blk_pointers)) &
    -            DBCSR_ABORT("Size of rows and block pointecs arrays must match.")
    -         data_size_old = 0
    -      ELSE
    -         ! Get current data size
    -         data_size_old = dbcsr_data_get_size_referenced(matrix%data_area)
    -      END IF
    -      ! Ensures that the rows and columns are sorted.
    -      nblks_added = SIZE(rows)
    -      ALLOCATE (add_rows(nblks_added))
    -      add_rows(:) = rows(:)
    -      ALLOCATE (add_cols(nblks_added))
    -      add_cols(:) = columns(:)
    -      IF (PRESENT(blk_pointers)) THEN
    -         ALLOCATE (add_blkp(nblks_added))
    -         add_blkp(:) = blk_pointers(:)
    -         CALL dbcsr_sort_indices(nblks_added, add_rows, add_cols, &
    -                                 blk_p=add_blkp)
    -      ELSE
    -         CALL dbcsr_sort_indices(nblks_added, add_rows, add_cols)
    -      END IF
    -      nblks_old = dbcsr_get_num_blocks(matrix)
    -      nblkrows = dbcsr_nblkrows_total(matrix)
    -      IF (SIZE(rows) .GT. 0 .AND. nblkrows .LE. 0) &
    -         DBCSR_ABORT("Can not add blocks to matrix with no rows.")
    -      ! Adjust the index.
    -      ! Get the old row indices
    -      ALLOCATE (old_row_i(nblks_old))
    -      CALL dbcsr_expand_row_index(matrix%row_p, old_row_i, &
    -                                  nblkrows, nblks_old)
    -      ! Calculate new block pointers. Possibly high estimates.
    -      new_data_sizes = 0
    -      blk_p = data_size_old + 1 ! New blocks start at the end of the old
    -      ALLOCATE (added_blk_info(3, nblks_added))
    -      ALLOCATE (added_sizes(nblks_added))
    -      DO blk = 1, nblks_added
    -         IF (PRESENT(blk_pointers)) THEN
    -            blk_p = add_blkp(blk)
    -         END IF
    -         added_blk_info(1:3, blk) = (/add_rows(blk), add_cols(blk), blk_p/)
    -         nze = dbcsr_blk_row_size(matrix, add_rows(blk)) &
    -               *dbcsr_blk_column_size(matrix, add_cols(blk))
    -         added_sizes(blk) = nze
    -         blk_p = blk_p + nze
    -      END DO
    -      DEALLOCATE (add_rows)
    -      DEALLOCATE (add_cols)
    -      IF (PRESENT(blk_pointers)) DEALLOCATE (add_blkp)
    -      !
    -      nblks_new = nblks_old + nblks_added ! Possibly high estimate
    -      ALLOCATE (new_row_i(nblks_new))
    -      ALLOCATE (new_col_i(nblks_new))
    -      ALLOCATE (new_blk_p(nblks_new))
    -      ! Merge the two indices
    -      IF (PRESENT(blk_pointers)) THEN
    -         CALL merge_index_arrays(new_row_i, new_col_i, new_blk_p, nblks_new, &
    -                                 old_row_i, matrix%col_i, matrix%blk_p, nblks_old, &
    -                                 added_blk_info, nblks_added, added_nblks=nblks_actual_added)
    -         data_size_new = 0
    -      ELSE
    -         CALL merge_index_arrays(new_row_i, new_col_i, new_blk_p, nblks_new, &
    -                                 old_row_i, matrix%col_i, matrix%blk_p, nblks_old, &
    -                                 added_blk_info, nblks_added, added_nblks=nblks_actual_added, &
    -                                 added_sizes=added_sizes, added_size_offset=data_size_old + 1, &
    -                                 added_size=data_size_new)
    -      END IF
    -      nblks_new = nblks_actual_added + nblks_old
    -      ! Free some memory
    -      DEALLOCATE (added_blk_info)
    -      DEALLOCATE (added_sizes)
    -      DEALLOCATE (old_row_i)
    -      ! We can skip this if no block was actually added.
    -      IF (nblks_actual_added .GT. 0) THEN
    -         ! Write the new index
    -         matrix%nblks = nblks_new
    -         matrix%nze = matrix%nze + data_size_new
    -         matrix%index(dbcsr_slot_nblks) = matrix%nblks
    -         matrix%index(dbcsr_slot_nze) = matrix%index(dbcsr_slot_nze)
    -         CALL dbcsr_clearfrom_index_array(matrix, dbcsr_slot_col_i)
    -         CALL dbcsr_clearfrom_index_array(matrix, dbcsr_slot_blk_p)
    -         CALL dbcsr_addto_index_array(matrix, dbcsr_slot_col_i, &
    -                                      new_col_i(1:nblks_new), &
    -                                      extra=nblks_new)
    -         CALL dbcsr_addto_index_array(matrix, dbcsr_slot_blk_p, &
    -                                      new_blk_p(1:nblks_new))
    -         CALL dbcsr_make_dbcsr_index(matrix%row_p, new_row_i(1:nblks_new), &
    -                                     nblkrows, nblks_new)
    -         IF (.NOT. PRESENT(blk_pointers)) THEN
    -            ! Resize data area to fit the new blocks.
    -            CALL dbcsr_data_ensure_size(matrix%data_area, &
    -                                        data_size=matrix%nze)
    -            ! Zero the new data blocks.
    -            CALL dbcsr_data_clear(matrix%data_area, &
    -                                  lb=data_size_old + 1, ub=matrix%nze)
    -         END IF
    -      END IF
    -      CALL timestop(handle)
    +      CALL dbcsr_reserve_blocks_prv(matrix%prv, rows, cols, blk_pointers)
        END SUBROUTINE dbcsr_reserve_blocks
     
    diff --git a/develop/proc/dbcsr_reserve_blocks~2.html b/develop/proc/dbcsr_reserve_blocks~2.html index 544dfe7ea9a..7f98b10ad24 100644 --- a/develop/proc/dbcsr_reserve_blocks~2.html +++ b/develop/proc/dbcsr_reserve_blocks~2.html @@ -74,20 +74,20 @@

    dbcsr_reserve_blocks
  • 6 statements + title=" 0.1% of total for procedures.">80 statements
  • - Source File + Source File
  • @@ -139,10 +139,20 @@

    Contents

    -

    public subroutine dbcsr_reserve_blocks(matrix, rows, cols, blk_pointers) +

    public subroutine dbcsr_reserve_blocks(matrix, rows, columns, blk_pointers)

    +

    Inserts block reservations into a matrix, avoiding the work matrix.

    +

    Data +No data can be specified; instead, space is reserved and zeroed. To +add data, call dbcsr_put_block afterwards.

    +

    Reserving existing blocks +Duplicates are not added, but allocations may be greater than +the minimum necessary.

    +

    blk_pointers +When blk_pointers is passed, the newly added blocks use these pointers. +No data is cleared in this case

    Arguments

    @@ -158,8 +168,8 @@

    Arguments

    @@ -183,12 +193,13 @@

    Arguments

    @@ -196,9 +207,10 @@

    Arguments

    DIMENSION(:) - + @@ -213,7 +225,7 @@

    Arguments

    @@ -233,12 +245,141 @@

    Arguments

    Source Code

    -
       SUBROUTINE dbcsr_reserve_blocks(matrix, rows, cols, blk_pointers)
    +    
       SUBROUTINE dbcsr_reserve_blocks(matrix, rows, columns, blk_pointers)
    +      !! Inserts block reservations into a matrix, avoiding the work matrix.
    +      !!
    +      !! Data
    +      !! No data can be specified; instead, space is reserved and zeroed. To
    +      !! add data, call dbcsr_put_block afterwards.
    +      !!
    +      !! Reserving existing blocks
    +      !! Duplicates are not added, but allocations may be greater than
    +      !! the minimum necessary.
    +      !!
    +      !! blk_pointers
    +      !! When blk_pointers is passed, the newly added blocks use these pointers.
    +      !! No data is cleared in this case
    +
           TYPE(dbcsr_type), INTENT(INOUT)                    :: matrix
    -      INTEGER, DIMENSION(:), INTENT(IN)                  :: rows, cols
    +         !! Matrix into which blocks should be added.
    +      INTEGER, DIMENSION(:), INTENT(IN)                  :: rows, columns
    +         !! Rows of the blocks to add
    +         !! Columns of the blocks to add
           INTEGER, DIMENSION(:), INTENT(IN), OPTIONAL        :: blk_pointers
    +         !! block pointers to use for new blocks
    +
    +      CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_reserve_blocks'
    +
    +      INTEGER :: blk, blk_p, data_size_new, data_size_old, handle, nblkrows, nblks_actual_added, &
    +                 nblks_added, nblks_new, nblks_old, new_data_sizes, nze
    +      INTEGER, ALLOCATABLE, DIMENSION(:)                 :: add_blkp, add_cols, add_rows, &
    +                                                            added_sizes, new_blk_p, new_col_i, &
    +                                                            new_row_i, old_row_i
    +      INTEGER, ALLOCATABLE, DIMENSION(:, :)              :: added_blk_info
    +
    +!   ---------------------------------------------------------------------------
     
    -      CALL dbcsr_reserve_blocks_prv(matrix%prv, rows, cols, blk_pointers)
    +      CALL timeset(routineN, handle)
    +      IF (SIZE(rows) /= SIZE(columns)) &
    +         DBCSR_ABORT("Size of rows and columns array must match.")
    +      IF (PRESENT(blk_pointers)) THEN
    +         IF (SIZE(rows) /= SIZE(blk_pointers)) &
    +            DBCSR_ABORT("Size of rows and block pointecs arrays must match.")
    +         data_size_old = 0
    +      ELSE
    +         ! Get current data size
    +         data_size_old = dbcsr_data_get_size_referenced(matrix%data_area)
    +      END IF
    +      ! Ensures that the rows and columns are sorted.
    +      nblks_added = SIZE(rows)
    +      ALLOCATE (add_rows(nblks_added))
    +      add_rows(:) = rows(:)
    +      ALLOCATE (add_cols(nblks_added))
    +      add_cols(:) = columns(:)
    +      IF (PRESENT(blk_pointers)) THEN
    +         ALLOCATE (add_blkp(nblks_added))
    +         add_blkp(:) = blk_pointers(:)
    +         CALL dbcsr_sort_indices(nblks_added, add_rows, add_cols, &
    +                                 blk_p=add_blkp)
    +      ELSE
    +         CALL dbcsr_sort_indices(nblks_added, add_rows, add_cols)
    +      END IF
    +      nblks_old = dbcsr_get_num_blocks(matrix)
    +      nblkrows = dbcsr_nblkrows_total(matrix)
    +      IF (SIZE(rows) .GT. 0 .AND. nblkrows .LE. 0) &
    +         DBCSR_ABORT("Can not add blocks to matrix with no rows.")
    +      ! Adjust the index.
    +      ! Get the old row indices
    +      ALLOCATE (old_row_i(nblks_old))
    +      CALL dbcsr_expand_row_index(matrix%row_p, old_row_i, &
    +                                  nblkrows, nblks_old)
    +      ! Calculate new block pointers. Possibly high estimates.
    +      new_data_sizes = 0
    +      blk_p = data_size_old + 1 ! New blocks start at the end of the old
    +      ALLOCATE (added_blk_info(3, nblks_added))
    +      ALLOCATE (added_sizes(nblks_added))
    +      DO blk = 1, nblks_added
    +         IF (PRESENT(blk_pointers)) THEN
    +            blk_p = add_blkp(blk)
    +         END IF
    +         added_blk_info(1:3, blk) = (/add_rows(blk), add_cols(blk), blk_p/)
    +         nze = dbcsr_blk_row_size(matrix, add_rows(blk)) &
    +               *dbcsr_blk_column_size(matrix, add_cols(blk))
    +         added_sizes(blk) = nze
    +         blk_p = blk_p + nze
    +      END DO
    +      DEALLOCATE (add_rows)
    +      DEALLOCATE (add_cols)
    +      IF (PRESENT(blk_pointers)) DEALLOCATE (add_blkp)
    +      !
    +      nblks_new = nblks_old + nblks_added ! Possibly high estimate
    +      ALLOCATE (new_row_i(nblks_new))
    +      ALLOCATE (new_col_i(nblks_new))
    +      ALLOCATE (new_blk_p(nblks_new))
    +      ! Merge the two indices
    +      IF (PRESENT(blk_pointers)) THEN
    +         CALL merge_index_arrays(new_row_i, new_col_i, new_blk_p, nblks_new, &
    +                                 old_row_i, matrix%col_i, matrix%blk_p, nblks_old, &
    +                                 added_blk_info, nblks_added, added_nblks=nblks_actual_added)
    +         data_size_new = 0
    +      ELSE
    +         CALL merge_index_arrays(new_row_i, new_col_i, new_blk_p, nblks_new, &
    +                                 old_row_i, matrix%col_i, matrix%blk_p, nblks_old, &
    +                                 added_blk_info, nblks_added, added_nblks=nblks_actual_added, &
    +                                 added_sizes=added_sizes, added_size_offset=data_size_old + 1, &
    +                                 added_size=data_size_new)
    +      END IF
    +      nblks_new = nblks_actual_added + nblks_old
    +      ! Free some memory
    +      DEALLOCATE (added_blk_info)
    +      DEALLOCATE (added_sizes)
    +      DEALLOCATE (old_row_i)
    +      ! We can skip this if no block was actually added.
    +      IF (nblks_actual_added .GT. 0) THEN
    +         ! Write the new index
    +         matrix%nblks = nblks_new
    +         matrix%nze = matrix%nze + data_size_new
    +         matrix%index(dbcsr_slot_nblks) = matrix%nblks
    +         matrix%index(dbcsr_slot_nze) = matrix%index(dbcsr_slot_nze)
    +         CALL dbcsr_clearfrom_index_array(matrix, dbcsr_slot_col_i)
    +         CALL dbcsr_clearfrom_index_array(matrix, dbcsr_slot_blk_p)
    +         CALL dbcsr_addto_index_array(matrix, dbcsr_slot_col_i, &
    +                                      new_col_i(1:nblks_new), &
    +                                      extra=nblks_new)
    +         CALL dbcsr_addto_index_array(matrix, dbcsr_slot_blk_p, &
    +                                      new_blk_p(1:nblks_new))
    +         CALL dbcsr_make_dbcsr_index(matrix%row_p, new_row_i(1:nblks_new), &
    +                                     nblkrows, nblks_new)
    +         IF (.NOT. PRESENT(blk_pointers)) THEN
    +            ! Resize data area to fit the new blocks.
    +            CALL dbcsr_data_ensure_size(matrix%data_area, &
    +                                        data_size=matrix%nze)
    +            ! Zero the new data blocks.
    +            CALL dbcsr_data_clear(matrix%data_area, &
    +                                  lb=data_size_old + 1, ub=matrix%nze)
    +         END IF
    +      END IF
    +      CALL timestop(handle)
        END SUBROUTINE dbcsr_reserve_blocks
     
    diff --git a/develop/proc/dbcsr_reserve_diag_blocks.html b/develop/proc/dbcsr_reserve_diag_blocks.html index 175ee8e0a1b..3c2394e6c42 100644 --- a/develop/proc/dbcsr_reserve_diag_blocks.html +++ b/develop/proc/dbcsr_reserve_diag_blocks.html @@ -74,20 +74,20 @@

    dbcsr_reserve_diag_blocks
  • 31 statements + title=" 0.0% of total for procedures.">4 statements
  • - Source File + Source File
  • @@ -143,7 +143,6 @@

    public subroutine dbcsr_reserve_diag_blocks(matrix)

    -

    Inserts diagonal blocks of a dbcsr matrix to make it a matrix with at least all diagonal blocks present

    Arguments

    @@ -159,8 +158,8 @@

    Arguments

    @@ -190,45 +189,9 @@

    Arguments

    Source Code

       SUBROUTINE dbcsr_reserve_diag_blocks(matrix)
    -      !! Inserts diagonal blocks of a dbcsr matrix to make it a matrix with at least all diagonal blocks present
    -
           TYPE(dbcsr_type), INTENT(INOUT)                    :: matrix
    -         !! Matrix into which blocks should be added.
    -
    -      INTEGER                                            :: blk_count, col, col_s, myrank, rank, &
    -                                                            row, row_s
    -      INTEGER, ALLOCATABLE, DIMENSION(:)                 :: columns, rows
    -      LOGICAL                                            :: tr
    -
    -      myrank = dbcsr_mp_mynode(dbcsr_distribution_mp(dbcsr_distribution(matrix)))
    -
    -      blk_count = 0
    -      ! should be possible to loop only over the local blockrows/blockcols
    -      DO row = 1, dbcsr_nblkrows_total(matrix)
    -         col = row
    -         tr = .FALSE.
    -         row_s = row; col_s = col
    -         CALL dbcsr_get_stored_coordinates(matrix, row_s, col_s, rank)
    -         IF (rank .EQ. myrank .AND. row_s .EQ. row .AND. col_s .EQ. col) blk_count = blk_count + 1
    -      END DO
    -
    -      ALLOCATE (rows(blk_count), columns(blk_count))
    -
    -      blk_count = 0
    -      DO row = 1, dbcsr_nblkrows_total(matrix)
    -         col = row
    -         tr = .FALSE.
    -         row_s = row; col_s = col
    -         CALL dbcsr_get_stored_coordinates(matrix, row_s, col_s, rank)
    -         IF (rank .EQ. myrank .AND. row_s .EQ. row .AND. col_s .EQ. col) THEN
    -            blk_count = blk_count + 1
    -            rows(blk_count) = row
    -            columns(blk_count) = col
    -         END IF
    -      END DO
    -
    -      CALL dbcsr_reserve_blocks(matrix, rows, columns)
     
    +      CALL dbcsr_reserve_diag_blocks_prv(matrix%prv)
        END SUBROUTINE dbcsr_reserve_diag_blocks
     
    diff --git a/develop/proc/dbcsr_reserve_diag_blocks~2.html b/develop/proc/dbcsr_reserve_diag_blocks~2.html index 65cf1ca77e5..51f869aed53 100644 --- a/develop/proc/dbcsr_reserve_diag_blocks~2.html +++ b/develop/proc/dbcsr_reserve_diag_blocks~2.html @@ -74,20 +74,20 @@

    dbcsr_reserve_diag_blocks
  • 4 statements + title=" 0.1% of total for procedures.">31 statements
  • - Source File + Source File
  • @@ -143,6 +143,7 @@

    public subroutine dbcsr_reserve_diag_blocks(matrix)

    +

    Inserts diagonal blocks of a dbcsr matrix to make it a matrix with at least all diagonal blocks present

    Arguments

    @@ -158,8 +159,8 @@

    Arguments

    @@ -189,9 +190,45 @@

    Arguments

    Source Code

       SUBROUTINE dbcsr_reserve_diag_blocks(matrix)
    +      !! Inserts diagonal blocks of a dbcsr matrix to make it a matrix with at least all diagonal blocks present
    +
           TYPE(dbcsr_type), INTENT(INOUT)                    :: matrix
    +         !! Matrix into which blocks should be added.
    +
    +      INTEGER                                            :: blk_count, col, col_s, myrank, rank, &
    +                                                            row, row_s
    +      INTEGER, ALLOCATABLE, DIMENSION(:)                 :: columns, rows
    +      LOGICAL                                            :: tr
    +
    +      myrank = dbcsr_mp_mynode(dbcsr_distribution_mp(dbcsr_distribution(matrix)))
    +
    +      blk_count = 0
    +      ! should be possible to loop only over the local blockrows/blockcols
    +      DO row = 1, dbcsr_nblkrows_total(matrix)
    +         col = row
    +         tr = .FALSE.
    +         row_s = row; col_s = col
    +         CALL dbcsr_get_stored_coordinates(matrix, row_s, col_s, rank)
    +         IF (rank .EQ. myrank .AND. row_s .EQ. row .AND. col_s .EQ. col) blk_count = blk_count + 1
    +      END DO
    +
    +      ALLOCATE (rows(blk_count), columns(blk_count))
    +
    +      blk_count = 0
    +      DO row = 1, dbcsr_nblkrows_total(matrix)
    +         col = row
    +         tr = .FALSE.
    +         row_s = row; col_s = col
    +         CALL dbcsr_get_stored_coordinates(matrix, row_s, col_s, rank)
    +         IF (rank .EQ. myrank .AND. row_s .EQ. row .AND. col_s .EQ. col) THEN
    +            blk_count = blk_count + 1
    +            rows(blk_count) = row
    +            columns(blk_count) = col
    +         END IF
    +      END DO
    +
    +      CALL dbcsr_reserve_blocks(matrix, rows, columns)
     
    -      CALL dbcsr_reserve_diag_blocks_prv(matrix%prv)
        END SUBROUTINE dbcsr_reserve_diag_blocks
     
    diff --git a/develop/proc/dbcsr_reset_locals.html b/develop/proc/dbcsr_reset_locals.html index cdaa8cae7f2..659adb96763 100644 --- a/develop/proc/dbcsr_reset_locals.html +++ b/develop/proc/dbcsr_reset_locals.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_reset_vlocals.html b/develop/proc/dbcsr_reset_vlocals.html index 48bd3318cd1..28a92dee888 100644 --- a/develop/proc/dbcsr_reset_vlocals.html +++ b/develop/proc/dbcsr_reset_vlocals.html @@ -160,7 +160,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_rget_any.html b/develop/proc/dbcsr_rget_any.html index 976a2f95c91..4486ba61b71 100644 --- a/develop/proc/dbcsr_rget_any.html +++ b/develop/proc/dbcsr_rget_any.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    @@ -249,7 +249,7 @@

    Arguments

    @@ -264,7 +264,7 @@

    Arguments

    @@ -279,7 +279,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_row_block_offsets.html b/develop/proc/dbcsr_row_block_offsets.html index fcce31ac9f5..83a53ac1293 100644 --- a/develop/proc/dbcsr_row_block_offsets.html +++ b/develop/proc/dbcsr_row_block_offsets.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_row_block_sizes.html b/develop/proc/dbcsr_row_block_sizes.html index 8ea4279178e..ca8a9f3a91d 100644 --- a/develop/proc/dbcsr_row_block_sizes.html +++ b/develop/proc/dbcsr_row_block_sizes.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_run_tests.html b/develop/proc/dbcsr_run_tests.html index a8cf1aab09f..c270b5e701e 100644 --- a/develop/proc/dbcsr_run_tests.html +++ b/develop/proc/dbcsr_run_tests.html @@ -74,20 +74,20 @@

    dbcsr_run_tests
  • 118 statements + title=" 0.0% of total for procedures.">15 statements
  • - Source File + Source File
  • @@ -143,8 +143,6 @@

    public subroutine dbcsr_run_tests(mp_group, io_unit, nproc, matrix_sizes, t

    -

    Performs a variety of matrix multiplies of same matrices on different -processor grids

    Arguments

    @@ -160,8 +158,8 @@

    Arguments

    @@ -185,8 +183,7 @@

    Arguments

    @@ -201,7 +198,7 @@

    Arguments

    @@ -216,7 +213,7 @@

    Arguments

    @@ -231,7 +228,7 @@

    Arguments

    @@ -246,9 +243,7 @@

    Arguments

    @@ -263,9 +258,7 @@

    Arguments

    @@ -280,9 +273,7 @@

    Arguments

    @@ -297,12 +288,12 @@

    Arguments

    @@ -312,13 +303,12 @@

    Arguments

    @@ -328,13 +318,12 @@

    Arguments

    @@ -344,8 +333,7 @@

    Arguments

    @@ -360,8 +348,7 @@

    Arguments

    @@ -376,13 +363,12 @@

    Arguments

    @@ -392,12 +378,12 @@

    Arguments

    @@ -407,7 +393,7 @@

    Arguments

    @@ -422,7 +408,7 @@

    Arguments

    @@ -442,184 +428,29 @@

    Arguments

    Source Code

    -
       SUBROUTINE dbcsr_run_tests(mp_group, io_unit, nproc, &
    -                              matrix_sizes, trs, &
    +    
       SUBROUTINE dbcsr_run_tests(mp_group, io_unit, nproc, matrix_sizes, trs, &
                                   bs_m, bs_n, bs_k, sparsities, alpha, beta, data_type, test_type, &
                                   n_loops, eps, retain_sparsity, always_checksum)
    -      !! Performs a variety of matrix multiplies of same matrices on different
    -      !! processor grids
     
    -      TYPE(mp_comm_type), INTENT(IN)                     :: mp_group
    -      INTEGER, INTENT(IN)                                :: io_unit
    -         !! MPI communicator
    -         !! which unit to write to, if not negative
    +      INTEGER, INTENT(IN)                                :: mp_group, io_unit
           INTEGER, DIMENSION(:), POINTER                     :: nproc
    -         !! number of processors to test on
           INTEGER, DIMENSION(:), INTENT(in)                  :: matrix_sizes
    -         !! size of matrices to test
           LOGICAL, DIMENSION(2), INTENT(in)                  :: trs
    -         !! transposes of the two matrices
           INTEGER, DIMENSION(:), POINTER                     :: bs_m, bs_n, bs_k
    -         !! block sizes of the 3 dimensions
    -         !! block sizes of the 3 dimensions
    -         !! block sizes of the 3 dimensions
           REAL(kind=dp), DIMENSION(3), INTENT(in)            :: sparsities
    -         !! sparsities of matrices to create
           REAL(kind=dp), INTENT(in)                          :: alpha, beta
    -         !! alpha value to use in multiply
    -         !! beta value to use in multiply
           INTEGER, INTENT(IN)                                :: data_type, test_type, n_loops
    -         !! matrix data type
    -         !! number of repetition for each multiplication
           REAL(kind=dp), INTENT(in)                          :: eps
    -         !! eps value for filtering
           LOGICAL, INTENT(in)                                :: retain_sparsity, always_checksum
    -         !! checksum after each multiplication
    -
    -      CHARACTER(len=*), PARAMETER :: fmt_desc = '(A,3(1X,I6),1X,A,2(1X,I5),1X,A,2(1X,L1))', &
    -                                     routineN = 'dbcsr_run_tests'
    -
    -      CHARACTER                                          :: t_a, t_b
    -      INTEGER                                            :: bmax, bmin, error_handle, &
    -                                                            mynode, numnodes
    -      INTEGER, ALLOCATABLE, DIMENSION(:, :)              :: group_sizes
    -      INTEGER, DIMENSION(2)                              :: npdims
    -      INTEGER, DIMENSION(:), POINTER, CONTIGUOUS         :: col_dist_a, col_dist_b, col_dist_c, &
    -                                                            row_dist_a, row_dist_b, row_dist_c, &
    -                                                            sizes_k, sizes_m, sizes_n
    -      LOGICAL                                            :: pgiven
    -      TYPE(dbcsr_distribution_obj)                       :: dist_a, dist_b, dist_c
    -      TYPE(dbcsr_mp_obj)                                 :: mp_env
    -      TYPE(dbcsr_type), TARGET                           :: matrix_a, matrix_b, matrix_c
    -      TYPE(mp_comm_type)                                 :: cart_group
    -
    -!   ---------------------------------------------------------------------------
    -
    -      CALL timeset(routineN, error_handle)
    -      ! Create the row/column block sizes.
    -      IF (ASSOCIATED(bs_m)) THEN
    -         bmin = MINVAL(bs_m(2::2))
    -         bmax = MAXVAL(bs_m(2::2))
    -         CALL dbcsr_make_random_block_sizes(sizes_m, matrix_sizes(1), bs_m)
    -      ELSE
    -         CALL dbcsr_make_random_block_sizes(sizes_m, matrix_sizes(1), (/1, 13, 2, 5/))
    -         bmin = 5; bmax = 13
    -      END IF
    -      IF (ASSOCIATED(bs_n)) THEN
    -         bmin = MIN(bmin, MINVAL(bs_n(2::2)))
    -         bmax = MAX(bmax, MAXVAL(bs_n(2::2)))
    -         CALL dbcsr_make_random_block_sizes(sizes_n, matrix_sizes(2), bs_n)
    -      ELSE
    -         CALL dbcsr_make_random_block_sizes(sizes_n, matrix_sizes(2), (/1, 13, 2, 5/))
    -         bmin = MIN(bmin, 5); bmax = MAX(bmax, 13)
    -      END IF
    -      IF (ASSOCIATED(bs_k)) THEN
    -         bmin = MIN(bmin, MINVAL(bs_k(2::2)))
    -         bmax = MAX(bmax, MAXVAL(bs_k(2::2)))
    -         CALL dbcsr_make_random_block_sizes(sizes_k, matrix_sizes(3), bs_k)
    -      ELSE
    -         CALL dbcsr_make_random_block_sizes(sizes_k, matrix_sizes(3), (/1, 13, 2, 5/))
    -         bmin = MIN(bmin, 5); bmax = MAX(bmax, 13)
    -      END IF
    -      !
    -      ! Create dist
    -
    -      ! Create the random matrices.
    -      CALL dbcsr_mp_make_env(mp_env, cart_group, mp_group)
    -      npdims(1) = dbcsr_mp_nprows(mp_env)
    -      npdims(2) = dbcsr_mp_npcols(mp_env)
    -      CALL dbcsr_dist_bin(row_dist_c, SIZE(sizes_m), npdims(1), &
    -                          sizes_m)
    -      CALL dbcsr_dist_bin(col_dist_c, SIZE(sizes_n), npdims(2), &
    -                          sizes_n)
    -      CALL dbcsr_distribution_new(dist_c, mp_env, row_dist_c, col_dist_c)
    -      CALL dbcsr_make_random_matrix(matrix_c, sizes_m, sizes_n, "Matrix C", &
    -                                    REAL(sparsities(3), real_8), &
    -                                    mp_group, data_type=data_type, dist=dist_c)
    -      CALL dbcsr_distribution_release(dist_c)
    -      IF (trs(1)) THEN
    -         CALL dbcsr_dist_bin(row_dist_a, SIZE(sizes_k), npdims(1), &
    -                             sizes_k)
    -         CALL dbcsr_dist_bin(col_dist_a, SIZE(sizes_m), npdims(2), &
    -                             sizes_m)
    -         CALL dbcsr_distribution_new(dist_a, mp_env, row_dist_a, col_dist_a)
    -         CALL dbcsr_make_random_matrix(matrix_a, sizes_k, sizes_m, "Matrix A", &
    -                                       REAL(sparsities(1), real_8), &
    -                                       mp_group, data_type=data_type, dist=dist_a)
    -         DEALLOCATE (row_dist_a, col_dist_a)
    -      ELSE
    -         CALL dbcsr_dist_bin(col_dist_a, SIZE(sizes_k), npdims(2), &
    -                             sizes_k)
    -         CALL dbcsr_distribution_new(dist_a, mp_env, row_dist_c, col_dist_a)
    -         CALL dbcsr_make_random_matrix(matrix_a, sizes_m, sizes_k, "Matrix A", &
    -                                       REAL(sparsities(1), real_8), &
    -                                       mp_group, data_type=data_type, dist=dist_a)
    -         DEALLOCATE (col_dist_a)
    -      END IF
    -      CALL dbcsr_distribution_release(dist_a)
    -      IF (trs(2)) THEN
    -         CALL dbcsr_dist_bin(row_dist_b, SIZE(sizes_n), npdims(1), &
    -                             sizes_n)
    -         CALL dbcsr_dist_bin(col_dist_b, SIZE(sizes_k), npdims(2), &
    -                             sizes_k)
    -         CALL dbcsr_distribution_new(dist_b, mp_env, row_dist_b, col_dist_b)
    -         CALL dbcsr_make_random_matrix(matrix_b, sizes_n, sizes_k, "Matrix B", &
    -                                       REAL(sparsities(2), real_8), &
    -                                       mp_group, data_type=data_type, dist=dist_b)
    -         DEALLOCATE (row_dist_b, col_dist_b)
    -      ELSE
    -         CALL dbcsr_dist_bin(row_dist_b, SIZE(sizes_k), npdims(1), &
    -                             sizes_k)
    -         CALL dbcsr_distribution_new(dist_b, mp_env, row_dist_b, col_dist_c)
    -         CALL dbcsr_make_random_matrix(matrix_b, sizes_k, sizes_n, "Matrix B", &
    -                                       REAL(sparsities(2), real_8), &
    -                                       mp_group, data_type=data_type, dist=dist_b)
    -         DEALLOCATE (row_dist_b)
    -      END IF
    -      CALL dbcsr_mp_release(mp_env)
    -      CALL dbcsr_distribution_release(dist_b)
    -      DEALLOCATE (row_dist_c, col_dist_c)
    -      DEALLOCATE (sizes_m, sizes_n, sizes_k)
    -      ! Prepare test parameters
    -      IF (io_unit .GT. 0) THEN
    -         WRITE (io_unit, fmt_desc) "Testing with sizes", matrix_sizes(1:3), &
    -            "min/max block sizes", bmin, bmax, "transposed?", trs(1:2)
    -      END IF
    -      CALL mp_environ(numnodes, mynode, mp_group)
    -      pgiven = ASSOCIATED(nproc)
    -      IF (pgiven) pgiven = nproc(1) .NE. 0
    -      IF (pgiven) THEN
    -         ALLOCATE (group_sizes(SIZE(nproc), 2))
    -         group_sizes(:, 1) = nproc(:)
    -         group_sizes(:, 2) = 0
    -      ELSE
    -         !ALLOCATE (group_sizes (numnodes, 2))
    -         !DO test = numnodes, 1, -1
    -         !   group_sizes(1+numnodes-test, 1:2) = (/ test, 0 /)
    -         !ENDDO
    -         ALLOCATE (group_sizes(1, 2))
    -         group_sizes(1, 1:2) = (/numnodes, 0/)
    -      END IF
    -      t_a = 'N'; IF (trs(1)) t_a = 'T'
    -      t_b = 'N'; IF (trs(2)) t_b = 'T'
    -
    -      SELECT CASE (test_type)
    -      CASE (dbcsr_test_mm)
    -         CALL test_multiplies_multiproc(group_sizes, &
    -                                        matrix_a, matrix_b, matrix_c, t_a, t_b, &
    -                                        dbcsr_scalar(REAL(alpha, real_8)), dbcsr_scalar(REAL(beta, real_8)), &
    -                                        n_loops=n_loops, eps=eps, &
    -                                        io_unit=io_unit, always_checksum=always_checksum, &
    -                                        retain_sparsity=retain_sparsity)
    -      CASE (dbcsr_test_binary_io)
    -         CALL test_binary_io(matrix_a, io_unit)
    -      END SELECT
    -
    -      CALL dbcsr_release(matrix_a)
    -      CALL dbcsr_release(matrix_b)
    -      CALL dbcsr_release(matrix_c)
    -      CALL mp_comm_free(cart_group)
    -      CALL timestop(error_handle)
    +
    +      TYPE(mp_comm_type)                                 :: my_mp_group
    +
    +      CALL my_mp_group%set_handle(mp_group)
    +
    +      CALL dbcsr_run_tests_prv(my_mp_group, io_unit, nproc, matrix_sizes, trs, &
    +                               bs_m, bs_n, bs_k, sparsities, alpha, beta, data_type, test_type, &
    +                               n_loops, eps, retain_sparsity, always_checksum)
    +
        END SUBROUTINE dbcsr_run_tests
     
    diff --git a/develop/proc/dbcsr_run_tests~2.html b/develop/proc/dbcsr_run_tests~2.html index 073b17c22d7..c154b64b766 100644 --- a/develop/proc/dbcsr_run_tests~2.html +++ b/develop/proc/dbcsr_run_tests~2.html @@ -74,20 +74,20 @@

    dbcsr_run_tests
  • 15 statements + title=" 0.2% of total for procedures.">118 statements
  • - Source File + Source File
  • @@ -143,6 +143,8 @@

    public subroutine dbcsr_run_tests(mp_group, io_unit, nproc, matrix_sizes, t

    +

    Performs a variety of matrix multiplies of same matrices on different +processor grids

    Arguments

    @@ -158,8 +160,8 @@

    Arguments

    @@ -198,7 +201,7 @@

    Arguments

    @@ -213,7 +216,7 @@

    Arguments

    @@ -228,7 +231,7 @@

    Arguments

    @@ -243,7 +246,9 @@

    Arguments

    @@ -258,7 +263,9 @@

    Arguments

    @@ -273,7 +280,9 @@

    Arguments

    @@ -288,12 +297,12 @@

    Arguments

    @@ -303,7 +312,8 @@

    Arguments

    @@ -318,12 +328,13 @@

    Arguments

    @@ -333,7 +344,8 @@

    Arguments

    @@ -348,12 +360,13 @@

    Arguments

    @@ -363,12 +376,13 @@

    Arguments

    @@ -378,12 +392,12 @@

    Arguments

    @@ -393,12 +407,12 @@

    Arguments

    @@ -408,7 +422,7 @@

    Arguments

    @@ -428,29 +442,184 @@

    Arguments

    Source Code

    -
       SUBROUTINE dbcsr_run_tests(mp_group, io_unit, nproc, matrix_sizes, trs, &
    +    
       SUBROUTINE dbcsr_run_tests(mp_group, io_unit, nproc, &
    +                              matrix_sizes, trs, &
                                   bs_m, bs_n, bs_k, sparsities, alpha, beta, data_type, test_type, &
                                   n_loops, eps, retain_sparsity, always_checksum)
    +      !! Performs a variety of matrix multiplies of same matrices on different
    +      !! processor grids
     
    -      INTEGER, INTENT(IN)                                :: mp_group, io_unit
    +      TYPE(mp_comm_type), INTENT(IN)                     :: mp_group
    +      INTEGER, INTENT(IN)                                :: io_unit
    +         !! MPI communicator
    +         !! which unit to write to, if not negative
           INTEGER, DIMENSION(:), POINTER                     :: nproc
    +         !! number of processors to test on
           INTEGER, DIMENSION(:), INTENT(in)                  :: matrix_sizes
    +         !! size of matrices to test
           LOGICAL, DIMENSION(2), INTENT(in)                  :: trs
    +         !! transposes of the two matrices
           INTEGER, DIMENSION(:), POINTER                     :: bs_m, bs_n, bs_k
    +         !! block sizes of the 3 dimensions
    +         !! block sizes of the 3 dimensions
    +         !! block sizes of the 3 dimensions
           REAL(kind=dp), DIMENSION(3), INTENT(in)            :: sparsities
    +         !! sparsities of matrices to create
           REAL(kind=dp), INTENT(in)                          :: alpha, beta
    +         !! alpha value to use in multiply
    +         !! beta value to use in multiply
           INTEGER, INTENT(IN)                                :: data_type, test_type, n_loops
    +         !! matrix data type
    +         !! number of repetition for each multiplication
           REAL(kind=dp), INTENT(in)                          :: eps
    +         !! eps value for filtering
           LOGICAL, INTENT(in)                                :: retain_sparsity, always_checksum
    -
    -      TYPE(mp_comm_type)                                 :: my_mp_group
    -
    -      CALL my_mp_group%set_handle(mp_group)
    -
    -      CALL dbcsr_run_tests_prv(my_mp_group, io_unit, nproc, matrix_sizes, trs, &
    -                               bs_m, bs_n, bs_k, sparsities, alpha, beta, data_type, test_type, &
    -                               n_loops, eps, retain_sparsity, always_checksum)
    -
    +         !! checksum after each multiplication
    +
    +      CHARACTER(len=*), PARAMETER :: fmt_desc = '(A,3(1X,I6),1X,A,2(1X,I5),1X,A,2(1X,L1))', &
    +                                     routineN = 'dbcsr_run_tests'
    +
    +      CHARACTER                                          :: t_a, t_b
    +      INTEGER                                            :: bmax, bmin, error_handle, &
    +                                                            mynode, numnodes
    +      INTEGER, ALLOCATABLE, DIMENSION(:, :)              :: group_sizes
    +      INTEGER, DIMENSION(2)                              :: npdims
    +      INTEGER, DIMENSION(:), POINTER, CONTIGUOUS         :: col_dist_a, col_dist_b, col_dist_c, &
    +                                                            row_dist_a, row_dist_b, row_dist_c, &
    +                                                            sizes_k, sizes_m, sizes_n
    +      LOGICAL                                            :: pgiven
    +      TYPE(dbcsr_distribution_obj)                       :: dist_a, dist_b, dist_c
    +      TYPE(dbcsr_mp_obj)                                 :: mp_env
    +      TYPE(dbcsr_type), TARGET                           :: matrix_a, matrix_b, matrix_c
    +      TYPE(mp_comm_type)                                 :: cart_group
    +
    +!   ---------------------------------------------------------------------------
    +
    +      CALL timeset(routineN, error_handle)
    +      ! Create the row/column block sizes.
    +      IF (ASSOCIATED(bs_m)) THEN
    +         bmin = MINVAL(bs_m(2::2))
    +         bmax = MAXVAL(bs_m(2::2))
    +         CALL dbcsr_make_random_block_sizes(sizes_m, matrix_sizes(1), bs_m)
    +      ELSE
    +         CALL dbcsr_make_random_block_sizes(sizes_m, matrix_sizes(1), (/1, 13, 2, 5/))
    +         bmin = 5; bmax = 13
    +      END IF
    +      IF (ASSOCIATED(bs_n)) THEN
    +         bmin = MIN(bmin, MINVAL(bs_n(2::2)))
    +         bmax = MAX(bmax, MAXVAL(bs_n(2::2)))
    +         CALL dbcsr_make_random_block_sizes(sizes_n, matrix_sizes(2), bs_n)
    +      ELSE
    +         CALL dbcsr_make_random_block_sizes(sizes_n, matrix_sizes(2), (/1, 13, 2, 5/))
    +         bmin = MIN(bmin, 5); bmax = MAX(bmax, 13)
    +      END IF
    +      IF (ASSOCIATED(bs_k)) THEN
    +         bmin = MIN(bmin, MINVAL(bs_k(2::2)))
    +         bmax = MAX(bmax, MAXVAL(bs_k(2::2)))
    +         CALL dbcsr_make_random_block_sizes(sizes_k, matrix_sizes(3), bs_k)
    +      ELSE
    +         CALL dbcsr_make_random_block_sizes(sizes_k, matrix_sizes(3), (/1, 13, 2, 5/))
    +         bmin = MIN(bmin, 5); bmax = MAX(bmax, 13)
    +      END IF
    +      !
    +      ! Create dist
    +
    +      ! Create the random matrices.
    +      CALL dbcsr_mp_make_env(mp_env, cart_group, mp_group)
    +      npdims(1) = dbcsr_mp_nprows(mp_env)
    +      npdims(2) = dbcsr_mp_npcols(mp_env)
    +      CALL dbcsr_dist_bin(row_dist_c, SIZE(sizes_m), npdims(1), &
    +                          sizes_m)
    +      CALL dbcsr_dist_bin(col_dist_c, SIZE(sizes_n), npdims(2), &
    +                          sizes_n)
    +      CALL dbcsr_distribution_new(dist_c, mp_env, row_dist_c, col_dist_c)
    +      CALL dbcsr_make_random_matrix(matrix_c, sizes_m, sizes_n, "Matrix C", &
    +                                    REAL(sparsities(3), real_8), &
    +                                    mp_group, data_type=data_type, dist=dist_c)
    +      CALL dbcsr_distribution_release(dist_c)
    +      IF (trs(1)) THEN
    +         CALL dbcsr_dist_bin(row_dist_a, SIZE(sizes_k), npdims(1), &
    +                             sizes_k)
    +         CALL dbcsr_dist_bin(col_dist_a, SIZE(sizes_m), npdims(2), &
    +                             sizes_m)
    +         CALL dbcsr_distribution_new(dist_a, mp_env, row_dist_a, col_dist_a)
    +         CALL dbcsr_make_random_matrix(matrix_a, sizes_k, sizes_m, "Matrix A", &
    +                                       REAL(sparsities(1), real_8), &
    +                                       mp_group, data_type=data_type, dist=dist_a)
    +         DEALLOCATE (row_dist_a, col_dist_a)
    +      ELSE
    +         CALL dbcsr_dist_bin(col_dist_a, SIZE(sizes_k), npdims(2), &
    +                             sizes_k)
    +         CALL dbcsr_distribution_new(dist_a, mp_env, row_dist_c, col_dist_a)
    +         CALL dbcsr_make_random_matrix(matrix_a, sizes_m, sizes_k, "Matrix A", &
    +                                       REAL(sparsities(1), real_8), &
    +                                       mp_group, data_type=data_type, dist=dist_a)
    +         DEALLOCATE (col_dist_a)
    +      END IF
    +      CALL dbcsr_distribution_release(dist_a)
    +      IF (trs(2)) THEN
    +         CALL dbcsr_dist_bin(row_dist_b, SIZE(sizes_n), npdims(1), &
    +                             sizes_n)
    +         CALL dbcsr_dist_bin(col_dist_b, SIZE(sizes_k), npdims(2), &
    +                             sizes_k)
    +         CALL dbcsr_distribution_new(dist_b, mp_env, row_dist_b, col_dist_b)
    +         CALL dbcsr_make_random_matrix(matrix_b, sizes_n, sizes_k, "Matrix B", &
    +                                       REAL(sparsities(2), real_8), &
    +                                       mp_group, data_type=data_type, dist=dist_b)
    +         DEALLOCATE (row_dist_b, col_dist_b)
    +      ELSE
    +         CALL dbcsr_dist_bin(row_dist_b, SIZE(sizes_k), npdims(1), &
    +                             sizes_k)
    +         CALL dbcsr_distribution_new(dist_b, mp_env, row_dist_b, col_dist_c)
    +         CALL dbcsr_make_random_matrix(matrix_b, sizes_k, sizes_n, "Matrix B", &
    +                                       REAL(sparsities(2), real_8), &
    +                                       mp_group, data_type=data_type, dist=dist_b)
    +         DEALLOCATE (row_dist_b)
    +      END IF
    +      CALL dbcsr_mp_release(mp_env)
    +      CALL dbcsr_distribution_release(dist_b)
    +      DEALLOCATE (row_dist_c, col_dist_c)
    +      DEALLOCATE (sizes_m, sizes_n, sizes_k)
    +      ! Prepare test parameters
    +      IF (io_unit .GT. 0) THEN
    +         WRITE (io_unit, fmt_desc) "Testing with sizes", matrix_sizes(1:3), &
    +            "min/max block sizes", bmin, bmax, "transposed?", trs(1:2)
    +      END IF
    +      CALL mp_environ(numnodes, mynode, mp_group)
    +      pgiven = ASSOCIATED(nproc)
    +      IF (pgiven) pgiven = nproc(1) .NE. 0
    +      IF (pgiven) THEN
    +         ALLOCATE (group_sizes(SIZE(nproc), 2))
    +         group_sizes(:, 1) = nproc(:)
    +         group_sizes(:, 2) = 0
    +      ELSE
    +         !ALLOCATE (group_sizes (numnodes, 2))
    +         !DO test = numnodes, 1, -1
    +         !   group_sizes(1+numnodes-test, 1:2) = (/ test, 0 /)
    +         !ENDDO
    +         ALLOCATE (group_sizes(1, 2))
    +         group_sizes(1, 1:2) = (/numnodes, 0/)
    +      END IF
    +      t_a = 'N'; IF (trs(1)) t_a = 'T'
    +      t_b = 'N'; IF (trs(2)) t_b = 'T'
    +
    +      SELECT CASE (test_type)
    +      CASE (dbcsr_test_mm)
    +         CALL test_multiplies_multiproc(group_sizes, &
    +                                        matrix_a, matrix_b, matrix_c, t_a, t_b, &
    +                                        dbcsr_scalar(REAL(alpha, real_8)), dbcsr_scalar(REAL(beta, real_8)), &
    +                                        n_loops=n_loops, eps=eps, &
    +                                        io_unit=io_unit, always_checksum=always_checksum, &
    +                                        retain_sparsity=retain_sparsity)
    +      CASE (dbcsr_test_binary_io)
    +         CALL test_binary_io(matrix_a, io_unit)
    +      END SELECT
    +
    +      CALL dbcsr_release(matrix_a)
    +      CALL dbcsr_release(matrix_b)
    +      CALL dbcsr_release(matrix_c)
    +      CALL mp_comm_free(cart_group)
    +      CALL timestop(error_handle)
        END SUBROUTINE dbcsr_run_tests
     
    diff --git a/develop/proc/dbcsr_scalar_are_equal.html b/develop/proc/dbcsr_scalar_are_equal.html index d043d1e3608..e1612887c50 100644 --- a/develop/proc/dbcsr_scalar_are_equal.html +++ b/develop/proc/dbcsr_scalar_are_equal.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_scalar_c.html b/develop/proc/dbcsr_scalar_c.html index 34f761c7205..7191f6b293a 100644 --- a/develop/proc/dbcsr_scalar_c.html +++ b/develop/proc/dbcsr_scalar_c.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_scalar_d.html b/develop/proc/dbcsr_scalar_d.html index d81bb2ecf8f..ef0e6a4975d 100644 --- a/develop/proc/dbcsr_scalar_d.html +++ b/develop/proc/dbcsr_scalar_d.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_scalar_fill_all.html b/develop/proc/dbcsr_scalar_fill_all.html index ac96d757644..d1339cbaad7 100644 --- a/develop/proc/dbcsr_scalar_fill_all.html +++ b/develop/proc/dbcsr_scalar_fill_all.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_scalar_get_type.html b/develop/proc/dbcsr_scalar_get_type.html index 3b8eb8bd83d..c04f34d08fb 100644 --- a/develop/proc/dbcsr_scalar_get_type.html +++ b/develop/proc/dbcsr_scalar_get_type.html @@ -159,7 +159,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_scalar_get_value_c.html b/develop/proc/dbcsr_scalar_get_value_c.html index cf5790a4095..d2168ee48bc 100644 --- a/develop/proc/dbcsr_scalar_get_value_c.html +++ b/develop/proc/dbcsr_scalar_get_value_c.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_scalar_get_value_d.html b/develop/proc/dbcsr_scalar_get_value_d.html index 37db52b2ede..c004da53007 100644 --- a/develop/proc/dbcsr_scalar_get_value_d.html +++ b/develop/proc/dbcsr_scalar_get_value_d.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_scalar_get_value_s.html b/develop/proc/dbcsr_scalar_get_value_s.html index fbd743b8da3..9ee35206f52 100644 --- a/develop/proc/dbcsr_scalar_get_value_s.html +++ b/develop/proc/dbcsr_scalar_get_value_s.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_scalar_get_value_z.html b/develop/proc/dbcsr_scalar_get_value_z.html index 3ef57d18b2e..0ac17c4db49 100644 --- a/develop/proc/dbcsr_scalar_get_value_z.html +++ b/develop/proc/dbcsr_scalar_get_value_z.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_scalar_multiply.html b/develop/proc/dbcsr_scalar_multiply.html index ff17c94fba9..e4e0b739e09 100644 --- a/develop/proc/dbcsr_scalar_multiply.html +++ b/develop/proc/dbcsr_scalar_multiply.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_scalar_one.html b/develop/proc/dbcsr_scalar_one.html index 1b7d2488f38..99cfb0c67eb 100644 --- a/develop/proc/dbcsr_scalar_one.html +++ b/develop/proc/dbcsr_scalar_one.html @@ -159,7 +159,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    Return Value - + type(dbcsr_scalar_type)

    diff --git a/develop/proc/dbcsr_scalar_s.html b/develop/proc/dbcsr_scalar_s.html index a68b9d81edf..6f5b1cb5204 100644 --- a/develop/proc/dbcsr_scalar_s.html +++ b/develop/proc/dbcsr_scalar_s.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_scalar_set_type.html b/develop/proc/dbcsr_scalar_set_type.html index 5b4190f3572..8e2a187614c 100644 --- a/develop/proc/dbcsr_scalar_set_type.html +++ b/develop/proc/dbcsr_scalar_set_type.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_scalar_z.html b/develop/proc/dbcsr_scalar_z.html index ecbd6e1cf1c..c086228ff22 100644 --- a/develop/proc/dbcsr_scalar_z.html +++ b/develop/proc/dbcsr_scalar_z.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_scalar_zero.html b/develop/proc/dbcsr_scalar_zero.html index ef59a4ddcf5..8dc621b9fb9 100644 --- a/develop/proc/dbcsr_scalar_zero.html +++ b/develop/proc/dbcsr_scalar_zero.html @@ -159,7 +159,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    Return Value - + type(dbcsr_scalar_type)

    diff --git a/develop/proc/dbcsr_scale_anytype.html b/develop/proc/dbcsr_scale_anytype.html index 3eca317f1e8..3a74b13270f 100644 --- a/develop/proc/dbcsr_scale_anytype.html +++ b/develop/proc/dbcsr_scale_anytype.html @@ -162,7 +162,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_scale_by_vector_anytype.html b/develop/proc/dbcsr_scale_by_vector_anytype.html index 191ee02122d..8a4ea9ceb61 100644 --- a/develop/proc/dbcsr_scale_by_vector_anytype.html +++ b/develop/proc/dbcsr_scale_by_vector_anytype.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_scale_by_vector_c.html b/develop/proc/dbcsr_scale_by_vector_c.html index 9629b909678..e973e3476e8 100644 --- a/develop/proc/dbcsr_scale_by_vector_c.html +++ b/develop/proc/dbcsr_scale_by_vector_c.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_scale_by_vector_c~2.html b/develop/proc/dbcsr_scale_by_vector_c~2.html index afabd89f778..e525f128d68 100644 --- a/develop/proc/dbcsr_scale_by_vector_c~2.html +++ b/develop/proc/dbcsr_scale_by_vector_c~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_scale_by_vector_d.html b/develop/proc/dbcsr_scale_by_vector_d.html index a0272eee820..72846dada83 100644 --- a/develop/proc/dbcsr_scale_by_vector_d.html +++ b/develop/proc/dbcsr_scale_by_vector_d.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_scale_by_vector_d~2.html b/develop/proc/dbcsr_scale_by_vector_d~2.html index b4d8ae71c6f..b13cc2ea276 100644 --- a/develop/proc/dbcsr_scale_by_vector_d~2.html +++ b/develop/proc/dbcsr_scale_by_vector_d~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_scale_by_vector_s.html b/develop/proc/dbcsr_scale_by_vector_s.html index 03c66b18501..b7d4a383b16 100644 --- a/develop/proc/dbcsr_scale_by_vector_s.html +++ b/develop/proc/dbcsr_scale_by_vector_s.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_scale_by_vector_s~2.html b/develop/proc/dbcsr_scale_by_vector_s~2.html index b30c4eac322..5341ce154fd 100644 --- a/develop/proc/dbcsr_scale_by_vector_s~2.html +++ b/develop/proc/dbcsr_scale_by_vector_s~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_scale_by_vector_z.html b/develop/proc/dbcsr_scale_by_vector_z.html index ebb3c9b1b57..af8f3c7c876 100644 --- a/develop/proc/dbcsr_scale_by_vector_z.html +++ b/develop/proc/dbcsr_scale_by_vector_z.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_scale_by_vector_z~2.html b/develop/proc/dbcsr_scale_by_vector_z~2.html index ef8a29bd6d8..68b11b84685 100644 --- a/develop/proc/dbcsr_scale_by_vector_z~2.html +++ b/develop/proc/dbcsr_scale_by_vector_z~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_scale_c.html b/develop/proc/dbcsr_scale_c.html index 4c5dd4fa23a..47903e00dae 100644 --- a/develop/proc/dbcsr_scale_c.html +++ b/develop/proc/dbcsr_scale_c.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_scale_c~2.html b/develop/proc/dbcsr_scale_c~2.html index c260b82a279..dd951e2d596 100644 --- a/develop/proc/dbcsr_scale_c~2.html +++ b/develop/proc/dbcsr_scale_c~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_scale_d.html b/develop/proc/dbcsr_scale_d.html index 33161fffbeb..305076f7701 100644 --- a/develop/proc/dbcsr_scale_d.html +++ b/develop/proc/dbcsr_scale_d.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_scale_d~2.html b/develop/proc/dbcsr_scale_d~2.html index 1201cabedc1..bd9d3787034 100644 --- a/develop/proc/dbcsr_scale_d~2.html +++ b/develop/proc/dbcsr_scale_d~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_scale_s.html b/develop/proc/dbcsr_scale_s.html index b0c5e1c4da2..9bbd156262b 100644 --- a/develop/proc/dbcsr_scale_s.html +++ b/develop/proc/dbcsr_scale_s.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_scale_s~2.html b/develop/proc/dbcsr_scale_s~2.html index 07366b9a249..69ba1e47a9f 100644 --- a/develop/proc/dbcsr_scale_s~2.html +++ b/develop/proc/dbcsr_scale_s~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_scale_z.html b/develop/proc/dbcsr_scale_z.html index 73b3907322a..375e3574827 100644 --- a/develop/proc/dbcsr_scale_z.html +++ b/develop/proc/dbcsr_scale_z.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_scale_z~2.html b/develop/proc/dbcsr_scale_z~2.html index 15fb1842edb..c06359318fa 100644 --- a/develop/proc/dbcsr_scale_z~2.html +++ b/develop/proc/dbcsr_scale_z~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_sendrecv_any.html b/develop/proc/dbcsr_sendrecv_any.html index 637b7136998..f098aff885e 100644 --- a/develop/proc/dbcsr_sendrecv_any.html +++ b/develop/proc/dbcsr_sendrecv_any.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    @@ -223,7 +223,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_set_block_pointer_2d_c.html b/develop/proc/dbcsr_set_block_pointer_2d_c.html index 1513a4176e6..037e048d2ba 100644 --- a/develop/proc/dbcsr_set_block_pointer_2d_c.html +++ b/develop/proc/dbcsr_set_block_pointer_2d_c.html @@ -159,7 +159,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_set_block_pointer_2d_d.html b/develop/proc/dbcsr_set_block_pointer_2d_d.html index e1e44598662..6fdb592c95a 100644 --- a/develop/proc/dbcsr_set_block_pointer_2d_d.html +++ b/develop/proc/dbcsr_set_block_pointer_2d_d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_set_block_pointer_2d_s.html b/develop/proc/dbcsr_set_block_pointer_2d_s.html index 76e41ca41cf..e034fb8658d 100644 --- a/develop/proc/dbcsr_set_block_pointer_2d_s.html +++ b/develop/proc/dbcsr_set_block_pointer_2d_s.html @@ -159,7 +159,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_set_block_pointer_2d_z.html b/develop/proc/dbcsr_set_block_pointer_2d_z.html index 1f6885ed672..f586bdda66d 100644 --- a/develop/proc/dbcsr_set_block_pointer_2d_z.html +++ b/develop/proc/dbcsr_set_block_pointer_2d_z.html @@ -159,7 +159,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_set_block_pointer_any.html b/develop/proc/dbcsr_set_block_pointer_any.html index dbce37cb974..00cab0b0ca9 100644 --- a/develop/proc/dbcsr_set_block_pointer_any.html +++ b/develop/proc/dbcsr_set_block_pointer_any.html @@ -159,7 +159,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_set_c.html b/develop/proc/dbcsr_set_c.html index 7cb14205ee8..6f0b7767712 100644 --- a/develop/proc/dbcsr_set_c.html +++ b/develop/proc/dbcsr_set_c.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_set_config.html b/develop/proc/dbcsr_set_config.html index 4a5d283219a..e0797df60d4 100644 --- a/develop/proc/dbcsr_set_config.html +++ b/develop/proc/dbcsr_set_config.html @@ -233,7 +233,7 @@

    Arguments

    @@ -263,7 +263,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_set_c~2.html b/develop/proc/dbcsr_set_c~2.html index b1b35088ad1..e2f8ad5e43b 100644 --- a/develop/proc/dbcsr_set_c~2.html +++ b/develop/proc/dbcsr_set_c~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_set_d.html b/develop/proc/dbcsr_set_d.html index 9a9a0125adb..3b5635c703a 100644 --- a/develop/proc/dbcsr_set_d.html +++ b/develop/proc/dbcsr_set_d.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_set_diag_c.html b/develop/proc/dbcsr_set_diag_c.html index dc911bdbc3b..eb4f2a0e062 100644 --- a/develop/proc/dbcsr_set_diag_c.html +++ b/develop/proc/dbcsr_set_diag_c.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_set_diag_c~2.html b/develop/proc/dbcsr_set_diag_c~2.html index e0b6dbbe963..59fdd660244 100644 --- a/develop/proc/dbcsr_set_diag_c~2.html +++ b/develop/proc/dbcsr_set_diag_c~2.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_set_diag_d.html b/develop/proc/dbcsr_set_diag_d.html index 1621e19e62b..242c4aecc1b 100644 --- a/develop/proc/dbcsr_set_diag_d.html +++ b/develop/proc/dbcsr_set_diag_d.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_set_diag_d~2.html b/develop/proc/dbcsr_set_diag_d~2.html index afa826542ed..44366b9a25a 100644 --- a/develop/proc/dbcsr_set_diag_d~2.html +++ b/develop/proc/dbcsr_set_diag_d~2.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_set_diag_s.html b/develop/proc/dbcsr_set_diag_s.html index 03337b59424..3e924048065 100644 --- a/develop/proc/dbcsr_set_diag_s.html +++ b/develop/proc/dbcsr_set_diag_s.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_set_diag_s~2.html b/develop/proc/dbcsr_set_diag_s~2.html index 1c26d25d4e8..ddd2767b9d7 100644 --- a/develop/proc/dbcsr_set_diag_s~2.html +++ b/develop/proc/dbcsr_set_diag_s~2.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_set_diag_z.html b/develop/proc/dbcsr_set_diag_z.html index 8b7ceee2b29..e4e70bdc0e0 100644 --- a/develop/proc/dbcsr_set_diag_z.html +++ b/develop/proc/dbcsr_set_diag_z.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_set_diag_z~2.html b/develop/proc/dbcsr_set_diag_z~2.html index a26d85ae26f..ad2e09f79ad 100644 --- a/develop/proc/dbcsr_set_diag_z~2.html +++ b/develop/proc/dbcsr_set_diag_z~2.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_set_d~2.html b/develop/proc/dbcsr_set_d~2.html index 4bc4b90aa24..dc21113538c 100644 --- a/develop/proc/dbcsr_set_d~2.html +++ b/develop/proc/dbcsr_set_d~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_set_s.html b/develop/proc/dbcsr_set_s.html index 72a1e463f75..f4a37f525c2 100644 --- a/develop/proc/dbcsr_set_s.html +++ b/develop/proc/dbcsr_set_s.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_set_s~2.html b/develop/proc/dbcsr_set_s~2.html index 8bd57f29210..cff7f67a70a 100644 --- a/develop/proc/dbcsr_set_s~2.html +++ b/develop/proc/dbcsr_set_s~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_set_work_size.html b/develop/proc/dbcsr_set_work_size.html index 1bbef1d218d..3c0dc5a2bba 100644 --- a/develop/proc/dbcsr_set_work_size.html +++ b/develop/proc/dbcsr_set_work_size.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_set_z.html b/develop/proc/dbcsr_set_z.html index 04e45bb0285..5976e733389 100644 --- a/develop/proc/dbcsr_set_z.html +++ b/develop/proc/dbcsr_set_z.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_set_z~2.html b/develop/proc/dbcsr_set_z~2.html index 35046fa82c4..4c60199cacc 100644 --- a/develop/proc/dbcsr_set_z~2.html +++ b/develop/proc/dbcsr_set_z~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_setname.html b/develop/proc/dbcsr_setname.html index ddbf94e6eea..8d310407334 100644 --- a/develop/proc/dbcsr_setname.html +++ b/develop/proc/dbcsr_setname.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_setname~2.html b/develop/proc/dbcsr_setname~2.html index 143324469ec..59c01dc6b96 100644 --- a/develop/proc/dbcsr_setname~2.html +++ b/develop/proc/dbcsr_setname~2.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_sort_data.html b/develop/proc/dbcsr_sort_data.html index 7ae10307b57..5e70d9fdbf9 100644 --- a/develop/proc/dbcsr_sort_data.html +++ b/develop/proc/dbcsr_sort_data.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -222,7 +222,7 @@

    Arguments

    @@ -252,7 +252,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_sort_indices.html b/develop/proc/dbcsr_sort_indices.html index 465c9275b75..b57f70fd213 100644 --- a/develop/proc/dbcsr_sort_indices.html +++ b/develop/proc/dbcsr_sort_indices.html @@ -165,7 +165,7 @@

    Arguments

    @@ -180,7 +180,7 @@

    Arguments

    @@ -196,7 +196,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_special_finalize.html b/develop/proc/dbcsr_special_finalize.html index 50e8a2c52f6..24061001c9c 100644 --- a/develop/proc/dbcsr_special_finalize.html +++ b/develop/proc/dbcsr_special_finalize.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_sum_replicated.html b/develop/proc/dbcsr_sum_replicated.html index 7cde4ede78c..a6c7c84a7ff 100644 --- a/develop/proc/dbcsr_sum_replicated.html +++ b/develop/proc/dbcsr_sum_replicated.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_sum_replicated~2.html b/develop/proc/dbcsr_sum_replicated~2.html index 940f28d537b..b34af4ddd04 100644 --- a/develop/proc/dbcsr_sum_replicated~2.html +++ b/develop/proc/dbcsr_sum_replicated~2.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_switch_data_area.html b/develop/proc/dbcsr_switch_data_area.html index 54fe7e96238..3b438d80629 100644 --- a/develop/proc/dbcsr_switch_data_area.html +++ b/develop/proc/dbcsr_switch_data_area.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_align_index.html b/develop/proc/dbcsr_t_align_index.html index 6eba2f8d8c9..b44730b810c 100644 --- a/develop/proc/dbcsr_t_align_index.html +++ b/develop/proc/dbcsr_t_align_index.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_allocate_and_get_2d_block_c_dp.html b/develop/proc/dbcsr_t_allocate_and_get_2d_block_c_dp.html index 2063cd52d17..69dc2bc56c2 100644 --- a/develop/proc/dbcsr_t_allocate_and_get_2d_block_c_dp.html +++ b/develop/proc/dbcsr_t_allocate_and_get_2d_block_c_dp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_allocate_and_get_2d_block_c_sp.html b/develop/proc/dbcsr_t_allocate_and_get_2d_block_c_sp.html index 3aea2c14e42..fb04921390d 100644 --- a/develop/proc/dbcsr_t_allocate_and_get_2d_block_c_sp.html +++ b/develop/proc/dbcsr_t_allocate_and_get_2d_block_c_sp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_allocate_and_get_2d_block_r_dp.html b/develop/proc/dbcsr_t_allocate_and_get_2d_block_r_dp.html index fac2fadddcf..ae9966681a4 100644 --- a/develop/proc/dbcsr_t_allocate_and_get_2d_block_r_dp.html +++ b/develop/proc/dbcsr_t_allocate_and_get_2d_block_r_dp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_allocate_and_get_2d_block_r_sp.html b/develop/proc/dbcsr_t_allocate_and_get_2d_block_r_sp.html index c1ee939edad..0561c2348dc 100644 --- a/develop/proc/dbcsr_t_allocate_and_get_2d_block_r_sp.html +++ b/develop/proc/dbcsr_t_allocate_and_get_2d_block_r_sp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_allocate_and_get_3d_block_c_dp.html b/develop/proc/dbcsr_t_allocate_and_get_3d_block_c_dp.html index 27a56b3cdb8..8296add60b4 100644 --- a/develop/proc/dbcsr_t_allocate_and_get_3d_block_c_dp.html +++ b/develop/proc/dbcsr_t_allocate_and_get_3d_block_c_dp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_allocate_and_get_3d_block_c_sp.html b/develop/proc/dbcsr_t_allocate_and_get_3d_block_c_sp.html index 9379851bf12..6e07c469c8a 100644 --- a/develop/proc/dbcsr_t_allocate_and_get_3d_block_c_sp.html +++ b/develop/proc/dbcsr_t_allocate_and_get_3d_block_c_sp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_allocate_and_get_3d_block_r_dp.html b/develop/proc/dbcsr_t_allocate_and_get_3d_block_r_dp.html index e328b2d02ad..535932d9cad 100644 --- a/develop/proc/dbcsr_t_allocate_and_get_3d_block_r_dp.html +++ b/develop/proc/dbcsr_t_allocate_and_get_3d_block_r_dp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_allocate_and_get_3d_block_r_sp.html b/develop/proc/dbcsr_t_allocate_and_get_3d_block_r_sp.html index 6855184ee72..e7af5daeac1 100644 --- a/develop/proc/dbcsr_t_allocate_and_get_3d_block_r_sp.html +++ b/develop/proc/dbcsr_t_allocate_and_get_3d_block_r_sp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_allocate_and_get_4d_block_c_dp.html b/develop/proc/dbcsr_t_allocate_and_get_4d_block_c_dp.html index 5d5a33a659a..1a45bd4328a 100644 --- a/develop/proc/dbcsr_t_allocate_and_get_4d_block_c_dp.html +++ b/develop/proc/dbcsr_t_allocate_and_get_4d_block_c_dp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_allocate_and_get_4d_block_c_sp.html b/develop/proc/dbcsr_t_allocate_and_get_4d_block_c_sp.html index a91113fa35f..c541ae15a1e 100644 --- a/develop/proc/dbcsr_t_allocate_and_get_4d_block_c_sp.html +++ b/develop/proc/dbcsr_t_allocate_and_get_4d_block_c_sp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_allocate_and_get_4d_block_r_dp.html b/develop/proc/dbcsr_t_allocate_and_get_4d_block_r_dp.html index 27b6188fcea..49f5b341f1e 100644 --- a/develop/proc/dbcsr_t_allocate_and_get_4d_block_r_dp.html +++ b/develop/proc/dbcsr_t_allocate_and_get_4d_block_r_dp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_allocate_and_get_4d_block_r_sp.html b/develop/proc/dbcsr_t_allocate_and_get_4d_block_r_sp.html index 76a77ffb617..ffdaec9a165 100644 --- a/develop/proc/dbcsr_t_allocate_and_get_4d_block_r_sp.html +++ b/develop/proc/dbcsr_t_allocate_and_get_4d_block_r_sp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_batched_contract_finalize.html b/develop/proc/dbcsr_t_batched_contract_finalize.html index 7b9e4602671..3fc182bec5e 100644 --- a/develop/proc/dbcsr_t_batched_contract_finalize.html +++ b/develop/proc/dbcsr_t_batched_contract_finalize.html @@ -154,7 +154,7 @@

    Arguments

    @@ -169,7 +169,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_batched_contract_init.html b/develop/proc/dbcsr_t_batched_contract_init.html index 2cc79171483..b272814c965 100644 --- a/develop/proc/dbcsr_t_batched_contract_init.html +++ b/develop/proc/dbcsr_t_batched_contract_init.html @@ -181,7 +181,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_blk_offsets.html b/develop/proc/dbcsr_t_blk_offsets.html index 59876a570ab..18cabeae34c 100644 --- a/develop/proc/dbcsr_t_blk_offsets.html +++ b/develop/proc/dbcsr_t_blk_offsets.html @@ -183,7 +183,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_blk_size.html b/develop/proc/dbcsr_t_blk_size.html index c7ca5fb5fe0..daada5a80b8 100644 --- a/develop/proc/dbcsr_t_blk_size.html +++ b/develop/proc/dbcsr_t_blk_size.html @@ -183,7 +183,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_blk_sizes.html b/develop/proc/dbcsr_t_blk_sizes.html index a5c9bb264d0..64a8d5aa41f 100644 --- a/develop/proc/dbcsr_t_blk_sizes.html +++ b/develop/proc/dbcsr_t_blk_sizes.html @@ -183,7 +183,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_change_pgrid.html b/develop/proc/dbcsr_t_change_pgrid.html index 78a6f425dca..3391b14db0b 100644 --- a/develop/proc/dbcsr_t_change_pgrid.html +++ b/develop/proc/dbcsr_t_change_pgrid.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -259,7 +259,7 @@

    Arguments

    @@ -289,7 +289,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_change_pgrid_2d.html b/develop/proc/dbcsr_t_change_pgrid_2d.html index 743cff3e74f..3619a3987e8 100644 --- a/develop/proc/dbcsr_t_change_pgrid_2d.html +++ b/develop/proc/dbcsr_t_change_pgrid_2d.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -258,7 +258,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_checksum.html b/develop/proc/dbcsr_t_checksum.html index d88acb6db9a..ed16e0aeb2f 100644 --- a/develop/proc/dbcsr_t_checksum.html +++ b/develop/proc/dbcsr_t_checksum.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_communicate_buffer.html b/develop/proc/dbcsr_t_communicate_buffer.html index 9718ad3f266..78f21f8b85e 100644 --- a/develop/proc/dbcsr_t_communicate_buffer.html +++ b/develop/proc/dbcsr_t_communicate_buffer.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_contract.html b/develop/proc/dbcsr_t_contract.html index 04c665c94d9..e034add7036 100644 --- a/develop/proc/dbcsr_t_contract.html +++ b/develop/proc/dbcsr_t_contract.html @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    @@ -251,7 +251,7 @@

    Arguments

    @@ -266,7 +266,7 @@

    Arguments

    @@ -281,7 +281,7 @@

    Arguments

    @@ -296,7 +296,7 @@

    Arguments

    @@ -311,7 +311,7 @@

    Arguments

    @@ -326,7 +326,7 @@

    Arguments

    @@ -341,7 +341,7 @@

    Arguments

    @@ -357,7 +357,7 @@

    Arguments

    @@ -373,7 +373,7 @@

    Arguments

    @@ -389,7 +389,7 @@

    Arguments

    @@ -452,7 +452,7 @@

    Arguments

    @@ -467,7 +467,7 @@

    Arguments

    @@ -482,7 +482,7 @@

    Arguments

    @@ -497,7 +497,7 @@

    Arguments

    @@ -512,7 +512,7 @@

    Arguments

    @@ -529,7 +529,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_contract_expert.html b/develop/proc/dbcsr_t_contract_expert.html index 88c9338507d..febf0a96c2a 100644 --- a/develop/proc/dbcsr_t_contract_expert.html +++ b/develop/proc/dbcsr_t_contract_expert.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -243,7 +243,7 @@

    Arguments

    @@ -258,7 +258,7 @@

    Arguments

    @@ -273,7 +273,7 @@

    Arguments

    @@ -288,7 +288,7 @@

    Arguments

    @@ -303,7 +303,7 @@

    Arguments

    @@ -318,7 +318,7 @@

    Arguments

    @@ -333,7 +333,7 @@

    Arguments

    @@ -348,7 +348,7 @@

    Arguments

    @@ -363,7 +363,7 @@

    Arguments

    @@ -423,7 +423,7 @@

    Arguments

    @@ -438,7 +438,7 @@

    Arguments

    @@ -453,7 +453,7 @@

    Arguments

    @@ -468,7 +468,7 @@

    Arguments

    @@ -483,7 +483,7 @@

    Arguments

    @@ -498,7 +498,7 @@

    Arguments

    @@ -514,7 +514,7 @@

    Arguments

    @@ -529,7 +529,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_contract_index.html b/develop/proc/dbcsr_t_contract_index.html index 9f7740008bf..b80c488f2e8 100644 --- a/develop/proc/dbcsr_t_contract_index.html +++ b/develop/proc/dbcsr_t_contract_index.html @@ -156,7 +156,7 @@

    Arguments

    @@ -171,7 +171,7 @@

    Arguments

    @@ -186,7 +186,7 @@

    Arguments

    @@ -201,7 +201,7 @@

    Arguments

    @@ -216,7 +216,7 @@

    Arguments

    @@ -231,7 +231,7 @@

    Arguments

    @@ -246,7 +246,7 @@

    Arguments

    @@ -261,7 +261,7 @@

    Arguments

    @@ -276,7 +276,7 @@

    Arguments

    @@ -291,7 +291,7 @@

    Arguments

    @@ -306,7 +306,7 @@

    Arguments

    @@ -321,7 +321,7 @@

    Arguments

    @@ -336,7 +336,7 @@

    Arguments

    @@ -351,7 +351,7 @@

    Arguments

    @@ -366,7 +366,7 @@

    Arguments

    @@ -381,7 +381,7 @@

    Arguments

    @@ -396,7 +396,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_contract_test.html b/develop/proc/dbcsr_t_contract_test.html index ba0dab7948b..236370592b0 100644 --- a/develop/proc/dbcsr_t_contract_test.html +++ b/develop/proc/dbcsr_t_contract_test.html @@ -157,7 +157,7 @@

    Arguments

    @@ -172,7 +172,7 @@

    Arguments

    @@ -187,7 +187,7 @@

    Arguments

    @@ -202,7 +202,7 @@

    Arguments

    @@ -217,7 +217,7 @@

    Arguments

    @@ -232,7 +232,7 @@

    Arguments

    @@ -247,7 +247,7 @@

    Arguments

    @@ -262,7 +262,7 @@

    Arguments

    @@ -277,7 +277,7 @@

    Arguments

    @@ -292,7 +292,7 @@

    Arguments

    @@ -307,7 +307,7 @@

    Arguments

    @@ -322,7 +322,7 @@

    Arguments

    @@ -337,7 +337,7 @@

    Arguments

    @@ -352,7 +352,7 @@

    Arguments

    @@ -367,7 +367,7 @@

    Arguments

    @@ -382,7 +382,7 @@

    Arguments

    @@ -397,7 +397,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_copy.html b/develop/proc/dbcsr_t_copy.html index 14b1bb4a27c..025c8ed190a 100644 --- a/develop/proc/dbcsr_t_copy.html +++ b/develop/proc/dbcsr_t_copy.html @@ -161,7 +161,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    @@ -238,7 +238,7 @@

    Arguments

    @@ -253,7 +253,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_copy_contraction_storage.html b/develop/proc/dbcsr_t_copy_contraction_storage.html index 0706d0dfce8..6dfffc4219c 100644 --- a/develop/proc/dbcsr_t_copy_contraction_storage.html +++ b/develop/proc/dbcsr_t_copy_contraction_storage.html @@ -152,7 +152,7 @@

    Arguments

    @@ -167,7 +167,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_copy_expert.html b/develop/proc/dbcsr_t_copy_expert.html index 9f1526f27d1..45941033e0f 100644 --- a/develop/proc/dbcsr_t_copy_expert.html +++ b/develop/proc/dbcsr_t_copy_expert.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -243,7 +243,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_copy_matrix_to_tensor.html b/develop/proc/dbcsr_t_copy_matrix_to_tensor.html index f807d7d75f3..b1d2b49d8cc 100644 --- a/develop/proc/dbcsr_t_copy_matrix_to_tensor.html +++ b/develop/proc/dbcsr_t_copy_matrix_to_tensor.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_copy_nocomm.html b/develop/proc/dbcsr_t_copy_nocomm.html index 405fd034dc6..e3f286f46c3 100644 --- a/develop/proc/dbcsr_t_copy_nocomm.html +++ b/develop/proc/dbcsr_t_copy_nocomm.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_copy_tensor_to_matrix.html b/develop/proc/dbcsr_t_copy_tensor_to_matrix.html index 0fc896d37ac..54dce8ee282 100644 --- a/develop/proc/dbcsr_t_copy_tensor_to_matrix.html +++ b/develop/proc/dbcsr_t_copy_tensor_to_matrix.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_create_matrix.html b/develop/proc/dbcsr_t_create_matrix.html index cf620ac57f0..21ee9e72035 100644 --- a/develop/proc/dbcsr_t_create_matrix.html +++ b/develop/proc/dbcsr_t_create_matrix.html @@ -153,7 +153,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_create_new.html b/develop/proc/dbcsr_t_create_new.html index 5a74b3629a8..f29b21b23ee 100644 --- a/develop/proc/dbcsr_t_create_new.html +++ b/develop/proc/dbcsr_t_create_new.html @@ -170,7 +170,7 @@

    Arguments

    @@ -185,7 +185,7 @@

    Arguments

    @@ -200,7 +200,7 @@

    Arguments

    @@ -215,7 +215,7 @@

    Arguments

    @@ -230,7 +230,7 @@

    Arguments

    @@ -245,7 +245,7 @@

    Arguments

    @@ -260,7 +260,7 @@

    Arguments

    @@ -275,7 +275,7 @@

    Arguments

    @@ -290,7 +290,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_create_template.html b/develop/proc/dbcsr_t_create_template.html index 51120d908ea..f5d95554f31 100644 --- a/develop/proc/dbcsr_t_create_template.html +++ b/develop/proc/dbcsr_t_create_template.html @@ -153,7 +153,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -243,7 +243,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_crop.html b/develop/proc/dbcsr_t_crop.html index 44b36203ea3..cf86c9c89ed 100644 --- a/develop/proc/dbcsr_t_crop.html +++ b/develop/proc/dbcsr_t_crop.html @@ -152,7 +152,7 @@

    Arguments

    @@ -167,7 +167,7 @@

    Arguments

    @@ -182,7 +182,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_default_distvec.html b/develop/proc/dbcsr_t_default_distvec.html index 1f7eb381c85..17b2b40b972 100644 --- a/develop/proc/dbcsr_t_default_distvec.html +++ b/develop/proc/dbcsr_t_default_distvec.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_distribution_destroy.html b/develop/proc/dbcsr_t_distribution_destroy.html index 5b8bb963664..1f1c74e9f1e 100644 --- a/develop/proc/dbcsr_t_distribution_destroy.html +++ b/develop/proc/dbcsr_t_distribution_destroy.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_distribution_hold.html b/develop/proc/dbcsr_t_distribution_hold.html index 7e8725cbe2e..a2b5f509b9e 100644 --- a/develop/proc/dbcsr_t_distribution_hold.html +++ b/develop/proc/dbcsr_t_distribution_hold.html @@ -154,7 +154,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_distribution_new.html b/develop/proc/dbcsr_t_distribution_new.html index 544a03b24d2..af608fafaca 100644 --- a/develop/proc/dbcsr_t_distribution_new.html +++ b/develop/proc/dbcsr_t_distribution_new.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_distribution_new_expert.html b/develop/proc/dbcsr_t_distribution_new_expert.html index e6214e0c461..b4b66719746 100644 --- a/develop/proc/dbcsr_t_distribution_new_expert.html +++ b/develop/proc/dbcsr_t_distribution_new_expert.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -243,7 +243,7 @@

    Arguments

    @@ -258,7 +258,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_distribution_remap.html b/develop/proc/dbcsr_t_distribution_remap.html index 0cc9daeb1d7..705867d17ed 100644 --- a/develop/proc/dbcsr_t_distribution_remap.html +++ b/develop/proc/dbcsr_t_distribution_remap.html @@ -152,7 +152,7 @@

    Arguments

    @@ -167,7 +167,7 @@

    Arguments

    @@ -182,7 +182,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_equal.html b/develop/proc/dbcsr_t_equal.html index cdaf5d707ee..dc0c1b47eb7 100644 --- a/develop/proc/dbcsr_t_equal.html +++ b/develop/proc/dbcsr_t_equal.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_filter_c_dp.html b/develop/proc/dbcsr_t_filter_c_dp.html index bfbc36b6cbb..26366c279de 100644 --- a/develop/proc/dbcsr_t_filter_c_dp.html +++ b/develop/proc/dbcsr_t_filter_c_dp.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_filter_c_sp.html b/develop/proc/dbcsr_t_filter_c_sp.html index f1378b626dc..eb1172f0197 100644 --- a/develop/proc/dbcsr_t_filter_c_sp.html +++ b/develop/proc/dbcsr_t_filter_c_sp.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_filter_r_dp.html b/develop/proc/dbcsr_t_filter_r_dp.html index 3c5c5969523..d2b91881ad9 100644 --- a/develop/proc/dbcsr_t_filter_r_dp.html +++ b/develop/proc/dbcsr_t_filter_r_dp.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_filter_r_sp.html b/develop/proc/dbcsr_t_filter_r_sp.html index 0ab3818f92c..418149dc9ed 100644 --- a/develop/proc/dbcsr_t_filter_r_sp.html +++ b/develop/proc/dbcsr_t_filter_r_sp.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_get_2d_block_c_dp.html b/develop/proc/dbcsr_t_get_2d_block_c_dp.html index 8d8bc0443fb..cf3fd49132a 100644 --- a/develop/proc/dbcsr_t_get_2d_block_c_dp.html +++ b/develop/proc/dbcsr_t_get_2d_block_c_dp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_get_2d_block_c_sp.html b/develop/proc/dbcsr_t_get_2d_block_c_sp.html index 44be9a0b8dc..6a3c143d7fc 100644 --- a/develop/proc/dbcsr_t_get_2d_block_c_sp.html +++ b/develop/proc/dbcsr_t_get_2d_block_c_sp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_get_2d_block_r_dp.html b/develop/proc/dbcsr_t_get_2d_block_r_dp.html index 3de51366037..27764707651 100644 --- a/develop/proc/dbcsr_t_get_2d_block_r_dp.html +++ b/develop/proc/dbcsr_t_get_2d_block_r_dp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_get_2d_block_r_sp.html b/develop/proc/dbcsr_t_get_2d_block_r_sp.html index ce73f701daf..bc724ad08a3 100644 --- a/develop/proc/dbcsr_t_get_2d_block_r_sp.html +++ b/develop/proc/dbcsr_t_get_2d_block_r_sp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_get_3d_block_c_dp.html b/develop/proc/dbcsr_t_get_3d_block_c_dp.html index 8d26454fed6..93c1d8e0101 100644 --- a/develop/proc/dbcsr_t_get_3d_block_c_dp.html +++ b/develop/proc/dbcsr_t_get_3d_block_c_dp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_get_3d_block_c_sp.html b/develop/proc/dbcsr_t_get_3d_block_c_sp.html index 4d214b46a51..2b27d6d7fe9 100644 --- a/develop/proc/dbcsr_t_get_3d_block_c_sp.html +++ b/develop/proc/dbcsr_t_get_3d_block_c_sp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_get_3d_block_r_dp.html b/develop/proc/dbcsr_t_get_3d_block_r_dp.html index 00f121be1ac..eb3057533a9 100644 --- a/develop/proc/dbcsr_t_get_3d_block_r_dp.html +++ b/develop/proc/dbcsr_t_get_3d_block_r_dp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_get_3d_block_r_sp.html b/develop/proc/dbcsr_t_get_3d_block_r_sp.html index c85e900275a..12d50c95792 100644 --- a/develop/proc/dbcsr_t_get_3d_block_r_sp.html +++ b/develop/proc/dbcsr_t_get_3d_block_r_sp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_get_4d_block_c_dp.html b/develop/proc/dbcsr_t_get_4d_block_c_dp.html index b6b55cceae6..8013ace3f0b 100644 --- a/develop/proc/dbcsr_t_get_4d_block_c_dp.html +++ b/develop/proc/dbcsr_t_get_4d_block_c_dp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_get_4d_block_c_sp.html b/develop/proc/dbcsr_t_get_4d_block_c_sp.html index 2e788cf94ba..d335df9975f 100644 --- a/develop/proc/dbcsr_t_get_4d_block_c_sp.html +++ b/develop/proc/dbcsr_t_get_4d_block_c_sp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_get_4d_block_r_dp.html b/develop/proc/dbcsr_t_get_4d_block_r_dp.html index 3ec7d34f5ea..b99c2eef25d 100644 --- a/develop/proc/dbcsr_t_get_4d_block_r_dp.html +++ b/develop/proc/dbcsr_t_get_4d_block_r_dp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_get_4d_block_r_sp.html b/develop/proc/dbcsr_t_get_4d_block_r_sp.html index e4db559cfd6..7acc173c055 100644 --- a/develop/proc/dbcsr_t_get_4d_block_r_sp.html +++ b/develop/proc/dbcsr_t_get_4d_block_r_sp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_get_anyd_block.html b/develop/proc/dbcsr_t_get_anyd_block.html index 0fec5e9a1dc..83b673f6b8f 100644 --- a/develop/proc/dbcsr_t_get_anyd_block.html +++ b/develop/proc/dbcsr_t_get_anyd_block.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_get_anyd_block_c_dp.html b/develop/proc/dbcsr_t_get_anyd_block_c_dp.html index 350bb0086de..ec570cf6b4c 100644 --- a/develop/proc/dbcsr_t_get_anyd_block_c_dp.html +++ b/develop/proc/dbcsr_t_get_anyd_block_c_dp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_get_anyd_block_c_sp.html b/develop/proc/dbcsr_t_get_anyd_block_c_sp.html index 521057ab738..3f255b31402 100644 --- a/develop/proc/dbcsr_t_get_anyd_block_c_sp.html +++ b/develop/proc/dbcsr_t_get_anyd_block_c_sp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_get_anyd_block_r_dp.html b/develop/proc/dbcsr_t_get_anyd_block_r_dp.html index cdf840dfebd..07ebaf5b604 100644 --- a/develop/proc/dbcsr_t_get_anyd_block_r_dp.html +++ b/develop/proc/dbcsr_t_get_anyd_block_r_dp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_get_anyd_block_r_sp.html b/develop/proc/dbcsr_t_get_anyd_block_r_sp.html index ed9a26ce819..24ea7e5bf54 100644 --- a/develop/proc/dbcsr_t_get_anyd_block_r_sp.html +++ b/develop/proc/dbcsr_t_get_anyd_block_r_sp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_get_data_size.html b/develop/proc/dbcsr_t_get_data_size.html index 8f908e054ea..17067c06b23 100644 --- a/develop/proc/dbcsr_t_get_data_size.html +++ b/develop/proc/dbcsr_t_get_data_size.html @@ -171,7 +171,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_t_get_data_type.html b/develop/proc/dbcsr_t_get_data_type.html index 9c8d84e22e3..99a4a89ae6b 100644 --- a/develop/proc/dbcsr_t_get_data_type.html +++ b/develop/proc/dbcsr_t_get_data_type.html @@ -171,7 +171,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_t_get_info.html b/develop/proc/dbcsr_t_get_info.html index 3a29f1f8ae9..e2442da8a2e 100644 --- a/develop/proc/dbcsr_t_get_info.html +++ b/develop/proc/dbcsr_t_get_info.html @@ -198,7 +198,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -378,7 +378,7 @@

    Arguments

    @@ -393,7 +393,7 @@

    Arguments

    @@ -408,7 +408,7 @@

    Arguments

    @@ -423,7 +423,7 @@

    Arguments

    @@ -498,7 +498,7 @@

    Arguments

    @@ -513,7 +513,7 @@

    Arguments

    @@ -528,7 +528,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_get_mapping_info.html b/develop/proc/dbcsr_t_get_mapping_info.html index 03e60e87ddb..9aa72b0fb40 100644 --- a/develop/proc/dbcsr_t_get_mapping_info.html +++ b/develop/proc/dbcsr_t_get_mapping_info.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    @@ -240,7 +240,7 @@

    Arguments

    @@ -255,7 +255,7 @@

    Arguments

    @@ -300,7 +300,7 @@

    Arguments

    @@ -315,7 +315,7 @@

    Arguments

    @@ -345,7 +345,7 @@

    Arguments

    @@ -360,7 +360,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_get_num_blocks.html b/develop/proc/dbcsr_t_get_num_blocks.html index ddfaef22a1e..6e2ad111050 100644 --- a/develop/proc/dbcsr_t_get_num_blocks.html +++ b/develop/proc/dbcsr_t_get_num_blocks.html @@ -171,7 +171,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_t_get_num_blocks_total.html b/develop/proc/dbcsr_t_get_num_blocks_total.html index 9396501799d..de71a061c7c 100644 --- a/develop/proc/dbcsr_t_get_num_blocks_total.html +++ b/develop/proc/dbcsr_t_get_num_blocks_total.html @@ -171,7 +171,7 @@

    Arguments

    Return Value - + integer(kind=int_8)

    diff --git a/develop/proc/dbcsr_t_get_stored_coordinates.html b/develop/proc/dbcsr_t_get_stored_coordinates.html index 7b07240553d..dd73dc55d84 100644 --- a/develop/proc/dbcsr_t_get_stored_coordinates.html +++ b/develop/proc/dbcsr_t_get_stored_coordinates.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_inverse_order.html b/develop/proc/dbcsr_t_inverse_order.html index 29da400bab8..536c881d466 100644 --- a/develop/proc/dbcsr_t_inverse_order.html +++ b/develop/proc/dbcsr_t_inverse_order.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_iterator_blocks_left.html b/develop/proc/dbcsr_t_iterator_blocks_left.html index 7528e539d37..88dc7cf3eb3 100644 --- a/develop/proc/dbcsr_t_iterator_blocks_left.html +++ b/develop/proc/dbcsr_t_iterator_blocks_left.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_iterator_next_block.html b/develop/proc/dbcsr_t_iterator_next_block.html index f5b7a265b19..1f826a7ea0c 100644 --- a/develop/proc/dbcsr_t_iterator_next_block.html +++ b/develop/proc/dbcsr_t_iterator_next_block.html @@ -154,7 +154,7 @@

    Arguments

    @@ -169,7 +169,7 @@

    Arguments

    @@ -184,7 +184,7 @@

    Arguments

    @@ -199,7 +199,7 @@

    Arguments

    @@ -214,7 +214,7 @@

    Arguments

    @@ -230,7 +230,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_iterator_start.html b/develop/proc/dbcsr_t_iterator_start.html index cb13d4f9f97..7ba13dfce06 100644 --- a/develop/proc/dbcsr_t_iterator_start.html +++ b/develop/proc/dbcsr_t_iterator_start.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_iterator_stop.html b/develop/proc/dbcsr_t_iterator_stop.html index ee6fc6b24ab..83094fe25c7 100644 --- a/develop/proc/dbcsr_t_iterator_stop.html +++ b/develop/proc/dbcsr_t_iterator_stop.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_make_compatible_blocks.html b/develop/proc/dbcsr_t_make_compatible_blocks.html index c01da1e80d5..5d682f61357 100644 --- a/develop/proc/dbcsr_t_make_compatible_blocks.html +++ b/develop/proc/dbcsr_t_make_compatible_blocks.html @@ -266,7 +266,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_map_bounds_to_tensors.html b/develop/proc/dbcsr_t_map_bounds_to_tensors.html index db717125467..7211fc32161 100644 --- a/develop/proc/dbcsr_t_map_bounds_to_tensors.html +++ b/develop/proc/dbcsr_t_map_bounds_to_tensors.html @@ -154,7 +154,7 @@

    Arguments

    @@ -169,7 +169,7 @@

    Arguments

    @@ -184,7 +184,7 @@

    Arguments

    @@ -199,7 +199,7 @@

    Arguments

    @@ -214,7 +214,7 @@

    Arguments

    @@ -229,7 +229,7 @@

    Arguments

    @@ -244,7 +244,7 @@

    Arguments

    @@ -259,7 +259,7 @@

    Arguments

    @@ -274,7 +274,7 @@

    Arguments

    @@ -289,7 +289,7 @@

    Arguments

    @@ -304,7 +304,7 @@

    Arguments

    @@ -319,7 +319,7 @@

    Arguments

    @@ -335,7 +335,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_mp_dims_create.html b/develop/proc/dbcsr_t_mp_dims_create.html index 3ab286293cc..0dff7a922ae 100644 --- a/develop/proc/dbcsr_t_mp_dims_create.html +++ b/develop/proc/dbcsr_t_mp_dims_create.html @@ -170,7 +170,7 @@

    Arguments

    @@ -185,7 +185,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_nblks_local.html b/develop/proc/dbcsr_t_nblks_local.html index 58f327d7376..66ccf6427c1 100644 --- a/develop/proc/dbcsr_t_nblks_local.html +++ b/develop/proc/dbcsr_t_nblks_local.html @@ -168,7 +168,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_nblks_total.html b/develop/proc/dbcsr_t_nblks_total.html index b016e424ff4..add03b776f2 100644 --- a/develop/proc/dbcsr_t_nblks_total.html +++ b/develop/proc/dbcsr_t_nblks_total.html @@ -168,7 +168,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_nd_mp_comm.html b/develop/proc/dbcsr_t_nd_mp_comm.html index 8a87e0228b4..2a2940947ef 100644 --- a/develop/proc/dbcsr_t_nd_mp_comm.html +++ b/develop/proc/dbcsr_t_nd_mp_comm.html @@ -157,7 +157,7 @@

    Arguments

    @@ -172,7 +172,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -249,7 +249,7 @@

    Arguments

    @@ -264,7 +264,7 @@

    Arguments

    @@ -281,7 +281,7 @@

    Arguments

    @@ -296,7 +296,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_nd_mp_comm~2.html b/develop/proc/dbcsr_t_nd_mp_comm~2.html index fd49b9df035..f51bd3684d2 100644 --- a/develop/proc/dbcsr_t_nd_mp_comm~2.html +++ b/develop/proc/dbcsr_t_nd_mp_comm~2.html @@ -278,7 +278,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_nd_mp_free.html b/develop/proc/dbcsr_t_nd_mp_free.html index c95735db32d..5f4fecbe9cc 100644 --- a/develop/proc/dbcsr_t_nd_mp_free.html +++ b/develop/proc/dbcsr_t_nd_mp_free.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_permute_index.html b/develop/proc/dbcsr_t_permute_index.html index 143c433dda0..4c1648cb8bd 100644 --- a/develop/proc/dbcsr_t_permute_index.html +++ b/develop/proc/dbcsr_t_permute_index.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_pgrid_change_dims.html b/develop/proc/dbcsr_t_pgrid_change_dims.html index 824dda72ff6..07559be3e11 100644 --- a/develop/proc/dbcsr_t_pgrid_change_dims.html +++ b/develop/proc/dbcsr_t_pgrid_change_dims.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_pgrid_create.html b/develop/proc/dbcsr_t_pgrid_create.html index 68e33816357..009be75aa0e 100644 --- a/develop/proc/dbcsr_t_pgrid_create.html +++ b/develop/proc/dbcsr_t_pgrid_create.html @@ -152,7 +152,7 @@

    Arguments

    @@ -167,7 +167,7 @@

    Arguments

    @@ -182,7 +182,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_pgrid_create_expert.html b/develop/proc/dbcsr_t_pgrid_create_expert.html index 7bb03d96052..ec198d74f01 100644 --- a/develop/proc/dbcsr_t_pgrid_create_expert.html +++ b/develop/proc/dbcsr_t_pgrid_create_expert.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    @@ -224,7 +224,7 @@

    Arguments

    @@ -240,7 +240,7 @@

    Arguments

    @@ -257,7 +257,7 @@

    Arguments

    @@ -273,7 +273,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_pgrid_create_expert~2.html b/develop/proc/dbcsr_t_pgrid_create_expert~2.html index c44396b0daf..e16ad1c64a4 100644 --- a/develop/proc/dbcsr_t_pgrid_create_expert~2.html +++ b/develop/proc/dbcsr_t_pgrid_create_expert~2.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_pgrid_create~2.html b/develop/proc/dbcsr_t_pgrid_create~2.html index 5e253e028df..72ff08bcf61 100644 --- a/develop/proc/dbcsr_t_pgrid_create~2.html +++ b/develop/proc/dbcsr_t_pgrid_create~2.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_pgrid_destroy.html b/develop/proc/dbcsr_t_pgrid_destroy.html index 963bf9e3bc4..d70c274fcd3 100644 --- a/develop/proc/dbcsr_t_pgrid_destroy.html +++ b/develop/proc/dbcsr_t_pgrid_destroy.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_pgrid_remap.html b/develop/proc/dbcsr_t_pgrid_remap.html index 7ec5cfd4c3d..525b0c5d573 100644 --- a/develop/proc/dbcsr_t_pgrid_remap.html +++ b/develop/proc/dbcsr_t_pgrid_remap.html @@ -168,7 +168,7 @@

    Arguments

    @@ -184,7 +184,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_pgrid_set_strict_split.html b/develop/proc/dbcsr_t_pgrid_set_strict_split.html index 3e8b9c0bd0e..179b33fac37 100644 --- a/develop/proc/dbcsr_t_pgrid_set_strict_split.html +++ b/develop/proc/dbcsr_t_pgrid_set_strict_split.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_print_contraction_index.html b/develop/proc/dbcsr_t_print_contraction_index.html index e35983992b9..50245c279bc 100644 --- a/develop/proc/dbcsr_t_print_contraction_index.html +++ b/develop/proc/dbcsr_t_print_contraction_index.html @@ -153,7 +153,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -243,7 +243,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_put_2d_block_c_dp.html b/develop/proc/dbcsr_t_put_2d_block_c_dp.html index 45f32c76eef..22686f0b955 100644 --- a/develop/proc/dbcsr_t_put_2d_block_c_dp.html +++ b/develop/proc/dbcsr_t_put_2d_block_c_dp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_put_2d_block_c_sp.html b/develop/proc/dbcsr_t_put_2d_block_c_sp.html index 90aa46324d6..89cf04d7079 100644 --- a/develop/proc/dbcsr_t_put_2d_block_c_sp.html +++ b/develop/proc/dbcsr_t_put_2d_block_c_sp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_put_2d_block_r_dp.html b/develop/proc/dbcsr_t_put_2d_block_r_dp.html index ecdee4c2791..a87f6eb4b3e 100644 --- a/develop/proc/dbcsr_t_put_2d_block_r_dp.html +++ b/develop/proc/dbcsr_t_put_2d_block_r_dp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_put_2d_block_r_sp.html b/develop/proc/dbcsr_t_put_2d_block_r_sp.html index 06130a964eb..0e3483216a0 100644 --- a/develop/proc/dbcsr_t_put_2d_block_r_sp.html +++ b/develop/proc/dbcsr_t_put_2d_block_r_sp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_put_3d_block_c_dp.html b/develop/proc/dbcsr_t_put_3d_block_c_dp.html index 272ebc7b5fd..8880f1cdc9d 100644 --- a/develop/proc/dbcsr_t_put_3d_block_c_dp.html +++ b/develop/proc/dbcsr_t_put_3d_block_c_dp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_put_3d_block_c_sp.html b/develop/proc/dbcsr_t_put_3d_block_c_sp.html index f9e3385c88e..28d41ea9b4e 100644 --- a/develop/proc/dbcsr_t_put_3d_block_c_sp.html +++ b/develop/proc/dbcsr_t_put_3d_block_c_sp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_put_3d_block_r_dp.html b/develop/proc/dbcsr_t_put_3d_block_r_dp.html index de36ef794f4..7f1ec6a32cf 100644 --- a/develop/proc/dbcsr_t_put_3d_block_r_dp.html +++ b/develop/proc/dbcsr_t_put_3d_block_r_dp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_put_3d_block_r_sp.html b/develop/proc/dbcsr_t_put_3d_block_r_sp.html index 9a28f604c2f..888eba0e15f 100644 --- a/develop/proc/dbcsr_t_put_3d_block_r_sp.html +++ b/develop/proc/dbcsr_t_put_3d_block_r_sp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_put_4d_block_c_dp.html b/develop/proc/dbcsr_t_put_4d_block_c_dp.html index a3b301e227e..904406196d5 100644 --- a/develop/proc/dbcsr_t_put_4d_block_c_dp.html +++ b/develop/proc/dbcsr_t_put_4d_block_c_dp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_put_4d_block_c_sp.html b/develop/proc/dbcsr_t_put_4d_block_c_sp.html index 1beb9d8a61e..95c2c2bb532 100644 --- a/develop/proc/dbcsr_t_put_4d_block_c_sp.html +++ b/develop/proc/dbcsr_t_put_4d_block_c_sp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_put_4d_block_r_dp.html b/develop/proc/dbcsr_t_put_4d_block_r_dp.html index c320ccf905f..9a665bd8cf5 100644 --- a/develop/proc/dbcsr_t_put_4d_block_r_dp.html +++ b/develop/proc/dbcsr_t_put_4d_block_r_dp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_put_4d_block_r_sp.html b/develop/proc/dbcsr_t_put_4d_block_r_sp.html index c21835649bc..1a8133d492e 100644 --- a/develop/proc/dbcsr_t_put_4d_block_r_sp.html +++ b/develop/proc/dbcsr_t_put_4d_block_r_sp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_put_anyd_block.html b/develop/proc/dbcsr_t_put_anyd_block.html index f8aa8242d65..e41a312d936 100644 --- a/develop/proc/dbcsr_t_put_anyd_block.html +++ b/develop/proc/dbcsr_t_put_anyd_block.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_put_anyd_block_c_dp.html b/develop/proc/dbcsr_t_put_anyd_block_c_dp.html index 2d443164bb0..8f09fa9ff55 100644 --- a/develop/proc/dbcsr_t_put_anyd_block_c_dp.html +++ b/develop/proc/dbcsr_t_put_anyd_block_c_dp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_put_anyd_block_c_sp.html b/develop/proc/dbcsr_t_put_anyd_block_c_sp.html index 32d65ecde23..f8ed4fcd333 100644 --- a/develop/proc/dbcsr_t_put_anyd_block_c_sp.html +++ b/develop/proc/dbcsr_t_put_anyd_block_c_sp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_put_anyd_block_r_dp.html b/develop/proc/dbcsr_t_put_anyd_block_r_dp.html index 5ced0ffd53a..9667fe1c09c 100644 --- a/develop/proc/dbcsr_t_put_anyd_block_r_dp.html +++ b/develop/proc/dbcsr_t_put_anyd_block_r_dp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_put_anyd_block_r_sp.html b/develop/proc/dbcsr_t_put_anyd_block_r_sp.html index 18126aafc90..32843037ff9 100644 --- a/develop/proc/dbcsr_t_put_anyd_block_r_sp.html +++ b/develop/proc/dbcsr_t_put_anyd_block_r_sp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_remap.html b/develop/proc/dbcsr_t_remap.html index d1437192054..f7a762a4abe 100644 --- a/develop/proc/dbcsr_t_remap.html +++ b/develop/proc/dbcsr_t_remap.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -184,7 +184,7 @@

    Arguments

    @@ -200,7 +200,7 @@

    Arguments

    @@ -215,7 +215,7 @@

    Arguments

    @@ -230,7 +230,7 @@

    Arguments

    @@ -245,7 +245,7 @@

    Arguments

    @@ -290,7 +290,7 @@

    Arguments

    @@ -305,7 +305,7 @@

    Arguments

    @@ -320,7 +320,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_reserve_blocks_index.html b/develop/proc/dbcsr_t_reserve_blocks_index.html index 28d37b00dc1..d25da452cab 100644 --- a/develop/proc/dbcsr_t_reserve_blocks_index.html +++ b/develop/proc/dbcsr_t_reserve_blocks_index.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_reserve_blocks_index_array.html b/develop/proc/dbcsr_t_reserve_blocks_index_array.html index 571028debab..82b221f90d6 100644 --- a/develop/proc/dbcsr_t_reserve_blocks_index_array.html +++ b/develop/proc/dbcsr_t_reserve_blocks_index_array.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_reserve_blocks_matrix_to_tensor.html b/develop/proc/dbcsr_t_reserve_blocks_matrix_to_tensor.html index 63515fbf585..0da2b083641 100644 --- a/develop/proc/dbcsr_t_reserve_blocks_matrix_to_tensor.html +++ b/develop/proc/dbcsr_t_reserve_blocks_matrix_to_tensor.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_reserve_blocks_template.html b/develop/proc/dbcsr_t_reserve_blocks_template.html index 3eb6001020f..0556647ef1d 100644 --- a/develop/proc/dbcsr_t_reserve_blocks_template.html +++ b/develop/proc/dbcsr_t_reserve_blocks_template.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_reserve_blocks_tensor_to_matrix.html b/develop/proc/dbcsr_t_reserve_blocks_tensor_to_matrix.html index 6fe6736fcff..1abda8fcce4 100644 --- a/develop/proc/dbcsr_t_reserve_blocks_tensor_to_matrix.html +++ b/develop/proc/dbcsr_t_reserve_blocks_tensor_to_matrix.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_reserved_block_indices.html b/develop/proc/dbcsr_t_reserved_block_indices.html index 8b5d8f6f0fc..536a0635b57 100644 --- a/develop/proc/dbcsr_t_reserved_block_indices.html +++ b/develop/proc/dbcsr_t_reserved_block_indices.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_reshape.html b/develop/proc/dbcsr_t_reshape.html index cf9aab638f7..c94454020f8 100644 --- a/develop/proc/dbcsr_t_reshape.html +++ b/develop/proc/dbcsr_t_reshape.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -199,7 +199,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_scale.html b/develop/proc/dbcsr_t_scale.html index 7c2e26d737c..0c921874daa 100644 --- a/develop/proc/dbcsr_t_scale.html +++ b/develop/proc/dbcsr_t_scale.html @@ -168,7 +168,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_set_c_dp.html b/develop/proc/dbcsr_t_set_c_dp.html index 8809a168a72..f655a8ce70c 100644 --- a/develop/proc/dbcsr_t_set_c_dp.html +++ b/develop/proc/dbcsr_t_set_c_dp.html @@ -168,7 +168,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_set_c_sp.html b/develop/proc/dbcsr_t_set_c_sp.html index a7325325013..5e250bf501f 100644 --- a/develop/proc/dbcsr_t_set_c_sp.html +++ b/develop/proc/dbcsr_t_set_c_sp.html @@ -168,7 +168,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_set_r_dp.html b/develop/proc/dbcsr_t_set_r_dp.html index 120ba78199f..a118c627e8a 100644 --- a/develop/proc/dbcsr_t_set_r_dp.html +++ b/develop/proc/dbcsr_t_set_r_dp.html @@ -168,7 +168,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_set_r_sp.html b/develop/proc/dbcsr_t_set_r_sp.html index a8355cf8554..b778be4b415 100644 --- a/develop/proc/dbcsr_t_set_r_sp.html +++ b/develop/proc/dbcsr_t_set_r_sp.html @@ -168,7 +168,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_setup_test_tensor.html b/develop/proc/dbcsr_t_setup_test_tensor.html index 5d08d6b74a5..4d00551e7b7 100644 --- a/develop/proc/dbcsr_t_setup_test_tensor.html +++ b/develop/proc/dbcsr_t_setup_test_tensor.html @@ -154,7 +154,7 @@

    Arguments

    @@ -169,7 +169,7 @@

    Arguments

    @@ -199,7 +199,7 @@

    Arguments

    @@ -214,7 +214,7 @@

    Arguments

    @@ -229,7 +229,7 @@

    Arguments

    @@ -244,7 +244,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_split_blocks.html b/develop/proc/dbcsr_t_split_blocks.html index 3ee41cbfb47..951cbd2c8f7 100644 --- a/develop/proc/dbcsr_t_split_blocks.html +++ b/develop/proc/dbcsr_t_split_blocks.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_split_blocks_generic.html b/develop/proc/dbcsr_t_split_blocks_generic.html index 0b4b295cf9f..fd42099ba75 100644 --- a/develop/proc/dbcsr_t_split_blocks_generic.html +++ b/develop/proc/dbcsr_t_split_blocks_generic.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -243,7 +243,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_split_copyback.html b/develop/proc/dbcsr_t_split_copyback.html index 293e30a1eb2..e75d5cc5283 100644 --- a/develop/proc/dbcsr_t_split_copyback.html +++ b/develop/proc/dbcsr_t_split_copyback.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_test_formats.html b/develop/proc/dbcsr_t_test_formats.html index ea869138902..02b13652007 100644 --- a/develop/proc/dbcsr_t_test_formats.html +++ b/develop/proc/dbcsr_t_test_formats.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -243,7 +243,7 @@

    Arguments

    @@ -258,7 +258,7 @@

    Arguments

    @@ -273,7 +273,7 @@

    Arguments

    @@ -288,7 +288,7 @@

    Arguments

    @@ -303,7 +303,7 @@

    Arguments

    @@ -318,7 +318,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_write_block.html b/develop/proc/dbcsr_t_write_block.html index f3c4dc9da9b..56bac63fad3 100644 --- a/develop/proc/dbcsr_t_write_block.html +++ b/develop/proc/dbcsr_t_write_block.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -243,7 +243,7 @@

    Arguments

    @@ -258,7 +258,7 @@

    Arguments

    @@ -273,7 +273,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_write_block_indices.html b/develop/proc/dbcsr_t_write_block_indices.html index da965901ff3..cf0aed42803 100644 --- a/develop/proc/dbcsr_t_write_block_indices.html +++ b/develop/proc/dbcsr_t_write_block_indices.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_write_blocks.html b/develop/proc/dbcsr_t_write_blocks.html index 05d01ecb961..dae111a8e45 100644 --- a/develop/proc/dbcsr_t_write_blocks.html +++ b/develop/proc/dbcsr_t_write_blocks.html @@ -153,7 +153,7 @@

    Arguments

    @@ -200,7 +200,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_write_split_info.html b/develop/proc/dbcsr_t_write_split_info.html index 9da7ff833a8..fa9326602c6 100644 --- a/develop/proc/dbcsr_t_write_split_info.html +++ b/develop/proc/dbcsr_t_write_split_info.html @@ -152,7 +152,7 @@

    Arguments

    @@ -167,7 +167,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_write_tensor_dist.html b/develop/proc/dbcsr_t_write_tensor_dist.html index 01ed51b4959..b6560168db3 100644 --- a/develop/proc/dbcsr_t_write_tensor_dist.html +++ b/develop/proc/dbcsr_t_write_tensor_dist.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_t_write_tensor_info.html b/develop/proc/dbcsr_t_write_tensor_info.html index 0f0afdd9120..9742b3083b7 100644 --- a/develop/proc/dbcsr_t_write_tensor_info.html +++ b/develop/proc/dbcsr_t_write_tensor_info.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_batched_mm_complete.html b/develop/proc/dbcsr_tas_batched_mm_complete.html index d45d75fb294..f5233448ff8 100644 --- a/develop/proc/dbcsr_tas_batched_mm_complete.html +++ b/develop/proc/dbcsr_tas_batched_mm_complete.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_batched_mm_finalize.html b/develop/proc/dbcsr_tas_batched_mm_finalize.html index 304df5b70e0..a4cc42f9e51 100644 --- a/develop/proc/dbcsr_tas_batched_mm_finalize.html +++ b/develop/proc/dbcsr_tas_batched_mm_finalize.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_batched_mm_init.html b/develop/proc/dbcsr_tas_batched_mm_init.html index e2b9fd763a5..a8c34ec7a57 100644 --- a/develop/proc/dbcsr_tas_batched_mm_init.html +++ b/develop/proc/dbcsr_tas_batched_mm_init.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_benchmark_mm.html b/develop/proc/dbcsr_tas_benchmark_mm.html index 804848a109d..66e74670986 100644 --- a/develop/proc/dbcsr_tas_benchmark_mm.html +++ b/develop/proc/dbcsr_tas_benchmark_mm.html @@ -154,7 +154,7 @@

    Arguments

    @@ -169,7 +169,7 @@

    Arguments

    @@ -184,7 +184,7 @@

    Arguments

    @@ -199,7 +199,7 @@

    Arguments

    @@ -214,7 +214,7 @@

    Arguments

    @@ -229,7 +229,7 @@

    Arguments

    @@ -259,7 +259,7 @@

    Arguments

    @@ -274,7 +274,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_blk_sizes.html b/develop/proc/dbcsr_tas_blk_sizes.html index 983a0b2404a..a0447eebdad 100644 --- a/develop/proc/dbcsr_tas_blk_sizes.html +++ b/develop/proc/dbcsr_tas_blk_sizes.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_checksum.html b/develop/proc/dbcsr_tas_checksum.html index 281d8ee44b4..2a4ccdca3ee 100644 --- a/develop/proc/dbcsr_tas_checksum.html +++ b/develop/proc/dbcsr_tas_checksum.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_clear.html b/develop/proc/dbcsr_tas_clear.html index 1c1a630ff44..bb93f6e8c24 100644 --- a/develop/proc/dbcsr_tas_clear.html +++ b/develop/proc/dbcsr_tas_clear.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_communicate_buffer.html b/develop/proc/dbcsr_tas_communicate_buffer.html index d5d8f00fb64..a2f189a1467 100644 --- a/develop/proc/dbcsr_tas_communicate_buffer.html +++ b/develop/proc/dbcsr_tas_communicate_buffer.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_convert_to_tas.html b/develop/proc/dbcsr_tas_convert_to_tas.html index d283bc75510..fb22ccabd46 100644 --- a/develop/proc/dbcsr_tas_convert_to_tas.html +++ b/develop/proc/dbcsr_tas_convert_to_tas.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_copy.html b/develop/proc/dbcsr_tas_copy.html index a795303b4a7..986b3079733 100644 --- a/develop/proc/dbcsr_tas_copy.html +++ b/develop/proc/dbcsr_tas_copy.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_create_new.html b/develop/proc/dbcsr_tas_create_new.html index 1c924a55e4e..be95c1cd8b5 100644 --- a/develop/proc/dbcsr_tas_create_new.html +++ b/develop/proc/dbcsr_tas_create_new.html @@ -155,7 +155,7 @@

    Arguments

    @@ -170,7 +170,7 @@

    Arguments

    @@ -185,7 +185,7 @@

    Arguments

    @@ -200,7 +200,7 @@

    Arguments

    @@ -215,7 +215,7 @@

    Arguments

    @@ -230,7 +230,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_create_split.html b/develop/proc/dbcsr_tas_create_split.html index 9ee46a079b9..b921e2110f3 100644 --- a/develop/proc/dbcsr_tas_create_split.html +++ b/develop/proc/dbcsr_tas_create_split.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_create_split_rows_or_cols.html b/develop/proc/dbcsr_tas_create_split_rows_or_cols.html index 851dbcbc637..e54f58a4124 100644 --- a/develop/proc/dbcsr_tas_create_split_rows_or_cols.html +++ b/develop/proc/dbcsr_tas_create_split_rows_or_cols.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -214,7 +214,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_create_template.html b/develop/proc/dbcsr_tas_create_template.html index 3963ea31ea0..7fc2a6ff2a3 100644 --- a/develop/proc/dbcsr_tas_create_template.html +++ b/develop/proc/dbcsr_tas_create_template.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_default_distvec.html b/develop/proc/dbcsr_tas_default_distvec.html index 042e21add5e..47175f29460 100644 --- a/develop/proc/dbcsr_tas_default_distvec.html +++ b/develop/proc/dbcsr_tas_default_distvec.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_destroy.html b/develop/proc/dbcsr_tas_destroy.html index 0cf904cd071..e0e5e973a5b 100644 --- a/develop/proc/dbcsr_tas_destroy.html +++ b/develop/proc/dbcsr_tas_destroy.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_dist_arb_default.html b/develop/proc/dbcsr_tas_dist_arb_default.html index 8de85328e94..e86b1dde56b 100644 --- a/develop/proc/dbcsr_tas_dist_arb_default.html +++ b/develop/proc/dbcsr_tas_dist_arb_default.html @@ -186,7 +186,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_distribution_destroy.html b/develop/proc/dbcsr_tas_distribution_destroy.html index e9cb9b06abb..2d04aab8309 100644 --- a/develop/proc/dbcsr_tas_distribution_destroy.html +++ b/develop/proc/dbcsr_tas_distribution_destroy.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_distribution_new.html b/develop/proc/dbcsr_tas_distribution_new.html index 83f5bcdb0d8..a94168ee779 100644 --- a/develop/proc/dbcsr_tas_distribution_new.html +++ b/develop/proc/dbcsr_tas_distribution_new.html @@ -155,7 +155,7 @@

    Arguments

    @@ -170,7 +170,7 @@

    Arguments

    @@ -185,7 +185,7 @@

    Arguments

    @@ -200,7 +200,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_filter_c_dp.html b/develop/proc/dbcsr_tas_filter_c_dp.html index b8436fb30bc..0309b49fdf8 100644 --- a/develop/proc/dbcsr_tas_filter_c_dp.html +++ b/develop/proc/dbcsr_tas_filter_c_dp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_filter_c_sp.html b/develop/proc/dbcsr_tas_filter_c_sp.html index 1ee6e105dc3..b252d534bbc 100644 --- a/develop/proc/dbcsr_tas_filter_c_sp.html +++ b/develop/proc/dbcsr_tas_filter_c_sp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_filter_r_dp.html b/develop/proc/dbcsr_tas_filter_r_dp.html index b66cd17c3dd..1735a01692b 100644 --- a/develop/proc/dbcsr_tas_filter_r_dp.html +++ b/develop/proc/dbcsr_tas_filter_r_dp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_filter_r_sp.html b/develop/proc/dbcsr_tas_filter_r_sp.html index 0afe434861c..465e571fa85 100644 --- a/develop/proc/dbcsr_tas_filter_r_sp.html +++ b/develop/proc/dbcsr_tas_filter_r_sp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_finalize.html b/develop/proc/dbcsr_tas_finalize.html index 040fc6f5d47..ef4cf5781c7 100644 --- a/develop/proc/dbcsr_tas_finalize.html +++ b/develop/proc/dbcsr_tas_finalize.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_get_block_p_area.html b/develop/proc/dbcsr_tas_get_block_p_area.html index 4351f863c80..89713fef0b1 100644 --- a/develop/proc/dbcsr_tas_get_block_p_area.html +++ b/develop/proc/dbcsr_tas_get_block_p_area.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -243,7 +243,7 @@

    Arguments

    @@ -258,7 +258,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_get_block_p_c_dp.html b/develop/proc/dbcsr_tas_get_block_p_c_dp.html index d11abb0addf..96f6feba715 100644 --- a/develop/proc/dbcsr_tas_get_block_p_c_dp.html +++ b/develop/proc/dbcsr_tas_get_block_p_c_dp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -243,7 +243,7 @@

    Arguments

    @@ -258,7 +258,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_get_block_p_c_sp.html b/develop/proc/dbcsr_tas_get_block_p_c_sp.html index 113ea7096bc..f54276b6c32 100644 --- a/develop/proc/dbcsr_tas_get_block_p_c_sp.html +++ b/develop/proc/dbcsr_tas_get_block_p_c_sp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -243,7 +243,7 @@

    Arguments

    @@ -258,7 +258,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_get_block_p_r_dp.html b/develop/proc/dbcsr_tas_get_block_p_r_dp.html index e75154ed6ea..6a771af3f2e 100644 --- a/develop/proc/dbcsr_tas_get_block_p_r_dp.html +++ b/develop/proc/dbcsr_tas_get_block_p_r_dp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -243,7 +243,7 @@

    Arguments

    @@ -258,7 +258,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_get_block_p_r_sp.html b/develop/proc/dbcsr_tas_get_block_p_r_sp.html index de21c969978..cf4135136c0 100644 --- a/develop/proc/dbcsr_tas_get_block_p_r_sp.html +++ b/develop/proc/dbcsr_tas_get_block_p_r_sp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -243,7 +243,7 @@

    Arguments

    @@ -258,7 +258,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_get_data_size.html b/develop/proc/dbcsr_tas_get_data_size.html index 5e1a4376104..db7e3ee1bdb 100644 --- a/develop/proc/dbcsr_tas_get_data_size.html +++ b/develop/proc/dbcsr_tas_get_data_size.html @@ -153,7 +153,7 @@

    Arguments

    @@ -171,7 +171,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_tas_get_data_type.html b/develop/proc/dbcsr_tas_get_data_type.html index 5361b1b07a9..87ed7ef54aa 100644 --- a/develop/proc/dbcsr_tas_get_data_type.html +++ b/develop/proc/dbcsr_tas_get_data_type.html @@ -153,7 +153,7 @@

    Arguments

    @@ -171,7 +171,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_tas_get_info.html b/develop/proc/dbcsr_tas_get_info.html index a1c2096bea1..3e07400897a 100644 --- a/develop/proc/dbcsr_tas_get_info.html +++ b/develop/proc/dbcsr_tas_get_info.html @@ -152,7 +152,7 @@

    Arguments

    @@ -167,7 +167,7 @@

    Arguments

    @@ -182,7 +182,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    @@ -227,7 +227,7 @@

    Arguments

    @@ -257,7 +257,7 @@

    Arguments

    @@ -272,7 +272,7 @@

    Arguments

    @@ -317,7 +317,7 @@

    Arguments

    @@ -332,7 +332,7 @@

    Arguments

    @@ -377,7 +377,7 @@

    Arguments

    @@ -392,7 +392,7 @@

    Arguments

    @@ -407,7 +407,7 @@

    Arguments

    @@ -422,7 +422,7 @@

    Arguments

    @@ -437,7 +437,7 @@

    Arguments

    @@ -452,7 +452,7 @@

    Arguments

    @@ -482,7 +482,7 @@

    Arguments

    @@ -497,7 +497,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_get_num_blocks.html b/develop/proc/dbcsr_tas_get_num_blocks.html index 42d6327cca3..efe52933490 100644 --- a/develop/proc/dbcsr_tas_get_num_blocks.html +++ b/develop/proc/dbcsr_tas_get_num_blocks.html @@ -153,7 +153,7 @@

    Arguments

    @@ -171,7 +171,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_tas_get_num_blocks_total.html b/develop/proc/dbcsr_tas_get_num_blocks_total.html index 53ceb8e0bc5..da120fc8f09 100644 --- a/develop/proc/dbcsr_tas_get_num_blocks_total.html +++ b/develop/proc/dbcsr_tas_get_num_blocks_total.html @@ -153,7 +153,7 @@

    Arguments

    @@ -171,7 +171,7 @@

    Arguments

    Return Value - + integer(kind=int_8)

    diff --git a/develop/proc/dbcsr_tas_get_nze.html b/develop/proc/dbcsr_tas_get_nze.html index 4699ac6cbec..cc9620ee21d 100644 --- a/develop/proc/dbcsr_tas_get_nze.html +++ b/develop/proc/dbcsr_tas_get_nze.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_get_nze_total.html b/develop/proc/dbcsr_tas_get_nze_total.html index d8c02eb4049..c414ba64ddb 100644 --- a/develop/proc/dbcsr_tas_get_nze_total.html +++ b/develop/proc/dbcsr_tas_get_nze_total.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_get_split_info.html b/develop/proc/dbcsr_tas_get_split_info.html index 3aac2093acc..c7f83ffde1b 100644 --- a/develop/proc/dbcsr_tas_get_split_info.html +++ b/develop/proc/dbcsr_tas_get_split_info.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_get_stored_coordinates.html b/develop/proc/dbcsr_tas_get_stored_coordinates.html index ae08fb446b7..b75ec82c60c 100644 --- a/develop/proc/dbcsr_tas_get_stored_coordinates.html +++ b/develop/proc/dbcsr_tas_get_stored_coordinates.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -184,7 +184,7 @@

    Arguments

    @@ -200,7 +200,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_info.html b/develop/proc/dbcsr_tas_info.html index 7edd601a0db..1a08384d40e 100644 --- a/develop/proc/dbcsr_tas_info.html +++ b/develop/proc/dbcsr_tas_info.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_info_hold.html b/develop/proc/dbcsr_tas_info_hold.html index d9f5a676efd..8dcc6fc5281 100644 --- a/develop/proc/dbcsr_tas_info_hold.html +++ b/develop/proc/dbcsr_tas_info_hold.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_iterator_blocks_left.html b/develop/proc/dbcsr_tas_iterator_blocks_left.html index d7a3550caad..d2d94eb0d03 100644 --- a/develop/proc/dbcsr_tas_iterator_blocks_left.html +++ b/develop/proc/dbcsr_tas_iterator_blocks_left.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_iterator_next_area_block.html b/develop/proc/dbcsr_tas_iterator_next_area_block.html index 34b6275fe17..adee0f06c88 100644 --- a/develop/proc/dbcsr_tas_iterator_next_area_block.html +++ b/develop/proc/dbcsr_tas_iterator_next_area_block.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -243,7 +243,7 @@

    Arguments

    @@ -258,7 +258,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_iterator_next_block_c_dp.html b/develop/proc/dbcsr_tas_iterator_next_block_c_dp.html index b0a623a41ef..6756b637ee1 100644 --- a/develop/proc/dbcsr_tas_iterator_next_block_c_dp.html +++ b/develop/proc/dbcsr_tas_iterator_next_block_c_dp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -243,7 +243,7 @@

    Arguments

    @@ -258,7 +258,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_iterator_next_block_c_sp.html b/develop/proc/dbcsr_tas_iterator_next_block_c_sp.html index fd0a51da536..6005d1f11cf 100644 --- a/develop/proc/dbcsr_tas_iterator_next_block_c_sp.html +++ b/develop/proc/dbcsr_tas_iterator_next_block_c_sp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -243,7 +243,7 @@

    Arguments

    @@ -258,7 +258,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_iterator_next_block_index.html b/develop/proc/dbcsr_tas_iterator_next_block_index.html index 01cda6a9038..0c162427666 100644 --- a/develop/proc/dbcsr_tas_iterator_next_block_index.html +++ b/develop/proc/dbcsr_tas_iterator_next_block_index.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -184,7 +184,7 @@

    Arguments

    @@ -200,7 +200,7 @@

    Arguments

    @@ -215,7 +215,7 @@

    Arguments

    @@ -230,7 +230,7 @@

    Arguments

    @@ -245,7 +245,7 @@

    Arguments

    @@ -260,7 +260,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_iterator_next_block_r_dp.html b/develop/proc/dbcsr_tas_iterator_next_block_r_dp.html index 4f024af9e41..393ad48837f 100644 --- a/develop/proc/dbcsr_tas_iterator_next_block_r_dp.html +++ b/develop/proc/dbcsr_tas_iterator_next_block_r_dp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -243,7 +243,7 @@

    Arguments

    @@ -258,7 +258,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_iterator_next_block_r_sp.html b/develop/proc/dbcsr_tas_iterator_next_block_r_sp.html index 9046f03f395..78602d0f32f 100644 --- a/develop/proc/dbcsr_tas_iterator_next_block_r_sp.html +++ b/develop/proc/dbcsr_tas_iterator_next_block_r_sp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -243,7 +243,7 @@

    Arguments

    @@ -258,7 +258,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_iterator_start.html b/develop/proc/dbcsr_tas_iterator_start.html index 01db9a806bb..a92a1a18bf5 100644 --- a/develop/proc/dbcsr_tas_iterator_start.html +++ b/develop/proc/dbcsr_tas_iterator_start.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_iterator_stop.html b/develop/proc/dbcsr_tas_iterator_stop.html index b2eddc0144d..2d8cfa8a327 100644 --- a/develop/proc/dbcsr_tas_iterator_stop.html +++ b/develop/proc/dbcsr_tas_iterator_stop.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_merge.html b/develop/proc/dbcsr_tas_merge.html index 93b102dc1c6..56c1d1a82ea 100644 --- a/develop/proc/dbcsr_tas_merge.html +++ b/develop/proc/dbcsr_tas_merge.html @@ -153,7 +153,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_mp_comm.html b/develop/proc/dbcsr_tas_mp_comm.html index 073947852d1..dedde1edbd3 100644 --- a/develop/proc/dbcsr_tas_mp_comm.html +++ b/develop/proc/dbcsr_tas_mp_comm.html @@ -155,7 +155,7 @@

    Arguments

    @@ -170,7 +170,7 @@

    Arguments

    @@ -185,7 +185,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_mp_comm_from_matrix_sizes.html b/develop/proc/dbcsr_tas_mp_comm_from_matrix_sizes.html index 78bb02f62a9..ce7dcb68e75 100644 --- a/develop/proc/dbcsr_tas_mp_comm_from_matrix_sizes.html +++ b/develop/proc/dbcsr_tas_mp_comm_from_matrix_sizes.html @@ -154,7 +154,7 @@

    Arguments

    @@ -169,7 +169,7 @@

    Arguments

    @@ -185,7 +185,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_mp_dims.html b/develop/proc/dbcsr_tas_mp_dims.html index 3f7c6de6cf9..510f23b7c7c 100644 --- a/develop/proc/dbcsr_tas_mp_dims.html +++ b/develop/proc/dbcsr_tas_mp_dims.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_multiply.html b/develop/proc/dbcsr_tas_multiply.html index d2e1cf11709..ada33561030 100644 --- a/develop/proc/dbcsr_tas_multiply.html +++ b/develop/proc/dbcsr_tas_multiply.html @@ -154,7 +154,7 @@

    Arguments

    @@ -169,7 +169,7 @@

    Arguments

    @@ -184,7 +184,7 @@

    Arguments

    @@ -199,7 +199,7 @@

    Arguments

    @@ -214,7 +214,7 @@

    Arguments

    @@ -229,7 +229,7 @@

    Arguments

    @@ -244,7 +244,7 @@

    Arguments

    @@ -259,7 +259,7 @@

    Arguments

    @@ -274,7 +274,7 @@

    Arguments

    @@ -290,7 +290,7 @@

    Arguments

    @@ -306,7 +306,7 @@

    Arguments

    @@ -321,7 +321,7 @@

    Arguments

    @@ -370,7 +370,7 @@

    Arguments

    @@ -404,7 +404,7 @@

    Arguments

    @@ -419,7 +419,7 @@

    Arguments

    @@ -434,7 +434,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_nblkcols_local.html b/develop/proc/dbcsr_tas_nblkcols_local.html index 46816d59675..26fe99cd553 100644 --- a/develop/proc/dbcsr_tas_nblkcols_local.html +++ b/develop/proc/dbcsr_tas_nblkcols_local.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_nblkcols_total.html b/develop/proc/dbcsr_tas_nblkcols_total.html index 58bef7998ab..58326fbae56 100644 --- a/develop/proc/dbcsr_tas_nblkcols_total.html +++ b/develop/proc/dbcsr_tas_nblkcols_total.html @@ -152,7 +152,7 @@

    Arguments

    @@ -170,7 +170,7 @@

    Arguments

    Return Value - + integer(kind=int_8)

    diff --git a/develop/proc/dbcsr_tas_nblkrows_local.html b/develop/proc/dbcsr_tas_nblkrows_local.html index 842ec4b648e..6ce9225a009 100644 --- a/develop/proc/dbcsr_tas_nblkrows_local.html +++ b/develop/proc/dbcsr_tas_nblkrows_local.html @@ -152,7 +152,7 @@

    Arguments

    @@ -170,7 +170,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dbcsr_tas_nblkrows_total.html b/develop/proc/dbcsr_tas_nblkrows_total.html index d06e9a805f3..1a5c3dee22c 100644 --- a/develop/proc/dbcsr_tas_nblkrows_total.html +++ b/develop/proc/dbcsr_tas_nblkrows_total.html @@ -152,7 +152,7 @@

    Arguments

    @@ -170,7 +170,7 @@

    Arguments

    Return Value - + integer(kind=int_8)

    diff --git a/develop/proc/dbcsr_tas_nfullcols_total.html b/develop/proc/dbcsr_tas_nfullcols_total.html index ebe2d01264b..5f976f4d660 100644 --- a/develop/proc/dbcsr_tas_nfullcols_total.html +++ b/develop/proc/dbcsr_tas_nfullcols_total.html @@ -152,7 +152,7 @@

    Arguments

    @@ -170,7 +170,7 @@

    Arguments

    Return Value - + integer(kind=int_8)

    diff --git a/develop/proc/dbcsr_tas_nfullrows_total.html b/develop/proc/dbcsr_tas_nfullrows_total.html index 1a058333e46..13cc641c343 100644 --- a/develop/proc/dbcsr_tas_nfullrows_total.html +++ b/develop/proc/dbcsr_tas_nfullrows_total.html @@ -152,7 +152,7 @@

    Arguments

    @@ -170,7 +170,7 @@

    Arguments

    Return Value - + integer(kind=int_8)

    diff --git a/develop/proc/dbcsr_tas_put_block_area.html b/develop/proc/dbcsr_tas_put_block_area.html index ace364b1eef..b2dedbaf3b1 100644 --- a/develop/proc/dbcsr_tas_put_block_area.html +++ b/develop/proc/dbcsr_tas_put_block_area.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -243,7 +243,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_put_block_c_dp.html b/develop/proc/dbcsr_tas_put_block_c_dp.html index 087adf379f2..e1929d98bb9 100644 --- a/develop/proc/dbcsr_tas_put_block_c_dp.html +++ b/develop/proc/dbcsr_tas_put_block_c_dp.html @@ -152,7 +152,7 @@

    Arguments

    @@ -167,7 +167,7 @@

    Arguments

    @@ -182,7 +182,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    @@ -227,7 +227,7 @@

    Arguments

    @@ -242,7 +242,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_put_block_c_sp.html b/develop/proc/dbcsr_tas_put_block_c_sp.html index 20f080e7508..f284b278fc9 100644 --- a/develop/proc/dbcsr_tas_put_block_c_sp.html +++ b/develop/proc/dbcsr_tas_put_block_c_sp.html @@ -152,7 +152,7 @@

    Arguments

    @@ -167,7 +167,7 @@

    Arguments

    @@ -182,7 +182,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    @@ -227,7 +227,7 @@

    Arguments

    @@ -242,7 +242,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_put_block_r_dp.html b/develop/proc/dbcsr_tas_put_block_r_dp.html index 24070e2ca04..3487af83a62 100644 --- a/develop/proc/dbcsr_tas_put_block_r_dp.html +++ b/develop/proc/dbcsr_tas_put_block_r_dp.html @@ -152,7 +152,7 @@

    Arguments

    @@ -167,7 +167,7 @@

    Arguments

    @@ -182,7 +182,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    @@ -227,7 +227,7 @@

    Arguments

    @@ -242,7 +242,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_put_block_r_sp.html b/develop/proc/dbcsr_tas_put_block_r_sp.html index 93c2c2ba8d8..f58c2265fc5 100644 --- a/develop/proc/dbcsr_tas_put_block_r_sp.html +++ b/develop/proc/dbcsr_tas_put_block_r_sp.html @@ -152,7 +152,7 @@

    Arguments

    @@ -167,7 +167,7 @@

    Arguments

    @@ -182,7 +182,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    @@ -227,7 +227,7 @@

    Arguments

    @@ -242,7 +242,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_random_bsizes.html b/develop/proc/dbcsr_tas_random_bsizes.html index 09add3f0432..18620d0887c 100644 --- a/develop/proc/dbcsr_tas_random_bsizes.html +++ b/develop/proc/dbcsr_tas_random_bsizes.html @@ -153,7 +153,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_release_info.html b/develop/proc/dbcsr_tas_release_info.html index b7c62688919..92a6019a11f 100644 --- a/develop/proc/dbcsr_tas_release_info.html +++ b/develop/proc/dbcsr_tas_release_info.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_replicate.html b/develop/proc/dbcsr_tas_replicate.html index 86093e786b0..c372a6404d0 100644 --- a/develop/proc/dbcsr_tas_replicate.html +++ b/develop/proc/dbcsr_tas_replicate.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_reserve_blocks_index.html b/develop/proc/dbcsr_tas_reserve_blocks_index.html index 05778a6a45f..1008b36df34 100644 --- a/develop/proc/dbcsr_tas_reserve_blocks_index.html +++ b/develop/proc/dbcsr_tas_reserve_blocks_index.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_reserve_blocks_template.html b/develop/proc/dbcsr_tas_reserve_blocks_template.html index 2812c0c27ad..8722e23c48c 100644 --- a/develop/proc/dbcsr_tas_reserve_blocks_template.html +++ b/develop/proc/dbcsr_tas_reserve_blocks_template.html @@ -154,7 +154,7 @@

    Arguments

    @@ -169,7 +169,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_reshape.html b/develop/proc/dbcsr_tas_reshape.html index 4925f664c6b..e9bebf078de 100644 --- a/develop/proc/dbcsr_tas_reshape.html +++ b/develop/proc/dbcsr_tas_reshape.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_result_index.html b/develop/proc/dbcsr_tas_result_index.html index d8300b523cf..c44f36854a5 100644 --- a/develop/proc/dbcsr_tas_result_index.html +++ b/develop/proc/dbcsr_tas_result_index.html @@ -154,7 +154,7 @@

    Arguments

    @@ -169,7 +169,7 @@

    Arguments

    @@ -184,7 +184,7 @@

    Arguments

    @@ -199,7 +199,7 @@

    Arguments

    @@ -214,7 +214,7 @@

    Arguments

    @@ -229,7 +229,7 @@

    Arguments

    @@ -244,7 +244,7 @@

    Arguments

    @@ -259,7 +259,7 @@

    Arguments

    @@ -289,7 +289,7 @@

    Arguments

    @@ -304,7 +304,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_set_batched_state.html b/develop/proc/dbcsr_tas_set_batched_state.html index 77cdee8f45f..0991152fd43 100644 --- a/develop/proc/dbcsr_tas_set_batched_state.html +++ b/develop/proc/dbcsr_tas_set_batched_state.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_set_c_dp.html b/develop/proc/dbcsr_tas_set_c_dp.html index bb4a934281e..20419566a98 100644 --- a/develop/proc/dbcsr_tas_set_c_dp.html +++ b/develop/proc/dbcsr_tas_set_c_dp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_set_c_sp.html b/develop/proc/dbcsr_tas_set_c_sp.html index 2d802a0bd1c..ca99de9441b 100644 --- a/develop/proc/dbcsr_tas_set_c_sp.html +++ b/develop/proc/dbcsr_tas_set_c_sp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_set_r_dp.html b/develop/proc/dbcsr_tas_set_r_dp.html index 03de1b3b331..26278985600 100644 --- a/develop/proc/dbcsr_tas_set_r_dp.html +++ b/develop/proc/dbcsr_tas_set_r_dp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_set_r_sp.html b/develop/proc/dbcsr_tas_set_r_sp.html index 854da14830f..a96539f0a2a 100644 --- a/develop/proc/dbcsr_tas_set_r_sp.html +++ b/develop/proc/dbcsr_tas_set_r_sp.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_set_strict_split.html b/develop/proc/dbcsr_tas_set_strict_split.html index 811bc138ba4..0a5759df1e3 100644 --- a/develop/proc/dbcsr_tas_set_strict_split.html +++ b/develop/proc/dbcsr_tas_set_strict_split.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_setup_test_matrix.html b/develop/proc/dbcsr_tas_setup_test_matrix.html index 725f15feb63..6e49f843a99 100644 --- a/develop/proc/dbcsr_tas_setup_test_matrix.html +++ b/develop/proc/dbcsr_tas_setup_test_matrix.html @@ -153,7 +153,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -273,7 +273,7 @@

    Arguments

    @@ -288,7 +288,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_test_mm.html b/develop/proc/dbcsr_tas_test_mm.html index 11461fe1330..31fb61bdf88 100644 --- a/develop/proc/dbcsr_tas_test_mm.html +++ b/develop/proc/dbcsr_tas_test_mm.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -243,7 +243,7 @@

    Arguments

    @@ -258,7 +258,7 @@

    Arguments

    @@ -273,7 +273,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_write_dist.html b/develop/proc/dbcsr_tas_write_dist.html index 65acbdec452..9e3c73801b5 100644 --- a/develop/proc/dbcsr_tas_write_dist.html +++ b/develop/proc/dbcsr_tas_write_dist.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_write_matrix_info.html b/develop/proc/dbcsr_tas_write_matrix_info.html index ffc2c30f2db..255b05bc87b 100644 --- a/develop/proc/dbcsr_tas_write_matrix_info.html +++ b/develop/proc/dbcsr_tas_write_matrix_info.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_tas_write_split_info.html b/develop/proc/dbcsr_tas_write_split_info.html index 76dcbd2a79d..1bb2b091361 100644 --- a/develop/proc/dbcsr_tas_write_split_info.html +++ b/develop/proc/dbcsr_tas_write_split_info.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_test_scale_by_vectors.html b/develop/proc/dbcsr_test_scale_by_vectors.html index 3d499413b48..5e5a0fbff18 100644 --- a/develop/proc/dbcsr_test_scale_by_vectors.html +++ b/develop/proc/dbcsr_test_scale_by_vectors.html @@ -169,7 +169,7 @@

    Arguments

    @@ -184,7 +184,7 @@

    Arguments

    @@ -214,7 +214,7 @@

    Arguments

    @@ -276,7 +276,7 @@

    Arguments

    @@ -309,7 +309,7 @@

    Arguments

    Return Value - + logical

    diff --git a/develop/proc/dbcsr_to_csr_filter.html b/develop/proc/dbcsr_to_csr_filter.html index b01ecfcc435..a76b547d1b1 100644 --- a/develop/proc/dbcsr_to_csr_filter.html +++ b/develop/proc/dbcsr_to_csr_filter.html @@ -74,20 +74,20 @@

    dbcsr_to_csr_filter
  • 41 statements + title=" 0.0% of total for procedures.">6 statements
  • - Source File + Source File
  • @@ -160,8 +160,8 @@

    Arguments

    @@ -228,55 +228,8 @@

    Source Code

    TYPE(dbcsr_type), INTENT(OUT) :: csr_sparsity REAL(kind=real_8), INTENT(IN) :: eps - INTEGER :: blkcol, blkrow, col_blk_size, data_type, & - row_blk_size - LOGICAL :: tr - REAL(kind=real_8), ALLOCATABLE, DIMENSION(:) :: block_abs, csr_sparsity_blk - TYPE(dbcsr_data_obj) :: block - TYPE(dbcsr_iterator) :: iter - -!REAL(kind=real_8), DIMENSION(:), POINTER :: block - - CALL dbcsr_create(csr_sparsity, & - template=dbcsr_mat, & - name="CSR sparsity", & - data_type=dbcsr_type_real_8) - CALL dbcsr_copy(csr_sparsity, dbcsr_mat) - CALL dbcsr_set(csr_sparsity, 1.0_dp) - - IF (eps .GT. 0.0_dp) THEN - data_type = dbcsr_get_data_type(dbcsr_mat) - CALL dbcsr_data_init(block) - CALL dbcsr_data_new(block, data_type) - CALL dbcsr_iterator_start(iter, dbcsr_mat, read_only=.TRUE.) - DO WHILE (dbcsr_iterator_blocks_left(iter)) - CALL dbcsr_iterator_next_block(iter, blkrow, blkcol, block, transposed=tr, & - row_size=row_blk_size, col_size=col_blk_size) - - ALLOCATE (block_abs(row_blk_size*col_blk_size)) - ALLOCATE (csr_sparsity_blk(row_blk_size*col_blk_size)) - SELECT CASE (data_type) - CASE (dbcsr_type_real_4) - block_abs(:) = REAL(ABS(block%d%r_sp(:)), KIND=real_8) - CASE (dbcsr_type_real_8) - block_abs(:) = REAL(ABS(block%d%r_dp(:)), KIND=real_8) - CASE (dbcsr_type_complex_4) - block_abs(:) = REAL(ABS(block%d%c_sp(:)), KIND=real_8) - CASE (dbcsr_type_complex_8) - block_abs(:) = REAL(ABS(block%d%c_dp(:)), KIND=real_8) - END SELECT - - csr_sparsity_blk = 1.0_dp - WHERE (block_abs .LT. eps) csr_sparsity_blk = 0.0_dp - CALL dbcsr_put_block(csr_sparsity, blkrow, blkcol, csr_sparsity_blk, transposed=tr) - DEALLOCATE (csr_sparsity_blk, block_abs) - END DO - CALL dbcsr_iterator_stop(iter) - CALL dbcsr_data_clear_pointer(block) - CALL dbcsr_data_release(block) - END IF - - END SUBROUTINE dbcsr_to_csr_filter + CALL dbcsr_to_csr_filter_prv(dbcsr_mat%prv, csr_sparsity%prv, eps) + END SUBROUTINE dbcsr_to_csr_filter diff --git a/develop/proc/dbcsr_to_csr_filter~2.html b/develop/proc/dbcsr_to_csr_filter~2.html index 883b4002bfc..ec389a60b79 100644 --- a/develop/proc/dbcsr_to_csr_filter~2.html +++ b/develop/proc/dbcsr_to_csr_filter~2.html @@ -74,20 +74,20 @@

    dbcsr_to_csr_filter
  • 6 statements + title=" 0.1% of total for procedures.">41 statements
  • - Source File + Source File
  • @@ -160,8 +160,8 @@

    Arguments

    @@ -228,8 +228,55 @@

    Source Code

    TYPE(dbcsr_type), INTENT(OUT) :: csr_sparsity REAL(kind=real_8), INTENT(IN) :: eps - CALL dbcsr_to_csr_filter_prv(dbcsr_mat%prv, csr_sparsity%prv, eps) - END SUBROUTINE dbcsr_to_csr_filter + INTEGER :: blkcol, blkrow, col_blk_size, data_type, & + row_blk_size + LOGICAL :: tr + REAL(kind=real_8), ALLOCATABLE, DIMENSION(:) :: block_abs, csr_sparsity_blk + TYPE(dbcsr_data_obj) :: block + TYPE(dbcsr_iterator) :: iter + +!REAL(kind=real_8), DIMENSION(:), POINTER :: block + + CALL dbcsr_create(csr_sparsity, & + template=dbcsr_mat, & + name="CSR sparsity", & + data_type=dbcsr_type_real_8) + CALL dbcsr_copy(csr_sparsity, dbcsr_mat) + CALL dbcsr_set(csr_sparsity, 1.0_dp) + + IF (eps .GT. 0.0_dp) THEN + data_type = dbcsr_get_data_type(dbcsr_mat) + CALL dbcsr_data_init(block) + CALL dbcsr_data_new(block, data_type) + CALL dbcsr_iterator_start(iter, dbcsr_mat, read_only=.TRUE.) + DO WHILE (dbcsr_iterator_blocks_left(iter)) + CALL dbcsr_iterator_next_block(iter, blkrow, blkcol, block, transposed=tr, & + row_size=row_blk_size, col_size=col_blk_size) + + ALLOCATE (block_abs(row_blk_size*col_blk_size)) + ALLOCATE (csr_sparsity_blk(row_blk_size*col_blk_size)) + SELECT CASE (data_type) + CASE (dbcsr_type_real_4) + block_abs(:) = REAL(ABS(block%d%r_sp(:)), KIND=real_8) + CASE (dbcsr_type_real_8) + block_abs(:) = REAL(ABS(block%d%r_dp(:)), KIND=real_8) + CASE (dbcsr_type_complex_4) + block_abs(:) = REAL(ABS(block%d%c_sp(:)), KIND=real_8) + CASE (dbcsr_type_complex_8) + block_abs(:) = REAL(ABS(block%d%c_dp(:)), KIND=real_8) + END SELECT + + csr_sparsity_blk = 1.0_dp + WHERE (block_abs .LT. eps) csr_sparsity_blk = 0.0_dp + CALL dbcsr_put_block(csr_sparsity, blkrow, blkcol, csr_sparsity_blk, transposed=tr) + DEALLOCATE (csr_sparsity_blk, block_abs) + END DO + CALL dbcsr_iterator_stop(iter) + CALL dbcsr_data_clear_pointer(block) + CALL dbcsr_data_release(block) + END IF + + END SUBROUTINE dbcsr_to_csr_filter diff --git a/develop/proc/dbcsr_to_dense_local.html b/develop/proc/dbcsr_to_dense_local.html index 2c3f534fd7d..c9ed3cb6cef 100644 --- a/develop/proc/dbcsr_to_dense_local.html +++ b/develop/proc/dbcsr_to_dense_local.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_trace_c.html b/develop/proc/dbcsr_trace_c.html index 6a3efaf9a4f..145a79ac55d 100644 --- a/develop/proc/dbcsr_trace_c.html +++ b/develop/proc/dbcsr_trace_c.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_trace_c~2.html b/develop/proc/dbcsr_trace_c~2.html index 7f2fd0909fe..f09049f6544 100644 --- a/develop/proc/dbcsr_trace_c~2.html +++ b/develop/proc/dbcsr_trace_c~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_trace_d.html b/develop/proc/dbcsr_trace_d.html index 7fa9492282d..28e9dca934a 100644 --- a/develop/proc/dbcsr_trace_d.html +++ b/develop/proc/dbcsr_trace_d.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_trace_d~2.html b/develop/proc/dbcsr_trace_d~2.html index 91cdb4d0945..e4618ec941f 100644 --- a/develop/proc/dbcsr_trace_d~2.html +++ b/develop/proc/dbcsr_trace_d~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_trace_s.html b/develop/proc/dbcsr_trace_s.html index 2483cdefc10..9581bfd5094 100644 --- a/develop/proc/dbcsr_trace_s.html +++ b/develop/proc/dbcsr_trace_s.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_trace_sd.html b/develop/proc/dbcsr_trace_sd.html index a6d4646e3d3..9d594ef90f8 100644 --- a/develop/proc/dbcsr_trace_sd.html +++ b/develop/proc/dbcsr_trace_sd.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_trace_s~2.html b/develop/proc/dbcsr_trace_s~2.html index c75a0111521..c7889145197 100644 --- a/develop/proc/dbcsr_trace_s~2.html +++ b/develop/proc/dbcsr_trace_s~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_trace_z.html b/develop/proc/dbcsr_trace_z.html index b3a6677b394..8750fee10f7 100644 --- a/develop/proc/dbcsr_trace_z.html +++ b/develop/proc/dbcsr_trace_z.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_trace_z~2.html b/develop/proc/dbcsr_trace_z~2.html index 9c42b7db1d8..b063afcd2cc 100644 --- a/develop/proc/dbcsr_trace_z~2.html +++ b/develop/proc/dbcsr_trace_z~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_transposed.html b/develop/proc/dbcsr_transposed.html index 19cfa4d5b13..b025e78f993 100644 --- a/develop/proc/dbcsr_transposed.html +++ b/develop/proc/dbcsr_transposed.html @@ -74,20 +74,20 @@

    dbcsr_transposed
  • 15 statements + title=" 0.0% of total for procedures.">11 statements
  • - Source File + Source File
  • @@ -143,7 +143,6 @@

    public subroutine dbcsr_transposed(transposed, normal, shallow_data_copy, t

    -

    Transposes a DBCSR matrix, keeping the same distribution

    Arguments

    @@ -159,8 +158,8 @@

    Arguments

    @@ -204,7 +203,7 @@

    Arguments

    @@ -219,7 +218,7 @@

    Arguments

    @@ -234,8 +233,8 @@

    Arguments

    @@ -203,7 +204,7 @@

    Arguments

    @@ -218,7 +219,7 @@

    Arguments

    @@ -233,8 +234,8 @@

    Arguments

    diff --git a/develop/proc/dbcsr_triu~2.html b/develop/proc/dbcsr_triu~2.html index e9601da28db..639867715f1 100644 --- a/develop/proc/dbcsr_triu~2.html +++ b/develop/proc/dbcsr_triu~2.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_type_1d_to_2d.html b/develop/proc/dbcsr_type_1d_to_2d.html index 5f574203bfd..c855c16c0dc 100644 --- a/develop/proc/dbcsr_type_1d_to_2d.html +++ b/develop/proc/dbcsr_type_1d_to_2d.html @@ -160,7 +160,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_type_2d_to_1d.html b/develop/proc/dbcsr_type_2d_to_1d.html index fd82bf4f422..07e6652b925 100644 --- a/develop/proc/dbcsr_type_2d_to_1d.html +++ b/develop/proc/dbcsr_type_2d_to_1d.html @@ -160,7 +160,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_type_is_2d.html b/develop/proc/dbcsr_type_is_2d.html index d7e47071ac1..d3be957fd8c 100644 --- a/develop/proc/dbcsr_type_is_2d.html +++ b/develop/proc/dbcsr_type_is_2d.html @@ -160,7 +160,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_unpack_meta.html b/develop/proc/dbcsr_unpack_meta.html index 4abb84f7ea9..f9d4db981ee 100644 --- a/develop/proc/dbcsr_unpack_meta.html +++ b/develop/proc/dbcsr_unpack_meta.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_update_contiguous_blocks_c.html b/develop/proc/dbcsr_update_contiguous_blocks_c.html index fda37e03711..101d2535cb9 100644 --- a/develop/proc/dbcsr_update_contiguous_blocks_c.html +++ b/develop/proc/dbcsr_update_contiguous_blocks_c.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    @@ -264,7 +264,7 @@

    Arguments

    @@ -279,7 +279,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_update_contiguous_blocks_d.html b/develop/proc/dbcsr_update_contiguous_blocks_d.html index 83a06db52ca..b9f3148b5fe 100644 --- a/develop/proc/dbcsr_update_contiguous_blocks_d.html +++ b/develop/proc/dbcsr_update_contiguous_blocks_d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    @@ -264,7 +264,7 @@

    Arguments

    @@ -279,7 +279,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_update_contiguous_blocks_s.html b/develop/proc/dbcsr_update_contiguous_blocks_s.html index 6192824fc1e..7c78c498559 100644 --- a/develop/proc/dbcsr_update_contiguous_blocks_s.html +++ b/develop/proc/dbcsr_update_contiguous_blocks_s.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    @@ -264,7 +264,7 @@

    Arguments

    @@ -279,7 +279,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_update_contiguous_blocks_z.html b/develop/proc/dbcsr_update_contiguous_blocks_z.html index 2629a6aa82f..7c51791a2dd 100644 --- a/develop/proc/dbcsr_update_contiguous_blocks_z.html +++ b/develop/proc/dbcsr_update_contiguous_blocks_z.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    @@ -264,7 +264,7 @@

    Arguments

    @@ -279,7 +279,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_use_mutable.html b/develop/proc/dbcsr_use_mutable.html index 0552102efd3..d2ecbdc50e3 100644 --- a/develop/proc/dbcsr_use_mutable.html +++ b/develop/proc/dbcsr_use_mutable.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_valid_index.html b/develop/proc/dbcsr_valid_index.html index 69b403030f4..c1fc6d7eb33 100644 --- a/develop/proc/dbcsr_valid_index.html +++ b/develop/proc/dbcsr_valid_index.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_valid_index~2.html b/develop/proc/dbcsr_valid_index~2.html index 4d835610a00..44fc358e266 100644 --- a/develop/proc/dbcsr_valid_index~2.html +++ b/develop/proc/dbcsr_valid_index~2.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_verify_matrix.html b/develop/proc/dbcsr_verify_matrix.html index 1244283d965..e9841374f3d 100644 --- a/develop/proc/dbcsr_verify_matrix.html +++ b/develop/proc/dbcsr_verify_matrix.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_verify_matrix~2.html b/develop/proc/dbcsr_verify_matrix~2.html index bb713ad5f18..a0a3762cc1d 100644 --- a/develop/proc/dbcsr_verify_matrix~2.html +++ b/develop/proc/dbcsr_verify_matrix~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_warn.html b/develop/proc/dbcsr_warn.html index eda33963f84..6e79e45dfd6 100644 --- a/develop/proc/dbcsr_warn.html +++ b/develop/proc/dbcsr_warn.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_warn_handler.html b/develop/proc/dbcsr_warn_handler.html index bdc208134d2..5bc3411960f 100644 --- a/develop/proc/dbcsr_warn_handler.html +++ b/develop/proc/dbcsr_warn_handler.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_win_create_any.html b/develop/proc/dbcsr_win_create_any.html index 6a94666f2f9..1e1b389261c 100644 --- a/develop/proc/dbcsr_win_create_any.html +++ b/develop/proc/dbcsr_win_create_any.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_work_create.html b/develop/proc/dbcsr_work_create.html index f4b215d21e3..8ac7aaf6365 100644 --- a/develop/proc/dbcsr_work_create.html +++ b/develop/proc/dbcsr_work_create.html @@ -158,7 +158,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_work_create~2.html b/develop/proc/dbcsr_work_create~2.html index 6b13cefdbb0..d33a702e188 100644 --- a/develop/proc/dbcsr_work_create~2.html +++ b/develop/proc/dbcsr_work_create~2.html @@ -159,7 +159,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    @@ -240,7 +240,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_work_destroy_all.html b/develop/proc/dbcsr_work_destroy_all.html index 3a1bd69c423..f634894c702 100644 --- a/develop/proc/dbcsr_work_destroy_all.html +++ b/develop/proc/dbcsr_work_destroy_all.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/dbcsr_zero.html b/develop/proc/dbcsr_zero.html index b1f3363e3b5..be6924b9003 100644 --- a/develop/proc/dbcsr_zero.html +++ b/develop/proc/dbcsr_zero.html @@ -159,7 +159,7 @@

    Arguments

    @@ -198,7 +198,6 @@

    Source Code

    CALL timeset(routineN, handle) SELECT CASE (dbcsr_get_data_type(matrix_a)) -#if defined(__DBCSR_DISABLE_WORKSHARE) CASE (dbcsr_type_complex_4) matrix_a%data_area%d%c_sp = (0.0, 0.0) CASE (dbcsr_type_complex_8) @@ -207,24 +206,6 @@

    Source Code

    matrix_a%data_area%d%r_sp = 0.0 CASE (dbcsr_type_real_8) matrix_a%data_area%d%r_dp = 0.0_dp -#else - CASE (dbcsr_type_complex_4) -!$OMP PARALLEL WORKSHARE DEFAULT(NONE), SHARED(matrix_a) - matrix_a%data_area%d%c_sp = (0.0, 0.0) -!$OMP END PARALLEL WORKSHARE - CASE (dbcsr_type_complex_8) -!$OMP PARALLEL WORKSHARE DEFAULT(NONE), SHARED(matrix_a) - matrix_a%data_area%d%c_dp = (0.0_dp, 0.0_dp) -!$OMP END PARALLEL WORKSHARE - CASE (dbcsr_type_real_4) -!$OMP PARALLEL WORKSHARE DEFAULT(NONE), SHARED(matrix_a) - matrix_a%data_area%d%r_sp = 0.0 -!$OMP END PARALLEL WORKSHARE - CASE (dbcsr_type_real_8) -!$OMP PARALLEL WORKSHARE DEFAULT(NONE), SHARED(matrix_a) - matrix_a%data_area%d%r_dp = 0.0_dp -!$OMP END PARALLEL WORKSHARE -#endif END SELECT CALL timestop(handle) END SUBROUTINE dbcsr_zero diff --git a/develop/proc/delete_preconnection.html b/develop/proc/delete_preconnection.html index 43c1a53d0ca..472990cdc4d 100644 --- a/develop/proc/delete_preconnection.html +++ b/develop/proc/delete_preconnection.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/destroy_array_list.html b/develop/proc/destroy_array_list.html index 1131d3f77dc..da2fe4e9f93 100644 --- a/develop/proc/destroy_array_list.html +++ b/develop/proc/destroy_array_list.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/proc/destroy_block.html b/develop/proc/destroy_block.html index c266f1d2119..2e2a6fedaff 100644 --- a/develop/proc/destroy_block.html +++ b/develop/proc/destroy_block.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/proc/destroy_block_c_dp.html b/develop/proc/destroy_block_c_dp.html index 65ea5e850db..f32220468ed 100644 --- a/develop/proc/destroy_block_c_dp.html +++ b/develop/proc/destroy_block_c_dp.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/destroy_block_c_sp.html b/develop/proc/destroy_block_c_sp.html index 389312740d6..b695c1fd275 100644 --- a/develop/proc/destroy_block_c_sp.html +++ b/develop/proc/destroy_block_c_sp.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/destroy_block_r_dp.html b/develop/proc/destroy_block_r_dp.html index 71293136ce9..130492c52ac 100644 --- a/develop/proc/destroy_block_r_dp.html +++ b/develop/proc/destroy_block_r_dp.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/destroy_block_r_sp.html b/develop/proc/destroy_block_r_sp.html index ba34bb3222e..5024ac5c1c3 100644 --- a/develop/proc/destroy_block_r_sp.html +++ b/develop/proc/destroy_block_r_sp.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/destroy_nd_to_2d_mapping.html b/develop/proc/destroy_nd_to_2d_mapping.html index 9f765802607..6702ace9160 100644 --- a/develop/proc/destroy_nd_to_2d_mapping.html +++ b/develop/proc/destroy_nd_to_2d_mapping.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/dev2host_c4_1d.html b/develop/proc/dev2host_c4_1d.html index c661dc08f7e..89da59c736b 100644 --- a/develop/proc/dev2host_c4_1d.html +++ b/develop/proc/dev2host_c4_1d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dev2host_c8_1d.html b/develop/proc/dev2host_c8_1d.html index efea1b19283..bd7a5be10ab 100644 --- a/develop/proc/dev2host_c8_1d.html +++ b/develop/proc/dev2host_c8_1d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dev2host_i4_1d.html b/develop/proc/dev2host_i4_1d.html index 6b52ccba466..6d9862274e6 100644 --- a/develop/proc/dev2host_i4_1d.html +++ b/develop/proc/dev2host_i4_1d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dev2host_i8_1d.html b/develop/proc/dev2host_i8_1d.html index a20eab0ecb2..78214140431 100644 --- a/develop/proc/dev2host_i8_1d.html +++ b/develop/proc/dev2host_i8_1d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dev2host_r4_1d.html b/develop/proc/dev2host_r4_1d.html index bd03acefa20..9874830ba56 100644 --- a/develop/proc/dev2host_r4_1d.html +++ b/develop/proc/dev2host_r4_1d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dev2host_r8_1d.html b/develop/proc/dev2host_r8_1d.html index 511a9c37e70..cec23113137 100644 --- a/develop/proc/dev2host_r8_1d.html +++ b/develop/proc/dev2host_r8_1d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dict_i4tuple_callstat_get.html b/develop/proc/dict_i4tuple_callstat_get.html index f1ddf99e390..d0cd7b8020d 100644 --- a/develop/proc/dict_i4tuple_callstat_get.html +++ b/develop/proc/dict_i4tuple_callstat_get.html @@ -176,7 +176,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    Return Value - + type(call_stat_type), POINTER

    diff --git a/develop/proc/dict_i4tuple_callstat_haskey.html b/develop/proc/dict_i4tuple_callstat_haskey.html index 6cc50a25f32..aacd8f09179 100644 --- a/develop/proc/dict_i4tuple_callstat_haskey.html +++ b/develop/proc/dict_i4tuple_callstat_haskey.html @@ -174,7 +174,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    Return Value - + logical

    diff --git a/develop/proc/dict_i4tuple_callstat_init.html b/develop/proc/dict_i4tuple_callstat_init.html index d38a00a47a8..25a44ed9f21 100644 --- a/develop/proc/dict_i4tuple_callstat_init.html +++ b/develop/proc/dict_i4tuple_callstat_init.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dict_i4tuple_callstat_set.html b/develop/proc/dict_i4tuple_callstat_set.html index 08da2bfa018..296b973cebb 100644 --- a/develop/proc/dict_i4tuple_callstat_set.html +++ b/develop/proc/dict_i4tuple_callstat_set.html @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/dict_i4tuple_callstat_size.html b/develop/proc/dict_i4tuple_callstat_size.html index 1f569cd7a7c..b973c10da64 100644 --- a/develop/proc/dict_i4tuple_callstat_size.html +++ b/develop/proc/dict_i4tuple_callstat_size.html @@ -177,7 +177,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dict_str_i4_get.html b/develop/proc/dict_str_i4_get.html index a28f57be150..92feb75a073 100644 --- a/develop/proc/dict_str_i4_get.html +++ b/develop/proc/dict_str_i4_get.html @@ -176,7 +176,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    Return Value - + integer(kind=int_4)

    diff --git a/develop/proc/dict_str_i4_haskey.html b/develop/proc/dict_str_i4_haskey.html index 78558b49dad..fcc338765a8 100644 --- a/develop/proc/dict_str_i4_haskey.html +++ b/develop/proc/dict_str_i4_haskey.html @@ -174,7 +174,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    Return Value - + logical

    diff --git a/develop/proc/dict_str_i4_init.html b/develop/proc/dict_str_i4_init.html index 67f2db4b5f9..6487756a76a 100644 --- a/develop/proc/dict_str_i4_init.html +++ b/develop/proc/dict_str_i4_init.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/dict_str_i4_set.html b/develop/proc/dict_str_i4_set.html index 735c1feb09e..33a2bb919c6 100644 --- a/develop/proc/dict_str_i4_set.html +++ b/develop/proc/dict_str_i4_set.html @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/dict_str_i4_size.html b/develop/proc/dict_str_i4_size.html index 632589d36a8..fd571c5688c 100644 --- a/develop/proc/dict_str_i4_size.html +++ b/develop/proc/dict_str_i4_size.html @@ -177,7 +177,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/dims_tensor.html b/develop/proc/dims_tensor.html index 57f33150dd7..30cb8c8524f 100644 --- a/develop/proc/dims_tensor.html +++ b/develop/proc/dims_tensor.html @@ -168,7 +168,7 @@

    Arguments

    diff --git a/develop/proc/dist_compatible.html b/develop/proc/dist_compatible.html index a4fe5de8a2f..09883b843ab 100644 --- a/develop/proc/dist_compatible.html +++ b/develop/proc/dist_compatible.html @@ -213,7 +213,7 @@

    Arguments

    diff --git a/develop/proc/dist_sparse_tensor_to_repl_dense_2d_array_r_dp.html b/develop/proc/dist_sparse_tensor_to_repl_dense_2d_array_r_dp.html index 13ac144fc04..5fb9f11baf4 100644 --- a/develop/proc/dist_sparse_tensor_to_repl_dense_2d_array_r_dp.html +++ b/develop/proc/dist_sparse_tensor_to_repl_dense_2d_array_r_dp.html @@ -154,7 +154,7 @@

    Arguments

    @@ -169,7 +169,7 @@

    Arguments

    diff --git a/develop/proc/dist_sparse_tensor_to_repl_dense_3d_array_r_dp.html b/develop/proc/dist_sparse_tensor_to_repl_dense_3d_array_r_dp.html index 25dd22dfa06..cfaa56378ce 100644 --- a/develop/proc/dist_sparse_tensor_to_repl_dense_3d_array_r_dp.html +++ b/develop/proc/dist_sparse_tensor_to_repl_dense_3d_array_r_dp.html @@ -154,7 +154,7 @@

    Arguments

    @@ -169,7 +169,7 @@

    Arguments

    diff --git a/develop/proc/dist_sparse_tensor_to_repl_dense_4d_array_r_dp.html b/develop/proc/dist_sparse_tensor_to_repl_dense_4d_array_r_dp.html index af1cd9f8e0f..c86c4ba3f0d 100644 --- a/develop/proc/dist_sparse_tensor_to_repl_dense_4d_array_r_dp.html +++ b/develop/proc/dist_sparse_tensor_to_repl_dense_4d_array_r_dp.html @@ -154,7 +154,7 @@

    Arguments

    @@ -169,7 +169,7 @@

    Arguments

    diff --git a/develop/proc/distribute_lpt_random.html b/develop/proc/distribute_lpt_random.html index ae3bc0e0be1..dcdde8494a6 100644 --- a/develop/proc/distribute_lpt_random.html +++ b/develop/proc/distribute_lpt_random.html @@ -200,7 +200,7 @@

    Arguments

    diff --git a/develop/proc/ensure_array_size_c.html b/develop/proc/ensure_array_size_c.html index dd328ab337d..636c7eb13cf 100644 --- a/develop/proc/ensure_array_size_c.html +++ b/develop/proc/ensure_array_size_c.html @@ -159,7 +159,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    @@ -250,7 +250,7 @@

    Arguments

    @@ -265,7 +265,7 @@

    Arguments

    diff --git a/develop/proc/ensure_array_size_d.html b/develop/proc/ensure_array_size_d.html index 64a3c6e2fa8..cf59fc82643 100644 --- a/develop/proc/ensure_array_size_d.html +++ b/develop/proc/ensure_array_size_d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    @@ -250,7 +250,7 @@

    Arguments

    @@ -265,7 +265,7 @@

    Arguments

    diff --git a/develop/proc/ensure_array_size_i.html b/develop/proc/ensure_array_size_i.html index 0a315e33067..fbb9f176e6d 100644 --- a/develop/proc/ensure_array_size_i.html +++ b/develop/proc/ensure_array_size_i.html @@ -159,7 +159,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    @@ -250,7 +250,7 @@

    Arguments

    @@ -265,7 +265,7 @@

    Arguments

    diff --git a/develop/proc/ensure_array_size_l.html b/develop/proc/ensure_array_size_l.html index a850abf9285..ca97cf051b6 100644 --- a/develop/proc/ensure_array_size_l.html +++ b/develop/proc/ensure_array_size_l.html @@ -159,7 +159,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    @@ -250,7 +250,7 @@

    Arguments

    @@ -265,7 +265,7 @@

    Arguments

    diff --git a/develop/proc/ensure_array_size_s.html b/develop/proc/ensure_array_size_s.html index a98def38a11..1c2156db29b 100644 --- a/develop/proc/ensure_array_size_s.html +++ b/develop/proc/ensure_array_size_s.html @@ -159,7 +159,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    @@ -250,7 +250,7 @@

    Arguments

    @@ -265,7 +265,7 @@

    Arguments

    diff --git a/develop/proc/ensure_array_size_z.html b/develop/proc/ensure_array_size_z.html index 861fd6ea69c..21976a539b9 100644 --- a/develop/proc/ensure_array_size_z.html +++ b/develop/proc/ensure_array_size_z.html @@ -159,7 +159,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    @@ -250,7 +250,7 @@

    Arguments

    @@ -265,7 +265,7 @@

    Arguments

    diff --git a/develop/proc/ensure_product_wm_cleared.html b/develop/proc/ensure_product_wm_cleared.html index a31c0cae500..42e207d0711 100644 --- a/develop/proc/ensure_product_wm_cleared.html +++ b/develop/proc/ensure_product_wm_cleared.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/enumerate_blk_sizes.html b/develop/proc/enumerate_blk_sizes.html index 27df27ec3e2..4579f245d81 100644 --- a/develop/proc/enumerate_blk_sizes.html +++ b/develop/proc/enumerate_blk_sizes.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/enumerate_block_elements.html b/develop/proc/enumerate_block_elements.html index 86fd2706815..1536c04c955 100644 --- a/develop/proc/enumerate_block_elements.html +++ b/develop/proc/enumerate_block_elements.html @@ -155,7 +155,7 @@

    Arguments

    @@ -172,7 +172,7 @@

    Arguments

    diff --git a/develop/proc/f_dbcsr_timeset.html b/develop/proc/f_dbcsr_timeset.html index fe13ea1d255..c3ba4b2553a 100644 --- a/develop/proc/f_dbcsr_timeset.html +++ b/develop/proc/f_dbcsr_timeset.html @@ -158,7 +158,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/f_dbcsr_timestop.html b/develop/proc/f_dbcsr_timestop.html index 6a760feb989..d5cc09a36df 100644 --- a/develop/proc/f_dbcsr_timestop.html +++ b/develop/proc/f_dbcsr_timestop.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/factorial.html b/develop/proc/factorial.html index 7aae3c7e87e..24f5f0d6336 100644 --- a/develop/proc/factorial.html +++ b/develop/proc/factorial.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/proc/file_exists.html b/develop/proc/file_exists.html index 35648e4ad3e..0842b1cbd1a 100644 --- a/develop/proc/file_exists.html +++ b/develop/proc/file_exists.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/fill_hash_tables.html b/develop/proc/fill_hash_tables.html index 830f424e5f4..63ef5755a8b 100644 --- a/develop/proc/fill_hash_tables.html +++ b/develop/proc/fill_hash_tables.html @@ -174,7 +174,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    diff --git a/develop/proc/find_all_local_elements.html b/develop/proc/find_all_local_elements.html index 1ebfd304516..c24f9e9317b 100644 --- a/develop/proc/find_all_local_elements.html +++ b/develop/proc/find_all_local_elements.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    diff --git a/develop/proc/find_block_of_element.html b/develop/proc/find_block_of_element.html index 6833cfc37c9..a061e811a32 100644 --- a/develop/proc/find_block_of_element.html +++ b/develop/proc/find_block_of_element.html @@ -162,7 +162,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    diff --git a/develop/proc/find_cut_col.html b/develop/proc/find_cut_col.html index 4bdf1bfb27f..b7c774e4bf9 100644 --- a/develop/proc/find_cut_col.html +++ b/develop/proc/find_cut_col.html @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/find_cut_row.html b/develop/proc/find_cut_row.html index 8572c52fb01..69e40c30dda 100644 --- a/develop/proc/find_cut_row.html +++ b/develop/proc/find_cut_row.html @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/find_first_valid_block.html b/develop/proc/find_first_valid_block.html index 638c6b1a44a..96e28a3fc2f 100644 --- a/develop/proc/find_first_valid_block.html +++ b/develop/proc/find_first_valid_block.html @@ -160,7 +160,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    diff --git a/develop/proc/find_proper_position.html b/develop/proc/find_proper_position.html index 1221831ee7f..ce2b999e504 100644 --- a/develop/proc/find_proper_position.html +++ b/develop/proc/find_proper_position.html @@ -161,7 +161,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    @@ -225,7 +225,7 @@

    Arguments

    @@ -241,7 +241,7 @@

    Arguments

    @@ -257,7 +257,7 @@

    Arguments

    diff --git a/develop/proc/find_proper_position_caller.html b/develop/proc/find_proper_position_caller.html index 82ae3653b4e..5c10b0c836a 100644 --- a/develop/proc/find_proper_position_caller.html +++ b/develop/proc/find_proper_position_caller.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/find_proper_row.html b/develop/proc/find_proper_row.html index 8a888656f46..35789e9b744 100644 --- a/develop/proc/find_proper_row.html +++ b/develop/proc/find_proper_row.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    diff --git a/develop/proc/flush_stacks.html b/develop/proc/flush_stacks.html index af835eae3c9..27ff197fc60 100644 --- a/develop/proc/flush_stacks.html +++ b/develop/proc/flush_stacks.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/frame_block_limit.html b/develop/proc/frame_block_limit.html index 152df418d65..0ae6f3bd5a4 100644 --- a/develop/proc/frame_block_limit.html +++ b/develop/proc/frame_block_limit.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/gcd.html b/develop/proc/gcd.html index f940f7da47e..b3683083bae 100644 --- a/develop/proc/gcd.html +++ b/develop/proc/gcd.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/get_2d_indices_pgrid.html b/develop/proc/get_2d_indices_pgrid.html index 695d710b3b4..996aaf8b060 100644 --- a/develop/proc/get_2d_indices_pgrid.html +++ b/develop/proc/get_2d_indices_pgrid.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/proc/get_2d_indices_tensor.html b/develop/proc/get_2d_indices_tensor.html index 762adce9095..ccf824e0f13 100644 --- a/develop/proc/get_2d_indices_tensor.html +++ b/develop/proc/get_2d_indices_tensor.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/proc/get_array_elements.html b/develop/proc/get_array_elements.html index cf942debcfb..312c8844fcb 100644 --- a/develop/proc/get_array_elements.html +++ b/develop/proc/get_array_elements.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/get_arrays.html b/develop/proc/get_arrays.html index ab2f5b6c706..f502629185d 100644 --- a/develop/proc/get_arrays.html +++ b/develop/proc/get_arrays.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/get_data_2d_c.html b/develop/proc/get_data_2d_c.html index 375cf03c79c..d39905a94d2 100644 --- a/develop/proc/get_data_2d_c.html +++ b/develop/proc/get_data_2d_c.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    diff --git a/develop/proc/get_data_2d_d.html b/develop/proc/get_data_2d_d.html index abdd5641e6c..d39d5e6c7cf 100644 --- a/develop/proc/get_data_2d_d.html +++ b/develop/proc/get_data_2d_d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    diff --git a/develop/proc/get_data_2d_s.html b/develop/proc/get_data_2d_s.html index d48288dcb43..3d1f93a8c42 100644 --- a/develop/proc/get_data_2d_s.html +++ b/develop/proc/get_data_2d_s.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    diff --git a/develop/proc/get_data_2d_z.html b/develop/proc/get_data_2d_z.html index 67902827021..9c42cb09431 100644 --- a/develop/proc/get_data_2d_z.html +++ b/develop/proc/get_data_2d_z.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    diff --git a/develop/proc/get_data_c.html b/develop/proc/get_data_c.html index b9a95ae116a..b138b86a2d5 100644 --- a/develop/proc/get_data_c.html +++ b/develop/proc/get_data_c.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    diff --git a/develop/proc/get_data_d.html b/develop/proc/get_data_d.html index b596a09baf1..9e155668d4e 100644 --- a/develop/proc/get_data_d.html +++ b/develop/proc/get_data_d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    diff --git a/develop/proc/get_data_s.html b/develop/proc/get_data_s.html index 6745a815de9..3cc4c0d7c2e 100644 --- a/develop/proc/get_data_s.html +++ b/develop/proc/get_data_s.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    diff --git a/develop/proc/get_data_z.html b/develop/proc/get_data_z.html index 217512dd92f..3055ff620c0 100644 --- a/develop/proc/get_data_z.html +++ b/develop/proc/get_data_z.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    diff --git a/develop/proc/get_ith_array.html b/develop/proc/get_ith_array.html index f0a7254336e..f0b2e9bb250 100644 --- a/develop/proc/get_ith_array.html +++ b/develop/proc/get_ith_array.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    diff --git a/develop/proc/get_left_child.html b/develop/proc/get_left_child.html index 879a1a1e25f..3ae7105075b 100644 --- a/develop/proc/get_left_child.html +++ b/develop/proc/get_left_child.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/get_mp_perf_env.html b/develop/proc/get_mp_perf_env.html index ccac6cd20de..640678ede57 100644 --- a/develop/proc/get_mp_perf_env.html +++ b/develop/proc/get_mp_perf_env.html @@ -150,7 +150,7 @@

    Arguments


    Return Value - + type(mp_perf_env_type), POINTER

    diff --git a/develop/proc/get_nd_indices_pgrid.html b/develop/proc/get_nd_indices_pgrid.html index f8818f2a816..56fdc59a711 100644 --- a/develop/proc/get_nd_indices_pgrid.html +++ b/develop/proc/get_nd_indices_pgrid.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/proc/get_nd_indices_tensor.html b/develop/proc/get_nd_indices_tensor.html index 99674edfb0f..d09e6997f2e 100644 --- a/develop/proc/get_nd_indices_tensor.html +++ b/develop/proc/get_nd_indices_tensor.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/proc/get_opt_nsplit.html b/develop/proc/get_opt_nsplit.html index 47f710a4f08..b4265e66c36 100644 --- a/develop/proc/get_opt_nsplit.html +++ b/develop/proc/get_opt_nsplit.html @@ -154,7 +154,7 @@

    Arguments

    @@ -170,7 +170,7 @@

    Arguments

    diff --git a/develop/proc/get_parent.html b/develop/proc/get_parent.html index f024e189a33..45c4e80ff82 100644 --- a/develop/proc/get_parent.html +++ b/develop/proc/get_parent.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/get_rank3d.html b/develop/proc/get_rank3d.html index 1cf813e2a03..3996d2609ff 100644 --- a/develop/proc/get_rank3d.html +++ b/develop/proc/get_rank3d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/get_stored_canonical.html b/develop/proc/get_stored_canonical.html index 5be823f4a20..1a397b77cc1 100644 --- a/develop/proc/get_stored_canonical.html +++ b/develop/proc/get_stored_canonical.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    diff --git a/develop/proc/get_timer_env.html b/develop/proc/get_timer_env.html index 1799e7c095b..d90e347a2b1 100644 --- a/develop/proc/get_timer_env.html +++ b/develop/proc/get_timer_env.html @@ -151,7 +151,7 @@

    Arguments


    Return Value - + type(timer_env_type), POINTER

    diff --git a/develop/proc/get_unit_number.html b/develop/proc/get_unit_number.html index 1a778f2ebef..98ccaf8c010 100644 --- a/develop/proc/get_unit_number.html +++ b/develop/proc/get_unit_number.html @@ -163,7 +163,7 @@

    Arguments

    diff --git a/develop/proc/get_value.html b/develop/proc/get_value.html index e23da0649d8..89f7de07235 100644 --- a/develop/proc/get_value.html +++ b/develop/proc/get_value.html @@ -173,7 +173,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    Return Value - + integer(kind=valt)

    diff --git a/develop/proc/group_to_mrowcol.html b/develop/proc/group_to_mrowcol.html index 1659279695f..f56d021dc0f 100644 --- a/develop/proc/group_to_mrowcol.html +++ b/develop/proc/group_to_mrowcol.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/proc/group_to_world_proc_map.html b/develop/proc/group_to_world_proc_map.html index 65b5244924e..2ff96036a8f 100644 --- a/develop/proc/group_to_world_proc_map.html +++ b/develop/proc/group_to_world_proc_map.html @@ -153,7 +153,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    diff --git a/develop/proc/has_mp_perf_env.html b/develop/proc/has_mp_perf_env.html index 68fd385b2c8..3c5f2dc3a92 100644 --- a/develop/proc/has_mp_perf_env.html +++ b/develop/proc/has_mp_perf_env.html @@ -150,7 +150,7 @@

    Arguments


    Return Value - + logical

    diff --git a/develop/proc/hash_i4tuple.html b/develop/proc/hash_i4tuple.html index e49ef23af30..83c7dfe72b5 100644 --- a/develop/proc/hash_i4tuple.html +++ b/develop/proc/hash_i4tuple.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/hash_str.html b/develop/proc/hash_str.html index 91480ab5d5f..7cf8e627b89 100644 --- a/develop/proc/hash_str.html +++ b/develop/proc/hash_str.html @@ -164,7 +164,7 @@

    Arguments

    diff --git a/develop/proc/hash_table_add.html b/develop/proc/hash_table_add.html index b1dbecd9e24..cfaac717572 100644 --- a/develop/proc/hash_table_add.html +++ b/develop/proc/hash_table_add.html @@ -168,7 +168,7 @@

    Arguments

    @@ -184,7 +184,7 @@

    Arguments

    diff --git a/develop/proc/hash_table_get.html b/develop/proc/hash_table_get.html index ebec8fda5ef..fe20ac62563 100644 --- a/develop/proc/hash_table_get.html +++ b/develop/proc/hash_table_get.html @@ -167,7 +167,7 @@

    Arguments

    @@ -185,7 +185,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/host2dev_c4_1d.html b/develop/proc/host2dev_c4_1d.html index 5729c9d7e29..9fb323bedb3 100644 --- a/develop/proc/host2dev_c4_1d.html +++ b/develop/proc/host2dev_c4_1d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/host2dev_c4_2d.html b/develop/proc/host2dev_c4_2d.html index d97311a8fa5..b319b745750 100644 --- a/develop/proc/host2dev_c4_2d.html +++ b/develop/proc/host2dev_c4_2d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/host2dev_c8_1d.html b/develop/proc/host2dev_c8_1d.html index 16df447c381..e59dd8ed532 100644 --- a/develop/proc/host2dev_c8_1d.html +++ b/develop/proc/host2dev_c8_1d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/host2dev_c8_2d.html b/develop/proc/host2dev_c8_2d.html index 14f6d2a88e4..9345a6e97eb 100644 --- a/develop/proc/host2dev_c8_2d.html +++ b/develop/proc/host2dev_c8_2d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/host2dev_i4_1d.html b/develop/proc/host2dev_i4_1d.html index a4b38c435f5..1f51c726a6c 100644 --- a/develop/proc/host2dev_i4_1d.html +++ b/develop/proc/host2dev_i4_1d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/host2dev_i4_2d.html b/develop/proc/host2dev_i4_2d.html index cc52fe08ab1..62a0e2f50bc 100644 --- a/develop/proc/host2dev_i4_2d.html +++ b/develop/proc/host2dev_i4_2d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/host2dev_i8_1d.html b/develop/proc/host2dev_i8_1d.html index c0f39de6e3c..691cfb97967 100644 --- a/develop/proc/host2dev_i8_1d.html +++ b/develop/proc/host2dev_i8_1d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/host2dev_i8_2d.html b/develop/proc/host2dev_i8_2d.html index b609f4df1f2..cf561444a22 100644 --- a/develop/proc/host2dev_i8_2d.html +++ b/develop/proc/host2dev_i8_2d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/host2dev_r4_1d.html b/develop/proc/host2dev_r4_1d.html index 4e35d46e896..a1aa9896ce4 100644 --- a/develop/proc/host2dev_r4_1d.html +++ b/develop/proc/host2dev_r4_1d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/host2dev_r4_2d.html b/develop/proc/host2dev_r4_2d.html index 703893d4d5a..71affa60c12 100644 --- a/develop/proc/host2dev_r4_2d.html +++ b/develop/proc/host2dev_r4_2d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/host2dev_r8_1d.html b/develop/proc/host2dev_r8_1d.html index 2d1a335732b..fdc559e013e 100644 --- a/develop/proc/host2dev_r8_1d.html +++ b/develop/proc/host2dev_r8_1d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/host2dev_r8_2d.html b/develop/proc/host2dev_r8_2d.html index 942932539a2..a17f02bb139 100644 --- a/develop/proc/host2dev_r8_2d.html +++ b/develop/proc/host2dev_r8_2d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/hybrid_alltoall_any.html b/develop/proc/hybrid_alltoall_any.html index 59b6d3f11b9..8cc60255a4b 100644 --- a/develop/proc/hybrid_alltoall_any.html +++ b/develop/proc/hybrid_alltoall_any.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    diff --git a/develop/proc/hybrid_alltoall_c1.html b/develop/proc/hybrid_alltoall_c1.html index b4ee8e8ef0e..0168b011775 100644 --- a/develop/proc/hybrid_alltoall_c1.html +++ b/develop/proc/hybrid_alltoall_c1.html @@ -165,7 +165,7 @@

    Arguments

    @@ -180,7 +180,7 @@

    Arguments

    @@ -195,7 +195,7 @@

    Arguments

    @@ -210,7 +210,7 @@

    Arguments

    @@ -225,7 +225,7 @@

    Arguments

    @@ -240,7 +240,7 @@

    Arguments

    diff --git a/develop/proc/hybrid_alltoall_d1.html b/develop/proc/hybrid_alltoall_d1.html index 14a029740f1..606511af4f5 100644 --- a/develop/proc/hybrid_alltoall_d1.html +++ b/develop/proc/hybrid_alltoall_d1.html @@ -165,7 +165,7 @@

    Arguments

    @@ -180,7 +180,7 @@

    Arguments

    @@ -195,7 +195,7 @@

    Arguments

    @@ -210,7 +210,7 @@

    Arguments

    @@ -225,7 +225,7 @@

    Arguments

    @@ -240,7 +240,7 @@

    Arguments

    diff --git a/develop/proc/hybrid_alltoall_i1.html b/develop/proc/hybrid_alltoall_i1.html index ecba6395134..25479d10aac 100644 --- a/develop/proc/hybrid_alltoall_i1.html +++ b/develop/proc/hybrid_alltoall_i1.html @@ -165,7 +165,7 @@

    Arguments

    @@ -180,7 +180,7 @@

    Arguments

    @@ -195,7 +195,7 @@

    Arguments

    @@ -210,7 +210,7 @@

    Arguments

    @@ -225,7 +225,7 @@

    Arguments

    @@ -240,7 +240,7 @@

    Arguments

    diff --git a/develop/proc/hybrid_alltoall_s1.html b/develop/proc/hybrid_alltoall_s1.html index 20d5b580e63..2cdc6d0c872 100644 --- a/develop/proc/hybrid_alltoall_s1.html +++ b/develop/proc/hybrid_alltoall_s1.html @@ -165,7 +165,7 @@

    Arguments

    @@ -180,7 +180,7 @@

    Arguments

    @@ -195,7 +195,7 @@

    Arguments

    @@ -210,7 +210,7 @@

    Arguments

    @@ -225,7 +225,7 @@

    Arguments

    @@ -240,7 +240,7 @@

    Arguments

    diff --git a/develop/proc/hybrid_alltoall_z1.html b/develop/proc/hybrid_alltoall_z1.html index 6085596467f..f71380d9b19 100644 --- a/develop/proc/hybrid_alltoall_z1.html +++ b/develop/proc/hybrid_alltoall_z1.html @@ -165,7 +165,7 @@

    Arguments

    @@ -180,7 +180,7 @@

    Arguments

    @@ -195,7 +195,7 @@

    Arguments

    @@ -210,7 +210,7 @@

    Arguments

    @@ -225,7 +225,7 @@

    Arguments

    @@ -240,7 +240,7 @@

    Arguments

    diff --git a/develop/proc/i8_bsearch.html b/develop/proc/i8_bsearch.html index d352e2ab018..fcc1fced436 100644 --- a/develop/proc/i8_bsearch.html +++ b/develop/proc/i8_bsearch.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -216,7 +216,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/image_calculator.html b/develop/proc/image_calculator.html index c62f6052dd9..9e7af98af78 100644 --- a/develop/proc/image_calculator.html +++ b/develop/proc/image_calculator.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    @@ -224,7 +224,7 @@

    Arguments

    @@ -269,7 +269,7 @@

    Arguments

    @@ -284,7 +284,7 @@

    Arguments

    diff --git a/develop/proc/integer_to_string.html b/develop/proc/integer_to_string.html index c33af55139f..6528a863eda 100644 --- a/develop/proc/integer_to_string.html +++ b/develop/proc/integer_to_string.html @@ -180,7 +180,7 @@

    Arguments

    Return Value - + character(len=:), ALLOCATABLE

    diff --git a/develop/proc/internal_data_allocate.html b/develop/proc/internal_data_allocate.html index 2f6edc95f39..88e7d96ee4a 100644 --- a/develop/proc/internal_data_allocate.html +++ b/develop/proc/internal_data_allocate.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/internal_data_deallocate.html b/develop/proc/internal_data_deallocate.html index fcd5f7a249b..3696c9fb20e 100644 --- a/develop/proc/internal_data_deallocate.html +++ b/develop/proc/internal_data_deallocate.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/internal_mm_c_nn.html b/develop/proc/internal_mm_c_nn.html index f9c0a9b69e6..a6e3b53e1a5 100644 --- a/develop/proc/internal_mm_c_nn.html +++ b/develop/proc/internal_mm_c_nn.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/internal_mm_d_nn.html b/develop/proc/internal_mm_d_nn.html index ef1a8daa7e9..9f77a25723b 100644 --- a/develop/proc/internal_mm_d_nn.html +++ b/develop/proc/internal_mm_d_nn.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/internal_mm_s_nn.html b/develop/proc/internal_mm_s_nn.html index a8b7945d582..b57c8a828fa 100644 --- a/develop/proc/internal_mm_s_nn.html +++ b/develop/proc/internal_mm_s_nn.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/internal_mm_z_nn.html b/develop/proc/internal_mm_z_nn.html index a1104ebce4c..046af72cfe3 100644 --- a/develop/proc/internal_mm_z_nn.html +++ b/develop/proc/internal_mm_z_nn.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/internal_process_mm_stack_c.html b/develop/proc/internal_process_mm_stack_c.html index 29f94f1d04a..609f3e89498 100644 --- a/develop/proc/internal_process_mm_stack_c.html +++ b/develop/proc/internal_process_mm_stack_c.html @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    diff --git a/develop/proc/internal_process_mm_stack_d.html b/develop/proc/internal_process_mm_stack_d.html index 81f7a8c49c5..df9aca15a8c 100644 --- a/develop/proc/internal_process_mm_stack_d.html +++ b/develop/proc/internal_process_mm_stack_d.html @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    diff --git a/develop/proc/internal_process_mm_stack_s.html b/develop/proc/internal_process_mm_stack_s.html index 43c93ae77fa..b17d4d23ddd 100644 --- a/develop/proc/internal_process_mm_stack_s.html +++ b/develop/proc/internal_process_mm_stack_s.html @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    diff --git a/develop/proc/internal_process_mm_stack_z.html b/develop/proc/internal_process_mm_stack_z.html index 499f45e8474..b5aa21c3b2c 100644 --- a/develop/proc/internal_process_mm_stack_z.html +++ b/develop/proc/internal_process_mm_stack_z.html @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    diff --git a/develop/proc/iswap.html b/develop/proc/iswap.html index c295e5f9554..3492120b459 100644 --- a/develop/proc/iswap.html +++ b/develop/proc/iswap.html @@ -159,7 +159,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    diff --git a/develop/proc/iterator_advance.html b/develop/proc/iterator_advance.html index 16e4c9cd243..dd27235e5d5 100644 --- a/develop/proc/iterator_advance.html +++ b/develop/proc/iterator_advance.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/iterator_next_1d_block_c.html b/develop/proc/iterator_next_1d_block_c.html index 5ce097021e1..e1b2569a560 100644 --- a/develop/proc/iterator_next_1d_block_c.html +++ b/develop/proc/iterator_next_1d_block_c.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    @@ -251,7 +251,7 @@

    Arguments

    @@ -267,7 +267,7 @@

    Arguments

    @@ -283,7 +283,7 @@

    Arguments

    @@ -299,7 +299,7 @@

    Arguments

    diff --git a/develop/proc/iterator_next_1d_block_d.html b/develop/proc/iterator_next_1d_block_d.html index 359b349ddba..2d3268b7cbc 100644 --- a/develop/proc/iterator_next_1d_block_d.html +++ b/develop/proc/iterator_next_1d_block_d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    @@ -251,7 +251,7 @@

    Arguments

    @@ -267,7 +267,7 @@

    Arguments

    @@ -283,7 +283,7 @@

    Arguments

    @@ -299,7 +299,7 @@

    Arguments

    diff --git a/develop/proc/iterator_next_1d_block_s.html b/develop/proc/iterator_next_1d_block_s.html index 8dc35171895..839faeca122 100644 --- a/develop/proc/iterator_next_1d_block_s.html +++ b/develop/proc/iterator_next_1d_block_s.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    @@ -251,7 +251,7 @@

    Arguments

    @@ -267,7 +267,7 @@

    Arguments

    @@ -283,7 +283,7 @@

    Arguments

    @@ -299,7 +299,7 @@

    Arguments

    diff --git a/develop/proc/iterator_next_1d_block_z.html b/develop/proc/iterator_next_1d_block_z.html index 6a3d08b7a8b..3b0876ffdc9 100644 --- a/develop/proc/iterator_next_1d_block_z.html +++ b/develop/proc/iterator_next_1d_block_z.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    @@ -251,7 +251,7 @@

    Arguments

    @@ -267,7 +267,7 @@

    Arguments

    @@ -283,7 +283,7 @@

    Arguments

    @@ -299,7 +299,7 @@

    Arguments

    diff --git a/develop/proc/iterator_next_2d_block_c.html b/develop/proc/iterator_next_2d_block_c.html index b4ac20fa7f6..b2dac75e7c7 100644 --- a/develop/proc/iterator_next_2d_block_c.html +++ b/develop/proc/iterator_next_2d_block_c.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    @@ -251,7 +251,7 @@

    Arguments

    @@ -267,7 +267,7 @@

    Arguments

    @@ -283,7 +283,7 @@

    Arguments

    @@ -299,7 +299,7 @@

    Arguments

    diff --git a/develop/proc/iterator_next_2d_block_d.html b/develop/proc/iterator_next_2d_block_d.html index ad5d072c853..892858ed160 100644 --- a/develop/proc/iterator_next_2d_block_d.html +++ b/develop/proc/iterator_next_2d_block_d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    @@ -251,7 +251,7 @@

    Arguments

    @@ -267,7 +267,7 @@

    Arguments

    @@ -283,7 +283,7 @@

    Arguments

    @@ -299,7 +299,7 @@

    Arguments

    diff --git a/develop/proc/iterator_next_2d_block_s.html b/develop/proc/iterator_next_2d_block_s.html index a74be365cb4..ab573b36b50 100644 --- a/develop/proc/iterator_next_2d_block_s.html +++ b/develop/proc/iterator_next_2d_block_s.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    @@ -251,7 +251,7 @@

    Arguments

    @@ -267,7 +267,7 @@

    Arguments

    @@ -283,7 +283,7 @@

    Arguments

    @@ -299,7 +299,7 @@

    Arguments

    diff --git a/develop/proc/iterator_next_2d_block_z.html b/develop/proc/iterator_next_2d_block_z.html index d42b4890705..1f86172afc7 100644 --- a/develop/proc/iterator_next_2d_block_z.html +++ b/develop/proc/iterator_next_2d_block_z.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    @@ -251,7 +251,7 @@

    Arguments

    @@ -267,7 +267,7 @@

    Arguments

    @@ -283,7 +283,7 @@

    Arguments

    @@ -299,7 +299,7 @@

    Arguments

    diff --git a/develop/proc/iterator_next_area_block.html b/develop/proc/iterator_next_area_block.html index ac86c798e1f..4fccd108f1d 100644 --- a/develop/proc/iterator_next_area_block.html +++ b/develop/proc/iterator_next_area_block.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    @@ -255,7 +255,7 @@

    Arguments

    @@ -274,7 +274,7 @@

    Arguments

    @@ -293,7 +293,7 @@

    Arguments

    @@ -312,7 +312,7 @@

    Arguments

    diff --git a/develop/proc/iterator_next_block_index.html b/develop/proc/iterator_next_block_index.html index 41fe736d5e3..b6d03bb85f0 100644 --- a/develop/proc/iterator_next_block_index.html +++ b/develop/proc/iterator_next_block_index.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    @@ -225,7 +225,7 @@

    Arguments

    @@ -240,7 +240,7 @@

    Arguments

    @@ -259,7 +259,7 @@

    Arguments

    @@ -278,7 +278,7 @@

    Arguments

    @@ -297,7 +297,7 @@

    Arguments

    @@ -316,7 +316,7 @@

    Arguments

    diff --git a/develop/proc/joaat_hash.html b/develop/proc/joaat_hash.html index 62ae30f898e..b72d90b3fb4 100644 --- a/develop/proc/joaat_hash.html +++ b/develop/proc/joaat_hash.html @@ -167,7 +167,7 @@

    Arguments

    diff --git a/develop/proc/lcm.html b/develop/proc/lcm.html index c039fa98640..c9f1c82e216 100644 --- a/develop/proc/lcm.html +++ b/develop/proc/lcm.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/list_callstackentry_clear.html b/develop/proc/list_callstackentry_clear.html index 3cae0582f09..38d5e0989f6 100644 --- a/develop/proc/list_callstackentry_clear.html +++ b/develop/proc/list_callstackentry_clear.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/list_callstackentry_del.html b/develop/proc/list_callstackentry_del.html index 075462e4762..088c0cfe572 100644 --- a/develop/proc/list_callstackentry_del.html +++ b/develop/proc/list_callstackentry_del.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/list_callstackentry_destroy.html b/develop/proc/list_callstackentry_destroy.html index ba6f8773a4f..c0fa516725e 100644 --- a/develop/proc/list_callstackentry_destroy.html +++ b/develop/proc/list_callstackentry_destroy.html @@ -161,7 +161,7 @@

    Arguments

    diff --git a/develop/proc/list_callstackentry_get.html b/develop/proc/list_callstackentry_get.html index 8941d64037a..5139a827822 100644 --- a/develop/proc/list_callstackentry_get.html +++ b/develop/proc/list_callstackentry_get.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    Return Value - + type(callstack_entry_type)

    diff --git a/develop/proc/list_callstackentry_init.html b/develop/proc/list_callstackentry_init.html index 21ac762ac89..ee8f3478b6c 100644 --- a/develop/proc/list_callstackentry_init.html +++ b/develop/proc/list_callstackentry_init.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    diff --git a/develop/proc/list_callstackentry_insert.html b/develop/proc/list_callstackentry_insert.html index 7f677bca458..20d681e72f8 100644 --- a/develop/proc/list_callstackentry_insert.html +++ b/develop/proc/list_callstackentry_insert.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    diff --git a/develop/proc/list_callstackentry_isready.html b/develop/proc/list_callstackentry_isready.html index b25cf863ec0..af9b0f822ae 100644 --- a/develop/proc/list_callstackentry_isready.html +++ b/develop/proc/list_callstackentry_isready.html @@ -159,7 +159,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    Return Value - + logical

    diff --git a/develop/proc/list_callstackentry_peek.html b/develop/proc/list_callstackentry_peek.html index c18f35f0251..4fce38f4c4a 100644 --- a/develop/proc/list_callstackentry_peek.html +++ b/develop/proc/list_callstackentry_peek.html @@ -160,7 +160,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    Return Value - + type(callstack_entry_type)

    diff --git a/develop/proc/list_callstackentry_pop.html b/develop/proc/list_callstackentry_pop.html index 34a494acaaf..270ecda824e 100644 --- a/develop/proc/list_callstackentry_pop.html +++ b/develop/proc/list_callstackentry_pop.html @@ -162,7 +162,7 @@

    Arguments

    @@ -180,7 +180,7 @@

    Arguments

    Return Value - + type(callstack_entry_type)

    diff --git a/develop/proc/list_callstackentry_push.html b/develop/proc/list_callstackentry_push.html index d01e82330b6..2916fa379f1 100644 --- a/develop/proc/list_callstackentry_push.html +++ b/develop/proc/list_callstackentry_push.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/list_callstackentry_set.html b/develop/proc/list_callstackentry_set.html index 80290ae32c6..156a831b40e 100644 --- a/develop/proc/list_callstackentry_set.html +++ b/develop/proc/list_callstackentry_set.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    diff --git a/develop/proc/list_callstackentry_size.html b/develop/proc/list_callstackentry_size.html index 049b088fbae..c1381d6ecc0 100644 --- a/develop/proc/list_callstackentry_size.html +++ b/develop/proc/list_callstackentry_size.html @@ -159,7 +159,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/list_routinereport_clear.html b/develop/proc/list_routinereport_clear.html index 2585ca7be9e..380f693d655 100644 --- a/develop/proc/list_routinereport_clear.html +++ b/develop/proc/list_routinereport_clear.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/list_routinereport_del.html b/develop/proc/list_routinereport_del.html index 3d45a48e5a7..eb6e19bc0b8 100644 --- a/develop/proc/list_routinereport_del.html +++ b/develop/proc/list_routinereport_del.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/list_routinereport_destroy.html b/develop/proc/list_routinereport_destroy.html index c17a181c78c..00a13b5afda 100644 --- a/develop/proc/list_routinereport_destroy.html +++ b/develop/proc/list_routinereport_destroy.html @@ -161,7 +161,7 @@

    Arguments

    diff --git a/develop/proc/list_routinereport_get.html b/develop/proc/list_routinereport_get.html index 7472209b7e1..bc07b7976cf 100644 --- a/develop/proc/list_routinereport_get.html +++ b/develop/proc/list_routinereport_get.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/list_routinereport_init.html b/develop/proc/list_routinereport_init.html index 21c648f28d8..e12313d868f 100644 --- a/develop/proc/list_routinereport_init.html +++ b/develop/proc/list_routinereport_init.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    diff --git a/develop/proc/list_routinereport_insert.html b/develop/proc/list_routinereport_insert.html index b23ee9b04fa..8dac73dacaf 100644 --- a/develop/proc/list_routinereport_insert.html +++ b/develop/proc/list_routinereport_insert.html @@ -160,7 +160,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    diff --git a/develop/proc/list_routinereport_isready.html b/develop/proc/list_routinereport_isready.html index c214ab5375f..c30e988b4d5 100644 --- a/develop/proc/list_routinereport_isready.html +++ b/develop/proc/list_routinereport_isready.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/list_routinereport_peek.html b/develop/proc/list_routinereport_peek.html index feacb5b691d..8ba8e8f9de4 100644 --- a/develop/proc/list_routinereport_peek.html +++ b/develop/proc/list_routinereport_peek.html @@ -160,7 +160,7 @@

    Arguments

    diff --git a/develop/proc/list_routinereport_pop.html b/develop/proc/list_routinereport_pop.html index 7396438074d..3002237110f 100644 --- a/develop/proc/list_routinereport_pop.html +++ b/develop/proc/list_routinereport_pop.html @@ -162,7 +162,7 @@

    Arguments

    diff --git a/develop/proc/list_routinereport_push.html b/develop/proc/list_routinereport_push.html index 509805dec12..ff8fb8081a9 100644 --- a/develop/proc/list_routinereport_push.html +++ b/develop/proc/list_routinereport_push.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/list_routinereport_set.html b/develop/proc/list_routinereport_set.html index 9b1baa57694..48d8f44d5d2 100644 --- a/develop/proc/list_routinereport_set.html +++ b/develop/proc/list_routinereport_set.html @@ -161,7 +161,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    diff --git a/develop/proc/list_routinereport_size.html b/develop/proc/list_routinereport_size.html index e3bc5f060df..1dabc650b78 100644 --- a/develop/proc/list_routinereport_size.html +++ b/develop/proc/list_routinereport_size.html @@ -159,7 +159,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/list_routinestat_clear.html b/develop/proc/list_routinestat_clear.html index 347f9b3f0d0..62c6edbfa75 100644 --- a/develop/proc/list_routinestat_clear.html +++ b/develop/proc/list_routinestat_clear.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/list_routinestat_del.html b/develop/proc/list_routinestat_del.html index 6b3905734c6..9cf0e242910 100644 --- a/develop/proc/list_routinestat_del.html +++ b/develop/proc/list_routinestat_del.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/list_routinestat_destroy.html b/develop/proc/list_routinestat_destroy.html index f0d0e5794aa..b3bce6c42ef 100644 --- a/develop/proc/list_routinestat_destroy.html +++ b/develop/proc/list_routinestat_destroy.html @@ -161,7 +161,7 @@

    Arguments

    diff --git a/develop/proc/list_routinestat_get.html b/develop/proc/list_routinestat_get.html index 826dee01a03..6cd0be38ee0 100644 --- a/develop/proc/list_routinestat_get.html +++ b/develop/proc/list_routinestat_get.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    Return Value - + type(routine_stat_type), POINTER

    diff --git a/develop/proc/list_routinestat_init.html b/develop/proc/list_routinestat_init.html index 7058700717a..a107f2e477f 100644 --- a/develop/proc/list_routinestat_init.html +++ b/develop/proc/list_routinestat_init.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    diff --git a/develop/proc/list_routinestat_insert.html b/develop/proc/list_routinestat_insert.html index b4a688eb98c..4833286d4e1 100644 --- a/develop/proc/list_routinestat_insert.html +++ b/develop/proc/list_routinestat_insert.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    diff --git a/develop/proc/list_routinestat_isready.html b/develop/proc/list_routinestat_isready.html index 6db31cbd77c..c05a490c1ca 100644 --- a/develop/proc/list_routinestat_isready.html +++ b/develop/proc/list_routinestat_isready.html @@ -159,7 +159,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    Return Value - + logical

    diff --git a/develop/proc/list_routinestat_peek.html b/develop/proc/list_routinestat_peek.html index cdeab0c6f19..c48da39e379 100644 --- a/develop/proc/list_routinestat_peek.html +++ b/develop/proc/list_routinestat_peek.html @@ -160,7 +160,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    Return Value - + type(routine_stat_type), POINTER

    diff --git a/develop/proc/list_routinestat_pop.html b/develop/proc/list_routinestat_pop.html index d5021ae2c10..1aab3418582 100644 --- a/develop/proc/list_routinestat_pop.html +++ b/develop/proc/list_routinestat_pop.html @@ -162,7 +162,7 @@

    Arguments

    @@ -180,7 +180,7 @@

    Arguments

    Return Value - + type(routine_stat_type), POINTER

    diff --git a/develop/proc/list_routinestat_push.html b/develop/proc/list_routinestat_push.html index c53364a156a..a59dd3fbaa2 100644 --- a/develop/proc/list_routinestat_push.html +++ b/develop/proc/list_routinestat_push.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/list_routinestat_set.html b/develop/proc/list_routinestat_set.html index 9dce8d0e4dd..22f91b5ed1e 100644 --- a/develop/proc/list_routinestat_set.html +++ b/develop/proc/list_routinestat_set.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    diff --git a/develop/proc/list_routinestat_size.html b/develop/proc/list_routinestat_size.html index 89a5f34cd57..6606919bda4 100644 --- a/develop/proc/list_routinestat_size.html +++ b/develop/proc/list_routinestat_size.html @@ -159,7 +159,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/list_timerenv_clear.html b/develop/proc/list_timerenv_clear.html index 057e85dacdb..d1403c87744 100644 --- a/develop/proc/list_timerenv_clear.html +++ b/develop/proc/list_timerenv_clear.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/list_timerenv_del.html b/develop/proc/list_timerenv_del.html index 6c05f9a5edb..4e8c861ac4d 100644 --- a/develop/proc/list_timerenv_del.html +++ b/develop/proc/list_timerenv_del.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/list_timerenv_destroy.html b/develop/proc/list_timerenv_destroy.html index 69a3bda7d75..0083604aeff 100644 --- a/develop/proc/list_timerenv_destroy.html +++ b/develop/proc/list_timerenv_destroy.html @@ -161,7 +161,7 @@

    Arguments

    diff --git a/develop/proc/list_timerenv_get.html b/develop/proc/list_timerenv_get.html index 7c42fcd6eee..6e388b35b17 100644 --- a/develop/proc/list_timerenv_get.html +++ b/develop/proc/list_timerenv_get.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    Return Value - + type(timer_env_type), POINTER

    diff --git a/develop/proc/list_timerenv_init.html b/develop/proc/list_timerenv_init.html index 4f78d50d4da..f763a86900a 100644 --- a/develop/proc/list_timerenv_init.html +++ b/develop/proc/list_timerenv_init.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    diff --git a/develop/proc/list_timerenv_insert.html b/develop/proc/list_timerenv_insert.html index b8314f35299..523c31feb9a 100644 --- a/develop/proc/list_timerenv_insert.html +++ b/develop/proc/list_timerenv_insert.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    diff --git a/develop/proc/list_timerenv_isready.html b/develop/proc/list_timerenv_isready.html index b6af2c8afef..eb593c27cdb 100644 --- a/develop/proc/list_timerenv_isready.html +++ b/develop/proc/list_timerenv_isready.html @@ -159,7 +159,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    Return Value - + logical

    diff --git a/develop/proc/list_timerenv_peek.html b/develop/proc/list_timerenv_peek.html index 16e1ebaa9d4..e3cad4d7054 100644 --- a/develop/proc/list_timerenv_peek.html +++ b/develop/proc/list_timerenv_peek.html @@ -160,7 +160,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    Return Value - + type(timer_env_type), POINTER

    diff --git a/develop/proc/list_timerenv_pop.html b/develop/proc/list_timerenv_pop.html index 2bedb7fbab4..b5c467e21f6 100644 --- a/develop/proc/list_timerenv_pop.html +++ b/develop/proc/list_timerenv_pop.html @@ -162,7 +162,7 @@

    Arguments

    @@ -180,7 +180,7 @@

    Arguments

    Return Value - + type(timer_env_type), POINTER

    diff --git a/develop/proc/list_timerenv_push.html b/develop/proc/list_timerenv_push.html index 08027c580cc..bcdd0b65bc7 100644 --- a/develop/proc/list_timerenv_push.html +++ b/develop/proc/list_timerenv_push.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/list_timerenv_set.html b/develop/proc/list_timerenv_set.html index 437cd358e91..a50856786a3 100644 --- a/develop/proc/list_timerenv_set.html +++ b/develop/proc/list_timerenv_set.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    diff --git a/develop/proc/list_timerenv_size.html b/develop/proc/list_timerenv_size.html index 40502433c9f..840e29a66cb 100644 --- a/develop/proc/list_timerenv_size.html +++ b/develop/proc/list_timerenv_size.html @@ -159,7 +159,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/local_filter.html b/develop/proc/local_filter.html index 548e331a253..f7c72abcea2 100644 --- a/develop/proc/local_filter.html +++ b/develop/proc/local_filter.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    diff --git a/develop/proc/local_filter_sp.html b/develop/proc/local_filter_sp.html index 29353592730..0beef59b871 100644 --- a/develop/proc/local_filter_sp.html +++ b/develop/proc/local_filter_sp.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    diff --git a/develop/proc/m_getarg.html b/develop/proc/m_getarg.html index efb991e835b..2f950da53ce 100644 --- a/develop/proc/m_getarg.html +++ b/develop/proc/m_getarg.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/m_mov.html b/develop/proc/m_mov.html index e77fe10a210..ea3e5d637a5 100644 --- a/develop/proc/m_mov.html +++ b/develop/proc/m_mov.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/make_buffers.html b/develop/proc/make_buffers.html index b89f8842db7..778ab71d9ca 100644 --- a/develop/proc/make_buffers.html +++ b/develop/proc/make_buffers.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/make_conformant_scalar_c.html b/develop/proc/make_conformant_scalar_c.html index 30c22621fed..9aab20c0fa1 100644 --- a/develop/proc/make_conformant_scalar_c.html +++ b/develop/proc/make_conformant_scalar_c.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    diff --git a/develop/proc/make_conformant_scalar_d.html b/develop/proc/make_conformant_scalar_d.html index 1ce7e048407..bcf6610a7fe 100644 --- a/develop/proc/make_conformant_scalar_d.html +++ b/develop/proc/make_conformant_scalar_d.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    diff --git a/develop/proc/make_conformant_scalar_s.html b/develop/proc/make_conformant_scalar_s.html index 2d0f97413a0..55f1f13ca84 100644 --- a/develop/proc/make_conformant_scalar_s.html +++ b/develop/proc/make_conformant_scalar_s.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    diff --git a/develop/proc/make_conformant_scalar_z.html b/develop/proc/make_conformant_scalar_z.html index fd1089afb21..1883d642213 100644 --- a/develop/proc/make_conformant_scalar_z.html +++ b/develop/proc/make_conformant_scalar_z.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    diff --git a/develop/proc/make_coordinate_tuple.html b/develop/proc/make_coordinate_tuple.html index 7ed1818a785..eaf3dc02c8b 100644 --- a/develop/proc/make_coordinate_tuple.html +++ b/develop/proc/make_coordinate_tuple.html @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/make_dense_data.html b/develop/proc/make_dense_data.html index 6c2687607fe..7a464256340 100644 --- a/develop/proc/make_dense_data.html +++ b/develop/proc/make_dense_data.html @@ -163,7 +163,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    @@ -285,7 +285,7 @@

    Arguments

    @@ -300,7 +300,7 @@

    Arguments

    diff --git a/develop/proc/make_dense_index.html b/develop/proc/make_dense_index.html index 0801dd3008f..4028c847a0d 100644 --- a/develop/proc/make_dense_index.html +++ b/develop/proc/make_dense_index.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -210,7 +210,7 @@

    Arguments

    @@ -225,7 +225,7 @@

    Arguments

    @@ -304,7 +304,7 @@

    Arguments

    diff --git a/develop/proc/make_index_canonical.html b/develop/proc/make_index_canonical.html index dc8f39a4377..bb8d969e594 100644 --- a/develop/proc/make_index_canonical.html +++ b/develop/proc/make_index_canonical.html @@ -242,7 +242,7 @@

    Arguments

    @@ -257,7 +257,7 @@

    Arguments

    diff --git a/develop/proc/make_index_triangular.html b/develop/proc/make_index_triangular.html index d49ed3f96ee..5641354d7cd 100644 --- a/develop/proc/make_index_triangular.html +++ b/develop/proc/make_index_triangular.html @@ -242,7 +242,7 @@

    Arguments

    @@ -257,7 +257,7 @@

    Arguments

    diff --git a/develop/proc/make_layers_3d_ab.html b/develop/proc/make_layers_3d_ab.html index a96e13006b7..cb25606337a 100644 --- a/develop/proc/make_layers_3d_ab.html +++ b/develop/proc/make_layers_3d_ab.html @@ -189,7 +189,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    diff --git a/develop/proc/make_layers_3d_c_reduction.html b/develop/proc/make_layers_3d_c_reduction.html index 7c4b7732457..08608c6ebd6 100644 --- a/develop/proc/make_layers_3d_c_reduction.html +++ b/develop/proc/make_layers_3d_c_reduction.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/make_m2s.html b/develop/proc/make_m2s.html index 62f17000f1b..be0570941be 100644 --- a/develop/proc/make_m2s.html +++ b/develop/proc/make_m2s.html @@ -159,7 +159,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -354,7 +354,7 @@

    Arguments

    @@ -369,7 +369,7 @@

    Arguments

    @@ -384,7 +384,7 @@

    Arguments

    @@ -399,7 +399,7 @@

    Arguments

    @@ -414,7 +414,7 @@

    Arguments

    @@ -429,7 +429,7 @@

    Arguments

    diff --git a/develop/proc/make_meta.html b/develop/proc/make_meta.html index 76ac24f4107..724eb8415b2 100644 --- a/develop/proc/make_meta.html +++ b/develop/proc/make_meta.html @@ -159,7 +159,7 @@

    Arguments

    @@ -264,7 +264,7 @@

    Arguments

    diff --git a/develop/proc/make_random_dbcsr_matrix.html b/develop/proc/make_random_dbcsr_matrix.html index 576772a7704..5d825470445 100644 --- a/develop/proc/make_random_dbcsr_matrix.html +++ b/develop/proc/make_random_dbcsr_matrix.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    @@ -249,7 +249,7 @@

    Arguments

    diff --git a/develop/proc/make_threads.html b/develop/proc/make_threads.html index be0a5e756f0..11d3edcd779 100644 --- a/develop/proc/make_threads.html +++ b/develop/proc/make_threads.html @@ -164,7 +164,7 @@

    Arguments

    diff --git a/develop/proc/make_undense_data.html b/develop/proc/make_undense_data.html index 0f9b4effe51..c128333d687 100644 --- a/develop/proc/make_undense_data.html +++ b/develop/proc/make_undense_data.html @@ -163,7 +163,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    @@ -261,7 +261,7 @@

    Arguments

    @@ -279,7 +279,7 @@

    Arguments

    diff --git a/develop/proc/make_undense_index.html b/develop/proc/make_undense_index.html index bc846439c4e..f833980731b 100644 --- a/develop/proc/make_undense_index.html +++ b/develop/proc/make_undense_index.html @@ -163,7 +163,7 @@

    Arguments

    @@ -180,7 +180,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -214,7 +214,7 @@

    Arguments

    @@ -259,7 +259,7 @@

    Arguments

    diff --git a/develop/proc/make_vdistribution.html b/develop/proc/make_vdistribution.html index 57d051d9902..f45588f64ba 100644 --- a/develop/proc/make_vdistribution.html +++ b/develop/proc/make_vdistribution.html @@ -159,7 +159,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    diff --git a/develop/proc/map_all_local_elements.html b/develop/proc/map_all_local_elements.html index b6a8dfff283..26392aac560 100644 --- a/develop/proc/map_all_local_elements.html +++ b/develop/proc/map_all_local_elements.html @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    diff --git a/develop/proc/map_most_common.html b/develop/proc/map_most_common.html index 69c545ada5c..230da1f157d 100644 --- a/develop/proc/map_most_common.html +++ b/develop/proc/map_most_common.html @@ -162,7 +162,7 @@

    Arguments

    diff --git a/develop/proc/matching_prime.html b/develop/proc/matching_prime.html index 5e781a2080d..deab9518bf3 100644 --- a/develop/proc/matching_prime.html +++ b/develop/proc/matching_prime.html @@ -153,7 +153,7 @@

    Arguments

    @@ -171,7 +171,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/mem_alloc_c.html b/develop/proc/mem_alloc_c.html index cbb74d644cc..8e510aee565 100644 --- a/develop/proc/mem_alloc_c.html +++ b/develop/proc/mem_alloc_c.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/mem_alloc_c_2d.html b/develop/proc/mem_alloc_c_2d.html index ce64919c3a5..1b34f881971 100644 --- a/develop/proc/mem_alloc_c_2d.html +++ b/develop/proc/mem_alloc_c_2d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/mem_alloc_d.html b/develop/proc/mem_alloc_d.html index 93060777207..1019b19f294 100644 --- a/develop/proc/mem_alloc_d.html +++ b/develop/proc/mem_alloc_d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/mem_alloc_d_2d.html b/develop/proc/mem_alloc_d_2d.html index 2cdef182698..5274ab92e65 100644 --- a/develop/proc/mem_alloc_d_2d.html +++ b/develop/proc/mem_alloc_d_2d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/mem_alloc_i.html b/develop/proc/mem_alloc_i.html index 28c38e6d76d..27abfd12c39 100644 --- a/develop/proc/mem_alloc_i.html +++ b/develop/proc/mem_alloc_i.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/mem_alloc_i_2d.html b/develop/proc/mem_alloc_i_2d.html index 08fc87d50ce..a7a626647f4 100644 --- a/develop/proc/mem_alloc_i_2d.html +++ b/develop/proc/mem_alloc_i_2d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/mem_alloc_l.html b/develop/proc/mem_alloc_l.html index a3744b5830b..f0d221cb684 100644 --- a/develop/proc/mem_alloc_l.html +++ b/develop/proc/mem_alloc_l.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/mem_alloc_l_2d.html b/develop/proc/mem_alloc_l_2d.html index 2cc806d2bfb..3be06daa18e 100644 --- a/develop/proc/mem_alloc_l_2d.html +++ b/develop/proc/mem_alloc_l_2d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/mem_alloc_s.html b/develop/proc/mem_alloc_s.html index 7853dfe56fd..4c7f33d19ee 100644 --- a/develop/proc/mem_alloc_s.html +++ b/develop/proc/mem_alloc_s.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/mem_alloc_s_2d.html b/develop/proc/mem_alloc_s_2d.html index 561f9617f48..a06a65bf84c 100644 --- a/develop/proc/mem_alloc_s_2d.html +++ b/develop/proc/mem_alloc_s_2d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/mem_alloc_z.html b/develop/proc/mem_alloc_z.html index 3a9e97f7022..44f687c564d 100644 --- a/develop/proc/mem_alloc_z.html +++ b/develop/proc/mem_alloc_z.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/mem_alloc_z_2d.html b/develop/proc/mem_alloc_z_2d.html index cf7ee60f2f8..064c17414d9 100644 --- a/develop/proc/mem_alloc_z_2d.html +++ b/develop/proc/mem_alloc_z_2d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/mem_copy_c.html b/develop/proc/mem_copy_c.html index bf2416cae8c..8f10616509f 100644 --- a/develop/proc/mem_copy_c.html +++ b/develop/proc/mem_copy_c.html @@ -189,7 +189,7 @@

    Arguments

    @@ -226,15 +226,9 @@

    Source Code

    !! length of copy COMPLEX(kind=real_4), DIMENSION(1:n), INTENT(OUT) :: dst !! destination memory - COMPLEX(kind=real_4), DIMENSION(1:n), INTENT(IN) :: src + COMPLEX(kind=real_4), DIMENSION(1:n), INTENT(IN) :: src !! source memory -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(dst,src) -#endif dst(:) = src(:) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif END SUBROUTINE mem_copy_c diff --git a/develop/proc/mem_copy_d.html b/develop/proc/mem_copy_d.html index f8b0c20bdd4..b665a8955ed 100644 --- a/develop/proc/mem_copy_d.html +++ b/develop/proc/mem_copy_d.html @@ -189,7 +189,7 @@

    Arguments

    @@ -226,15 +226,9 @@

    Source Code

    !! length of copy REAL(kind=real_8), DIMENSION(1:n), INTENT(OUT) :: dst !! destination memory - REAL(kind=real_8), DIMENSION(1:n), INTENT(IN) :: src + REAL(kind=real_8), DIMENSION(1:n), INTENT(IN) :: src !! source memory -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(dst,src) -#endif dst(:) = src(:) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif END SUBROUTINE mem_copy_d diff --git a/develop/proc/mem_copy_i.html b/develop/proc/mem_copy_i.html index fdabb7d1ea9..111ee28b79d 100644 --- a/develop/proc/mem_copy_i.html +++ b/develop/proc/mem_copy_i.html @@ -189,7 +189,7 @@

    Arguments

    @@ -226,15 +226,9 @@

    Source Code

    !! length of copy INTEGER(kind=int_4), DIMENSION(1:n), INTENT(OUT) :: dst !! destination memory - INTEGER(kind=int_4), DIMENSION(1:n), INTENT(IN) :: src + INTEGER(kind=int_4), DIMENSION(1:n), INTENT(IN) :: src !! source memory -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(dst,src) -#endif dst(:) = src(:) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif END SUBROUTINE mem_copy_i diff --git a/develop/proc/mem_copy_l.html b/develop/proc/mem_copy_l.html index 42d05accefb..e50f8763213 100644 --- a/develop/proc/mem_copy_l.html +++ b/develop/proc/mem_copy_l.html @@ -189,7 +189,7 @@

    Arguments

    @@ -226,15 +226,9 @@

    Source Code

    !! length of copy INTEGER(kind=int_8), DIMENSION(1:n), INTENT(OUT) :: dst !! destination memory - INTEGER(kind=int_8), DIMENSION(1:n), INTENT(IN) :: src + INTEGER(kind=int_8), DIMENSION(1:n), INTENT(IN) :: src !! source memory -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(dst,src) -#endif dst(:) = src(:) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif END SUBROUTINE mem_copy_l diff --git a/develop/proc/mem_copy_s.html b/develop/proc/mem_copy_s.html index 048445df43b..3fda81953f9 100644 --- a/develop/proc/mem_copy_s.html +++ b/develop/proc/mem_copy_s.html @@ -189,7 +189,7 @@

    Arguments

    @@ -226,15 +226,9 @@

    Source Code

    !! length of copy REAL(kind=real_4), DIMENSION(1:n), INTENT(OUT) :: dst !! destination memory - REAL(kind=real_4), DIMENSION(1:n), INTENT(IN) :: src + REAL(kind=real_4), DIMENSION(1:n), INTENT(IN) :: src !! source memory -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(dst,src) -#endif dst(:) = src(:) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif END SUBROUTINE mem_copy_s diff --git a/develop/proc/mem_copy_z.html b/develop/proc/mem_copy_z.html index a0f97d8c25d..a1f357a8d42 100644 --- a/develop/proc/mem_copy_z.html +++ b/develop/proc/mem_copy_z.html @@ -189,7 +189,7 @@

    Arguments

    @@ -226,15 +226,9 @@

    Source Code

    !! length of copy COMPLEX(kind=real_8), DIMENSION(1:n), INTENT(OUT) :: dst !! destination memory - COMPLEX(kind=real_8), DIMENSION(1:n), INTENT(IN) :: src + COMPLEX(kind=real_8), DIMENSION(1:n), INTENT(IN) :: src !! source memory -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(dst,src) -#endif dst(:) = src(:) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif END SUBROUTINE mem_copy_z diff --git a/develop/proc/mem_dealloc_c.html b/develop/proc/mem_dealloc_c.html index 59a74cb5de1..e59660b6fdb 100644 --- a/develop/proc/mem_dealloc_c.html +++ b/develop/proc/mem_dealloc_c.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/mem_dealloc_c_2d.html b/develop/proc/mem_dealloc_c_2d.html index 7137b7e3abd..3915f63bb07 100644 --- a/develop/proc/mem_dealloc_c_2d.html +++ b/develop/proc/mem_dealloc_c_2d.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/mem_dealloc_d.html b/develop/proc/mem_dealloc_d.html index f37850115bb..e9a7be9372f 100644 --- a/develop/proc/mem_dealloc_d.html +++ b/develop/proc/mem_dealloc_d.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/mem_dealloc_d_2d.html b/develop/proc/mem_dealloc_d_2d.html index 16d246584aa..2eb3b820da7 100644 --- a/develop/proc/mem_dealloc_d_2d.html +++ b/develop/proc/mem_dealloc_d_2d.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/mem_dealloc_i.html b/develop/proc/mem_dealloc_i.html index 233f116c37e..78e11de3688 100644 --- a/develop/proc/mem_dealloc_i.html +++ b/develop/proc/mem_dealloc_i.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/mem_dealloc_i_2d.html b/develop/proc/mem_dealloc_i_2d.html index 8094e74b7d7..ca3c9e5a655 100644 --- a/develop/proc/mem_dealloc_i_2d.html +++ b/develop/proc/mem_dealloc_i_2d.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/mem_dealloc_l.html b/develop/proc/mem_dealloc_l.html index e40e6cb4d02..e3880ecc032 100644 --- a/develop/proc/mem_dealloc_l.html +++ b/develop/proc/mem_dealloc_l.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/mem_dealloc_l_2d.html b/develop/proc/mem_dealloc_l_2d.html index 5976ad0aed3..c8fd9383bc2 100644 --- a/develop/proc/mem_dealloc_l_2d.html +++ b/develop/proc/mem_dealloc_l_2d.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/mem_dealloc_s.html b/develop/proc/mem_dealloc_s.html index d9f015caef6..3cb55ee4256 100644 --- a/develop/proc/mem_dealloc_s.html +++ b/develop/proc/mem_dealloc_s.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/mem_dealloc_s_2d.html b/develop/proc/mem_dealloc_s_2d.html index 2aee43526ca..471d6b8da9d 100644 --- a/develop/proc/mem_dealloc_s_2d.html +++ b/develop/proc/mem_dealloc_s_2d.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/mem_dealloc_z.html b/develop/proc/mem_dealloc_z.html index 701b90a8846..ad5ffcd3ca3 100644 --- a/develop/proc/mem_dealloc_z.html +++ b/develop/proc/mem_dealloc_z.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/mem_dealloc_z_2d.html b/develop/proc/mem_dealloc_z_2d.html index c1cdbdac5c9..6d33d746ec0 100644 --- a/develop/proc/mem_dealloc_z_2d.html +++ b/develop/proc/mem_dealloc_z_2d.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/mem_zero_c.html b/develop/proc/mem_zero_c.html index 6a866f14885..6786e0467c0 100644 --- a/develop/proc/mem_zero_c.html +++ b/develop/proc/mem_zero_c.html @@ -174,7 +174,7 @@

    Arguments

    @@ -211,13 +211,7 @@

    Source Code

    !! length of elements to zero COMPLEX(kind=real_4), DIMENSION(1:n), INTENT(OUT) :: dst !! destination memory -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(dst) -#endif dst(:) = CMPLX(0.0, 0.0, real_4) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif END SUBROUTINE mem_zero_c diff --git a/develop/proc/mem_zero_d.html b/develop/proc/mem_zero_d.html index aeab01331b3..0c7ff67b204 100644 --- a/develop/proc/mem_zero_d.html +++ b/develop/proc/mem_zero_d.html @@ -174,7 +174,7 @@

    Arguments

    @@ -211,13 +211,7 @@

    Source Code

    !! length of elements to zero REAL(kind=real_8), DIMENSION(1:n), INTENT(OUT) :: dst !! destination memory -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(dst) -#endif dst(:) = 0.0_real_8 -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif END SUBROUTINE mem_zero_d diff --git a/develop/proc/mem_zero_i.html b/develop/proc/mem_zero_i.html index b07b196a03a..db0a13d33b7 100644 --- a/develop/proc/mem_zero_i.html +++ b/develop/proc/mem_zero_i.html @@ -174,7 +174,7 @@

    Arguments

    @@ -211,13 +211,7 @@

    Source Code

    !! length of elements to zero INTEGER(kind=int_4), DIMENSION(1:n), INTENT(OUT) :: dst !! destination memory -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(dst) -#endif dst(:) = 0 -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif END SUBROUTINE mem_zero_i diff --git a/develop/proc/mem_zero_l.html b/develop/proc/mem_zero_l.html index d0c6ebf949e..bb1ae750cae 100644 --- a/develop/proc/mem_zero_l.html +++ b/develop/proc/mem_zero_l.html @@ -174,7 +174,7 @@

    Arguments

    @@ -211,13 +211,7 @@

    Source Code

    !! length of elements to zero INTEGER(kind=int_8), DIMENSION(1:n), INTENT(OUT) :: dst !! destination memory -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(dst) -#endif dst(:) = 0 -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif END SUBROUTINE mem_zero_l diff --git a/develop/proc/mem_zero_s.html b/develop/proc/mem_zero_s.html index 2d4ed57ca64..6038481f1a0 100644 --- a/develop/proc/mem_zero_s.html +++ b/develop/proc/mem_zero_s.html @@ -174,7 +174,7 @@

    Arguments

    @@ -211,13 +211,7 @@

    Source Code

    !! length of elements to zero REAL(kind=real_4), DIMENSION(1:n), INTENT(OUT) :: dst !! destination memory -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(dst) -#endif dst(:) = 0.0_real_4 -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif END SUBROUTINE mem_zero_s diff --git a/develop/proc/mem_zero_z.html b/develop/proc/mem_zero_z.html index 1a122a11f01..3d118418516 100644 --- a/develop/proc/mem_zero_z.html +++ b/develop/proc/mem_zero_z.html @@ -174,7 +174,7 @@

    Arguments

    @@ -211,13 +211,7 @@

    Source Code

    !! length of elements to zero COMPLEX(kind=real_8), DIMENSION(1:n), INTENT(OUT) :: dst !! destination memory -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(dst) -#endif dst(:) = CMPLX(0.0, 0.0, real_8) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif END SUBROUTINE mem_zero_z diff --git a/develop/proc/mempool_collect_garbage.html b/develop/proc/mempool_collect_garbage.html index ff2c26077ff..bd2a9f0625a 100644 --- a/develop/proc/mempool_collect_garbage.html +++ b/develop/proc/mempool_collect_garbage.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/merge_index.html b/develop/proc/merge_index.html index 5aa2fece5d7..3109f500685 100644 --- a/develop/proc/merge_index.html +++ b/develop/proc/merge_index.html @@ -249,7 +249,7 @@

    Arguments

    @@ -339,7 +339,7 @@

    Arguments

    diff --git a/develop/proc/merge_index_arrays.html b/develop/proc/merge_index_arrays.html index da6a0157950..8a9fc9d713d 100644 --- a/develop/proc/merge_index_arrays.html +++ b/develop/proc/merge_index_arrays.html @@ -269,7 +269,7 @@

    Arguments

    @@ -286,7 +286,7 @@

    Arguments

    @@ -346,7 +346,7 @@

    Arguments

    diff --git a/develop/proc/meta_from_dist.html b/develop/proc/meta_from_dist.html index 4795a23753b..99bd5c6d7e0 100644 --- a/develop/proc/meta_from_dist.html +++ b/develop/proc/meta_from_dist.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    diff --git a/develop/proc/mostly_non_transposed.html b/develop/proc/mostly_non_transposed.html index 3c7ac41fa22..c1259b20e2e 100644 --- a/develop/proc/mostly_non_transposed.html +++ b/develop/proc/mostly_non_transposed.html @@ -163,7 +163,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgather_c.html b/develop/proc/mp_allgather_c.html index 55168746266..324aa56a267 100644 --- a/develop/proc/mp_allgather_c.html +++ b/develop/proc/mp_allgather_c.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgather_c12.html b/develop/proc/mp_allgather_c12.html index a08b71afda2..ad9301778dd 100644 --- a/develop/proc/mp_allgather_c12.html +++ b/develop/proc/mp_allgather_c12.html @@ -166,7 +166,7 @@

    Arguments

    @@ -181,7 +181,7 @@

    Arguments

    @@ -196,7 +196,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgather_c2.html b/develop/proc/mp_allgather_c2.html index fa19139caa2..fc8435951b7 100644 --- a/develop/proc/mp_allgather_c2.html +++ b/develop/proc/mp_allgather_c2.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgather_c22.html b/develop/proc/mp_allgather_c22.html index 48c488b233c..02df9a2ada9 100644 --- a/develop/proc/mp_allgather_c22.html +++ b/develop/proc/mp_allgather_c22.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgather_c23.html b/develop/proc/mp_allgather_c23.html index 5804e2e6d27..0f0882e1d5f 100644 --- a/develop/proc/mp_allgather_c23.html +++ b/develop/proc/mp_allgather_c23.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgather_c34.html b/develop/proc/mp_allgather_c34.html index bd3e548dc8d..727dbdb5aa3 100644 --- a/develop/proc/mp_allgather_c34.html +++ b/develop/proc/mp_allgather_c34.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgather_d.html b/develop/proc/mp_allgather_d.html index 3b26c871ee0..6eba6af9bf5 100644 --- a/develop/proc/mp_allgather_d.html +++ b/develop/proc/mp_allgather_d.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgather_d12.html b/develop/proc/mp_allgather_d12.html index 92dd08fce0d..bea223c63e7 100644 --- a/develop/proc/mp_allgather_d12.html +++ b/develop/proc/mp_allgather_d12.html @@ -166,7 +166,7 @@

    Arguments

    @@ -181,7 +181,7 @@

    Arguments

    @@ -196,7 +196,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgather_d2.html b/develop/proc/mp_allgather_d2.html index 27a08c35e63..26745f1d2d1 100644 --- a/develop/proc/mp_allgather_d2.html +++ b/develop/proc/mp_allgather_d2.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgather_d22.html b/develop/proc/mp_allgather_d22.html index 3e921c19755..7d02720dc1a 100644 --- a/develop/proc/mp_allgather_d22.html +++ b/develop/proc/mp_allgather_d22.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgather_d23.html b/develop/proc/mp_allgather_d23.html index f3894c48228..089f63efda9 100644 --- a/develop/proc/mp_allgather_d23.html +++ b/develop/proc/mp_allgather_d23.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgather_d34.html b/develop/proc/mp_allgather_d34.html index 61ef028d88e..412fd723351 100644 --- a/develop/proc/mp_allgather_d34.html +++ b/develop/proc/mp_allgather_d34.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgather_i.html b/develop/proc/mp_allgather_i.html index 96eb728046f..e1412ad331d 100644 --- a/develop/proc/mp_allgather_i.html +++ b/develop/proc/mp_allgather_i.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgather_i12.html b/develop/proc/mp_allgather_i12.html index 2d036e1c5cc..f7621527432 100644 --- a/develop/proc/mp_allgather_i12.html +++ b/develop/proc/mp_allgather_i12.html @@ -166,7 +166,7 @@

    Arguments

    @@ -181,7 +181,7 @@

    Arguments

    @@ -196,7 +196,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgather_i2.html b/develop/proc/mp_allgather_i2.html index eb3d3982e13..7992e3aea7f 100644 --- a/develop/proc/mp_allgather_i2.html +++ b/develop/proc/mp_allgather_i2.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgather_i22.html b/develop/proc/mp_allgather_i22.html index 260c0430ad1..2b736b8fe79 100644 --- a/develop/proc/mp_allgather_i22.html +++ b/develop/proc/mp_allgather_i22.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgather_i23.html b/develop/proc/mp_allgather_i23.html index eb2b53bcedb..c203ef15be8 100644 --- a/develop/proc/mp_allgather_i23.html +++ b/develop/proc/mp_allgather_i23.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgather_i34.html b/develop/proc/mp_allgather_i34.html index b2a76ed7944..f12042b10fc 100644 --- a/develop/proc/mp_allgather_i34.html +++ b/develop/proc/mp_allgather_i34.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgather_l.html b/develop/proc/mp_allgather_l.html index db62c8d1002..bae63afb4fa 100644 --- a/develop/proc/mp_allgather_l.html +++ b/develop/proc/mp_allgather_l.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgather_l12.html b/develop/proc/mp_allgather_l12.html index 8740c79f391..2c9d1a3f858 100644 --- a/develop/proc/mp_allgather_l12.html +++ b/develop/proc/mp_allgather_l12.html @@ -166,7 +166,7 @@

    Arguments

    @@ -181,7 +181,7 @@

    Arguments

    @@ -196,7 +196,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgather_l2.html b/develop/proc/mp_allgather_l2.html index 528c60c864a..7220b3a9eb2 100644 --- a/develop/proc/mp_allgather_l2.html +++ b/develop/proc/mp_allgather_l2.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgather_l22.html b/develop/proc/mp_allgather_l22.html index ed401c01904..042b0d1e39b 100644 --- a/develop/proc/mp_allgather_l22.html +++ b/develop/proc/mp_allgather_l22.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgather_l23.html b/develop/proc/mp_allgather_l23.html index 108e2519e23..cccf82d8cb5 100644 --- a/develop/proc/mp_allgather_l23.html +++ b/develop/proc/mp_allgather_l23.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgather_l34.html b/develop/proc/mp_allgather_l34.html index e636e401fc6..5dc170f3b95 100644 --- a/develop/proc/mp_allgather_l34.html +++ b/develop/proc/mp_allgather_l34.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgather_r.html b/develop/proc/mp_allgather_r.html index 5c3b095c812..97e2fb3b48d 100644 --- a/develop/proc/mp_allgather_r.html +++ b/develop/proc/mp_allgather_r.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgather_r12.html b/develop/proc/mp_allgather_r12.html index 90f505e67d5..36730a3b382 100644 --- a/develop/proc/mp_allgather_r12.html +++ b/develop/proc/mp_allgather_r12.html @@ -166,7 +166,7 @@

    Arguments

    @@ -181,7 +181,7 @@

    Arguments

    @@ -196,7 +196,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgather_r2.html b/develop/proc/mp_allgather_r2.html index f4342244204..465eabba479 100644 --- a/develop/proc/mp_allgather_r2.html +++ b/develop/proc/mp_allgather_r2.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgather_r22.html b/develop/proc/mp_allgather_r22.html index cdfc92b6a13..a9b158098d7 100644 --- a/develop/proc/mp_allgather_r22.html +++ b/develop/proc/mp_allgather_r22.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgather_r23.html b/develop/proc/mp_allgather_r23.html index 7e161e1e835..247dd1f39c6 100644 --- a/develop/proc/mp_allgather_r23.html +++ b/develop/proc/mp_allgather_r23.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgather_r34.html b/develop/proc/mp_allgather_r34.html index 2ee02313d7d..1c07fa727c8 100644 --- a/develop/proc/mp_allgather_r34.html +++ b/develop/proc/mp_allgather_r34.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgather_z.html b/develop/proc/mp_allgather_z.html index f0a471e750c..d2bcee372b2 100644 --- a/develop/proc/mp_allgather_z.html +++ b/develop/proc/mp_allgather_z.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgather_z12.html b/develop/proc/mp_allgather_z12.html index d504fd82bc3..93c0ef861c2 100644 --- a/develop/proc/mp_allgather_z12.html +++ b/develop/proc/mp_allgather_z12.html @@ -166,7 +166,7 @@

    Arguments

    @@ -181,7 +181,7 @@

    Arguments

    @@ -196,7 +196,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgather_z2.html b/develop/proc/mp_allgather_z2.html index f6589b8f896..cdade5ecbf3 100644 --- a/develop/proc/mp_allgather_z2.html +++ b/develop/proc/mp_allgather_z2.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgather_z22.html b/develop/proc/mp_allgather_z22.html index a7792da1dbe..d9a4ecd3500 100644 --- a/develop/proc/mp_allgather_z22.html +++ b/develop/proc/mp_allgather_z22.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgather_z23.html b/develop/proc/mp_allgather_z23.html index 02fbc8f2c38..e25ddef60ff 100644 --- a/develop/proc/mp_allgather_z23.html +++ b/develop/proc/mp_allgather_z23.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgather_z34.html b/develop/proc/mp_allgather_z34.html index e4e1f8d009b..2cbf00e6f23 100644 --- a/develop/proc/mp_allgather_z34.html +++ b/develop/proc/mp_allgather_z34.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgatherv_cv.html b/develop/proc/mp_allgatherv_cv.html index 4f9e74155ab..59ac16fee48 100644 --- a/develop/proc/mp_allgatherv_cv.html +++ b/develop/proc/mp_allgatherv_cv.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgatherv_dv.html b/develop/proc/mp_allgatherv_dv.html index cc9a5432aa8..e0d77564f60 100644 --- a/develop/proc/mp_allgatherv_dv.html +++ b/develop/proc/mp_allgatherv_dv.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgatherv_iv.html b/develop/proc/mp_allgatherv_iv.html index fbe0438325e..b1d9c71c54c 100644 --- a/develop/proc/mp_allgatherv_iv.html +++ b/develop/proc/mp_allgatherv_iv.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgatherv_lv.html b/develop/proc/mp_allgatherv_lv.html index 2ace5dd7681..e856483840d 100644 --- a/develop/proc/mp_allgatherv_lv.html +++ b/develop/proc/mp_allgatherv_lv.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgatherv_rv.html b/develop/proc/mp_allgatherv_rv.html index e7e1f1d71d0..5681d5dd18b 100644 --- a/develop/proc/mp_allgatherv_rv.html +++ b/develop/proc/mp_allgatherv_rv.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    diff --git a/develop/proc/mp_allgatherv_zv.html b/develop/proc/mp_allgatherv_zv.html index 1d5df1fc797..641ceefc908 100644 --- a/develop/proc/mp_allgatherv_zv.html +++ b/develop/proc/mp_allgatherv_zv.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    diff --git a/develop/proc/mp_allocate_c.html b/develop/proc/mp_allocate_c.html index be510a0ee17..59a57a637a1 100644 --- a/develop/proc/mp_allocate_c.html +++ b/develop/proc/mp_allocate_c.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/mp_allocate_d.html b/develop/proc/mp_allocate_d.html index a0125e8c62d..d4e93c14e34 100644 --- a/develop/proc/mp_allocate_d.html +++ b/develop/proc/mp_allocate_d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/mp_allocate_i.html b/develop/proc/mp_allocate_i.html index d34e9819215..2074a887092 100644 --- a/develop/proc/mp_allocate_i.html +++ b/develop/proc/mp_allocate_i.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/mp_allocate_l.html b/develop/proc/mp_allocate_l.html index 528b3c109a4..4fd5277c65f 100644 --- a/develop/proc/mp_allocate_l.html +++ b/develop/proc/mp_allocate_l.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/mp_allocate_r.html b/develop/proc/mp_allocate_r.html index bd9496e933b..af6e80302c9 100644 --- a/develop/proc/mp_allocate_r.html +++ b/develop/proc/mp_allocate_r.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/mp_allocate_z.html b/develop/proc/mp_allocate_z.html index b4faab55b51..f88fbafe5fe 100644 --- a/develop/proc/mp_allocate_z.html +++ b/develop/proc/mp_allocate_z.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/mp_alltoall_c.html b/develop/proc/mp_alltoall_c.html index 20c64dc7eb7..38ce6a7013b 100644 --- a/develop/proc/mp_alltoall_c.html +++ b/develop/proc/mp_alltoall_c.html @@ -166,7 +166,7 @@

    Arguments

    @@ -181,7 +181,7 @@

    Arguments

    @@ -211,7 +211,7 @@

    Arguments

    diff --git a/develop/proc/mp_alltoall_c11v.html b/develop/proc/mp_alltoall_c11v.html index d0c017b4d0d..6836f28233b 100644 --- a/develop/proc/mp_alltoall_c11v.html +++ b/develop/proc/mp_alltoall_c11v.html @@ -166,7 +166,7 @@

    Arguments

    @@ -181,7 +181,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -244,7 +244,7 @@

    Arguments

    @@ -260,7 +260,7 @@

    Arguments

    diff --git a/develop/proc/mp_alltoall_c22.html b/develop/proc/mp_alltoall_c22.html index 2e15519d9e2..509765187a6 100644 --- a/develop/proc/mp_alltoall_c22.html +++ b/develop/proc/mp_alltoall_c22.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_alltoall_c44.html b/develop/proc/mp_alltoall_c44.html index c266dba1523..9dae7f48d4c 100644 --- a/develop/proc/mp_alltoall_c44.html +++ b/develop/proc/mp_alltoall_c44.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_alltoall_d.html b/develop/proc/mp_alltoall_d.html index fa8555101dd..2b919dd0a29 100644 --- a/develop/proc/mp_alltoall_d.html +++ b/develop/proc/mp_alltoall_d.html @@ -166,7 +166,7 @@

    Arguments

    @@ -181,7 +181,7 @@

    Arguments

    @@ -211,7 +211,7 @@

    Arguments

    diff --git a/develop/proc/mp_alltoall_d11v.html b/develop/proc/mp_alltoall_d11v.html index a5661ea523f..bd80bc88321 100644 --- a/develop/proc/mp_alltoall_d11v.html +++ b/develop/proc/mp_alltoall_d11v.html @@ -166,7 +166,7 @@

    Arguments

    @@ -181,7 +181,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -244,7 +244,7 @@

    Arguments

    @@ -260,7 +260,7 @@

    Arguments

    diff --git a/develop/proc/mp_alltoall_d22.html b/develop/proc/mp_alltoall_d22.html index c2d77f0351e..2aa6ece4eff 100644 --- a/develop/proc/mp_alltoall_d22.html +++ b/develop/proc/mp_alltoall_d22.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_alltoall_d44.html b/develop/proc/mp_alltoall_d44.html index fc52ffccb38..3f9326ef42c 100644 --- a/develop/proc/mp_alltoall_d44.html +++ b/develop/proc/mp_alltoall_d44.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_alltoall_i.html b/develop/proc/mp_alltoall_i.html index ead6ce37b89..4a9a30ed493 100644 --- a/develop/proc/mp_alltoall_i.html +++ b/develop/proc/mp_alltoall_i.html @@ -166,7 +166,7 @@

    Arguments

    @@ -181,7 +181,7 @@

    Arguments

    @@ -211,7 +211,7 @@

    Arguments

    diff --git a/develop/proc/mp_alltoall_i11v.html b/develop/proc/mp_alltoall_i11v.html index a3bc3ed4547..e957b5c6ddb 100644 --- a/develop/proc/mp_alltoall_i11v.html +++ b/develop/proc/mp_alltoall_i11v.html @@ -166,7 +166,7 @@

    Arguments

    @@ -181,7 +181,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -244,7 +244,7 @@

    Arguments

    @@ -260,7 +260,7 @@

    Arguments

    diff --git a/develop/proc/mp_alltoall_i22.html b/develop/proc/mp_alltoall_i22.html index 58b48009460..7e80ee12a0a 100644 --- a/develop/proc/mp_alltoall_i22.html +++ b/develop/proc/mp_alltoall_i22.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_alltoall_i44.html b/develop/proc/mp_alltoall_i44.html index aec1a3e4754..104caee924b 100644 --- a/develop/proc/mp_alltoall_i44.html +++ b/develop/proc/mp_alltoall_i44.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_alltoall_l.html b/develop/proc/mp_alltoall_l.html index 7173c50ee9f..c0c198be8cd 100644 --- a/develop/proc/mp_alltoall_l.html +++ b/develop/proc/mp_alltoall_l.html @@ -166,7 +166,7 @@

    Arguments

    @@ -181,7 +181,7 @@

    Arguments

    @@ -211,7 +211,7 @@

    Arguments

    diff --git a/develop/proc/mp_alltoall_l11v.html b/develop/proc/mp_alltoall_l11v.html index 25f306f0bc9..008e941339b 100644 --- a/develop/proc/mp_alltoall_l11v.html +++ b/develop/proc/mp_alltoall_l11v.html @@ -166,7 +166,7 @@

    Arguments

    @@ -181,7 +181,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -244,7 +244,7 @@

    Arguments

    @@ -260,7 +260,7 @@

    Arguments

    diff --git a/develop/proc/mp_alltoall_l22.html b/develop/proc/mp_alltoall_l22.html index 17d2c48e11a..b93bd5d07d2 100644 --- a/develop/proc/mp_alltoall_l22.html +++ b/develop/proc/mp_alltoall_l22.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_alltoall_l44.html b/develop/proc/mp_alltoall_l44.html index d9515a814d2..d25e3dbae98 100644 --- a/develop/proc/mp_alltoall_l44.html +++ b/develop/proc/mp_alltoall_l44.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_alltoall_r.html b/develop/proc/mp_alltoall_r.html index 45207c5a9bb..8de304e84a5 100644 --- a/develop/proc/mp_alltoall_r.html +++ b/develop/proc/mp_alltoall_r.html @@ -166,7 +166,7 @@

    Arguments

    @@ -181,7 +181,7 @@

    Arguments

    @@ -211,7 +211,7 @@

    Arguments

    diff --git a/develop/proc/mp_alltoall_r11v.html b/develop/proc/mp_alltoall_r11v.html index a96fbad2339..846d16066ce 100644 --- a/develop/proc/mp_alltoall_r11v.html +++ b/develop/proc/mp_alltoall_r11v.html @@ -166,7 +166,7 @@

    Arguments

    @@ -181,7 +181,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -244,7 +244,7 @@

    Arguments

    @@ -260,7 +260,7 @@

    Arguments

    diff --git a/develop/proc/mp_alltoall_r22.html b/develop/proc/mp_alltoall_r22.html index b60c9db513a..335831f3c9e 100644 --- a/develop/proc/mp_alltoall_r22.html +++ b/develop/proc/mp_alltoall_r22.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_alltoall_r44.html b/develop/proc/mp_alltoall_r44.html index cbfa270d896..98017df4032 100644 --- a/develop/proc/mp_alltoall_r44.html +++ b/develop/proc/mp_alltoall_r44.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_alltoall_z.html b/develop/proc/mp_alltoall_z.html index 0e6c49c57c0..441fefcc451 100644 --- a/develop/proc/mp_alltoall_z.html +++ b/develop/proc/mp_alltoall_z.html @@ -166,7 +166,7 @@

    Arguments

    @@ -181,7 +181,7 @@

    Arguments

    @@ -211,7 +211,7 @@

    Arguments

    diff --git a/develop/proc/mp_alltoall_z11v.html b/develop/proc/mp_alltoall_z11v.html index 58fb8d65114..734b502f2e4 100644 --- a/develop/proc/mp_alltoall_z11v.html +++ b/develop/proc/mp_alltoall_z11v.html @@ -166,7 +166,7 @@

    Arguments

    @@ -181,7 +181,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -244,7 +244,7 @@

    Arguments

    @@ -260,7 +260,7 @@

    Arguments

    diff --git a/develop/proc/mp_alltoall_z22.html b/develop/proc/mp_alltoall_z22.html index 565100bba64..48077d78a9b 100644 --- a/develop/proc/mp_alltoall_z22.html +++ b/develop/proc/mp_alltoall_z22.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_alltoall_z44.html b/develop/proc/mp_alltoall_z44.html index 733fefa47db..81fd4238332 100644 --- a/develop/proc/mp_alltoall_z44.html +++ b/develop/proc/mp_alltoall_z44.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_bcast_am.html b/develop/proc/mp_bcast_am.html index 7a3e115d24b..0b33a74053f 100644 --- a/develop/proc/mp_bcast_am.html +++ b/develop/proc/mp_bcast_am.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/mp_bcast_av.html b/develop/proc/mp_bcast_av.html index b779f52500f..3ddecc387be 100644 --- a/develop/proc/mp_bcast_av.html +++ b/develop/proc/mp_bcast_av.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/mp_bcast_b.html b/develop/proc/mp_bcast_b.html index 3cb9fc5951f..912fa18f446 100644 --- a/develop/proc/mp_bcast_b.html +++ b/develop/proc/mp_bcast_b.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/mp_bcast_bv.html b/develop/proc/mp_bcast_bv.html index 4ac0b28ef79..ae13a74af5d 100644 --- a/develop/proc/mp_bcast_bv.html +++ b/develop/proc/mp_bcast_bv.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/mp_bcast_c.html b/develop/proc/mp_bcast_c.html index b7185572d2e..f34cddc9f5a 100644 --- a/develop/proc/mp_bcast_c.html +++ b/develop/proc/mp_bcast_c.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    diff --git a/develop/proc/mp_bcast_c3.html b/develop/proc/mp_bcast_c3.html index 13bca0e8946..ec4d331b72e 100644 --- a/develop/proc/mp_bcast_c3.html +++ b/develop/proc/mp_bcast_c3.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    diff --git a/develop/proc/mp_bcast_cm.html b/develop/proc/mp_bcast_cm.html index 8d2d2279734..b8bed531b35 100644 --- a/develop/proc/mp_bcast_cm.html +++ b/develop/proc/mp_bcast_cm.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    diff --git a/develop/proc/mp_bcast_cv.html b/develop/proc/mp_bcast_cv.html index d21d2b827f7..47fb50dc6a1 100644 --- a/develop/proc/mp_bcast_cv.html +++ b/develop/proc/mp_bcast_cv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    diff --git a/develop/proc/mp_bcast_d.html b/develop/proc/mp_bcast_d.html index 7d4bc50f69e..5c547ce4501 100644 --- a/develop/proc/mp_bcast_d.html +++ b/develop/proc/mp_bcast_d.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    diff --git a/develop/proc/mp_bcast_d3.html b/develop/proc/mp_bcast_d3.html index 86dd5939010..c265cd7780d 100644 --- a/develop/proc/mp_bcast_d3.html +++ b/develop/proc/mp_bcast_d3.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    diff --git a/develop/proc/mp_bcast_dm.html b/develop/proc/mp_bcast_dm.html index e9195309e9d..f48ecf48427 100644 --- a/develop/proc/mp_bcast_dm.html +++ b/develop/proc/mp_bcast_dm.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    diff --git a/develop/proc/mp_bcast_dv.html b/develop/proc/mp_bcast_dv.html index 35ff7f89fd0..e2bc79a24d0 100644 --- a/develop/proc/mp_bcast_dv.html +++ b/develop/proc/mp_bcast_dv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    diff --git a/develop/proc/mp_bcast_i.html b/develop/proc/mp_bcast_i.html index 02b68e5d4ff..e4096a25d8a 100644 --- a/develop/proc/mp_bcast_i.html +++ b/develop/proc/mp_bcast_i.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    diff --git a/develop/proc/mp_bcast_i3.html b/develop/proc/mp_bcast_i3.html index 9e406a971f2..df3413cfc81 100644 --- a/develop/proc/mp_bcast_i3.html +++ b/develop/proc/mp_bcast_i3.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    diff --git a/develop/proc/mp_bcast_im.html b/develop/proc/mp_bcast_im.html index f0ffb08fb16..b1b34ac292b 100644 --- a/develop/proc/mp_bcast_im.html +++ b/develop/proc/mp_bcast_im.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    diff --git a/develop/proc/mp_bcast_iv.html b/develop/proc/mp_bcast_iv.html index dacbe6feaf3..9cd045aea9a 100644 --- a/develop/proc/mp_bcast_iv.html +++ b/develop/proc/mp_bcast_iv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    diff --git a/develop/proc/mp_bcast_l.html b/develop/proc/mp_bcast_l.html index d4cdd784b03..393e6b977ad 100644 --- a/develop/proc/mp_bcast_l.html +++ b/develop/proc/mp_bcast_l.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    diff --git a/develop/proc/mp_bcast_l3.html b/develop/proc/mp_bcast_l3.html index 7f0d8cc8316..d3dbccd8335 100644 --- a/develop/proc/mp_bcast_l3.html +++ b/develop/proc/mp_bcast_l3.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    diff --git a/develop/proc/mp_bcast_lm.html b/develop/proc/mp_bcast_lm.html index 83674217f4a..0d2cc67f68f 100644 --- a/develop/proc/mp_bcast_lm.html +++ b/develop/proc/mp_bcast_lm.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    diff --git a/develop/proc/mp_bcast_lv.html b/develop/proc/mp_bcast_lv.html index 99040dd8fd2..9036ad4c99a 100644 --- a/develop/proc/mp_bcast_lv.html +++ b/develop/proc/mp_bcast_lv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    diff --git a/develop/proc/mp_bcast_r.html b/develop/proc/mp_bcast_r.html index 95f3622116a..4aeb2cbbcd2 100644 --- a/develop/proc/mp_bcast_r.html +++ b/develop/proc/mp_bcast_r.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    diff --git a/develop/proc/mp_bcast_r3.html b/develop/proc/mp_bcast_r3.html index 60d87601868..30dc6fe15e2 100644 --- a/develop/proc/mp_bcast_r3.html +++ b/develop/proc/mp_bcast_r3.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    diff --git a/develop/proc/mp_bcast_rm.html b/develop/proc/mp_bcast_rm.html index c65fafee50d..6234bbc5729 100644 --- a/develop/proc/mp_bcast_rm.html +++ b/develop/proc/mp_bcast_rm.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    diff --git a/develop/proc/mp_bcast_rv.html b/develop/proc/mp_bcast_rv.html index f0cfdaf7451..62f5431d0d6 100644 --- a/develop/proc/mp_bcast_rv.html +++ b/develop/proc/mp_bcast_rv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    diff --git a/develop/proc/mp_bcast_z.html b/develop/proc/mp_bcast_z.html index b7419cbd6cc..cba42046974 100644 --- a/develop/proc/mp_bcast_z.html +++ b/develop/proc/mp_bcast_z.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    diff --git a/develop/proc/mp_bcast_z3.html b/develop/proc/mp_bcast_z3.html index f790607d2fe..6c12140d49a 100644 --- a/develop/proc/mp_bcast_z3.html +++ b/develop/proc/mp_bcast_z3.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    diff --git a/develop/proc/mp_bcast_zm.html b/develop/proc/mp_bcast_zm.html index 89d0e59fe61..c975b5aba81 100644 --- a/develop/proc/mp_bcast_zm.html +++ b/develop/proc/mp_bcast_zm.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    diff --git a/develop/proc/mp_bcast_zv.html b/develop/proc/mp_bcast_zv.html index ee3eedc4aa9..e2b8e462f84 100644 --- a/develop/proc/mp_bcast_zv.html +++ b/develop/proc/mp_bcast_zv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    diff --git a/develop/proc/mp_cart_coords.html b/develop/proc/mp_cart_coords.html index 9ee4931dda7..f8ea30d2464 100644 --- a/develop/proc/mp_cart_coords.html +++ b/develop/proc/mp_cart_coords.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/mp_cart_create.html b/develop/proc/mp_cart_create.html index bf5f478c252..58859b1968b 100644 --- a/develop/proc/mp_cart_create.html +++ b/develop/proc/mp_cart_create.html @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/mp_cart_rank.html b/develop/proc/mp_cart_rank.html index f80fca3bd9b..cbd0ea8b2d6 100644 --- a/develop/proc/mp_cart_rank.html +++ b/develop/proc/mp_cart_rank.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/mp_cart_sub.html b/develop/proc/mp_cart_sub.html index 7b6a7b32cb1..afaeecb7bfc 100644 --- a/develop/proc/mp_cart_sub.html +++ b/develop/proc/mp_cart_sub.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/mp_comm_compare.html b/develop/proc/mp_comm_compare.html index dfc9b54031c..86690b10300 100644 --- a/develop/proc/mp_comm_compare.html +++ b/develop/proc/mp_comm_compare.html @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/mp_comm_free.html b/develop/proc/mp_comm_free.html index 955f2ac62a0..7f5c42aac9d 100644 --- a/develop/proc/mp_comm_free.html +++ b/develop/proc/mp_comm_free.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/mp_comm_split.html b/develop/proc/mp_comm_split.html index a0b0e6e291e..01dcf2ebc4e 100644 --- a/develop/proc/mp_comm_split.html +++ b/develop/proc/mp_comm_split.html @@ -168,7 +168,7 @@

    Arguments

    diff --git a/develop/proc/mp_comm_split_direct.html b/develop/proc/mp_comm_split_direct.html index e85ec758a27..835d8ef32e6 100644 --- a/develop/proc/mp_comm_split_direct.html +++ b/develop/proc/mp_comm_split_direct.html @@ -160,7 +160,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    diff --git a/develop/proc/mp_deallocate_c.html b/develop/proc/mp_deallocate_c.html index 9b6d8962e3e..38e142327d6 100644 --- a/develop/proc/mp_deallocate_c.html +++ b/develop/proc/mp_deallocate_c.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/mp_deallocate_d.html b/develop/proc/mp_deallocate_d.html index bec9693b117..29d2537cd57 100644 --- a/develop/proc/mp_deallocate_d.html +++ b/develop/proc/mp_deallocate_d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/mp_deallocate_i.html b/develop/proc/mp_deallocate_i.html index 1ebe3b5b6a1..65210afa457 100644 --- a/develop/proc/mp_deallocate_i.html +++ b/develop/proc/mp_deallocate_i.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/mp_deallocate_l.html b/develop/proc/mp_deallocate_l.html index b073bf13f54..2a0023b40f5 100644 --- a/develop/proc/mp_deallocate_l.html +++ b/develop/proc/mp_deallocate_l.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/mp_deallocate_r.html b/develop/proc/mp_deallocate_r.html index 7c08645e599..6de2c5b8b72 100644 --- a/develop/proc/mp_deallocate_r.html +++ b/develop/proc/mp_deallocate_r.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/mp_deallocate_z.html b/develop/proc/mp_deallocate_z.html index 1485c9c69fa..629fe2911be 100644 --- a/develop/proc/mp_deallocate_z.html +++ b/develop/proc/mp_deallocate_z.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/mp_environ_c2.html b/develop/proc/mp_environ_c2.html index 46465978a97..de91cc6c8c6 100644 --- a/develop/proc/mp_environ_c2.html +++ b/develop/proc/mp_environ_c2.html @@ -158,7 +158,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    diff --git a/develop/proc/mp_environ_pgrid.html b/develop/proc/mp_environ_pgrid.html index 91c5acc1c9b..340795c5337 100644 --- a/develop/proc/mp_environ_pgrid.html +++ b/develop/proc/mp_environ_pgrid.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_delete.html b/develop/proc/mp_file_delete.html index afc177a2169..fb685c5e249 100644 --- a/develop/proc/mp_file_delete.html +++ b/develop/proc/mp_file_delete.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_get_position.html b/develop/proc/mp_file_get_position.html index 2ff8c333931..a205a0cac59 100644 --- a/develop/proc/mp_file_get_position.html +++ b/develop/proc/mp_file_get_position.html @@ -176,7 +176,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_open.html b/develop/proc/mp_file_open.html index 415476f0f01..bb46636474e 100644 --- a/develop/proc/mp_file_open.html +++ b/develop/proc/mp_file_open.html @@ -191,7 +191,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_read_at_all_c.html b/develop/proc/mp_file_read_at_all_c.html index aa27a5d4849..c6693764e8b 100644 --- a/develop/proc/mp_file_read_at_all_c.html +++ b/develop/proc/mp_file_read_at_all_c.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_read_at_all_ch.html b/develop/proc/mp_file_read_at_all_ch.html index 2ec255bb5d6..e9cf851e25a 100644 --- a/develop/proc/mp_file_read_at_all_ch.html +++ b/develop/proc/mp_file_read_at_all_ch.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_read_at_all_cv.html b/develop/proc/mp_file_read_at_all_cv.html index 0a2b337143d..407232a8cb1 100644 --- a/develop/proc/mp_file_read_at_all_cv.html +++ b/develop/proc/mp_file_read_at_all_cv.html @@ -177,7 +177,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_read_at_all_d.html b/develop/proc/mp_file_read_at_all_d.html index ef79bd58d0f..0b4347ceda4 100644 --- a/develop/proc/mp_file_read_at_all_d.html +++ b/develop/proc/mp_file_read_at_all_d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_read_at_all_dv.html b/develop/proc/mp_file_read_at_all_dv.html index 15a22b212e4..78c42f44786 100644 --- a/develop/proc/mp_file_read_at_all_dv.html +++ b/develop/proc/mp_file_read_at_all_dv.html @@ -177,7 +177,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_read_at_all_i.html b/develop/proc/mp_file_read_at_all_i.html index 8573903c5b1..eab603162b9 100644 --- a/develop/proc/mp_file_read_at_all_i.html +++ b/develop/proc/mp_file_read_at_all_i.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_read_at_all_iv.html b/develop/proc/mp_file_read_at_all_iv.html index ad16d6c3c4d..2ce91a8ceb9 100644 --- a/develop/proc/mp_file_read_at_all_iv.html +++ b/develop/proc/mp_file_read_at_all_iv.html @@ -177,7 +177,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_read_at_all_l.html b/develop/proc/mp_file_read_at_all_l.html index 69496076c19..6253c2512c0 100644 --- a/develop/proc/mp_file_read_at_all_l.html +++ b/develop/proc/mp_file_read_at_all_l.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_read_at_all_lv.html b/develop/proc/mp_file_read_at_all_lv.html index 7c8fdb0e57f..8032b000300 100644 --- a/develop/proc/mp_file_read_at_all_lv.html +++ b/develop/proc/mp_file_read_at_all_lv.html @@ -177,7 +177,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_read_at_all_r.html b/develop/proc/mp_file_read_at_all_r.html index 2106f377425..8ffd5f72a0c 100644 --- a/develop/proc/mp_file_read_at_all_r.html +++ b/develop/proc/mp_file_read_at_all_r.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_read_at_all_rv.html b/develop/proc/mp_file_read_at_all_rv.html index 8a9edc5c901..a19997a56ce 100644 --- a/develop/proc/mp_file_read_at_all_rv.html +++ b/develop/proc/mp_file_read_at_all_rv.html @@ -177,7 +177,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_read_at_all_z.html b/develop/proc/mp_file_read_at_all_z.html index e401da69499..c3ae425db4a 100644 --- a/develop/proc/mp_file_read_at_all_z.html +++ b/develop/proc/mp_file_read_at_all_z.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_read_at_all_zv.html b/develop/proc/mp_file_read_at_all_zv.html index 5086011415b..6b98de422aa 100644 --- a/develop/proc/mp_file_read_at_all_zv.html +++ b/develop/proc/mp_file_read_at_all_zv.html @@ -177,7 +177,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_write_at_all_c.html b/develop/proc/mp_file_write_at_all_c.html index b5f8611a436..567624b97fd 100644 --- a/develop/proc/mp_file_write_at_all_c.html +++ b/develop/proc/mp_file_write_at_all_c.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_write_at_all_ch.html b/develop/proc/mp_file_write_at_all_ch.html index 75b518020bd..ef3a89260a9 100644 --- a/develop/proc/mp_file_write_at_all_ch.html +++ b/develop/proc/mp_file_write_at_all_ch.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_write_at_all_cv.html b/develop/proc/mp_file_write_at_all_cv.html index 21cd85e6a6f..347e6c41493 100644 --- a/develop/proc/mp_file_write_at_all_cv.html +++ b/develop/proc/mp_file_write_at_all_cv.html @@ -177,7 +177,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_write_at_all_d.html b/develop/proc/mp_file_write_at_all_d.html index 90b6c496575..c66badcf6bb 100644 --- a/develop/proc/mp_file_write_at_all_d.html +++ b/develop/proc/mp_file_write_at_all_d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_write_at_all_dv.html b/develop/proc/mp_file_write_at_all_dv.html index e8ccd50ac2e..35949f78a12 100644 --- a/develop/proc/mp_file_write_at_all_dv.html +++ b/develop/proc/mp_file_write_at_all_dv.html @@ -177,7 +177,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_write_at_all_i.html b/develop/proc/mp_file_write_at_all_i.html index 2ac56e5d700..786530e6436 100644 --- a/develop/proc/mp_file_write_at_all_i.html +++ b/develop/proc/mp_file_write_at_all_i.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_write_at_all_iv.html b/develop/proc/mp_file_write_at_all_iv.html index ffde56ee44a..404b91930eb 100644 --- a/develop/proc/mp_file_write_at_all_iv.html +++ b/develop/proc/mp_file_write_at_all_iv.html @@ -177,7 +177,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_write_at_all_l.html b/develop/proc/mp_file_write_at_all_l.html index 7ceb8fd8731..80ea978614b 100644 --- a/develop/proc/mp_file_write_at_all_l.html +++ b/develop/proc/mp_file_write_at_all_l.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_write_at_all_lv.html b/develop/proc/mp_file_write_at_all_lv.html index ef58cff3cbc..68b112495df 100644 --- a/develop/proc/mp_file_write_at_all_lv.html +++ b/develop/proc/mp_file_write_at_all_lv.html @@ -177,7 +177,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_write_at_all_r.html b/develop/proc/mp_file_write_at_all_r.html index 024391438d7..426a70ad9a8 100644 --- a/develop/proc/mp_file_write_at_all_r.html +++ b/develop/proc/mp_file_write_at_all_r.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_write_at_all_rv.html b/develop/proc/mp_file_write_at_all_rv.html index efb15f938b4..f2506605893 100644 --- a/develop/proc/mp_file_write_at_all_rv.html +++ b/develop/proc/mp_file_write_at_all_rv.html @@ -177,7 +177,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_write_at_all_z.html b/develop/proc/mp_file_write_at_all_z.html index 8e177b5d0c7..d89134d19e5 100644 --- a/develop/proc/mp_file_write_at_all_z.html +++ b/develop/proc/mp_file_write_at_all_z.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_write_at_all_zv.html b/develop/proc/mp_file_write_at_all_zv.html index c22906b923b..281215b7c7c 100644 --- a/develop/proc/mp_file_write_at_all_zv.html +++ b/develop/proc/mp_file_write_at_all_zv.html @@ -177,7 +177,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_write_at_c.html b/develop/proc/mp_file_write_at_c.html index e459a635f84..4047d49caa2 100644 --- a/develop/proc/mp_file_write_at_c.html +++ b/develop/proc/mp_file_write_at_c.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_write_at_ch.html b/develop/proc/mp_file_write_at_ch.html index e9b425570b9..9a4799e7ae9 100644 --- a/develop/proc/mp_file_write_at_ch.html +++ b/develop/proc/mp_file_write_at_ch.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_write_at_cv.html b/develop/proc/mp_file_write_at_cv.html index f7db46e700d..8eaf0985a80 100644 --- a/develop/proc/mp_file_write_at_cv.html +++ b/develop/proc/mp_file_write_at_cv.html @@ -177,7 +177,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_write_at_d.html b/develop/proc/mp_file_write_at_d.html index cdf02a2e91f..5b609243f50 100644 --- a/develop/proc/mp_file_write_at_d.html +++ b/develop/proc/mp_file_write_at_d.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_write_at_dv.html b/develop/proc/mp_file_write_at_dv.html index c29b168906e..034b611d0c0 100644 --- a/develop/proc/mp_file_write_at_dv.html +++ b/develop/proc/mp_file_write_at_dv.html @@ -177,7 +177,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_write_at_i.html b/develop/proc/mp_file_write_at_i.html index eb8dceb8bc2..cb5ce9460bd 100644 --- a/develop/proc/mp_file_write_at_i.html +++ b/develop/proc/mp_file_write_at_i.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_write_at_iv.html b/develop/proc/mp_file_write_at_iv.html index 594f0710b22..c015a5b42e6 100644 --- a/develop/proc/mp_file_write_at_iv.html +++ b/develop/proc/mp_file_write_at_iv.html @@ -177,7 +177,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_write_at_l.html b/develop/proc/mp_file_write_at_l.html index 8e1288f4bd7..d8da79f9526 100644 --- a/develop/proc/mp_file_write_at_l.html +++ b/develop/proc/mp_file_write_at_l.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_write_at_lv.html b/develop/proc/mp_file_write_at_lv.html index 05bb286c78e..a5706a0e4e4 100644 --- a/develop/proc/mp_file_write_at_lv.html +++ b/develop/proc/mp_file_write_at_lv.html @@ -177,7 +177,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_write_at_r.html b/develop/proc/mp_file_write_at_r.html index 39df5199d27..13a0df83160 100644 --- a/develop/proc/mp_file_write_at_r.html +++ b/develop/proc/mp_file_write_at_r.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_write_at_rv.html b/develop/proc/mp_file_write_at_rv.html index 814dc06ca38..a6d8b2f50ff 100644 --- a/develop/proc/mp_file_write_at_rv.html +++ b/develop/proc/mp_file_write_at_rv.html @@ -177,7 +177,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_write_at_z.html b/develop/proc/mp_file_write_at_z.html index 8c4249e9aaf..e0ba3e8f3d1 100644 --- a/develop/proc/mp_file_write_at_z.html +++ b/develop/proc/mp_file_write_at_z.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/mp_file_write_at_zv.html b/develop/proc/mp_file_write_at_zv.html index 7fa7c61cc58..8daa70aab5b 100644 --- a/develop/proc/mp_file_write_at_zv.html +++ b/develop/proc/mp_file_write_at_zv.html @@ -177,7 +177,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    diff --git a/develop/proc/mp_gather_c.html b/develop/proc/mp_gather_c.html index e7b811f7aff..57e214c51ca 100644 --- a/develop/proc/mp_gather_c.html +++ b/develop/proc/mp_gather_c.html @@ -161,7 +161,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    diff --git a/develop/proc/mp_gather_cm.html b/develop/proc/mp_gather_cm.html index 3ec5a326028..5089e56c32f 100644 --- a/develop/proc/mp_gather_cm.html +++ b/develop/proc/mp_gather_cm.html @@ -167,7 +167,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    diff --git a/develop/proc/mp_gather_cv.html b/develop/proc/mp_gather_cv.html index 89aff1685e7..d8a617c3835 100644 --- a/develop/proc/mp_gather_cv.html +++ b/develop/proc/mp_gather_cv.html @@ -167,7 +167,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    diff --git a/develop/proc/mp_gather_d.html b/develop/proc/mp_gather_d.html index 432884a1412..a6d01a65f7b 100644 --- a/develop/proc/mp_gather_d.html +++ b/develop/proc/mp_gather_d.html @@ -161,7 +161,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    diff --git a/develop/proc/mp_gather_dm.html b/develop/proc/mp_gather_dm.html index e5edc752fc0..1a8e245176f 100644 --- a/develop/proc/mp_gather_dm.html +++ b/develop/proc/mp_gather_dm.html @@ -167,7 +167,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    diff --git a/develop/proc/mp_gather_dv.html b/develop/proc/mp_gather_dv.html index dd87c80e2cc..7951313bbba 100644 --- a/develop/proc/mp_gather_dv.html +++ b/develop/proc/mp_gather_dv.html @@ -167,7 +167,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    diff --git a/develop/proc/mp_gather_i.html b/develop/proc/mp_gather_i.html index b19edaa04ba..55fb1113943 100644 --- a/develop/proc/mp_gather_i.html +++ b/develop/proc/mp_gather_i.html @@ -161,7 +161,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    diff --git a/develop/proc/mp_gather_im.html b/develop/proc/mp_gather_im.html index 3093fdc0b7f..cefc8bef564 100644 --- a/develop/proc/mp_gather_im.html +++ b/develop/proc/mp_gather_im.html @@ -167,7 +167,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    diff --git a/develop/proc/mp_gather_iv.html b/develop/proc/mp_gather_iv.html index c78787736bc..c95d99f62c4 100644 --- a/develop/proc/mp_gather_iv.html +++ b/develop/proc/mp_gather_iv.html @@ -167,7 +167,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    diff --git a/develop/proc/mp_gather_l.html b/develop/proc/mp_gather_l.html index b89678e38c5..998a91010c6 100644 --- a/develop/proc/mp_gather_l.html +++ b/develop/proc/mp_gather_l.html @@ -161,7 +161,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    diff --git a/develop/proc/mp_gather_lm.html b/develop/proc/mp_gather_lm.html index 51399e8f502..ffe0c6e3088 100644 --- a/develop/proc/mp_gather_lm.html +++ b/develop/proc/mp_gather_lm.html @@ -167,7 +167,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    diff --git a/develop/proc/mp_gather_lv.html b/develop/proc/mp_gather_lv.html index 4de4dcb9c47..7fdc9b75ff4 100644 --- a/develop/proc/mp_gather_lv.html +++ b/develop/proc/mp_gather_lv.html @@ -167,7 +167,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    diff --git a/develop/proc/mp_gather_r.html b/develop/proc/mp_gather_r.html index 1f15f6cb412..fc544ccb413 100644 --- a/develop/proc/mp_gather_r.html +++ b/develop/proc/mp_gather_r.html @@ -161,7 +161,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    diff --git a/develop/proc/mp_gather_rm.html b/develop/proc/mp_gather_rm.html index 1288a9336e3..9ee1a32941a 100644 --- a/develop/proc/mp_gather_rm.html +++ b/develop/proc/mp_gather_rm.html @@ -167,7 +167,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    diff --git a/develop/proc/mp_gather_rv.html b/develop/proc/mp_gather_rv.html index 802987a8ddd..fa77efdd77a 100644 --- a/develop/proc/mp_gather_rv.html +++ b/develop/proc/mp_gather_rv.html @@ -167,7 +167,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    diff --git a/develop/proc/mp_gather_z.html b/develop/proc/mp_gather_z.html index 625c93c87dc..8a1b0b460ae 100644 --- a/develop/proc/mp_gather_z.html +++ b/develop/proc/mp_gather_z.html @@ -161,7 +161,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    diff --git a/develop/proc/mp_gather_zm.html b/develop/proc/mp_gather_zm.html index 46a749c3917..aef632d9f78 100644 --- a/develop/proc/mp_gather_zm.html +++ b/develop/proc/mp_gather_zm.html @@ -167,7 +167,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    diff --git a/develop/proc/mp_gather_zv.html b/develop/proc/mp_gather_zv.html index f032d8ce2c9..97d80ddda29 100644 --- a/develop/proc/mp_gather_zv.html +++ b/develop/proc/mp_gather_zv.html @@ -167,7 +167,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    diff --git a/develop/proc/mp_gatherv_cv.html b/develop/proc/mp_gatherv_cv.html index 3c9071507a8..2a99eef4dba 100644 --- a/develop/proc/mp_gatherv_cv.html +++ b/develop/proc/mp_gatherv_cv.html @@ -211,7 +211,7 @@

    Arguments

    @@ -227,7 +227,7 @@

    Arguments

    @@ -242,7 +242,7 @@

    Arguments

    diff --git a/develop/proc/mp_gatherv_dv.html b/develop/proc/mp_gatherv_dv.html index d8ea4a4bfb1..5b1f95f90ab 100644 --- a/develop/proc/mp_gatherv_dv.html +++ b/develop/proc/mp_gatherv_dv.html @@ -211,7 +211,7 @@

    Arguments

    @@ -227,7 +227,7 @@

    Arguments

    @@ -242,7 +242,7 @@

    Arguments

    diff --git a/develop/proc/mp_gatherv_iv.html b/develop/proc/mp_gatherv_iv.html index f9d948cd550..175099e28ef 100644 --- a/develop/proc/mp_gatherv_iv.html +++ b/develop/proc/mp_gatherv_iv.html @@ -211,7 +211,7 @@

    Arguments

    @@ -227,7 +227,7 @@

    Arguments

    @@ -242,7 +242,7 @@

    Arguments

    diff --git a/develop/proc/mp_gatherv_lv.html b/develop/proc/mp_gatherv_lv.html index 1f125d3f8f1..7335feb4d4a 100644 --- a/develop/proc/mp_gatherv_lv.html +++ b/develop/proc/mp_gatherv_lv.html @@ -211,7 +211,7 @@

    Arguments

    @@ -227,7 +227,7 @@

    Arguments

    @@ -242,7 +242,7 @@

    Arguments

    diff --git a/develop/proc/mp_gatherv_rv.html b/develop/proc/mp_gatherv_rv.html index 1b8e0740f9f..4891c144843 100644 --- a/develop/proc/mp_gatherv_rv.html +++ b/develop/proc/mp_gatherv_rv.html @@ -211,7 +211,7 @@

    Arguments

    @@ -227,7 +227,7 @@

    Arguments

    @@ -242,7 +242,7 @@

    Arguments

    diff --git a/develop/proc/mp_gatherv_zv.html b/develop/proc/mp_gatherv_zv.html index 39f2d93816c..80febd70f40 100644 --- a/develop/proc/mp_gatherv_zv.html +++ b/develop/proc/mp_gatherv_zv.html @@ -211,7 +211,7 @@

    Arguments

    @@ -227,7 +227,7 @@

    Arguments

    @@ -242,7 +242,7 @@

    Arguments

    diff --git a/develop/proc/mp_get_comm_handle.html b/develop/proc/mp_get_comm_handle.html index 8069606239d..6b74d1cca3f 100644 --- a/develop/proc/mp_get_comm_handle.html +++ b/develop/proc/mp_get_comm_handle.html @@ -160,7 +160,7 @@

    Arguments

    diff --git a/develop/proc/mp_get_info_handle.html b/develop/proc/mp_get_info_handle.html index 9a218945689..1d17c74216c 100644 --- a/develop/proc/mp_get_info_handle.html +++ b/develop/proc/mp_get_info_handle.html @@ -160,7 +160,7 @@

    Arguments

    diff --git a/develop/proc/mp_get_library_version.html b/develop/proc/mp_get_library_version.html index 4d132d69918..f9cbad0665b 100644 --- a/develop/proc/mp_get_library_version.html +++ b/develop/proc/mp_get_library_version.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/mp_get_processor_name.html b/develop/proc/mp_get_processor_name.html index 402338a7019..cb6694b0e53 100644 --- a/develop/proc/mp_get_processor_name.html +++ b/develop/proc/mp_get_processor_name.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/mp_get_request_handle.html b/develop/proc/mp_get_request_handle.html index c8f32761997..9a0669fbb1f 100644 --- a/develop/proc/mp_get_request_handle.html +++ b/develop/proc/mp_get_request_handle.html @@ -160,7 +160,7 @@

    Arguments

    diff --git a/develop/proc/mp_get_win_handle.html b/develop/proc/mp_get_win_handle.html index cf0bb5fff20..aaa347973a9 100644 --- a/develop/proc/mp_get_win_handle.html +++ b/develop/proc/mp_get_win_handle.html @@ -160,7 +160,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgather_c.html b/develop/proc/mp_iallgather_c.html index e37f8f539d9..119c0a95718 100644 --- a/develop/proc/mp_iallgather_c.html +++ b/develop/proc/mp_iallgather_c.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgather_c11.html b/develop/proc/mp_iallgather_c11.html index 85332ff268d..edacfd8328a 100644 --- a/develop/proc/mp_iallgather_c11.html +++ b/develop/proc/mp_iallgather_c11.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgather_c13.html b/develop/proc/mp_iallgather_c13.html index 63f2f93821b..0fe628a847e 100644 --- a/develop/proc/mp_iallgather_c13.html +++ b/develop/proc/mp_iallgather_c13.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgather_c22.html b/develop/proc/mp_iallgather_c22.html index a8dd6959fa8..e8e8be53f29 100644 --- a/develop/proc/mp_iallgather_c22.html +++ b/develop/proc/mp_iallgather_c22.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgather_c24.html b/develop/proc/mp_iallgather_c24.html index 2f3c3efe71c..003f9787f8a 100644 --- a/develop/proc/mp_iallgather_c24.html +++ b/develop/proc/mp_iallgather_c24.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgather_c33.html b/develop/proc/mp_iallgather_c33.html index af0a7a16036..687910fbcc4 100644 --- a/develop/proc/mp_iallgather_c33.html +++ b/develop/proc/mp_iallgather_c33.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgather_d.html b/develop/proc/mp_iallgather_d.html index 9dd757528cc..9d8098ea3a4 100644 --- a/develop/proc/mp_iallgather_d.html +++ b/develop/proc/mp_iallgather_d.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgather_d11.html b/develop/proc/mp_iallgather_d11.html index 11273feaf74..57191583f24 100644 --- a/develop/proc/mp_iallgather_d11.html +++ b/develop/proc/mp_iallgather_d11.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgather_d13.html b/develop/proc/mp_iallgather_d13.html index cac9f1b1a02..35ff28550c3 100644 --- a/develop/proc/mp_iallgather_d13.html +++ b/develop/proc/mp_iallgather_d13.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgather_d22.html b/develop/proc/mp_iallgather_d22.html index 75a25248d54..60dc619e0ff 100644 --- a/develop/proc/mp_iallgather_d22.html +++ b/develop/proc/mp_iallgather_d22.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgather_d24.html b/develop/proc/mp_iallgather_d24.html index 1bfee6323d8..a322d58f134 100644 --- a/develop/proc/mp_iallgather_d24.html +++ b/develop/proc/mp_iallgather_d24.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgather_d33.html b/develop/proc/mp_iallgather_d33.html index 09c1f6caf42..ae8d18d551c 100644 --- a/develop/proc/mp_iallgather_d33.html +++ b/develop/proc/mp_iallgather_d33.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgather_i.html b/develop/proc/mp_iallgather_i.html index 38e668de9b9..9e326256ba3 100644 --- a/develop/proc/mp_iallgather_i.html +++ b/develop/proc/mp_iallgather_i.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgather_i11.html b/develop/proc/mp_iallgather_i11.html index 89b5f3ad344..d932c32d38b 100644 --- a/develop/proc/mp_iallgather_i11.html +++ b/develop/proc/mp_iallgather_i11.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgather_i13.html b/develop/proc/mp_iallgather_i13.html index 12e3e6144d7..04719d80cc4 100644 --- a/develop/proc/mp_iallgather_i13.html +++ b/develop/proc/mp_iallgather_i13.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgather_i22.html b/develop/proc/mp_iallgather_i22.html index 1ff10820f6b..1daea4a6e74 100644 --- a/develop/proc/mp_iallgather_i22.html +++ b/develop/proc/mp_iallgather_i22.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgather_i24.html b/develop/proc/mp_iallgather_i24.html index 0cb8401e276..d2356e2b784 100644 --- a/develop/proc/mp_iallgather_i24.html +++ b/develop/proc/mp_iallgather_i24.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgather_i33.html b/develop/proc/mp_iallgather_i33.html index 194f9326b57..fb4b2ee1fde 100644 --- a/develop/proc/mp_iallgather_i33.html +++ b/develop/proc/mp_iallgather_i33.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgather_l.html b/develop/proc/mp_iallgather_l.html index 951c47ffcdf..89704bcfe48 100644 --- a/develop/proc/mp_iallgather_l.html +++ b/develop/proc/mp_iallgather_l.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgather_l11.html b/develop/proc/mp_iallgather_l11.html index c219f49379d..13ab6beafa8 100644 --- a/develop/proc/mp_iallgather_l11.html +++ b/develop/proc/mp_iallgather_l11.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgather_l13.html b/develop/proc/mp_iallgather_l13.html index 4045296893b..bf9820b12dd 100644 --- a/develop/proc/mp_iallgather_l13.html +++ b/develop/proc/mp_iallgather_l13.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgather_l22.html b/develop/proc/mp_iallgather_l22.html index 078e9b0e4b5..2391822d8a5 100644 --- a/develop/proc/mp_iallgather_l22.html +++ b/develop/proc/mp_iallgather_l22.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgather_l24.html b/develop/proc/mp_iallgather_l24.html index 71d34a62985..ef9c0d80a68 100644 --- a/develop/proc/mp_iallgather_l24.html +++ b/develop/proc/mp_iallgather_l24.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgather_l33.html b/develop/proc/mp_iallgather_l33.html index 45617fe6776..3556c4d9762 100644 --- a/develop/proc/mp_iallgather_l33.html +++ b/develop/proc/mp_iallgather_l33.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgather_r.html b/develop/proc/mp_iallgather_r.html index 0f35901d3ad..dd152d7aa07 100644 --- a/develop/proc/mp_iallgather_r.html +++ b/develop/proc/mp_iallgather_r.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgather_r11.html b/develop/proc/mp_iallgather_r11.html index 40342617ac6..b4e3e5e7174 100644 --- a/develop/proc/mp_iallgather_r11.html +++ b/develop/proc/mp_iallgather_r11.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgather_r13.html b/develop/proc/mp_iallgather_r13.html index 77d9428b5af..0ca42534940 100644 --- a/develop/proc/mp_iallgather_r13.html +++ b/develop/proc/mp_iallgather_r13.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgather_r22.html b/develop/proc/mp_iallgather_r22.html index df58de3df35..cb737906ee1 100644 --- a/develop/proc/mp_iallgather_r22.html +++ b/develop/proc/mp_iallgather_r22.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgather_r24.html b/develop/proc/mp_iallgather_r24.html index 05c609db6a2..372645fc54d 100644 --- a/develop/proc/mp_iallgather_r24.html +++ b/develop/proc/mp_iallgather_r24.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgather_r33.html b/develop/proc/mp_iallgather_r33.html index bda6c4c5adb..44541c01960 100644 --- a/develop/proc/mp_iallgather_r33.html +++ b/develop/proc/mp_iallgather_r33.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgather_z.html b/develop/proc/mp_iallgather_z.html index 52b75289e29..f201e18856b 100644 --- a/develop/proc/mp_iallgather_z.html +++ b/develop/proc/mp_iallgather_z.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgather_z11.html b/develop/proc/mp_iallgather_z11.html index b38338e01b1..43a6345b261 100644 --- a/develop/proc/mp_iallgather_z11.html +++ b/develop/proc/mp_iallgather_z11.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgather_z13.html b/develop/proc/mp_iallgather_z13.html index a795cfe6ff7..25872a2c40e 100644 --- a/develop/proc/mp_iallgather_z13.html +++ b/develop/proc/mp_iallgather_z13.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgather_z22.html b/develop/proc/mp_iallgather_z22.html index eb44b8adc39..a381e592904 100644 --- a/develop/proc/mp_iallgather_z22.html +++ b/develop/proc/mp_iallgather_z22.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgather_z24.html b/develop/proc/mp_iallgather_z24.html index 9724f1d9c1c..fe096866b39 100644 --- a/develop/proc/mp_iallgather_z24.html +++ b/develop/proc/mp_iallgather_z24.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgather_z33.html b/develop/proc/mp_iallgather_z33.html index 01af849ee28..78a68735ff7 100644 --- a/develop/proc/mp_iallgather_z33.html +++ b/develop/proc/mp_iallgather_z33.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgatherv_cv.html b/develop/proc/mp_iallgatherv_cv.html index cef1c4db1fd..f5b34211741 100644 --- a/develop/proc/mp_iallgatherv_cv.html +++ b/develop/proc/mp_iallgatherv_cv.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -245,7 +245,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgatherv_cv2.html b/develop/proc/mp_iallgatherv_cv2.html index 200106124f1..7ea8b6409f4 100644 --- a/develop/proc/mp_iallgatherv_cv2.html +++ b/develop/proc/mp_iallgatherv_cv2.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -245,7 +245,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgatherv_dv.html b/develop/proc/mp_iallgatherv_dv.html index debee76991e..1985ce014e8 100644 --- a/develop/proc/mp_iallgatherv_dv.html +++ b/develop/proc/mp_iallgatherv_dv.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -245,7 +245,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgatherv_dv2.html b/develop/proc/mp_iallgatherv_dv2.html index 09e2bb7bfd9..a50e5ae4926 100644 --- a/develop/proc/mp_iallgatherv_dv2.html +++ b/develop/proc/mp_iallgatherv_dv2.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -245,7 +245,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgatherv_iv.html b/develop/proc/mp_iallgatherv_iv.html index 6ed6204963b..da983e9722e 100644 --- a/develop/proc/mp_iallgatherv_iv.html +++ b/develop/proc/mp_iallgatherv_iv.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -245,7 +245,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgatherv_iv2.html b/develop/proc/mp_iallgatherv_iv2.html index 2d11e3ae543..4c51218e397 100644 --- a/develop/proc/mp_iallgatherv_iv2.html +++ b/develop/proc/mp_iallgatherv_iv2.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -245,7 +245,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgatherv_lv.html b/develop/proc/mp_iallgatherv_lv.html index ae395c719af..dc2f3555fef 100644 --- a/develop/proc/mp_iallgatherv_lv.html +++ b/develop/proc/mp_iallgatherv_lv.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -245,7 +245,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgatherv_lv2.html b/develop/proc/mp_iallgatherv_lv2.html index 8e07a66a266..9ec5c8c932f 100644 --- a/develop/proc/mp_iallgatherv_lv2.html +++ b/develop/proc/mp_iallgatherv_lv2.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -245,7 +245,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgatherv_rv.html b/develop/proc/mp_iallgatherv_rv.html index 075c5210e99..67ad8e601de 100644 --- a/develop/proc/mp_iallgatherv_rv.html +++ b/develop/proc/mp_iallgatherv_rv.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -245,7 +245,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgatherv_rv2.html b/develop/proc/mp_iallgatherv_rv2.html index 899913ee16d..aee7181b7e3 100644 --- a/develop/proc/mp_iallgatherv_rv2.html +++ b/develop/proc/mp_iallgatherv_rv2.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -245,7 +245,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgatherv_zv.html b/develop/proc/mp_iallgatherv_zv.html index 7d0c8e17352..216e8d59a84 100644 --- a/develop/proc/mp_iallgatherv_zv.html +++ b/develop/proc/mp_iallgatherv_zv.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -245,7 +245,7 @@

    Arguments

    diff --git a/develop/proc/mp_iallgatherv_zv2.html b/develop/proc/mp_iallgatherv_zv2.html index 9081d3a79f2..6c983c91f04 100644 --- a/develop/proc/mp_iallgatherv_zv2.html +++ b/develop/proc/mp_iallgatherv_zv2.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -245,7 +245,7 @@

    Arguments

    diff --git a/develop/proc/mp_ibcast_c.html b/develop/proc/mp_ibcast_c.html index 57ca5cb17ec..3400f284d0d 100644 --- a/develop/proc/mp_ibcast_c.html +++ b/develop/proc/mp_ibcast_c.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    diff --git a/develop/proc/mp_ibcast_cv.html b/develop/proc/mp_ibcast_cv.html index a7690ed332d..b6e19bd92c3 100644 --- a/develop/proc/mp_ibcast_cv.html +++ b/develop/proc/mp_ibcast_cv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_ibcast_d.html b/develop/proc/mp_ibcast_d.html index a6b373bb17f..b5c507cec06 100644 --- a/develop/proc/mp_ibcast_d.html +++ b/develop/proc/mp_ibcast_d.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    diff --git a/develop/proc/mp_ibcast_dv.html b/develop/proc/mp_ibcast_dv.html index 9456aca2866..d9e1c2b7415 100644 --- a/develop/proc/mp_ibcast_dv.html +++ b/develop/proc/mp_ibcast_dv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_ibcast_i.html b/develop/proc/mp_ibcast_i.html index fc0be7f5c22..e638dd32032 100644 --- a/develop/proc/mp_ibcast_i.html +++ b/develop/proc/mp_ibcast_i.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    diff --git a/develop/proc/mp_ibcast_iv.html b/develop/proc/mp_ibcast_iv.html index ea2c09b7195..e06c802d8aa 100644 --- a/develop/proc/mp_ibcast_iv.html +++ b/develop/proc/mp_ibcast_iv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_ibcast_l.html b/develop/proc/mp_ibcast_l.html index 6b56920e722..38f58eb71e3 100644 --- a/develop/proc/mp_ibcast_l.html +++ b/develop/proc/mp_ibcast_l.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    diff --git a/develop/proc/mp_ibcast_lv.html b/develop/proc/mp_ibcast_lv.html index b2fac33ccbf..6dd447c3013 100644 --- a/develop/proc/mp_ibcast_lv.html +++ b/develop/proc/mp_ibcast_lv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_ibcast_r.html b/develop/proc/mp_ibcast_r.html index 8471157fcaf..97964507e2a 100644 --- a/develop/proc/mp_ibcast_r.html +++ b/develop/proc/mp_ibcast_r.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    diff --git a/develop/proc/mp_ibcast_rv.html b/develop/proc/mp_ibcast_rv.html index 2503716305e..43a4ca1b7bb 100644 --- a/develop/proc/mp_ibcast_rv.html +++ b/develop/proc/mp_ibcast_rv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_ibcast_z.html b/develop/proc/mp_ibcast_z.html index 53779fbf684..e3eddfad1a8 100644 --- a/develop/proc/mp_ibcast_z.html +++ b/develop/proc/mp_ibcast_z.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    diff --git a/develop/proc/mp_ibcast_zv.html b/develop/proc/mp_ibcast_zv.html index b8cd369b78b..1301096dff5 100644 --- a/develop/proc/mp_ibcast_zv.html +++ b/develop/proc/mp_ibcast_zv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_irecv_bv.html b/develop/proc/mp_irecv_bv.html index fa620d5e4fe..33e70327733 100644 --- a/develop/proc/mp_irecv_bv.html +++ b/develop/proc/mp_irecv_bv.html @@ -167,7 +167,7 @@

    Arguments

    @@ -182,7 +182,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    @@ -227,7 +227,7 @@

    Arguments

    diff --git a/develop/proc/mp_irecv_cm2.html b/develop/proc/mp_irecv_cm2.html index f20ce502868..d802fdd2766 100644 --- a/develop/proc/mp_irecv_cm2.html +++ b/develop/proc/mp_irecv_cm2.html @@ -171,7 +171,7 @@

    Arguments

    @@ -186,7 +186,7 @@

    Arguments

    @@ -201,7 +201,7 @@

    Arguments

    @@ -216,7 +216,7 @@

    Arguments

    @@ -231,7 +231,7 @@

    Arguments

    diff --git a/develop/proc/mp_irecv_custom.html b/develop/proc/mp_irecv_custom.html index e6b18131721..735a6ed7a89 100644 --- a/develop/proc/mp_irecv_custom.html +++ b/develop/proc/mp_irecv_custom.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    diff --git a/develop/proc/mp_irecv_cv.html b/develop/proc/mp_irecv_cv.html index a20bdab6849..637e1ab9244 100644 --- a/develop/proc/mp_irecv_cv.html +++ b/develop/proc/mp_irecv_cv.html @@ -167,7 +167,7 @@

    Arguments

    @@ -182,7 +182,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    @@ -227,7 +227,7 @@

    Arguments

    diff --git a/develop/proc/mp_irecv_dm2.html b/develop/proc/mp_irecv_dm2.html index 40eb035877f..097438ae57d 100644 --- a/develop/proc/mp_irecv_dm2.html +++ b/develop/proc/mp_irecv_dm2.html @@ -171,7 +171,7 @@

    Arguments

    @@ -186,7 +186,7 @@

    Arguments

    @@ -201,7 +201,7 @@

    Arguments

    @@ -216,7 +216,7 @@

    Arguments

    @@ -231,7 +231,7 @@

    Arguments

    diff --git a/develop/proc/mp_irecv_dv.html b/develop/proc/mp_irecv_dv.html index 64af3ca3c44..ea80e14c390 100644 --- a/develop/proc/mp_irecv_dv.html +++ b/develop/proc/mp_irecv_dv.html @@ -167,7 +167,7 @@

    Arguments

    @@ -182,7 +182,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    @@ -227,7 +227,7 @@

    Arguments

    diff --git a/develop/proc/mp_irecv_im2.html b/develop/proc/mp_irecv_im2.html index 732a1a1b7ff..d53a6373c69 100644 --- a/develop/proc/mp_irecv_im2.html +++ b/develop/proc/mp_irecv_im2.html @@ -171,7 +171,7 @@

    Arguments

    @@ -186,7 +186,7 @@

    Arguments

    @@ -201,7 +201,7 @@

    Arguments

    @@ -216,7 +216,7 @@

    Arguments

    @@ -231,7 +231,7 @@

    Arguments

    diff --git a/develop/proc/mp_irecv_iv.html b/develop/proc/mp_irecv_iv.html index c594ef5c2cd..d648b1ea037 100644 --- a/develop/proc/mp_irecv_iv.html +++ b/develop/proc/mp_irecv_iv.html @@ -167,7 +167,7 @@

    Arguments

    @@ -182,7 +182,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    @@ -227,7 +227,7 @@

    Arguments

    diff --git a/develop/proc/mp_irecv_lm2.html b/develop/proc/mp_irecv_lm2.html index 516693bac86..c453c98337b 100644 --- a/develop/proc/mp_irecv_lm2.html +++ b/develop/proc/mp_irecv_lm2.html @@ -171,7 +171,7 @@

    Arguments

    @@ -186,7 +186,7 @@

    Arguments

    @@ -201,7 +201,7 @@

    Arguments

    @@ -216,7 +216,7 @@

    Arguments

    @@ -231,7 +231,7 @@

    Arguments

    diff --git a/develop/proc/mp_irecv_lv.html b/develop/proc/mp_irecv_lv.html index ec33d0f2df7..fad53c4f769 100644 --- a/develop/proc/mp_irecv_lv.html +++ b/develop/proc/mp_irecv_lv.html @@ -167,7 +167,7 @@

    Arguments

    @@ -182,7 +182,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    @@ -227,7 +227,7 @@

    Arguments

    diff --git a/develop/proc/mp_irecv_rm2.html b/develop/proc/mp_irecv_rm2.html index 05c982b095f..468fad3f0af 100644 --- a/develop/proc/mp_irecv_rm2.html +++ b/develop/proc/mp_irecv_rm2.html @@ -171,7 +171,7 @@

    Arguments

    @@ -186,7 +186,7 @@

    Arguments

    @@ -201,7 +201,7 @@

    Arguments

    @@ -216,7 +216,7 @@

    Arguments

    @@ -231,7 +231,7 @@

    Arguments

    diff --git a/develop/proc/mp_irecv_rv.html b/develop/proc/mp_irecv_rv.html index 9b81d129f44..709f0e67f97 100644 --- a/develop/proc/mp_irecv_rv.html +++ b/develop/proc/mp_irecv_rv.html @@ -167,7 +167,7 @@

    Arguments

    @@ -182,7 +182,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    @@ -227,7 +227,7 @@

    Arguments

    diff --git a/develop/proc/mp_irecv_zm2.html b/develop/proc/mp_irecv_zm2.html index 2b85fd57d15..d1859cbc72c 100644 --- a/develop/proc/mp_irecv_zm2.html +++ b/develop/proc/mp_irecv_zm2.html @@ -171,7 +171,7 @@

    Arguments

    @@ -186,7 +186,7 @@

    Arguments

    @@ -201,7 +201,7 @@

    Arguments

    @@ -216,7 +216,7 @@

    Arguments

    @@ -231,7 +231,7 @@

    Arguments

    diff --git a/develop/proc/mp_irecv_zv.html b/develop/proc/mp_irecv_zv.html index a04c4f9cba3..b596d3c858d 100644 --- a/develop/proc/mp_irecv_zv.html +++ b/develop/proc/mp_irecv_zv.html @@ -167,7 +167,7 @@

    Arguments

    @@ -182,7 +182,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    @@ -227,7 +227,7 @@

    Arguments

    diff --git a/develop/proc/mp_iscatter_c.html b/develop/proc/mp_iscatter_c.html index fcd24b5ed86..d82006a27e1 100644 --- a/develop/proc/mp_iscatter_c.html +++ b/develop/proc/mp_iscatter_c.html @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    diff --git a/develop/proc/mp_iscatter_cv2.html b/develop/proc/mp_iscatter_cv2.html index 1ba5f1650b4..c283a342098 100644 --- a/develop/proc/mp_iscatter_cv2.html +++ b/develop/proc/mp_iscatter_cv2.html @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    diff --git a/develop/proc/mp_iscatter_d.html b/develop/proc/mp_iscatter_d.html index c8d0a8756c1..be20ad6d83e 100644 --- a/develop/proc/mp_iscatter_d.html +++ b/develop/proc/mp_iscatter_d.html @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    diff --git a/develop/proc/mp_iscatter_dv2.html b/develop/proc/mp_iscatter_dv2.html index 684ec2f4c7d..a3f22d35d2a 100644 --- a/develop/proc/mp_iscatter_dv2.html +++ b/develop/proc/mp_iscatter_dv2.html @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    diff --git a/develop/proc/mp_iscatter_i.html b/develop/proc/mp_iscatter_i.html index 0be76da713f..7fc352a017c 100644 --- a/develop/proc/mp_iscatter_i.html +++ b/develop/proc/mp_iscatter_i.html @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    diff --git a/develop/proc/mp_iscatter_iv2.html b/develop/proc/mp_iscatter_iv2.html index 328c0d6c303..88221fde676 100644 --- a/develop/proc/mp_iscatter_iv2.html +++ b/develop/proc/mp_iscatter_iv2.html @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    diff --git a/develop/proc/mp_iscatter_l.html b/develop/proc/mp_iscatter_l.html index 6bac379a7fc..1653d9b4f72 100644 --- a/develop/proc/mp_iscatter_l.html +++ b/develop/proc/mp_iscatter_l.html @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    diff --git a/develop/proc/mp_iscatter_lv2.html b/develop/proc/mp_iscatter_lv2.html index c46d3ef7229..20139581b36 100644 --- a/develop/proc/mp_iscatter_lv2.html +++ b/develop/proc/mp_iscatter_lv2.html @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    diff --git a/develop/proc/mp_iscatter_r.html b/develop/proc/mp_iscatter_r.html index 79f33d3ed2c..4753adbb800 100644 --- a/develop/proc/mp_iscatter_r.html +++ b/develop/proc/mp_iscatter_r.html @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    diff --git a/develop/proc/mp_iscatter_rv2.html b/develop/proc/mp_iscatter_rv2.html index 46e4a97c4c9..045796ea93b 100644 --- a/develop/proc/mp_iscatter_rv2.html +++ b/develop/proc/mp_iscatter_rv2.html @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    diff --git a/develop/proc/mp_iscatter_z.html b/develop/proc/mp_iscatter_z.html index 3136ed74d4b..8902a5cb9cb 100644 --- a/develop/proc/mp_iscatter_z.html +++ b/develop/proc/mp_iscatter_z.html @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    diff --git a/develop/proc/mp_iscatter_zv2.html b/develop/proc/mp_iscatter_zv2.html index d90b88b131b..d5f6885428c 100644 --- a/develop/proc/mp_iscatter_zv2.html +++ b/develop/proc/mp_iscatter_zv2.html @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    diff --git a/develop/proc/mp_iscatterv_cv.html b/develop/proc/mp_iscatterv_cv.html index 1018b8a3879..60b58df6555 100644 --- a/develop/proc/mp_iscatterv_cv.html +++ b/develop/proc/mp_iscatterv_cv.html @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    @@ -251,7 +251,7 @@

    Arguments

    @@ -266,7 +266,7 @@

    Arguments

    diff --git a/develop/proc/mp_iscatterv_dv.html b/develop/proc/mp_iscatterv_dv.html index c37a8745284..c13483bc06c 100644 --- a/develop/proc/mp_iscatterv_dv.html +++ b/develop/proc/mp_iscatterv_dv.html @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    @@ -251,7 +251,7 @@

    Arguments

    @@ -266,7 +266,7 @@

    Arguments

    diff --git a/develop/proc/mp_iscatterv_iv.html b/develop/proc/mp_iscatterv_iv.html index 46528b2c121..3ee78019a92 100644 --- a/develop/proc/mp_iscatterv_iv.html +++ b/develop/proc/mp_iscatterv_iv.html @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    @@ -251,7 +251,7 @@

    Arguments

    @@ -266,7 +266,7 @@

    Arguments

    diff --git a/develop/proc/mp_iscatterv_lv.html b/develop/proc/mp_iscatterv_lv.html index 177eee10730..474228d42a7 100644 --- a/develop/proc/mp_iscatterv_lv.html +++ b/develop/proc/mp_iscatterv_lv.html @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    @@ -251,7 +251,7 @@

    Arguments

    @@ -266,7 +266,7 @@

    Arguments

    diff --git a/develop/proc/mp_iscatterv_rv.html b/develop/proc/mp_iscatterv_rv.html index 1ea854a3e23..6b1386c729f 100644 --- a/develop/proc/mp_iscatterv_rv.html +++ b/develop/proc/mp_iscatterv_rv.html @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    @@ -251,7 +251,7 @@

    Arguments

    @@ -266,7 +266,7 @@

    Arguments

    diff --git a/develop/proc/mp_iscatterv_zv.html b/develop/proc/mp_iscatterv_zv.html index 6ce946f6e4f..6093475937e 100644 --- a/develop/proc/mp_iscatterv_zv.html +++ b/develop/proc/mp_iscatterv_zv.html @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    @@ -251,7 +251,7 @@

    Arguments

    @@ -266,7 +266,7 @@

    Arguments

    diff --git a/develop/proc/mp_isend_bv.html b/develop/proc/mp_isend_bv.html index 60aa4be89cd..a71ebe298bb 100644 --- a/develop/proc/mp_isend_bv.html +++ b/develop/proc/mp_isend_bv.html @@ -167,7 +167,7 @@

    Arguments

    @@ -182,7 +182,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    @@ -227,7 +227,7 @@

    Arguments

    diff --git a/develop/proc/mp_isend_cm2.html b/develop/proc/mp_isend_cm2.html index d7c326736c2..ee62e27c820 100644 --- a/develop/proc/mp_isend_cm2.html +++ b/develop/proc/mp_isend_cm2.html @@ -171,7 +171,7 @@

    Arguments

    @@ -186,7 +186,7 @@

    Arguments

    @@ -201,7 +201,7 @@

    Arguments

    @@ -216,7 +216,7 @@

    Arguments

    @@ -231,7 +231,7 @@

    Arguments

    diff --git a/develop/proc/mp_isend_custom.html b/develop/proc/mp_isend_custom.html index 1c28ba2a0d2..b5c0cfe5c4d 100644 --- a/develop/proc/mp_isend_custom.html +++ b/develop/proc/mp_isend_custom.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    diff --git a/develop/proc/mp_isend_cv.html b/develop/proc/mp_isend_cv.html index b52feea50a1..cb4944ac56c 100644 --- a/develop/proc/mp_isend_cv.html +++ b/develop/proc/mp_isend_cv.html @@ -167,7 +167,7 @@

    Arguments

    @@ -182,7 +182,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    @@ -227,7 +227,7 @@

    Arguments

    diff --git a/develop/proc/mp_isend_dm2.html b/develop/proc/mp_isend_dm2.html index ea2f70e78ac..26733efa4c2 100644 --- a/develop/proc/mp_isend_dm2.html +++ b/develop/proc/mp_isend_dm2.html @@ -171,7 +171,7 @@

    Arguments

    @@ -186,7 +186,7 @@

    Arguments

    @@ -201,7 +201,7 @@

    Arguments

    @@ -216,7 +216,7 @@

    Arguments

    @@ -231,7 +231,7 @@

    Arguments

    diff --git a/develop/proc/mp_isend_dv.html b/develop/proc/mp_isend_dv.html index fac9fdb0461..0ae3ea29ecb 100644 --- a/develop/proc/mp_isend_dv.html +++ b/develop/proc/mp_isend_dv.html @@ -167,7 +167,7 @@

    Arguments

    @@ -182,7 +182,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    @@ -227,7 +227,7 @@

    Arguments

    diff --git a/develop/proc/mp_isend_im2.html b/develop/proc/mp_isend_im2.html index 6f919ce2b25..787cfa50ed7 100644 --- a/develop/proc/mp_isend_im2.html +++ b/develop/proc/mp_isend_im2.html @@ -171,7 +171,7 @@

    Arguments

    @@ -186,7 +186,7 @@

    Arguments

    @@ -201,7 +201,7 @@

    Arguments

    @@ -216,7 +216,7 @@

    Arguments

    @@ -231,7 +231,7 @@

    Arguments

    diff --git a/develop/proc/mp_isend_iv.html b/develop/proc/mp_isend_iv.html index 57080a4c166..ed8da7b6d69 100644 --- a/develop/proc/mp_isend_iv.html +++ b/develop/proc/mp_isend_iv.html @@ -167,7 +167,7 @@

    Arguments

    @@ -182,7 +182,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    @@ -227,7 +227,7 @@

    Arguments

    diff --git a/develop/proc/mp_isend_lm2.html b/develop/proc/mp_isend_lm2.html index ba504b73f94..a9bbf1d412b 100644 --- a/develop/proc/mp_isend_lm2.html +++ b/develop/proc/mp_isend_lm2.html @@ -171,7 +171,7 @@

    Arguments

    @@ -186,7 +186,7 @@

    Arguments

    @@ -201,7 +201,7 @@

    Arguments

    @@ -216,7 +216,7 @@

    Arguments

    @@ -231,7 +231,7 @@

    Arguments

    diff --git a/develop/proc/mp_isend_lv.html b/develop/proc/mp_isend_lv.html index 8977a528029..6c4e6de05ab 100644 --- a/develop/proc/mp_isend_lv.html +++ b/develop/proc/mp_isend_lv.html @@ -167,7 +167,7 @@

    Arguments

    @@ -182,7 +182,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    @@ -227,7 +227,7 @@

    Arguments

    diff --git a/develop/proc/mp_isend_rm2.html b/develop/proc/mp_isend_rm2.html index 38c79edd811..dcaec82e2ca 100644 --- a/develop/proc/mp_isend_rm2.html +++ b/develop/proc/mp_isend_rm2.html @@ -171,7 +171,7 @@

    Arguments

    @@ -186,7 +186,7 @@

    Arguments

    @@ -201,7 +201,7 @@

    Arguments

    @@ -216,7 +216,7 @@

    Arguments

    @@ -231,7 +231,7 @@

    Arguments

    diff --git a/develop/proc/mp_isend_rv.html b/develop/proc/mp_isend_rv.html index ba436a66524..aaca215d369 100644 --- a/develop/proc/mp_isend_rv.html +++ b/develop/proc/mp_isend_rv.html @@ -167,7 +167,7 @@

    Arguments

    @@ -182,7 +182,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    @@ -227,7 +227,7 @@

    Arguments

    diff --git a/develop/proc/mp_isend_zm2.html b/develop/proc/mp_isend_zm2.html index a61655e00a6..1386c0962be 100644 --- a/develop/proc/mp_isend_zm2.html +++ b/develop/proc/mp_isend_zm2.html @@ -171,7 +171,7 @@

    Arguments

    @@ -186,7 +186,7 @@

    Arguments

    @@ -201,7 +201,7 @@

    Arguments

    @@ -216,7 +216,7 @@

    Arguments

    @@ -231,7 +231,7 @@

    Arguments

    diff --git a/develop/proc/mp_isend_zv.html b/develop/proc/mp_isend_zv.html index d6fba9caa61..ab5e8924e84 100644 --- a/develop/proc/mp_isend_zv.html +++ b/develop/proc/mp_isend_zv.html @@ -167,7 +167,7 @@

    Arguments

    @@ -182,7 +182,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -212,7 +212,7 @@

    Arguments

    @@ -227,7 +227,7 @@

    Arguments

    diff --git a/develop/proc/mp_isendrecv_c.html b/develop/proc/mp_isendrecv_c.html index c8fc7a98994..38e1ed781a9 100644 --- a/develop/proc/mp_isendrecv_c.html +++ b/develop/proc/mp_isendrecv_c.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    @@ -252,7 +252,7 @@

    Arguments

    @@ -268,7 +268,7 @@

    Arguments

    diff --git a/develop/proc/mp_isendrecv_cv.html b/develop/proc/mp_isendrecv_cv.html index 4abb17f970b..b217740cbfd 100644 --- a/develop/proc/mp_isendrecv_cv.html +++ b/develop/proc/mp_isendrecv_cv.html @@ -165,7 +165,7 @@

    Arguments

    @@ -180,7 +180,7 @@

    Arguments

    @@ -195,7 +195,7 @@

    Arguments

    @@ -210,7 +210,7 @@

    Arguments

    @@ -225,7 +225,7 @@

    Arguments

    @@ -240,7 +240,7 @@

    Arguments

    @@ -256,7 +256,7 @@

    Arguments

    @@ -272,7 +272,7 @@

    Arguments

    diff --git a/develop/proc/mp_isendrecv_d.html b/develop/proc/mp_isendrecv_d.html index d6436ba4e0a..72cd370a2ec 100644 --- a/develop/proc/mp_isendrecv_d.html +++ b/develop/proc/mp_isendrecv_d.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    @@ -252,7 +252,7 @@

    Arguments

    @@ -268,7 +268,7 @@

    Arguments

    diff --git a/develop/proc/mp_isendrecv_dv.html b/develop/proc/mp_isendrecv_dv.html index 83ed7fd96be..0ac141b6580 100644 --- a/develop/proc/mp_isendrecv_dv.html +++ b/develop/proc/mp_isendrecv_dv.html @@ -165,7 +165,7 @@

    Arguments

    @@ -180,7 +180,7 @@

    Arguments

    @@ -195,7 +195,7 @@

    Arguments

    @@ -210,7 +210,7 @@

    Arguments

    @@ -225,7 +225,7 @@

    Arguments

    @@ -240,7 +240,7 @@

    Arguments

    @@ -256,7 +256,7 @@

    Arguments

    @@ -272,7 +272,7 @@

    Arguments

    diff --git a/develop/proc/mp_isendrecv_i.html b/develop/proc/mp_isendrecv_i.html index c80149566a4..8f79d21eeda 100644 --- a/develop/proc/mp_isendrecv_i.html +++ b/develop/proc/mp_isendrecv_i.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    @@ -252,7 +252,7 @@

    Arguments

    @@ -268,7 +268,7 @@

    Arguments

    diff --git a/develop/proc/mp_isendrecv_iv.html b/develop/proc/mp_isendrecv_iv.html index 5f23de7dc85..ca43568d290 100644 --- a/develop/proc/mp_isendrecv_iv.html +++ b/develop/proc/mp_isendrecv_iv.html @@ -165,7 +165,7 @@

    Arguments

    @@ -180,7 +180,7 @@

    Arguments

    @@ -195,7 +195,7 @@

    Arguments

    @@ -210,7 +210,7 @@

    Arguments

    @@ -225,7 +225,7 @@

    Arguments

    @@ -240,7 +240,7 @@

    Arguments

    @@ -256,7 +256,7 @@

    Arguments

    @@ -272,7 +272,7 @@

    Arguments

    diff --git a/develop/proc/mp_isendrecv_l.html b/develop/proc/mp_isendrecv_l.html index 98d1032837f..718482b2388 100644 --- a/develop/proc/mp_isendrecv_l.html +++ b/develop/proc/mp_isendrecv_l.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    @@ -252,7 +252,7 @@

    Arguments

    @@ -268,7 +268,7 @@

    Arguments

    diff --git a/develop/proc/mp_isendrecv_lv.html b/develop/proc/mp_isendrecv_lv.html index 05f524e7463..7638f0f5e28 100644 --- a/develop/proc/mp_isendrecv_lv.html +++ b/develop/proc/mp_isendrecv_lv.html @@ -165,7 +165,7 @@

    Arguments

    @@ -180,7 +180,7 @@

    Arguments

    @@ -195,7 +195,7 @@

    Arguments

    @@ -210,7 +210,7 @@

    Arguments

    @@ -225,7 +225,7 @@

    Arguments

    @@ -240,7 +240,7 @@

    Arguments

    @@ -256,7 +256,7 @@

    Arguments

    @@ -272,7 +272,7 @@

    Arguments

    diff --git a/develop/proc/mp_isendrecv_r.html b/develop/proc/mp_isendrecv_r.html index 8fbaa3b66cf..45feafe7324 100644 --- a/develop/proc/mp_isendrecv_r.html +++ b/develop/proc/mp_isendrecv_r.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    @@ -252,7 +252,7 @@

    Arguments

    @@ -268,7 +268,7 @@

    Arguments

    diff --git a/develop/proc/mp_isendrecv_rv.html b/develop/proc/mp_isendrecv_rv.html index 1b4cc19a5b1..6374cc5fc70 100644 --- a/develop/proc/mp_isendrecv_rv.html +++ b/develop/proc/mp_isendrecv_rv.html @@ -165,7 +165,7 @@

    Arguments

    @@ -180,7 +180,7 @@

    Arguments

    @@ -195,7 +195,7 @@

    Arguments

    @@ -210,7 +210,7 @@

    Arguments

    @@ -225,7 +225,7 @@

    Arguments

    @@ -240,7 +240,7 @@

    Arguments

    @@ -256,7 +256,7 @@

    Arguments

    @@ -272,7 +272,7 @@

    Arguments

    diff --git a/develop/proc/mp_isendrecv_z.html b/develop/proc/mp_isendrecv_z.html index 29f93d6840a..e5a887c44f4 100644 --- a/develop/proc/mp_isendrecv_z.html +++ b/develop/proc/mp_isendrecv_z.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    @@ -252,7 +252,7 @@

    Arguments

    @@ -268,7 +268,7 @@

    Arguments

    diff --git a/develop/proc/mp_isendrecv_zv.html b/develop/proc/mp_isendrecv_zv.html index 44f31c9d277..3e668bbad30 100644 --- a/develop/proc/mp_isendrecv_zv.html +++ b/develop/proc/mp_isendrecv_zv.html @@ -165,7 +165,7 @@

    Arguments

    @@ -180,7 +180,7 @@

    Arguments

    @@ -195,7 +195,7 @@

    Arguments

    @@ -210,7 +210,7 @@

    Arguments

    @@ -225,7 +225,7 @@

    Arguments

    @@ -240,7 +240,7 @@

    Arguments

    @@ -256,7 +256,7 @@

    Arguments

    @@ -272,7 +272,7 @@

    Arguments

    diff --git a/develop/proc/mp_isum_bv.html b/develop/proc/mp_isum_bv.html index 254770be1f8..4bd86563b41 100644 --- a/develop/proc/mp_isum_bv.html +++ b/develop/proc/mp_isum_bv.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    diff --git a/develop/proc/mp_isum_cv.html b/develop/proc/mp_isum_cv.html index 94eaf2083bf..e27f4b6e178 100644 --- a/develop/proc/mp_isum_cv.html +++ b/develop/proc/mp_isum_cv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    diff --git a/develop/proc/mp_isum_dv.html b/develop/proc/mp_isum_dv.html index 5c122d10aec..8d1536d0639 100644 --- a/develop/proc/mp_isum_dv.html +++ b/develop/proc/mp_isum_dv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    diff --git a/develop/proc/mp_isum_iv.html b/develop/proc/mp_isum_iv.html index cf25fbe006e..f48f42ce9d7 100644 --- a/develop/proc/mp_isum_iv.html +++ b/develop/proc/mp_isum_iv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    diff --git a/develop/proc/mp_isum_lv.html b/develop/proc/mp_isum_lv.html index a3c9f6ad6ed..92e7a6fc6fc 100644 --- a/develop/proc/mp_isum_lv.html +++ b/develop/proc/mp_isum_lv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    diff --git a/develop/proc/mp_isum_rv.html b/develop/proc/mp_isum_rv.html index e2c8bba9358..b4571a171bd 100644 --- a/develop/proc/mp_isum_rv.html +++ b/develop/proc/mp_isum_rv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    diff --git a/develop/proc/mp_isum_zv.html b/develop/proc/mp_isum_zv.html index 4308b54f182..808f74479a6 100644 --- a/develop/proc/mp_isum_zv.html +++ b/develop/proc/mp_isum_zv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    diff --git a/develop/proc/mp_isync.html b/develop/proc/mp_isync.html index 66a530807e4..a6622d0da19 100644 --- a/develop/proc/mp_isync.html +++ b/develop/proc/mp_isync.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/mp_max_c.html b/develop/proc/mp_max_c.html index bbe1818feb1..7b321c89830 100644 --- a/develop/proc/mp_max_c.html +++ b/develop/proc/mp_max_c.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    diff --git a/develop/proc/mp_max_cv.html b/develop/proc/mp_max_cv.html index feac907255e..823c30bda64 100644 --- a/develop/proc/mp_max_cv.html +++ b/develop/proc/mp_max_cv.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    diff --git a/develop/proc/mp_max_d.html b/develop/proc/mp_max_d.html index 8f385449afa..2cd674a0b61 100644 --- a/develop/proc/mp_max_d.html +++ b/develop/proc/mp_max_d.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    diff --git a/develop/proc/mp_max_dv.html b/develop/proc/mp_max_dv.html index 33de9def49a..d0a795363a7 100644 --- a/develop/proc/mp_max_dv.html +++ b/develop/proc/mp_max_dv.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    diff --git a/develop/proc/mp_max_i.html b/develop/proc/mp_max_i.html index def94224822..ef22bac44e6 100644 --- a/develop/proc/mp_max_i.html +++ b/develop/proc/mp_max_i.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    diff --git a/develop/proc/mp_max_iv.html b/develop/proc/mp_max_iv.html index 88206454028..e6301ad245c 100644 --- a/develop/proc/mp_max_iv.html +++ b/develop/proc/mp_max_iv.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    diff --git a/develop/proc/mp_max_l.html b/develop/proc/mp_max_l.html index f528d912c7f..d1694728544 100644 --- a/develop/proc/mp_max_l.html +++ b/develop/proc/mp_max_l.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    diff --git a/develop/proc/mp_max_lv.html b/develop/proc/mp_max_lv.html index d0ca220c10d..ba713a4198e 100644 --- a/develop/proc/mp_max_lv.html +++ b/develop/proc/mp_max_lv.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    diff --git a/develop/proc/mp_max_r.html b/develop/proc/mp_max_r.html index fa99f1d405f..b3ffd60825c 100644 --- a/develop/proc/mp_max_r.html +++ b/develop/proc/mp_max_r.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    diff --git a/develop/proc/mp_max_rv.html b/develop/proc/mp_max_rv.html index 85e98a6f87b..7bd4e350f24 100644 --- a/develop/proc/mp_max_rv.html +++ b/develop/proc/mp_max_rv.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    diff --git a/develop/proc/mp_max_z.html b/develop/proc/mp_max_z.html index da9923654a4..eb2abafb8cf 100644 --- a/develop/proc/mp_max_z.html +++ b/develop/proc/mp_max_z.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    diff --git a/develop/proc/mp_max_zv.html b/develop/proc/mp_max_zv.html index a465dc2b403..d4d8af339ff 100644 --- a/develop/proc/mp_max_zv.html +++ b/develop/proc/mp_max_zv.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    diff --git a/develop/proc/mp_maxloc_dv.html b/develop/proc/mp_maxloc_dv.html index 1ba7cddd78f..6f3669d9b17 100644 --- a/develop/proc/mp_maxloc_dv.html +++ b/develop/proc/mp_maxloc_dv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    diff --git a/develop/proc/mp_min_c.html b/develop/proc/mp_min_c.html index 6ed10a11fa0..27096789a7f 100644 --- a/develop/proc/mp_min_c.html +++ b/develop/proc/mp_min_c.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    diff --git a/develop/proc/mp_min_cv.html b/develop/proc/mp_min_cv.html index 133083beb2b..563c2afe8e2 100644 --- a/develop/proc/mp_min_cv.html +++ b/develop/proc/mp_min_cv.html @@ -166,7 +166,7 @@

    Arguments

    @@ -181,7 +181,7 @@

    Arguments

    diff --git a/develop/proc/mp_min_d.html b/develop/proc/mp_min_d.html index 0c2dc40b661..cfb235d4a52 100644 --- a/develop/proc/mp_min_d.html +++ b/develop/proc/mp_min_d.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    diff --git a/develop/proc/mp_min_dv.html b/develop/proc/mp_min_dv.html index 9d26c0b09ab..bf4e52cee97 100644 --- a/develop/proc/mp_min_dv.html +++ b/develop/proc/mp_min_dv.html @@ -166,7 +166,7 @@

    Arguments

    @@ -181,7 +181,7 @@

    Arguments

    diff --git a/develop/proc/mp_min_i.html b/develop/proc/mp_min_i.html index 31c5fa438f0..a9a02281e84 100644 --- a/develop/proc/mp_min_i.html +++ b/develop/proc/mp_min_i.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    diff --git a/develop/proc/mp_min_iv.html b/develop/proc/mp_min_iv.html index bac142bfaed..f43fe50b4a0 100644 --- a/develop/proc/mp_min_iv.html +++ b/develop/proc/mp_min_iv.html @@ -166,7 +166,7 @@

    Arguments

    @@ -181,7 +181,7 @@

    Arguments

    diff --git a/develop/proc/mp_min_l.html b/develop/proc/mp_min_l.html index 25e448303d8..44ab06d866f 100644 --- a/develop/proc/mp_min_l.html +++ b/develop/proc/mp_min_l.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    diff --git a/develop/proc/mp_min_lv.html b/develop/proc/mp_min_lv.html index 13dbe8349d7..220a9564020 100644 --- a/develop/proc/mp_min_lv.html +++ b/develop/proc/mp_min_lv.html @@ -166,7 +166,7 @@

    Arguments

    @@ -181,7 +181,7 @@

    Arguments

    diff --git a/develop/proc/mp_min_r.html b/develop/proc/mp_min_r.html index 4355beece7b..b8c2cf30e37 100644 --- a/develop/proc/mp_min_r.html +++ b/develop/proc/mp_min_r.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    diff --git a/develop/proc/mp_min_rv.html b/develop/proc/mp_min_rv.html index 6f5e0bad14a..5ed1319f5dd 100644 --- a/develop/proc/mp_min_rv.html +++ b/develop/proc/mp_min_rv.html @@ -166,7 +166,7 @@

    Arguments

    @@ -181,7 +181,7 @@

    Arguments

    diff --git a/develop/proc/mp_min_z.html b/develop/proc/mp_min_z.html index 1f75fd7dc1d..15388b2fa48 100644 --- a/develop/proc/mp_min_z.html +++ b/develop/proc/mp_min_z.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    diff --git a/develop/proc/mp_min_zv.html b/develop/proc/mp_min_zv.html index a47d1adcb09..79275cc3f6b 100644 --- a/develop/proc/mp_min_zv.html +++ b/develop/proc/mp_min_zv.html @@ -166,7 +166,7 @@

    Arguments

    @@ -181,7 +181,7 @@

    Arguments

    diff --git a/develop/proc/mp_minloc_dv.html b/develop/proc/mp_minloc_dv.html index 8fd8cb0ae7c..178546d7ed8 100644 --- a/develop/proc/mp_minloc_dv.html +++ b/develop/proc/mp_minloc_dv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    diff --git a/develop/proc/mp_perf_env_describe.html b/develop/proc/mp_perf_env_describe.html index 24f67b5c303..cf79a028736 100644 --- a/develop/proc/mp_perf_env_describe.html +++ b/develop/proc/mp_perf_env_describe.html @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/mp_probe.html b/develop/proc/mp_probe.html index d5cc6bc0bc4..3314ee9a1dc 100644 --- a/develop/proc/mp_probe.html +++ b/develop/proc/mp_probe.html @@ -159,7 +159,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    diff --git a/develop/proc/mp_prod_c.html b/develop/proc/mp_prod_c.html index edf2fae7e16..f57067a5b72 100644 --- a/develop/proc/mp_prod_c.html +++ b/develop/proc/mp_prod_c.html @@ -162,7 +162,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    diff --git a/develop/proc/mp_prod_d.html b/develop/proc/mp_prod_d.html index 22e06b1a6fb..bd6f9184527 100644 --- a/develop/proc/mp_prod_d.html +++ b/develop/proc/mp_prod_d.html @@ -162,7 +162,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    diff --git a/develop/proc/mp_prod_i.html b/develop/proc/mp_prod_i.html index 59bfbd8bcfc..e756f9cd7fe 100644 --- a/develop/proc/mp_prod_i.html +++ b/develop/proc/mp_prod_i.html @@ -162,7 +162,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    diff --git a/develop/proc/mp_prod_l.html b/develop/proc/mp_prod_l.html index cc9df442240..6df2d3f5d55 100644 --- a/develop/proc/mp_prod_l.html +++ b/develop/proc/mp_prod_l.html @@ -162,7 +162,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    diff --git a/develop/proc/mp_prod_r.html b/develop/proc/mp_prod_r.html index 926c350d1b0..918dc720909 100644 --- a/develop/proc/mp_prod_r.html +++ b/develop/proc/mp_prod_r.html @@ -162,7 +162,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    diff --git a/develop/proc/mp_prod_z.html b/develop/proc/mp_prod_z.html index 6393fab04ea..9668fdda1f6 100644 --- a/develop/proc/mp_prod_z.html +++ b/develop/proc/mp_prod_z.html @@ -162,7 +162,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    diff --git a/develop/proc/mp_recv_c.html b/develop/proc/mp_recv_c.html index b8af3e87077..fb07e4a6d42 100644 --- a/develop/proc/mp_recv_c.html +++ b/develop/proc/mp_recv_c.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_recv_cv.html b/develop/proc/mp_recv_cv.html index d38cc05f1fa..74f4bd0e9af 100644 --- a/develop/proc/mp_recv_cv.html +++ b/develop/proc/mp_recv_cv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_recv_d.html b/develop/proc/mp_recv_d.html index 258d110644c..59a119984b1 100644 --- a/develop/proc/mp_recv_d.html +++ b/develop/proc/mp_recv_d.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_recv_dv.html b/develop/proc/mp_recv_dv.html index e9e0b602333..cb1a1ee0a21 100644 --- a/develop/proc/mp_recv_dv.html +++ b/develop/proc/mp_recv_dv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_recv_i.html b/develop/proc/mp_recv_i.html index 6fc35cb7e42..84853d6a2b4 100644 --- a/develop/proc/mp_recv_i.html +++ b/develop/proc/mp_recv_i.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_recv_iv.html b/develop/proc/mp_recv_iv.html index 8695446a656..25350773406 100644 --- a/develop/proc/mp_recv_iv.html +++ b/develop/proc/mp_recv_iv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_recv_l.html b/develop/proc/mp_recv_l.html index 330366efb26..3add6609069 100644 --- a/develop/proc/mp_recv_l.html +++ b/develop/proc/mp_recv_l.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_recv_lv.html b/develop/proc/mp_recv_lv.html index 6c3d88a2c54..71208c0ee84 100644 --- a/develop/proc/mp_recv_lv.html +++ b/develop/proc/mp_recv_lv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_recv_r.html b/develop/proc/mp_recv_r.html index bee03a53d5d..b6afa27adab 100644 --- a/develop/proc/mp_recv_r.html +++ b/develop/proc/mp_recv_r.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_recv_rv.html b/develop/proc/mp_recv_rv.html index 08c34e5b24a..52b29cf7a59 100644 --- a/develop/proc/mp_recv_rv.html +++ b/develop/proc/mp_recv_rv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_recv_z.html b/develop/proc/mp_recv_z.html index e0dd0f2ead4..e72a1720122 100644 --- a/develop/proc/mp_recv_z.html +++ b/develop/proc/mp_recv_z.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_recv_zv.html b/develop/proc/mp_recv_zv.html index 3c8be7f886a..b7d04bd614f 100644 --- a/develop/proc/mp_recv_zv.html +++ b/develop/proc/mp_recv_zv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_reordering.html b/develop/proc/mp_reordering.html index e18a1304404..33c8a525db9 100644 --- a/develop/proc/mp_reordering.html +++ b/develop/proc/mp_reordering.html @@ -164,7 +164,7 @@

    Arguments

    diff --git a/develop/proc/mp_rget_cv.html b/develop/proc/mp_rget_cv.html index 10b81c452de..ea1edf5be8b 100644 --- a/develop/proc/mp_rget_cv.html +++ b/develop/proc/mp_rget_cv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    @@ -223,7 +223,7 @@

    Arguments

    @@ -238,7 +238,7 @@

    Arguments

    @@ -253,7 +253,7 @@

    Arguments

    @@ -268,7 +268,7 @@

    Arguments

    @@ -283,7 +283,7 @@

    Arguments

    @@ -369,13 +369,7 @@

    Source Code

    MARK_USED(myproc)#endif IF (do_local_copy) THEN -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(base,win_data,disp_aint,len) -#endif - base(:) = win_data(disp_aint + 1:disp_aint + len) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif + base(:) = win_data(disp_aint + 1:disp_aint + len) request = mp_request_null ierr = 0 ELSE diff --git a/develop/proc/mp_rget_dv.html b/develop/proc/mp_rget_dv.html index 6a81676a81e..3997aefb2a1 100644 --- a/develop/proc/mp_rget_dv.html +++ b/develop/proc/mp_rget_dv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    @@ -223,7 +223,7 @@

    Arguments

    @@ -238,7 +238,7 @@

    Arguments

    @@ -253,7 +253,7 @@

    Arguments

    @@ -268,7 +268,7 @@

    Arguments

    @@ -283,7 +283,7 @@

    Arguments

    @@ -369,13 +369,7 @@

    Source Code

    MARK_USED(myproc)#endif IF (do_local_copy) THEN -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(base,win_data,disp_aint,len) -#endif - base(:) = win_data(disp_aint + 1:disp_aint + len) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif + base(:) = win_data(disp_aint + 1:disp_aint + len) request = mp_request_null ierr = 0 ELSE diff --git a/develop/proc/mp_rget_iv.html b/develop/proc/mp_rget_iv.html index fb9c9195b67..9082f7dc017 100644 --- a/develop/proc/mp_rget_iv.html +++ b/develop/proc/mp_rget_iv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    @@ -223,7 +223,7 @@

    Arguments

    @@ -238,7 +238,7 @@

    Arguments

    @@ -253,7 +253,7 @@

    Arguments

    @@ -268,7 +268,7 @@

    Arguments

    @@ -283,7 +283,7 @@

    Arguments

    @@ -369,13 +369,7 @@

    Source Code

    MARK_USED(myproc)#endif IF (do_local_copy) THEN -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(base,win_data,disp_aint,len) -#endif - base(:) = win_data(disp_aint + 1:disp_aint + len) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif + base(:) = win_data(disp_aint + 1:disp_aint + len) request = mp_request_null ierr = 0 ELSE diff --git a/develop/proc/mp_rget_lv.html b/develop/proc/mp_rget_lv.html index 698677c8573..86a2e59f732 100644 --- a/develop/proc/mp_rget_lv.html +++ b/develop/proc/mp_rget_lv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    @@ -223,7 +223,7 @@

    Arguments

    @@ -238,7 +238,7 @@

    Arguments

    @@ -253,7 +253,7 @@

    Arguments

    @@ -268,7 +268,7 @@

    Arguments

    @@ -283,7 +283,7 @@

    Arguments

    @@ -369,13 +369,7 @@

    Source Code

    MARK_USED(myproc)#endif IF (do_local_copy) THEN -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(base,win_data,disp_aint,len) -#endif - base(:) = win_data(disp_aint + 1:disp_aint + len) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif + base(:) = win_data(disp_aint + 1:disp_aint + len) request = mp_request_null ierr = 0 ELSE diff --git a/develop/proc/mp_rget_rv.html b/develop/proc/mp_rget_rv.html index 83e010e3055..31313e5fc3e 100644 --- a/develop/proc/mp_rget_rv.html +++ b/develop/proc/mp_rget_rv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    @@ -223,7 +223,7 @@

    Arguments

    @@ -238,7 +238,7 @@

    Arguments

    @@ -253,7 +253,7 @@

    Arguments

    @@ -268,7 +268,7 @@

    Arguments

    @@ -283,7 +283,7 @@

    Arguments

    @@ -369,13 +369,7 @@

    Source Code

    MARK_USED(myproc)#endif IF (do_local_copy) THEN -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(base,win_data,disp_aint,len) -#endif - base(:) = win_data(disp_aint + 1:disp_aint + len) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif + base(:) = win_data(disp_aint + 1:disp_aint + len) request = mp_request_null ierr = 0 ELSE diff --git a/develop/proc/mp_rget_zv.html b/develop/proc/mp_rget_zv.html index c37a17b19b8..9affa289dd1 100644 --- a/develop/proc/mp_rget_zv.html +++ b/develop/proc/mp_rget_zv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    @@ -223,7 +223,7 @@

    Arguments

    @@ -238,7 +238,7 @@

    Arguments

    @@ -253,7 +253,7 @@

    Arguments

    @@ -268,7 +268,7 @@

    Arguments

    @@ -283,7 +283,7 @@

    Arguments

    @@ -369,13 +369,7 @@

    Source Code

    MARK_USED(myproc)#endif IF (do_local_copy) THEN -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(base,win_data,disp_aint,len) -#endif - base(:) = win_data(disp_aint + 1:disp_aint + len) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif + base(:) = win_data(disp_aint + 1:disp_aint + len) request = mp_request_null ierr = 0 ELSE diff --git a/develop/proc/mp_send_c.html b/develop/proc/mp_send_c.html index 5b374133bda..35112c6321b 100644 --- a/develop/proc/mp_send_c.html +++ b/develop/proc/mp_send_c.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_send_cv.html b/develop/proc/mp_send_cv.html index 41386eab3b2..9ef20d9e4e2 100644 --- a/develop/proc/mp_send_cv.html +++ b/develop/proc/mp_send_cv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_send_d.html b/develop/proc/mp_send_d.html index 30c7a8525d8..bfefbb1f14a 100644 --- a/develop/proc/mp_send_d.html +++ b/develop/proc/mp_send_d.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_send_dv.html b/develop/proc/mp_send_dv.html index c1d6110306c..b55c8e416dd 100644 --- a/develop/proc/mp_send_dv.html +++ b/develop/proc/mp_send_dv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_send_i.html b/develop/proc/mp_send_i.html index 0cbcfa7c876..1615f87c1a4 100644 --- a/develop/proc/mp_send_i.html +++ b/develop/proc/mp_send_i.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_send_iv.html b/develop/proc/mp_send_iv.html index ac4ce5eea63..3f73b1613d7 100644 --- a/develop/proc/mp_send_iv.html +++ b/develop/proc/mp_send_iv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_send_l.html b/develop/proc/mp_send_l.html index 62998d98543..b06d3dd7ed8 100644 --- a/develop/proc/mp_send_l.html +++ b/develop/proc/mp_send_l.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_send_lv.html b/develop/proc/mp_send_lv.html index 6396c46c9f5..78a9c770d46 100644 --- a/develop/proc/mp_send_lv.html +++ b/develop/proc/mp_send_lv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_send_r.html b/develop/proc/mp_send_r.html index 3e4e9ada562..f734911e1fb 100644 --- a/develop/proc/mp_send_r.html +++ b/develop/proc/mp_send_r.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_send_rv.html b/develop/proc/mp_send_rv.html index e9332a63896..d98cd977bcb 100644 --- a/develop/proc/mp_send_rv.html +++ b/develop/proc/mp_send_rv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_send_z.html b/develop/proc/mp_send_z.html index aa3b6da0540..75a3dfb331a 100644 --- a/develop/proc/mp_send_z.html +++ b/develop/proc/mp_send_z.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_send_zv.html b/develop/proc/mp_send_zv.html index 208576ce418..2573447d8d3 100644 --- a/develop/proc/mp_send_zv.html +++ b/develop/proc/mp_send_zv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    @@ -208,7 +208,7 @@

    Arguments

    diff --git a/develop/proc/mp_sendrecv_cv.html b/develop/proc/mp_sendrecv_cv.html index b183451b2d7..aeccf86210c 100644 --- a/develop/proc/mp_sendrecv_cv.html +++ b/develop/proc/mp_sendrecv_cv.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    diff --git a/develop/proc/mp_sendrecv_dv.html b/develop/proc/mp_sendrecv_dv.html index 951cd16f3f5..59774526f49 100644 --- a/develop/proc/mp_sendrecv_dv.html +++ b/develop/proc/mp_sendrecv_dv.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    diff --git a/develop/proc/mp_sendrecv_iv.html b/develop/proc/mp_sendrecv_iv.html index 38e39b6575b..67f7e54e4bb 100644 --- a/develop/proc/mp_sendrecv_iv.html +++ b/develop/proc/mp_sendrecv_iv.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    diff --git a/develop/proc/mp_sendrecv_lv.html b/develop/proc/mp_sendrecv_lv.html index 29e8d0ca9ef..f4be0262dbc 100644 --- a/develop/proc/mp_sendrecv_lv.html +++ b/develop/proc/mp_sendrecv_lv.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    diff --git a/develop/proc/mp_sendrecv_rv.html b/develop/proc/mp_sendrecv_rv.html index 9d33335bfca..b8cc9d26321 100644 --- a/develop/proc/mp_sendrecv_rv.html +++ b/develop/proc/mp_sendrecv_rv.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    diff --git a/develop/proc/mp_sendrecv_zv.html b/develop/proc/mp_sendrecv_zv.html index 764cf8f135a..9de5626e693 100644 --- a/develop/proc/mp_sendrecv_zv.html +++ b/develop/proc/mp_sendrecv_zv.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    diff --git a/develop/proc/mp_set_comm_handle.html b/develop/proc/mp_set_comm_handle.html index fbf4ea416f5..a9b222ff71e 100644 --- a/develop/proc/mp_set_comm_handle.html +++ b/develop/proc/mp_set_comm_handle.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    diff --git a/develop/proc/mp_set_file_handle.html b/develop/proc/mp_set_file_handle.html index c5848b19d29..ddb8bcc6b4c 100644 --- a/develop/proc/mp_set_file_handle.html +++ b/develop/proc/mp_set_file_handle.html @@ -175,7 +175,7 @@

    Arguments

    diff --git a/develop/proc/mp_set_info_handle.html b/develop/proc/mp_set_info_handle.html index 7d3200ea838..4c0e97e57b2 100644 --- a/develop/proc/mp_set_info_handle.html +++ b/develop/proc/mp_set_info_handle.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    diff --git a/develop/proc/mp_set_request_handle.html b/develop/proc/mp_set_request_handle.html index 2297a9835c7..78ccc5dcc4d 100644 --- a/develop/proc/mp_set_request_handle.html +++ b/develop/proc/mp_set_request_handle.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    diff --git a/develop/proc/mp_set_win_handle.html b/develop/proc/mp_set_win_handle.html index eee5a323b89..25416f64347 100644 --- a/develop/proc/mp_set_win_handle.html +++ b/develop/proc/mp_set_win_handle.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    diff --git a/develop/proc/mp_stop.html b/develop/proc/mp_stop.html index 2a88dcab1f5..83c2d80323f 100644 --- a/develop/proc/mp_stop.html +++ b/develop/proc/mp_stop.html @@ -163,7 +163,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_b.html b/develop/proc/mp_sum_b.html index 5d4939fe5cc..5586a80ab94 100644 --- a/develop/proc/mp_sum_b.html +++ b/develop/proc/mp_sum_b.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_bv.html b/develop/proc/mp_sum_bv.html index a6382deafa5..640361ff61d 100644 --- a/develop/proc/mp_sum_bv.html +++ b/develop/proc/mp_sum_bv.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_c.html b/develop/proc/mp_sum_c.html index 834e6cee75a..8737153d527 100644 --- a/develop/proc/mp_sum_c.html +++ b/develop/proc/mp_sum_c.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_cm.html b/develop/proc/mp_sum_cm.html index 09a98c1a901..c66d7bc977e 100644 --- a/develop/proc/mp_sum_cm.html +++ b/develop/proc/mp_sum_cm.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_cm3.html b/develop/proc/mp_sum_cm3.html index 3e4321e508a..26ace520d19 100644 --- a/develop/proc/mp_sum_cm3.html +++ b/develop/proc/mp_sum_cm3.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_cm4.html b/develop/proc/mp_sum_cm4.html index ee9e94f52b6..50978de1cf1 100644 --- a/develop/proc/mp_sum_cm4.html +++ b/develop/proc/mp_sum_cm4.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_cv.html b/develop/proc/mp_sum_cv.html index 629d02df159..6b6a52a9a11 100644 --- a/develop/proc/mp_sum_cv.html +++ b/develop/proc/mp_sum_cv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_d.html b/develop/proc/mp_sum_d.html index 1426dcdd088..7210d87cb9f 100644 --- a/develop/proc/mp_sum_d.html +++ b/develop/proc/mp_sum_d.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_dm.html b/develop/proc/mp_sum_dm.html index 3c2dab7b339..6cba3de8c89 100644 --- a/develop/proc/mp_sum_dm.html +++ b/develop/proc/mp_sum_dm.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_dm3.html b/develop/proc/mp_sum_dm3.html index 27522306f36..7a8b0dabba4 100644 --- a/develop/proc/mp_sum_dm3.html +++ b/develop/proc/mp_sum_dm3.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_dm4.html b/develop/proc/mp_sum_dm4.html index ee747b1ac64..244dad934f8 100644 --- a/develop/proc/mp_sum_dm4.html +++ b/develop/proc/mp_sum_dm4.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_dv.html b/develop/proc/mp_sum_dv.html index 71c75343110..684e826be4c 100644 --- a/develop/proc/mp_sum_dv.html +++ b/develop/proc/mp_sum_dv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_i.html b/develop/proc/mp_sum_i.html index 0d11186369a..248aff860a2 100644 --- a/develop/proc/mp_sum_i.html +++ b/develop/proc/mp_sum_i.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_im.html b/develop/proc/mp_sum_im.html index 2e45877df70..93e84ac5ff5 100644 --- a/develop/proc/mp_sum_im.html +++ b/develop/proc/mp_sum_im.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_im3.html b/develop/proc/mp_sum_im3.html index cd2a3d795ae..38f28c9d8ac 100644 --- a/develop/proc/mp_sum_im3.html +++ b/develop/proc/mp_sum_im3.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_im4.html b/develop/proc/mp_sum_im4.html index dbf7dba6fb0..23a4d7cd3ce 100644 --- a/develop/proc/mp_sum_im4.html +++ b/develop/proc/mp_sum_im4.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_iv.html b/develop/proc/mp_sum_iv.html index ed44f9ec46f..a51cb762351 100644 --- a/develop/proc/mp_sum_iv.html +++ b/develop/proc/mp_sum_iv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_l.html b/develop/proc/mp_sum_l.html index 8eeb68bf083..cbc8387fb61 100644 --- a/develop/proc/mp_sum_l.html +++ b/develop/proc/mp_sum_l.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_lm.html b/develop/proc/mp_sum_lm.html index 5b24de0b232..1a88cb2ab73 100644 --- a/develop/proc/mp_sum_lm.html +++ b/develop/proc/mp_sum_lm.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_lm3.html b/develop/proc/mp_sum_lm3.html index cb35b11a018..5c059eaaf45 100644 --- a/develop/proc/mp_sum_lm3.html +++ b/develop/proc/mp_sum_lm3.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_lm4.html b/develop/proc/mp_sum_lm4.html index 1db815afe14..ff8e166ae1f 100644 --- a/develop/proc/mp_sum_lm4.html +++ b/develop/proc/mp_sum_lm4.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_lv.html b/develop/proc/mp_sum_lv.html index 8e7078aaf38..a8663d2f80e 100644 --- a/develop/proc/mp_sum_lv.html +++ b/develop/proc/mp_sum_lv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_partial_cm.html b/develop/proc/mp_sum_partial_cm.html index a4577a8b580..c293d49af12 100644 --- a/develop/proc/mp_sum_partial_cm.html +++ b/develop/proc/mp_sum_partial_cm.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_partial_dm.html b/develop/proc/mp_sum_partial_dm.html index a8b43ca0435..dc23aaa6242 100644 --- a/develop/proc/mp_sum_partial_dm.html +++ b/develop/proc/mp_sum_partial_dm.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_partial_im.html b/develop/proc/mp_sum_partial_im.html index ad9a0fbfff3..e61f8f40683 100644 --- a/develop/proc/mp_sum_partial_im.html +++ b/develop/proc/mp_sum_partial_im.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_partial_lm.html b/develop/proc/mp_sum_partial_lm.html index 0217352f3b2..36995b3689b 100644 --- a/develop/proc/mp_sum_partial_lm.html +++ b/develop/proc/mp_sum_partial_lm.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_partial_rm.html b/develop/proc/mp_sum_partial_rm.html index 6e6c95f8640..71a0ca6a91b 100644 --- a/develop/proc/mp_sum_partial_rm.html +++ b/develop/proc/mp_sum_partial_rm.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_partial_zm.html b/develop/proc/mp_sum_partial_zm.html index 8fc1333882b..80db7cab648 100644 --- a/develop/proc/mp_sum_partial_zm.html +++ b/develop/proc/mp_sum_partial_zm.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_r.html b/develop/proc/mp_sum_r.html index 108386a9851..c7a05058331 100644 --- a/develop/proc/mp_sum_r.html +++ b/develop/proc/mp_sum_r.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_rm.html b/develop/proc/mp_sum_rm.html index 759164a24de..2bd8743c761 100644 --- a/develop/proc/mp_sum_rm.html +++ b/develop/proc/mp_sum_rm.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_rm3.html b/develop/proc/mp_sum_rm3.html index 9d20edcbccc..4185dc441f0 100644 --- a/develop/proc/mp_sum_rm3.html +++ b/develop/proc/mp_sum_rm3.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_rm4.html b/develop/proc/mp_sum_rm4.html index a75a6458dce..8e9db944ef0 100644 --- a/develop/proc/mp_sum_rm4.html +++ b/develop/proc/mp_sum_rm4.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_root_cm.html b/develop/proc/mp_sum_root_cm.html index 139363104d3..bce850afda1 100644 --- a/develop/proc/mp_sum_root_cm.html +++ b/develop/proc/mp_sum_root_cm.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_root_cv.html b/develop/proc/mp_sum_root_cv.html index 57f06855a3c..e1724ab2baf 100644 --- a/develop/proc/mp_sum_root_cv.html +++ b/develop/proc/mp_sum_root_cv.html @@ -162,7 +162,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_root_dm.html b/develop/proc/mp_sum_root_dm.html index 9d152c48bf7..83de0ce32dc 100644 --- a/develop/proc/mp_sum_root_dm.html +++ b/develop/proc/mp_sum_root_dm.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_root_dv.html b/develop/proc/mp_sum_root_dv.html index 79134be440b..4f913d03185 100644 --- a/develop/proc/mp_sum_root_dv.html +++ b/develop/proc/mp_sum_root_dv.html @@ -162,7 +162,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_root_im.html b/develop/proc/mp_sum_root_im.html index 503ec9d7fcc..58625314c27 100644 --- a/develop/proc/mp_sum_root_im.html +++ b/develop/proc/mp_sum_root_im.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_root_iv.html b/develop/proc/mp_sum_root_iv.html index 507026b4630..fbc4f844611 100644 --- a/develop/proc/mp_sum_root_iv.html +++ b/develop/proc/mp_sum_root_iv.html @@ -162,7 +162,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_root_lm.html b/develop/proc/mp_sum_root_lm.html index cda8d22340f..769614955de 100644 --- a/develop/proc/mp_sum_root_lm.html +++ b/develop/proc/mp_sum_root_lm.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_root_lv.html b/develop/proc/mp_sum_root_lv.html index 03ecf523d5c..d4fca6e4674 100644 --- a/develop/proc/mp_sum_root_lv.html +++ b/develop/proc/mp_sum_root_lv.html @@ -162,7 +162,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_root_rm.html b/develop/proc/mp_sum_root_rm.html index 608f52fe499..bf995d5d747 100644 --- a/develop/proc/mp_sum_root_rm.html +++ b/develop/proc/mp_sum_root_rm.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_root_rv.html b/develop/proc/mp_sum_root_rv.html index 0180fd65030..d260285baeb 100644 --- a/develop/proc/mp_sum_root_rv.html +++ b/develop/proc/mp_sum_root_rv.html @@ -162,7 +162,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_root_zm.html b/develop/proc/mp_sum_root_zm.html index f06bc306557..9312b4deebf 100644 --- a/develop/proc/mp_sum_root_zm.html +++ b/develop/proc/mp_sum_root_zm.html @@ -164,7 +164,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    @@ -194,7 +194,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_root_zv.html b/develop/proc/mp_sum_root_zv.html index 4ae823a8b75..ca15081ef36 100644 --- a/develop/proc/mp_sum_root_zv.html +++ b/develop/proc/mp_sum_root_zv.html @@ -162,7 +162,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_rv.html b/develop/proc/mp_sum_rv.html index 22dd5831632..50790a4d210 100644 --- a/develop/proc/mp_sum_rv.html +++ b/develop/proc/mp_sum_rv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_z.html b/develop/proc/mp_sum_z.html index fb28f1833a6..296f6ca1385 100644 --- a/develop/proc/mp_sum_z.html +++ b/develop/proc/mp_sum_z.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_zm.html b/develop/proc/mp_sum_zm.html index 44fd822fc5b..2895071827c 100644 --- a/develop/proc/mp_sum_zm.html +++ b/develop/proc/mp_sum_zm.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_zm3.html b/develop/proc/mp_sum_zm3.html index 2fc0829bb42..8690fa2faf6 100644 --- a/develop/proc/mp_sum_zm3.html +++ b/develop/proc/mp_sum_zm3.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_zm4.html b/develop/proc/mp_sum_zm4.html index 3357fa4fe8e..29f20dbae98 100644 --- a/develop/proc/mp_sum_zm4.html +++ b/develop/proc/mp_sum_zm4.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    diff --git a/develop/proc/mp_sum_zv.html b/develop/proc/mp_sum_zv.html index 8401af85562..d1fa9014775 100644 --- a/develop/proc/mp_sum_zv.html +++ b/develop/proc/mp_sum_zv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    diff --git a/develop/proc/mp_sync.html b/develop/proc/mp_sync.html index c5ad8383d05..773d3c690cc 100644 --- a/develop/proc/mp_sync.html +++ b/develop/proc/mp_sync.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/mp_test_1.html b/develop/proc/mp_test_1.html index 762843b5f5d..8191c12d85f 100644 --- a/develop/proc/mp_test_1.html +++ b/develop/proc/mp_test_1.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/mp_type_indexed_make_c.html b/develop/proc/mp_type_indexed_make_c.html index bbb4e472742..66bcd634e9d 100644 --- a/develop/proc/mp_type_indexed_make_c.html +++ b/develop/proc/mp_type_indexed_make_c.html @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/mp_type_indexed_make_d.html b/develop/proc/mp_type_indexed_make_d.html index a0afda8cdd3..8701e827ddb 100644 --- a/develop/proc/mp_type_indexed_make_d.html +++ b/develop/proc/mp_type_indexed_make_d.html @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/mp_type_indexed_make_i.html b/develop/proc/mp_type_indexed_make_i.html index ec6f66a5a4b..36fc3cafe42 100644 --- a/develop/proc/mp_type_indexed_make_i.html +++ b/develop/proc/mp_type_indexed_make_i.html @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/mp_type_indexed_make_l.html b/develop/proc/mp_type_indexed_make_l.html index 56112d0c29c..a0c15d846c9 100644 --- a/develop/proc/mp_type_indexed_make_l.html +++ b/develop/proc/mp_type_indexed_make_l.html @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/mp_type_indexed_make_r.html b/develop/proc/mp_type_indexed_make_r.html index 96af43c571a..ed382dcfae5 100644 --- a/develop/proc/mp_type_indexed_make_r.html +++ b/develop/proc/mp_type_indexed_make_r.html @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/mp_type_indexed_make_z.html b/develop/proc/mp_type_indexed_make_z.html index 2e217414d12..18eb803487a 100644 --- a/develop/proc/mp_type_indexed_make_z.html +++ b/develop/proc/mp_type_indexed_make_z.html @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/mp_type_make_c.html b/develop/proc/mp_type_make_c.html index da27225f163..a3dea6a2cc6 100644 --- a/develop/proc/mp_type_make_c.html +++ b/develop/proc/mp_type_make_c.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/mp_type_make_d.html b/develop/proc/mp_type_make_d.html index 6380c9261d3..7855029b8fd 100644 --- a/develop/proc/mp_type_make_d.html +++ b/develop/proc/mp_type_make_d.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/mp_type_make_i.html b/develop/proc/mp_type_make_i.html index c8727ac2d00..8e79c9c220b 100644 --- a/develop/proc/mp_type_make_i.html +++ b/develop/proc/mp_type_make_i.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/mp_type_make_l.html b/develop/proc/mp_type_make_l.html index 21ae7b34319..0605f5da2c3 100644 --- a/develop/proc/mp_type_make_l.html +++ b/develop/proc/mp_type_make_l.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/mp_type_make_r.html b/develop/proc/mp_type_make_r.html index 427f85cb868..63d4aa80aa2 100644 --- a/develop/proc/mp_type_make_r.html +++ b/develop/proc/mp_type_make_r.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/mp_type_make_z.html b/develop/proc/mp_type_make_z.html index f87118ae4fc..8c6988aa65d 100644 --- a/develop/proc/mp_type_make_z.html +++ b/develop/proc/mp_type_make_z.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/mp_wait.html b/develop/proc/mp_wait.html index 4c05270a698..e1a514caa40 100644 --- a/develop/proc/mp_wait.html +++ b/develop/proc/mp_wait.html @@ -163,7 +163,7 @@

    Arguments

    diff --git a/develop/proc/mp_win_create_cv.html b/develop/proc/mp_win_create_cv.html index 50b2d961a79..d5fcdbb4cde 100644 --- a/develop/proc/mp_win_create_cv.html +++ b/develop/proc/mp_win_create_cv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    diff --git a/develop/proc/mp_win_create_dv.html b/develop/proc/mp_win_create_dv.html index d03813bb8b3..77de880dd5b 100644 --- a/develop/proc/mp_win_create_dv.html +++ b/develop/proc/mp_win_create_dv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    diff --git a/develop/proc/mp_win_create_iv.html b/develop/proc/mp_win_create_iv.html index 596054b7f1f..326e6669d8e 100644 --- a/develop/proc/mp_win_create_iv.html +++ b/develop/proc/mp_win_create_iv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    diff --git a/develop/proc/mp_win_create_lv.html b/develop/proc/mp_win_create_lv.html index 65fe7624532..394f801f420 100644 --- a/develop/proc/mp_win_create_lv.html +++ b/develop/proc/mp_win_create_lv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    diff --git a/develop/proc/mp_win_create_rv.html b/develop/proc/mp_win_create_rv.html index b8604db6a2a..eb57fc036d7 100644 --- a/develop/proc/mp_win_create_rv.html +++ b/develop/proc/mp_win_create_rv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    diff --git a/develop/proc/mp_win_create_zv.html b/develop/proc/mp_win_create_zv.html index b5723bda807..8582031d625 100644 --- a/develop/proc/mp_win_create_zv.html +++ b/develop/proc/mp_win_create_zv.html @@ -163,7 +163,7 @@

    Arguments

    @@ -178,7 +178,7 @@

    Arguments

    @@ -193,7 +193,7 @@

    Arguments

    diff --git a/develop/proc/mp_win_flush_all.html b/develop/proc/mp_win_flush_all.html index 46305264286..412836cf1b7 100644 --- a/develop/proc/mp_win_flush_all.html +++ b/develop/proc/mp_win_flush_all.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/mp_win_free.html b/develop/proc/mp_win_free.html index ea99baa7746..d655882ffc6 100644 --- a/develop/proc/mp_win_free.html +++ b/develop/proc/mp_win_free.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/mp_win_lock_all.html b/develop/proc/mp_win_lock_all.html index a92e2ef9017..7075f4a3cfc 100644 --- a/develop/proc/mp_win_lock_all.html +++ b/develop/proc/mp_win_lock_all.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/mp_win_unlock_all.html b/develop/proc/mp_win_unlock_all.html index f182294b3a6..3e8b04f4aa5 100644 --- a/develop/proc/mp_win_unlock_all.html +++ b/develop/proc/mp_win_unlock_all.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/mp_world_init.html b/develop/proc/mp_world_init.html index d98de920d6a..77500aa28b6 100644 --- a/develop/proc/mp_world_init.html +++ b/develop/proc/mp_world_init.html @@ -163,7 +163,7 @@

    Arguments

    diff --git a/develop/proc/multiply_3d.html b/develop/proc/multiply_3d.html index 2864069f1ca..47f5730760a 100644 --- a/develop/proc/multiply_3d.html +++ b/develop/proc/multiply_3d.html @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    @@ -251,7 +251,7 @@

    Arguments

    @@ -266,7 +266,7 @@

    Arguments

    @@ -281,7 +281,7 @@

    Arguments

    diff --git a/develop/proc/multiply_cannon.html b/develop/proc/multiply_cannon.html index 119c928fff8..f0c9582430c 100644 --- a/develop/proc/multiply_cannon.html +++ b/develop/proc/multiply_cannon.html @@ -206,7 +206,7 @@

    Arguments

    @@ -221,7 +221,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    @@ -251,7 +251,7 @@

    Arguments

    diff --git a/develop/proc/multiply_cannon_g2g.html b/develop/proc/multiply_cannon_g2g.html index cb5b64ce487..7e1f495db1c 100644 --- a/develop/proc/multiply_cannon_g2g.html +++ b/develop/proc/multiply_cannon_g2g.html @@ -215,7 +215,7 @@

    Arguments

    @@ -230,7 +230,7 @@

    Arguments

    @@ -245,7 +245,7 @@

    Arguments

    @@ -260,7 +260,7 @@

    Arguments

    diff --git a/develop/proc/multrec_filtering.html b/develop/proc/multrec_filtering.html index 499c603d95f..29a6fdde220 100644 --- a/develop/proc/multrec_filtering.html +++ b/develop/proc/multrec_filtering.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/multrec_filtering_c.html b/develop/proc/multrec_filtering_c.html index 07961b57cf7..17f63f7c79d 100644 --- a/develop/proc/multrec_filtering_c.html +++ b/develop/proc/multrec_filtering_c.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    @@ -220,7 +220,7 @@

    Arguments

    @@ -235,7 +235,7 @@

    Arguments

    @@ -250,7 +250,7 @@

    Arguments

    @@ -265,7 +265,7 @@

    Arguments

    @@ -280,7 +280,7 @@

    Arguments

    diff --git a/develop/proc/multrec_filtering_d.html b/develop/proc/multrec_filtering_d.html index ef7c5b2ec48..1e38ad8f2aa 100644 --- a/develop/proc/multrec_filtering_d.html +++ b/develop/proc/multrec_filtering_d.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    @@ -220,7 +220,7 @@

    Arguments

    @@ -235,7 +235,7 @@

    Arguments

    @@ -250,7 +250,7 @@

    Arguments

    @@ -265,7 +265,7 @@

    Arguments

    @@ -280,7 +280,7 @@

    Arguments

    diff --git a/develop/proc/multrec_filtering_s.html b/develop/proc/multrec_filtering_s.html index 8dbf08684c7..271ad7182e1 100644 --- a/develop/proc/multrec_filtering_s.html +++ b/develop/proc/multrec_filtering_s.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    @@ -220,7 +220,7 @@

    Arguments

    @@ -235,7 +235,7 @@

    Arguments

    @@ -250,7 +250,7 @@

    Arguments

    @@ -265,7 +265,7 @@

    Arguments

    @@ -280,7 +280,7 @@

    Arguments

    diff --git a/develop/proc/multrec_filtering_z.html b/develop/proc/multrec_filtering_z.html index 03faf70aa9b..3b7fe64436a 100644 --- a/develop/proc/multrec_filtering_z.html +++ b/develop/proc/multrec_filtering_z.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    @@ -205,7 +205,7 @@

    Arguments

    @@ -220,7 +220,7 @@

    Arguments

    @@ -235,7 +235,7 @@

    Arguments

    @@ -250,7 +250,7 @@

    Arguments

    @@ -265,7 +265,7 @@

    Arguments

    @@ -280,7 +280,7 @@

    Arguments

    diff --git a/develop/proc/my_checker_tr.html b/develop/proc/my_checker_tr.html index b8d7e686966..be5753db3c4 100644 --- a/develop/proc/my_checker_tr.html +++ b/develop/proc/my_checker_tr.html @@ -161,7 +161,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    @@ -196,7 +196,7 @@

    Arguments

    Return Value - + logical

    diff --git a/develop/proc/ndims_iterator.html b/develop/proc/ndims_iterator.html index 9ab170e6a06..907abec111d 100644 --- a/develop/proc/ndims_iterator.html +++ b/develop/proc/ndims_iterator.html @@ -155,7 +155,7 @@

    Arguments

    diff --git a/develop/proc/ndims_mapping.html b/develop/proc/ndims_mapping.html index e8b0160ab7d..6f3e1e5bd0c 100644 --- a/develop/proc/ndims_mapping.html +++ b/develop/proc/ndims_mapping.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/ndims_mapping_column.html b/develop/proc/ndims_mapping_column.html index 72e51542a44..e9499ca7a23 100644 --- a/develop/proc/ndims_mapping_column.html +++ b/develop/proc/ndims_mapping_column.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/proc/ndims_mapping_row.html b/develop/proc/ndims_mapping_row.html index 2dc38e6bd72..4073b6d214d 100644 --- a/develop/proc/ndims_mapping_row.html +++ b/develop/proc/ndims_mapping_row.html @@ -153,7 +153,7 @@

    Arguments

    diff --git a/develop/proc/new_dbcsr_tas_blk_size_t.html b/develop/proc/new_dbcsr_tas_blk_size_t.html index ac87ed82f42..f2c8645ff29 100644 --- a/develop/proc/new_dbcsr_tas_blk_size_t.html +++ b/develop/proc/new_dbcsr_tas_blk_size_t.html @@ -154,7 +154,7 @@

    Arguments

    diff --git a/develop/proc/new_dbcsr_tas_dist_repl.html b/develop/proc/new_dbcsr_tas_dist_repl.html index e85087160d8..e8db8c07a8f 100644 --- a/develop/proc/new_dbcsr_tas_dist_repl.html +++ b/develop/proc/new_dbcsr_tas_dist_repl.html @@ -212,7 +212,7 @@

    Arguments

    diff --git a/develop/proc/next_linebreak.html b/develop/proc/next_linebreak.html index 83233c27fb8..1849588b4c4 100644 --- a/develop/proc/next_linebreak.html +++ b/develop/proc/next_linebreak.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -207,7 +207,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/number_of_arrays.html b/develop/proc/number_of_arrays.html index 82832db08e7..743837621cc 100644 --- a/develop/proc/number_of_arrays.html +++ b/develop/proc/number_of_arrays.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/open_file.html b/develop/proc/open_file.html index 195338581ec..c1a528f7dfe 100644 --- a/develop/proc/open_file.html +++ b/develop/proc/open_file.html @@ -159,7 +159,7 @@

    Arguments

    @@ -264,7 +264,7 @@

    Arguments

    diff --git a/develop/proc/opt_pgrid.html b/develop/proc/opt_pgrid.html index fee6ef9ed53..8aba13fe0ff 100644 --- a/develop/proc/opt_pgrid.html +++ b/develop/proc/opt_pgrid.html @@ -152,7 +152,7 @@

    Arguments

    @@ -167,7 +167,7 @@

    Arguments

    @@ -185,7 +185,7 @@

    Arguments

    Return Value - + type(dbcsr_t_pgrid_type)

    diff --git a/develop/proc/ordered_search.html b/develop/proc/ordered_search.html index e86934c336f..22df6412101 100644 --- a/develop/proc/ordered_search.html +++ b/develop/proc/ordered_search.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    diff --git a/develop/proc/pd_blk_cs.html b/develop/proc/pd_blk_cs.html index 7aecf251cfb..b13ffaab34f 100644 --- a/develop/proc/pd_blk_cs.html +++ b/develop/proc/pd_blk_cs.html @@ -188,7 +188,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/permute.html b/develop/proc/permute.html index c3b0a2dc4ea..fba22bf59fc 100644 --- a/develop/proc/permute.html +++ b/develop/proc/permute.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    diff --git a/develop/proc/permute_index.html b/develop/proc/permute_index.html index 7ec97e3ae61..724f30a226e 100644 --- a/develop/proc/permute_index.html +++ b/develop/proc/permute_index.html @@ -183,7 +183,7 @@

    Arguments

    diff --git a/develop/proc/pointer_view_a.html b/develop/proc/pointer_view_a.html index 607ed9f6cba..987d7402d40 100644 --- a/develop/proc/pointer_view_a.html +++ b/develop/proc/pointer_view_a.html @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/pointer_view_c.html b/develop/proc/pointer_view_c.html index 1d5ed8d86ce..203072a56c8 100644 --- a/develop/proc/pointer_view_c.html +++ b/develop/proc/pointer_view_c.html @@ -175,7 +175,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    diff --git a/develop/proc/pointer_view_d.html b/develop/proc/pointer_view_d.html index 888742fef85..28c80286f90 100644 --- a/develop/proc/pointer_view_d.html +++ b/develop/proc/pointer_view_d.html @@ -175,7 +175,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    diff --git a/develop/proc/pointer_view_i.html b/develop/proc/pointer_view_i.html index 464438cffa7..4b6e293e03e 100644 --- a/develop/proc/pointer_view_i.html +++ b/develop/proc/pointer_view_i.html @@ -175,7 +175,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    diff --git a/develop/proc/pointer_view_l.html b/develop/proc/pointer_view_l.html index 243113b0b28..601954fdb12 100644 --- a/develop/proc/pointer_view_l.html +++ b/develop/proc/pointer_view_l.html @@ -175,7 +175,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    diff --git a/develop/proc/pointer_view_s.html b/develop/proc/pointer_view_s.html index 46ec2a1c07c..5df2e5e1c15 100644 --- a/develop/proc/pointer_view_s.html +++ b/develop/proc/pointer_view_s.html @@ -175,7 +175,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    diff --git a/develop/proc/pointer_view_z.html b/develop/proc/pointer_view_z.html index e96f5110c67..024825e3e05 100644 --- a/develop/proc/pointer_view_z.html +++ b/develop/proc/pointer_view_z.html @@ -175,7 +175,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    diff --git a/develop/proc/prep_output_unit.html b/develop/proc/prep_output_unit.html index 95ee997e08b..a36eb411204 100644 --- a/develop/proc/prep_output_unit.html +++ b/develop/proc/prep_output_unit.html @@ -79,15 +79,15 @@

    prep_output_unit
  • - Source File + Source File
  • @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/prep_output_unit~2.html b/develop/proc/prep_output_unit~2.html index 989652a7f1e..8d35a5c8d76 100644 --- a/develop/proc/prep_output_unit~2.html +++ b/develop/proc/prep_output_unit~2.html @@ -79,15 +79,15 @@

    prep_output_unit
  • - Source File + Source File
  • @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/prepare_buffers_c.html b/develop/proc/prepare_buffers_c.html index b81d40ac0c6..2cf9592eb65 100644 --- a/develop/proc/prepare_buffers_c.html +++ b/develop/proc/prepare_buffers_c.html @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    @@ -249,7 +249,7 @@

    Arguments

    @@ -264,7 +264,7 @@

    Arguments

    @@ -279,7 +279,7 @@

    Arguments

    @@ -294,7 +294,7 @@

    Arguments

    @@ -309,7 +309,7 @@

    Arguments

    @@ -414,7 +414,7 @@

    Arguments

    @@ -459,7 +459,7 @@

    Arguments

    @@ -474,7 +474,7 @@

    Arguments

    @@ -564,7 +564,7 @@

    Arguments

    @@ -579,7 +579,7 @@

    Arguments

    @@ -594,7 +594,7 @@

    Arguments

    @@ -609,7 +609,7 @@

    Arguments

    @@ -624,7 +624,7 @@

    Arguments

    @@ -639,7 +639,7 @@

    Arguments

    @@ -774,7 +774,7 @@

    Arguments

    diff --git a/develop/proc/prepare_buffers_d.html b/develop/proc/prepare_buffers_d.html index a9520f28021..29df8622fb1 100644 --- a/develop/proc/prepare_buffers_d.html +++ b/develop/proc/prepare_buffers_d.html @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    @@ -249,7 +249,7 @@

    Arguments

    @@ -264,7 +264,7 @@

    Arguments

    @@ -279,7 +279,7 @@

    Arguments

    @@ -294,7 +294,7 @@

    Arguments

    @@ -309,7 +309,7 @@

    Arguments

    @@ -414,7 +414,7 @@

    Arguments

    @@ -459,7 +459,7 @@

    Arguments

    @@ -474,7 +474,7 @@

    Arguments

    @@ -564,7 +564,7 @@

    Arguments

    @@ -579,7 +579,7 @@

    Arguments

    @@ -594,7 +594,7 @@

    Arguments

    @@ -609,7 +609,7 @@

    Arguments

    @@ -624,7 +624,7 @@

    Arguments

    @@ -639,7 +639,7 @@

    Arguments

    @@ -774,7 +774,7 @@

    Arguments

    diff --git a/develop/proc/prepare_buffers_s.html b/develop/proc/prepare_buffers_s.html index 66ae00a694b..d9bdbe275bb 100644 --- a/develop/proc/prepare_buffers_s.html +++ b/develop/proc/prepare_buffers_s.html @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    @@ -249,7 +249,7 @@

    Arguments

    @@ -264,7 +264,7 @@

    Arguments

    @@ -279,7 +279,7 @@

    Arguments

    @@ -294,7 +294,7 @@

    Arguments

    @@ -309,7 +309,7 @@

    Arguments

    @@ -414,7 +414,7 @@

    Arguments

    @@ -459,7 +459,7 @@

    Arguments

    @@ -474,7 +474,7 @@

    Arguments

    @@ -564,7 +564,7 @@

    Arguments

    @@ -579,7 +579,7 @@

    Arguments

    @@ -594,7 +594,7 @@

    Arguments

    @@ -609,7 +609,7 @@

    Arguments

    @@ -624,7 +624,7 @@

    Arguments

    @@ -639,7 +639,7 @@

    Arguments

    @@ -774,7 +774,7 @@

    Arguments

    diff --git a/develop/proc/prepare_buffers_z.html b/develop/proc/prepare_buffers_z.html index 00bbf6b0126..ab2af6854bf 100644 --- a/develop/proc/prepare_buffers_z.html +++ b/develop/proc/prepare_buffers_z.html @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    @@ -249,7 +249,7 @@

    Arguments

    @@ -264,7 +264,7 @@

    Arguments

    @@ -279,7 +279,7 @@

    Arguments

    @@ -294,7 +294,7 @@

    Arguments

    @@ -309,7 +309,7 @@

    Arguments

    @@ -414,7 +414,7 @@

    Arguments

    @@ -459,7 +459,7 @@

    Arguments

    @@ -474,7 +474,7 @@

    Arguments

    @@ -564,7 +564,7 @@

    Arguments

    @@ -579,7 +579,7 @@

    Arguments

    @@ -594,7 +594,7 @@

    Arguments

    @@ -609,7 +609,7 @@

    Arguments

    @@ -624,7 +624,7 @@

    Arguments

    @@ -639,7 +639,7 @@

    Arguments

    @@ -774,7 +774,7 @@

    Arguments

    diff --git a/develop/proc/print_abort_message.html b/develop/proc/print_abort_message.html index 8f56ad62d2e..4f4b32f6111 100644 --- a/develop/proc/print_abort_message.html +++ b/develop/proc/print_abort_message.html @@ -159,7 +159,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/print_kind_info.html b/develop/proc/print_kind_info.html index 888b6f95235..3a10b2fd8ec 100644 --- a/develop/proc/print_kind_info.html +++ b/develop/proc/print_kind_info.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/print_message.html b/develop/proc/print_message.html index ea1063ce402..435dd4e670d 100644 --- a/develop/proc/print_message.html +++ b/develop/proc/print_message.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    diff --git a/develop/proc/print_preconnection_list.html b/develop/proc/print_preconnection_list.html index d27e6745852..95ba68cba98 100644 --- a/develop/proc/print_preconnection_list.html +++ b/develop/proc/print_preconnection_list.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/print_reports.html b/develop/proc/print_reports.html index e130f126f65..6c180fa7fd1 100644 --- a/develop/proc/print_reports.html +++ b/develop/proc/print_reports.html @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -249,7 +249,7 @@

    Arguments

    diff --git a/develop/proc/print_source.html b/develop/proc/print_source.html index add38cbb946..9456c5342e0 100644 --- a/develop/proc/print_source.html +++ b/develop/proc/print_source.html @@ -160,7 +160,7 @@

    Arguments

    diff --git a/develop/proc/print_stack.html b/develop/proc/print_stack.html index 44bb053ff54..302e4facbf2 100644 --- a/develop/proc/print_stack.html +++ b/develop/proc/print_stack.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/printmat_c.html b/develop/proc/printmat_c.html index fc3eb450dfb..fffc49ec55b 100644 --- a/develop/proc/printmat_c.html +++ b/develop/proc/printmat_c.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    diff --git a/develop/proc/printmat_d.html b/develop/proc/printmat_d.html index 2913d4013cc..5faf3448d00 100644 --- a/develop/proc/printmat_d.html +++ b/develop/proc/printmat_d.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    diff --git a/develop/proc/printmat_s.html b/develop/proc/printmat_s.html index 21332b1a654..1afabaff5ec 100644 --- a/develop/proc/printmat_s.html +++ b/develop/proc/printmat_s.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -190,7 +190,7 @@

    Arguments

    @@ -222,7 +222,7 @@

    Arguments

    @@ -237,7 +237,7 @@

    Arguments

    diff --git a/develop/proc/printmat_z.html b/develop/proc/printmat_z.html index 98fbae517ba..0eaaae7767e 100644 --- a/develop/proc/printmat_z.html +++ b/develop/proc/printmat_z.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    diff --git a/develop/proc/product_matrix_size_guess.html b/develop/proc/product_matrix_size_guess.html index d77fe6bdc13..0b5bcf65ea0 100644 --- a/develop/proc/product_matrix_size_guess.html +++ b/develop/proc/product_matrix_size_guess.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    @@ -249,7 +249,7 @@

    Arguments

    @@ -264,7 +264,7 @@

    Arguments

    @@ -282,7 +282,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/quick_finalize.html b/develop/proc/quick_finalize.html index d038a26c09d..b3a43794d2b 100644 --- a/develop/proc/quick_finalize.html +++ b/develop/proc/quick_finalize.html @@ -161,7 +161,7 @@

    Arguments

    diff --git a/develop/proc/random_blk_sizes.html b/develop/proc/random_blk_sizes.html index bd3203809a8..b80f06cfc49 100644 --- a/develop/proc/random_blk_sizes.html +++ b/develop/proc/random_blk_sizes.html @@ -167,7 +167,7 @@

    Arguments

    @@ -182,7 +182,7 @@

    Arguments

    diff --git a/develop/proc/random_dist.html b/develop/proc/random_dist.html index 3c0742ead65..405385d65e3 100644 --- a/develop/proc/random_dist.html +++ b/develop/proc/random_dist.html @@ -79,15 +79,15 @@

    random_dist
  • - Source File + Source File
  • @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/random_dist~2.html b/develop/proc/random_dist~2.html index 6a70d246955..cde0e52f116 100644 --- a/develop/proc/random_dist~2.html +++ b/develop/proc/random_dist~2.html @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/random_dist~3.html b/develop/proc/random_dist~3.html index 86b22bfbef3..746e92f15d0 100644 --- a/develop/proc/random_dist~3.html +++ b/develop/proc/random_dist~3.html @@ -79,15 +79,15 @@

    random_dist
  • - Source File + Source File
  • @@ -158,7 +158,7 @@

    Arguments

    @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    diff --git a/develop/proc/rebin_distribution.html b/develop/proc/rebin_distribution.html index 6df400d5b18..865a5e13760 100644 --- a/develop/proc/rebin_distribution.html +++ b/develop/proc/rebin_distribution.html @@ -183,7 +183,7 @@

    Arguments

    @@ -199,7 +199,7 @@

    Arguments

    @@ -215,7 +215,7 @@

    Arguments

    @@ -230,7 +230,7 @@

    Arguments

    @@ -247,7 +247,7 @@

    Arguments

    @@ -264,7 +264,7 @@

    Arguments

    diff --git a/develop/proc/rebin_imaged_distribution.html b/develop/proc/rebin_imaged_distribution.html index e8660066999..fff71648973 100644 --- a/develop/proc/rebin_imaged_distribution.html +++ b/develop/proc/rebin_imaged_distribution.html @@ -181,7 +181,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    @@ -213,7 +213,7 @@

    Arguments

    @@ -245,7 +245,7 @@

    Arguments

    @@ -262,7 +262,7 @@

    Arguments

    @@ -279,7 +279,7 @@

    Arguments

    diff --git a/develop/proc/rec_sort_index.html b/develop/proc/rec_sort_index.html index 09bbba1a013..2605f56eef6 100644 --- a/develop/proc/rec_sort_index.html +++ b/develop/proc/rec_sort_index.html @@ -165,7 +165,7 @@

    Arguments

    @@ -180,7 +180,7 @@

    Arguments

    @@ -195,7 +195,7 @@

    Arguments

    @@ -210,7 +210,7 @@

    Arguments

    @@ -240,7 +240,7 @@

    Arguments

    @@ -255,7 +255,7 @@

    Arguments

    diff --git a/develop/proc/rec_split.html b/develop/proc/rec_split.html index c30ac425917..141da3f7780 100644 --- a/develop/proc/rec_split.html +++ b/develop/proc/rec_split.html @@ -173,7 +173,7 @@

    Arguments

    @@ -188,7 +188,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    diff --git a/develop/proc/redistribute_and_sum.html b/develop/proc/redistribute_and_sum.html index 82714908f02..8bea9e37a1a 100644 --- a/develop/proc/redistribute_and_sum.html +++ b/develop/proc/redistribute_and_sum.html @@ -152,7 +152,7 @@

    Arguments

    @@ -167,7 +167,7 @@

    Arguments

    @@ -197,7 +197,7 @@

    Arguments

    diff --git a/develop/proc/reimage_distribution.html b/develop/proc/reimage_distribution.html index f6e87300c60..4a7c03ade0d 100644 --- a/develop/proc/reimage_distribution.html +++ b/develop/proc/reimage_distribution.html @@ -184,7 +184,7 @@

    Arguments

    @@ -214,7 +214,7 @@

    Arguments

    @@ -230,7 +230,7 @@

    Arguments

    diff --git a/develop/proc/remap_layers3d.html b/develop/proc/remap_layers3d.html index df3c3747f0c..228dda680f0 100644 --- a/develop/proc/remap_layers3d.html +++ b/develop/proc/remap_layers3d.html @@ -204,7 +204,7 @@

    Arguments

    diff --git a/develop/proc/remap_local2global.html b/develop/proc/remap_local2global.html index 7bf9f9780b8..36c42dbaaeb 100644 --- a/develop/proc/remap_local2global.html +++ b/develop/proc/remap_local2global.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    diff --git a/develop/proc/reorder_arrays.html b/develop/proc/reorder_arrays.html index b91fc0e581c..b00363c91fe 100644 --- a/develop/proc/reorder_arrays.html +++ b/develop/proc/reorder_arrays.html @@ -183,7 +183,7 @@

    Arguments

    diff --git a/develop/proc/repl_dist.html b/develop/proc/repl_dist.html index 986a2cb92fc..3164125738c 100644 --- a/develop/proc/repl_dist.html +++ b/develop/proc/repl_dist.html @@ -154,7 +154,7 @@

    Arguments

    @@ -187,7 +187,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/repl_rowcols.html b/develop/proc/repl_rowcols.html index 5a3122cf413..b197ebe2522 100644 --- a/develop/proc/repl_rowcols.html +++ b/develop/proc/repl_rowcols.html @@ -154,7 +154,7 @@

    Arguments

    @@ -169,7 +169,7 @@

    Arguments

    diff --git a/develop/proc/reshape_mm_compatible.html b/develop/proc/reshape_mm_compatible.html index fee1ddf80c0..2e09970ca2a 100644 --- a/develop/proc/reshape_mm_compatible.html +++ b/develop/proc/reshape_mm_compatible.html @@ -74,20 +74,20 @@

    reshape_mm_compatible
  • 184 statements + title=" 0.3% of total for procedures.">164 statements
  • - Source File + Source File
  • @@ -133,13 +133,12 @@

    Contents

    -

    private subroutine reshape_mm_compatible(tensor1, tensor2, tensor1_out, tensor2_out, ind1_free, ind1_linked, ind2_free, ind2_linked, trans1, trans2, new1, new2, ref_tensor, nodata1, nodata2, move_data_1, move_data_2, optimize_dist, unit_nr) +

    private subroutine reshape_mm_compatible(matrix1_in, matrix2_in, matrix1_out, matrix2_out, new1, new2, trans1, trans2, optimize_dist, nsplit, opt_nsplit, split_rc_1, split_rc_2, nodata1, nodata2, move_data_1, move_data_2, comm_new, unit_nr)

    -

    Prepare tensor for contraction: redistribute to a 2d format which can be contracted by -matrix multiplication. This routine reshapes the two largest of the three tensors. Redistribution -is avoided if tensors already in a consistent layout.

    +

    Reshape either matrix1 or matrix2 to make sure that their process grids are compatible with +the same split factor.

    Arguments

    @@ -155,205 +154,203 @@

    Arguments

    - + - + - + - + - + - + - + - + - + - + - + - + - - + - + - - + - + - - + - + - + - + - + - + @@ -368,8 +365,8 @@

    Arguments

    @@ -384,13 +381,13 @@

    Arguments

    @@ -400,13 +397,13 @@

    Arguments

    @@ -416,28 +413,28 @@

    Arguments

    - + - + diff --git a/develop/proc/reshape_mm_compatible~2.html b/develop/proc/reshape_mm_compatible~2.html index e3c5a1ceb66..5244609d142 100644 --- a/develop/proc/reshape_mm_compatible~2.html +++ b/develop/proc/reshape_mm_compatible~2.html @@ -74,20 +74,20 @@

    reshape_mm_compatible
  • 164 statements + title=" 0.3% of total for procedures.">184 statements
  • - Source File + Source File
  • @@ -133,12 +133,13 @@

    Contents

    -

    private subroutine reshape_mm_compatible(matrix1_in, matrix2_in, matrix1_out, matrix2_out, new1, new2, trans1, trans2, optimize_dist, nsplit, opt_nsplit, split_rc_1, split_rc_2, nodata1, nodata2, move_data_1, move_data_2, comm_new, unit_nr) +

    private subroutine reshape_mm_compatible(tensor1, tensor2, tensor1_out, tensor2_out, ind1_free, ind1_linked, ind2_free, ind2_linked, trans1, trans2, new1, new2, ref_tensor, nodata1, nodata2, move_data_1, move_data_2, optimize_dist, unit_nr)

    -

    Reshape either matrix1 or matrix2 to make sure that their process grids are compatible with -the same split factor.

    +

    Prepare tensor for contraction: redistribute to a 2d format which can be contracted by +matrix multiplication. This routine reshapes the two largest of the three tensors. Redistribution +is avoided if tensors already in a consistent layout.

    Arguments

    @@ -154,203 +155,205 @@

    Arguments

    - + - + - + - + - + - + - + - + - + - + - + - + - - + - + - - + - + - - + - + - + - + - + - + @@ -365,8 +368,8 @@

    Arguments

    @@ -381,8 +384,8 @@

    Arguments

    @@ -397,8 +400,8 @@

    Arguments

    @@ -413,28 +416,28 @@

    Arguments

    - + - + diff --git a/develop/proc/reshape_mm_small.html b/develop/proc/reshape_mm_small.html index e7c12129936..c4db31eb405 100644 --- a/develop/proc/reshape_mm_small.html +++ b/develop/proc/reshape_mm_small.html @@ -74,20 +74,20 @@

    reshape_mm_small
  • 64 statements + title=" 0.1% of total for procedures.">46 statements
  • - Source File + Source File
  • @@ -133,12 +133,12 @@

    Contents

    -

    private subroutine reshape_mm_small(tensor_in, ind1, ind2, tensor_out, trans, new, nodata, move_data, unit_nr) +

    private subroutine reshape_mm_small(mp_comm, matrix_in, matrix_out, transposed, trans, nodata, move_data)

    -

    Prepare tensor for contraction: redistribute to a 2d format which can be contracted by -matrix multiplication. This routine reshapes the smallest of the three tensors.

    +

    Make sure that smallest matrix involved in a multiplication is not split and bring it to +the same process grid as the other 2 matrices.

    Arguments

    @@ -154,64 +154,62 @@

    Arguments

    - + - + - + - + - + - + - + - + @@ -219,34 +217,19 @@

    Arguments

    character(len=1), - + - - - - - - - - @@ -256,13 +239,13 @@

    Arguments

    @@ -272,23 +255,8 @@

    Arguments

    - - - - - - - - diff --git a/develop/proc/reshape_mm_small~2.html b/develop/proc/reshape_mm_small~2.html index c6e500210c1..da80f1ad824 100644 --- a/develop/proc/reshape_mm_small~2.html +++ b/develop/proc/reshape_mm_small~2.html @@ -74,20 +74,20 @@

    reshape_mm_small
  • 46 statements + title=" 0.1% of total for procedures.">64 statements
  • - Source File + Source File
  • @@ -133,12 +133,12 @@

    Contents

    -

    private subroutine reshape_mm_small(mp_comm, matrix_in, matrix_out, transposed, trans, nodata, move_data) +

    private subroutine reshape_mm_small(tensor_in, ind1, ind2, tensor_out, trans, new, nodata, move_data, unit_nr)

    -

    Make sure that smallest matrix involved in a multiplication is not split and bring it to -the same process grid as the other 2 matrices.

    +

    Prepare tensor for contraction: redistribute to a 2d format which can be contracted by +matrix multiplication. This routine reshapes the smallest of the three tensors.

    Arguments

    @@ -154,82 +154,99 @@

    Arguments

    - + - + - + - + - + - + - + - + - + + + + + + + + + @@ -239,13 +256,13 @@

    Arguments

    @@ -255,8 +272,23 @@

    Arguments

    + + + + + + + + diff --git a/develop/proc/reshape_mm_template.html b/develop/proc/reshape_mm_template.html index 03a57ffec92..6db3f14c72b 100644 --- a/develop/proc/reshape_mm_template.html +++ b/develop/proc/reshape_mm_template.html @@ -153,7 +153,7 @@

    Arguments

    @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -198,7 +198,7 @@

    Arguments

    @@ -228,7 +228,7 @@

    Arguments

    @@ -243,7 +243,7 @@

    Arguments

    diff --git a/develop/proc/rma_transfer.html b/develop/proc/rma_transfer.html index 34c8faa98e1..c671a3a66e2 100644 --- a/develop/proc/rma_transfer.html +++ b/develop/proc/rma_transfer.html @@ -173,7 +173,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    diff --git a/develop/proc/routine_name2id.html b/develop/proc/routine_name2id.html index 96aeb949521..958846ac587 100644 --- a/develop/proc/routine_name2id.html +++ b/develop/proc/routine_name2id.html @@ -161,7 +161,7 @@

    Arguments

    @@ -179,7 +179,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/set_conf_par_int.html b/develop/proc/set_conf_par_int.html index c25c3ba348a..2053181b99a 100644 --- a/develop/proc/set_conf_par_int.html +++ b/develop/proc/set_conf_par_int.html @@ -160,7 +160,7 @@

    Arguments

    diff --git a/develop/proc/set_conf_par_logical.html b/develop/proc/set_conf_par_logical.html index fd60891b629..d696dcfb5a9 100644 --- a/develop/proc/set_conf_par_logical.html +++ b/develop/proc/set_conf_par_logical.html @@ -160,7 +160,7 @@

    Arguments

    diff --git a/develop/proc/set_conf_par_mm_driver.html b/develop/proc/set_conf_par_mm_driver.html index 0dcf3614962..a888f641ab0 100644 --- a/develop/proc/set_conf_par_mm_driver.html +++ b/develop/proc/set_conf_par_mm_driver.html @@ -160,7 +160,7 @@

    Arguments

    diff --git a/develop/proc/set_conf_par_real.html b/develop/proc/set_conf_par_real.html index 37644889d34..418c520c970 100644 --- a/develop/proc/set_conf_par_real.html +++ b/develop/proc/set_conf_par_real.html @@ -160,7 +160,7 @@

    Arguments

    diff --git a/develop/proc/set_data_area_area.html b/develop/proc/set_data_area_area.html index b20f47ef9dc..a1760fe24a2 100644 --- a/develop/proc/set_data_area_area.html +++ b/develop/proc/set_data_area_area.html @@ -161,7 +161,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    diff --git a/develop/proc/set_data_p_2d_c.html b/develop/proc/set_data_p_2d_c.html index 04bd5b37682..2ca37f5e636 100644 --- a/develop/proc/set_data_p_2d_c.html +++ b/develop/proc/set_data_p_2d_c.html @@ -162,7 +162,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    diff --git a/develop/proc/set_data_p_2d_d.html b/develop/proc/set_data_p_2d_d.html index 8eed9542e22..edd892a3203 100644 --- a/develop/proc/set_data_p_2d_d.html +++ b/develop/proc/set_data_p_2d_d.html @@ -162,7 +162,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    diff --git a/develop/proc/set_data_p_2d_s.html b/develop/proc/set_data_p_2d_s.html index 8b1f44df670..34647597416 100644 --- a/develop/proc/set_data_p_2d_s.html +++ b/develop/proc/set_data_p_2d_s.html @@ -162,7 +162,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    diff --git a/develop/proc/set_data_p_2d_z.html b/develop/proc/set_data_p_2d_z.html index 6339eb8ce6a..1055e706e87 100644 --- a/develop/proc/set_data_p_2d_z.html +++ b/develop/proc/set_data_p_2d_z.html @@ -162,7 +162,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    diff --git a/develop/proc/set_data_p_c.html b/develop/proc/set_data_p_c.html index d0a10299e6d..6e604cabb91 100644 --- a/develop/proc/set_data_p_c.html +++ b/develop/proc/set_data_p_c.html @@ -162,7 +162,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    diff --git a/develop/proc/set_data_p_d.html b/develop/proc/set_data_p_d.html index 4e5953f8816..d38b8cc8e31 100644 --- a/develop/proc/set_data_p_d.html +++ b/develop/proc/set_data_p_d.html @@ -162,7 +162,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    diff --git a/develop/proc/set_data_p_s.html b/develop/proc/set_data_p_s.html index d4c2ea9863f..d5af15e2fc6 100644 --- a/develop/proc/set_data_p_s.html +++ b/develop/proc/set_data_p_s.html @@ -162,7 +162,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    diff --git a/develop/proc/set_data_p_z.html b/develop/proc/set_data_p_z.html index ff218a439b6..199857a0ebb 100644 --- a/develop/proc/set_data_p_z.html +++ b/develop/proc/set_data_p_z.html @@ -162,7 +162,7 @@

    Arguments

    @@ -177,7 +177,7 @@

    Arguments

    diff --git a/develop/proc/set_hashed_i4tuple_callstat.html b/develop/proc/set_hashed_i4tuple_callstat.html index 5a4e808b12f..00db2b51639 100644 --- a/develop/proc/set_hashed_i4tuple_callstat.html +++ b/develop/proc/set_hashed_i4tuple_callstat.html @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/set_hashed_str_i4.html b/develop/proc/set_hashed_str_i4.html index 2e63b38f30c..aa704827054 100644 --- a/develop/proc/set_hashed_str_i4.html +++ b/develop/proc/set_hashed_str_i4.html @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/set_larnv_seed.html b/develop/proc/set_larnv_seed.html index f60b0037390..1d6b89e5861 100644 --- a/develop/proc/set_larnv_seed.html +++ b/develop/proc/set_larnv_seed.html @@ -163,7 +163,7 @@

    Arguments

    @@ -182,7 +182,7 @@

    Arguments

    @@ -201,7 +201,7 @@

    Arguments

    @@ -220,7 +220,7 @@

    Arguments

    @@ -258,7 +258,7 @@

    Arguments

    diff --git a/develop/proc/setup_buffer_matrices.html b/develop/proc/setup_buffer_matrices.html index e47d377670e..be26db96337 100644 --- a/develop/proc/setup_buffer_matrices.html +++ b/develop/proc/setup_buffer_matrices.html @@ -233,7 +233,7 @@

    Arguments

    diff --git a/develop/proc/setup_buffer_matrix.html b/develop/proc/setup_buffer_matrix.html index 5acd4522a84..6e4818a3a9a 100644 --- a/develop/proc/setup_buffer_matrix.html +++ b/develop/proc/setup_buffer_matrix.html @@ -158,7 +158,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    @@ -233,7 +233,7 @@

    Arguments

    diff --git a/develop/proc/setup_buffer_matrix_image.html b/develop/proc/setup_buffer_matrix_image.html index bfd956f8e1b..2cb0d0461c8 100644 --- a/develop/proc/setup_buffer_matrix_image.html +++ b/develop/proc/setup_buffer_matrix_image.html @@ -158,7 +158,7 @@

    Arguments

    @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/setup_buffers.html b/develop/proc/setup_buffers.html index edf987655b8..9e5b15d6b1e 100644 --- a/develop/proc/setup_buffers.html +++ b/develop/proc/setup_buffers.html @@ -188,7 +188,7 @@

    Arguments

    @@ -218,7 +218,7 @@

    Arguments

    @@ -248,7 +248,7 @@

    Arguments

    diff --git a/develop/proc/setup_rec_index_2d.html b/develop/proc/setup_rec_index_2d.html index 70f561b571d..4c2fcef3d0b 100644 --- a/develop/proc/setup_rec_index_2d.html +++ b/develop/proc/setup_rec_index_2d.html @@ -173,7 +173,7 @@

    Arguments

    diff --git a/develop/proc/setup_rec_index_images.html b/develop/proc/setup_rec_index_images.html index 21cfa77e65d..f5002d92c39 100644 --- a/develop/proc/setup_rec_index_images.html +++ b/develop/proc/setup_rec_index_images.html @@ -248,7 +248,7 @@

    Arguments

    diff --git a/develop/proc/sgn.html b/develop/proc/sgn.html index 7d8587ac5fb..59dd6377e5c 100644 --- a/develop/proc/sgn.html +++ b/develop/proc/sgn.html @@ -158,7 +158,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/sizes_2d.html b/develop/proc/sizes_2d.html index a44d1fbb659..2aae2ab9ee7 100644 --- a/develop/proc/sizes_2d.html +++ b/develop/proc/sizes_2d.html @@ -168,7 +168,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    diff --git a/develop/proc/sizes_of_arrays.html b/develop/proc/sizes_of_arrays.html index 3c0dc85d47c..589dfce8a6a 100644 --- a/develop/proc/sizes_of_arrays.html +++ b/develop/proc/sizes_of_arrays.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/smm_process_mm_stack_c.html b/develop/proc/smm_process_mm_stack_c.html index ccd6a02b930..cd541814a97 100644 --- a/develop/proc/smm_process_mm_stack_c.html +++ b/develop/proc/smm_process_mm_stack_c.html @@ -159,7 +159,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -220,7 +220,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    diff --git a/develop/proc/smm_process_mm_stack_d.html b/develop/proc/smm_process_mm_stack_d.html index fd059133337..46cf7729c47 100644 --- a/develop/proc/smm_process_mm_stack_d.html +++ b/develop/proc/smm_process_mm_stack_d.html @@ -159,7 +159,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -220,7 +220,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    diff --git a/develop/proc/smm_process_mm_stack_s.html b/develop/proc/smm_process_mm_stack_s.html index d8cf54ecbf9..9a98def3c21 100644 --- a/develop/proc/smm_process_mm_stack_s.html +++ b/develop/proc/smm_process_mm_stack_s.html @@ -159,7 +159,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -220,7 +220,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    diff --git a/develop/proc/smm_process_mm_stack_z.html b/develop/proc/smm_process_mm_stack_z.html index 56095896561..941fd4b4f04 100644 --- a/develop/proc/smm_process_mm_stack_z.html +++ b/develop/proc/smm_process_mm_stack_z.html @@ -159,7 +159,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -220,7 +220,7 @@

    Arguments

    @@ -236,7 +236,7 @@

    Arguments

    diff --git a/develop/proc/sparse_multrec.html b/develop/proc/sparse_multrec.html index fbe7fcd4ae4..43353ec1f98 100644 --- a/develop/proc/sparse_multrec.html +++ b/develop/proc/sparse_multrec.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -219,7 +219,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    @@ -249,7 +249,7 @@

    Arguments

    @@ -384,7 +384,7 @@

    Arguments

    diff --git a/develop/proc/split_factor_estimate.html b/develop/proc/split_factor_estimate.html index 0d73f46a5e5..72e83be7d15 100644 --- a/develop/proc/split_factor_estimate.html +++ b/develop/proc/split_factor_estimate.html @@ -157,7 +157,7 @@

    Arguments

    @@ -223,7 +223,7 @@

    Arguments

    @@ -241,7 +241,7 @@

    Arguments

    Return Value - + integer

    diff --git a/develop/proc/split_pgrid_index.html b/develop/proc/split_pgrid_index.html index baf54013778..6882c5c4a12 100644 --- a/develop/proc/split_pgrid_index.html +++ b/develop/proc/split_pgrid_index.html @@ -168,7 +168,7 @@

    Arguments

    diff --git a/develop/proc/split_tensor_index.html b/develop/proc/split_tensor_index.html index a32d5bc120e..dd41d850524 100644 --- a/develop/proc/split_tensor_index.html +++ b/develop/proc/split_tensor_index.html @@ -168,7 +168,7 @@

    Arguments

    diff --git a/develop/proc/stack_binning.html b/develop/proc/stack_binning.html index 8594af1d65b..22979a5871e 100644 --- a/develop/proc/stack_binning.html +++ b/develop/proc/stack_binning.html @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/stack_sort.html b/develop/proc/stack_sort.html index d47ccf006b8..0887cb0cc57 100644 --- a/develop/proc/stack_sort.html +++ b/develop/proc/stack_sort.html @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/stats_add.html b/develop/proc/stats_add.html index 3d1e9cf49bd..c11b6a4cc05 100644 --- a/develop/proc/stats_add.html +++ b/develop/proc/stats_add.html @@ -174,7 +174,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    @@ -204,7 +204,7 @@

    Arguments

    @@ -309,7 +309,7 @@

    Arguments

    diff --git a/develop/proc/stats_collect_from_ranks.html b/develop/proc/stats_collect_from_ranks.html index 1dac704bcd0..fdcb0ea4044 100644 --- a/develop/proc/stats_collect_from_ranks.html +++ b/develop/proc/stats_collect_from_ranks.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/stats_print_report.html b/develop/proc/stats_print_report.html index 335c725e441..a8cef80dbc9 100644 --- a/develop/proc/stats_print_report.html +++ b/develop/proc/stats_print_report.html @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/str2int.html b/develop/proc/str2int.html index bab518a0503..0bda07fbcf0 100644 --- a/develop/proc/str2int.html +++ b/develop/proc/str2int.html @@ -159,7 +159,7 @@

    Arguments

    @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/stream_array_force_size.html b/develop/proc/stream_array_force_size.html index 63c62335a39..d75c0673c4f 100644 --- a/develop/proc/stream_array_force_size.html +++ b/develop/proc/stream_array_force_size.html @@ -189,7 +189,7 @@

    Arguments

    diff --git a/develop/proc/sum_of_arrays.html b/develop/proc/sum_of_arrays.html index a91306c1ecd..4eddf734d95 100644 --- a/develop/proc/sum_of_arrays.html +++ b/develop/proc/sum_of_arrays.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/swap_i.html b/develop/proc/swap_i.html index 8aade8c3f9a..46eacab3659 100644 --- a/develop/proc/swap_i.html +++ b/develop/proc/swap_i.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/swap_i8.html b/develop/proc/swap_i8.html index 08cfee19712..c41aa674b72 100644 --- a/develop/proc/swap_i8.html +++ b/develop/proc/swap_i8.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/symmetry_consistent.html b/develop/proc/symmetry_consistent.html index aaa52a039c8..70b139488db 100644 --- a/develop/proc/symmetry_consistent.html +++ b/develop/proc/symmetry_consistent.html @@ -160,7 +160,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    diff --git a/develop/proc/tas_blk_size_t.html b/develop/proc/tas_blk_size_t.html index 6ccb145a147..57fcd5b0b9d 100644 --- a/develop/proc/tas_blk_size_t.html +++ b/develop/proc/tas_blk_size_t.html @@ -154,7 +154,7 @@

    Arguments

    diff --git a/develop/proc/tas_dist_t.html b/develop/proc/tas_dist_t.html index 0c18b484181..83ead88e1c2 100644 --- a/develop/proc/tas_dist_t.html +++ b/develop/proc/tas_dist_t.html @@ -154,7 +154,7 @@

    Arguments

    diff --git a/develop/proc/tas_rowcols_t.html b/develop/proc/tas_rowcols_t.html index 3e45a638bc2..998f2218318 100644 --- a/develop/proc/tas_rowcols_t.html +++ b/develop/proc/tas_rowcols_t.html @@ -154,7 +154,7 @@

    Arguments

    @@ -169,7 +169,7 @@

    Arguments

    diff --git a/develop/proc/test_binary_io.html b/develop/proc/test_binary_io.html index 00c43dc169f..dec5684d143 100644 --- a/develop/proc/test_binary_io.html +++ b/develop/proc/test_binary_io.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/test_multiplies_multiproc.html b/develop/proc/test_multiplies_multiproc.html index 3ba4e68dbba..0d71d34f1d6 100644 --- a/develop/proc/test_multiplies_multiproc.html +++ b/develop/proc/test_multiplies_multiproc.html @@ -175,7 +175,7 @@

    Arguments

    @@ -192,7 +192,7 @@

    Arguments

    @@ -209,7 +209,7 @@

    Arguments

    @@ -226,7 +226,7 @@

    Arguments

    @@ -241,7 +241,7 @@

    Arguments

    @@ -256,7 +256,7 @@

    Arguments

    @@ -271,7 +271,7 @@

    Arguments

    @@ -286,7 +286,7 @@

    Arguments

    @@ -301,7 +301,7 @@

    Arguments

    @@ -316,7 +316,7 @@

    Arguments

    @@ -331,7 +331,7 @@

    Arguments

    @@ -346,7 +346,7 @@

    Arguments

    @@ -361,7 +361,7 @@

    Arguments

    diff --git a/develop/proc/test_scale_by_vector.html b/develop/proc/test_scale_by_vector.html index 9e5ee6c7962..871bf2d49de 100644 --- a/develop/proc/test_scale_by_vector.html +++ b/develop/proc/test_scale_by_vector.html @@ -153,7 +153,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    @@ -231,7 +231,7 @@

    Arguments

    Return Value - + logical

    diff --git a/develop/proc/timer_env_create.html b/develop/proc/timer_env_create.html index 63ab95f3d95..f8432895aa5 100644 --- a/develop/proc/timer_env_create.html +++ b/develop/proc/timer_env_create.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/timer_env_release.html b/develop/proc/timer_env_release.html index 201f39e2902..b675dd4c4eb 100644 --- a/develop/proc/timer_env_release.html +++ b/develop/proc/timer_env_release.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/timer_env_retain.html b/develop/proc/timer_env_retain.html index 0315862fef5..990216c1ddc 100644 --- a/develop/proc/timer_env_retain.html +++ b/develop/proc/timer_env_retain.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/timeset.html b/develop/proc/timeset.html index 636200f6c6e..32213494948 100644 --- a/develop/proc/timeset.html +++ b/develop/proc/timeset.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/timeset_handler.html b/develop/proc/timeset_handler.html index 85c3dc14e7f..444bce0c62a 100644 --- a/develop/proc/timeset_handler.html +++ b/develop/proc/timeset_handler.html @@ -159,7 +159,7 @@

    Arguments

    @@ -174,7 +174,7 @@

    Arguments

    diff --git a/develop/proc/timestop.html b/develop/proc/timestop.html index 501fbc34df5..b225c568cad 100644 --- a/develop/proc/timestop.html +++ b/develop/proc/timestop.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/timestop_handler.html b/develop/proc/timestop_handler.html index 18b30cfbe90..4c95f6ecdf3 100644 --- a/develop/proc/timestop_handler.html +++ b/develop/proc/timestop_handler.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/timings_report_callgraph.html b/develop/proc/timings_report_callgraph.html index 81c0a37f7ee..0222c728fe1 100644 --- a/develop/proc/timings_report_callgraph.html +++ b/develop/proc/timings_report_callgraph.html @@ -160,7 +160,7 @@

    Arguments

    diff --git a/develop/proc/timings_report_print.html b/develop/proc/timings_report_print.html index 99fa449cd87..16bf0f8c689 100644 --- a/develop/proc/timings_report_print.html +++ b/develop/proc/timings_report_print.html @@ -159,7 +159,7 @@

    Arguments

    @@ -234,7 +234,7 @@

    Arguments

    diff --git a/develop/proc/timings_setup_tracing.html b/develop/proc/timings_setup_tracing.html index a6103b07b58..9bcad394dd4 100644 --- a/develop/proc/timings_setup_tracing.html +++ b/develop/proc/timings_setup_tracing.html @@ -159,7 +159,7 @@

    Arguments

    @@ -175,7 +175,7 @@

    Arguments

    @@ -191,7 +191,7 @@

    Arguments

    @@ -206,7 +206,7 @@

    Arguments

    diff --git a/develop/proc/transpose_index_local.html b/develop/proc/transpose_index_local.html index 87ca25448ee..00e6b844d8c 100644 --- a/develop/proc/transpose_index_local.html +++ b/develop/proc/transpose_index_local.html @@ -239,7 +239,7 @@

    Arguments

    diff --git a/develop/proc/update_contraction_storage.html b/develop/proc/update_contraction_storage.html index 85a6fadd257..f853fefc721 100644 --- a/develop/proc/update_contraction_storage.html +++ b/develop/proc/update_contraction_storage.html @@ -169,7 +169,7 @@

    Arguments

    @@ -184,7 +184,7 @@

    Arguments

    diff --git a/develop/proc/update_row_info.html b/develop/proc/update_row_info.html index 796332c2c9b..5f0ca94346b 100644 --- a/develop/proc/update_row_info.html +++ b/develop/proc/update_row_info.html @@ -163,7 +163,7 @@

    Arguments

    diff --git a/develop/proc/uppercase.html b/develop/proc/uppercase.html index 9bf75476370..e4ebd966413 100644 --- a/develop/proc/uppercase.html +++ b/develop/proc/uppercase.html @@ -159,7 +159,7 @@

    Arguments

    diff --git a/develop/proc/v_to_p_i_dist.html b/develop/proc/v_to_p_i_dist.html index f57e0d33187..dab39f409ab 100644 --- a/develop/proc/v_to_p_i_dist.html +++ b/develop/proc/v_to_p_i_dist.html @@ -219,7 +219,7 @@

    Arguments

    diff --git a/develop/proc/v_to_p_i_dist_o.html b/develop/proc/v_to_p_i_dist_o.html index 27b03dda3de..f50c603ced0 100644 --- a/develop/proc/v_to_p_i_dist_o.html +++ b/develop/proc/v_to_p_i_dist_o.html @@ -203,7 +203,7 @@

    Arguments

    diff --git a/develop/proc/win_setup.html b/develop/proc/win_setup.html index 8126400fb7a..1f3582f01c7 100644 --- a/develop/proc/win_setup.html +++ b/develop/proc/win_setup.html @@ -158,7 +158,7 @@

    Arguments

    diff --git a/develop/proc/within_limits.html b/develop/proc/within_limits.html index ba69f0f8111..97ab0a4164e 100644 --- a/develop/proc/within_limits.html +++ b/develop/proc/within_limits.html @@ -160,7 +160,7 @@

    Arguments

    @@ -176,7 +176,7 @@

    Arguments

    diff --git a/develop/proc/world_to_group_proc_map.html b/develop/proc/world_to_group_proc_map.html index dac8d4a447c..4a30fb39d6f 100644 --- a/develop/proc/world_to_group_proc_map.html +++ b/develop/proc/world_to_group_proc_map.html @@ -153,7 +153,7 @@

    Arguments

    @@ -183,7 +183,7 @@

    Arguments

    diff --git a/develop/proc/write_1d_data_obj.html b/develop/proc/write_1d_data_obj.html index 66ff550a21b..7b8c846c5b3 100644 --- a/develop/proc/write_1d_data_obj.html +++ b/develop/proc/write_1d_data_obj.html @@ -152,7 +152,7 @@

    Arguments

    diff --git a/develop/proc/write_matrix_dense.html b/develop/proc/write_matrix_dense.html index 17ee6cffb5e..da58d9081c0 100644 --- a/develop/proc/write_matrix_dense.html +++ b/develop/proc/write_matrix_dense.html @@ -152,7 +152,7 @@

    Arguments

    @@ -167,7 +167,7 @@

    Arguments

    diff --git a/develop/program/dbcsr_example_1.html b/develop/program/dbcsr_example_1.html index c6e39883d42..912899f3deb 100644 --- a/develop/program/dbcsr_example_1.html +++ b/develop/program/dbcsr_example_1.html @@ -112,20 +112,20 @@

    Variables

    @@ -147,7 +147,7 @@

    Subroutines

    @@ -178,8 +178,8 @@

    Uses

    @@ -204,7 +204,7 @@

    Variables

    @@ -475,7 +475,7 @@

    Arguments

    @@ -490,7 +490,7 @@

    Arguments

    diff --git a/develop/program/dbcsr_example_2.html b/develop/program/dbcsr_example_2.html index 751a1c24c93..2ebdebc1337 100644 --- a/develop/program/dbcsr_example_2.html +++ b/develop/program/dbcsr_example_2.html @@ -112,29 +112,29 @@

    Variables

    @@ -188,8 +188,8 @@

    Uses

    @@ -214,7 +214,7 @@

    Variables

    @@ -645,7 +645,7 @@

    Arguments

    diff --git a/develop/program/dbcsr_example_3.html b/develop/program/dbcsr_example_3.html index 1a800aa2a0b..1faf67fa224 100644 --- a/develop/program/dbcsr_example_3.html +++ b/develop/program/dbcsr_example_3.html @@ -112,32 +112,32 @@

    Variables

    @@ -159,7 +159,7 @@

    Subroutines

    @@ -190,8 +190,8 @@

    Uses

    @@ -216,7 +216,7 @@

    Variables

    @@ -679,7 +679,7 @@

    Arguments

    @@ -694,7 +694,7 @@

    Arguments

    diff --git a/develop/program/dbcsr_performance_driver.html b/develop/program/dbcsr_performance_driver.html index 19ce40b0cfa..f662fe3945f 100644 --- a/develop/program/dbcsr_performance_driver.html +++ b/develop/program/dbcsr_performance_driver.html @@ -112,21 +112,21 @@

    Variables

    @@ -179,17 +179,17 @@

    Uses

    @@ -213,7 +213,7 @@

    Variables

    @@ -2347,7 +2347,7 @@

    Arguments

    @@ -2413,7 +2413,7 @@

    Arguments

    @@ -2428,7 +2428,7 @@

    Arguments

    @@ -2468,7 +2468,7 @@

    Arguments

    diff --git a/develop/program/dbcsr_tensor_unittest.html b/develop/program/dbcsr_tensor_unittest.html index 579486cc4c2..57d14a8444e 100644 --- a/develop/program/dbcsr_tensor_unittest.html +++ b/develop/program/dbcsr_tensor_unittest.html @@ -112,11 +112,11 @@

    Variables

    @@ -227,14 +227,14 @@

    Uses

    @@ -258,7 +258,7 @@

    Variables

    @@ -719,7 +719,7 @@

    Arguments

    @@ -734,7 +734,7 @@

    Arguments

    @@ -749,7 +749,7 @@

    Arguments

    @@ -789,7 +789,7 @@

    Arguments

    @@ -804,7 +804,7 @@

    Arguments

    @@ -819,7 +819,7 @@

    Arguments

    @@ -834,7 +834,7 @@

    Arguments

    @@ -849,7 +849,7 @@

    Arguments

    @@ -864,7 +864,7 @@

    Arguments

    @@ -879,7 +879,7 @@

    Arguments

    diff --git a/develop/program/dbcsr_unittest.html b/develop/program/dbcsr_unittest.html index 321bf1a0db5..d6e9944e98c 100644 --- a/develop/program/dbcsr_unittest.html +++ b/develop/program/dbcsr_unittest.html @@ -112,20 +112,20 @@

    Variables

    @@ -167,16 +167,16 @@

    Uses

    @@ -200,7 +200,7 @@

    Variables

    diff --git a/develop/type/acc_stream_type.html b/develop/type/acc_stream_type.html index 0c670429226..fd1f917052a 100644 --- a/develop/type/acc_stream_type.html +++ b/develop/type/acc_stream_type.html @@ -114,7 +114,7 @@

    Variables

    - dummy + dummy
    @@ -169,7 +169,7 @@

    Components

    diff --git a/develop/type/array_i1d_obj.html b/develop/type/array_i1d_obj.html index 558917dfc5b..91d2e2094d3 100644 --- a/develop/type/array_i1d_obj.html +++ b/develop/type/array_i1d_obj.html @@ -114,7 +114,7 @@

    Variables

    - low + low
    @@ -169,7 +169,7 @@

    Components

    diff --git a/develop/type/array_i1d_type.html b/develop/type/array_i1d_type.html index fbca3a6777d..b8d271e75d5 100644 --- a/develop/type/array_i1d_type.html +++ b/develop/type/array_i1d_type.html @@ -114,7 +114,7 @@

    Variables

    @@ -170,7 +170,7 @@

    Components

    diff --git a/develop/type/array_list.html b/develop/type/array_list.html index ad9c564d2e8..a2ea9c68134 100644 --- a/develop/type/array_list.html +++ b/develop/type/array_list.html @@ -115,7 +115,7 @@

    Variables

    @@ -181,7 +181,7 @@

    Components

    diff --git a/develop/type/block_buffer_type.html b/develop/type/block_buffer_type.html index 2c8ac70b45d..3ef9adf0c6c 100644 --- a/develop/type/block_buffer_type.html +++ b/develop/type/block_buffer_type.html @@ -114,13 +114,13 @@

    Variables

    @@ -170,7 +170,7 @@

    Components

    @@ -272,7 +272,7 @@

    Components

    diff --git a/develop/type/block_buffer_type~2.html b/develop/type/block_buffer_type~2.html index a89912653fa..84dd377a6d8 100644 --- a/develop/type/block_buffer_type~2.html +++ b/develop/type/block_buffer_type~2.html @@ -115,13 +115,13 @@

    Variables

    @@ -188,7 +188,7 @@

    Components

    @@ -290,7 +290,7 @@

    Components

    diff --git a/develop/type/block_nd.html b/develop/type/block_nd.html index e350e5652ce..76496160ca4 100644 --- a/develop/type/block_nd.html +++ b/develop/type/block_nd.html @@ -114,11 +114,11 @@

    Variables

    @@ -167,7 +167,7 @@

    Components

    @@ -184,7 +184,7 @@

    Components

    @@ -201,7 +201,7 @@

    Components

    @@ -218,7 +218,7 @@

    Components

    @@ -235,7 +235,7 @@

    Components

    diff --git a/develop/type/block_nd_c_dp.html b/develop/type/block_nd_c_dp.html index d0f334c3b1d..ebcbc8a482f 100644 --- a/develop/type/block_nd_c_dp.html +++ b/develop/type/block_nd_c_dp.html @@ -114,8 +114,8 @@

    Variables

    - sizes - blk + sizes + blk
    @@ -164,7 +164,7 @@

    Components

    @@ -181,7 +181,7 @@

    Components

    diff --git a/develop/type/block_nd_c_sp.html b/develop/type/block_nd_c_sp.html index 20c2082181c..59bf28f4b8d 100644 --- a/develop/type/block_nd_c_sp.html +++ b/develop/type/block_nd_c_sp.html @@ -114,8 +114,8 @@

    Variables

    - sizes - blk + sizes + blk
    @@ -164,7 +164,7 @@

    Components

    @@ -181,7 +181,7 @@

    Components

    diff --git a/develop/type/block_nd_r_dp.html b/develop/type/block_nd_r_dp.html index 9c59d7d114b..e707a64c0af 100644 --- a/develop/type/block_nd_r_dp.html +++ b/develop/type/block_nd_r_dp.html @@ -114,8 +114,8 @@

    Variables

    - sizes - blk + sizes + blk
    @@ -164,7 +164,7 @@

    Components

    @@ -181,7 +181,7 @@

    Components

    diff --git a/develop/type/block_nd_r_sp.html b/develop/type/block_nd_r_sp.html index d4b0b3dabac..2e428cdb92e 100644 --- a/develop/type/block_nd_r_sp.html +++ b/develop/type/block_nd_r_sp.html @@ -114,8 +114,8 @@

    Variables

    - sizes - blk + sizes + blk
    @@ -164,7 +164,7 @@

    Components

    @@ -181,7 +181,7 @@

    Components

    diff --git a/develop/type/block_parameters.html b/develop/type/block_parameters.html index 76874b1b49c..4ed9e5e6ccf 100644 --- a/develop/type/block_parameters.html +++ b/develop/type/block_parameters.html @@ -114,11 +114,11 @@

    Variables

    @@ -173,7 +173,7 @@

    Components

    @@ -190,7 +190,7 @@

    Components

    @@ -207,7 +207,7 @@

    Components

    @@ -224,7 +224,7 @@

    Components

    @@ -241,7 +241,7 @@

    Components

    diff --git a/develop/type/block_parameters~2.html b/develop/type/block_parameters~2.html index f8c36bcbb2a..fbb27c75e15 100644 --- a/develop/type/block_parameters~2.html +++ b/develop/type/block_parameters~2.html @@ -114,11 +114,11 @@

    Variables

    @@ -173,7 +173,7 @@

    Components

    @@ -190,7 +190,7 @@

    Components

    @@ -207,7 +207,7 @@

    Components

    @@ -224,7 +224,7 @@

    Components

    @@ -241,7 +241,7 @@

    Components

    diff --git a/develop/type/btree_data_cp2d.html b/develop/type/btree_data_cp2d.html index 84b3ec0ff6a..074c5e96620 100644 --- a/develop/type/btree_data_cp2d.html +++ b/develop/type/btree_data_cp2d.html @@ -114,8 +114,8 @@

    Variables

    - p - tr + p + tr
    @@ -170,7 +170,7 @@

    Components

    @@ -187,7 +187,7 @@

    Components

    diff --git a/develop/type/btree_data_dp2d.html b/develop/type/btree_data_dp2d.html index 036b27825fe..d6411f9240d 100644 --- a/develop/type/btree_data_dp2d.html +++ b/develop/type/btree_data_dp2d.html @@ -114,8 +114,8 @@

    Variables

    - p - tr + p + tr
    @@ -170,7 +170,7 @@

    Components

    @@ -187,7 +187,7 @@

    Components

    diff --git a/develop/type/btree_data_sp2d.html b/develop/type/btree_data_sp2d.html index 8b04a4268f6..4cafdbf8d72 100644 --- a/develop/type/btree_data_sp2d.html +++ b/develop/type/btree_data_sp2d.html @@ -114,8 +114,8 @@

    Variables

    - p - tr + p + tr
    @@ -170,7 +170,7 @@

    Components

    @@ -187,7 +187,7 @@

    Components

    diff --git a/develop/type/btree_data_zp2d.html b/develop/type/btree_data_zp2d.html index d7353e08b7a..6c9ec920b6c 100644 --- a/develop/type/btree_data_zp2d.html +++ b/develop/type/btree_data_zp2d.html @@ -114,8 +114,8 @@

    Variables

    - p - tr + p + tr
    @@ -170,7 +170,7 @@

    Components

    @@ -187,7 +187,7 @@

    Components

    diff --git a/develop/type/btree_i8_cp2d.html b/develop/type/btree_i8_cp2d.html index 8225eec0025..3e0951985dd 100644 --- a/develop/type/btree_i8_cp2d.html +++ b/develop/type/btree_i8_cp2d.html @@ -114,7 +114,7 @@

    Variables

    - b + b
    @@ -169,7 +169,7 @@

    Components

    diff --git a/develop/type/btree_i8_dp2d.html b/develop/type/btree_i8_dp2d.html index f95cfa265d2..372e488ab4e 100644 --- a/develop/type/btree_i8_dp2d.html +++ b/develop/type/btree_i8_dp2d.html @@ -114,7 +114,7 @@

    Variables

    - b + b
    @@ -169,7 +169,7 @@

    Components

    diff --git a/develop/type/btree_i8_sp2d.html b/develop/type/btree_i8_sp2d.html index 36283e94e01..80fea8e9866 100644 --- a/develop/type/btree_i8_sp2d.html +++ b/develop/type/btree_i8_sp2d.html @@ -114,7 +114,7 @@

    Variables

    - b + b
    @@ -169,7 +169,7 @@

    Components

    diff --git a/develop/type/btree_i8_zp2d.html b/develop/type/btree_i8_zp2d.html index 88a44517fc8..a57d95b1454 100644 --- a/develop/type/btree_i8_zp2d.html +++ b/develop/type/btree_i8_zp2d.html @@ -114,7 +114,7 @@

    Variables

    - b + b
    @@ -169,7 +169,7 @@

    Components

    diff --git a/develop/type/btree_node_i8_cp2d.html b/develop/type/btree_node_i8_cp2d.html index a4477f8dd85..10a56b301c9 100644 --- a/develop/type/btree_node_i8_cp2d.html +++ b/develop/type/btree_node_i8_cp2d.html @@ -114,10 +114,10 @@

    Variables

    @@ -174,7 +174,7 @@

    Components

    @@ -208,7 +208,7 @@

    Components

    @@ -225,7 +225,7 @@

    Components

    diff --git a/develop/type/btree_node_i8_dp2d.html b/develop/type/btree_node_i8_dp2d.html index 415336e0946..bac814ee88c 100644 --- a/develop/type/btree_node_i8_dp2d.html +++ b/develop/type/btree_node_i8_dp2d.html @@ -114,10 +114,10 @@

    Variables

    @@ -174,7 +174,7 @@

    Components

    @@ -208,7 +208,7 @@

    Components

    @@ -225,7 +225,7 @@

    Components

    diff --git a/develop/type/btree_node_i8_sp2d.html b/develop/type/btree_node_i8_sp2d.html index 4c0e97be0af..64d16fd871d 100644 --- a/develop/type/btree_node_i8_sp2d.html +++ b/develop/type/btree_node_i8_sp2d.html @@ -114,10 +114,10 @@

    Variables

    @@ -174,7 +174,7 @@

    Components

    @@ -208,7 +208,7 @@

    Components

    @@ -225,7 +225,7 @@

    Components

    diff --git a/develop/type/btree_node_i8_zp2d.html b/develop/type/btree_node_i8_zp2d.html index f25219b9623..064a6b6d3cf 100644 --- a/develop/type/btree_node_i8_zp2d.html +++ b/develop/type/btree_node_i8_zp2d.html @@ -114,10 +114,10 @@

    Variables

    @@ -174,7 +174,7 @@

    Components

    @@ -208,7 +208,7 @@

    Components

    @@ -225,7 +225,7 @@

    Components

    diff --git a/develop/type/btree_node_p_i8_cp2d.html b/develop/type/btree_node_p_i8_cp2d.html index 0e05e0236cb..f124bfd0204 100644 --- a/develop/type/btree_node_p_i8_cp2d.html +++ b/develop/type/btree_node_p_i8_cp2d.html @@ -114,7 +114,7 @@

    Variables

    - node + node
    @@ -169,7 +169,7 @@

    Components

    diff --git a/develop/type/btree_node_p_i8_dp2d.html b/develop/type/btree_node_p_i8_dp2d.html index 1d61bc6056b..4a3f37c03f6 100644 --- a/develop/type/btree_node_p_i8_dp2d.html +++ b/develop/type/btree_node_p_i8_dp2d.html @@ -114,7 +114,7 @@

    Variables

    - node + node
    @@ -169,7 +169,7 @@

    Components

    diff --git a/develop/type/btree_node_p_i8_sp2d.html b/develop/type/btree_node_p_i8_sp2d.html index ee9960f3c6f..c1f77c6737e 100644 --- a/develop/type/btree_node_p_i8_sp2d.html +++ b/develop/type/btree_node_p_i8_sp2d.html @@ -114,7 +114,7 @@

    Variables

    - node + node
    @@ -169,7 +169,7 @@

    Components

    diff --git a/develop/type/btree_node_p_i8_zp2d.html b/develop/type/btree_node_p_i8_zp2d.html index 645ac02dc7e..6b7a4cde918 100644 --- a/develop/type/btree_node_p_i8_zp2d.html +++ b/develop/type/btree_node_p_i8_zp2d.html @@ -114,7 +114,7 @@

    Variables

    - node + node
    @@ -169,7 +169,7 @@

    Components

    diff --git a/develop/type/btree_node_structure_i8_cp2d.html b/develop/type/btree_node_structure_i8_cp2d.html index 7f1695ddbe2..0d0c35960ea 100644 --- a/develop/type/btree_node_structure_i8_cp2d.html +++ b/develop/type/btree_node_structure_i8_cp2d.html @@ -114,12 +114,12 @@

    Variables

    @@ -174,7 +174,7 @@

    Components

    @@ -208,7 +208,7 @@

    Components

    @@ -242,7 +242,7 @@

    Components

    @@ -259,7 +259,7 @@

    Components

    diff --git a/develop/type/btree_node_structure_i8_dp2d.html b/develop/type/btree_node_structure_i8_dp2d.html index f3e1ac89c5e..a02eb0bcaeb 100644 --- a/develop/type/btree_node_structure_i8_dp2d.html +++ b/develop/type/btree_node_structure_i8_dp2d.html @@ -114,12 +114,12 @@

    Variables

    @@ -174,7 +174,7 @@

    Components

    @@ -208,7 +208,7 @@

    Components

    @@ -242,7 +242,7 @@

    Components

    @@ -259,7 +259,7 @@

    Components

    diff --git a/develop/type/btree_node_structure_i8_sp2d.html b/develop/type/btree_node_structure_i8_sp2d.html index 5d31d33d161..9e3aa8420de 100644 --- a/develop/type/btree_node_structure_i8_sp2d.html +++ b/develop/type/btree_node_structure_i8_sp2d.html @@ -114,12 +114,12 @@

    Variables

    @@ -174,7 +174,7 @@

    Components

    @@ -208,7 +208,7 @@

    Components

    @@ -242,7 +242,7 @@

    Components

    @@ -259,7 +259,7 @@

    Components

    diff --git a/develop/type/btree_node_structure_i8_zp2d.html b/develop/type/btree_node_structure_i8_zp2d.html index 7d843ff01d0..268f7dfad27 100644 --- a/develop/type/btree_node_structure_i8_zp2d.html +++ b/develop/type/btree_node_structure_i8_zp2d.html @@ -114,12 +114,12 @@

    Variables

    @@ -174,7 +174,7 @@

    Components

    @@ -208,7 +208,7 @@

    Components

    @@ -242,7 +242,7 @@

    Components

    @@ -259,7 +259,7 @@

    Components

    diff --git a/develop/type/callstack_entry_type.html b/develop/type/callstack_entry_type.html index c619b2117b8..610952cecb7 100644 --- a/develop/type/callstack_entry_type.html +++ b/develop/type/callstack_entry_type.html @@ -114,7 +114,7 @@

    Variables

    @@ -171,7 +171,7 @@

    Components

    diff --git a/develop/type/conf_par.html b/develop/type/conf_par.html index 8736366e5b7..5c84781dad2 100644 --- a/develop/type/conf_par.html +++ b/develop/type/conf_par.html @@ -114,8 +114,8 @@

    Variables

    @@ -182,7 +182,7 @@

    Components

    @@ -199,7 +199,7 @@

    Components

    diff --git a/develop/type/conf_par_int.html b/develop/type/conf_par_int.html index 277676f9eef..3f3c54569d8 100644 --- a/develop/type/conf_par_int.html +++ b/develop/type/conf_par_int.html @@ -114,9 +114,9 @@

    Variables

    @@ -186,7 +186,7 @@

    Components

    @@ -203,7 +203,7 @@

    Components

    @@ -220,7 +220,7 @@

    Components

    diff --git a/develop/type/conf_par_logical.html b/develop/type/conf_par_logical.html index 00cb8ecfecd..3c8c16759be 100644 --- a/develop/type/conf_par_logical.html +++ b/develop/type/conf_par_logical.html @@ -114,9 +114,9 @@

    Variables

    @@ -185,7 +185,7 @@

    Components

    @@ -202,7 +202,7 @@

    Components

    @@ -219,7 +219,7 @@

    Components

    diff --git a/develop/type/conf_par_mm_driver.html b/develop/type/conf_par_mm_driver.html index 3a7631e9b32..ab042410171 100644 --- a/develop/type/conf_par_mm_driver.html +++ b/develop/type/conf_par_mm_driver.html @@ -114,9 +114,9 @@

    Variables

    @@ -185,7 +185,7 @@

    Components

    @@ -202,7 +202,7 @@

    Components

    @@ -219,7 +219,7 @@

    Components

    diff --git a/develop/type/conf_par_real.html b/develop/type/conf_par_real.html index 4ad049f2f54..d6fb70ed155 100644 --- a/develop/type/conf_par_real.html +++ b/develop/type/conf_par_real.html @@ -114,9 +114,9 @@

    Variables

    @@ -185,7 +185,7 @@

    Components

    @@ -202,7 +202,7 @@

    Components

    @@ -219,7 +219,7 @@

    Components

    diff --git a/develop/type/csr_data_area_type.html b/develop/type/csr_data_area_type.html index 1261da5ec37..998b29bd9f4 100644 --- a/develop/type/csr_data_area_type.html +++ b/develop/type/csr_data_area_type.html @@ -114,11 +114,11 @@

    Variables

    @@ -167,7 +167,7 @@

    Components

    @@ -184,7 +184,7 @@

    Components

    @@ -201,7 +201,7 @@

    Components

    @@ -218,7 +218,7 @@

    Components

    @@ -235,7 +235,7 @@

    Components

    diff --git a/develop/type/csr_p_type.html b/develop/type/csr_p_type.html index bbb364b94f5..01b2f4d3486 100644 --- a/develop/type/csr_p_type.html +++ b/develop/type/csr_p_type.html @@ -114,7 +114,7 @@

    Variables

    @@ -169,7 +169,7 @@

    Components

    diff --git a/develop/type/csr_type.html b/develop/type/csr_type.html index ea9b3ed588e..e28d57aeaf1 100644 --- a/develop/type/csr_type.html +++ b/develop/type/csr_type.html @@ -114,19 +114,19 @@

    Variables

    @@ -182,7 +182,7 @@

    Components

    @@ -202,7 +202,7 @@

    Components

    @@ -222,7 +222,7 @@

    Components

    @@ -242,7 +242,7 @@

    Components

    @@ -262,7 +262,7 @@

    Components

    @@ -279,7 +279,7 @@

    Components

    @@ -401,7 +401,7 @@

    Components

    diff --git a/develop/type/dbcsr_1d_array_type.html b/develop/type/dbcsr_1d_array_type.html index f4434c2b1e7..225709e3556 100644 --- a/develop/type/dbcsr_1d_array_type.html +++ b/develop/type/dbcsr_1d_array_type.html @@ -115,7 +115,7 @@

    Variables

    @@ -187,7 +187,7 @@

    Components

    diff --git a/develop/type/dbcsr_2d_array_type.html b/develop/type/dbcsr_2d_array_type.html index 968d4c31f40..a585d621a86 100644 --- a/develop/type/dbcsr_2d_array_type.html +++ b/develop/type/dbcsr_2d_array_type.html @@ -115,7 +115,7 @@

    Variables

    @@ -187,7 +187,7 @@

    Components

    diff --git a/develop/type/dbcsr_block_buffer_obj.html b/develop/type/dbcsr_block_buffer_obj.html index d8f117e7a3a..872788a9f2b 100644 --- a/develop/type/dbcsr_block_buffer_obj.html +++ b/develop/type/dbcsr_block_buffer_obj.html @@ -114,7 +114,7 @@

    Variables

    - b + b
    @@ -169,7 +169,7 @@

    Components

    diff --git a/develop/type/dbcsr_block_buffer_type.html b/develop/type/dbcsr_block_buffer_type.html index 65868b7bbfb..00505926e30 100644 --- a/develop/type/dbcsr_block_buffer_type.html +++ b/develop/type/dbcsr_block_buffer_type.html @@ -114,13 +114,13 @@

    Variables

    @@ -175,7 +175,7 @@

    Components

    @@ -209,7 +209,7 @@

    Components

    @@ -277,7 +277,7 @@

    Components

    diff --git a/develop/type/dbcsr_buffer.html b/develop/type/dbcsr_buffer.html index 6ebfbf811b6..d0b67f4a23c 100644 --- a/develop/type/dbcsr_buffer.html +++ b/develop/type/dbcsr_buffer.html @@ -114,9 +114,9 @@

    Variables

    @@ -223,7 +223,7 @@

    Components

    @@ -359,7 +359,7 @@

    Components

    @@ -444,7 +444,7 @@

    Components

    @@ -478,7 +478,7 @@

    Components

    diff --git a/develop/type/dbcsr_buffers.html b/develop/type/dbcsr_buffers.html index eb9ac976fbb..8a426e0dd45 100644 --- a/develop/type/dbcsr_buffers.html +++ b/develop/type/dbcsr_buffers.html @@ -114,8 +114,8 @@

    Variables

    - left - right + left + right
    @@ -170,7 +170,7 @@

    Components

    @@ -187,7 +187,7 @@

    Components

    diff --git a/develop/type/dbcsr_data_area_type.html b/develop/type/dbcsr_data_area_type.html index fd7894eb3c7..cf662691b18 100644 --- a/develop/type/dbcsr_data_area_type.html +++ b/develop/type/dbcsr_data_area_type.html @@ -116,17 +116,17 @@

    Variables

    i4 i8 - r_sp - r_dp - c_sp - c_dp + r_sp + r_dp + c_sp + c_dp r2_sp r2_dp c2_sp c2_dp ref_size - refcount - id + refcount + id memory_type data_type acc_devmem @@ -219,7 +219,7 @@

    Components

    @@ -236,7 +236,7 @@

    Components

    @@ -253,7 +253,7 @@

    Components

    @@ -270,7 +270,7 @@

    Components

    @@ -372,7 +372,7 @@

    Components

    @@ -389,7 +389,7 @@

    Components

    diff --git a/develop/type/dbcsr_data_obj.html b/develop/type/dbcsr_data_obj.html index fdbc1413fd9..eeab1624670 100644 --- a/develop/type/dbcsr_data_obj.html +++ b/develop/type/dbcsr_data_obj.html @@ -114,7 +114,7 @@

    Variables

    - d + d
    @@ -169,7 +169,7 @@

    Components

    diff --git a/develop/type/dbcsr_distribution_obj.html b/develop/type/dbcsr_distribution_obj.html index 6eb1c7a7a03..b57ce3636ff 100644 --- a/develop/type/dbcsr_distribution_obj.html +++ b/develop/type/dbcsr_distribution_obj.html @@ -114,7 +114,7 @@

    Variables

    - d + d
    @@ -169,7 +169,7 @@

    Components

    diff --git a/develop/type/dbcsr_distribution_type.html b/develop/type/dbcsr_distribution_type.html index 17933b3309c..38da42277f8 100644 --- a/develop/type/dbcsr_distribution_type.html +++ b/develop/type/dbcsr_distribution_type.html @@ -114,12 +114,12 @@

    Variables

    @@ -189,7 +189,7 @@

    Components

    @@ -207,7 +207,7 @@

    Components

    @@ -261,7 +261,7 @@

    Components

    @@ -278,7 +278,7 @@

    Components

    @@ -431,7 +431,7 @@

    Components

    @@ -448,7 +448,7 @@

    Components

    @@ -465,7 +465,7 @@

    Components

    @@ -482,7 +482,7 @@

    Components

    @@ -499,7 +499,7 @@

    Components

    @@ -516,7 +516,7 @@

    Components

    @@ -533,7 +533,7 @@

    Components

    diff --git a/develop/type/dbcsr_heap_node.html b/develop/type/dbcsr_heap_node.html index e4fb3adf68a..66516398535 100644 --- a/develop/type/dbcsr_heap_node.html +++ b/develop/type/dbcsr_heap_node.html @@ -114,8 +114,8 @@

    Variables

    - key - value + key + value
    @@ -170,7 +170,7 @@

    Components

    @@ -187,7 +187,7 @@

    Components

    diff --git a/develop/type/dbcsr_heap_node_e.html b/develop/type/dbcsr_heap_node_e.html index ba17b4733ec..0e623e81876 100644 --- a/develop/type/dbcsr_heap_node_e.html +++ b/develop/type/dbcsr_heap_node_e.html @@ -114,7 +114,7 @@

    Variables

    - node + node
    @@ -169,7 +169,7 @@

    Components

    diff --git a/develop/type/dbcsr_heap_type.html b/develop/type/dbcsr_heap_type.html index 0317fe82e47..0c8badb673d 100644 --- a/develop/type/dbcsr_heap_type.html +++ b/develop/type/dbcsr_heap_type.html @@ -114,8 +114,8 @@

    Variables

    - n - index + n + index nodes
    @@ -171,7 +171,7 @@

    Components

    @@ -188,7 +188,7 @@

    Components

    diff --git a/develop/type/dbcsr_imagedistribution_obj.html b/develop/type/dbcsr_imagedistribution_obj.html index 174f3cbdb8c..313f5b71d60 100644 --- a/develop/type/dbcsr_imagedistribution_obj.html +++ b/develop/type/dbcsr_imagedistribution_obj.html @@ -114,7 +114,7 @@

    Variables

    - i + i
    @@ -169,7 +169,7 @@

    Components

    diff --git a/develop/type/dbcsr_imagedistribution_type.html b/develop/type/dbcsr_imagedistribution_type.html index e6c5832541d..f95df34e8f3 100644 --- a/develop/type/dbcsr_imagedistribution_type.html +++ b/develop/type/dbcsr_imagedistribution_type.html @@ -121,8 +121,8 @@

    Variables

    col_decimationrow_multiplicitycol_multiplicity - vrow_dist - vcol_dist + vrow_dist + vcol_distother_vl_rowsother_vl_colsglobal_vrow_map @@ -131,8 +131,8 @@

    Variables

    has_other_vl_colshas_global_vrow_maphas_global_vcol_map - id - refcount + id + refcount @@ -311,7 +311,7 @@

    Components

    @@ -328,7 +328,7 @@

    Components

    @@ -481,7 +481,7 @@

    Components

    @@ -498,7 +498,7 @@

    Components

    diff --git a/develop/type/dbcsr_iteration_info_type.html b/develop/type/dbcsr_iteration_info_type.html index dae8e655d1d..551852553d1 100644 --- a/develop/type/dbcsr_iteration_info_type.html +++ b/develop/type/dbcsr_iteration_info_type.html @@ -114,9 +114,9 @@

    Variables

    - ref_count - id_nr - print_level + ref_count + id_nr + print_level n_rlevel iteration last_iter @@ -177,7 +177,7 @@

    Components

    @@ -194,7 +194,7 @@

    Components

    @@ -211,7 +211,7 @@

    Components

    diff --git a/develop/type/dbcsr_iterator.html b/develop/type/dbcsr_iterator.html index 6dbdc29ddfa..d9aede2509a 100644 --- a/develop/type/dbcsr_iterator.html +++ b/develop/type/dbcsr_iterator.html @@ -114,33 +114,33 @@

    Variables

    @@ -201,7 +201,7 @@

    Components

    @@ -235,7 +235,7 @@

    Components

    @@ -252,7 +252,7 @@

    Components

    @@ -269,7 +269,7 @@

    Components

    @@ -286,7 +286,7 @@

    Components

    @@ -303,7 +303,7 @@

    Components

    @@ -320,7 +320,7 @@

    Components

    @@ -388,7 +388,7 @@

    Components

    @@ -422,7 +422,7 @@

    Components

    @@ -439,7 +439,7 @@

    Components

    @@ -456,7 +456,7 @@

    Components

    @@ -473,7 +473,7 @@

    Components

    @@ -507,7 +507,7 @@

    Components

    @@ -524,7 +524,7 @@

    Components

    @@ -541,7 +541,7 @@

    Components

    @@ -558,7 +558,7 @@

    Components

    @@ -575,7 +575,7 @@

    Components

    @@ -643,7 +643,7 @@

    Components

    diff --git a/develop/type/dbcsr_layers_3d_c_reduction.html b/develop/type/dbcsr_layers_3d_c_reduction.html index cdc0c14f45b..40a34a62e1a 100644 --- a/develop/type/dbcsr_layers_3d_c_reduction.html +++ b/develop/type/dbcsr_layers_3d_c_reduction.html @@ -117,11 +117,11 @@

    Variables

    grpgrp3Drowgrp3D - num_layers_3D + num_layers_3Dmax_num_layers_3Dside3Ddata_red3D - data_type + data_type @@ -227,7 +227,7 @@

    Components

    @@ -295,7 +295,7 @@

    Components

    diff --git a/develop/type/dbcsr_logger_p_type.html b/develop/type/dbcsr_logger_p_type.html index ee3b791ce70..ebc69fda34e 100644 --- a/develop/type/dbcsr_logger_p_type.html +++ b/develop/type/dbcsr_logger_p_type.html @@ -114,7 +114,7 @@

    Variables

    - p + p
    @@ -169,7 +169,7 @@

    Components

    diff --git a/develop/type/dbcsr_logger_type.html b/develop/type/dbcsr_logger_type.html index b533ed824a3..e605d3ba86a 100644 --- a/develop/type/dbcsr_logger_type.html +++ b/develop/type/dbcsr_logger_type.html @@ -114,9 +114,9 @@

    Variables

    @@ -191,7 +191,7 @@

    Components

    @@ -209,7 +209,7 @@

    Components

    @@ -227,7 +227,7 @@

    Components

    @@ -373,7 +373,7 @@

    Components

    diff --git a/develop/type/dbcsr_mempool_entry_type.html b/develop/type/dbcsr_mempool_entry_type.html index 31e1232b7b1..065c13be960 100644 --- a/develop/type/dbcsr_mempool_entry_type.html +++ b/develop/type/dbcsr_mempool_entry_type.html @@ -114,8 +114,8 @@

    Variables

    - area - next + area + next
    @@ -170,7 +170,7 @@

    Components

    @@ -187,7 +187,7 @@

    Components

    diff --git a/develop/type/dbcsr_mempool_type.html b/develop/type/dbcsr_mempool_type.html index 9ca76daf5a9..3c2ee50e763 100644 --- a/develop/type/dbcsr_mempool_type.html +++ b/develop/type/dbcsr_mempool_type.html @@ -114,8 +114,8 @@

    Variables

    @@ -170,7 +170,7 @@

    Components

    @@ -187,7 +187,7 @@

    Components

    diff --git a/develop/type/dbcsr_memtype_type.html b/develop/type/dbcsr_memtype_type.html index 85741d79336..5f258df8c0e 100644 --- a/develop/type/dbcsr_memtype_type.html +++ b/develop/type/dbcsr_memtype_type.html @@ -114,12 +114,12 @@

    Variables

    @@ -174,7 +174,7 @@

    Components

    @@ -191,7 +191,7 @@

    Components

    @@ -208,7 +208,7 @@

    Components

    @@ -225,7 +225,7 @@

    Components

    @@ -242,7 +242,7 @@

    Components

    @@ -259,7 +259,7 @@

    Components

    diff --git a/develop/type/dbcsr_memtype_type_p.html b/develop/type/dbcsr_memtype_type_p.html index a7c35d2d6fe..db87ee6c844 100644 --- a/develop/type/dbcsr_memtype_type_p.html +++ b/develop/type/dbcsr_memtype_type_p.html @@ -114,7 +114,7 @@

    Variables

    - p + p padding
    @@ -170,7 +170,7 @@

    Components

    diff --git a/develop/type/dbcsr_mm_accdrv_type.html b/develop/type/dbcsr_mm_accdrv_type.html index 7b95d49fce6..df040de3a34 100644 --- a/develop/type/dbcsr_mm_accdrv_type.html +++ b/develop/type/dbcsr_mm_accdrv_type.html @@ -114,12 +114,12 @@

    Variables

    @@ -174,7 +174,7 @@

    Components

    @@ -225,7 +225,7 @@

    Components

    @@ -259,7 +259,7 @@

    Components

    diff --git a/develop/type/dbcsr_mm_csr_type.html b/develop/type/dbcsr_mm_csr_type.html index 2d77b3c0485..cfe9c019d53 100644 --- a/develop/type/dbcsr_mm_csr_type.html +++ b/develop/type/dbcsr_mm_csr_type.html @@ -121,19 +121,19 @@

    Variables

    m_size_mapsn_size_mapsk_size_maps - max_m - max_n - max_k + max_m + max_n + max_km_size_maps_sizen_size_maps_sizek_size_maps_sizestack_mapstacks_descr - product_wm + product_wmstacks_datastacks_fillcountsched - keep_product_data + keep_product_data @@ -307,7 +307,7 @@

    Components

    @@ -324,7 +324,7 @@

    Components

    @@ -341,7 +341,7 @@

    Components

    @@ -443,7 +443,7 @@

    Components

    @@ -511,7 +511,7 @@

    Components

    diff --git a/develop/type/dbcsr_mm_hostdrv_type.html b/develop/type/dbcsr_mm_hostdrv_type.html index f972df0cbc3..ed53f3ce60c 100644 --- a/develop/type/dbcsr_mm_hostdrv_type.html +++ b/develop/type/dbcsr_mm_hostdrv_type.html @@ -114,7 +114,7 @@

    Variables

    @@ -169,7 +169,7 @@

    Components

    diff --git a/develop/type/dbcsr_mm_multrec_type.html b/develop/type/dbcsr_mm_multrec_type.html index a266dd16f36..9a478db666a 100644 --- a/develop/type/dbcsr_mm_multrec_type.html +++ b/develop/type/dbcsr_mm_multrec_type.html @@ -114,27 +114,27 @@

    Variables

    @@ -212,7 +212,7 @@

    Components

    @@ -231,7 +231,7 @@

    Components

    @@ -269,7 +269,7 @@

    Components

    @@ -288,7 +288,7 @@

    Components

    @@ -307,7 +307,7 @@

    Components

    @@ -360,7 +360,7 @@

    Components

    @@ -381,7 +381,7 @@

    Components

    @@ -465,7 +465,7 @@

    Components

    @@ -522,7 +522,7 @@

    Components

    @@ -556,7 +556,7 @@

    Components

    @@ -573,7 +573,7 @@

    Components

    diff --git a/develop/type/dbcsr_mm_multrec_type_p.html b/develop/type/dbcsr_mm_multrec_type_p.html index 7b3569ddc30..4322090245b 100644 --- a/develop/type/dbcsr_mm_multrec_type_p.html +++ b/develop/type/dbcsr_mm_multrec_type_p.html @@ -114,7 +114,7 @@

    Variables

    - p + p padding
    @@ -170,7 +170,7 @@

    Components

    diff --git a/develop/type/dbcsr_mm_sched_type.html b/develop/type/dbcsr_mm_sched_type.html index 49288409cca..5962fd2c87c 100644 --- a/develop/type/dbcsr_mm_sched_type.html +++ b/develop/type/dbcsr_mm_sched_type.html @@ -114,12 +114,12 @@

    Variables

    @@ -175,7 +175,7 @@

    Components

    @@ -260,7 +260,7 @@

    Components

    diff --git a/develop/type/dbcsr_mp_obj.html b/develop/type/dbcsr_mp_obj.html index a63e00c6bcc..9cdf1834c66 100644 --- a/develop/type/dbcsr_mp_obj.html +++ b/develop/type/dbcsr_mp_obj.html @@ -114,7 +114,7 @@

    Variables

    - mp + mp
    @@ -169,7 +169,7 @@

    Components

    diff --git a/develop/type/dbcsr_mp_type.html b/develop/type/dbcsr_mp_type.html index 5501c189837..54e0d0b2704 100644 --- a/develop/type/dbcsr_mp_type.html +++ b/develop/type/dbcsr_mp_type.html @@ -114,17 +114,17 @@

    Variables

    @@ -179,7 +179,7 @@

    Components

    @@ -196,7 +196,7 @@

    Components

    @@ -213,7 +213,7 @@

    Components

    @@ -230,7 +230,7 @@

    Components

    @@ -247,7 +247,7 @@

    Components

    @@ -264,7 +264,7 @@

    Components

    @@ -281,7 +281,7 @@

    Components

    @@ -298,7 +298,7 @@

    Components

    @@ -349,7 +349,7 @@

    Components

    diff --git a/develop/type/dbcsr_mpi_statistics_type.html b/develop/type/dbcsr_mpi_statistics_type.html index ff3ce674b83..0d5920de2bf 100644 --- a/develop/type/dbcsr_mpi_statistics_type.html +++ b/develop/type/dbcsr_mpi_statistics_type.html @@ -115,10 +115,10 @@

    Variables

    @@ -191,7 +191,7 @@

    Components

    @@ -242,7 +242,7 @@

    Components

    diff --git a/develop/type/dbcsr_mutable_obj.html b/develop/type/dbcsr_mutable_obj.html index 89d876befc9..33e9c5d6c3d 100644 --- a/develop/type/dbcsr_mutable_obj.html +++ b/develop/type/dbcsr_mutable_obj.html @@ -114,7 +114,7 @@

    Variables

    - m + m
    @@ -169,7 +169,7 @@

    Components

    diff --git a/develop/type/dbcsr_mutable_type.html b/develop/type/dbcsr_mutable_type.html index f149ce9760c..6423d4c8357 100644 --- a/develop/type/dbcsr_mutable_type.html +++ b/develop/type/dbcsr_mutable_type.html @@ -118,8 +118,8 @@

    Variables

    btree_dbtree_cbtree_z - refcount - data_type + refcount + data_type @@ -242,7 +242,7 @@

    Components

    @@ -259,7 +259,7 @@

    Components

    diff --git a/develop/type/dbcsr_p_type.html b/develop/type/dbcsr_p_type.html index 7170f44af19..653a0b4c0c6 100644 --- a/develop/type/dbcsr_p_type.html +++ b/develop/type/dbcsr_p_type.html @@ -114,7 +114,7 @@

    Variables

    @@ -169,7 +169,7 @@

    Components

    diff --git a/develop/type/dbcsr_scalar_type.html b/develop/type/dbcsr_scalar_type.html index dec73dc0815..f1832526730 100644 --- a/develop/type/dbcsr_scalar_type.html +++ b/develop/type/dbcsr_scalar_type.html @@ -114,10 +114,10 @@

    Variables

    @@ -175,7 +175,7 @@

    Components

    @@ -192,7 +192,7 @@

    Components

    @@ -209,7 +209,7 @@

    Components

    @@ -226,7 +226,7 @@

    Components

    diff --git a/develop/type/dbcsr_t_contraction_storage.html b/develop/type/dbcsr_t_contraction_storage.html index 33b0a4c159e..f86768d7e9b 100644 --- a/develop/type/dbcsr_t_contraction_storage.html +++ b/develop/type/dbcsr_t_contraction_storage.html @@ -115,7 +115,7 @@

    Variables

    @@ -183,7 +183,7 @@

    Components

    diff --git a/develop/type/dbcsr_t_distribution_type.html b/develop/type/dbcsr_t_distribution_type.html index 3a8e850f9ad..efa5527fbc0 100644 --- a/develop/type/dbcsr_t_distribution_type.html +++ b/develop/type/dbcsr_t_distribution_type.html @@ -114,10 +114,10 @@

    Variables

    @@ -166,7 +166,7 @@

    Components

    @@ -183,7 +183,7 @@

    Components

    @@ -217,7 +217,7 @@

    Components

    diff --git a/develop/type/dbcsr_t_iterator_type.html b/develop/type/dbcsr_t_iterator_type.html index e77af872e90..9425a09e04e 100644 --- a/develop/type/dbcsr_t_iterator_type.html +++ b/develop/type/dbcsr_t_iterator_type.html @@ -114,10 +114,10 @@

    Variables

    @@ -173,7 +173,7 @@

    Components

    @@ -207,7 +207,7 @@

    Components

    @@ -224,7 +224,7 @@

    Components

    diff --git a/develop/type/dbcsr_t_pgrid_type.html b/develop/type/dbcsr_t_pgrid_type.html index 796563a7cf0..c419e2d3a0c 100644 --- a/develop/type/dbcsr_t_pgrid_type.html +++ b/develop/type/dbcsr_t_pgrid_type.html @@ -116,8 +116,8 @@

    Variables

    @@ -200,7 +200,7 @@

    Components

    @@ -217,7 +217,7 @@

    Components

    diff --git a/develop/type/dbcsr_t_type.html b/develop/type/dbcsr_t_type.html index 0cff9b7e54a..9931a5a505a 100644 --- a/develop/type/dbcsr_t_type.html +++ b/develop/type/dbcsr_t_type.html @@ -116,18 +116,18 @@

    Variables

    @@ -217,7 +217,7 @@

    Components

    @@ -285,7 +285,7 @@

    Components

    @@ -319,7 +319,7 @@

    Components

    @@ -353,7 +353,7 @@

    Components

    @@ -387,7 +387,7 @@

    Components

    @@ -404,7 +404,7 @@

    Components

    diff --git a/develop/type/dbcsr_tas_blk_size_arb.html b/develop/type/dbcsr_tas_blk_size_arb.html index 92cc8f94719..c7930a0073d 100644 --- a/develop/type/dbcsr_tas_blk_size_arb.html +++ b/develop/type/dbcsr_tas_blk_size_arb.html @@ -154,7 +154,7 @@

    Type-Bound Procedures

    - DATA + DATA
    @@ -307,7 +307,7 @@

    Type-Bound Procedures

    - +

    procedure, public :: DATA => blk_size_arb diff --git a/develop/type/dbcsr_tas_blk_size_one.html b/develop/type/dbcsr_tas_blk_size_one.html index 89b0b23e3f7..cf9660fc3be 100644 --- a/develop/type/dbcsr_tas_blk_size_one.html +++ b/develop/type/dbcsr_tas_blk_size_one.html @@ -153,7 +153,7 @@

    Type-Bound Procedures

    - DATA + DATA
    @@ -289,7 +289,7 @@

    Type-Bound Procedures

    - +

    procedure, public :: DATA => blk_size_one diff --git a/develop/type/dbcsr_tas_blk_size_repl.html b/develop/type/dbcsr_tas_blk_size_repl.html index 6869a6fb512..aaf86ba8092 100644 --- a/develop/type/dbcsr_tas_blk_size_repl.html +++ b/develop/type/dbcsr_tas_blk_size_repl.html @@ -155,7 +155,7 @@

    Type-Bound Procedures

    - DATA + DATA
    @@ -340,7 +340,7 @@

    Type-Bound Procedures

    - +

    procedure, public :: DATA => blk_size_repl diff --git a/develop/type/dbcsr_tas_blk_size_t.html b/develop/type/dbcsr_tas_blk_size_t.html index cdb99e55287..e9b0f1066b0 100644 --- a/develop/type/dbcsr_tas_blk_size_t.html +++ b/develop/type/dbcsr_tas_blk_size_t.html @@ -116,8 +116,8 @@

    Variables

    @@ -155,7 +155,7 @@

    Type-Bound Procedures

    - data + data
    @@ -222,7 +222,7 @@

    Components

    @@ -239,7 +239,7 @@

    Components

    @@ -291,7 +291,7 @@

    Arguments

    @@ -356,7 +356,7 @@

    Type-Bound Procedures

    - +

    procedure, public :: data => tas_blk_size_t diff --git a/develop/type/dbcsr_tas_dist_arb.html b/develop/type/dbcsr_tas_dist_arb.html index 1111c32ca8b..7c56ed7c706 100644 --- a/develop/type/dbcsr_tas_dist_arb.html +++ b/develop/type/dbcsr_tas_dist_arb.html @@ -154,7 +154,7 @@

    Type-Bound Procedures

    @@ -338,7 +338,7 @@

    Type-Bound Procedures

    - +

    procedure, public :: dist => arb_dist diff --git a/develop/type/dbcsr_tas_dist_cyclic.html b/develop/type/dbcsr_tas_dist_cyclic.html index afdfc48565f..10e42a9a14f 100644 --- a/develop/type/dbcsr_tas_dist_cyclic.html +++ b/develop/type/dbcsr_tas_dist_cyclic.html @@ -154,7 +154,7 @@

    Type-Bound Procedures

    @@ -338,7 +338,7 @@

    Type-Bound Procedures

    - +

    procedure, public :: dist => cyclic_dist diff --git a/develop/type/dbcsr_tas_dist_repl.html b/develop/type/dbcsr_tas_dist_repl.html index 188c4c8a149..f01f9316d8a 100644 --- a/develop/type/dbcsr_tas_dist_repl.html +++ b/develop/type/dbcsr_tas_dist_repl.html @@ -119,7 +119,7 @@

    Variables

    dist_vec nmrowcol_local n_repl - dist_size + dist_size
    @@ -157,7 +157,7 @@

    Type-Bound Procedures

    @@ -276,7 +276,7 @@

    Components

    @@ -387,7 +387,7 @@

    Arguments

    @@ -422,7 +422,7 @@

    Type-Bound Procedures

    - +

    procedure, public :: dist => repl_dist diff --git a/develop/type/dbcsr_tas_dist_t.html b/develop/type/dbcsr_tas_dist_t.html index b4225148e40..396e51e765b 100644 --- a/develop/type/dbcsr_tas_dist_t.html +++ b/develop/type/dbcsr_tas_dist_t.html @@ -116,7 +116,7 @@

    Variables

    @@ -156,7 +156,7 @@

    Type-Bound Procedures

    @@ -224,7 +224,7 @@

    Components

    @@ -392,7 +392,7 @@

    Type-Bound Procedures

    - +

    procedure, public :: dist => tas_dist_t diff --git a/develop/type/dbcsr_tas_distribution.html b/develop/type/dbcsr_tas_distribution.html index 50180e36d81..0f5aabbe0a7 100644 --- a/develop/type/dbcsr_tas_distribution.html +++ b/develop/type/dbcsr_tas_distribution.html @@ -142,7 +142,7 @@

    Type-Bound Procedures

    @@ -221,7 +221,7 @@

    Type-Bound Procedures

    - +

    procedure(rowcol_dist), public, deferred :: dist diff --git a/develop/type/dbcsr_tas_distribution_type.html b/develop/type/dbcsr_tas_distribution_type.html index 44a21f52a90..9d02c04ce8b 100644 --- a/develop/type/dbcsr_tas_distribution_type.html +++ b/develop/type/dbcsr_tas_distribution_type.html @@ -114,10 +114,10 @@

    Variables

    @@ -167,7 +167,7 @@

    Components

    @@ -184,7 +184,7 @@

    Components

    @@ -201,7 +201,7 @@

    Components

    @@ -218,7 +218,7 @@

    Components

    diff --git a/develop/type/dbcsr_tas_iterator.html b/develop/type/dbcsr_tas_iterator.html index 2f95b2b8f83..b67adca043a 100644 --- a/develop/type/dbcsr_tas_iterator.html +++ b/develop/type/dbcsr_tas_iterator.html @@ -114,9 +114,9 @@

    Variables

    - info - dist - iter + info + dist + iter
    @@ -171,7 +171,7 @@

    Components

    @@ -188,7 +188,7 @@

    Components

    @@ -205,7 +205,7 @@

    Components

    diff --git a/develop/type/dbcsr_tas_rowcol_data.html b/develop/type/dbcsr_tas_rowcol_data.html index b33c04a8bae..13fe2b3a43e 100644 --- a/develop/type/dbcsr_tas_rowcol_data.html +++ b/develop/type/dbcsr_tas_rowcol_data.html @@ -142,7 +142,7 @@

    Type-Bound Procedures

    - DATA + DATA
    @@ -220,7 +220,7 @@

    Type-Bound Procedures

    - +

    procedure(rowcol_data), public, deferred :: DATA diff --git a/develop/type/dbcsr_tas_split_info.html b/develop/type/dbcsr_tas_split_info.html index 2992ade5fc2..a64a63ee9f1 100644 --- a/develop/type/dbcsr_tas_split_info.html +++ b/develop/type/dbcsr_tas_split_info.html @@ -114,17 +114,17 @@

    Variables

    @@ -173,7 +173,7 @@

    Components

    @@ -190,7 +190,7 @@

    Components

    @@ -207,7 +207,7 @@

    Components

    @@ -224,7 +224,7 @@

    Components

    @@ -241,7 +241,7 @@

    Components

    @@ -275,7 +275,7 @@

    Components

    @@ -292,7 +292,7 @@

    Components

    @@ -343,7 +343,7 @@

    Components

    diff --git a/develop/type/dbcsr_tas_type.html b/develop/type/dbcsr_tas_type.html index 53553655de5..61c3b9fa898 100644 --- a/develop/type/dbcsr_tas_type.html +++ b/develop/type/dbcsr_tas_type.html @@ -114,17 +114,17 @@

    Variables

    @@ -192,7 +192,7 @@

    Components

    @@ -209,7 +209,7 @@

    Components

    @@ -226,7 +226,7 @@

    Components

    @@ -243,7 +243,7 @@

    Components

    @@ -260,7 +260,7 @@

    Components

    @@ -294,7 +294,7 @@

    Components

    @@ -328,7 +328,7 @@

    Components

    @@ -345,7 +345,7 @@

    Components

    diff --git a/develop/type/dbcsr_type.html b/develop/type/dbcsr_type.html index e86956e15c5..f936df5e1dc 100644 --- a/develop/type/dbcsr_type.html +++ b/develop/type/dbcsr_type.html @@ -115,19 +115,19 @@

    Variables

    @@ -241,7 +241,7 @@

    Components

    @@ -258,7 +258,7 @@

    Components

    @@ -275,7 +275,7 @@

    Components

    @@ -309,7 +309,7 @@

    Components

    @@ -327,7 +327,7 @@

    Components

    @@ -344,7 +344,7 @@

    Components

    @@ -395,7 +395,7 @@

    Components

    @@ -412,7 +412,7 @@

    Components

    @@ -429,7 +429,7 @@

    Components

    @@ -446,7 +446,7 @@

    Components

    @@ -667,7 +667,7 @@

    Components

    @@ -684,7 +684,7 @@

    Components

    @@ -701,7 +701,7 @@

    Components

    @@ -718,7 +718,7 @@

    Components

    @@ -735,7 +735,7 @@

    Components

    @@ -752,7 +752,7 @@

    Components

    @@ -786,7 +786,7 @@

    Components

    @@ -803,7 +803,7 @@

    Components

    @@ -820,7 +820,7 @@

    Components

    @@ -837,7 +837,7 @@

    Components

    @@ -854,7 +854,7 @@

    Components

    @@ -973,7 +973,7 @@

    Components

    @@ -1007,7 +1007,7 @@

    Components

    @@ -1041,7 +1041,7 @@

    Components

    @@ -1058,7 +1058,7 @@

    Components

    @@ -1075,7 +1075,7 @@

    Components

    diff --git a/develop/type/dbcsr_type_p.html b/develop/type/dbcsr_type_p.html index fe996f3c32f..60c8ebd225b 100644 --- a/develop/type/dbcsr_type_p.html +++ b/develop/type/dbcsr_type_p.html @@ -114,7 +114,7 @@

    Variables

    @@ -169,7 +169,7 @@

    Components

    diff --git a/develop/type/dbcsr_work_type.html b/develop/type/dbcsr_work_type.html index 1a164d94c8a..2e6193f47b4 100644 --- a/develop/type/dbcsr_work_type.html +++ b/develop/type/dbcsr_work_type.html @@ -114,11 +114,11 @@

    Variables

    @@ -193,7 +193,7 @@

    Components

    @@ -210,7 +210,7 @@

    Components

    @@ -227,7 +227,7 @@

    Components

    @@ -244,7 +244,7 @@

    Components

    diff --git a/develop/type/dgemm_join.html b/develop/type/dgemm_join.html index 1449c02c5ad..f82839e2832 100644 --- a/develop/type/dgemm_join.html +++ b/develop/type/dgemm_join.html @@ -114,13 +114,13 @@

    Variables

    - p_a - p_b - p_c - last_k - last_n - alpha - beta + p_a + p_b + p_c + last_k + last_n + alpha + beta
    @@ -175,7 +175,7 @@

    Components

    @@ -192,7 +192,7 @@

    Components

    @@ -209,7 +209,7 @@

    Components

    @@ -226,7 +226,7 @@

    Components

    @@ -243,7 +243,7 @@

    Components

    @@ -260,7 +260,7 @@

    Components

    @@ -277,7 +277,7 @@

    Components

    diff --git a/develop/type/dgemm_join~2.html b/develop/type/dgemm_join~2.html index f5d639a050f..dea22ad961d 100644 --- a/develop/type/dgemm_join~2.html +++ b/develop/type/dgemm_join~2.html @@ -114,13 +114,13 @@

    Variables

    - p_a - p_b - p_c - last_k - last_n - alpha - beta + p_a + p_b + p_c + last_k + last_n + alpha + beta
    @@ -175,7 +175,7 @@

    Components

    @@ -192,7 +192,7 @@

    Components

    @@ -209,7 +209,7 @@

    Components

    @@ -226,7 +226,7 @@

    Components

    @@ -243,7 +243,7 @@

    Components

    @@ -260,7 +260,7 @@

    Components

    @@ -277,7 +277,7 @@

    Components

    diff --git a/develop/type/dict_i4tuple_callstat_item_type.html b/develop/type/dict_i4tuple_callstat_item_type.html index 2461817d906..436c5bde4d9 100644 --- a/develop/type/dict_i4tuple_callstat_item_type.html +++ b/develop/type/dict_i4tuple_callstat_item_type.html @@ -114,8 +114,8 @@

    Variables

    - key - value + key + value
    @@ -170,7 +170,7 @@

    Components

    @@ -187,7 +187,7 @@

    Components

    diff --git a/develop/type/dict_i4tuple_callstat_type.html b/develop/type/dict_i4tuple_callstat_type.html index 6ef023e8c74..ad814ea4d59 100644 --- a/develop/type/dict_i4tuple_callstat_type.html +++ b/develop/type/dict_i4tuple_callstat_type.html @@ -115,7 +115,7 @@

    Variables

    @@ -187,7 +187,7 @@

    Components

    diff --git a/develop/type/dict_str_i4_item_type.html b/develop/type/dict_str_i4_item_type.html index bd153b29d39..7a2cec4cbc6 100644 --- a/develop/type/dict_str_i4_item_type.html +++ b/develop/type/dict_str_i4_item_type.html @@ -114,8 +114,8 @@

    Variables

    - key - value + key + value
    @@ -170,7 +170,7 @@

    Components

    @@ -187,7 +187,7 @@

    Components

    diff --git a/develop/type/dict_str_i4_type.html b/develop/type/dict_str_i4_type.html index d43ad7887ef..a8fce29b55c 100644 --- a/develop/type/dict_str_i4_type.html +++ b/develop/type/dict_str_i4_type.html @@ -115,7 +115,7 @@

    Variables

    @@ -187,7 +187,7 @@

    Components

    diff --git a/develop/type/ele_type.html b/develop/type/ele_type.html index a4024bba871..434f59d0770 100644 --- a/develop/type/ele_type.html +++ b/develop/type/ele_type.html @@ -114,8 +114,8 @@

    Variables

    - c - p + c + p
    @@ -164,7 +164,7 @@

    Components

    @@ -181,7 +181,7 @@

    Components

    diff --git a/develop/type/hash_table_type.html b/develop/type/hash_table_type.html index a53eef0b5e8..50f6a8c1bc5 100644 --- a/develop/type/hash_table_type.html +++ b/develop/type/hash_table_type.html @@ -116,7 +116,7 @@

    Variables

    @@ -200,7 +200,7 @@

    Components

    diff --git a/develop/type/i_array_p.html b/develop/type/i_array_p.html index dda9fec5036..ec347b10e43 100644 --- a/develop/type/i_array_p.html +++ b/develop/type/i_array_p.html @@ -114,7 +114,7 @@

    Variables

    - p + p
    @@ -169,7 +169,7 @@

    Components

    diff --git a/develop/type/list_callstackentry_type.html b/develop/type/list_callstackentry_type.html index 323931826d3..5faa5ab5b0f 100644 --- a/develop/type/list_callstackentry_type.html +++ b/develop/type/list_callstackentry_type.html @@ -114,8 +114,8 @@

    Variables

    - arr - size + arr + size
    @@ -170,7 +170,7 @@

    Components

    @@ -187,7 +187,7 @@

    Components

    diff --git a/develop/type/list_routinereport_type.html b/develop/type/list_routinereport_type.html index dcecdae9477..ff49d52a243 100644 --- a/develop/type/list_routinereport_type.html +++ b/develop/type/list_routinereport_type.html @@ -114,8 +114,8 @@

    Variables

    - arr - size + arr + size
    @@ -170,7 +170,7 @@

    Components

    @@ -187,7 +187,7 @@

    Components

    diff --git a/develop/type/list_routinestat_type.html b/develop/type/list_routinestat_type.html index 8f0254d29c9..cd2bf1e1c89 100644 --- a/develop/type/list_routinestat_type.html +++ b/develop/type/list_routinestat_type.html @@ -114,8 +114,8 @@

    Variables

    - arr - size + arr + size
    @@ -170,7 +170,7 @@

    Components

    @@ -187,7 +187,7 @@

    Components

    diff --git a/develop/type/list_timerenv_type.html b/develop/type/list_timerenv_type.html index 005e0425f80..bb481db6f55 100644 --- a/develop/type/list_timerenv_type.html +++ b/develop/type/list_timerenv_type.html @@ -114,8 +114,8 @@

    Variables

    - arr - size + arr + size
    @@ -170,7 +170,7 @@

    Components

    @@ -187,7 +187,7 @@

    Components

    diff --git a/develop/type/mn_local_sizes.html b/develop/type/mn_local_sizes.html index 345b7eb7de2..22a6de05b16 100644 --- a/develop/type/mn_local_sizes.html +++ b/develop/type/mn_local_sizes.html @@ -114,7 +114,7 @@

    Variables

    - sizes + sizes
    @@ -169,7 +169,7 @@

    Components

    diff --git a/develop/type/mp_comm_type.html b/develop/type/mp_comm_type.html index 0d58fed228d..132f7aab29b 100644 --- a/develop/type/mp_comm_type.html +++ b/develop/type/mp_comm_type.html @@ -114,7 +114,7 @@

    Variables

    @@ -185,7 +185,7 @@

    Components

    diff --git a/develop/type/mp_file_indexing_meta_type.html b/develop/type/mp_file_indexing_meta_type.html index 3562d05df63..a98793517e1 100644 --- a/develop/type/mp_file_indexing_meta_type.html +++ b/develop/type/mp_file_indexing_meta_type.html @@ -114,7 +114,7 @@

    Variables

    @@ -170,7 +170,7 @@

    Components

    diff --git a/develop/type/mp_file_type.html b/develop/type/mp_file_type.html index 8e9a200d1bb..afb9379c162 100644 --- a/develop/type/mp_file_type.html +++ b/develop/type/mp_file_type.html @@ -114,7 +114,7 @@

    Variables

    @@ -185,7 +185,7 @@

    Components

    diff --git a/develop/type/mp_indexing_meta_type.html b/develop/type/mp_indexing_meta_type.html index 0478d87487b..17b4e967a82 100644 --- a/develop/type/mp_indexing_meta_type.html +++ b/develop/type/mp_indexing_meta_type.html @@ -114,7 +114,7 @@

    Variables

    @@ -170,7 +170,7 @@

    Components

    diff --git a/develop/type/mp_info_type.html b/develop/type/mp_info_type.html index 9809fe99784..e5f7f341213 100644 --- a/develop/type/mp_info_type.html +++ b/develop/type/mp_info_type.html @@ -114,7 +114,7 @@

    Variables

    @@ -185,7 +185,7 @@

    Components

    diff --git a/develop/type/mp_perf_env_type.html b/develop/type/mp_perf_env_type.html index 003b8922b31..68c1c4ed886 100644 --- a/develop/type/mp_perf_env_type.html +++ b/develop/type/mp_perf_env_type.html @@ -114,7 +114,7 @@

    Variables

    @@ -171,7 +171,7 @@

    Components

    diff --git a/develop/type/mp_perf_type.html b/develop/type/mp_perf_type.html index 73c2ff9caf7..a844b780fbb 100644 --- a/develop/type/mp_perf_type.html +++ b/develop/type/mp_perf_type.html @@ -114,7 +114,7 @@

    Variables

    @@ -171,7 +171,7 @@

    Components

    diff --git a/develop/type/mp_request_type.html b/develop/type/mp_request_type.html index 4ca8e4708ba..4e234c8a9ef 100644 --- a/develop/type/mp_request_type.html +++ b/develop/type/mp_request_type.html @@ -114,7 +114,7 @@

    Variables

    @@ -185,7 +185,7 @@

    Components

    diff --git a/develop/type/mp_type_descriptor_type.html b/develop/type/mp_type_descriptor_type.html index 603334b00e0..968e08ea26d 100644 --- a/develop/type/mp_type_descriptor_type.html +++ b/develop/type/mp_type_descriptor_type.html @@ -118,10 +118,10 @@

    Variables

    lengthdata_idata_l - data_r - data_d - data_c - data_z + data_r + data_d + data_c + data_zsubtypevector_descriptorhas_indexing @@ -248,7 +248,7 @@

    Components

    @@ -265,7 +265,7 @@

    Components

    @@ -282,7 +282,7 @@

    Components

    @@ -299,7 +299,7 @@

    Components

    diff --git a/develop/type/mp_win_type.html b/develop/type/mp_win_type.html index 9e1968272a8..ec481346958 100644 --- a/develop/type/mp_win_type.html +++ b/develop/type/mp_win_type.html @@ -114,7 +114,7 @@

    Variables

    @@ -185,7 +185,7 @@

    Components

    diff --git a/develop/type/nd_to_2d_mapping.html b/develop/type/nd_to_2d_mapping.html index 2ac6b26a953..cfe9522b8ff 100644 --- a/develop/type/nd_to_2d_mapping.html +++ b/develop/type/nd_to_2d_mapping.html @@ -114,18 +114,18 @@

    Variables

    @@ -180,7 +180,7 @@

    Components

    @@ -197,7 +197,7 @@

    Components

    @@ -214,7 +214,7 @@

    Components

    @@ -231,7 +231,7 @@

    Components

    @@ -248,7 +248,7 @@

    Components

    @@ -299,7 +299,7 @@

    Components

    @@ -316,7 +316,7 @@

    Components

    @@ -350,7 +350,7 @@

    Components

    @@ -367,7 +367,7 @@

    Components

    diff --git a/develop/type/preconnection_type.html b/develop/type/preconnection_type.html index 306182ac29f..4a16a7d2318 100644 --- a/develop/type/preconnection_type.html +++ b/develop/type/preconnection_type.html @@ -114,7 +114,7 @@

    Variables

    @@ -170,7 +170,7 @@

    Components

    diff --git a/develop/type/private_item_p_type_callstackentry.html b/develop/type/private_item_p_type_callstackentry.html index 797282e2d07..cee69269c0e 100644 --- a/develop/type/private_item_p_type_callstackentry.html +++ b/develop/type/private_item_p_type_callstackentry.html @@ -114,7 +114,7 @@

    Variables

    - p + p
    @@ -169,7 +169,7 @@

    Components

    diff --git a/develop/type/private_item_p_type_i4tuple_callstat.html b/develop/type/private_item_p_type_i4tuple_callstat.html index 408e8357dc6..98b93f95cd1 100644 --- a/develop/type/private_item_p_type_i4tuple_callstat.html +++ b/develop/type/private_item_p_type_i4tuple_callstat.html @@ -114,7 +114,7 @@

    Variables

    - p + p
    @@ -169,7 +169,7 @@

    Components

    diff --git a/develop/type/private_item_p_type_routinereport.html b/develop/type/private_item_p_type_routinereport.html index 6069d78b878..0e9fcf46b1a 100644 --- a/develop/type/private_item_p_type_routinereport.html +++ b/develop/type/private_item_p_type_routinereport.html @@ -114,7 +114,7 @@

    Variables

    - p + p
    @@ -169,7 +169,7 @@

    Components

    diff --git a/develop/type/private_item_p_type_routinestat.html b/develop/type/private_item_p_type_routinestat.html index 21a07a86572..7b44ae11f7f 100644 --- a/develop/type/private_item_p_type_routinestat.html +++ b/develop/type/private_item_p_type_routinestat.html @@ -114,7 +114,7 @@

    Variables

    - p + p
    @@ -169,7 +169,7 @@

    Components

    diff --git a/develop/type/private_item_p_type_str_i4.html b/develop/type/private_item_p_type_str_i4.html index 7f251913f4f..fc1662ff32e 100644 --- a/develop/type/private_item_p_type_str_i4.html +++ b/develop/type/private_item_p_type_str_i4.html @@ -114,7 +114,7 @@

    Variables

    - p + p
    @@ -169,7 +169,7 @@

    Components

    diff --git a/develop/type/private_item_p_type_timerenv.html b/develop/type/private_item_p_type_timerenv.html index 6e2f1ea7ba9..6c6e840077e 100644 --- a/develop/type/private_item_p_type_timerenv.html +++ b/develop/type/private_item_p_type_timerenv.html @@ -114,7 +114,7 @@

    Variables

    - p + p
    @@ -169,7 +169,7 @@

    Components

    diff --git a/develop/type/private_item_type_callstackentry.html b/develop/type/private_item_type_callstackentry.html index c36ce673a63..459c4726552 100644 --- a/develop/type/private_item_type_callstackentry.html +++ b/develop/type/private_item_type_callstackentry.html @@ -114,7 +114,7 @@

    Variables

    - value + value
    @@ -169,7 +169,7 @@

    Components

    diff --git a/develop/type/private_item_type_i4tuple_callstat.html b/develop/type/private_item_type_i4tuple_callstat.html index f00d94e435a..b454ed0f99f 100644 --- a/develop/type/private_item_type_i4tuple_callstat.html +++ b/develop/type/private_item_type_i4tuple_callstat.html @@ -114,10 +114,10 @@

    Variables

    - key - value + key + value hash - next + next
    @@ -172,7 +172,7 @@

    Components

    @@ -189,7 +189,7 @@

    Components

    @@ -223,7 +223,7 @@

    Components

    diff --git a/develop/type/private_item_type_routinestat.html b/develop/type/private_item_type_routinestat.html index 888195d4494..1760330ac81 100644 --- a/develop/type/private_item_type_routinestat.html +++ b/develop/type/private_item_type_routinestat.html @@ -114,7 +114,7 @@

    Variables

    - value + value
    @@ -169,7 +169,7 @@

    Components

    diff --git a/develop/type/private_item_type_str_i4.html b/develop/type/private_item_type_str_i4.html index 0ad7340a587..0e1474ff04d 100644 --- a/develop/type/private_item_type_str_i4.html +++ b/develop/type/private_item_type_str_i4.html @@ -114,10 +114,10 @@

    Variables

    - key - value + key + value hash - next + next
    @@ -172,7 +172,7 @@

    Components

    @@ -189,7 +189,7 @@

    Components

    @@ -223,7 +223,7 @@

    Components

    diff --git a/develop/type/private_item_type_timerenv.html b/develop/type/private_item_type_timerenv.html index 8eab2562448..428760a8f9d 100644 --- a/develop/type/private_item_type_timerenv.html +++ b/develop/type/private_item_type_timerenv.html @@ -114,7 +114,7 @@

    Variables

    - value + value
    @@ -169,7 +169,7 @@

    Components

    diff --git a/develop/type/routine_report_type.html b/develop/type/routine_report_type.html index fecb5cd7bb6..e76c878d520 100644 --- a/develop/type/routine_report_type.html +++ b/develop/type/routine_report_type.html @@ -114,7 +114,7 @@

    Variables

    - routineN + routineN max_icost sum_icost max_ecost @@ -178,7 +178,7 @@

    Components

    diff --git a/develop/type/routine_stat_type.html b/develop/type/routine_stat_type.html index b717cfa9451..ea028fb3ae4 100644 --- a/develop/type/routine_stat_type.html +++ b/develop/type/routine_stat_type.html @@ -114,8 +114,8 @@

    Variables

    @@ -178,7 +178,7 @@

    Components

    @@ -195,7 +195,7 @@

    Components

    @@ -331,7 +331,7 @@

    Components

    diff --git a/develop/type/stack_buffer_type.html b/develop/type/stack_buffer_type.html index 19fa58ccfec..99f3c5dca98 100644 --- a/develop/type/stack_buffer_type.html +++ b/develop/type/stack_buffer_type.html @@ -115,10 +115,10 @@

    Variables

    @@ -190,7 +190,7 @@

    Components

    @@ -241,7 +241,7 @@

    Components

    diff --git a/develop/type/stack_descriptor_type.html b/develop/type/stack_descriptor_type.html index 3604f264614..81dae72759a 100644 --- a/develop/type/stack_descriptor_type.html +++ b/develop/type/stack_descriptor_type.html @@ -114,12 +114,12 @@

    Variables

    - m - n - k - max_m - max_n - max_k + m + n + k + max_m + max_n + max_k defined_mnk
    @@ -175,7 +175,7 @@

    Components

    @@ -192,7 +192,7 @@

    Components

    @@ -209,7 +209,7 @@

    Components

    @@ -226,7 +226,7 @@

    Components

    @@ -243,7 +243,7 @@

    Components

    @@ -260,7 +260,7 @@

    Components

    diff --git a/develop/type/stats_type.html b/develop/type/stats_type.html index ee662d7bdea..9d19103167c 100644 --- a/develop/type/stats_type.html +++ b/develop/type/stats_type.html @@ -124,7 +124,7 @@

    Variables

    max_smm_flopmax_acc_flopnum_mnk_stacks - padding + padding @@ -349,7 +349,7 @@

    Components

    diff --git a/develop/type/thread_private_type.html b/develop/type/thread_private_type.html index 7dbfec6a96a..44e204a1d16 100644 --- a/develop/type/thread_private_type.html +++ b/develop/type/thread_private_type.html @@ -116,7 +116,7 @@

    Variables

    @@ -205,7 +205,7 @@

    Components

    diff --git a/develop/type/timer_env_type.html b/develop/type/timer_env_type.html index dfa62505be6..5f422bf3828 100644 --- a/develop/type/timer_env_type.html +++ b/develop/type/timer_env_type.html @@ -114,14 +114,14 @@

    Variables

    @@ -177,7 +177,7 @@

    Components

    @@ -194,7 +194,7 @@

    Components

    @@ -262,7 +262,7 @@

    Components

    @@ -296,7 +296,7 @@

    Components

    - + type(dbcsr_iterator), intent(out)
    - + type(dbcsr_type), intent(in)
    - + logical, intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(inout)
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(inout)
    - + integer, intent(in),
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_iterator), intent(inout)
    - + type(dbcsr_iterator), intent(inout)
    - + type(dbcsr_iterator), intent(inout)
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(in)
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + integer, intent(out)
    - + logical, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + type(dbcsr_data_obj), intent(inout)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + real(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + real(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + real(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + real(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + complex(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + complex(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + complex(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + complex(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, public,
    - + integer, public,
    - + integer, intent(in)
    - + character(len=*), private,
    - + type(dbcsr_mp_obj), private,
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + character(len=*), intent(in),
    - + character(len=*), private,
    - + type(list_timerenv_type), intent(inout)
    - + integer, intent(in),
    - + type(list_routinestat_type), intent(inout)
    - + integer, intent(in),
    - + type(list_routinereport_type), intent(inout)
    - + integer, intent(in),
    - + type(list_callstackentry_type), intent(inout)
    - + integer, intent(in),
    - + type(list_timerenv_type), intent(in)
    - + type(list_routinestat_type), intent(in)
    - + type(list_routinereport_type), intent(in)
    - + type(list_callstackentry_type), intent(in)
    - + type(list_timerenv_type), intent(inout)
    - + type(timer_env_type), intent(in),
    - + type(list_routinestat_type), intent(inout)
    - + type(routine_stat_type), intent(in),
    - + type(list_routinereport_type), intent(inout)
    - + type(list_callstackentry_type), intent(inout)
    - + type(callstack_entry_type), intent(in)
    - + type(list_timerenv_type), intent(inout)
    - + type(list_routinestat_type), intent(inout)
    - + type(list_routinereport_type), intent(inout)
    - + type(list_callstackentry_type), intent(inout)
    - + type(list_timerenv_type), intent(inout)
    - + type(list_routinestat_type), intent(inout)
    - + type(list_routinereport_type), intent(inout)
    - + type(list_callstackentry_type), intent(inout)
    - + type(list_timerenv_type), intent(inout)
    - + type(timer_env_type), intent(in),
    - + integer, intent(in)
    - + type(list_routinestat_type), intent(inout)
    - + type(routine_stat_type), intent(in),
    - + integer, intent(in)
    - + type(list_routinereport_type), intent(inout)
    - + integer, intent(in)
    - + type(list_callstackentry_type), intent(inout)
    - + type(callstack_entry_type), intent(in)
    - + integer, intent(in)
    - + type(list_timerenv_type), intent(inout)
    - + type(timer_env_type), intent(in),
    - + integer, intent(in)
    - + type(list_routinestat_type), intent(inout)
    - + type(routine_stat_type), intent(in),
    - + integer, intent(in)
    - + type(list_routinereport_type), intent(inout)
    - + integer, intent(in)
    - + type(list_callstackentry_type), intent(inout)
    - + type(callstack_entry_type), intent(in)
    - + integer, intent(in)
    - + type(list_timerenv_type), intent(in)
    - + integer, intent(in)
    - + type(list_routinestat_type), intent(in)
    - + integer, intent(in)
    - + type(list_routinereport_type), intent(in)
    - + integer, intent(in)
    - + type(list_callstackentry_type), intent(in)
    - + integer, intent(in)
    - + type(list_timerenv_type), intent(inout)
    - + integer, intent(in)
    - + type(list_routinestat_type), intent(inout)
    - + integer, intent(in)
    - + type(list_routinereport_type), intent(inout)
    - + integer, intent(in)
    - + type(list_callstackentry_type), intent(inout)
    - + integer, intent(in)
    - + type(list_timerenv_type), intent(inout)
    - + type(list_routinestat_type), intent(inout)
    - + type(list_routinereport_type), intent(inout)
    - + type(list_callstackentry_type), intent(inout)
    - + type(list_timerenv_type), intent(in)
    - + type(list_routinestat_type), intent(in)
    - + type(list_routinereport_type), intent(in)
    - + type(list_callstackentry_type), intent(in)
    - + type(list_timerenv_type), intent(inout)
    - + type(list_routinestat_type), intent(inout)
    - + type(list_routinereport_type), intent(inout)
    - + type(list_callstackentry_type), intent(inout)
    - + type(callstack_entry_type), private
    - + type(private_item_type_callstackentry), private,
    - + type(private_item_p_type_callstackentry), private,
    - + integer, private
    - + type(list_callstackentry_type), intent(in)
    - + type(list_callstackentry_type), intent(inout)
    - + type(list_callstackentry_type), intent(inout)
    - + type(list_callstackentry_type), intent(in)
    - + integer, intent(in)
    - + type(list_callstackentry_type), intent(in)
    - + type(list_callstackentry_type), intent(inout)
    - + integer, intent(in),
    - + type(list_callstackentry_type), intent(inout)
    - + type(list_callstackentry_type), intent(inout)
    - + type(callstack_entry_type), intent(in)
    - + integer, intent(in)
    - + type(list_callstackentry_type), intent(inout)
    - + type(callstack_entry_type), intent(in)
    - + type(list_callstackentry_type), intent(inout)
    - + type(callstack_entry_type), intent(in)
    - + integer, intent(in)
    - + type(list_callstackentry_type), intent(inout)
    - + type(list_callstackentry_type), intent(inout)
    - + integer, intent(in)
    - + type(list_callstackentry_type), intent(inout)
    - + integer, intent(in)
    - + type(private_item_type_routinereport), private,
    - + type(private_item_p_type_routinereport), private,
    - + integer, private
    - + type(list_routinereport_type), intent(in)
    - + type(list_routinereport_type), intent(inout)
    - + type(list_routinereport_type), intent(inout)
    - + type(list_routinereport_type), intent(in)
    - + integer, intent(in)
    - + type(list_routinereport_type), intent(in)
    - + type(list_routinereport_type), intent(inout)
    - + integer, intent(in),
    - + type(list_routinereport_type), intent(inout)
    - + type(list_routinereport_type), intent(inout)
    - + integer, intent(in)
    - + type(list_routinereport_type), intent(inout)
    - + type(list_routinereport_type), intent(inout)
    - + integer, intent(in)
    - + type(list_routinereport_type), intent(inout)
    - + type(list_routinereport_type), intent(inout)
    - + integer, intent(in)
    - + type(list_routinereport_type), intent(inout)
    - + integer, intent(in)
    - + type(routine_stat_type), private,
    - + type(private_item_type_routinestat), private,
    - + type(private_item_p_type_routinestat), private,
    - + integer, private
    - + type(list_routinestat_type), intent(in)
    - + type(list_routinestat_type), intent(inout)
    - + type(list_routinestat_type), intent(inout)
    - + type(list_routinestat_type), intent(in)
    - + integer, intent(in)
    - + type(list_routinestat_type), intent(in)
    - + type(list_routinestat_type), intent(inout)
    - + integer, intent(in),
    - + type(list_routinestat_type), intent(inout)
    - + type(list_routinestat_type), intent(inout)
    - + type(routine_stat_type), intent(in),
    - + integer, intent(in)
    - + type(list_routinestat_type), intent(inout)
    - + type(routine_stat_type), intent(in),
    - + type(list_routinestat_type), intent(inout)
    - + type(routine_stat_type), intent(in),
    - + integer, intent(in)
    - + type(list_routinestat_type), intent(inout)
    - + type(list_routinestat_type), intent(inout)
    - + integer, intent(in)
    - + type(list_routinestat_type), intent(inout)
    - + integer, intent(in)
    - + type(timer_env_type), private,
    - + type(private_item_type_timerenv), private,
    - + type(private_item_p_type_timerenv), private,
    - + integer, private
    - + type(list_timerenv_type), intent(in)
    - + type(list_timerenv_type), intent(inout)
    - + type(list_timerenv_type), intent(inout)
    - + type(list_timerenv_type), intent(in)
    - + integer, intent(in)
    - + type(list_timerenv_type), intent(in)
    - + type(list_timerenv_type), intent(inout)
    - + integer, intent(in),
    - + type(list_timerenv_type), intent(inout)
    - + type(list_timerenv_type), intent(inout)
    - + type(timer_env_type), intent(in),
    - + integer, intent(in)
    - + type(list_timerenv_type), intent(inout)
    - + type(timer_env_type), intent(in),
    - + type(list_timerenv_type), intent(inout)
    - + type(timer_env_type), intent(in),
    - + integer, intent(in)
    - + type(list_timerenv_type), intent(inout)
    - + type(list_timerenv_type), intent(inout)
    - + integer, intent(in)
    - + type(list_timerenv_type), intent(inout)
    - + integer, intent(in)
    - + character(len=*), private,
    - + logical, private,
    - + integer, intent(in)
    - + real(kind=dp), intent(in)
    - + logical, intent(in)
    - + integer, public
    - + integer, public
    - + integer, public
    - + type(dbcsr_mp_obj), public
    - + type(dbcsr_logger_type), public,
    - + logical, intent(in),
    - + logical, intent(in),
    - + integer, intent(in)
    - + real(kind=dp), intent(in)
    - + logical, intent(in)
    - + type(dbcsr_mp_obj),
    - + integer, intent(in),
    - + character(len=*), intent(inout)
    - + logical, intent(in),
    - + character(len=*), intent(in)
    - + integer, intent(in)
    - + character(len=*), private,
    - + logical, private,
    - + integer, intent(in)
    - + type(dbcsr_mempool_type),
    - + type(dbcsr_mempool_type),
    - + integer, intent(in)
    - + type(dbcsr_data_obj)
    - + type(dbcsr_mempool_type),
    - + type(dbcsr_mempool_type),
    - + type(dbcsr_mempool_type),
    - + logical, intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + type(acc_stream_type),
    - + real(kind=dp),
    - + character(len=*), private,
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_distribution_obj), intent(inout)
    - + type(dbcsr_distribution_obj), intent(inout)
    - + type(dbcsr_mp_obj), intent(inout)
    - + type(dbcsr_mp_obj), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + character(len=*), intent(in)
    - + integer, intent(in)
    - + integer(kind=keyt), public
    - + integer(kind=valt), public
    - + type(dbcsr_heap_node), public
    - + integer, public
    - + integer, public,
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer(kind=valt), intent(in),
    - + integer(kind=keyt), intent(out)
    - + integer(kind=valt), intent(out)
    - + logical, intent(out)
    - + integer(kind=keyt), intent(out)
    - + integer(kind=valt), intent(out)
    - + logical, intent(out)
    - + integer(kind=keyt), intent(in)
    - + integer(kind=valt), intent(in)
    - + integer(kind=valt), intent(in)
    - + character(len=*), private,
    - + logical, private,
    - + logical, private,
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in)
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + type(dbcsr_scalar_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_scalar_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + character(len=*), private,
    - + logical, private,
    - + logical, private,
    - + integer, private,
    - + integer, private,
    - + type(dbcsr_data_obj), public
    - + type(dbcsr_data_obj), public
    - + integer, public,
    - + integer, public
    - + type(dbcsr_type), public
    - + type(dbcsr_buffer), public
    - + type(dbcsr_buffer), public
    - + integer, public,
    - + integer, public
    - + integer, public
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_scalar_type), intent(in),
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_mp_obj), intent(in)
    - + type(dbcsr_buffer), intent(inout)
    - + type(dbcsr_mp_obj), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out)
    - + logical, intent(in)
    - + type(dbcsr_buffer), intent(inout)
    - + type(dbcsr_buffer), intent(inout),
    - + integer, intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + type(dbcsr_buffer), intent(inout)
    - + logical, intent(in)
    - + type(dbcsr_buffer), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + type(dbcsr_memtype_type), intent(in)
    - + type(dbcsr_buffer), intent(inout)
    - + type(dbcsr_buffer), intent(inout)
    - + integer, intent(in),
    - + integer, intent(out)
    - + character(len=*), private,
    - + logical, private,
    - + type(dbcsr_work_type), private,
    - + logical, private
    - + integer, private
    - + integer, public,
    - + type(acc_stream_type), public
    - + integer(kind=int_4), public,
    - + type(dbcsr_mm_accdrv_type), intent(inout)
    - + type(dbcsr_work_type),
    - + integer,
    - + logical, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_mm_accdrv_type), intent(inout)
    - + type(dbcsr_mm_accdrv_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_mm_accdrv_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + type(stack_descriptor_type), intent(in)
    - + logical, intent(out)
    - + logical, intent(out)
    - + character(len=*), private,
    - + logical, private,
    - + logical, private,
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_imagedistribution_obj), intent(inout)
    - + type(array_i1d_obj), intent(inout)
    - + type(array_i1d_obj), intent(inout)
    - + type(array_i1d_obj), intent(in)
    - + type(array_i1d_obj), intent(in)
    - + type(array_i1d_obj), intent(in)
    - + type(dbcsr_scalar_type), intent(in),
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_2d_array_type), intent(inout)
    - + type(array_i1d_obj), intent(in)
    - + type(array_i1d_obj), intent(in)
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out)
    - + logical, intent(in)
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out)
    - + logical, intent(in)
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(inout),
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + logical, intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(in),
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + logical, intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(in),
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + logical, intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(in),
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + logical, intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(in),
    - + character(len=*), private,
    - + type(dbcsr_memtype_type), public,
    - + type(dbcsr_mm_multrec_type), public,
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_memtype_type), intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(inout),
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(in)
    - + integer,
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(in)
    - + real(kind=real_8), intent(in),
    - + integer, intent(in)
    - + real(kind=real_4), intent(in),
    - + integer, intent(in)
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in)
    - + complex(kind=real_4), intent(in),
    - + character(len=*), private,
    - + logical, private,
    - + logical, private,
    - + integer, private
    - + integer, private
    - + integer, private
    - + type(dbcsr_work_type), private,
    - + logical, private
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_mm_csr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + logical, intent(inout)
    - + logical, intent(inout)
    - + real(kind=sp),
    - + integer(kind=int_8), intent(inout)
    - + type(dbcsr_mm_csr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in)
    - + logical, intent(in)
    - + real(kind=sp),
    - + integer(kind=int_8), intent(inout)
    - + type(dbcsr_mm_csr_type), intent(inout)
    - + type(dbcsr_type), intent(in),
    - + type(dbcsr_type), intent(in),
    - + integer,
    - + integer,
    - + logical, intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_mm_csr_type), intent(inout)
    - + type(dbcsr_mm_csr_type), intent(inout)
    - + type(dbcsr_mm_csr_type), intent(inout)
    - + type(dbcsr_data_obj), intent(in)
    - + integer(kind=int_8), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in)
    - + type(dbcsr_mm_csr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_mm_csr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(out),
    - + integer, intent(in)
    - + integer, intent(in)
    - + character(len=*), private,
    - + logical, private,
    - + logical, private,
    - + type(dbcsr_distribution_obj), intent(in)
    - + type(dbcsr_distribution_obj), intent(in)
    - + type(dbcsr_imagedistribution_obj), intent(in)
    - + type(array_i1d_obj), intent(out)
    - + type(array_i1d_obj), intent(out)
    - + type(array_i1d_obj), intent(out)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_imagedistribution_obj), intent(in)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(array_i1d_obj), intent(in)
    - + type(array_i1d_obj), intent(out)
    - + integer, intent(out),
    - + type(array_i1d_obj), intent(out)
    - + type(dbcsr_distribution_obj), intent(inout)
    - + type(array_i1d_obj), intent(out)
    - + type(dbcsr_distribution_obj), intent(inout)
    - + type(array_i1d_obj), intent(out)
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(out),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + character(len=*), private,
    - + logical, private,
    - + logical, private,
    - + type(dbcsr_data_obj), public
    - + type(dbcsr_mm_hostdrv_type), intent(inout)
    - + type(dbcsr_work_type),
    - + type(dbcsr_mm_hostdrv_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + type(stack_descriptor_type), intent(in)
    - + logical, intent(out)
    - + integer, intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(inout),
    - + type(stack_descriptor_type), intent(in)
    - + integer, intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(inout),
    - + type(stack_descriptor_type), intent(in)
    - + integer, intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(inout),
    - + type(stack_descriptor_type), intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(inout),
    - + type(stack_descriptor_type), intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + character(len=*), private,
    - + logical, private,
    - + logical, private
    - + logical, private
    - + logical, private
    - + integer, private,
    - + integer, private,
    - + integer, private,
    - + integer, private,
    - + integer, private,
    - + real(kind=sp), private,
    - + real(kind=real_8), private
    - + integer(kind=int_8), private
    - + type(dbcsr_work_type), private,
    - + type(dbcsr_mm_multrec_type), intent(in)
    - + type(dbcsr_mm_multrec_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(dbcsr_mm_multrec_type), intent(out)
    - + type(dbcsr_type), intent(in),
    - + type(dbcsr_type), intent(in),
    - + logical, intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=sp), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer,
    - + logical, intent(in),
    - + type(dbcsr_mm_multrec_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer(kind=int_8), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_mm_multrec_type), intent(inout)
    - + type(dbcsr_mm_multrec_type), intent(inout)
    - + type(dbcsr_mm_multrec_type), intent(inout)
    - + type(dbcsr_mm_multrec_type), intent(inout)
    - + type(dbcsr_data_obj), intent(in)
    - + integer(kind=int_8), intent(inout)
    - + type(dbcsr_mm_multrec_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=sp), intent(in),
    - + integer, intent(in)
    - + integer, intent(in),
    - + real(kind=sp), intent(out),
    - + real(kind=real_8), intent(in)
    - + integer, intent(inout)
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(inout)
    - + real(kind=real_8), intent(inout),
    - + real(kind=real_8), intent(in)
    - + integer, intent(inout)
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(inout)
    - + real(kind=real_4), intent(inout),
    - + real(kind=real_8), intent(in)
    - + integer, intent(inout)
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(inout)
    - + complex(kind=real_8), intent(inout),
    - + real(kind=real_8), intent(in)
    - + integer, intent(inout)
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(inout)
    - + complex(kind=real_4), intent(inout),
    - + character(len=*), private,
    - + type(dbcsr_work_type), private,
    - + logical, private
    - + integer(kind=int_4), public,
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in)
    - + type(dbcsr_mm_sched_type), intent(inout)
    - + type(dbcsr_mm_sched_type), intent(inout)
    - + type(dbcsr_work_type),
    - + integer,
    - + logical, intent(in)
    - + type(dbcsr_mm_sched_type), intent(inout)
    - + type(dbcsr_mm_sched_type), intent(inout)
    - + type(dbcsr_mm_sched_type), intent(inout)
    - + type(dbcsr_mm_sched_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(stack_descriptor_type), intent(in)
    - + type(dbcsr_mm_sched_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical,
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in)
    - + character(len=*), private,
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + character(len=*), private,
    - + type(dbcsr_mp_obj), intent(out)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_mp_obj), intent(out)
    - + type(mp_comm_type), intent(in)
    - + integer,
    - + type(dbcsr_mp_obj), intent(in)
    - + type(dbcsr_mp_obj), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_mp_obj), intent(in)
    - + type(dbcsr_mp_obj), intent(in)
    - + type(dbcsr_mp_obj), intent(in)
    - + type(dbcsr_mp_obj), intent(in)
    - + type(dbcsr_mp_obj), intent(in)
    - + type(dbcsr_mp_obj), intent(in)
    - + type(dbcsr_mp_obj), intent(in)
    - + type(dbcsr_mp_obj), intent(in)
    - + type(dbcsr_mp_obj), intent(in)
    - + type(dbcsr_mp_obj), intent(in)
    - + type(dbcsr_mp_obj), intent(in)
    - + type(dbcsr_mp_obj), intent(out)
    - + type(dbcsr_mp_obj), intent(out)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_mp_obj), intent(out)
    - + type(mp_comm_type), intent(in)
    - + integer,
    - + type(dbcsr_mp_obj), intent(inout)
    - + type(dbcsr_mp_obj), intent(out)
    - + type(mp_comm_type), intent(out)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + type(dbcsr_mp_obj), intent(inout)
    - + type(dbcsr_mp_obj), intent(in)
    - + character(len=*), private,
    - + real(kind=real_4), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_win_type), intent(out)
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in)
    - + type(mp_win_type), intent(in)
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_request_type), intent(out)
    - + type(mp_type_descriptor_type), intent(in),
    - + type(mp_type_descriptor_type), intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + type(dbcsr_data_obj), intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in)
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + character(len=*), private,
    - + type(mp_comm_type), intent(in)
    - + logical, intent(out)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + logical
    - + integer
    - + type(mp_comm_type), intent(in)
    - + logical,
    - + integer
    - + type(mp_comm_type), intent(in)
    - + character(len=*)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + character(len=*)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_8)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_8)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_4)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_8)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_4)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + logical, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + logical, intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + logical, intent(inout),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in)
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in)
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in)
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in)
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in)
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in)
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in)
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in)
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in)
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in)
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in)
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_4), intent(in)
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_8), intent(in)
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_4), intent(in)
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_8), intent(in)
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_4), intent(inout)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_8), intent(inout)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_4), intent(inout)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_8), intent(inout)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_4), intent(inout)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_8), intent(inout)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_4), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_8), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer, intent(in),
    - + integer(kind=int_4), intent(inout),
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer, intent(in),
    - + integer(kind=int_8), intent(inout),
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer, intent(in),
    - + real(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer, intent(in),
    - + real(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer, intent(in),
    - + complex(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer, intent(in),
    - + complex(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer(kind=int_4), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer(kind=int_8), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4)
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4),
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8)
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8),
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8)
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8),
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4)
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4),
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8)
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8),
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4)
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4),
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout),
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout),
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout),
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout),
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer, intent(in)
    - + integer(kind=int_4), intent(out),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer, intent(in)
    - + integer(kind=int_8), intent(out),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + integer, intent(in)
    - + real(kind=real_8), intent(out),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + integer, intent(in)
    - + real(kind=real_4), intent(out),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in)
    - + complex(kind=real_8), intent(out),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in)
    - + complex(kind=real_4), intent(out),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4)
    - + integer, intent(in)
    - + integer(kind=int_4)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_4),
    - + integer, intent(in)
    - + integer(kind=int_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_8)
    - + integer, intent(in)
    - + integer(kind=int_8)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_8),
    - + integer, intent(in)
    - + integer(kind=int_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_8)
    - + integer, intent(in)
    - + real(kind=real_8)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_8),
    - + integer, intent(in)
    - + real(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_4)
    - + integer, intent(in)
    - + real(kind=real_4)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_4),
    - + integer, intent(in)
    - + real(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_8)
    - + integer, intent(in)
    - + complex(kind=real_8)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_8),
    - + integer, intent(in)
    - + complex(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_4)
    - + integer, intent(in)
    - + complex(kind=real_4)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_4),
    - + integer, intent(in)
    - + complex(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + logical,
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + type(mp_type_descriptor_type), intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + logical,
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + type(mp_type_descriptor_type), intent(inout)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_4),
    - + type(mp_comm_type), intent(in)
    - + type(mp_win_type), intent(out)
    - + integer(kind=int_8),
    - + type(mp_comm_type), intent(in)
    - + type(mp_win_type), intent(out)
    - + real(kind=real_8),
    - + type(mp_comm_type), intent(in)
    - + type(mp_win_type), intent(out)
    - + real(kind=real_4),
    - + type(mp_comm_type), intent(in)
    - + type(mp_win_type), intent(out)
    - + complex(kind=real_8),
    - + type(mp_comm_type), intent(in)
    - + type(mp_win_type), intent(out)
    - + complex(kind=real_4),
    - + type(mp_comm_type), intent(in)
    - + type(mp_win_type), intent(out)
    - + integer(kind=int_4),
    - + integer, intent(in)
    - + type(mp_win_type), intent(in)
    - + integer(kind=int_4),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_request_type), intent(out)
    - + type(mp_type_descriptor_type), intent(in),
    - + type(mp_type_descriptor_type), intent(in),
    - + integer(kind=int_8),
    - + integer, intent(in)
    - + type(mp_win_type), intent(in)
    - + integer(kind=int_8),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_request_type), intent(out)
    - + type(mp_type_descriptor_type), intent(in),
    - + type(mp_type_descriptor_type), intent(in),
    - + real(kind=real_8),
    - + integer, intent(in)
    - + type(mp_win_type), intent(in)
    - + real(kind=real_8),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_request_type), intent(out)
    - + type(mp_type_descriptor_type), intent(in),
    - + type(mp_type_descriptor_type), intent(in),
    - + real(kind=real_4),
    - + integer, intent(in)
    - + type(mp_win_type), intent(in)
    - + real(kind=real_4),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_request_type), intent(out)
    - + type(mp_type_descriptor_type), intent(in),
    - + type(mp_type_descriptor_type), intent(in),
    - + complex(kind=real_8),
    - + integer, intent(in)
    - + type(mp_win_type), intent(in)
    - + complex(kind=real_8),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_request_type), intent(out)
    - + type(mp_type_descriptor_type), intent(in),
    - + type(mp_type_descriptor_type), intent(in),
    - + complex(kind=real_4),
    - + integer, intent(in)
    - + type(mp_win_type), intent(in)
    - + complex(kind=real_4),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_request_type), intent(out)
    - + type(mp_type_descriptor_type), intent(in),
    - + type(mp_type_descriptor_type), intent(in),
    - + integer(kind=int_4),
    - + integer, intent(in)
    - + integer, intent(out),
    - + integer(kind=int_8),
    - + integer, intent(in)
    - + integer, intent(out),
    - + real(kind=real_8),
    - + integer, intent(in)
    - + integer, intent(out),
    - + real(kind=real_4),
    - + integer, intent(in)
    - + integer, intent(out),
    - + complex(kind=real_8),
    - + integer, intent(in)
    - + integer, intent(out),
    - + complex(kind=real_4),
    - + integer, intent(in)
    - + integer, intent(out),
    - + integer(kind=int_4),
    - + integer, intent(out),
    - + integer(kind=int_8),
    - + integer, intent(out),
    - + real(kind=real_8),
    - + integer, intent(out),
    - + real(kind=real_4),
    - + integer, intent(out),
    - + complex(kind=real_8),
    - + integer, intent(out),
    - + complex(kind=real_4),
    - + integer, intent(out),
    - + integer(kind=int_4),
    - + integer(kind=int_8),
    - + real(kind=real_8),
    - + real(kind=real_4),
    - + complex(kind=real_8),
    - + complex(kind=real_4),
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + character(len=*), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + character(len=*), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_4), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_4), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_8), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_8), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_8), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_8), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_4), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_4), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_8), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_8), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_4), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_4), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + character(len=*), intent(out)
    - + integer, private
    - + integer, private
    - + integer, private
    - + integer, private
    - + integer, private
    - + integer, public,
    - + real(kind=real_4), public,
    - + real(kind=real_8), public,
    - + complex(kind=real_4), public,
    - + complex(kind=real_8), public,
    - + integer, public,
    - + character(len=20), public
    - + integer, public
    - + class(mp_comm_type), intent(in)
    - + class(mp_request_type), intent(in)
    - + class(mp_win_type), intent(in)
    - + class(mp_info_type), intent(in)
    - + integer, intent(in),
    - + integer(kind=int_4),
    - + integer, intent(in),
    - + integer(kind=int_8),
    - + integer, intent(in),
    - + real(kind=real_8),
    - + integer, intent(in),
    - + real(kind=real_4),
    - + integer, intent(in),
    - + complex(kind=real_8),
    - + integer, intent(in),
    - + complex(kind=real_4),
    - + class(mp_comm_type), intent(inout)
    - + integer, intent(in)
    - + class(mp_request_type), intent(inout)
    - + integer, intent(in)
    - + class(mp_win_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + class(mp_info_type), intent(inout)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(out)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_comm_type), intent(in)
    - + logical, intent(out)
    - + integer, intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer, intent(out)
    - + type(mp_comm_type), intent(in)
    - + type(mp_comm_type), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + type(mp_request_type), intent(inout)
    - + type(mp_request_type), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer, intent(out)
    - + logical
    - + integer
    - + type(mp_comm_type), intent(in)
    - + logical,
    - + integer
    - + type(mp_comm_type), intent(in)
    - + logical,
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + logical,
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + character(len=*)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + character(len=*)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + logical, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + logical, intent(inout),
    - + type(mp_comm_type), intent(in)
    - + logical, intent(inout),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out),
    - + character(len=*), intent(in)
    - + type(mp_info_type), intent(in),
    - + character(len=*), intent(in)
    - + type(mp_info_type), intent(in),
    - + integer(kind=file_offset), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + character(len=*), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + character(len=*), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + character(len=*), intent(out)
    - + type(mp_type_descriptor_type), intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + type(mp_type_descriptor_type), intent(inout)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + type(mp_win_type), intent(inout)
    - + type(mp_win_type), intent(in)
    - + type(mp_win_type), intent(inout)
    - + type(mp_win_type), intent(inout)
    - + integer(kind=int_4), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer(kind=int_4), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4)
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4),
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout),
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_4), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer, intent(in),
    - + integer(kind=int_4), intent(inout),
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_4), intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in)
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in)
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in)
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_4), intent(in),
    - + integer, intent(in)
    - + integer(kind=int_4), intent(out),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4)
    - + integer, intent(in)
    - + integer(kind=int_4)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_4),
    - + integer, intent(in)
    - + integer(kind=int_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_4),
    - + type(mp_comm_type), intent(in)
    - + type(mp_win_type), intent(out)
    - + integer(kind=int_4),
    - + integer, intent(in)
    - + type(mp_win_type), intent(in)
    - + integer(kind=int_4),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_request_type), intent(out)
    - + type(mp_type_descriptor_type), intent(in),
    - + type(mp_type_descriptor_type), intent(in),
    - + integer(kind=int_4),
    - + integer, intent(in)
    - + integer, intent(out),
    - + integer(kind=int_4),
    - + integer, intent(out),
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_4), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_4), intent(out)
    - + integer(kind=int_8), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer(kind=int_8), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8)
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8),
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_8), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer, intent(in),
    - + integer(kind=int_8), intent(inout),
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_8), intent(in),
    - + integer, intent(in)
    - + integer(kind=int_8), intent(out),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8)
    - + integer, intent(in)
    - + integer(kind=int_8)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_8),
    - + integer, intent(in)
    - + integer(kind=int_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_8),
    - + type(mp_comm_type), intent(in)
    - + type(mp_win_type), intent(out)
    - + integer(kind=int_8),
    - + integer, intent(in)
    - + type(mp_win_type), intent(in)
    - + integer(kind=int_8),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_request_type), intent(out)
    - + type(mp_type_descriptor_type), intent(in),
    - + type(mp_type_descriptor_type), intent(in),
    - + integer(kind=int_8),
    - + integer, intent(in)
    - + integer, intent(out),
    - + integer(kind=int_8),
    - + integer, intent(out),
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_8), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_8), intent(out)
    - + real(kind=real_8), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8)
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8),
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer, intent(in),
    - + real(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_8), intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in)
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in)
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in)
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_8), intent(in),
    - + integer, intent(in)
    - + real(kind=real_8), intent(out),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8)
    - + integer, intent(in)
    - + real(kind=real_8)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_8),
    - + integer, intent(in)
    - + real(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_8),
    - + type(mp_comm_type), intent(in)
    - + type(mp_win_type), intent(out)
    - + real(kind=real_8),
    - + integer, intent(in)
    - + type(mp_win_type), intent(in)
    - + real(kind=real_8),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_request_type), intent(out)
    - + type(mp_type_descriptor_type), intent(in),
    - + type(mp_type_descriptor_type), intent(in),
    - + real(kind=real_8),
    - + integer, intent(in)
    - + integer, intent(out),
    - + real(kind=real_8),
    - + integer, intent(out),
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_8), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_8), intent(out)
    - + real(kind=real_4), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4)
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4),
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout),
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer, intent(in),
    - + real(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_4), intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in)
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in)
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in)
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_4), intent(in),
    - + integer, intent(in)
    - + real(kind=real_4), intent(out),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4)
    - + integer, intent(in)
    - + real(kind=real_4)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_4),
    - + integer, intent(in)
    - + real(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_4),
    - + type(mp_comm_type), intent(in)
    - + type(mp_win_type), intent(out)
    - + real(kind=real_4),
    - + integer, intent(in)
    - + type(mp_win_type), intent(in)
    - + real(kind=real_4),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_request_type), intent(out)
    - + type(mp_type_descriptor_type), intent(in),
    - + type(mp_type_descriptor_type), intent(in),
    - + real(kind=real_4),
    - + integer, intent(in)
    - + integer, intent(out),
    - + real(kind=real_4),
    - + integer, intent(out),
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_4), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_4), intent(out)
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8)
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8),
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout),
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer, intent(in),
    - + complex(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_8), intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in)
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in)
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in)
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in)
    - + complex(kind=real_8), intent(out),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8)
    - + integer, intent(in)
    - + complex(kind=real_8)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_8),
    - + integer, intent(in)
    - + complex(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_8),
    - + type(mp_comm_type), intent(in)
    - + type(mp_win_type), intent(out)
    - + complex(kind=real_8),
    - + integer, intent(in)
    - + type(mp_win_type), intent(in)
    - + complex(kind=real_8),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_request_type), intent(out)
    - + type(mp_type_descriptor_type), intent(in),
    - + type(mp_type_descriptor_type), intent(in),
    - + complex(kind=real_8),
    - + integer, intent(in)
    - + integer, intent(out),
    - + complex(kind=real_8),
    - + integer, intent(out),
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_8), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_8), intent(out)
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4)
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4),
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout),
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer, intent(in),
    - + complex(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_4), intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in)
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in)
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in)
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in)
    - + complex(kind=real_4), intent(out),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4)
    - + integer, intent(in)
    - + complex(kind=real_4)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_4),
    - + integer, intent(in)
    - + complex(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_4),
    - + type(mp_comm_type), intent(in)
    - + type(mp_win_type), intent(out)
    - + complex(kind=real_4),
    - + integer, intent(in)
    - + type(mp_win_type), intent(in)
    - + complex(kind=real_4),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_request_type), intent(out)
    - + type(mp_type_descriptor_type), intent(in),
    - + type(mp_type_descriptor_type), intent(in),
    - + complex(kind=real_4),
    - + integer, intent(in)
    - + integer, intent(out),
    - + complex(kind=real_4),
    - + integer, intent(out),
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_4), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_4), intent(out)
    - + character(len=*), private,
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + type(dbcsr_scalar_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_scalar_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + real(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + real(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + complex(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + complex(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + real(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + real(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + complex(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + complex(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + character(len=*), private,
    - + logical, private,
    - + logical, private,
    - + real(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_4), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_8), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_4), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_8), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_4), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_8), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_4), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_8), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_data_obj), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_4), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_8), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_4), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_8), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_scalar_type), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_4), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_8), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_4), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_8), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(in)
    - + character(len=1), intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + logical, intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + real(kind=dp),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_data_obj), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + logical,
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + character(len=*), intent(in),
    - + logical, intent(in),
    - + character(len=1), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + character(len=*), intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_scalar_type), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer,
    - + integer,
    - + integer,
    - + integer,
    - + integer,
    - + integer,
    - + integer,
    - + integer,
    - + type(dbcsr_distribution_obj), intent(out),
    - + character(len=*), intent(out),
    - + type(dbcsr_data_obj), intent(out),
    - + character(len=1),
    - + integer,
    - + type(mp_comm_type), intent(out),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_8), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_8), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_8), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_8), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_8), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_8), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + logical, intent(in)
    - + logical, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(in)
    - + logical, intent(in)
    - + integer(kind=int_8), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_4), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_4), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_4), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_4), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + logical, intent(in)
    - + logical, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(in)
    - + logical, intent(in)
    - + integer(kind=int_8), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_8), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_8), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_8), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_8), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + logical, intent(in)
    - + logical, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(in)
    - + logical, intent(in)
    - + integer(kind=int_8), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_4), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_4), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_4), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_4), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + logical, intent(in)
    - + logical, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(in)
    - + logical, intent(in)
    - + integer(kind=int_8), intent(inout)
    - + character(len=*), private,
    - + character(len=*), intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + character(len=*), private,
    - + logical, private,
    - + integer(kind=int_4),
    - + integer, intent(in),
    - + integer, intent(in)
    - + real(kind=dp), intent(in),
    - + logical, intent(in),
    - + type(dbcsr_memtype_type), intent(in),
    - + logical, intent(in),
    - + integer(kind=int_8),
    - + integer, intent(in),
    - + integer, intent(in)
    - + real(kind=dp), intent(in),
    - + logical, intent(in),
    - + type(dbcsr_memtype_type), intent(in),
    - + logical, intent(in),
    - + real(kind=real_4),
    - + integer, intent(in),
    - + integer, intent(in)
    - + real(kind=dp), intent(in),
    - + logical, intent(in),
    - + type(dbcsr_memtype_type), intent(in),
    - + logical, intent(in),
    - + real(kind=real_8),
    - + integer, intent(in),
    - + integer, intent(in)
    - + real(kind=dp), intent(in),
    - + logical, intent(in),
    - + type(dbcsr_memtype_type), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_4),
    - + integer, intent(in),
    - + integer, intent(in)
    - + real(kind=dp), intent(in),
    - + logical, intent(in),
    - + type(dbcsr_memtype_type), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_8),
    - + integer, intent(in),
    - + integer, intent(in)
    - + real(kind=dp), intent(in),
    - + logical, intent(in),
    - + type(dbcsr_memtype_type), intent(in),
    - + logical, intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer(kind=int_4),
    - + integer, intent(in)
    - + integer(kind=int_8),
    - + integer, intent(in)
    - + real(kind=real_4),
    - + integer, intent(in)
    - + real(kind=real_8),
    - + integer, intent(in)
    - + complex(kind=real_4),
    - + integer, intent(in)
    - + complex(kind=real_8),
    - + integer, intent(in)
    - + integer(kind=int_4),
    - + integer, intent(in),
    - + integer(kind=int_8),
    - + integer, intent(in),
    - + real(kind=real_4),
    - + integer, intent(in),
    - + real(kind=real_8),
    - + integer, intent(in),
    - + complex(kind=real_4),
    - + integer, intent(in),
    - + complex(kind=real_8),
    - + integer, intent(in),
    - + integer(kind=int_4),
    - + integer(kind=int_8),
    - + real(kind=real_4),
    - + real(kind=real_8),
    - + complex(kind=real_4),
    - + complex(kind=real_8),
    - + integer(kind=int_4),
    - + integer(kind=int_8),
    - + real(kind=real_4),
    - + real(kind=real_8),
    - + complex(kind=real_4),
    - + complex(kind=real_8),
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8),
    - + integer, intent(in),
    - + integer, intent(in)
    - + real(kind=dp), intent(in),
    - + logical, intent(in),
    - + type(dbcsr_memtype_type), intent(in),
    - + logical, intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8),
    - + integer, intent(in)
    - + real(kind=real_8),
    - + integer, intent(in),
    - + real(kind=real_8),
    - + real(kind=real_8),
    - + real(kind=real_4),
    - + integer, intent(in),
    - + integer, intent(in)
    - + real(kind=dp), intent(in),
    - + logical, intent(in),
    - + type(dbcsr_memtype_type), intent(in),
    - + logical, intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4),
    - + integer, intent(in)
    - + real(kind=real_4),
    - + integer, intent(in),
    - + real(kind=real_4),
    - + real(kind=real_4),
    - + complex(kind=real_8),
    - + integer, intent(in),
    - + integer, intent(in)
    - + real(kind=dp), intent(in),
    - + logical, intent(in),
    - + type(dbcsr_memtype_type), intent(in),
    - + logical, intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8),
    - + integer, intent(in)
    - + complex(kind=real_8),
    - + integer, intent(in),
    - + complex(kind=real_8),
    - + complex(kind=real_8),
    - + complex(kind=real_4),
    - + integer, intent(in),
    - + integer, intent(in)
    - + real(kind=dp), intent(in),
    - + logical, intent(in),
    - + type(dbcsr_memtype_type), intent(in),
    - + logical, intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4),
    - + integer, intent(in)
    - + complex(kind=real_4),
    - + integer, intent(in),
    - + complex(kind=real_4),
    - + complex(kind=real_4),
    - + integer(kind=int_4),
    - + integer, intent(in),
    - + integer, intent(in)
    - + real(kind=dp), intent(in),
    - + logical, intent(in),
    - + type(dbcsr_memtype_type), intent(in),
    - + logical, intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer(kind=int_4),
    - + integer, intent(in)
    - + integer(kind=int_4),
    - + integer, intent(in),
    - + integer(kind=int_4),
    - + integer(kind=int_4),
    - + integer(kind=int_8),
    - + integer, intent(in),
    - + integer, intent(in)
    - + real(kind=dp), intent(in),
    - + logical, intent(in),
    - + type(dbcsr_memtype_type), intent(in),
    - + logical, intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer(kind=int_8),
    - + integer, intent(in)
    - + integer(kind=int_8),
    - + integer, intent(in),
    - + integer(kind=int_8),
    - + integer(kind=int_8),
    - + character(len=*), intent(inout)
    - + logical, intent(in),
    - + character(len=*), intent(inout)
    - + character(len=*), intent(in)
    - + integer, intent(out)
    - + character(len=*), private,
    - + type(dbcsr_tas_type), intent(out)
    - + character(len=*), intent(in)
    - + type(dbcsr_tas_distribution_type), intent(inout)
    - + integer, intent(in),
    - + class(dbcsr_tas_rowcol_data), intent(in)
    - + class(dbcsr_tas_rowcol_data), intent(in)
    - + type(dbcsr_tas_type), intent(inout)
    - + type(dbcsr_tas_type), intent(out)
    - + character(len=*), intent(in),
    - + integer, intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + type(dbcsr_data_obj)
    - + logical, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_scalar_type), intent(in),
    - + type(dbcsr_tas_type), intent(in)
    - + type(dbcsr_tas_type), intent(inout)
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in),
    - + type(dbcsr_tas_iterator), intent(inout)
    - + integer(kind=int_8), intent(out)
    - + integer(kind=int_8), intent(out)
    - + type(dbcsr_data_obj), intent(inout)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_iterator), intent(inout)
    - + integer(kind=int_8), intent(out)
    - + integer(kind=int_8), intent(out)
    - + integer, intent(out)
    - + logical, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_iterator), intent(inout)
    - + integer(kind=int_8), intent(out)
    - + integer(kind=int_8), intent(out)
    - + real(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_iterator), intent(inout)
    - + integer(kind=int_8), intent(out)
    - + integer(kind=int_8), intent(out)
    - + real(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_iterator), intent(inout)
    - + integer(kind=int_8), intent(out)
    - + integer(kind=int_8), intent(out)
    - + complex(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_iterator), intent(inout)
    - + integer(kind=int_8), intent(out)
    - + integer(kind=int_8), intent(out)
    - + complex(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + real(kind=real_8), intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + real(kind=real_4), intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + real(kind=real_4), intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + complex(kind=real_8), intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + complex(kind=real_8), intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + complex(kind=real_4), intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + complex(kind=real_4), intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + real(kind=real_8),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + real(kind=real_4),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + complex(kind=real_8),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + complex(kind=real_4),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_type), intent(inout)
    - + real(kind=real_8), intent(in)
    - + type(dbcsr_tas_type), intent(inout)
    - + real(kind=real_4), intent(in)
    - + type(dbcsr_tas_type), intent(inout)
    - + complex(kind=real_8), intent(in)
    - + type(dbcsr_tas_type), intent(inout)
    - + complex(kind=real_4), intent(in)
    - + type(dbcsr_tas_type), intent(inout)
    - + real(kind=real_8), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + real(kind=real_4), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + complex(kind=real_8), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + complex(kind=real_4), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_tas_iterator), intent(in)
    - + type(dbcsr_tas_type), intent(in)
    - + type(dbcsr_tas_type), intent(in)
    - + type(dbcsr_tas_type), intent(in)
    - + type(dbcsr_tas_type), intent(in)
    - + type(dbcsr_tas_type), intent(in)
    - + type(dbcsr_tas_type), intent(in)
    - + type(dbcsr_tas_type), intent(in)
    - + type(dbcsr_tas_type), intent(in)
    - + type(dbcsr_tas_type), intent(in)
    - + type(dbcsr_tas_type), intent(in)
    - + type(dbcsr_tas_type), intent(in)
    - + type(dbcsr_tas_type), intent(in)
    - + type(dbcsr_tas_type), intent(in)
    - + type(dbcsr_tas_type), intent(out)
    - + character(len=*), intent(in)
    - + type(dbcsr_tas_distribution_type), intent(inout)
    - + integer, intent(in),
    - + class(dbcsr_tas_rowcol_data), intent(in)
    - + class(dbcsr_tas_rowcol_data), intent(in)
    - + type(dbcsr_tas_type), intent(inout)
    - + type(dbcsr_tas_type), intent(out)
    - + character(len=*), intent(in),
    - + integer, intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + type(dbcsr_tas_type), intent(inout)
    - + type(dbcsr_tas_type), intent(in)
    - + logical, intent(in),
    - + type(dbcsr_tas_type), intent(in)
    - + type(dbcsr_tas_type), intent(inout)
    - + type(dbcsr_tas_type), intent(inout)
    - + type(dbcsr_tas_distribution_type), intent(out)
    - + type(mp_comm_type), intent(in)
    - + class(dbcsr_tas_distribution), intent(in)
    - + class(dbcsr_tas_distribution), intent(in)
    - + type(dbcsr_tas_distribution_type), intent(inout)
    - + type(dbcsr_tas_type), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer, intent(out)
    - + type(dbcsr_tas_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_tas_split_info), intent(in)
    - + type(dbcsr_tas_iterator), intent(inout)
    - + type(dbcsr_tas_type), intent(in)
    - + type(dbcsr_tas_iterator), intent(inout)
    - + type(dbcsr_tas_iterator), intent(inout)
    - + integer(kind=int_8), intent(out)
    - + integer(kind=int_8), intent(out)
    - + type(dbcsr_data_obj), intent(inout)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_iterator), intent(inout)
    - + integer(kind=int_8), intent(out)
    - + integer(kind=int_8), intent(out)
    - + integer, intent(out)
    - + logical, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + type(dbcsr_data_obj)
    - + logical, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_scalar_type), intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_type), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer, intent(out)
    - + integer, intent(out)
    - + type(dbcsr_tas_type), intent(inout)
    - + type(dbcsr_tas_type), intent(in)
    - + integer(kind=int_8), intent(out),
    - + integer(kind=int_8), intent(out),
    - + integer(kind=int_8), intent(out),
    - + integer(kind=int_8), intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + class(dbcsr_tas_distribution), intent(out),
    - + class(dbcsr_tas_distribution), intent(out),
    - + class(dbcsr_tas_rowcol_data), intent(out),
    - + class(dbcsr_tas_rowcol_data), intent(out),
    - + type(dbcsr_tas_distribution_type),
    - + character(len=*), intent(out),
    - + character(len=1),
    - + integer,
    - + type(dbcsr_tas_iterator), intent(inout)
    - + integer(kind=int_8), intent(out)
    - + integer(kind=int_8), intent(out)
    - + real(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_iterator), intent(inout)
    - + integer(kind=int_8), intent(out)
    - + integer(kind=int_8), intent(out)
    - + real(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_iterator), intent(inout)
    - + integer(kind=int_8), intent(out)
    - + integer(kind=int_8), intent(out)
    - + complex(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_iterator), intent(inout)
    - + integer(kind=int_8), intent(out)
    - + integer(kind=int_8), intent(out)
    - + complex(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + real(kind=real_8), intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + real(kind=real_4), intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + real(kind=real_4), intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + complex(kind=real_8), intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + complex(kind=real_8), intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + complex(kind=real_4), intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + complex(kind=real_4), intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + real(kind=real_8),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + real(kind=real_4),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + complex(kind=real_8),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + complex(kind=real_4),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_type), intent(inout)
    - + real(kind=real_8), intent(in)
    - + type(dbcsr_tas_type), intent(inout)
    - + real(kind=real_4), intent(in)
    - + type(dbcsr_tas_type), intent(inout)
    - + complex(kind=real_8), intent(in)
    - + type(dbcsr_tas_type), intent(inout)
    - + complex(kind=real_4), intent(in)
    - + type(dbcsr_tas_type), intent(inout)
    - + real(kind=real_8), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + real(kind=real_4), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + complex(kind=real_8), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + complex(kind=real_4), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + character(len=*), private,
    - + integer, intent(in)
    - + class(dbcsr_tas_distribution), intent(in)
    - + class(dbcsr_tas_distribution), intent(in)
    - + integer, intent(in)
    - + class(dbcsr_tas_rowcol_data), intent(in)
    procedure(rowcol_dist), public, deferred :: - dist
    procedure, public :: - dist => cyclic_dist
    procedure, public :: - dist => arb_dist
    - + integer, public
    procedure, public :: - dist => repl_dist
    procedure(rowcol_data), public, deferred :: - DATA
    procedure, public :: - DATA => blk_size_arb
    procedure, public :: - DATA => blk_size_repl
    procedure, public :: - DATA => blk_size_one
    - + class(dbcsr_tas_blk_size_arb), intent(in)
    - + class(dbcsr_tas_blk_size_repl), intent(in)
    - + class(dbcsr_tas_blk_size_one), intent(in)
    - + class(dbcsr_tas_dist_arb), intent(in)
    - + class(dbcsr_tas_dist_repl), intent(in)
    - + class(dbcsr_tas_dist_repl), intent(in)
    - + integer, intent(in)
    - + class(dbcsr_tas_dist_arb), intent(in)
    - + integer, intent(in)
    - + class(dbcsr_tas_rowcol_data), intent(in)
    - + integer, intent(in)
    - + class(dbcsr_tas_dist_cyclic), intent(in)
    - + class(dbcsr_tas_dist_cyclic), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(out),
    - + character(len=*), private,
    - + integer, intent(in),
    - + type(dbcsr_tas_type), intent(in)
    - + integer, intent(in)
    - + logical, intent(in),
    - + type(dbcsr_tas_type), intent(in)
    - + integer, intent(in)
    - + logical, intent(in),
    - + type(dbcsr_tas_split_info), intent(in)
    - + integer, intent(in)
    - + character(len=*), intent(in),
    - + character(len=*), private,
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + type(dbcsr_scalar_type), intent(in)
    - + type(dbcsr_tas_type), intent(inout),
    - + type(dbcsr_tas_type), intent(inout),
    - + type(dbcsr_scalar_type), intent(in)
    - + type(dbcsr_tas_type), intent(inout),
    - + logical, intent(in),
    - + type(dbcsr_tas_split_info), intent(out),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + logical, intent(in),
    - + integer(kind=int_8), intent(out),
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_scalar_type), intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(dbcsr_tas_type), intent(inout)
    - + type(dbcsr_tas_type), intent(out)
    - + logical, intent(in)
    - + character(len=1), intent(inout)
    - + logical, intent(in),
    - + logical, intent(in),
    - + logical, intent(out)
    - + logical, intent(out)
    - + character(len=1), intent(inout)
    - + character(len=1), intent(inout)
    - + logical, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + logical, intent(inout),
    - + logical, intent(inout),
    - + integer, intent(in),
    - + type(dbcsr_tas_type), intent(inout),
    - + type(dbcsr_tas_type), intent(out),
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical, intent(in),
    - + logical, intent(inout),
    - + logical, intent(in),
    - + type(dbcsr_tas_type), intent(in)
    - + type(dbcsr_tas_type), intent(inout)
    - + type(dbcsr_tas_type), intent(out)
    - + character(len=1), intent(inout)
    - + logical, intent(in),
    - + logical, intent(in),
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + type(dbcsr_tas_type), intent(inout),
    - + type(dbcsr_tas_type), intent(inout),
    - + type(dbcsr_tas_type), intent(inout),
    - + real(kind=real_8), intent(in),
    - + integer, intent(in),
    - + integer(kind=int_8), intent(out),
    - + logical, intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + type(dbcsr_tas_type), intent(out)
    - + logical, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(out)
    - + logical, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + type(dbcsr_tas_type), intent(inout)
    - + type(dbcsr_tas_type), intent(inout)
    - + type(dbcsr_tas_type), intent(inout)
    - + character(len=*), private,
    - + type(block_buffer_type), intent(inout)
    - + type(dbcsr_data_obj), intent(inout),
    - + type(block_buffer_type), intent(inout)
    - + type(dbcsr_data_obj), intent(in)
    - + logical, intent(in),
    - + type(block_buffer_type), intent(inout)
    - + real(kind=real_8), intent(in),
    - + logical, intent(in),
    - + type(block_buffer_type), intent(inout)
    - + real(kind=real_4), intent(in),
    - + logical, intent(in),
    - + type(block_buffer_type), intent(inout)
    - + complex(kind=real_8), intent(in),
    - + logical, intent(in),
    - + type(block_buffer_type), intent(inout)
    - + complex(kind=real_4), intent(in),
    - + logical, intent(in),
    - + integer, public
    - + integer, public
    - + type(block_buffer_type), intent(in)
    - + type(dbcsr_tas_type), intent(inout)
    - + logical, intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_tas_split_info), intent(in)
    - + type(dbcsr_tas_type), intent(out)
    - + logical, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + logical, intent(in),
    - + logical, intent(in),
    - + type(block_buffer_type), intent(in)
    - + type(block_buffer_type), intent(out)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(block_buffer_type), intent(inout)
    - + type(block_buffer_type), intent(inout)
    - + type(dbcsr_data_obj), intent(in)
    - + logical, intent(in),
    - + type(block_buffer_type), intent(inout)
    - + type(dbcsr_data_obj), intent(inout),
    - + type(block_buffer_type), intent(inout)
    - + real(kind=real_8), intent(in),
    - + logical, intent(in),
    - + type(block_buffer_type), intent(inout)
    - + real(kind=real_4), intent(in),
    - + logical, intent(in),
    - + type(block_buffer_type), intent(inout)
    - + complex(kind=real_8), intent(in),
    - + logical, intent(in),
    - + type(block_buffer_type), intent(inout)
    - + complex(kind=real_4), intent(in),
    - + logical, intent(in),
    - + type(block_buffer_type), intent(inout)
    - + real(kind=real_8), intent(out),
    - + type(block_buffer_type), intent(inout)
    - + real(kind=real_4), intent(out),
    - + type(block_buffer_type), intent(inout)
    - + complex(kind=real_8), intent(out),
    - + type(block_buffer_type), intent(inout)
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + character(len=*), private,
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer, intent(in),
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + type(dbcsr_tas_split_info), intent(out)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in)
    - + type(dbcsr_tas_split_info), intent(out)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical, intent(in),
    - + type(dbcsr_tas_split_info), intent(in)
    - + type(mp_comm_type), intent(out),
    - + integer, intent(out),
    - + type(mp_comm_type), intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_split_info), intent(inout)
    - + type(dbcsr_tas_split_info), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(out)
    - + integer, intent(in)
    - + type(dbcsr_tas_split_info), intent(in)
    - + type(dbcsr_tas_distribution_type), intent(in)
    - + integer(kind=int_8), intent(out),
    - + integer(kind=int_8), intent(out),
    - + type(dbcsr_tas_split_info), intent(in)
    - + type(dbcsr_tas_distribution_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(in),
    - + type(dbcsr_tas_split_info), intent(in)
    - + type(dbcsr_tas_split_info), intent(inout)
    - + integer, private,
    - + integer, private,
    - + type(dbcsr_tas_type), intent(in)
    - + logical, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_tas_type), intent(out)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + character(len=*), intent(in)
    - + real(kind=real_8), intent(in)
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + type(dbcsr_tas_type), intent(inout)
    - + type(dbcsr_tas_type), intent(inout)
    - + type(dbcsr_tas_type), intent(inout)
    - + real(kind=real_8), intent(in),
    - + integer, intent(in),
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + type(dbcsr_tas_type), intent(inout)
    - + type(dbcsr_tas_type), intent(inout)
    - + type(dbcsr_tas_type), intent(inout)
    - + real(kind=real_8), intent(in),
    - + integer, intent(in)
    - + logical, intent(in),
    - + integer, intent(in),
    - + integer, intent(out),
    - + character(len=*), private,
    - + type(mp_comm_type), public
    - + integer, public,
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + type(mp_comm_type), public
    - + integer, public,
    - + type(dbcsr_tas_split_info), public
    - + type(dbcsr_distribution_obj), public
    - + class(dbcsr_tas_distribution), public,
    - + class(dbcsr_tas_distribution), public,
    - + type(dbcsr_tas_distribution_type), public
    - + class(dbcsr_tas_rowcol_data), public,
    - + class(dbcsr_tas_rowcol_data), public,
    - + type(dbcsr_type), public
    - + integer(kind=int_8), public
    - + integer(kind=int_8), public
    - + integer(kind=int_8), public
    - + logical, public
    - + integer, public
    - + type(dbcsr_tas_split_info), public
    - + type(dbcsr_tas_distribution_type), public
    - + type(dbcsr_iterator), public
    - + character(len=*), private,
    - + integer(kind=int_8), intent(inout),
    - + integer, intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + integer, intent(inout),
    - + character(len=*), private,
    - + type(dbcsr_tas_split_info), intent(in)
    - + type(dbcsr_tas_split_info), intent(in)
    - + type(nd_to_2d_mapping), intent(in)
    - + type(dbcsr_t_type), intent(in)
    - + type(dbcsr_tas_split_info), intent(in)
    - + type(dbcsr_t_type), intent(inout),
    - + type(dbcsr_t_type), intent(inout),
    - + integer, intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_t_type), intent(inout),
    - + type(dbcsr_t_type), intent(inout),
    - + integer, intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_t_type), intent(inout)
    - + logical, intent(in),
    - + type(dbcsr_type), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + logical, intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + logical, intent(in),
    - + type(dbcsr_scalar_type), intent(in)
    - + type(dbcsr_t_type), intent(inout),
    - + type(dbcsr_t_type), intent(inout),
    - + type(dbcsr_scalar_type), intent(in)
    - + type(dbcsr_t_type), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + logical, intent(in),
    - + logical, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_scalar_type), intent(in)
    - + type(dbcsr_t_type), intent(inout),
    - + type(dbcsr_t_type), intent(inout),
    - + type(dbcsr_scalar_type), intent(in)
    - + type(dbcsr_t_type), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + logical, intent(in),
    - + logical, intent(in),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_t_type), intent(out)
    - + type(dbcsr_t_type), intent(inout),
    - + type(dbcsr_t_type), intent(inout),
    - + character(len=1), intent(out)
    - + character(len=1), intent(out)
    - + logical, intent(out)
    - + logical, intent(out)
    - + logical, intent(in),
    - + logical, intent(in),
    - + logical, intent(inout),
    - + logical, intent(inout),
    - + logical, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_t_type), intent(inout),
    - + type(dbcsr_t_type), intent(out),
    - + character(len=1), intent(out)
    - + logical, intent(in),
    - + logical, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_t_type), intent(out)
    - + type(mp_comm_type), intent(in),
    - + type(array_list), intent(in),
    - + type(array_list), intent(in),
    - + character(len=*), intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_t_type), intent(out)
    - + integer, intent(out),
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_t_type), intent(out)
    - + integer, intent(in),
    - + type(dbcsr_scalar_type), intent(in)
    - + type(dbcsr_t_type), intent(inout),
    - + type(dbcsr_t_type), intent(inout),
    - + type(dbcsr_scalar_type), intent(in)
    - + type(dbcsr_t_type), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer, intent(out)
    - + integer, intent(out),
    - + type(dbcsr_t_type), intent(in)
    - + type(dbcsr_t_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(out),
    - + logical, intent(out),
    - + type(dbcsr_t_type), intent(in)
    - + type(dbcsr_t_type), intent(in)
    - + type(dbcsr_t_type), intent(in)
    - + integer, intent(in)
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_t_pgrid_type), intent(in)
    - + logical, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + character(len=*), private,
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(inout),
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(inout),
    - + integer(kind=c_int), intent(in),
    - + integer(kind=c_int), intent(in),
    - + integer(kind=c_int), intent(in),
    - + integer(kind=c_int), intent(in),
    - + integer(kind=c_int), intent(in),
    - + integer(kind=c_int), intent(out),
    - + integer(kind=c_int), intent(out),
    - + integer(kind=c_int), intent(out),
    - + integer(kind=c_int), intent(out),
    - + type(c_ptr), intent(inout)
    - + type(c_ptr), intent(inout)
    - + type(c_ptr), intent(inout)
    - + type(c_ptr), intent(inout)
    - + character(len=*), private,
    - + type(block_nd), intent(out)
    - + integer, intent(in),
    - + real(kind=real_8), intent(in),
    - + type(block_nd), intent(out)
    - + integer, intent(in),
    - + real(kind=real_4), intent(in),
    - + type(block_nd), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_8), intent(in),
    - + type(block_nd), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_4), intent(in),
    - + type(block_nd), intent(out)
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(in),
    - + logical, intent(in),
    - + real(kind=real_4), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(in),
    - + logical, intent(in),
    - + real(kind=real_4), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(in),
    - + logical, intent(in),
    - + real(kind=real_4), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_8), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_8), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_8), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_4), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_4), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_4), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + type(block_nd), intent(in)
    - + logical, intent(in),
    - + type(dbcsr_scalar_type), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + type(block_nd), intent(out)
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_t_type), intent(in)
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_t_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_tas_iterator), public
    - + type(nd_to_2d_mapping), public
    - + type(array_list), public
    - + integer, public,
    - + real(kind=real_8), public,
    - + integer, public,
    - + real(kind=real_4), public,
    - + integer, public,
    - + complex(kind=real_8), public,
    - + integer, public,
    - + complex(kind=real_4), public,
    - + type(block_nd_r_dp), public
    - + type(block_nd_r_sp), public
    - + type(block_nd_c_dp), public
    - + type(block_nd_c_sp), public
    - + integer, public
    - + type(block_nd), intent(in)
    - + type(dbcsr_t_iterator_type), intent(in)
    - + type(dbcsr_t_iterator_type), intent(in)
    - + type(block_nd), intent(out)
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(block_nd), intent(inout)
    - + type(dbcsr_t_iterator_type), intent(out)
    - + type(dbcsr_t_type), intent(in)
    - + type(dbcsr_t_iterator_type), intent(inout)
    - + type(dbcsr_t_iterator_type), intent(inout)
    - + integer, intent(out),
    - + integer, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_t_type), intent(in)
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_type), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_t_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_t_type), intent(in)
    - + type(block_nd), intent(out)
    - + integer, intent(in),
    - + real(kind=real_8), intent(in),
    - + type(block_nd), intent(out)
    - + integer, intent(in),
    - + real(kind=real_4), intent(in),
    - + type(block_nd), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_8), intent(in),
    - + type(block_nd), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_4), intent(in),
    - + type(block_nd_r_dp), intent(out)
    - + integer, intent(in),
    - + type(block_nd_r_sp), intent(out)
    - + integer, intent(in),
    - + type(block_nd_c_dp), intent(out)
    - + integer, intent(in),
    - + type(block_nd_c_sp), intent(out)
    - + integer, intent(in),
    - + type(block_nd_r_dp), intent(inout)
    - + type(block_nd_r_sp), intent(inout)
    - + type(block_nd_c_dp), intent(inout)
    - + type(block_nd_c_sp), intent(inout)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + type(block_nd), intent(out)
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + type(block_nd), intent(in)
    - + logical, intent(in),
    - + type(dbcsr_scalar_type), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + type(block_nd_r_dp), intent(in)
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + type(block_nd_r_sp), intent(in)
    - + logical, intent(in),
    - + real(kind=real_4), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + type(block_nd_c_dp), intent(in)
    - + logical, intent(in),
    - + complex(kind=real_8), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + type(block_nd_c_sp), intent(in)
    - + logical, intent(in),
    - + complex(kind=real_4), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + type(block_nd), intent(out)
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + type(block_nd), intent(out)
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + type(block_nd), intent(out)
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + type(block_nd), intent(out)
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(in),
    - + logical, intent(in),
    - + real(kind=real_4), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(in),
    - + logical, intent(in),
    - + real(kind=real_4), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(in),
    - + logical, intent(in),
    - + real(kind=real_4), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_8), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_8), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_8), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_4), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_4), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_4), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + logical, intent(out)
    - + character(len=*), private,
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public,
    - + integer(kind=int_8), public,
    - + integer, public,
    - + integer, public,
    - + integer, public
    - + logical, public
    - + type(nd_to_2d_mapping), intent(in)
    - + type(nd_to_2d_mapping), intent(in)
    - + type(nd_to_2d_mapping), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(nd_to_2d_mapping), intent(in)
    - + type(nd_to_2d_mapping), intent(in)
    - + type(nd_to_2d_mapping), intent(in)
    - + type(nd_to_2d_mapping), intent(in)
    - + integer, intent(in),
    - + type(nd_to_2d_mapping), intent(out)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(nd_to_2d_mapping), intent(inout)
    - + type(nd_to_2d_mapping), intent(in)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + logical, intent(out),
    - + integer, intent(in),
    - + character(len=*), private,
    - + integer, intent(in),
    - + type(dbcsr_t_type), intent(in)
    - + integer, intent(in)
    - + logical, intent(in),
    - + type(dbcsr_t_type), intent(in)
    - + integer, intent(in)
    - + type(dbcsr_t_type), intent(inout)
    - + logical, intent(in),
    - + character(len=*), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(in),
    - + logical, intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_t_pgrid_type), intent(in)
    - + integer, intent(in)
    - + character(len=*), private,
    - + integer, intent(in)
    - + integer, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer, intent(in)
    - + integer, intent(in),
    - + real(kind=real_4), intent(in),
    - + integer, intent(in)
    - + integer, intent(in),
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in)
    - + integer, intent(in),
    - + complex(kind=real_4), intent(in),
    - + integer, public
    - + integer, public
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_t_type), intent(inout)
    - + logical, intent(in),
    - + logical, intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + type(block_nd), intent(in)
    - + integer, intent(out)
    - + integer, intent(out),
    - + type(block_nd), intent(inout),
    - + integer, intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer, intent(in)
    - + integer, intent(in),
    - + real(kind=real_4), intent(in),
    - + integer, intent(in)
    - + integer, intent(in),
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in)
    - + integer, intent(in),
    - + complex(kind=real_4), intent(in),
    - + integer, intent(out)
    - + integer, intent(out),
    - + real(kind=real_8), intent(out),
    - + integer, intent(out)
    - + integer, intent(out),
    - + real(kind=real_4), intent(out),
    - + integer, intent(out)
    - + integer, intent(out),
    - + complex(kind=real_8), intent(out),
    - + integer, intent(out)
    - + integer, intent(out),
    - + complex(kind=real_4), intent(out),
    - + character(len=*), private,
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_t_type), intent(out)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_t_type), intent(out)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + logical, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_t_type), intent(out)
    - + integer, intent(in),
    - + logical, intent(in),
    - + character(len=*), private,
    - + integer, private,
    - + integer, private,
    - + type(dbcsr_t_type), intent(inout)
    - + real(kind=real_8), intent(out),
    - + type(dbcsr_t_type), intent(inout)
    - + real(kind=real_8), intent(out),
    - + type(dbcsr_t_type), intent(inout)
    - + real(kind=real_8), intent(out),
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_t_type), intent(in)
    - + logical, intent(in),
    - + logical, intent(in),
    - + integer, intent(in)
    - + integer, intent(out),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in)
    - + logical, intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + real(kind=real_8), intent(out),
    - + type(dbcsr_t_type), intent(inout)
    - + real(kind=real_8), intent(out),
    - + type(dbcsr_t_type), intent(inout)
    - + real(kind=real_8), intent(out),
    - + type(dbcsr_scalar_type), intent(in)
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_scalar_type), intent(in)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer,
    - + integer,
    - + integer,
    - + logical, intent(in),
    - + logical, intent(in),
    - + character(len=*), private,
    - + character(len=*), intent(in)
    - + type(dbcsr_t_distribution_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + character(len=*), intent(in),
    - + type(dbcsr_t_distribution_type), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in),
    - + character(len=*), intent(in),
    - + type(array_list), intent(in)
    - + real(kind=real_8), intent(in)
    - + real(kind=real_4), intent(in)
    - + complex(kind=real_8), intent(in)
    - + complex(kind=real_4), intent(in)
    - + real(kind=real_8), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + real(kind=real_4), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + complex(kind=real_8), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + complex(kind=real_4), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_tas_split_info), public,
    - + integer, public
    - + integer, public
    - + type(nd_to_2d_mapping), public
    - + type(dbcsr_t_pgrid_type), public
    - + integer, public,
    - + logical, public
    - + character(len=default_string_length), public
    - + integer, public,
    - + type(dbcsr_tas_distribution_type), public
    - + type(dbcsr_t_pgrid_type), public
    - + integer, public,
    - + integer, public,
    procedure, public :: - dist => tas_dist_t
    - + integer, public,
    - + type(array_list), public
    procedure, public :: - data => tas_blk_size_t
    - + class(dbcsr_tas_dist_t), intent(in)
    - + class(dbcsr_tas_dist_t), intent(in)
    - + integer, intent(in)
    - + type(array_list), intent(in)
    - + class(dbcsr_tas_blk_size_t), intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(inout),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(inout)
    - + type(dbcsr_t_distribution_type), intent(out)
    - + type(dbcsr_t_pgrid_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_t_distribution_type), intent(out)
    - + type(dbcsr_t_pgrid_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_t_distribution_type), intent(inout)
    - + type(dbcsr_t_distribution_type), intent(in)
    - + character(len=*), intent(in)
    - + type(dbcsr_t_distribution_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + character(len=*), intent(in),
    - + type(dbcsr_t_distribution_type), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in),
    - + character(len=*), intent(in),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(in),
    - + integer, intent(out)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(inout),
    - + type(dbcsr_t_pgrid_type), intent(out)
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + integer, intent(inout),
    - + type(dbcsr_t_pgrid_type), intent(out)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_t_pgrid_type), intent(inout)
    - + type(dbcsr_t_pgrid_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_t_pgrid_type), intent(inout)
    - + integer, intent(inout),
    - + type(dbcsr_t_distribution_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_t_pgrid_type), intent(in)
    - + integer, intent(out),
    - + real(kind=real_8), intent(in)
    - + real(kind=real_4), intent(in)
    - + complex(kind=real_8), intent(in)
    - + complex(kind=real_4), intent(in)
    - + real(kind=real_8), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + real(kind=real_4), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + complex(kind=real_8), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + complex(kind=real_4), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_t_distribution_type), intent(out),
    - + character(len=*), intent(out),
    - + integer, intent(out),
    - + type(dbcsr_scalar_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(out),
    - + type(dbcsr_t_type), intent(in)
    - + type(dbcsr_t_type), intent(inout)
    - + character(len=*), private,
    - + integer, private,
    - + integer, private,
    - + complex(kind=real_8)
    - + integer
    - + type(dbcsr_data_obj), intent(inout)
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(out),
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(out)
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + character(len=*), intent(in)
    - + real(kind=real_8), intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + type(dbcsr_distribution_obj), intent(in),
    - + integer, intent(out),
    - + type(dbcsr_mp_obj), intent(out)
    - + type(mp_comm_type), intent(in),
    - + type(dbcsr_distribution_obj), intent(out)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in),
    - + logical, private,
    - + type(mp_comm_type), intent(in)
    - + type(dbcsr_mp_obj), intent(in)
    - + integer, intent(in)
    - + real(kind=real_8), intent(in)
    - + type(dbcsr_mp_obj), intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(in)
    - + character(len=*), private,
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in)
    - + integer,
    - + integer, intent(in),
    - + logical, intent(in),
    - + integer,
    - + integer,
    - + integer,
    - + real(kind=dp), intent(in),
    - + real(kind=dp), intent(in)
    - + real(kind=dp), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=dp), intent(in)
    - + logical, intent(in)
    - + logical, intent(in)
    - + type(dbcsr_type)
    - + integer
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + type(dbcsr_scalar_type), intent(in)
    - + type(dbcsr_scalar_type), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + integer, intent(in)
    - + real(kind=dp), intent(in)
    - + integer, intent(in)
    - + logical
    - + character(len=*), private,
    - + character(len=default_string_length), intent(in)
    - + type(timer_env_type),
    - + type(timer_env_type),
    - + type(timer_env_type),
    - + type(timer_env_type),
    - + character(len=*), intent(in)
    - + integer, intent(out)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + character(len=13), intent(in)
    - + character(len=default_string_length), intent(in),
    - + integer, intent(in)
    - + integer, public
    - + character(len=default_string_length), public
    - + logical, public
    - + integer, public
    - + character(len=default_string_length), public
    - + integer, intent(in)
    - + type(dbcsr_mp_obj), intent(in)
    - + type(dbcsr_mp_obj), intent(in)
    - + integer, intent(in)
    - + real(kind=dp), intent(in)
    - + type(dbcsr_mp_obj), intent(in)
    - + character(len=*), intent(in)
    - + integer, public
    - + type(dict_str_i4_type), public
    - + integer, public
    - + character(len=13), public
    - + character(len=*), private,
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + logical, intent(inout)
    - + logical, intent(inout)
    - + integer(kind=int_4), intent(inout),
    - + integer, intent(in)
    - + integer, intent(out),
    - + integer(kind=int_8), intent(inout),
    - + integer, intent(in)
    - + integer, intent(out),
    - + real(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + integer, intent(out),
    - + real(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + integer, intent(out),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + character(len=*), intent(in)
    - + character(len=*), intent(in)
    - + character(len=*), intent(in)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + logical, intent(inout)
    - + logical, intent(inout)
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(out)
    - + logical, intent(out)
    - + integer, intent(in),
    - + integer, intent(in),
    - + character(len=*), private,
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + logical, intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_distribution_obj), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + logical, intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_distribution_obj), intent(in),
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + logical, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_distribution_obj), intent(inout)
    - + type(array_i1d_obj), intent(in)
    - + type(array_i1d_obj), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_distribution_obj), intent(in)
    - + type(array_i1d_obj), intent(in)
    - + type(array_i1d_obj), intent(in)
    - + type(array_i1d_obj), intent(in)
    - + type(array_i1d_obj), intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + logical, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + character(len=*), private,
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + type(mp_comm_type), public
    - + integer, public,
    - + integer, public
    - + logical, public
    - + integer, public
    - + type(dbcsr_mp_type), public,
    - + type(array_i1d_obj), public
    - + type(array_i1d_obj), public
    - + integer, public
    - + integer, public
    - + type(array_i1d_obj), public
    - + type(array_i1d_obj), public
    - + logical, public
    - + type(array_i1d_obj), public
    - + integer, public
    - + type(dbcsr_mp_obj), public
    - + integer, public
    - + type(dbcsr_distribution_type), public,
    - + type(array_i1d_obj), public
    - + type(array_i1d_obj), public
    - + integer, public
    - + integer, public
    - + type(dbcsr_imagedistribution_type), public,
    - + integer, public
    - + type(dbcsr_data_obj), public,
    - + integer, public
    - + type(dbcsr_block_buffer_type), public,
    - + type(dbcsr_type), public,
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public,
    - + integer, public,
    - + logical, public
    - + logical, public
    - + logical, public
    - + logical, public
    - + logical, public
    - + integer, public
    - + integer, public
    - + integer, public,
    - + integer, public,
    - + integer, public,
    - + type(dbcsr_data_obj), public
    - + integer, public
    - + integer, public
    - + type(dbcsr_mutable_type), public,
    - + type(dbcsr_data_obj), public
    - + integer, public,
    - + integer, public,
    - + integer, public,
    - + integer, public
    - + logical, public
    - + character(len=default_string_length), public
    - + type(dbcsr_data_obj), public
    - + integer, public,
    - + integer, public,
    - + integer, public,
    - + type(array_i1d_obj), public
    - + type(array_i1d_obj), public
    - + type(array_i1d_obj), public
    - + type(array_i1d_obj), public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + character(len=1), public
    - + type(dbcsr_memtype_type), public
    - + type(dbcsr_block_buffer_obj), public
    - + type(dbcsr_distribution_obj), public
    - + integer, public
    - + logical, public
    - + type(dbcsr_type), public,
    - + type(dbcsr_imagedistribution_obj), public
    - + type(dbcsr_imagedistribution_obj), public
    - + integer, public
    - + real, public,
    - + character(len=*), private,
    - + logical, private,
    - + type(dbcsr_type), intent(inout)
    - + character(len=*), intent(in)
    - + type(dbcsr_distribution_obj), intent(in)
    - + character(len=1), intent(in)
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + type(array_i1d_obj), intent(in),
    - + type(array_i1d_obj), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in),
    - + type(dbcsr_memtype_type), intent(in),
    - + type(array_i1d_obj), intent(in),
    - + type(array_i1d_obj), intent(in),
    - + type(dbcsr_distribution_obj), intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + character(len=*), intent(in),
    - + type(dbcsr_distribution_obj), intent(in),
    - + character(len=1), intent(in),
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + type(array_i1d_obj), intent(in),
    - + type(array_i1d_obj), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in),
    - + type(dbcsr_memtype_type), intent(in),
    - + type(array_i1d_obj), intent(in),
    - + type(array_i1d_obj), intent(in),
    - + logical, intent(in),
    - + integer, public,
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(inout)
    - + character(len=*), intent(in)
    - + type(dbcsr_distribution_obj), intent(in)
    - + character(len=1), intent(in)
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + type(array_i1d_obj), intent(in),
    - + type(array_i1d_obj), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in),
    - + type(dbcsr_memtype_type), intent(in),
    - + type(array_i1d_obj), intent(in),
    - + type(array_i1d_obj), intent(in),
    - + type(dbcsr_distribution_obj), intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + character(len=*), intent(in),
    - + type(dbcsr_distribution_obj), intent(in),
    - + character(len=1), intent(in),
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + type(array_i1d_obj), intent(in),
    - + type(array_i1d_obj), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in),
    - + type(dbcsr_memtype_type), intent(in),
    - + type(array_i1d_obj), intent(in),
    - + type(array_i1d_obj), intent(in),
    - + logical, intent(in),
    - + integer, intent(in)
    - + type(dbcsr_memtype_type), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_memtype_type), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_work_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(acc_devmem_type), intent(inout)
    - + type(acc_devmem_type), intent(in)
    - + integer, intent(in)
    - + type(acc_devmem_type), intent(inout)
    - + type(acc_devmem_type), intent(inout)
    - + logical, intent(in),
    - + logical, intent(in),
    - + integer(kind=int_8), intent(out)
    - + type(acc_devmem_type), intent(inout)
    - + type(acc_devmem_type), intent(inout)
    - + type(acc_devmem_type), intent(in)
    - + type(acc_event_type), intent(inout)
    - + type(acc_event_type), intent(inout)
    - + type(acc_event_type), intent(in)
    - + type(acc_event_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_event_type), intent(in)
    - + integer, intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + integer, intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + integer, intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + integer, intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + integer, intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + integer, intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + integer, intent(in)
    - + type(acc_stream_type), intent(out)
    - + character(len=*), intent(in)
    - + type(acc_stream_type), intent(inout)
    - + type(acc_stream_type), intent(in)
    - + integer, intent(out)
    - + type(acc_stream_type), intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(timer_env_type),
    - + type(dbcsr_work_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(out),
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_t_type), intent(out)
    - + complex(kind=real_8), intent(out),
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + real(kind=real_8), intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + real(kind=real_4), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + real(kind=real_8), intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + real(kind=real_4), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + real(kind=real_8), intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + real(kind=real_4), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + real(kind=real_8), intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + real(kind=real_4), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + real(kind=real_8), intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + real(kind=real_4), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + real(kind=real_8), intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + real(kind=real_4), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + real(kind=real_8), intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + real(kind=real_4), intent(in),
    - + integer, intent(in),
    - + type(array_list), intent(in)
    - + integer, intent(in)
    - + integer, intent(out),
    - + class(dbcsr_tas_dist_arb), intent(in)
    - + class(dbcsr_tas_dist_arb), intent(in)
    - + integer, intent(in)
    - + type(array_i1d_obj), intent(in)
    - + type(array_i1d_obj), intent(in)
    - + integer, intent(in),
    - + type(array_i1d_obj), intent(in)
    - + type(array_i1d_obj), intent(inout)
    - + type(array_i1d_obj), intent(out)
    - + integer,
    - + logical, intent(in),
    - + type(array_i1d_obj), intent(out)
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(array_i1d_obj), intent(inout)
    - + type(array_i1d_obj), intent(inout)
    - + type(array_i1d_obj), intent(in)
    - + type(array_list), intent(in)
    - + character(len=*), intent(in)
    - + character(len=*), intent(in)
    - + character(len=*), intent(in)
    - + character(len=*), intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(inout),
    - + integer, intent(out),
    - + class(dbcsr_tas_blk_size_arb), intent(in)
    - + class(dbcsr_tas_blk_size_one), intent(in)
    - + class(dbcsr_tas_blk_size_repl), intent(in)
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + type(block_nd), intent(in)
    - + type(block_buffer_type), intent(inout)
    - + type(dbcsr_data_obj), intent(in)
    - + logical, intent(in),
    - + type(block_buffer_type), intent(inout)
    - + complex(kind=real_8), intent(in),
    - + logical, intent(in),
    - + integer, intent(in)
    - + integer, intent(in),
    - + complex(kind=real_8), intent(in),
    - + type(block_buffer_type), intent(inout)
    - + complex(kind=real_4), intent(in),
    - + logical, intent(in),
    - + integer, intent(in)
    - + integer, intent(in),
    - + complex(kind=real_4), intent(in),
    - + type(block_buffer_type), intent(inout)
    - + real(kind=real_8), intent(in),
    - + logical, intent(in),
    - + integer, intent(in)
    - + integer, intent(in),
    - + real(kind=real_8), intent(in),
    - + type(block_buffer_type), intent(inout)
    - + real(kind=real_4), intent(in),
    - + logical, intent(in),
    - + integer, intent(in)
    - + integer, intent(in),
    - + real(kind=real_4), intent(in),
    - + type(block_buffer_type), intent(in)
    - + type(block_buffer_type), intent(out)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(block_buffer_type), intent(inout)
    - + type(block_buffer_type), intent(in)
    - + integer, intent(out),
    - + integer, intent(out)
    - + integer, intent(out),
    - + type(block_nd), intent(inout),
    - + type(block_buffer_type), intent(inout)
    - + type(dbcsr_data_obj), intent(inout),
    - + type(block_buffer_type), intent(inout)
    - + complex(kind=real_8), intent(out),
    - + integer, intent(out)
    - + integer, intent(out),
    - + complex(kind=real_8), intent(out),
    - + type(block_buffer_type), intent(inout)
    - + complex(kind=real_4), intent(out),
    - + integer, intent(out)
    - + integer, intent(out),
    - + complex(kind=real_4), intent(out),
    - + type(block_buffer_type), intent(inout)
    - + real(kind=real_8), intent(out),
    - + integer, intent(out)
    - + integer, intent(out),
    - + real(kind=real_8), intent(out),
    - + type(block_buffer_type), intent(inout)
    - + real(kind=real_4), intent(out),
    - + integer, intent(out)
    - + integer, intent(out),
    - + real(kind=real_4), intent(out),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_tas_split_info), intent(in)
    - + type(dbcsr_tas_distribution_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(in),
    - + type(dbcsr_tas_split_info), intent(in)
    - + type(dbcsr_tas_distribution_type), intent(in)
    - + integer(kind=int_8), intent(out),
    - + integer(kind=int_8), intent(out),
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4), intent(inout),
    - + logical, intent(in)
    - + complex(kind=real_4), intent(in),
    - + logical, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8), intent(inout),
    - + logical, intent(in)
    - + real(kind=real_8), intent(in),
    - + logical, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4), intent(inout),
    - + logical, intent(in)
    - + real(kind=real_4), intent(in),
    - + logical, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8), intent(inout),
    - + logical, intent(in)
    - + complex(kind=real_8), intent(in),
    - + logical, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4), intent(inout),
    - + logical, intent(in)
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8), intent(inout),
    - + logical, intent(in)
    - + real(kind=real_8), intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4), intent(inout),
    - + logical, intent(in)
    - + real(kind=real_4), intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8), intent(inout),
    - + logical, intent(in)
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4), intent(inout),
    - + logical, intent(in)
    - + complex(kind=real_4), intent(in),
    - + logical, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8), intent(inout),
    - + logical, intent(in)
    - + real(kind=real_8), intent(in),
    - + logical, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4), intent(inout),
    - + logical, intent(in)
    - + real(kind=real_4), intent(in),
    - + logical, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8), intent(inout),
    - + logical, intent(in)
    - + complex(kind=real_8), intent(in),
    - + logical, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4), intent(inout),
    - + logical, intent(in)
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8), intent(inout),
    - + logical, intent(in)
    - + real(kind=real_8), intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4), intent(inout),
    - + logical, intent(in)
    - + real(kind=real_4), intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8), intent(inout),
    - + logical, intent(in)
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical, intent(in)
    - + integer, intent(in)
    - + type(block_nd), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical, intent(inout)
    - + logical, intent(inout)
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_cp2d), intent(in)
    - + logical, intent(out),
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_dp2d), intent(in)
    - + logical, intent(out),
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_sp2d), intent(in)
    - + logical, intent(out),
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_zp2d), intent(in)
    - + logical, intent(out),
    - + type(btree_node_i8_cp2d),
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_cp2d), intent(in)
    - + integer, intent(in),
    - + type(btree_node_i8_dp2d),
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_dp2d), intent(in)
    - + integer, intent(in),
    - + type(btree_node_i8_sp2d),
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_sp2d), intent(in)
    - + integer, intent(in),
    - + type(btree_node_i8_zp2d),
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_zp2d), intent(in)
    - + integer, intent(in),
    - + type(btree_node_i8_cp2d),
    - + type(btree_node_i8_dp2d),
    - + type(btree_node_i8_sp2d),
    - + type(btree_node_i8_zp2d),
    - + integer(kind=keyt), intent(out),
    - + type(btree_data_cp2d), intent(out),
    - + integer(kind=keyt), intent(out),
    - + type(btree_data_dp2d), intent(out),
    - + integer(kind=keyt), intent(out),
    - + type(btree_data_sp2d), intent(out),
    - + integer(kind=keyt), intent(out),
    - + type(btree_data_zp2d), intent(out),
    - + type(btree_node_i8_cp2d),
    - + integer, intent(inout),
    - + integer(kind=keyt), intent(inout),
    - + type(btree_data_cp2d), intent(inout),
    - + type(btree_node_i8_dp2d),
    - + integer, intent(inout),
    - + integer(kind=keyt), intent(inout),
    - + type(btree_data_dp2d), intent(inout),
    - + type(btree_node_i8_sp2d),
    - + integer, intent(inout),
    - + integer(kind=keyt), intent(inout),
    - + type(btree_data_sp2d), intent(inout),
    - + type(btree_node_i8_zp2d),
    - + integer, intent(inout),
    - + integer(kind=keyt), intent(inout),
    - + type(btree_data_zp2d), intent(inout),
    - + integer(kind=keyt), intent(in)
    - + type(btree_node_i8_cp2d),
    - + integer(kind=keyt), intent(in)
    - + type(btree_node_i8_dp2d),
    - + integer(kind=keyt), intent(in)
    - + type(btree_node_i8_sp2d),
    - + integer(kind=keyt), intent(in)
    - + type(btree_node_i8_zp2d),
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_cp2d), intent(out)
    - + logical, intent(out),
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_dp2d), intent(out)
    - + logical, intent(out),
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_sp2d), intent(out)
    - + logical, intent(out),
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_zp2d), intent(out)
    - + logical, intent(out),
    - + integer(kind=keyt), intent(in)
    - + type(btree_node_i8_cp2d),
    - + integer(kind=keyt), intent(in)
    - + type(btree_node_i8_dp2d),
    - + integer(kind=keyt), intent(in)
    - + type(btree_node_i8_sp2d),
    - + integer(kind=keyt), intent(in)
    - + type(btree_node_i8_zp2d),
    - + type(btree_node_i8_cp2d),
    - + type(btree_node_i8_dp2d),
    - + type(btree_node_i8_sp2d),
    - + type(btree_node_i8_zp2d),
    - + type(btree_node_i8_cp2d), intent(inout)
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_cp2d), intent(in)
    - + integer, intent(in)
    - + type(btree_node_i8_dp2d), intent(inout)
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_dp2d), intent(in)
    - + integer, intent(in)
    - + type(btree_node_i8_sp2d), intent(inout)
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_sp2d), intent(in)
    - + integer, intent(in)
    - + type(btree_node_i8_zp2d), intent(inout)
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_zp2d), intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(btree_node_i8_cp2d),
    - + type(btree_node_i8_dp2d),
    - + type(btree_node_i8_sp2d),
    - + type(btree_node_i8_zp2d),
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_cp2d), intent(in)
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_dp2d), intent(in)
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_sp2d), intent(in)
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_zp2d), intent(in)
    - + integer(kind=keyt),
    - + integer(kind=keyt), intent(in)
    - + integer(kind=keyt),
    - + integer(kind=keyt), intent(in)
    - + integer(kind=keyt),
    - + integer(kind=keyt), intent(in)
    - + integer(kind=keyt),
    - + integer(kind=keyt), intent(in)
    - + integer(kind=keyt),
    - + integer(kind=keyt), intent(in)
    - + integer(kind=keyt),
    - + integer(kind=keyt), intent(in)
    - + integer(kind=keyt),
    - + integer(kind=keyt), intent(in)
    - + integer(kind=keyt),
    - + integer(kind=keyt), intent(in)
    - + integer(kind=keyt),
    - + integer(kind=keyt), intent(in)
    - + integer(kind=keyt),
    - + integer(kind=keyt), intent(in)
    - + integer(kind=keyt),
    - + integer(kind=keyt), intent(in)
    - + integer(kind=keyt),
    - + integer(kind=keyt), intent(in)
    - + type(btree_node_i8_cp2d), intent(inout)
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_cp2d), intent(in)
    - + integer, intent(in)
    - + type(btree_node_i8_dp2d), intent(inout)
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_dp2d), intent(in)
    - + integer, intent(in)
    - + type(btree_node_i8_sp2d), intent(inout)
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_sp2d), intent(in)
    - + integer, intent(in)
    - + type(btree_node_i8_zp2d), intent(inout)
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_zp2d), intent(in)
    - + integer, intent(in)
    - + type(btree_node_i8_cp2d), intent(inout)
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_cp2d), intent(in)
    - + integer, intent(in)
    - + type(btree_node_i8_dp2d), intent(inout)
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_dp2d), intent(in)
    - + integer, intent(in)
    - + type(btree_node_i8_sp2d), intent(inout)
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_sp2d), intent(in)
    - + integer, intent(in)
    - + type(btree_node_i8_zp2d), intent(inout)
    - + integer(kind=keyt), intent(in)
    - + type(btree_data_zp2d), intent(in)
    - + integer, intent(in)
    - + type(dbcsr_buffer), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + type(dbcsr_memtype_type), intent(in)
    - + integer, intent(in)
    - + type(dbcsr_buffer), intent(inout)
    - + integer, intent(out),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(inout)
    - + integer(kind=c_int), intent(in),
    - + type(c_ptr), intent(inout)
    - + integer(kind=c_int), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(out)
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(out)
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(out)
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(out)
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + integer(kind=c_int), intent(out),
    - + integer(kind=c_int), intent(out),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + integer(kind=c_int), intent(inout),
    - + type(c_ptr), intent(in),
    - + integer(kind=c_int), intent(inout),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + integer(kind=c_int), intent(in),
    - + integer(kind=c_int), intent(in),
    - + integer(kind=c_int), intent(out)
    - + type(c_ptr), intent(in),
    - + integer(kind=c_int), intent(in),
    - + type(c_ptr), intent(in),
    - + integer(kind=c_int), intent(out),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(inout)
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + integer(kind=c_int), intent(in),
    - + type(c_ptr), intent(inout)
    - + type(c_ptr), intent(inout)
    - + type(c_ptr), intent(inout)
    - + type(c_ptr), intent(inout)
    - + integer(kind=c_int), intent(out),
    - + integer(kind=c_int), intent(out),
    - + integer(kind=c_int), intent(out),
    - + integer(kind=c_int), intent(out),
    - + integer(kind=c_int), intent(in),
    - + integer(kind=c_int), intent(in),
    - + integer(kind=c_int), intent(in),
    - + integer(kind=c_int), intent(in),
    - + type(c_ptr), intent(in),
    - + type(c_ptr), intent(in),
    - + character(kind=c_char, len=:), intent(out),
    - + integer, intent(in)
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in)
    - + real(kind=real_8), intent(in),
    - + integer, intent(in)
    - + real(kind=real_4), intent(in),
    - + integer, intent(in)
    - + complex(kind=real_8), intent(in),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(inout),
    - + type(dbcsr_type), intent(in)
    - + type(list_callstackentry_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(list_routinereport_type), intent(inout)
    - + integer, intent(in)
    - + type(list_routinestat_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(list_timerenv_type), intent(inout)
    - + integer, intent(in)
    - + type(dbcsr_tas_type), intent(inout),
    - + type(dbcsr_tas_type), intent(out),
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical, intent(in),
    - + logical, intent(inout),
    - + logical, intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_mp_obj), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(nd_to_2d_mapping), intent(in)
    - + character(len=*), intent(inout)
    - + logical, intent(in),
    - + complex(kind=real_8)
    - + integer
    - + class(CONF_PAR), intent(inout)
    - + type(csr_type), intent(inout)
    - + type(csr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(csr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(csr_type), intent(inout)
    - + integer, intent(out),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(out)
    - + logical, intent(in),
    - + logical, intent(in),
    - + integer, intent(in)
    - + type(array_list), intent(out)
    - + integer, intent(in)
    - + integer, intent(in),
    - + type(block_nd), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_8), intent(in),
    - + type(block_nd), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_4), intent(in),
    - + type(block_nd), intent(out)
    - + integer, intent(in),
    - + real(kind=real_8), intent(in),
    - + type(block_nd), intent(out)
    - + integer, intent(in),
    - + real(kind=real_4), intent(in),
    - + type(block_nd), intent(out)
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(block_nd_c_dp), intent(out)
    - + integer, intent(in),
    - + type(block_nd_c_sp), intent(out)
    - + integer, intent(in),
    - + type(block_nd_r_dp), intent(out)
    - + integer, intent(in),
    - + type(block_nd_r_sp), intent(out)
    - + integer, intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + type(dbcsr_tas_type), intent(out)
    - + logical, intent(in),
    - + type(nd_to_2d_mapping), intent(out)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(csr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_csr_type), intent(out)
    - + real(kind=real_8), intent(out)
    - + real(kind=real_8), intent(in)
    - + type(csr_type), intent(out)
    - + type(dbcsr_type), intent(in)
    - + type(csr_type), intent(out)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(in),
    - + integer, intent(in),
    - - type(csr_type), + + type(dbcsr_csr_type), intent(out) @@ -169,12 +168,12 @@

    Arguments

    :: csr_mat -

    CSR matrix to return

    +
    - + integer, intent(in) :: nrows_total -

    total number of rows -total number of columns

    +
    - + integer, intent(in) :: ncols_total -

    total number of rows -total number of columns

    +
    - + integer(kind=int_8) :: nze_total -

    total number of non-zero elements

    +
    - + integer, intent(in) :: nze_local -

    local number of non-zero elements -local number of rows

    +
    - + integer, intent(in) :: nrows_local -

    local number of non-zero elements -local number of rows

    +
    - - type(mp_comm_type), + + integer, intent(in) @@ -268,7 +263,7 @@

    Arguments

    - + integer, intent(in), :: data_type -

    data type of the CSR matrix (default real double prec.)

    +
    - - type(dbcsr_csr_type), + + type(csr_type), intent(out) @@ -168,7 +169,7 @@

    Arguments

    :: csr_mat - +

    CSR matrix to return

    :: nrows_total - +

    total number of rows +total number of columns

    :: ncols_total - +

    total number of rows +total number of columns

    - + integer(kind=int_8) :: nze_total - +

    total number of non-zero elements

    - + integer, intent(in) :: nze_local - +

    local number of non-zero elements +local number of rows

    :: nrows_local - +

    local number of non-zero elements +local number of rows

    - - integer, + + type(mp_comm_type), intent(in) @@ -263,7 +268,7 @@

    Arguments

    - + integer, intent(in), :: data_type - +

    data type of the CSR matrix (default real double prec.)

    - + type(csr_type), intent(in)
    - + type(csr_type), intent(out)
    - + type(csr_type), intent(in)
    - + type(csr_type), intent(inout)
    - + type(csr_type), intent(in)
    - + integer, intent(in)
    - + type(csr_type), intent(in)
    - + integer, intent(in)
    - + real(kind=real_8), intent(in),
    - + character(len=*), intent(in)
    - + class(dbcsr_tas_dist_cyclic), intent(in)
    - + class(dbcsr_tas_dist_cyclic), intent(in)
    - + integer, intent(in)
    - + real(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + integer, intent(out),
    - + real(kind=real_8), intent(inout),
    - + integer, intent(inout),
    - + real(kind=real_8), intent(inout),
    - + integer(kind=int_4), intent(inout),
    - + integer, intent(in)
    - + integer, intent(out),
    - + integer(kind=int_4), intent(inout),
    - + integer, intent(inout),
    - + integer(kind=int_4), intent(inout),
    - + integer(kind=int_8), intent(inout),
    - + integer, intent(in)
    - + integer, intent(out),
    - + integer(kind=int_8), intent(inout),
    - + integer, intent(inout),
    - + integer(kind=int_8), intent(inout),
    - + real(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + integer, intent(out),
    - + real(kind=real_4), intent(inout),
    - + integer, intent(inout),
    - + real(kind=real_4), intent(inout),
    - + character(len=*), intent(in)
    - + character(len=*), intent(in)
    - + character(len=*), intent(in)
    - + character(len=*), intent(in)
    - + character(len=*), intent(in)
    - + character(len=*), intent(in)
    - + character(len=*), intent(in)
    - + character(len=*), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(acc_devmem_type), intent(in)
    - + type(acc_devmem_type), intent(in)
    - + type(acc_devmem_type), intent(inout)
    - + logical, intent(inout)
    - + logical, intent(inout)
    - + type(acc_devmem_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(acc_devmem_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(acc_stream_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(in)
    - + logical, intent(in)
    - + integer(kind=int_8), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(in)
    - + logical, intent(in)
    - + integer(kind=int_8), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(in)
    - + logical, intent(in)
    - + integer(kind=int_8), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(in)
    - + logical, intent(in)
    - + integer(kind=int_8), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + real(kind=dp),
    - + type(dbcsr_type), intent(inout)
    - + real(kind=dp),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(dbcsr_distribution_type), intent(in)
    - + type(dbcsr_distribution_obj), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(inout)
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + logical
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical
    - + integer, intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(in)
    - + integer, intent(inout),
    - + integer, intent(in)
    - + integer, intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + logical, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_type), intent(in)
    - + logical, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -172,13 +168,13 @@

    Arguments

    :: matrix -

    matrix to redistribute

    +
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -187,12 +183,12 @@

    Arguments

    :: redist -

    redistributed matrix

    +
    - + logical, intent(in), :: keep_sparsity -

    retains the sparsity of the redist matrix -sum blocks with identical row and col from different processes

    +
    - + logical, intent(in), :: summation -

    retains the sparsity of the redist matrix -sum blocks with identical row and col from different processes

    +
    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -168,13 +172,13 @@

    Arguments

    :: matrix - +

    matrix to redistribute

    - type(dbcsr_type), + type(dbcsr_type), intent(inout) @@ -183,12 +187,12 @@

    Arguments

    :: redist - +

    redistributed matrix

    - + logical, intent(in), :: keep_sparsity - +

    retains the sparsity of the redist matrix +sum blocks with identical row and col from different processes

    - + logical, intent(in), :: summation - +

    retains the sparsity of the redist matrix +sum blocks with identical row and col from different processes

    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_csr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_csr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + character(len=*), intent(in),
    - + logical, intent(in),
    - + character(len=1), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(inout)
    - + type(dbcsr_data_obj), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + character(len=*), intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + character(len=*), intent(in),
    - + logical, intent(in),
    - + character(len=1), intent(in),
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(in)
    - + integer, intent(inout),
    - + integer, intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + type(dbcsr_distribution_obj), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + character(len=*), intent(in)
    - + type(dbcsr_distribution_type), intent(in)
    - + character(len=1), intent(in)
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + character(len=1), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + character(len=*), intent(in)
    - + type(dbcsr_distribution_obj), intent(in)
    - + character(len=1), intent(in)
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + type(array_i1d_obj), intent(in),
    - + type(array_i1d_obj), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in),
    - + type(dbcsr_memtype_type), intent(in),
    - + type(array_i1d_obj), intent(in),
    - + type(array_i1d_obj), intent(in),
    - + type(dbcsr_distribution_obj), intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + character(len=*), intent(in),
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_distribution_type), intent(in),
    - + character(len=1), intent(in),
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + character(len=1), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + character(len=*), intent(in),
    - + type(dbcsr_distribution_obj), intent(in),
    - + character(len=1), intent(in),
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + type(array_i1d_obj), intent(in),
    - + type(array_i1d_obj), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in),
    - + type(dbcsr_memtype_type), intent(in),
    - + type(array_i1d_obj), intent(in),
    - + type(array_i1d_obj), intent(in),
    - + logical, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_csr_type), intent(out)
    - + integer
    - + type(dbcsr_type), intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_scalar_type), intent(in),
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_scalar_type), intent(in),
    - + logical, intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_data_obj), intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + type(dbcsr_data_obj), intent(in)
    - + logical, intent(in),
    - + type(dbcsr_data_obj), intent(inout)
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + logical, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + type(dbcsr_data_obj), intent(in)
    - + type(dbcsr_data_obj), intent(in)
    - + type(dbcsr_data_obj), intent(in)
    - + type(dbcsr_data_obj), intent(in)
    - + logical, intent(out)
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(out)
    - + integer, intent(out)
    - + logical, intent(out)
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(out),
    - + logical, intent(out)
    - + type(dbcsr_data_obj), intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + type(dbcsr_data_obj), intent(inout)
    - + type(dbcsr_data_obj), intent(inout)
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in),
    - + type(dbcsr_memtype_type), intent(in),
    - + type(dbcsr_data_obj), intent(inout)
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4), intent(in),
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8), intent(in),
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4), intent(in),
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8), intent(in),
    - + type(dbcsr_data_obj), intent(inout)
    - + type(dbcsr_data_obj), intent(in)
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(dbcsr_type),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_distribution_obj), intent(inout)
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -169,7 +168,7 @@

    Arguments

    :: matrix -

    matrix to replicate

    +
    :: fast -

    change just the index, don't touch the data

    +
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -168,12 +169,12 @@

    Arguments

    :: matrix - +

    matrix to replicate

    - + logical, intent(in), :: fast - +

    change just the index, don't touch the data

    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_distribution_obj), intent(in)
    - - type(dbcsr_distribution_obj), + + type(dbcsr_distribution_type), intent(in) @@ -174,7 +173,7 @@

    Arguments

    - + integer,
    - + integer,
    - + integer, intent(out),
    - + integer, intent(out),
    - + logical, intent(out),
    - - type(mp_comm_type), + + integer, intent(out), optional @@ -264,7 +263,7 @@

    Arguments

    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer,
    - type(mp_comm_type), + integer, intent(out), optional @@ -400,7 +399,7 @@

    Arguments

    - type(mp_comm_type), + integer, intent(out), optional @@ -430,39 +429,29 @@

    Arguments

    Source Code

       SUBROUTINE dbcsr_distribution_get(dist, row_dist, col_dist, &
    -      !! Get distribution parameters
                                          nrows, ncols, has_threads, &
                                          group, mynode, numnodes, nprows, npcols, myprow, mypcol, pgrid, &
                                          subgroups_defined, prow_group, pcol_group)
    -      TYPE(dbcsr_distribution_obj), INTENT(IN)          :: dist
    +      TYPE(dbcsr_distribution_type), INTENT(IN)          :: dist
           INTEGER, DIMENSION(:), OPTIONAL, POINTER           :: row_dist, col_dist
           INTEGER, INTENT(OUT), OPTIONAL                     :: nrows, ncols
           LOGICAL, INTENT(OUT), OPTIONAL                     :: has_threads
    -      TYPE(mp_comm_type), INTENT(OUT), OPTIONAL          :: group
    -      INTEGER, INTENT(OUT), OPTIONAL                     :: mynode, numnodes, nprows, npcols, &
    +      INTEGER, INTENT(OUT), OPTIONAL                     :: group, mynode, numnodes, nprows, npcols, &
                                                                 myprow, mypcol
           INTEGER, DIMENSION(:, :), OPTIONAL, POINTER        :: pgrid
           LOGICAL, INTENT(OUT), OPTIONAL                     :: subgroups_defined
    -      TYPE(mp_comm_type), INTENT(OUT), OPTIONAL          :: prow_group, pcol_group
    -
    -      IF (PRESENT(row_dist)) row_dist => array_data(dist%d%row_dist_block)
    -      IF (PRESENT(col_dist)) col_dist => array_data(dist%d%col_dist_block)
    -      IF (PRESENT(nrows)) nrows = array_size(dist%d%row_dist_block)
    -      IF (PRESENT(ncols)) ncols = array_size(dist%d%col_dist_block)
    -      IF (PRESENT(has_threads)) has_threads = dist%d%has_thread_dist
    -
    -      IF (PRESENT(group)) group = dist%d%mp_env%mp%mp_group
    -      IF (PRESENT(mynode)) mynode = dist%d%mp_env%mp%mynode
    -      IF (PRESENT(numnodes)) numnodes = dist%d%mp_env%mp%numnodes
    -      IF (PRESENT(nprows)) nprows = SIZE(dist%d%mp_env%mp%pgrid, 1)
    -      IF (PRESENT(npcols)) npcols = SIZE(dist%d%mp_env%mp%pgrid, 2)
    -      IF (PRESENT(myprow)) myprow = dist%d%mp_env%mp%myprow
    -      IF (PRESENT(mypcol)) mypcol = dist%d%mp_env%mp%mypcol
    -      IF (PRESENT(prow_group)) prow_group = dist%d%mp_env%mp%prow_group
    -      IF (PRESENT(pcol_group)) pcol_group = dist%d%mp_env%mp%pcol_group
    -      IF (PRESENT(pgrid)) pgrid => dist%d%mp_env%mp%pgrid
    -      IF (PRESENT(subgroups_defined)) subgroups_defined = dist%d%mp_env%mp%subgroups_defined
    +      INTEGER, INTENT(OUT), OPTIONAL                     :: prow_group, pcol_group
    +
    +      TYPE(mp_comm_type) :: my_group, my_prow_group, my_pcol_group
    +
    +      call dbcsr_distribution_get_prv(dist%prv, row_dist, col_dist, &
    +                                      nrows, ncols, has_threads, &
    +                                      my_group, mynode, numnodes, nprows, npcols, myprow, mypcol, pgrid, &
    +                                      subgroups_defined, my_prow_group, my_pcol_group)
     
    +      IF (PRESENT(group)) group = my_group%get_handle()
    +      IF (PRESENT(prow_group)) prow_group = my_prow_group%get_handle()
    +      IF (PRESENT(pcol_group)) pcol_group = my_pcol_group%get_handle()
        END SUBROUTINE dbcsr_distribution_get
     
    diff --git a/develop/proc/dbcsr_distribution_get_num_images_1d.html b/develop/proc/dbcsr_distribution_get_num_images_1d.html index 31ec32d9cd5..d76cfe94c34 100644 --- a/develop/proc/dbcsr_distribution_get_num_images_1d.html +++ b/develop/proc/dbcsr_distribution_get_num_images_1d.html @@ -176,7 +176,7 @@

    Arguments

    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - - type(dbcsr_distribution_type), + + type(dbcsr_distribution_obj), intent(in) @@ -173,7 +174,7 @@

    Arguments

    - + integer,
    - + integer,
    - + integer, intent(out),
    - + integer, intent(out),
    - + logical, intent(out),
    - - integer, + + type(mp_comm_type), intent(out), optional @@ -263,7 +264,7 @@

    Arguments

    - + integer, intent(out),
    - + integer, intent(out),
    - + integer,
    - + logical, intent(out),
    - integer, + type(mp_comm_type), intent(out), optional @@ -399,7 +400,7 @@

    Arguments

    - integer, + type(mp_comm_type), intent(out), optional @@ -429,29 +430,39 @@

    Arguments

    Source Code

       SUBROUTINE dbcsr_distribution_get(dist, row_dist, col_dist, &
    +      !! Get distribution parameters
                                          nrows, ncols, has_threads, &
                                          group, mynode, numnodes, nprows, npcols, myprow, mypcol, pgrid, &
                                          subgroups_defined, prow_group, pcol_group)
    -      TYPE(dbcsr_distribution_type), INTENT(IN)          :: dist
    +      TYPE(dbcsr_distribution_obj), INTENT(IN)          :: dist
           INTEGER, DIMENSION(:), OPTIONAL, POINTER           :: row_dist, col_dist
           INTEGER, INTENT(OUT), OPTIONAL                     :: nrows, ncols
           LOGICAL, INTENT(OUT), OPTIONAL                     :: has_threads
    -      INTEGER, INTENT(OUT), OPTIONAL                     :: group, mynode, numnodes, nprows, npcols, &
    +      TYPE(mp_comm_type), INTENT(OUT), OPTIONAL          :: group
    +      INTEGER, INTENT(OUT), OPTIONAL                     :: mynode, numnodes, nprows, npcols, &
                                                                 myprow, mypcol
           INTEGER, DIMENSION(:, :), OPTIONAL, POINTER        :: pgrid
           LOGICAL, INTENT(OUT), OPTIONAL                     :: subgroups_defined
    -      INTEGER, INTENT(OUT), OPTIONAL                     :: prow_group, pcol_group
    -
    -      TYPE(mp_comm_type) :: my_group, my_prow_group, my_pcol_group
    -
    -      call dbcsr_distribution_get_prv(dist%prv, row_dist, col_dist, &
    -                                      nrows, ncols, has_threads, &
    -                                      my_group, mynode, numnodes, nprows, npcols, myprow, mypcol, pgrid, &
    -                                      subgroups_defined, my_prow_group, my_pcol_group)
    +      TYPE(mp_comm_type), INTENT(OUT), OPTIONAL          :: prow_group, pcol_group
    +
    +      IF (PRESENT(row_dist)) row_dist => array_data(dist%d%row_dist_block)
    +      IF (PRESENT(col_dist)) col_dist => array_data(dist%d%col_dist_block)
    +      IF (PRESENT(nrows)) nrows = array_size(dist%d%row_dist_block)
    +      IF (PRESENT(ncols)) ncols = array_size(dist%d%col_dist_block)
    +      IF (PRESENT(has_threads)) has_threads = dist%d%has_thread_dist
    +
    +      IF (PRESENT(group)) group = dist%d%mp_env%mp%mp_group
    +      IF (PRESENT(mynode)) mynode = dist%d%mp_env%mp%mynode
    +      IF (PRESENT(numnodes)) numnodes = dist%d%mp_env%mp%numnodes
    +      IF (PRESENT(nprows)) nprows = SIZE(dist%d%mp_env%mp%pgrid, 1)
    +      IF (PRESENT(npcols)) npcols = SIZE(dist%d%mp_env%mp%pgrid, 2)
    +      IF (PRESENT(myprow)) myprow = dist%d%mp_env%mp%myprow
    +      IF (PRESENT(mypcol)) mypcol = dist%d%mp_env%mp%mypcol
    +      IF (PRESENT(prow_group)) prow_group = dist%d%mp_env%mp%prow_group
    +      IF (PRESENT(pcol_group)) pcol_group = dist%d%mp_env%mp%pcol_group
    +      IF (PRESENT(pgrid)) pgrid => dist%d%mp_env%mp%pgrid
    +      IF (PRESENT(subgroups_defined)) subgroups_defined = dist%d%mp_env%mp%subgroups_defined
     
    -      IF (PRESENT(group)) group = my_group%get_handle()
    -      IF (PRESENT(prow_group)) prow_group = my_prow_group%get_handle()
    -      IF (PRESENT(pcol_group)) pcol_group = my_pcol_group%get_handle()
        END SUBROUTINE dbcsr_distribution_get
     
    diff --git a/develop/proc/dbcsr_distribution_has_threads.html b/develop/proc/dbcsr_distribution_has_threads.html index 9a781278b5b..473d5d3cf3d 100644 --- a/develop/proc/dbcsr_distribution_has_threads.html +++ b/develop/proc/dbcsr_distribution_has_threads.html @@ -158,7 +158,7 @@

    Arguments

    - + type(dbcsr_distribution_obj), intent(in)
    - - type(dbcsr_distribution_obj), + + type(dbcsr_distribution_type) intent(inout)
    - - type(dbcsr_distribution_type) + + type(dbcsr_distribution_obj), intent(inout)
    - + type(dbcsr_distribution_obj), intent(in)
    - + type(dbcsr_distribution_obj), intent(in)
    - + type(dbcsr_distribution_obj), intent(in)
    - + type(dbcsr_distribution_obj), intent(in)
    - + type(dbcsr_distribution_obj), intent(inout),
    - + type(dbcsr_distribution_obj), intent(in)
    - + type(dbcsr_distribution_obj), intent(in)
    - + type(dbcsr_distribution_obj), intent(in)
    - + type(dbcsr_distribution_obj), intent(in)
    - + type(dbcsr_distribution_type), intent(out)
    - + type(dbcsr_distribution_type), intent(in),
    - + integer, intent(in),
    - + integer,
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + logical, intent(in),
    - + type(dbcsr_distribution_obj), intent(out)
    - + type(dbcsr_mp_obj), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical,
    - + type(dbcsr_distribution_obj), intent(out)
    - + type(dbcsr_mp_obj), intent(in)
    - + type(array_i1d_obj), intent(in)
    - + type(array_i1d_obj), intent(in)
    - + type(array_i1d_obj), intent(in),
    - + type(array_i1d_obj), intent(in),
    - + type(dbcsr_distribution_obj), intent(out)
    - + type(dbcsr_distribution_obj), intent(in),
    - + type(mp_comm_type), intent(in),
    - + integer,
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_distribution_obj), intent(in)
    - + type(dbcsr_distribution_obj), intent(in)
    - + type(dbcsr_distribution_obj), intent(inout)
    - + type(dbcsr_distribution_obj), intent(in)
    - + type(dbcsr_distribution_obj), intent(in)
    - + type(dbcsr_distribution_obj), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_distribution_type)
    - + type(dbcsr_distribution_obj), intent(inout)
    - + type(dbcsr_distribution_obj), intent(in)
    - + type(dbcsr_distribution_obj), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_4), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_8), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_8), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_4), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_8), intent(inout)
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + real(kind=dp), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_scalar_type), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_4), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_8), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_4), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_8), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(out)
    - + logical, intent(out)
    - + type(dbcsr_type), intent(inout)
    - + logical, intent(in),
    - + type(dbcsr_type), intent(in)
    - + logical, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_data_obj), intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -169,12 +168,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the row -the column

    +
    - + integer, intent(in) :: col -

    the row -the column

    +
    - + complex(kind=real_4), :: block -

    the block to get (rank-2 array)

    +
    - + logical, intent(out) :: tr -

    whether the data is transposed

    +
    - + logical, intent(out) :: found -

    whether the block exists in the matrix

    +
    - + integer, intent(out), :: row_size -

    logical row size of block -logical column size of block

    +
    - + integer, intent(out), :: col_size -

    logical row size of block -logical column size of block

    +
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -168,12 +169,12 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    - + integer, intent(in) :: row - +

    the row +the column

    - + integer, intent(in) :: col - +

    the row +the column

    - + complex(kind=real_4), :: block - +

    the block to get (rank-2 array)

    - + logical, intent(out) :: tr - +

    whether the data is transposed

    - + logical, intent(out) :: found - +

    whether the block exists in the matrix

    - + integer, intent(out), :: row_size - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: col_size - +

    logical row size of block +logical column size of block

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -169,12 +168,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the row -the column

    +
    - + integer, intent(in) :: col -

    the row -the column

    +
    - + real(kind=real_8), :: block -

    the block to get (rank-2 array)

    +
    - + logical, intent(out) :: tr -

    whether the data is transposed

    +
    - + logical, intent(out) :: found -

    whether the block exists in the matrix

    +
    - + integer, intent(out), :: row_size -

    logical row size of block -logical column size of block

    +
    - + integer, intent(out), :: col_size -

    logical row size of block -logical column size of block

    +
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -168,12 +169,12 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    - + integer, intent(in) :: row - +

    the row +the column

    - + integer, intent(in) :: col - +

    the row +the column

    - + real(kind=real_8), :: block - +

    the block to get (rank-2 array)

    - + logical, intent(out) :: tr - +

    whether the data is transposed

    - + logical, intent(out) :: found - +

    whether the block exists in the matrix

    - + integer, intent(out), :: row_size - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: col_size - +

    logical row size of block +logical column size of block

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -169,12 +168,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the row -the column

    +
    - + integer, intent(in) :: col -

    the row -the column

    +
    - + real(kind=real_4), :: block -

    the block to get (rank-2 array)

    +
    - + logical, intent(out) :: tr -

    whether the data is transposed

    +
    - + logical, intent(out) :: found -

    whether the block exists in the matrix

    +
    - + integer, intent(out), :: row_size -

    logical row size of block -logical column size of block

    +
    - + integer, intent(out), :: col_size -

    logical row size of block -logical column size of block

    +
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -168,12 +169,12 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    - + integer, intent(in) :: row - +

    the row +the column

    - + integer, intent(in) :: col - +

    the row +the column

    - + real(kind=real_4), :: block - +

    the block to get (rank-2 array)

    - + logical, intent(out) :: tr - +

    whether the data is transposed

    - + logical, intent(out) :: found - +

    whether the block exists in the matrix

    - + integer, intent(out), :: row_size - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: col_size - +

    logical row size of block +logical column size of block

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -169,12 +168,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the row -the column

    +
    - + integer, intent(in) :: col -

    the row -the column

    +
    - + complex(kind=real_8), :: block -

    the block to get (rank-2 array)

    +
    - + logical, intent(out) :: tr -

    whether the data is transposed

    +
    - + logical, intent(out) :: found -

    whether the block exists in the matrix

    +
    - + integer, intent(out), :: row_size -

    logical row size of block -logical column size of block

    +
    :: col_size -

    logical row size of block -logical column size of block

    +
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -168,12 +169,12 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    - + integer, intent(in) :: row - +

    the row +the column

    - + integer, intent(in) :: col - +

    the row +the column

    - + complex(kind=real_8), :: block - +

    the block to get (rank-2 array)

    - + logical, intent(out) :: tr - +

    whether the data is transposed

    - + logical, intent(out) :: found - +

    whether the block exists in the matrix

    - + integer, intent(out), :: row_size - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: col_size - +

    logical row size of block +logical column size of block

    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -169,12 +168,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the row -the column

    +
    - + integer, intent(in) :: col -

    the row -the column

    +
    - + complex(kind=real_4), :: block -

    the block to get (rank-1 array)

    +
    - + logical, intent(out) :: tr -

    whether the data is transposed

    +
    - + logical, intent(out) :: found -

    whether the block exists in the matrix

    +
    - + integer, intent(out), :: row_size -

    logical row size of block -logical column size of block

    +
    - + integer, intent(out), :: col_size -

    logical row size of block -logical column size of block

    +
    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -168,12 +169,12 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    - + integer, intent(in) :: row - +

    the row +the column

    - + integer, intent(in) :: col - +

    the row +the column

    - + complex(kind=real_4), :: block - +

    the block to get (rank-1 array)

    - + logical, intent(out) :: tr - +

    whether the data is transposed

    - + logical, intent(out) :: found - +

    whether the block exists in the matrix

    :: row_size - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: col_size - +

    logical row size of block +logical column size of block

    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -169,12 +168,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the row -the column

    +
    - + integer, intent(in) :: col -

    the row -the column

    +
    - + real(kind=real_8), :: block -

    the block to get (rank-1 array)

    +
    - + logical, intent(out) :: tr -

    whether the data is transposed

    +
    - + logical, intent(out) :: found -

    whether the block exists in the matrix

    +
    - + integer, intent(out), :: row_size -

    logical row size of block -logical column size of block

    +
    - + integer, intent(out), :: col_size -

    logical row size of block -logical column size of block

    +
    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -168,7 +169,7 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    :: row - +

    the row +the column

    - + integer, intent(in) :: col - +

    the row +the column

    - + real(kind=real_8), :: block - +

    the block to get (rank-1 array)

    - + logical, intent(out) :: tr - +

    whether the data is transposed

    - + logical, intent(out) :: found - +

    whether the block exists in the matrix

    - + integer, intent(out), :: row_size - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: col_size - +

    logical row size of block +logical column size of block

    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -169,12 +168,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the row -the column

    +
    - + integer, intent(in) :: col -

    the row -the column

    +
    - + real(kind=real_4), :: block -

    the block to get (rank-1 array)

    +
    - + logical, intent(out) :: tr -

    whether the data is transposed

    +
    - + logical, intent(out) :: found -

    whether the block exists in the matrix

    +
    - + integer, intent(out), :: row_size -

    logical row size of block -logical column size of block

    +
    - + integer, intent(out), :: col_size -

    logical row size of block -logical column size of block

    +
    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -168,12 +169,12 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    - + integer, intent(in) :: row - +

    the row +the column

    - + integer, intent(in) :: col - +

    the row +the column

    - + real(kind=real_4), :: block - +

    the block to get (rank-1 array)

    - + logical, intent(out) :: tr - +

    whether the data is transposed

    - + logical, intent(out) :: found - +

    whether the block exists in the matrix

    - + integer, intent(out), :: row_size - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: col_size - +

    logical row size of block +logical column size of block

    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -169,12 +168,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the row -the column

    +
    - + integer, intent(in) :: col -

    the row -the column

    +
    - + complex(kind=real_8), :: block -

    the block to get (rank-1 array)

    +
    - + logical, intent(out) :: tr -

    whether the data is transposed

    +
    - + logical, intent(out) :: found -

    whether the block exists in the matrix

    +
    :: row_size -

    logical row size of block -logical column size of block

    +
    - + integer, intent(out), :: col_size -

    logical row size of block -logical column size of block

    +
    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -168,12 +169,12 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    - + integer, intent(in) :: row - +

    the row +the column

    - + integer, intent(in) :: col - +

    the row +the column

    - + complex(kind=real_8), :: block - +

    the block to get (rank-1 array)

    - + logical, intent(out) :: tr - +

    whether the data is transposed

    - + logical, intent(out) :: found - +

    whether the block exists in the matrix

    - + integer, intent(out), :: row_size - +

    logical row size of block +logical column size of block

    - + integer, intent(out), :: col_size - +

    logical row size of block +logical column size of block

    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_4), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + complex(kind=real_4), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + real(kind=real_8), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + real(kind=real_4), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + complex(kind=real_8), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_8), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_4), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_8), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_distribution_obj), intent(inout)
    - + type(array_i1d_obj), intent(out)
    - + type(dbcsr_distribution_obj), intent(inout)
    - + type(array_i1d_obj), intent(out)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer,
    - + integer,
    - + integer,
    - + integer,
    - + integer,
    - + integer,
    - + integer,
    - + integer,
    - + type(dbcsr_distribution_type), intent(out),
    - + character(len=*), intent(out),
    - + character(len=1), intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer,
    - + integer,
    - + integer,
    - + integer,
    - + integer,
    - + integer,
    - + integer,
    - + integer,
    - + type(dbcsr_distribution_obj), intent(out),
    - + character(len=*), intent(out),
    - + type(dbcsr_data_obj), intent(out),
    - + character(len=1),
    - + integer,
    - + type(mp_comm_type), intent(out),
    - + type(dbcsr_distribution_obj), intent(inout)
    - + type(array_i1d_obj), intent(out)
    - + type(dbcsr_distribution_obj), intent(inout)
    - + type(array_i1d_obj), intent(out)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical, intent(out)
    - + integer, intent(out)
    - + logical, intent(out),
    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -171,12 +168,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    input is logical row -input is logical column

    +
    - + integer, intent(in) :: column -

    input is logical row -input is logical column

    +
    - + integer, intent(out), :: processor -

    returns the processor on which this block resides

    +
    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -168,12 +171,12 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    - + integer, intent(in) :: row - +

    input is logical row +input is logical column

    - + integer, intent(in) :: column - +

    input is logical row +input is logical column

    - + integer, intent(out), :: processor - +

    returns the processor on which this block resides

    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_4), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_8), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_4), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_8), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer(kind=valt), intent(in),
    - + integer(kind=keyt), intent(out)
    - + integer(kind=valt), intent(out)
    - + logical, intent(out)
    - + integer, intent(in)
    - + integer(kind=keyt), intent(out)
    - + integer(kind=valt), intent(out)
    - + logical, intent(out)
    - + integer(kind=valt), intent(in)
    - + integer(kind=keyt), intent(in)
    - + integer(kind=valt), intent(in)
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + type(dbcsr_data_obj), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(out)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type),
    - + type(dbcsr_type), intent(inout)
    - + logical,
    - + type(dbcsr_type), intent(inout)
    - + logical,
    - + integer, intent(in)
    - + type(dbcsr_memtype_type), intent(in),
    - + integer, intent(in)
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - - type(dbcsr_iterator_type), + + type(dbcsr_iterator), intent(in) @@ -168,7 +169,7 @@

    Arguments

    :: iterator - +

    the iterator

    - - type(dbcsr_iterator), + + type(dbcsr_iterator_type), intent(in) @@ -169,7 +168,7 @@

    Arguments

    :: iterator -

    the iterator

    +
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + complex(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + real(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + complex(kind=real_4),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + real(kind=real_8),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + real(kind=real_4),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + complex(kind=real_8),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + real(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + complex(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + complex(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + real(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + complex(kind=real_4),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + real(kind=real_8),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + real(kind=real_4),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + complex(kind=real_8),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + real(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + complex(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + integer, intent(out)
    - + integer, intent(out),
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(in)
    - - type(dbcsr_iterator_type), + + type(dbcsr_iterator), intent(out) @@ -168,13 +205,13 @@

    Arguments

    :: iterator - +

    the iterator

    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -183,12 +220,12 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    - + logical, intent(in), :: shared - +

    The matrix is shared between several iterators. Default is .TRUE. +Threads are given blocks regardless of the thread distribution; default is .FALSE. +Threads are given blocks regardless of the thread distribution, but still grouped by rows; default is .FALSE. +Whether returned pointers need to be contiguous; default is FALSE. +User promises not to change returned data; default is FALSE

    - + logical, intent(in), :: dynamic - +

    The matrix is shared between several iterators. Default is .TRUE. +Threads are given blocks regardless of the thread distribution; default is .FALSE. +Threads are given blocks regardless of the thread distribution, but still grouped by rows; default is .FALSE. +Whether returned pointers need to be contiguous; default is FALSE. +User promises not to change returned data; default is FALSE

    - + logical, intent(in), :: dynamic_byrows - +

    The matrix is shared between several iterators. Default is .TRUE. +Threads are given blocks regardless of the thread distribution; default is .FALSE. +Threads are given blocks regardless of the thread distribution, but still grouped by rows; default is .FALSE. +Whether returned pointers need to be contiguous; default is FALSE. +User promises not to change returned data; default is FALSE

    - + logical, intent(in), :: contiguous_pointers - +

    The matrix is shared between several iterators. Default is .TRUE. +Threads are given blocks regardless of the thread distribution; default is .FALSE. +Threads are given blocks regardless of the thread distribution, but still grouped by rows; default is .FALSE. +Whether returned pointers need to be contiguous; default is FALSE. +User promises not to change returned data; default is FALSE

    - + logical, intent(in), :: read_only - +

    The matrix is shared between several iterators. Default is .TRUE. +Threads are given blocks regardless of the thread distribution; default is .FALSE. +Threads are given blocks regardless of the thread distribution, but still grouped by rows; default is .FALSE. +Whether returned pointers need to be contiguous; default is FALSE. +User promises not to change returned data; default is FALSE

    - - type(dbcsr_iterator), + + type(dbcsr_iterator_type), intent(out) @@ -205,13 +168,13 @@

    Arguments

    :: iterator -

    the iterator

    +
    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -220,12 +183,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + logical, intent(in), :: shared -

    The matrix is shared between several iterators. Default is .TRUE. -Threads are given blocks regardless of the thread distribution; default is .FALSE. -Threads are given blocks regardless of the thread distribution, but still grouped by rows; default is .FALSE. -Whether returned pointers need to be contiguous; default is FALSE. -User promises not to change returned data; default is FALSE

    +
    - + logical, intent(in), :: dynamic -

    The matrix is shared between several iterators. Default is .TRUE. -Threads are given blocks regardless of the thread distribution; default is .FALSE. -Threads are given blocks regardless of the thread distribution, but still grouped by rows; default is .FALSE. -Whether returned pointers need to be contiguous; default is FALSE. -User promises not to change returned data; default is FALSE

    +
    - + logical, intent(in), :: dynamic_byrows -

    The matrix is shared between several iterators. Default is .TRUE. -Threads are given blocks regardless of the thread distribution; default is .FALSE. -Threads are given blocks regardless of the thread distribution, but still grouped by rows; default is .FALSE. -Whether returned pointers need to be contiguous; default is FALSE. -User promises not to change returned data; default is FALSE

    +
    - + logical, intent(in), :: contiguous_pointers -

    The matrix is shared between several iterators. Default is .TRUE. -Threads are given blocks regardless of the thread distribution; default is .FALSE. -Threads are given blocks regardless of the thread distribution, but still grouped by rows; default is .FALSE. -Whether returned pointers need to be contiguous; default is FALSE. -User promises not to change returned data; default is FALSE

    +
    - + logical, intent(in), :: read_only -

    The matrix is shared between several iterators. Default is .TRUE. -Threads are given blocks regardless of the thread distribution; default is .FALSE. -Threads are given blocks regardless of the thread distribution, but still grouped by rows; default is .FALSE. -Whether returned pointers need to be contiguous; default is FALSE. -User promises not to change returned data; default is FALSE

    +
    - - type(dbcsr_iterator_type), + + type(dbcsr_iterator), intent(inout) @@ -168,7 +169,7 @@

    Arguments

    :: iterator - +

    the iterator

    - - type(dbcsr_iterator), + + type(dbcsr_iterator_type), intent(inout) @@ -169,7 +168,7 @@

    Arguments

    :: iterator -

    the iterator

    +
    - + integer, intent(in)
    - + integer, intent(inout),
    - + integer, intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + type(dbcsr_mp_obj),
    - + integer, intent(in),
    - + character(len=*), intent(inout)
    - + logical, intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + logical, intent(in)
    - + integer, intent(in)
    - + type(array_i1d_obj), intent(in)
    - + type(array_i1d_obj), intent(out)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_scalar_type), intent(in),
    - + integer, intent(out),
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_distribution_obj), intent(inout)
    - + type(array_i1d_obj), intent(in)
    - + type(array_i1d_obj), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(array_i1d_obj), intent(out)
    - + type(array_i1d_obj), intent(out)
    - + type(array_i1d_obj), intent(out)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_2d_array_type), intent(inout)
    - + type(array_i1d_obj), intent(in)
    - + type(array_i1d_obj), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_distribution_obj), intent(out)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in),
    - + type(dbcsr_mp_obj), intent(out)
    - + type(mp_comm_type), intent(in),
    - + integer, intent(out),
    - + type(dbcsr_type), intent(out)
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + character(len=*), intent(in)
    - + real(kind=real_8), intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + type(dbcsr_distribution_obj), intent(in),
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_distribution_obj), intent(in)
    - + type(array_i1d_obj), intent(in)
    - + type(array_i1d_obj), intent(in)
    - + type(array_i1d_obj), intent(in)
    - + type(array_i1d_obj), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_data_obj)
    - + type(dbcsr_mempool_type),
    - + type(dbcsr_mempool_type),
    - + type(dbcsr_mempool_type),
    - + integer, intent(in)
    - + type(dbcsr_mempool_type),
    - + integer, intent(in)
    - + logical, intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + type(acc_stream_type),
    - + real(kind=dp),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_mm_accdrv_type), intent(inout)
    - + type(dbcsr_mm_accdrv_type), intent(inout)
    - + type(dbcsr_mm_accdrv_type), intent(inout)
    - + type(dbcsr_work_type),
    - + integer,
    - + logical, intent(in)
    - + type(dbcsr_mm_accdrv_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + type(stack_descriptor_type), intent(in)
    - + logical, intent(out)
    - + logical, intent(out)
    - + type(dbcsr_mm_csr_type), intent(inout)
    - + type(dbcsr_mm_csr_type), intent(inout)
    - + type(dbcsr_mm_csr_type), intent(inout)
    - + type(dbcsr_type), intent(in),
    - + type(dbcsr_type), intent(in),
    - + integer,
    - + integer,
    - + logical, intent(in)
    - + type(dbcsr_mm_csr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + logical, intent(inout)
    - + logical, intent(inout)
    - + real(kind=sp),
    - + integer(kind=int_8), intent(inout)
    - + type(dbcsr_mm_csr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in)
    - + logical, intent(in)
    - + real(kind=sp),
    - + integer(kind=int_8), intent(inout)
    - + type(dbcsr_mm_csr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_mm_csr_type), intent(inout)
    - + type(dbcsr_data_obj), intent(in)
    - + integer(kind=int_8), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in)
    - + type(dbcsr_mm_hostdrv_type), intent(inout)
    - + type(dbcsr_work_type),
    - + type(dbcsr_mm_hostdrv_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + type(stack_descriptor_type), intent(in)
    - + logical, intent(out)
    - + type(dbcsr_mm_multrec_type), intent(inout)
    - + type(dbcsr_mm_multrec_type), intent(inout)
    - + type(dbcsr_mm_multrec_type), intent(in)
    - + type(dbcsr_mm_multrec_type), intent(in)
    - + type(dbcsr_mm_multrec_type), intent(out)
    - + type(dbcsr_type), intent(in),
    - + type(dbcsr_type), intent(in),
    - + logical, intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=sp), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer,
    - + logical, intent(in),
    - + type(dbcsr_mm_multrec_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer(kind=int_8), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_mm_multrec_type), intent(inout)
    - + type(dbcsr_data_obj), intent(in)
    - + integer(kind=int_8), intent(inout)
    - + type(dbcsr_mm_sched_type), intent(inout)
    - + type(dbcsr_mm_sched_type), intent(inout)
    - + type(dbcsr_mm_sched_type), intent(inout)
    - + type(dbcsr_mm_sched_type), intent(inout)
    - + type(dbcsr_work_type),
    - + integer,
    - + logical, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in)
    - + type(dbcsr_mm_sched_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(stack_descriptor_type), intent(in)
    - + type(dbcsr_mm_sched_type), intent(inout)
    - + type(dbcsr_mp_obj), intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(dbcsr_mp_obj), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_mp_obj), intent(inout)
    - - type(dbcsr_mp_obj), + + type(dbcsr_distribution_type), intent(inout) ::mp_envdist -

    multiprocessor environment

    +
    - - type(dbcsr_distribution_type), + + type(dbcsr_mp_obj), intent(inout) ::distmp_env - +

    multiprocessor environment

    - + type(dbcsr_mp_obj), intent(in)
    - + type(dbcsr_mp_obj), intent(in)
    - + type(dbcsr_mp_obj), intent(inout)
    - + type(dbcsr_mp_obj), intent(out)
    - + type(dbcsr_mp_obj), intent(out)
    - + type(mp_comm_type), intent(out)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + type(dbcsr_mp_obj), intent(in)
    - + type(dbcsr_mp_obj), intent(in)
    - + type(dbcsr_mp_obj), intent(in)
    - + type(dbcsr_mp_obj), intent(in)
    - + type(dbcsr_mp_obj), intent(in)
    - + type(dbcsr_mp_obj), intent(out)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_mp_obj), intent(out)
    - + type(mp_comm_type), intent(in)
    - + integer,
    - + type(dbcsr_mp_obj), intent(in)
    - + type(dbcsr_mp_obj), intent(in)
    - + type(dbcsr_mp_obj), intent(in)
    - + type(dbcsr_mp_obj), intent(in)
    - + type(dbcsr_mp_obj), intent(in)
    - + type(dbcsr_mp_obj), intent(inout)
    - + type(dbcsr_data_obj), intent(in)
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + complex(kind=real_4), intent(in)
    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -218,8 +218,8 @@

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -233,7 +233,7 @@

    Arguments

    - + complex(kind=real_4), intent(in)
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -263,7 +263,7 @@

    Arguments

    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + complex(kind=real_4), intent(in)
    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -218,8 +218,8 @@

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -233,7 +233,7 @@

    Arguments

    - + complex(kind=real_4), intent(in)
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -263,7 +263,7 @@

    Arguments

    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + real(kind=real_8), intent(in)
    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -218,8 +218,8 @@

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -233,7 +233,7 @@

    Arguments

    - + real(kind=real_8), intent(in)
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -263,7 +263,7 @@

    Arguments

    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + real(kind=real_8), intent(in)
    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -218,8 +218,8 @@

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -233,7 +233,7 @@

    Arguments

    - + real(kind=real_8), intent(in)
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -263,7 +263,7 @@

    Arguments

    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + type(dbcsr_scalar_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_scalar_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in)
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + real(kind=real_4), intent(in)
    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -219,7 +219,7 @@

    Arguments

    - type(dbcsr_type), + type(dbcsr_type), intent(in) @@ -233,7 +233,7 @@

    Arguments

    - + real(kind=real_4), intent(in)
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -263,7 +263,7 @@

    Arguments

    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + real(kind=real_4), intent(in)
    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -218,8 +218,8 @@

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -233,7 +233,7 @@

    Arguments

    - + real(kind=real_4), intent(in)
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -263,7 +263,7 @@

    Arguments

    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + complex(kind=real_8), intent(in)
    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -219,7 +219,7 @@

    Arguments

    - type(dbcsr_type), + type(dbcsr_type), intent(in) @@ -233,7 +233,7 @@

    Arguments

    - + complex(kind=real_8), intent(in)
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -263,7 +263,7 @@

    Arguments

    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + complex(kind=real_8), intent(in)
    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -218,8 +218,8 @@

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -233,7 +233,7 @@

    Arguments

    - + complex(kind=real_8), intent(in)
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -263,7 +263,7 @@

    Arguments

    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + integer, intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_distribution_obj), intent(in)
    - + type(dbcsr_imagedistribution_obj), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + logical, intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_distribution_obj), intent(in),
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(out),
    - + type(dbcsr_type), intent(in)
    - + logical, intent(in),
    - + integer,
    - + type(dbcsr_type), intent(in)
    - + integer,
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in)
    - + logical, intent(in),
    - + character(len=*), intent(in),
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical, intent(in),
    - + real(kind=real_4), intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical, intent(in),
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical, intent(in),
    - + type(dbcsr_type), intent(in)
    - + logical, intent(in),
    - + integer, intent(in),
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -169,12 +168,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the row -the column

    +
    - + integer, intent(in) :: col -

    the row -the column

    +
    - + complex(kind=real_4), intent(in), - DIMENSION(:, :), CONTIGUOUS, TARGET + DIMENSION(:, :) :: block -

    the block to put

    -
    - - integer, - intent(inout),optional, - DIMENSION(2) - ::lb_row_col
    - - logical, - intent(in),optional - - ::transposed -

    the block is transposed -if block exists, then sum the new block to the old one instead of replacing it

    -
    - + logical, intent(in), :: summation -

    the block is transposed -if block exists, then sum the new block to the old one instead of replacing it

    -
    - - integer(kind=int_8), - intent(inout),optional - - ::flop
    - + complex(kind=real_4), intent(in), :: scale -

    scale the block being added

    +
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -168,12 +169,12 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    - + integer, intent(in) :: row - +

    the row +the column

    - + integer, intent(in) :: col - +

    the row +the column

    - + complex(kind=real_4), intent(in), - DIMENSION(:, :) + DIMENSION(:, :), CONTIGUOUS, TARGET :: block +

    the block to put

    +
    + + integer, + intent(inout),optional, + DIMENSION(2) + ::lb_row_col
    - + + logical, + intent(in),optional + + ::transposed +

    the block is transposed +if block exists, then sum the new block to the old one instead of replacing it

    +
    + logical, intent(in), :: summation +

    the block is transposed +if block exists, then sum the new block to the old one instead of replacing it

    +
    + + integer(kind=int_8), + intent(inout),optional + + ::flop
    - + complex(kind=real_4), intent(in), :: scale - +

    scale the block being added

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -169,12 +168,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the row -the column

    +
    - + integer, intent(in) :: col -

    the row -the column

    +
    - + real(kind=real_8), intent(in), - DIMENSION(:, :), CONTIGUOUS, TARGET + DIMENSION(:, :) :: block -

    the block to put

    -
    - - integer, - intent(inout),optional, - DIMENSION(2) - ::lb_row_col
    - - logical, - intent(in),optional - - ::transposed -

    the block is transposed -if block exists, then sum the new block to the old one instead of replacing it

    -
    - + logical, intent(in), :: summation -

    the block is transposed -if block exists, then sum the new block to the old one instead of replacing it

    -
    - - integer(kind=int_8), - intent(inout),optional - - ::flop
    - + real(kind=real_8), intent(in), :: scale -

    scale the block being added

    +
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -168,12 +169,12 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    - + integer, intent(in) :: row - +

    the row +the column

    - + integer, intent(in) :: col - +

    the row +the column

    - + real(kind=real_8), intent(in), - DIMENSION(:, :) + DIMENSION(:, :), CONTIGUOUS, TARGET :: block +

    the block to put

    +
    + + integer, + intent(inout),optional, + DIMENSION(2) + ::lb_row_col
    - + + logical, + intent(in),optional + + ::transposed +

    the block is transposed +if block exists, then sum the new block to the old one instead of replacing it

    +
    + logical, intent(in), :: summation +

    the block is transposed +if block exists, then sum the new block to the old one instead of replacing it

    +
    + + integer(kind=int_8), + intent(inout),optional + + ::flop
    - + real(kind=real_8), intent(in), :: scale - +

    scale the block being added

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -169,12 +168,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the row -the column

    +
    - + integer, intent(in) :: col -

    the row -the column

    +
    - + real(kind=real_4), intent(in), - DIMENSION(:, :), CONTIGUOUS, TARGET + DIMENSION(:, :) :: block -

    the block to put

    -
    - - integer, - intent(inout),optional, - DIMENSION(2) - ::lb_row_col
    - - logical, - intent(in),optional - - ::transposed -

    the block is transposed -if block exists, then sum the new block to the old one instead of replacing it

    -
    - + logical, intent(in), :: summation -

    the block is transposed -if block exists, then sum the new block to the old one instead of replacing it

    -
    - - integer(kind=int_8), - intent(inout),optional - - ::flop
    - + real(kind=real_4), intent(in), :: scale -

    scale the block being added

    +
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -168,7 +169,7 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    :: row - +

    the row +the column

    - + integer, intent(in) :: col - +

    the row +the column

    - + real(kind=real_4), intent(in), - DIMENSION(:, :) + DIMENSION(:, :), CONTIGUOUS, TARGET :: block +

    the block to put

    +
    + + integer, + intent(inout),optional, + DIMENSION(2) + ::lb_row_col
    - + + logical, + intent(in),optional + + ::transposed +

    the block is transposed +if block exists, then sum the new block to the old one instead of replacing it

    +
    + logical, intent(in), :: summation +

    the block is transposed +if block exists, then sum the new block to the old one instead of replacing it

    +
    + + integer(kind=int_8), + intent(inout),optional + + ::flop
    - + real(kind=real_4), intent(in), :: scale - +

    scale the block being added

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -169,12 +168,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the row -the column

    +
    - + integer, intent(in) :: col -

    the row -the column

    +
    - + complex(kind=real_8), intent(in), - DIMENSION(:, :), CONTIGUOUS, TARGET + DIMENSION(:, :) :: block -

    the block to put

    -
    - - integer, - intent(inout),optional, - DIMENSION(2) - ::lb_row_col
    - - logical, - intent(in),optional - - ::transposed -

    the block is transposed -if block exists, then sum the new block to the old one instead of replacing it

    -
    - + logical, intent(in), :: summation -

    the block is transposed -if block exists, then sum the new block to the old one instead of replacing it

    -
    - - integer(kind=int_8), - intent(inout),optional - - ::flop
    - + complex(kind=real_8), intent(in), :: scale -

    scale the block being added

    +
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -168,12 +169,12 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    - + integer, intent(in) :: row - +

    the row +the column

    - + integer, intent(in) :: col - +

    the row +the column

    - + complex(kind=real_8), intent(in), - DIMENSION(:, :) + DIMENSION(:, :), CONTIGUOUS, TARGET :: block +

    the block to put

    +
    + + integer, + intent(inout),optional, + DIMENSION(2) + ::lb_row_col
    - + + logical, + intent(in),optional + + ::transposed +

    the block is transposed +if block exists, then sum the new block to the old one instead of replacing it

    +
    + logical, intent(in), :: summation +

    the block is transposed +if block exists, then sum the new block to the old one instead of replacing it

    +
    + + integer(kind=int_8), + intent(inout),optional + + ::flop
    - + complex(kind=real_8), intent(in), :: scale - +

    scale the block being added

    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_data_obj)
    - + logical, intent(in),
    - + logical, intent(in),
    - + integer(kind=int_8), intent(inout),
    - + type(dbcsr_scalar_type), intent(in),
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -171,12 +168,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the logical row -the logical column

    +
    - + integer, intent(in) :: col -

    the logical row -the logical column

    +
    - + complex(kind=real_4), intent(in), - DIMENSION(:), CONTIGUOUS + DIMENSION(:) :: block -

    the block to put

    -
    - - integer, - intent(inout),optional, - DIMENSION(2) - ::lb_row_col
    - - logical, - intent(in),optional - - ::transposed -

    the block is transposed -if block exists, then sum the new block to the old one instead of replacing it

    -
    - + logical, intent(in), :: summation -

    the block is transposed -if block exists, then sum the new block to the old one instead of replacing it

    -
    - - integer(kind=int_8), - intent(inout),optional - - ::flop
    - + complex(kind=real_4), intent(in), :: scale -

    scale the OBblock being added

    +
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -168,12 +171,12 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    - + integer, intent(in) :: row - +

    the logical row +the logical column

    - + integer, intent(in) :: col - +

    the logical row +the logical column

    - + complex(kind=real_4), intent(in), - DIMENSION(:) + DIMENSION(:), CONTIGUOUS :: block +

    the block to put

    +
    + + integer, + intent(inout),optional, + DIMENSION(2) + ::lb_row_col
    - + + logical, + intent(in),optional + + ::transposed +

    the block is transposed +if block exists, then sum the new block to the old one instead of replacing it

    +
    + logical, intent(in), :: summation +

    the block is transposed +if block exists, then sum the new block to the old one instead of replacing it

    +
    + + integer(kind=int_8), + intent(inout),optional + + ::flop
    - + complex(kind=real_4), intent(in), :: scale - +

    scale the OBblock being added

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -171,12 +168,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the logical row -the logical column

    +
    - + integer, intent(in) :: col -

    the logical row -the logical column

    +
    - + real(kind=real_8), intent(in), - DIMENSION(:), CONTIGUOUS + DIMENSION(:) :: block -

    the block to put

    -
    - - integer, - intent(inout),optional, - DIMENSION(2) - ::lb_row_col
    - - logical, - intent(in),optional - - ::transposed -

    the block is transposed -if block exists, then sum the new block to the old one instead of replacing it

    -
    - + logical, intent(in), :: summation -

    the block is transposed -if block exists, then sum the new block to the old one instead of replacing it

    -
    - - integer(kind=int_8), - intent(inout),optional - - ::flop
    - + real(kind=real_8), intent(in), :: scale -

    scale the OBblock being added

    +
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -168,12 +171,12 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    - + integer, intent(in) :: row - +

    the logical row +the logical column

    - + integer, intent(in) :: col - +

    the logical row +the logical column

    - + real(kind=real_8), intent(in), - DIMENSION(:) + DIMENSION(:), CONTIGUOUS :: block +

    the block to put

    +
    + + integer, + intent(inout),optional, + DIMENSION(2) + ::lb_row_col
    - + + logical, + intent(in),optional + + ::transposed +

    the block is transposed +if block exists, then sum the new block to the old one instead of replacing it

    +
    + logical, intent(in), :: summation +

    the block is transposed +if block exists, then sum the new block to the old one instead of replacing it

    +
    + + integer(kind=int_8), + intent(inout),optional + + ::flop
    - + real(kind=real_8), intent(in), :: scale - +

    scale the OBblock being added

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -171,12 +168,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the logical row -the logical column

    +
    - + integer, intent(in) :: col -

    the logical row -the logical column

    +
    - + real(kind=real_4), intent(in), - DIMENSION(:), CONTIGUOUS + DIMENSION(:) :: block -

    the block to put

    -
    - - integer, - intent(inout),optional, - DIMENSION(2) - ::lb_row_col
    - - logical, - intent(in),optional - - ::transposed -

    the block is transposed -if block exists, then sum the new block to the old one instead of replacing it

    -
    - + logical, intent(in), :: summation -

    the block is transposed -if block exists, then sum the new block to the old one instead of replacing it

    -
    - - integer(kind=int_8), - intent(inout),optional - - ::flop
    - + real(kind=real_4), intent(in), :: scale -

    scale the OBblock being added

    +
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -168,7 +171,7 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    :: row - +

    the logical row +the logical column

    - + integer, intent(in) :: col - +

    the logical row +the logical column

    - + real(kind=real_4), intent(in), - DIMENSION(:) + DIMENSION(:), CONTIGUOUS :: block +

    the block to put

    +
    + + integer, + intent(inout),optional, + DIMENSION(2) + ::lb_row_col
    - + + logical, + intent(in),optional + + ::transposed +

    the block is transposed +if block exists, then sum the new block to the old one instead of replacing it

    +
    + logical, intent(in), :: summation +

    the block is transposed +if block exists, then sum the new block to the old one instead of replacing it

    +
    + + integer(kind=int_8), + intent(inout),optional + + ::flop
    - + real(kind=real_4), intent(in), :: scale - +

    scale the OBblock being added

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -171,12 +168,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the logical row -the logical column

    +
    - + integer, intent(in) :: col -

    the logical row -the logical column

    +
    - + complex(kind=real_8), intent(in), - DIMENSION(:), CONTIGUOUS + DIMENSION(:) :: block -

    the block to put

    -
    - - integer, - intent(inout),optional, - DIMENSION(2) - ::lb_row_col
    - - logical, - intent(in),optional - - ::transposed -

    the block is transposed -if block exists, then sum the new block to the old one instead of replacing it

    -
    - + logical, intent(in), :: summation -

    the block is transposed -if block exists, then sum the new block to the old one instead of replacing it

    -
    - - integer(kind=int_8), - intent(inout),optional - - ::flop
    - + complex(kind=real_8), intent(in), :: scale -

    scale the OBblock being added

    +
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -168,12 +171,12 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    - + integer, intent(in) :: row - +

    the logical row +the logical column

    - + integer, intent(in) :: col - +

    the logical row +the logical column

    - + complex(kind=real_8), intent(in), - DIMENSION(:) + DIMENSION(:), CONTIGUOUS :: block +

    the block to put

    +
    + + integer, + intent(inout),optional, + DIMENSION(2) + ::lb_row_col
    - + + logical, + intent(in),optional + + ::transposed +

    the block is transposed +if block exists, then sum the new block to the old one instead of replacing it

    +
    + logical, intent(in), :: summation +

    the block is transposed +if block exists, then sum the new block to the old one instead of replacing it

    +
    + + integer(kind=int_8), + intent(inout),optional + + ::flop
    - + complex(kind=real_8), intent(in), :: scale - +

    scale the OBblock being added

    - + integer, intent(out),
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=dp), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + type(dbcsr_tas_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(inout)
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -169,7 +168,7 @@

    Arguments

    :: matrix -

    matrix to replicate

    +
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -168,7 +169,7 @@

    Arguments

    :: matrix - +

    matrix to replicate

    - + type(dbcsr_type), intent(inout)
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -170,7 +168,7 @@

    Arguments

    :: matrix -

    Matrix into which blocks should be added.

    +
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -168,7 +170,7 @@

    Arguments

    :: matrix - +

    Matrix into which blocks should be added.

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -169,12 +168,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the row -the column

    +
    - + integer, intent(in) :: col -

    the row -the column

    +
    - + complex(kind=real_4), :: block -

    the block to reserve; added if not NULL

    +
    - + logical, intent(in), :: transposed -

    the block holds transposed data

    +
    :: existed -

    block already existed

    +
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -168,12 +169,12 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    - + integer, intent(in) :: row - +

    the row +the column

    - + integer, intent(in) :: col - +

    the row +the column

    - + complex(kind=real_4), :: block - +

    the block to reserve; added if not NULL

    - + logical, intent(in), :: transposed - +

    the block holds transposed data

    :: existed - +

    block already existed

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -169,12 +168,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the row -the column

    +
    - + integer, intent(in) :: col -

    the row -the column

    +
    - + real(kind=real_8), :: block -

    the block to reserve; added if not NULL

    +
    - + logical, intent(in), :: transposed -

    the block holds transposed data

    +
    :: existed -

    block already existed

    +
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -168,12 +169,12 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    - + integer, intent(in) :: row - +

    the row +the column

    - + integer, intent(in) :: col - +

    the row +the column

    - + real(kind=real_8), :: block - +

    the block to reserve; added if not NULL

    - + logical, intent(in), :: transposed - +

    the block holds transposed data

    :: existed - +

    block already existed

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -169,12 +168,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the row -the column

    +
    - + integer, intent(in) :: col -

    the row -the column

    +
    - + real(kind=real_4), :: block -

    the block to reserve; added if not NULL

    +
    - + logical, intent(in), :: transposed -

    the block holds transposed data

    +
    :: existed -

    block already existed

    +
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -168,12 +169,12 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    - + integer, intent(in) :: row - +

    the row +the column

    - + integer, intent(in) :: col - +

    the row +the column

    - + real(kind=real_4), :: block - +

    the block to reserve; added if not NULL

    - + logical, intent(in), :: transposed - +

    the block holds transposed data

    :: existed - +

    block already existed

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -169,12 +168,12 @@

    Arguments

    :: matrix -

    DBCSR matrix

    +
    - + integer, intent(in) :: row -

    the row -the column

    +
    - + integer, intent(in) :: col -

    the row -the column

    +
    - + complex(kind=real_8), :: block -

    the block to reserve; added if not NULL

    +
    - + logical, intent(in), :: transposed -

    the block holds transposed data

    +
    :: existed -

    block already existed

    +
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -168,12 +169,12 @@

    Arguments

    :: matrix - +

    DBCSR matrix

    - + integer, intent(in) :: row - +

    the row +the column

    - + integer, intent(in) :: col - +

    the row +the column

    - + complex(kind=real_8), :: block - +

    the block to reserve; added if not NULL

    - + logical, intent(in), :: transposed - +

    the block holds transposed data

    :: existed - +

    block already existed

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -178,12 +168,12 @@

    Arguments

    :: matrix -

    Matrix into which blocks should be added.

    +
    - + integer, intent(in), :: rows -

    Rows of the blocks to add -Columns of the blocks to add

    +
    - + integer, intent(in), ::columnscols -

    Rows of the blocks to add -Columns of the blocks to add

    +
    :: blk_pointers -

    block pointers to use for new blocks

    +
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -168,12 +178,12 @@

    Arguments

    :: matrix - +

    Matrix into which blocks should be added.

    - + integer, intent(in), :: rows - +

    Rows of the blocks to add +Columns of the blocks to add

    - + integer, intent(in), ::colscolumns - +

    Rows of the blocks to add +Columns of the blocks to add

    :: blk_pointers - +

    block pointers to use for new blocks

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -169,7 +168,7 @@

    Arguments

    :: matrix -

    Matrix into which blocks should be added.

    +
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -168,7 +169,7 @@

    Arguments

    :: matrix - +

    Matrix into which blocks should be added.

    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in)
    - + type(mp_win_type), intent(in)
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_request_type), intent(out)
    - + type(mp_type_descriptor_type), intent(in),
    - + type(mp_type_descriptor_type), intent(in),
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - - type(mp_comm_type), + + integer, intent(in) @@ -175,7 +173,7 @@

    Arguments

    - + integer, intent(in) :: io_unit -

    MPI communicator -which unit to write to, if not negative

    +
    :: nproc -

    number of processors to test on

    +
    :: matrix_sizes -

    size of matrices to test

    +
    :: trs -

    transposes of the two matrices

    +
    :: bs_m -

    block sizes of the 3 dimensions -block sizes of the 3 dimensions -block sizes of the 3 dimensions

    +
    :: bs_n -

    block sizes of the 3 dimensions -block sizes of the 3 dimensions -block sizes of the 3 dimensions

    +
    :: bs_k -

    block sizes of the 3 dimensions -block sizes of the 3 dimensions -block sizes of the 3 dimensions

    +
    :: sparsities -

    sparsities of matrices to create

    +
    - + real(kind=dp), intent(in) :: alpha -

    alpha value to use in multiply -beta value to use in multiply

    +
    - + real(kind=dp), intent(in) :: beta -

    alpha value to use in multiply -beta value to use in multiply

    +
    - + integer, intent(in) :: data_type -

    matrix data type -number of repetition for each multiplication

    +
    :: test_type -

    matrix data type -number of repetition for each multiplication

    +
    :: n_loops -

    matrix data type -number of repetition for each multiplication

    +
    - + real(kind=dp), intent(in) :: eps -

    eps value for filtering

    +
    - + logical, intent(in) :: retain_sparsity -

    checksum after each multiplication

    +
    :: always_checksum -

    checksum after each multiplication

    +
    - - integer, + + type(mp_comm_type), intent(in) @@ -183,7 +185,8 @@

    Arguments

    :: io_unit - +

    MPI communicator +which unit to write to, if not negative

    :: nproc - +

    number of processors to test on

    :: matrix_sizes - +

    size of matrices to test

    :: trs - +

    transposes of the two matrices

    :: bs_m - +

    block sizes of the 3 dimensions +block sizes of the 3 dimensions +block sizes of the 3 dimensions

    :: bs_n - +

    block sizes of the 3 dimensions +block sizes of the 3 dimensions +block sizes of the 3 dimensions

    :: bs_k - +

    block sizes of the 3 dimensions +block sizes of the 3 dimensions +block sizes of the 3 dimensions

    :: sparsities - +

    sparsities of matrices to create

    - + real(kind=dp), intent(in) :: alpha - +

    alpha value to use in multiply +beta value to use in multiply

    :: beta - +

    alpha value to use in multiply +beta value to use in multiply

    - + integer, intent(in) :: data_type - +

    matrix data type +number of repetition for each multiplication

    :: test_type - +

    matrix data type +number of repetition for each multiplication

    - + integer, intent(in) :: n_loops - +

    matrix data type +number of repetition for each multiplication

    - + real(kind=dp), intent(in) :: eps - +

    eps value for filtering

    - + logical, intent(in) :: retain_sparsity - +

    checksum after each multiplication

    - + logical, intent(in) :: always_checksum - +

    checksum after each multiplication

    - + type(dbcsr_scalar_type), intent(in)
    - + complex(kind=real_4), intent(in)
    - + real(kind=real_8), intent(in)
    - + type(dbcsr_scalar_type), intent(inout)
    - + type(dbcsr_scalar_type), intent(in)
    - + complex(kind=real_4), intent(out)
    - + real(kind=real_8), intent(out)
    - + real(kind=real_4), intent(out)
    - + complex(kind=real_8), intent(out)
    - + type(dbcsr_scalar_type), intent(in)
    - + integer, intent(in)
    - + real(kind=real_4), intent(in)
    - + type(dbcsr_scalar_type), intent(inout)
    - + integer, intent(in)
    - + complex(kind=real_8), intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_data_obj), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_4), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_4), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_8), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_8), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_4), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_4), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_8), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_8), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_4), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + real(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + complex(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + character(len=*), intent(in)
    - + integer, intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_data_obj), intent(in)
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_t_type), intent(out)
    - + integer, intent(out),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(out),
    - + integer, intent(in)
    - + integer, intent(out),
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_t_pgrid_type), intent(in)
    - + logical, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_t_type), intent(in)
    - + logical, intent(in),
    - + logical, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(dbcsr_scalar_type), intent(in)
    - + type(dbcsr_t_type), intent(inout),
    - + type(dbcsr_t_type), intent(inout),
    - + type(dbcsr_scalar_type), intent(in)
    - + type(dbcsr_t_type), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + logical, intent(in),
    - + logical, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_scalar_type), intent(in)
    - + type(dbcsr_t_type), intent(inout),
    - + type(dbcsr_t_type), intent(inout),
    - + type(dbcsr_scalar_type), intent(in)
    - + type(dbcsr_t_type), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + logical, intent(in),
    - + logical, intent(in),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_scalar_type), intent(in)
    - + type(dbcsr_t_type), intent(inout),
    - + type(dbcsr_t_type), intent(inout),
    - + type(dbcsr_scalar_type), intent(in)
    - + type(dbcsr_t_type), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer, intent(out)
    - + integer, intent(out),
    - + type(dbcsr_scalar_type), intent(in)
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_scalar_type), intent(in)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer,
    - + integer,
    - + integer,
    - + logical, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_t_type), intent(inout),
    - + type(dbcsr_t_type), intent(inout),
    - + integer, intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_t_type), intent(in)
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_t_type), intent(inout),
    - + type(dbcsr_t_type), intent(inout),
    - + integer, intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + logical, intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_t_type), intent(inout)
    - + logical, intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + logical, intent(in),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in),
    - + character(len=*), intent(in),
    - + character(len=*), intent(in)
    - + type(dbcsr_t_distribution_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + character(len=*), intent(in),
    - + type(dbcsr_t_distribution_type), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_t_type), intent(out)
    - + integer, intent(in),
    - + logical, intent(in),
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(out),
    - + type(dbcsr_t_distribution_type), intent(inout)
    - + type(dbcsr_t_distribution_type), intent(in)
    - + type(dbcsr_t_distribution_type), intent(out)
    - + type(dbcsr_t_pgrid_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_t_distribution_type), intent(out)
    - + type(dbcsr_t_pgrid_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_t_distribution_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_t_type), intent(inout)
    - + complex(kind=real_8), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + complex(kind=real_4), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + real(kind=real_4), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(out),
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + type(block_nd), intent(out)
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + type(block_nd), intent(out)
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + type(block_nd), intent(out)
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + type(block_nd), intent(out)
    - + logical, intent(out)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + type(block_nd), intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_t_distribution_type), intent(out),
    - + character(len=*), intent(out),
    - + integer, intent(out),
    - + type(nd_to_2d_mapping), intent(in)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + logical, intent(out),
    - + integer, intent(in),
    - + integer, intent(out)
    - + integer, intent(in),
    - + type(dbcsr_t_iterator_type), intent(in)
    - + type(dbcsr_t_iterator_type), intent(inout)
    - + integer, intent(out),
    - + integer, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_t_iterator_type), intent(out)
    - + type(dbcsr_t_type), intent(in)
    - + type(dbcsr_t_iterator_type), intent(inout)
    - + logical, intent(in),
    - + type(dbcsr_t_type), intent(in)
    - + type(dbcsr_t_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(out),
    - + logical, intent(out),
    - + integer, intent(inout),
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(inout)
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_t_type), intent(out)
    - + integer, intent(in),
    - + type(dbcsr_t_pgrid_type), intent(inout)
    - + integer, intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer, intent(inout),
    - + type(dbcsr_t_pgrid_type), intent(out)
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + integer, intent(inout),
    - + type(dbcsr_t_pgrid_type), intent(out)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(inout),
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(inout),
    - + type(dbcsr_t_pgrid_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_t_pgrid_type), intent(inout)
    - + type(dbcsr_t_type), intent(in)
    - + type(dbcsr_t_type), intent(in)
    - + type(dbcsr_t_type), intent(in)
    - + integer, intent(in)
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_8), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_4), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(in),
    - + logical, intent(in),
    - + real(kind=real_4), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_8), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_4), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(in),
    - + logical, intent(in),
    - + real(kind=real_4), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_8), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_4), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(in),
    - + logical, intent(in),
    - + real(kind=real_4), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + type(block_nd), intent(in)
    - + logical, intent(in),
    - + type(dbcsr_scalar_type), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + type(block_nd_c_dp), intent(in)
    - + logical, intent(in),
    - + complex(kind=real_8), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + type(block_nd_c_sp), intent(in)
    - + logical, intent(in),
    - + complex(kind=real_4), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + type(block_nd_r_dp), intent(in)
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + type(block_nd_r_sp), intent(in)
    - + logical, intent(in),
    - + real(kind=real_4), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_t_type), intent(out)
    - + type(mp_comm_type), intent(in),
    - + type(array_list), intent(in),
    - + type(array_list), intent(in),
    - + character(len=*), intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_type), intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_t_type), intent(in)
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_t_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_t_type), intent(in)
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_t_type), intent(inout)
    - + logical, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_scalar_type), intent(in)
    - + complex(kind=real_8), intent(in)
    - + complex(kind=real_4), intent(in)
    - + real(kind=real_8), intent(in)
    - + real(kind=real_4), intent(in)
    - + type(dbcsr_t_type), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_t_type), intent(out)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_t_type), intent(out)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + logical, intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in)
    - + logical, intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + character(len=*), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(in),
    - + logical, intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + type(dbcsr_t_type), intent(inout)
    - + logical, intent(in),
    - + type(dbcsr_t_pgrid_type), intent(in)
    - + integer, intent(in)
    - + type(dbcsr_t_type), intent(in)
    - + integer, intent(in)
    - + type(dbcsr_t_type), intent(in)
    - + integer, intent(in)
    - + logical, intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + type(dbcsr_tas_type), intent(inout)
    - + type(dbcsr_tas_type), intent(inout)
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + type(dbcsr_tas_type), intent(inout)
    - + type(dbcsr_tas_type), intent(inout)
    - + type(dbcsr_tas_type), intent(inout)
    - + real(kind=real_8), intent(in),
    - + integer, intent(in),
    - + type(dbcsr_tas_type), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer, intent(out)
    - + integer, intent(out)
    - + type(dbcsr_tas_type), intent(in)
    - + logical, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + type(dbcsr_tas_split_info), intent(in)
    - + type(dbcsr_tas_type), intent(inout)
    - + type(dbcsr_tas_type), intent(in)
    - + logical, intent(in),
    - + type(dbcsr_tas_type), intent(out)
    - + character(len=*), intent(in)
    - + type(dbcsr_tas_distribution_type), intent(inout)
    - + integer, intent(in),
    - + class(dbcsr_tas_rowcol_data), intent(in)
    - + class(dbcsr_tas_rowcol_data), intent(in)
    - + type(dbcsr_tas_split_info), intent(out)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical, intent(in),
    - + type(dbcsr_tas_split_info), intent(out)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in)
    - + type(dbcsr_tas_type), intent(inout)
    - + type(dbcsr_tas_type), intent(out)
    - + character(len=*), intent(in),
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(out),
    - + type(dbcsr_tas_type), intent(inout)
    - + class(dbcsr_tas_rowcol_data), intent(in)
    - + type(dbcsr_tas_distribution_type), intent(inout)
    - + type(dbcsr_tas_distribution_type), intent(out)
    - + type(mp_comm_type), intent(in)
    - + class(dbcsr_tas_distribution), intent(in)
    - + class(dbcsr_tas_distribution), intent(in)
    - + type(dbcsr_tas_type), intent(inout)
    - + complex(kind=real_8), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + complex(kind=real_4), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + real(kind=real_8), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + real(kind=real_4), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + complex(kind=real_8),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + complex(kind=real_4),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + real(kind=real_8),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + real(kind=real_4),
    - + logical, intent(out)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_type), intent(in)
    - + type(dbcsr_tas_type), intent(in)
    - + type(dbcsr_tas_type), intent(in)
    - + integer(kind=int_8), intent(out),
    - + integer(kind=int_8), intent(out),
    - + integer(kind=int_8), intent(out),
    - + integer(kind=int_8), intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + class(dbcsr_tas_distribution), intent(out),
    - + class(dbcsr_tas_distribution), intent(out),
    - + class(dbcsr_tas_rowcol_data), intent(out),
    - + class(dbcsr_tas_rowcol_data), intent(out),
    - + type(dbcsr_tas_distribution_type),
    - + character(len=*), intent(out),
    - + character(len=1),
    - + integer,
    - + type(dbcsr_tas_type), intent(in)
    - + type(dbcsr_tas_type), intent(in)
    - + type(dbcsr_tas_type), intent(in)
    - + type(dbcsr_tas_type), intent(in)
    - + type(dbcsr_tas_split_info), intent(in)
    - + type(mp_comm_type), intent(out),
    - + integer, intent(out),
    - + type(mp_comm_type), intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_type), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer, intent(out)
    - + type(dbcsr_tas_type), intent(in)
    - + type(dbcsr_tas_split_info), intent(in)
    - + type(dbcsr_tas_iterator), intent(in)
    - + type(dbcsr_tas_iterator), intent(inout)
    - + integer(kind=int_8), intent(out)
    - + integer(kind=int_8), intent(out)
    - + type(dbcsr_data_obj), intent(inout)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_iterator), intent(inout)
    - + integer(kind=int_8), intent(out)
    - + integer(kind=int_8), intent(out)
    - + complex(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_iterator), intent(inout)
    - + integer(kind=int_8), intent(out)
    - + integer(kind=int_8), intent(out)
    - + complex(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_iterator), intent(inout)
    - + integer(kind=int_8), intent(out)
    - + integer(kind=int_8), intent(out)
    - + integer, intent(out)
    - + logical, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_iterator), intent(inout)
    - + integer(kind=int_8), intent(out)
    - + integer(kind=int_8), intent(out)
    - + real(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_iterator), intent(inout)
    - + integer(kind=int_8), intent(out)
    - + integer(kind=int_8), intent(out)
    - + real(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_tas_iterator), intent(inout)
    - + type(dbcsr_tas_type), intent(in)
    - + type(dbcsr_tas_iterator), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + logical, intent(in),
    - + logical, intent(in),
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + type(dbcsr_scalar_type), intent(in)
    - + type(dbcsr_tas_type), intent(inout),
    - + type(dbcsr_tas_type), intent(inout),
    - + type(dbcsr_scalar_type), intent(in)
    - + type(dbcsr_tas_type), intent(inout),
    - + logical, intent(in),
    - + type(dbcsr_tas_split_info), intent(out),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + logical, intent(in),
    - + integer(kind=int_8), intent(out),
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_tas_type), intent(in)
    - + type(dbcsr_tas_type), intent(in)
    - + type(dbcsr_tas_type), intent(in)
    - + type(dbcsr_tas_type), intent(in)
    - + type(dbcsr_tas_type), intent(in)
    - + type(dbcsr_tas_type), intent(in)
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + type(dbcsr_data_obj)
    - + logical, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_scalar_type), intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + complex(kind=real_8), intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + complex(kind=real_8), intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + complex(kind=real_4), intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + complex(kind=real_4), intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + real(kind=real_8), intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + real(kind=real_4), intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + real(kind=real_4), intent(in),
    - + integer, intent(in),
    - + integer, intent(out),
    - + type(dbcsr_tas_split_info), intent(inout)
    - + type(dbcsr_tas_split_info), intent(in)
    - + type(dbcsr_tas_type), intent(out)
    - + logical, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + integer(kind=int_8), intent(in),
    - + type(dbcsr_tas_type), intent(in)
    - + type(dbcsr_tas_type), intent(inout)
    - + type(dbcsr_tas_type), intent(inout)
    - + logical, intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + type(dbcsr_tas_type), intent(inout),
    - + type(dbcsr_tas_type), intent(inout),
    - + type(dbcsr_tas_type), intent(inout),
    - + real(kind=real_8), intent(in),
    - + integer, intent(in),
    - + integer(kind=int_8), intent(out),
    - + logical, intent(in),
    - + type(dbcsr_tas_type), intent(inout)
    - + type(dbcsr_tas_type), intent(inout)
    - + complex(kind=real_8), intent(in)
    - + type(dbcsr_tas_type), intent(inout)
    - + complex(kind=real_4), intent(in)
    - + type(dbcsr_tas_type), intent(inout)
    - + real(kind=real_8), intent(in)
    - + type(dbcsr_tas_type), intent(inout)
    - + real(kind=real_4), intent(in)
    - + type(dbcsr_tas_split_info), intent(inout)
    - + type(dbcsr_tas_type), intent(out)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + character(len=*), intent(in)
    - + real(kind=real_8), intent(in)
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + type(dbcsr_tas_type), intent(inout)
    - + type(dbcsr_tas_type), intent(inout)
    - + type(dbcsr_tas_type), intent(inout)
    - + real(kind=real_8), intent(in),
    - + integer, intent(in)
    - + logical, intent(in),
    - + type(dbcsr_tas_type), intent(in)
    - + integer, intent(in)
    - + logical, intent(in),
    - + type(dbcsr_tas_type), intent(in)
    - + integer, intent(in)
    - + logical, intent(in),
    - + type(dbcsr_tas_split_info), intent(in)
    - + integer, intent(in)
    - + character(len=*), intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(dbcsr_mp_obj), intent(in)
    - + integer, intent(in)
    - + real(kind=real_8), intent(in)
    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -176,7 +176,7 @@

    Arguments

    - type(dbcsr_type), + type(dbcsr_type), intent(out) @@ -190,7 +190,7 @@

    Arguments

    - + real(kind=real_8), intent(in)
    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -176,7 +176,7 @@

    Arguments

    - type(dbcsr_type), + type(dbcsr_type), intent(out) @@ -190,7 +190,7 @@

    Arguments

    - + real(kind=real_8), intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_4), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_8), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_8), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_4), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_8), intent(inout)
    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -174,8 +173,8 @@

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -189,7 +188,7 @@

    Arguments

    - + logical, intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - - type(dbcsr_distribution_obj), + + type(dbcsr_distribution_type), intent(in), optional @@ -265,33 +264,24 @@

    Arguments

    Source Code

       SUBROUTINE dbcsr_transposed(transposed, normal, shallow_data_copy, &
    -      !! Transposes a DBCSR matrix, keeping the same distribution
                                    transpose_data, transpose_distribution, use_distribution)
     
           TYPE(dbcsr_type), INTENT(INOUT)                    :: transposed
           TYPE(dbcsr_type), INTENT(IN)                       :: normal
           LOGICAL, INTENT(IN), OPTIONAL                      :: shallow_data_copy, transpose_data, &
                                                                 transpose_distribution
    -      TYPE(dbcsr_distribution_obj), INTENT(IN), &
    +      TYPE(dbcsr_distribution_type), INTENT(IN), &
              OPTIONAL                                        :: use_distribution
     
    -      LOGICAL                                            :: myshallow_data_copy, &
    -                                                            mytranspose_distribution
    -      TYPE(dbcsr_distribution_obj)                           :: myuse_distribution
    -
    -!   set some defaults to make usage a bit less painful (fschiff)
    -
    -      myshallow_data_copy = .FALSE.
    -      myuse_distribution = normal%dist
    -      mytranspose_distribution = .FALSE.
    -      IF (PRESENT(shallow_data_copy)) myshallow_data_copy = shallow_data_copy
    -      IF (PRESENT(use_distribution)) myuse_distribution = use_distribution
    -      IF (PRESENT(transpose_distribution)) mytranspose_distribution = transpose_distribution
    -
    -      CALL dbcsr_new_transposed(transposed, normal, myshallow_data_copy, &
    -                                transpose_data, mytranspose_distribution, &
    -                                use_distribution=myuse_distribution)
    -   END SUBROUTINE dbcsr_transposed
    +      IF (PRESENT(use_distribution)) THEN
    +         CALL dbcsr_transposed_prv(transposed%prv, normal%prv, shallow_data_copy, &
    +                                   transpose_data, transpose_distribution, &
    +                                   use_distribution%prv)
    +      ELSE
    +         CALL dbcsr_transposed_prv(transposed%prv, normal%prv, shallow_data_copy, &
    +                                   transpose_data, transpose_distribution)
    +      END IF
    +   END SUBROUTINE dbcsr_transposed
     
    diff --git a/develop/proc/dbcsr_transposed~2.html b/develop/proc/dbcsr_transposed~2.html index 7716cdae44c..b82316b957a 100644 --- a/develop/proc/dbcsr_transposed~2.html +++ b/develop/proc/dbcsr_transposed~2.html @@ -74,20 +74,20 @@

    dbcsr_transposed
  • 11 statements + title=" 0.0% of total for procedures.">15 statements
  • - Source File + Source File
  • @@ -143,6 +143,7 @@

    public subroutine dbcsr_transposed(transposed, normal, shallow_data_copy, t

    +

    Transposes a DBCSR matrix, keeping the same distribution

    Arguments

    @@ -158,8 +159,8 @@

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(inout) @@ -173,8 +174,8 @@

    Arguments

    - - type(dbcsr_type), + + type(dbcsr_type), intent(in) @@ -188,7 +189,7 @@

    Arguments

    - + logical, intent(in),
    - + logical, intent(in),
    - + logical, intent(in),
    - - type(dbcsr_distribution_type), + + type(dbcsr_distribution_obj), intent(in), optional @@ -264,24 +265,33 @@

    Arguments

    Source Code

       SUBROUTINE dbcsr_transposed(transposed, normal, shallow_data_copy, &
    +      !! Transposes a DBCSR matrix, keeping the same distribution
                                    transpose_data, transpose_distribution, use_distribution)
     
           TYPE(dbcsr_type), INTENT(INOUT)                    :: transposed
           TYPE(dbcsr_type), INTENT(IN)                       :: normal
           LOGICAL, INTENT(IN), OPTIONAL                      :: shallow_data_copy, transpose_data, &
                                                                 transpose_distribution
    -      TYPE(dbcsr_distribution_type), INTENT(IN), &
    +      TYPE(dbcsr_distribution_obj), INTENT(IN), &
              OPTIONAL                                        :: use_distribution
     
    -      IF (PRESENT(use_distribution)) THEN
    -         CALL dbcsr_transposed_prv(transposed%prv, normal%prv, shallow_data_copy, &
    -                                   transpose_data, transpose_distribution, &
    -                                   use_distribution%prv)
    -      ELSE
    -         CALL dbcsr_transposed_prv(transposed%prv, normal%prv, shallow_data_copy, &
    -                                   transpose_data, transpose_distribution)
    -      END IF
    -   END SUBROUTINE dbcsr_transposed
    +      LOGICAL                                            :: myshallow_data_copy, &
    +                                                            mytranspose_distribution
    +      TYPE(dbcsr_distribution_obj)                           :: myuse_distribution
    +
    +!   set some defaults to make usage a bit less painful (fschiff)
    +
    +      myshallow_data_copy = .FALSE.
    +      myuse_distribution = normal%dist
    +      mytranspose_distribution = .FALSE.
    +      IF (PRESENT(shallow_data_copy)) myshallow_data_copy = shallow_data_copy
    +      IF (PRESENT(use_distribution)) myuse_distribution = use_distribution
    +      IF (PRESENT(transpose_distribution)) mytranspose_distribution = transpose_distribution
    +
    +      CALL dbcsr_new_transposed(transposed, normal, myshallow_data_copy, &
    +                                transpose_data, mytranspose_distribution, &
    +                                use_distribution=myuse_distribution)
    +   END SUBROUTINE dbcsr_transposed
     
    diff --git a/develop/proc/dbcsr_triu.html b/develop/proc/dbcsr_triu.html index f292b5021a9..fc64b37c01b 100644 --- a/develop/proc/dbcsr_triu.html +++ b/develop/proc/dbcsr_triu.html @@ -158,7 +158,7 @@

    Arguments

    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + logical, intent(in)
    - + logical, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + logical, intent(in)
    - + logical, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + logical, intent(in)
    - + logical, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + logical, intent(in)
    - + logical, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_type), intent(in)
    - + logical, intent(in),
    - + character(len=*), intent(in)
    - + character(len=*), intent(in)
    - + type(dbcsr_data_obj), intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_win_type), intent(out)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + logical, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_memtype_type), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_type), intent(inout)
    - + character(len=*), intent(in)
    - + type(array_list), intent(inout)
    - + type(block_nd), intent(inout)
    - + type(block_nd_c_dp), intent(inout)
    - + type(block_nd_c_sp), intent(inout)
    - + type(block_nd_r_dp), intent(inout)
    - + type(block_nd_r_sp), intent(inout)
    - + type(nd_to_2d_mapping), intent(inout)
    - + type(acc_devmem_type), intent(in)
    - + complex(kind=real_4),
    - + type(acc_devmem_type), intent(in)
    - + complex(kind=real_8),
    - + type(acc_devmem_type), intent(in)
    - + integer(kind=int_4),
    - + type(acc_devmem_type), intent(in)
    - + integer(kind=int_8),
    - + type(acc_devmem_type), intent(in)
    - + real(kind=real_4),
    - + type(acc_devmem_type), intent(in)
    - + real(kind=real_8),
    - + integer(kind=int_4),
    - + integer(kind=int_4),
    - + integer, intent(in),
    - + integer(kind=int_4), intent(in),
    - + type(call_stat_type), intent(in),
    - + character(len=default_string_length)
    - + character(len=default_string_length)
    - + integer, intent(in),
    - + character(len=default_string_length), intent(in)
    - + integer(kind=int_4), intent(in)
    - + integer, intent(out),
    - + integer, intent(in),
    - + type(dbcsr_t_type), intent(inout)
    - + real(kind=real_8), intent(out),
    - + type(dbcsr_t_type), intent(inout)
    - + real(kind=real_8), intent(out),
    - + type(dbcsr_t_type), intent(inout)
    - + real(kind=real_8), intent(out),
    - + integer, intent(out),
    - + complex(kind=real_4),
    - + integer, intent(in),
    - + integer, intent(in)
    - + real(kind=dp), intent(in),
    - + logical, intent(in),
    - + type(dbcsr_memtype_type), intent(in),
    - + logical, intent(in),
    - + real(kind=real_8),
    - + integer, intent(in),
    - + integer, intent(in)
    - + real(kind=dp), intent(in),
    - + logical, intent(in),
    - + type(dbcsr_memtype_type), intent(in),
    - + logical, intent(in),
    - + integer(kind=int_4),
    - + integer, intent(in),
    - + integer, intent(in)
    - + real(kind=dp), intent(in),
    - + logical, intent(in),
    - + type(dbcsr_memtype_type), intent(in),
    - + logical, intent(in),
    - + integer(kind=int_8),
    - + integer, intent(in),
    - + integer, intent(in)
    - + real(kind=dp), intent(in),
    - + logical, intent(in),
    - + type(dbcsr_memtype_type), intent(in),
    - + logical, intent(in),
    - + real(kind=real_4),
    - + integer, intent(in),
    - + integer, intent(in)
    - + real(kind=dp), intent(in),
    - + logical, intent(in),
    - + type(dbcsr_memtype_type), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_8),
    - + integer, intent(in),
    - + integer, intent(in)
    - + real(kind=dp), intent(in),
    - + logical, intent(in),
    - + type(dbcsr_memtype_type), intent(in),
    - + logical, intent(in),
    - + type(dbcsr_mm_sched_type), intent(inout)
    - + integer,
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(C_PTR), intent(in)
    - + integer(kind=C_INT), intent(out)
    - + integer(kind=C_INT), intent(in)
    - + integer, intent(in)
    - + character(len=*), intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(array_i1d_obj), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(out)
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(inout)
    - + integer, intent(in),
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(in)
    - + integer, intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_mm_csr_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(nd_to_2d_mapping), intent(in)
    - + type(nd_to_2d_mapping), intent(in)
    - + type(array_list), intent(in)
    - + integer, intent(in),
    - + type(array_list), intent(in)
    - + type(dbcsr_data_obj), intent(in)
    - + complex(kind=real_4),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + real(kind=real_8),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + real(kind=real_4),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + complex(kind=real_8),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + complex(kind=real_4),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + real(kind=real_8),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + real(kind=real_4),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + complex(kind=real_8),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(array_list), intent(in)
    - + integer, intent(in)
    - + integer, intent(out),
    - + integer, intent(in)
    - + type(nd_to_2d_mapping), intent(in)
    - + type(nd_to_2d_mapping), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + logical, intent(inout)
    - + integer, intent(out),
    - + character(len=*), intent(in),
    - + integer, intent(in)
    - + type(dbcsr_tas_split_info), intent(in)
    - + integer, intent(out)
    - + integer, intent(in)
    - + integer(kind=int_4), intent(in),
    - + character(len=*), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(acc_devmem_type), intent(in)
    - + complex(kind=real_4),
    - + type(acc_devmem_type), intent(in)
    - + complex(kind=real_4),
    - + type(acc_devmem_type), intent(in)
    - + complex(kind=real_8),
    - + type(acc_devmem_type), intent(in)
    - + complex(kind=real_8),
    - + type(acc_devmem_type), intent(in)
    - + integer(kind=int_4),
    - + type(acc_devmem_type), intent(in)
    - + integer(kind=int_4),
    - + type(acc_devmem_type), intent(in)
    - + integer(kind=int_8),
    - + type(acc_devmem_type), intent(in)
    - + integer(kind=int_8),
    - + type(acc_devmem_type), intent(in)
    - + real(kind=real_4),
    - + type(acc_devmem_type), intent(in)
    - + real(kind=real_4),
    - + type(acc_devmem_type), intent(in)
    - + real(kind=real_8),
    - + type(acc_devmem_type), intent(in)
    - + real(kind=real_8),
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(in)
    - + type(dbcsr_imagedistribution_obj), intent(in)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_data_area_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_data_area_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(inout),
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(dbcsr_iterator), intent(inout)
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + complex(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + real(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + real(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + complex(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + complex(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + real(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + real(kind=real_4),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + complex(kind=real_8),
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + type(dbcsr_data_obj), intent(inout)
    - + logical, intent(out)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out)
    - + integer, intent(out)
    - + logical, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(list_callstackentry_type), intent(inout)
    - + type(list_callstackentry_type), intent(inout)
    - + integer, intent(in)
    - + type(list_callstackentry_type), intent(inout)
    - + type(list_callstackentry_type), intent(in)
    - + integer, intent(in)
    - + type(list_callstackentry_type), intent(inout)
    - + integer, intent(in),
    - + type(list_callstackentry_type), intent(inout)
    - + type(callstack_entry_type), intent(in)
    - + integer, intent(in)
    - + type(list_callstackentry_type), intent(in)
    - + type(list_callstackentry_type), intent(inout)
    - + type(list_callstackentry_type), intent(inout)
    - + type(list_callstackentry_type), intent(inout)
    - + type(callstack_entry_type), intent(in)
    - + type(list_callstackentry_type), intent(inout)
    - + type(callstack_entry_type), intent(in)
    - + integer, intent(in)
    - + type(list_callstackentry_type), intent(in)
    - + type(list_routinereport_type), intent(inout)
    - + type(list_routinereport_type), intent(inout)
    - + integer, intent(in)
    - + type(list_routinereport_type), intent(inout)
    - + type(list_routinereport_type), intent(in)
    - + integer, intent(in)
    - + type(list_routinereport_type), intent(inout)
    - + integer, intent(in),
    - + type(list_routinereport_type), intent(inout)
    - + integer, intent(in)
    - + type(list_routinereport_type), intent(in)
    - + type(list_routinereport_type), intent(inout)
    - + type(list_routinereport_type), intent(inout)
    - + type(list_routinereport_type), intent(inout)
    - + type(list_routinereport_type), intent(inout)
    - + integer, intent(in)
    - + type(list_routinereport_type), intent(in)
    - + type(list_routinestat_type), intent(inout)
    - + type(list_routinestat_type), intent(inout)
    - + integer, intent(in)
    - + type(list_routinestat_type), intent(inout)
    - + type(list_routinestat_type), intent(in)
    - + integer, intent(in)
    - + type(list_routinestat_type), intent(inout)
    - + integer, intent(in),
    - + type(list_routinestat_type), intent(inout)
    - + type(routine_stat_type), intent(in),
    - + integer, intent(in)
    - + type(list_routinestat_type), intent(in)
    - + type(list_routinestat_type), intent(inout)
    - + type(list_routinestat_type), intent(inout)
    - + type(list_routinestat_type), intent(inout)
    - + type(routine_stat_type), intent(in),
    - + type(list_routinestat_type), intent(inout)
    - + type(routine_stat_type), intent(in),
    - + integer, intent(in)
    - + type(list_routinestat_type), intent(in)
    - + type(list_timerenv_type), intent(inout)
    - + type(list_timerenv_type), intent(inout)
    - + integer, intent(in)
    - + type(list_timerenv_type), intent(inout)
    - + type(list_timerenv_type), intent(in)
    - + integer, intent(in)
    - + type(list_timerenv_type), intent(inout)
    - + integer, intent(in),
    - + type(list_timerenv_type), intent(inout)
    - + type(timer_env_type), intent(in),
    - + integer, intent(in)
    - + type(list_timerenv_type), intent(in)
    - + type(list_timerenv_type), intent(inout)
    - + type(list_timerenv_type), intent(inout)
    - + type(list_timerenv_type), intent(inout)
    - + type(timer_env_type), intent(in),
    - + type(list_timerenv_type), intent(inout)
    - + type(timer_env_type), intent(in),
    - + integer, intent(in)
    - + type(list_timerenv_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(out),
    - + real(kind=sp), intent(in),
    - + integer, intent(in)
    - + integer, intent(in),
    - + real(kind=sp), intent(out),
    - + integer, intent(in)
    - + character(len=*), intent(in)
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(in)
    - + real(kind=real_4), intent(in)
    - + type(dbcsr_type), intent(in)
    - + complex(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(inout),
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_mp_obj), intent(in)
    - + type(dbcsr_buffer), intent(inout)
    - + type(dbcsr_mp_obj), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_imagedistribution_obj), intent(inout)
    - + type(array_i1d_obj), intent(inout)
    - + type(array_i1d_obj), intent(inout)
    - + type(array_i1d_obj), intent(in)
    - + type(array_i1d_obj), intent(in)
    - + type(array_i1d_obj), intent(in)
    - + type(dbcsr_scalar_type), intent(in),
    - + type(dbcsr_buffer), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(out)
    - + type(mp_comm_type), intent(in)
    - + integer,
    - + integer,
    - + integer,
    - + integer,
    - + real(kind=real_8), intent(in)
    - + type(dbcsr_distribution_obj),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(out),
    - + type(dbcsr_distribution_obj)
    - + integer, intent(inout),
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(in)
    - + complex(kind=real_4),
    - + integer, intent(in)
    - + complex(kind=real_4),
    - + integer, intent(in),
    - + real(kind=real_8),
    - + integer, intent(in)
    - + real(kind=real_8),
    - + integer, intent(in),
    - + integer(kind=int_4),
    - + integer, intent(in)
    - + integer(kind=int_4),
    - + integer, intent(in),
    - + integer(kind=int_8),
    - + integer, intent(in)
    - + integer(kind=int_8),
    - + integer, intent(in),
    - + real(kind=real_4),
    - + integer, intent(in)
    - + real(kind=real_4),
    - + integer, intent(in),
    - + complex(kind=real_8),
    - + integer, intent(in)
    - + complex(kind=real_8),
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4),
    - + complex(kind=real_4),
    - + real(kind=real_8),
    - + real(kind=real_8),
    - + integer(kind=int_4),
    - + integer(kind=int_4),
    - + integer(kind=int_8),
    - + integer(kind=int_8),
    - + real(kind=real_4),
    - + real(kind=real_4),
    - + complex(kind=real_8),
    - + complex(kind=real_8),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_mempool_type),
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(out),
    - + type(dbcsr_distribution_obj), intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(in)
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in)
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in)
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in)
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in)
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in)
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in)
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in)
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in)
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in)
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4),
    - + integer, intent(in)
    - + integer, intent(out),
    - + real(kind=real_8),
    - + integer, intent(in)
    - + integer, intent(out),
    - + integer(kind=int_4),
    - + integer, intent(in)
    - + integer, intent(out),
    - + integer(kind=int_8),
    - + integer, intent(in)
    - + integer, intent(out),
    - + real(kind=real_4),
    - + integer, intent(in)
    - + integer, intent(out),
    - + complex(kind=real_8),
    - + integer, intent(in)
    - + integer, intent(out),
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer(kind=int_4), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer(kind=int_8), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + character(len=*)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + character(len=*)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + logical
    - + integer
    - + type(mp_comm_type), intent(in)
    - + logical,
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + integer, intent(out)
    - + type(mp_comm_type), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + complex(kind=real_4),
    - + integer, intent(out),
    - + real(kind=real_8),
    - + integer, intent(out),
    - + integer(kind=int_4),
    - + integer, intent(out),
    - + integer(kind=int_8),
    - + integer, intent(out),
    - + real(kind=real_4),
    - + integer, intent(out),
    - + complex(kind=real_8),
    - + integer, intent(out),
    - + type(mp_comm_type), intent(in)
    - + logical, intent(out)
    - + type(dbcsr_t_pgrid_type), intent(in)
    - + integer, intent(out),
    - + character(len=*), intent(in)
    - + type(mp_info_type), intent(in),
    - + integer(kind=file_offset), intent(out)
    - + character(len=*), intent(in)
    - + type(mp_info_type), intent(in),
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_4), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + character(len=*), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_4), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_8), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_8), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_4), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_4), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_8), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_8), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_4), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_4), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_8), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_8), intent(out)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + character(len=*), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + character(len=*), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + real(kind=real_4), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_8), intent(in)
    - + integer(kind=file_offset), intent(in)
    - + complex(kind=real_8), intent(in)
    - + complex(kind=real_4), intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + class(mp_comm_type), intent(in)
    - + class(mp_info_type), intent(in)
    - + integer, intent(out)
    - + integer, intent(out),
    - + class(mp_request_type), intent(in)
    - + class(mp_win_type), intent(in)
    - + complex(kind=real_4), intent(in)
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_8), intent(in)
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_4), intent(in)
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_8), intent(in)
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_4), intent(in)
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_8), intent(in)
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_4)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_8)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_4)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_8)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_4)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_4),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_8)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_8),
    - + integer
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + logical,
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + type(mp_type_descriptor_type), intent(inout)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_4), intent(inout)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_8), intent(inout)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_4), intent(inout)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_4), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_8), intent(inout)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_8), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_4), intent(inout)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_8), intent(inout)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer, intent(in),
    - + complex(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer, intent(in),
    - + real(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer, intent(in),
    - + integer(kind=int_4), intent(inout),
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer, intent(in),
    - + integer(kind=int_8), intent(inout),
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer, intent(in),
    - + real(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer, intent(in),
    - + complex(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + logical,
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + type(mp_type_descriptor_type), intent(in)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_4)
    - + integer, intent(in)
    - + complex(kind=real_4)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_4),
    - + integer, intent(in)
    - + complex(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_8)
    - + integer, intent(in)
    - + real(kind=real_8)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_8),
    - + integer, intent(in)
    - + real(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_4)
    - + integer, intent(in)
    - + integer(kind=int_4)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_4),
    - + integer, intent(in)
    - + integer(kind=int_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_8)
    - + integer, intent(in)
    - + integer(kind=int_8)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + integer(kind=int_8),
    - + integer, intent(in)
    - + integer(kind=int_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_4)
    - + integer, intent(in)
    - + real(kind=real_4)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + real(kind=real_4),
    - + integer, intent(in)
    - + real(kind=real_4),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_8)
    - + integer, intent(in)
    - + complex(kind=real_8)
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + complex(kind=real_8),
    - + integer, intent(in)
    - + complex(kind=real_8),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + type(mp_request_type), intent(out)
    - + integer, intent(in),
    - + logical, intent(inout),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer(kind=int_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + real(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(out)
    - + complex(kind=real_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in)
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer, intent(out)
    - + complex(kind=real_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout),
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout),
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout),
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout),
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4),
    - + integer, intent(in)
    - + type(mp_win_type), intent(in)
    - + complex(kind=real_4),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_request_type), intent(out)
    - + type(mp_type_descriptor_type), intent(in),
    - + type(mp_type_descriptor_type), intent(in),
    - + real(kind=real_8),
    - + integer, intent(in)
    - + type(mp_win_type), intent(in)
    - + real(kind=real_8),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_request_type), intent(out)
    - + type(mp_type_descriptor_type), intent(in),
    - + type(mp_type_descriptor_type), intent(in),
    - + integer(kind=int_4),
    - + integer, intent(in)
    - + type(mp_win_type), intent(in)
    - + integer(kind=int_4),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_request_type), intent(out)
    - + type(mp_type_descriptor_type), intent(in),
    - + type(mp_type_descriptor_type), intent(in),
    - + integer(kind=int_8),
    - + integer, intent(in)
    - + type(mp_win_type), intent(in)
    - + integer(kind=int_8),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_request_type), intent(out)
    - + type(mp_type_descriptor_type), intent(in),
    - + type(mp_type_descriptor_type), intent(in),
    - + real(kind=real_4),
    - + integer, intent(in)
    - + type(mp_win_type), intent(in)
    - + real(kind=real_4),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_request_type), intent(out)
    - + type(mp_type_descriptor_type), intent(in),
    - + type(mp_type_descriptor_type), intent(in),
    - + complex(kind=real_8),
    - + integer, intent(in)
    - + type(mp_win_type), intent(in)
    - + complex(kind=real_8),
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(mp_request_type), intent(out)
    - + type(mp_type_descriptor_type), intent(in),
    - + type(mp_type_descriptor_type), intent(in),
    - + complex(kind=real_4)
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4),
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8)
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8),
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4)
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4),
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8)
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8),
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4)
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4),
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8)
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8),
    - + integer
    - + integer
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in)
    - + complex(kind=real_4), intent(out),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + integer, intent(in)
    - + real(kind=real_8), intent(out),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer, intent(in)
    - + integer(kind=int_4), intent(out),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer, intent(in)
    - + integer(kind=int_8), intent(out),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + integer, intent(in)
    - + real(kind=real_4), intent(out),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in)
    - + complex(kind=real_8), intent(out),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + class(mp_comm_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + class(mp_info_type), intent(inout)
    - + integer, intent(in)
    - + class(mp_request_type), intent(inout)
    - + integer, intent(in)
    - + class(mp_win_type), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical, intent(inout)
    - + type(mp_comm_type), intent(in)
    - + logical, intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(in),
    - + integer(kind=int_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(in),
    - + integer(kind=int_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(out),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(out),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_4), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + integer(kind=int_8), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + type(mp_comm_type), intent(in)
    - + real(kind=real_4), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout)
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + complex(kind=real_8), intent(inout),
    - + type(mp_comm_type), intent(in)
    - + type(mp_comm_type), intent(in)
    - + type(mp_request_type), intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4),
    - + real(kind=real_8),
    - + integer(kind=int_4),
    - + integer(kind=int_8),
    - + real(kind=real_4),
    - + complex(kind=real_8),
    - + type(mp_request_type), intent(inout)
    - + complex(kind=real_4),
    - + type(mp_comm_type), intent(in)
    - + type(mp_win_type), intent(out)
    - + real(kind=real_8),
    - + type(mp_comm_type), intent(in)
    - + type(mp_win_type), intent(out)
    - + integer(kind=int_4),
    - + type(mp_comm_type), intent(in)
    - + type(mp_win_type), intent(out)
    - + integer(kind=int_8),
    - + type(mp_comm_type), intent(in)
    - + type(mp_win_type), intent(out)
    - + real(kind=real_4),
    - + type(mp_comm_type), intent(in)
    - + type(mp_win_type), intent(out)
    - + complex(kind=real_8),
    - + type(mp_comm_type), intent(in)
    - + type(mp_win_type), intent(out)
    - + type(mp_win_type), intent(in)
    - + type(mp_win_type), intent(inout)
    - + type(mp_win_type), intent(inout)
    - + type(mp_win_type), intent(inout)
    - + type(mp_comm_type), intent(out)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out)
    - + logical, intent(in)
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out)
    - + logical, intent(in)
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer(kind=int_8), intent(out)
    - + logical, intent(in)
    - + type(dbcsr_mm_multrec_type), intent(inout)
    - + real(kind=real_8), intent(in)
    - + integer, intent(inout)
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(inout)
    - + complex(kind=real_4), intent(inout),
    - + real(kind=real_8), intent(in)
    - + integer, intent(inout)
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(inout)
    - + real(kind=real_8), intent(inout),
    - + real(kind=real_8), intent(in)
    - + integer, intent(inout)
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(inout)
    - + real(kind=real_4), intent(inout),
    - + real(kind=real_8), intent(in)
    - + integer, intent(inout)
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(inout)
    - + complex(kind=real_8), intent(inout),
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_t_iterator_type), intent(in)
    - + type(nd_to_2d_mapping), intent(in)
    - + type(nd_to_2d_mapping), intent(in)
    - + type(nd_to_2d_mapping), intent(in)
    - + type(array_list), intent(in)
    - + integer, intent(in)
    - + character(len=*), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(array_list), intent(in)
    - + character(len=*), intent(in)
    - + integer, intent(in),
    - + type(dbcsr_t_type), intent(in)
    - + type(dbcsr_tas_split_info), intent(in)
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(out)
    - + logical, intent(out)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=dp), intent(in),
    - + logical, intent(in)
    - + integer, intent(in)
    - + integer, intent(out),
    - + integer, intent(in),
    - + type(dbcsr_data_obj), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + logical, intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_4), intent(in),
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + logical, intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_8), intent(in),
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + logical, intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + real(kind=real_4), intent(in),
    - + type(dbcsr_iterator), intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + logical, intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(inout)
    - + integer, intent(in),
    - + integer, intent(in),
    - + complex(kind=real_8), intent(in),
    - + character(len=*), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + character(len=*), intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in)
    - + real(kind=dp), intent(in)
    - + type(dbcsr_mp_obj), intent(in)
    - + class(CONF_PAR), intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4), intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + character(len=*), intent(in),
    - + logical, intent(in),
    - + real(kind=real_8), intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + character(len=*), intent(in),
    - + logical, intent(in),
    - + real(kind=real_4), intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + character(len=*), intent(in),
    - + logical, intent(in),
    - + complex(kind=real_8), intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + character(len=*), intent(in),
    - + logical, intent(in),
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(out)
    - + integer, intent(out),
    - + integer, intent(in)
    - + integer, intent(out),
    - + integer, intent(in)
    - + integer, intent(out),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(out),
    - + integer, intent(out),
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(inout),
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(out),
    - + integer, intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_scalar_type), intent(in),
    - + integer, intent(out),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(out)
    - + integer, intent(inout),
    - + integer, intent(inout),
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in),
    - + class(dbcsr_tas_dist_repl), intent(in)
    - + class(dbcsr_tas_dist_repl), intent(in)
    - + integer, intent(in)
    - - type(dbcsr_t_type), + + type(dbcsr_tas_type), intent(inout), TARGET ::tensor1matrix1_in -

    tensor 1 in

    +
    - - type(dbcsr_t_type), + + type(dbcsr_tas_type), intent(inout), TARGET ::tensor2matrix2_in -

    tensor 2 in

    +
    - - type(dbcsr_t_type), + + type(dbcsr_tas_type), intent(out), POINTER ::tensor1_outmatrix1_out -

    tensor 1 out -tensor 2 out

    +
    - - type(dbcsr_t_type), + + type(dbcsr_tas_type), intent(out), POINTER ::tensor2_outmatrix2_out -

    tensor 1 out -tensor 2 out

    +
    - - integer, + + logical, intent(in),intent(out) - DIMENSION(:) + ::ind1_freenew1 -

    indices of tensor 1 that are "free" (not linked to any index of tensor 2)

    +

    Whether matrix1_out is a new matrix or simply pointing to matrix1_in +Whether matrix2_out is a new matrix or simply pointing to matrix2_in

    - - integer, + + logical, intent(in),intent(out) - DIMENSION(:) + ::ind1_linkednew2 -

    indices of tensor 1 that are linked to indices of tensor 2 -1:1 correspondence with ind1_linked

    +

    Whether matrix1_out is a new matrix or simply pointing to matrix1_in +Whether matrix2_out is a new matrix or simply pointing to matrix2_in

    - - integer, + + character(len=1), intent(in),intent(inout) - DIMENSION(:) + ::ind2_freetrans1 -

    indices of tensor 1 that are "free" (not linked to any index of tensor 2)

    +

    transpose flag of matrix1_in for multiplication +transpose flag of matrix2_in for multiplication

    - - integer, + + character(len=1), intent(in),intent(inout) - DIMENSION(:) + ::ind2_linkedtrans2 -

    indices of tensor 1 that are linked to indices of tensor 2 -1:1 correspondence with ind1_linked

    +

    transpose flag of matrix1_in for multiplication +transpose flag of matrix2_in for multiplication

    - - character(len=1), + + logical, intent(out) +intent(in),optional ::trans1optimize_dist -

    transpose flag of matrix rep. of tensor 1 -transpose flag of matrix rep. tensor 2

    +

    experimental: optimize matrix splitting and distribution

    - - character(len=1), + + integer, intent(out) +intent(in),optional ::trans2nsplit -

    transpose flag of matrix rep. of tensor 1 -transpose flag of matrix rep. tensor 2

    +

    Optimal split factor (set to 0 if split factor should not be changed)

    - + logical, intent(out) +intent(in),optional ::new1opt_nsplit -

    whether a new tensor 1 was created -whether a new tensor 2 was created

    +
    - - logical, + + integer, intent(out)intent(inout) ::new2split_rc_1 -

    whether a new tensor 1 was created -whether a new tensor 2 was created

    +

    Whether to split rows or columns for matrix 1 +Whether to split rows or columns for matrix 2

    - + integer, intent(out)intent(inout) ::ref_tensorsplit_rc_2 - +

    Whether to split rows or columns for matrix 1 +Whether to split rows or columns for matrix 2

    :: nodata1 -

    don't copy data of tensor 1 -don't copy data of tensor 2

    +

    Don't copy matrix data from matrix1_in to matrix1_out +Don't copy matrix data from matrix2_in to matrix2_out

    :: nodata2 -

    don't copy data of tensor 1 -don't copy data of tensor 2

    +

    Don't copy matrix data from matrix1_in to matrix1_out +Don't copy matrix data from matrix2_in to matrix2_out

    - + logical, intent(inout), :: move_data_1 -

    memory optimization: transfer data s.t. tensor1 may be empty on return -memory optimization: transfer data s.t. tensor2 may be empty on return

    +

    memory optimization: move data such that matrix1_in may be empty on return. +memory optimization: move data such that matrix2_in may be empty on return.

    - + logical, intent(inout), :: move_data_2 -

    memory optimization: transfer data s.t. tensor1 may be empty on return -memory optimization: transfer data s.t. tensor2 may be empty on return

    +

    memory optimization: move data such that matrix1_in may be empty on return. +memory optimization: move data such that matrix2_in may be empty on return.

    - - logical, + + type(mp_comm_type), intent(in),intent(out), optional ::optimize_distcomm_new -

    experimental: optimize distribution

    +

    returns the new communicator only if optimize_dist

    - + integer, intent(in),
    - - type(dbcsr_tas_type), + + type(dbcsr_t_type), intent(inout), TARGET ::matrix1_intensor1 - +

    tensor 1 in

    - - type(dbcsr_tas_type), + + type(dbcsr_t_type), intent(inout), TARGET ::matrix2_intensor2 - +

    tensor 2 in

    - - type(dbcsr_tas_type), + + type(dbcsr_t_type), intent(out), POINTER ::matrix1_outtensor1_out - +

    tensor 1 out +tensor 2 out

    - - type(dbcsr_tas_type), + + type(dbcsr_t_type), intent(out), POINTER ::matrix2_outtensor2_out - +

    tensor 1 out +tensor 2 out

    - - logical, + + integer, intent(out)intent(in), - + DIMENSION(:) ::new1ind1_free -

    Whether matrix1_out is a new matrix or simply pointing to matrix1_in -Whether matrix2_out is a new matrix or simply pointing to matrix2_in

    +

    indices of tensor 1 that are "free" (not linked to any index of tensor 2)

    - - logical, + + integer, intent(out)intent(in), - + DIMENSION(:) ::new2ind1_linked -

    Whether matrix1_out is a new matrix or simply pointing to matrix1_in -Whether matrix2_out is a new matrix or simply pointing to matrix2_in

    +

    indices of tensor 1 that are linked to indices of tensor 2 +1:1 correspondence with ind1_linked

    - - character(len=1), + + integer, intent(inout)intent(in), - + DIMENSION(:) ::trans1ind2_free -

    transpose flag of matrix1_in for multiplication -transpose flag of matrix2_in for multiplication

    +

    indices of tensor 1 that are "free" (not linked to any index of tensor 2)

    - - character(len=1), + + integer, intent(inout)intent(in), - + DIMENSION(:) ::trans2ind2_linked -

    transpose flag of matrix1_in for multiplication -transpose flag of matrix2_in for multiplication

    +

    indices of tensor 1 that are linked to indices of tensor 2 +1:1 correspondence with ind1_linked

    - - logical, + + character(len=1), intent(in),optional +intent(out) ::optimize_disttrans1 -

    experimental: optimize matrix splitting and distribution

    +

    transpose flag of matrix rep. of tensor 1 +transpose flag of matrix rep. tensor 2

    - - integer, + + character(len=1), intent(in),optional +intent(out) ::nsplittrans2 -

    Optimal split factor (set to 0 if split factor should not be changed)

    +

    transpose flag of matrix rep. of tensor 1 +transpose flag of matrix rep. tensor 2

    - + logical, intent(in),optional +intent(out) ::opt_nsplitnew1 - +

    whether a new tensor 1 was created +whether a new tensor 2 was created

    - - integer, + + logical, intent(inout)intent(out) ::split_rc_1new2 -

    Whether to split rows or columns for matrix 1 -Whether to split rows or columns for matrix 2

    +

    whether a new tensor 1 was created +whether a new tensor 2 was created

    - + integer, intent(inout)intent(out) ::split_rc_2ref_tensor -

    Whether to split rows or columns for matrix 1 -Whether to split rows or columns for matrix 2

    +
    :: nodata1 -

    Don't copy matrix data from matrix1_in to matrix1_out -Don't copy matrix data from matrix2_in to matrix2_out

    +

    don't copy data of tensor 1 +don't copy data of tensor 2

    :: nodata2 -

    Don't copy matrix data from matrix1_in to matrix1_out -Don't copy matrix data from matrix2_in to matrix2_out

    +

    don't copy data of tensor 1 +don't copy data of tensor 2

    :: move_data_1 -

    memory optimization: move data such that matrix1_in may be empty on return. -memory optimization: move data such that matrix2_in may be empty on return.

    +

    memory optimization: transfer data s.t. tensor1 may be empty on return +memory optimization: transfer data s.t. tensor2 may be empty on return

    :: move_data_2 -

    memory optimization: move data such that matrix1_in may be empty on return. -memory optimization: move data such that matrix2_in may be empty on return.

    +

    memory optimization: transfer data s.t. tensor1 may be empty on return +memory optimization: transfer data s.t. tensor2 may be empty on return

    - - type(mp_comm_type), + + logical, intent(out),intent(in), optional ::comm_newoptimize_dist -

    returns the new communicator only if optimize_dist

    +

    experimental: optimize distribution

    - + integer, intent(in),
    - - type(dbcsr_t_type), + + type(mp_comm_type), intent(inout),intent(in) - TARGET + ::tensor_inmp_comm -

    tensor in

    +

    communicator that defines Cartesian topology

    - - integer, + + type(dbcsr_tas_type), intent(in),intent(inout) - DIMENSION(:) + ::ind1matrix_in -

    index that should be mapped to first matrix dimension -index that should be mapped to second matrix dimension

    +
    - - integer, + + type(dbcsr_tas_type), intent(in),intent(out) - DIMENSION(:) + ::ind2matrix_out -

    index that should be mapped to first matrix dimension -index that should be mapped to second matrix dimension

    +
    - - type(dbcsr_t_type), + + logical, intent(out),intent(in) - POINTER + ::tensor_outtransposed -

    tensor out

    +

    Whether matrix_out should be transposed

    intent(out)intent(inout) :: trans -

    transpose flag of matrix rep.

    -
    - - logical, - intent(out) - - ::new -

    whether a new tensor was created for tensor_out

    +

    update transpose flag for DBCSR mm according to 'transposed' argument

    - + logical, intent(in), :: nodata -

    don't copy tensor data -memory optimization: transfer data s.t. tensor_in may be empty on return

    +

    Data of matrix_in should not be copied to matrix_out +memory optimization: move data such that matrix_in is empty on return.

    - + logical, intent(in), :: move_data -

    don't copy tensor data -memory optimization: transfer data s.t. tensor_in may be empty on return

    -
    - - integer, - intent(in),optional - - ::unit_nr -

    output unit

    +

    Data of matrix_in should not be copied to matrix_out +memory optimization: move data such that matrix_in is empty on return.

    - - type(mp_comm_type), + + type(dbcsr_t_type), intent(in)intent(inout), - + TARGET ::mp_commtensor_in -

    communicator that defines Cartesian topology

    +

    tensor in

    - - type(dbcsr_tas_type), + + integer, intent(inout)intent(in), - + DIMENSION(:) ::matrix_inind1 - +

    index that should be mapped to first matrix dimension +index that should be mapped to second matrix dimension

    - - type(dbcsr_tas_type), + + integer, intent(out)intent(in), - + DIMENSION(:) ::matrix_outind2 - +

    index that should be mapped to first matrix dimension +index that should be mapped to second matrix dimension

    - - logical, + + type(dbcsr_t_type), intent(in)intent(out), - + POINTER ::transposedtensor_out -

    Whether matrix_out should be transposed

    +

    tensor out

    - + character(len=1), intent(inout)intent(out) :: trans -

    update transpose flag for DBCSR mm according to 'transposed' argument

    +

    transpose flag of matrix rep.

    +
    + + logical, + intent(out) + + ::new +

    whether a new tensor was created for tensor_out

    - + logical, intent(in), :: nodata -

    Data of matrix_in should not be copied to matrix_out -memory optimization: move data such that matrix_in is empty on return.

    +

    don't copy tensor data +memory optimization: transfer data s.t. tensor_in may be empty on return

    - + logical, intent(in), :: move_data -

    Data of matrix_in should not be copied to matrix_out -memory optimization: move data such that matrix_in is empty on return.

    +

    don't copy tensor data +memory optimization: transfer data s.t. tensor_in may be empty on return

    +
    + + integer, + intent(in),optional + + ::unit_nr +

    output unit

    - + type(dbcsr_tas_type), intent(in)
    - + type(dbcsr_tas_type), intent(inout)
    - + type(dbcsr_tas_type), intent(out)
    - + character(len=1), intent(inout)
    - + logical, intent(in),
    - + logical, intent(in),
    - + integer, intent(in)
    - + type(dbcsr_buffer), intent(inout)
    - + character(len=default_string_length), intent(in)
    - + class(CONF_PAR_INT), intent(inout)
    - + class(CONF_PAR_LOGICAL), intent(inout)
    - + class(CONF_PAR_MM_DRIVER), intent(inout)
    - + class(CONF_PAR_REAL), intent(inout)
    - + type(dbcsr_data_obj), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_data_obj), intent(inout)
    - + complex(kind=real_4),
    - + type(dbcsr_data_obj), intent(inout)
    - + real(kind=real_8),
    - + type(dbcsr_data_obj), intent(inout)
    - + real(kind=real_4),
    - + type(dbcsr_data_obj), intent(inout)
    - + complex(kind=real_8),
    - + type(dbcsr_data_obj), intent(inout)
    - + complex(kind=real_4),
    - + type(dbcsr_data_obj), intent(inout)
    - + real(kind=real_8),
    - + type(dbcsr_data_obj), intent(inout)
    - + real(kind=real_4),
    - + type(dbcsr_data_obj), intent(inout)
    - + complex(kind=real_8),
    - + integer(kind=int_4), intent(in),
    - + type(call_stat_type), intent(in),
    - + character(len=default_string_length), intent(in)
    - + integer(kind=int_4), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(out)
    - + integer, intent(in),
    - + type(dbcsr_type), intent(inout)
    - + integer, intent(in),
    - + type(dbcsr_memtype_type), intent(in),
    - + type(dbcsr_type), intent(inout)
    - + type(dbcsr_data_obj), intent(inout)
    - + type(dbcsr_buffer), intent(inout),
    - + integer, intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + logical, intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + type(array_list), intent(in)
    - + type(stack_descriptor_type), intent(in)
    - + integer, intent(in)
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(in),
    - + complex(kind=real_4), intent(inout),
    - + type(stack_descriptor_type), intent(in)
    - + integer, intent(in)
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(in),
    - + real(kind=real_8), intent(inout),
    - + type(stack_descriptor_type), intent(in)
    - + integer, intent(in)
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(in),
    - + real(kind=real_4), intent(inout),
    - + type(stack_descriptor_type), intent(in)
    - + integer, intent(in)
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(in),
    - + complex(kind=real_8), intent(inout),
    - + type(dbcsr_mm_multrec_type), intent(inout)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in),
    - + integer, intent(in),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + logical,
    - + type(mp_comm_type), intent(in)
    - + integer, intent(in)
    - + character(len=*), intent(in)
    - + integer, intent(out)
    - + integer, intent(in)
    - + type(array_list), intent(in)
    - + integer, intent(inout),
    - + integer(kind=int_8), intent(inout),
    - + character(len=1), intent(in)
    - + integer, intent(in)
    - + class(dbcsr_tas_blk_size_t), intent(in)
    - + class(dbcsr_tas_dist_t), intent(in)
    - + class(dbcsr_tas_dist_t), intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type)
    - + integer
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type), intent(in)
    - + character(len=1), intent(in)
    - + character(len=1), intent(in)
    - + type(dbcsr_scalar_type), intent(in)
    - + type(dbcsr_scalar_type), intent(in)
    - + integer, intent(in),
    - + logical, intent(in),
    - + integer, intent(in)
    - + real(kind=dp), intent(in)
    - + integer, intent(in)
    - + logical
    - + type(dbcsr_mp_obj), intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(timer_env_type),
    - + type(timer_env_type),
    - + type(timer_env_type),
    - + character(len=*), intent(in)
    - + integer, intent(out)
    - + character(len=*), intent(in)
    - + integer, intent(out)
    - + integer, intent(in)
    - + integer, intent(in)
    - + character(len=*), intent(in)
    - + integer, intent(in)
    - + type(dbcsr_mp_obj), intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + character(len=13), intent(in)
    - + character(len=default_string_length), intent(in),
    - + integer, intent(in),
    - + type(dbcsr_tas_split_info), intent(in)
    - + type(dbcsr_tas_split_info), intent(in)
    - + type(dbcsr_iterator), intent(inout)
    - + character(len=*), intent(inout)
    - + integer, intent(out),
    - + type(array_i1d_obj), intent(out)
    - + type(dbcsr_buffer), intent(inout)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_type) @@ -220,7 +220,7 @@

    Variables

    - + integer, @@ -236,7 +236,7 @@

    Variables

    - + integer, @@ -252,7 +252,7 @@

    Variables

    - + integer @@ -268,7 +268,7 @@

    Variables

    - + integer @@ -284,7 +284,7 @@

    Variables

    - + integer @@ -300,7 +300,7 @@

    Variables

    - + integer @@ -316,7 +316,7 @@

    Variables

    - + integer @@ -332,7 +332,7 @@

    Variables

    - + integer @@ -348,7 +348,7 @@

    Variables

    - + integer, @@ -364,7 +364,7 @@

    Variables

    - + integer, @@ -380,7 +380,7 @@

    Variables

    - + integer, @@ -396,7 +396,7 @@

    Variables

    - + type(dbcsr_distribution_type) @@ -412,7 +412,7 @@

    Variables

    - + logical, @@ -441,7 +441,7 @@

    Variables

    Subroutines

    -

    subroutine random_dist(dist_array, dist_size, nbins) +

    subroutine random_dist(dist_array, dist_size, nbins)

    @@ -460,7 +460,7 @@

    Arguments

    - + integer, intent(out),
    - + integer, intent(in)
    - + integer, intent(in)
    - + type(dbcsr_type) @@ -230,7 +230,7 @@

    Variables

    - + integer, @@ -246,7 +246,7 @@

    Variables

    - + integer, @@ -262,7 +262,7 @@

    Variables

    - + integer @@ -278,7 +278,7 @@

    Variables

    - + integer @@ -294,7 +294,7 @@

    Variables

    - + integer @@ -326,7 +326,7 @@

    Variables

    - + integer @@ -342,7 +342,7 @@

    Variables

    - + integer @@ -358,7 +358,7 @@

    Variables

    - + integer @@ -374,7 +374,7 @@

    Variables

    - + integer @@ -390,7 +390,7 @@

    Variables

    - + integer @@ -406,7 +406,7 @@

    Variables

    - + integer @@ -422,7 +422,7 @@

    Variables

    - + integer @@ -438,7 +438,7 @@

    Variables

    - + integer @@ -454,7 +454,7 @@

    Variables

    - + integer @@ -470,7 +470,7 @@

    Variables

    - + integer @@ -486,7 +486,7 @@

    Variables

    - + integer @@ -502,7 +502,7 @@

    Variables

    - + integer, @@ -518,7 +518,7 @@

    Variables

    - + integer, @@ -534,7 +534,7 @@

    Variables

    - + integer, @@ -550,7 +550,7 @@

    Variables

    - + type(dbcsr_distribution_type) @@ -566,7 +566,7 @@

    Variables

    - + real(kind=KIND(0.0D0)), @@ -630,7 +630,7 @@

    Arguments

    - + integer, intent(out),
    - + integer, intent(in)
    - + type(dbcsr_type) @@ -232,7 +232,7 @@

    Variables

    - + type(dbcsr_type) @@ -248,7 +248,7 @@

    Variables

    - + type(dbcsr_type) @@ -264,7 +264,7 @@

    Variables

    - + integer, @@ -280,7 +280,7 @@

    Variables

    - + integer, @@ -296,7 +296,7 @@

    Variables

    - + integer @@ -312,7 +312,7 @@

    Variables

    - + integer @@ -328,7 +328,7 @@

    Variables

    - + integer @@ -344,7 +344,7 @@

    Variables

    - + integer @@ -360,7 +360,7 @@

    Variables

    - + integer @@ -376,7 +376,7 @@

    Variables

    - + integer @@ -392,7 +392,7 @@

    Variables

    - + integer @@ -408,7 +408,7 @@

    Variables

    - + integer @@ -424,7 +424,7 @@

    Variables

    - + integer @@ -440,7 +440,7 @@

    Variables

    - + integer @@ -456,7 +456,7 @@

    Variables

    - + integer @@ -472,7 +472,7 @@

    Variables

    - + integer @@ -488,7 +488,7 @@

    Variables

    - + integer @@ -504,7 +504,7 @@

    Variables

    - + integer @@ -520,7 +520,7 @@

    Variables

    - + integer @@ -536,7 +536,7 @@

    Variables

    - + integer, @@ -552,7 +552,7 @@

    Variables

    - + integer, @@ -568,7 +568,7 @@

    Variables

    - + integer, @@ -584,7 +584,7 @@

    Variables

    - + type(dbcsr_distribution_type) @@ -600,7 +600,7 @@

    Variables

    - + real(kind=KIND(0.0D0)), @@ -616,7 +616,7 @@

    Variables

    - + logical, @@ -645,7 +645,7 @@

    Variables

    Subroutines

    -

    subroutine random_dist(dist_array, dist_size, nbins) +

    subroutine random_dist(dist_array, dist_size, nbins)

    @@ -664,7 +664,7 @@

    Arguments

    - + integer, intent(out),
    - + integer, intent(in)
    - + integer, intent(in)
    - + integer @@ -229,7 +229,7 @@

    Variables

    - + integer @@ -245,7 +245,7 @@

    Variables

    - + integer @@ -261,7 +261,7 @@

    Variables

    - + integer @@ -277,7 +277,7 @@

    Variables

    - + integer @@ -309,7 +309,7 @@

    Variables

    - + integer @@ -325,7 +325,7 @@

    Variables

    - + integer, @@ -341,7 +341,7 @@

    Variables

    - + integer, @@ -357,7 +357,7 @@

    Variables

    - + integer, @@ -373,7 +373,7 @@

    Variables

    - + type(dbcsr_mp_obj) @@ -405,7 +405,7 @@

    Variables

    - + type(mp_comm_type) @@ -421,7 +421,7 @@

    Variables

    - + type(mp_comm_type) @@ -437,7 +437,7 @@

    Variables

    - + character(len=*), diff --git a/develop/program/dbcsr_tas_unittest.html b/develop/program/dbcsr_tas_unittest.html index 9b04f036cc7..15699bd89d6 100644 --- a/develop/program/dbcsr_tas_unittest.html +++ b/develop/program/dbcsr_tas_unittest.html @@ -112,9 +112,9 @@

    Variables

    @@ -177,15 +177,15 @@

    Uses

    @@ -209,7 +209,7 @@

    Variables

    - + integer(kind=int_8), @@ -225,7 +225,7 @@

    Variables

    - + integer(kind=int_8), @@ -241,7 +241,7 @@

    Variables

    - + integer(kind=int_8), @@ -497,7 +497,7 @@

    Variables

    - + real(kind=real_8), @@ -529,7 +529,7 @@

    Variables

    - + integer @@ -545,7 +545,7 @@

    Variables

    - + integer @@ -561,7 +561,7 @@

    Variables

    - + type(mp_comm_type) @@ -673,7 +673,7 @@

    Variables

    - + real(kind=real_8), diff --git a/develop/program/dbcsr_tensor_example_1.html b/develop/program/dbcsr_tensor_example_1.html index f51c528c675..4080e6e2bc8 100644 --- a/develop/program/dbcsr_tensor_example_1.html +++ b/develop/program/dbcsr_tensor_example_1.html @@ -113,41 +113,41 @@

    Variables

    - + real(kind=real64), @@ -367,7 +367,7 @@

    Variables

    - + real(kind=real64) @@ -383,7 +383,7 @@

    Variables

    - + real(kind=real64) @@ -495,7 +495,7 @@

    Variables

    - + integer @@ -527,7 +527,7 @@

    Variables

    - + integer @@ -543,7 +543,7 @@

    Variables

    - + integer @@ -559,7 +559,7 @@

    Variables

    - + integer @@ -575,7 +575,7 @@

    Variables

    - + integer @@ -607,7 +607,7 @@

    Variables

    - + integer @@ -623,7 +623,7 @@

    Variables

    - + integer @@ -639,7 +639,7 @@

    Variables

    - + integer @@ -655,7 +655,7 @@

    Variables

    - + integer @@ -671,7 +671,7 @@

    Variables

    - + integer @@ -687,7 +687,7 @@

    Variables

    - + integer @@ -703,7 +703,7 @@

    Variables

    - + integer @@ -719,7 +719,7 @@

    Variables

    - + integer @@ -735,7 +735,7 @@

    Variables

    - + integer @@ -751,7 +751,7 @@

    Variables

    - + integer @@ -767,7 +767,7 @@

    Variables

    - + integer @@ -879,7 +879,7 @@

    Variables

    - + integer @@ -1151,7 +1151,7 @@

    Variables

    - + integer, @@ -1295,7 +1295,7 @@

    Variables

    - + integer, @@ -1311,7 +1311,7 @@

    Variables

    - + integer, @@ -1327,7 +1327,7 @@

    Variables

    - + integer, @@ -1455,7 +1455,7 @@

    Variables

    - + integer, @@ -1471,7 +1471,7 @@

    Variables

    - + integer, @@ -1519,7 +1519,7 @@

    Variables

    - + integer, @@ -1535,7 +1535,7 @@

    Variables

    - + integer, @@ -1551,7 +1551,7 @@

    Variables

    - + integer, @@ -1567,7 +1567,7 @@

    Variables

    - + integer, @@ -1583,7 +1583,7 @@

    Variables

    - + integer, @@ -1599,7 +1599,7 @@

    Variables

    - + integer, @@ -1615,7 +1615,7 @@

    Variables

    - + integer, @@ -1631,7 +1631,7 @@

    Variables

    - + integer, @@ -1647,7 +1647,7 @@

    Variables

    - + integer, @@ -1663,7 +1663,7 @@

    Variables

    - + integer, @@ -1903,7 +1903,7 @@

    Variables

    - + real(kind=real64) @@ -1951,7 +1951,7 @@

    Variables

    - + real(kind=real64) @@ -2015,7 +2015,7 @@

    Variables

    - + logical @@ -2047,7 +2047,7 @@

    Variables

    - + type(dbcsr_type) @@ -2332,7 +2332,7 @@

    Arguments

    - + integer, intent(in)
    - + integer, intent(in)
    - + integer, intent(out)
    - + integer, intent(out),
    - + integer, intent(in),
    - + integer @@ -274,7 +274,7 @@

    Variables

    - + integer @@ -290,7 +290,7 @@

    Variables

    - + integer @@ -306,7 +306,7 @@

    Variables

    - + integer @@ -322,7 +322,7 @@

    Variables

    - + integer @@ -498,7 +498,7 @@

    Variables

    - + integer, @@ -514,7 +514,7 @@

    Variables

    - + integer, @@ -530,7 +530,7 @@

    Variables

    - + integer, @@ -578,7 +578,7 @@

    Variables

    - + integer, @@ -594,7 +594,7 @@

    Variables

    - + integer, @@ -610,7 +610,7 @@

    Variables

    - + integer, @@ -626,7 +626,7 @@

    Variables

    - + integer, @@ -642,7 +642,7 @@

    Variables

    - + integer, @@ -818,7 +818,7 @@

    Variables

    - + integer, @@ -834,7 +834,7 @@

    Variables

    - + integer, @@ -850,7 +850,7 @@

    Variables

    - + integer, @@ -866,7 +866,7 @@

    Variables

    - + integer, @@ -1218,7 +1218,7 @@

    Variables

    - + logical, @@ -1234,7 +1234,7 @@

    Variables

    - + type(dbcsr_t_distribution_type) @@ -1250,7 +1250,7 @@

    Variables

    - + type(dbcsr_t_distribution_type) @@ -1474,7 +1474,7 @@

    Variables

    - + integer, @@ -1490,7 +1490,7 @@

    Variables

    - + integer, @@ -1506,7 +1506,7 @@

    Variables

    - + integer, @@ -1522,7 +1522,7 @@

    Variables

    - + type(mp_comm_type) diff --git a/develop/program/dbcsr_test_csr_conversions.html b/develop/program/dbcsr_test_csr_conversions.html index a171f309751..ed0fe6925f9 100644 --- a/develop/program/dbcsr_test_csr_conversions.html +++ b/develop/program/dbcsr_test_csr_conversions.html @@ -112,34 +112,34 @@

    Variables

    @@ -193,11 +193,11 @@

    Uses

    @@ -221,7 +221,7 @@

    Variables

    - + type(dbcsr_type) @@ -237,7 +237,7 @@

    Variables

    - + type(dbcsr_csr_type) @@ -253,7 +253,7 @@

    Variables

    - + integer, @@ -269,7 +269,7 @@

    Variables

    - + integer, @@ -285,7 +285,7 @@

    Variables

    - + integer @@ -301,7 +301,7 @@

    Variables

    - + integer @@ -317,7 +317,7 @@

    Variables

    - + integer, @@ -333,7 +333,7 @@

    Variables

    - + integer, @@ -349,7 +349,7 @@

    Variables

    - + integer @@ -365,7 +365,7 @@

    Variables

    - + integer @@ -381,7 +381,7 @@

    Variables

    - + integer @@ -397,7 +397,7 @@

    Variables

    - + integer, @@ -413,7 +413,7 @@

    Variables

    - + integer, @@ -461,7 +461,7 @@

    Variables

    - + integer @@ -509,7 +509,7 @@

    Variables

    - + real @@ -541,7 +541,7 @@

    Variables

    - + real(kind=real_8) @@ -573,7 +573,7 @@

    Variables

    - + real(kind=real_8) @@ -589,7 +589,7 @@

    Variables

    - + real(kind=real_8) @@ -637,7 +637,7 @@

    Variables

    - + type(mp_comm_type) @@ -653,7 +653,7 @@

    Variables

    - + type(mp_comm_type) @@ -704,7 +704,7 @@

    Arguments

    - + type(dbcsr_type), intent(in)
    - + type(dbcsr_csr_type), intent(out)
    - + real(kind=real_8), intent(out)
    - + real(kind=real_8), intent(in)
    - + type(dbcsr_type), intent(out)
    - + type(mp_comm_type), intent(in)
    - + integer,
    - + integer,
    - + integer,
    - + integer,
    - + real(kind=real_8), intent(in)
    - + integer @@ -216,7 +216,7 @@

    Variables

    - + integer @@ -232,7 +232,7 @@

    Variables

    - + integer @@ -248,7 +248,7 @@

    Variables

    - + integer @@ -264,7 +264,7 @@

    Variables

    - + integer @@ -280,7 +280,7 @@

    Variables

    - + integer @@ -296,7 +296,7 @@

    Variables

    - + integer, @@ -312,7 +312,7 @@

    Variables

    - + integer, @@ -328,7 +328,7 @@

    Variables

    - + integer, @@ -344,7 +344,7 @@

    Variables

    - + type(dbcsr_mp_obj) @@ -360,7 +360,7 @@

    Variables

    - + logical @@ -376,7 +376,7 @@

    Variables

    - + type(mp_comm_type) @@ -392,7 +392,7 @@

    Variables

    - + type(mp_comm_type) @@ -408,7 +408,7 @@

    Variables

    - + character(len=*), diff --git a/develop/program/dbcsr_unittest_1.html b/develop/program/dbcsr_unittest_1.html index 019aa084f7e..5cd27bbd52b 100644 --- a/develop/program/dbcsr_unittest_1.html +++ b/develop/program/dbcsr_unittest_1.html @@ -112,19 +112,19 @@

    Variables

    @@ -166,16 +166,16 @@

    Uses

    @@ -200,7 +200,7 @@

    Variables

    - + integer @@ -216,7 +216,7 @@

    Variables

    - + integer @@ -232,7 +232,7 @@

    Variables

    - + integer @@ -248,7 +248,7 @@

    Variables

    - + integer @@ -264,7 +264,7 @@

    Variables

    - + integer @@ -280,7 +280,7 @@

    Variables

    - + integer @@ -296,7 +296,7 @@

    Variables

    - + integer, @@ -312,7 +312,7 @@

    Variables

    - + integer, @@ -328,7 +328,7 @@

    Variables

    - + integer, @@ -344,7 +344,7 @@

    Variables

    - + type(dbcsr_mp_obj) @@ -360,7 +360,7 @@

    Variables

    - + type(mp_comm_type) @@ -376,7 +376,7 @@

    Variables

    - + type(mp_comm_type) @@ -392,7 +392,7 @@

    Variables

    - + character(len=*), diff --git a/develop/program/dbcsr_unittest_2.html b/develop/program/dbcsr_unittest_2.html index 1d477ff2d3d..f78c4d9083b 100644 --- a/develop/program/dbcsr_unittest_2.html +++ b/develop/program/dbcsr_unittest_2.html @@ -112,19 +112,19 @@

    Variables

    @@ -166,15 +166,15 @@

    Uses

    @@ -200,7 +200,7 @@

    Variables

    - + integer @@ -216,7 +216,7 @@

    Variables

    - + integer @@ -232,7 +232,7 @@

    Variables

    - + integer @@ -248,7 +248,7 @@

    Variables

    - + integer @@ -264,7 +264,7 @@

    Variables

    - + integer @@ -280,7 +280,7 @@

    Variables

    - + integer @@ -296,7 +296,7 @@

    Variables

    - + integer, @@ -312,7 +312,7 @@

    Variables

    - + integer, @@ -328,7 +328,7 @@

    Variables

    - + integer, @@ -344,7 +344,7 @@

    Variables

    - + type(dbcsr_mp_obj) @@ -360,7 +360,7 @@

    Variables

    - + type(mp_comm_type) @@ -376,7 +376,7 @@

    Variables

    - + type(mp_comm_type) @@ -392,7 +392,7 @@

    Variables

    - + character(len=*), diff --git a/develop/program/dbcsr_unittest_3.html b/develop/program/dbcsr_unittest_3.html index 02875bbc588..d95b9d37c6b 100644 --- a/develop/program/dbcsr_unittest_3.html +++ b/develop/program/dbcsr_unittest_3.html @@ -112,19 +112,19 @@

    Variables

    @@ -166,15 +166,15 @@

    Uses

    @@ -200,7 +200,7 @@

    Variables

    - + integer @@ -216,7 +216,7 @@

    Variables

    - + integer @@ -232,7 +232,7 @@

    Variables

    - + integer @@ -248,7 +248,7 @@

    Variables

    - + integer @@ -264,7 +264,7 @@

    Variables

    - + integer @@ -280,7 +280,7 @@

    Variables

    - + integer @@ -296,7 +296,7 @@

    Variables

    - + integer, @@ -312,7 +312,7 @@

    Variables

    - + integer, @@ -328,7 +328,7 @@

    Variables

    - + integer, @@ -344,7 +344,7 @@

    Variables

    - + type(dbcsr_mp_obj) @@ -360,7 +360,7 @@

    Variables

    - + type(mp_comm_type) @@ -376,7 +376,7 @@

    Variables

    - + type(mp_comm_type) @@ -392,7 +392,7 @@

    Variables

    - + character(len=*), diff --git a/develop/sourcefile/dbcsr_acc_device.f.html b/develop/sourcefile/dbcsr_acc_device.f.html index 23114d8d92a..067b004d8a5 100644 --- a/develop/sourcefile/dbcsr_acc_device.f.html +++ b/develop/sourcefile/dbcsr_acc_device.f.html @@ -167,111 +167,118 @@

    Source Code

    #endif #include "base/dbcsr_base_uses.f90" - IMPLICIT NONE +!$ USE OMP_LIB, ONLY: omp_get_level - PUBLIC :: dbcsr_acc_get_ndevices, dbcsr_acc_set_active_device, dbcsr_acc_clear_errors - PUBLIC :: acc_device_synchronize - - PRIVATE + IMPLICIT NONE + + PUBLIC :: dbcsr_acc_get_ndevices, dbcsr_acc_set_active_device, dbcsr_acc_clear_errors + PUBLIC :: acc_device_synchronize - CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'dbcsr_acc_device' + PRIVATE -#if defined (__DBCSR_ACC) - INTERFACE - FUNCTION acc_get_ndevices_cu(n_devices) RESULT(istat) & - BIND(C, name="c_dbcsr_acc_get_ndevices") - IMPORT - INTEGER(KIND=C_INT), INTENT(OUT) :: n_devices - INTEGER(KIND=C_INT) :: istat - - END FUNCTION acc_get_ndevices_cu + CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'dbcsr_acc_device' + +#if defined (__DBCSR_ACC) + INTERFACE + FUNCTION acc_get_ndevices_cu(n_devices) RESULT(istat) & + BIND(C, name="c_dbcsr_acc_get_ndevices") + IMPORT + INTEGER(KIND=C_INT), INTENT(OUT) :: n_devices + INTEGER(KIND=C_INT) :: istat - FUNCTION acc_set_active_device_cu(device_id) RESULT(istat) & - BIND(C, name="c_dbcsr_acc_set_active_device") - IMPORT - INTEGER(KIND=C_INT), INTENT(IN), VALUE :: device_id - INTEGER(KIND=C_INT) :: istat - - END FUNCTION acc_set_active_device_cu + END FUNCTION acc_get_ndevices_cu + + FUNCTION acc_set_active_device_cu(device_id) RESULT(istat) & + BIND(C, name="c_dbcsr_acc_set_active_device") + IMPORT + INTEGER(KIND=C_INT), INTENT(IN), VALUE :: device_id + INTEGER(KIND=C_INT) :: istat - FUNCTION acc_device_synchronize_cu() RESULT(istat) & - BIND(C, name="c_dbcsr_acc_device_synchronize") - IMPORT - INTEGER(KIND=C_INT) :: istat - - END FUNCTION acc_device_synchronize_cu + END FUNCTION acc_set_active_device_cu + + FUNCTION acc_device_synchronize_cu() RESULT(istat) & + BIND(C, name="c_dbcsr_acc_device_synchronize") + IMPORT + INTEGER(KIND=C_INT) :: istat - SUBROUTINE acc_clear_errors_cu() & - BIND(C, name="c_dbcsr_acc_clear_errors") - END SUBROUTINE acc_clear_errors_cu - - END INTERFACE + END FUNCTION acc_device_synchronize_cu + + SUBROUTINE acc_clear_errors_cu() & + BIND(C, name="c_dbcsr_acc_clear_errors") + END SUBROUTINE acc_clear_errors_cu -#endif + END INTERFACE -CONTAINS +#endif - FUNCTION dbcsr_acc_get_ndevices() RESULT(n) - !! Get number of accelerator devices - - INTEGER :: n - !! number of accelerator devices - -#if defined (__DBCSR_ACC) - INTEGER :: istat -#endif - - n = 0 -#if defined (__DBCSR_ACC) - istat = acc_get_ndevices_cu(n) - IF (istat /= 0) & - DBCSR_ABORT("dbcsr_acc_get_ndevices: failed") -#endif - END FUNCTION dbcsr_acc_get_ndevices - - SUBROUTINE dbcsr_acc_set_active_device(device_id) - !! Set active accelerator device - - INTEGER :: device_id +CONTAINS + + FUNCTION dbcsr_acc_get_ndevices() RESULT(n) + !! Get number of accelerator devices + + INTEGER :: n + !! number of accelerator devices + +#if defined (__DBCSR_ACC) + INTEGER :: istat +#endif + + n = 0 +#if defined (__DBCSR_ACC) + istat = acc_get_ndevices_cu(n) + IF (istat /= 0) & + DBCSR_ABORT("dbcsr_acc_get_ndevices: failed") +#endif + END FUNCTION dbcsr_acc_get_ndevices + + SUBROUTINE dbcsr_acc_set_active_device(device_id) + !! Set active accelerator device -#if defined (__DBCSR_ACC) - INTEGER :: istat - -!$OMP PARALLEL DEFAULT(NONE) PRIVATE(istat) SHARED(device_id) - istat = acc_set_active_device_cu(device_id) - IF (istat /= 0) & - DBCSR_ABORT("dbcsr_acc_set_active_device: failed") -!$OMP END PARALLEL - -#else - MARK_USED(device_id) - DBCSR_ABORT("__DBCSR_ACC not compiled in") -#endif - END SUBROUTINE dbcsr_acc_set_active_device - - SUBROUTINE dbcsr_acc_clear_errors() - !! Clear GPU errors -#if defined (__DBCSR_ACC) - CALL acc_clear_errors_cu() -#else - DBCSR_ABORT("__DBCSR_ACC not compiled in") -#endif - END SUBROUTINE dbcsr_acc_clear_errors - - SUBROUTINE acc_device_synchronize() - !! Fortran-wrapper for waiting for work on all streams to complete - -#if defined (__DBCSR_ACC) - INTEGER :: istat - istat = acc_device_synchronize_cu() - IF (istat /= 0) & - DBCSR_ABORT("acc_device_synchronize failed") -#else - DBCSR_ABORT("__DBCSR_ACC not compiled in") -#endif - END SUBROUTINE acc_device_synchronize - -END MODULE dbcsr_acc_device + INTEGER :: device_id + +#if defined (__DBCSR_ACC) + INTEGER :: istat + +!$ IF (0 == omp_get_level()) THEN + istat = 0 +!$OMP PARALLEL DEFAULT(NONE) SHARED(device_id) REDUCTION(MAX:istat) + istat = acc_set_active_device_cu(device_id) +!$OMP END PARALLEL +!$ ELSE + istat = acc_set_active_device_cu(device_id) +!$ END IF + IF (istat /= 0) & + DBCSR_ABORT("dbcsr_acc_set_active_device: failed") + +#else + MARK_USED(device_id) + DBCSR_ABORT("__DBCSR_ACC not compiled in") +#endif + END SUBROUTINE dbcsr_acc_set_active_device + + SUBROUTINE dbcsr_acc_clear_errors() + !! Clear GPU errors +#if defined (__DBCSR_ACC) + CALL acc_clear_errors_cu() +#else + DBCSR_ABORT("__DBCSR_ACC not compiled in") +#endif + END SUBROUTINE dbcsr_acc_clear_errors + + SUBROUTINE acc_device_synchronize() + !! Fortran-wrapper for waiting for work on all streams to complete + +#if defined (__DBCSR_ACC) + INTEGER :: istat + istat = acc_device_synchronize_cu() + IF (istat /= 0) & + DBCSR_ABORT("acc_device_synchronize failed") +#else + DBCSR_ABORT("__DBCSR_ACC not compiled in") +#endif + END SUBROUTINE acc_device_synchronize + +END MODULE dbcsr_acc_device diff --git a/develop/sourcefile/dbcsr_allocate_wrap.f.html b/develop/sourcefile/dbcsr_allocate_wrap.f.html index 0ee2c8c1887..3e2fa0fd892 100644 --- a/develop/sourcefile/dbcsr_allocate_wrap.f.html +++ b/develop/sourcefile/dbcsr_allocate_wrap.f.html @@ -174,7 +174,7 @@

    Source Code

    # 17 "/__w/dbcsr/dbcsr/src/tensors/dbcsr_allocate_wrap.F" 2 # 18 "/__w/dbcsr/dbcsr/src/tensors/dbcsr_allocate_wrap.F" - USE dbcsr_kinds, ONLY: real_8, real_4 + USE dbcsr_kinds, ONLY: real_4, real_8 #include "base/dbcsr_base_uses.f90" IMPLICIT NONE diff --git a/develop/sourcefile/dbcsr_array_sort.f.html b/develop/sourcefile/dbcsr_array_sort.f.html index 633a7885383..0048859d1cc 100644 --- a/develop/sourcefile/dbcsr_array_sort.f.html +++ b/develop/sourcefile/dbcsr_array_sort.f.html @@ -175,7 +175,7 @@

    Source Code

    !! DBCSR: !! Please use the interface defined in dbcsr_toollib.F for calling sort(). - USE dbcsr_kinds, ONLY: real_8, int_8, real_4, int_4 + USE dbcsr_kinds, ONLY: real_4, real_8, int_8, int_4 IMPLICIT NONE PRIVATE diff --git a/develop/sourcefile/dbcsr_dict.f.html b/develop/sourcefile/dbcsr_dict.f.html index 4dd59e816a2..d498530ad5a 100644 --- a/develop/sourcefile/dbcsr_dict.f.html +++ b/develop/sourcefile/dbcsr_dict.f.html @@ -173,7 +173,7 @@

    Source Code

    !! size will be allocated and the items are then copied over. !! This ensures that the dictionary will perform operations in O(1). - USE dbcsr_kinds, ONLY: default_string_length, int_8, int_4 + USE dbcsr_kinds, ONLY: int_4, int_8, default_string_length USE dbcsr_timings_base_type, ONLY: call_stat_type #include "base/dbcsr_base_uses.f90" IMPLICIT NONE diff --git a/develop/sourcefile/dbcsr_list.f.html b/develop/sourcefile/dbcsr_list.f.html index 4595dd7e151..fe54d2d12fa 100644 --- a/develop/sourcefile/dbcsr_list.f.html +++ b/develop/sourcefile/dbcsr_list.f.html @@ -176,7 +176,7 @@

    Source Code

    !! dependencies (timer_env_type contains list_routinestat_type and list_callstackentry_type, and !! list_timerenv_type contains timer_env_type) - USE dbcsr_timings_base_type, ONLY: routine_stat_type, callstack_entry_type, routine_report_type + USE dbcsr_timings_base_type, ONLY: routine_stat_type, routine_report_type, callstack_entry_type USE dbcsr_list_callstackentry, ONLY: list_callstackentry_type, list_callstackentry_init, list_callstackentry_push,& # 22 "/__w/dbcsr/dbcsr/src/core/dbcsr_list.F" & list_callstackentry_pop, list_callstackentry_peek, list_callstackentry_insert, list_callstackentry_set,& diff --git a/develop/sourcefile/dbcsr_list_routinereport.f.html b/develop/sourcefile/dbcsr_list_routinereport.f.html index 2d36cc3c464..690fc7b7759 100644 --- a/develop/sourcefile/dbcsr_list_routinereport.f.html +++ b/develop/sourcefile/dbcsr_list_routinereport.f.html @@ -178,7 +178,7 @@

    Source Code

    !! Have look at list_push(), list_pop() and list_peek(). MODULE dbcsr_list_routinereport - USE dbcsr_timings_base_type, ONLY: routine_stat_type, routine_report_type, callstack_entry_type + USE dbcsr_timings_base_type, ONLY: callstack_entry_type, routine_stat_type, routine_report_type # 21 "/__w/dbcsr/dbcsr/src/core/dbcsr_list_routinereport.F" diff --git a/develop/sourcefile/dbcsr_list_routinestat.f.html b/develop/sourcefile/dbcsr_list_routinestat.f.html index a36c686a7df..743188375d3 100644 --- a/develop/sourcefile/dbcsr_list_routinestat.f.html +++ b/develop/sourcefile/dbcsr_list_routinestat.f.html @@ -178,7 +178,7 @@

    Source Code

    !! Have look at list_push(), list_pop() and list_peek(). MODULE dbcsr_list_routinestat - USE dbcsr_timings_base_type, ONLY: routine_report_type, routine_stat_type, callstack_entry_type + USE dbcsr_timings_base_type, ONLY: routine_report_type, callstack_entry_type, routine_stat_type # 21 "/__w/dbcsr/dbcsr/src/core/dbcsr_list_routinestat.F" diff --git a/develop/sourcefile/dbcsr_mpiwrap.f.html b/develop/sourcefile/dbcsr_mpiwrap.f.html index 89d3179d8b2..fc5866cd1fb 100644 --- a/develop/sourcefile/dbcsr_mpiwrap.f.html +++ b/develop/sourcefile/dbcsr_mpiwrap.f.html @@ -5672,14105 +5672,14069 @@

    Source Code

    MARK_USED(myproc) #endif IF (do_local_copy) THEN -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(base,win_data,disp_aint,len) -#endif - base(:) = win_data(disp_aint + 1:disp_aint + len) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif - request = mp_request_null - ierr = 0 - ELSE - CALL mpi_rget(base, origin_len, handle_origin_datatype, source, disp_aint, & - target_len, handle_target_datatype, win%handle, request%handle, ierr) - END IF - ELSE - request = mp_request_null - ierr = 0 - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_rget @ "//routineN) - - CALL add_perf(perf_id=25, msg_size=SIZE(base)*int_4_size) -#else - MARK_USED(source) - MARK_USED(win) - MARK_USED(myproc) - MARK_USED(origin_datatype) - MARK_USED(target_datatype) - - request = mp_request_null - ! - IF (PRESENT(disp)) THEN - base(:) = win_data(disp + 1:disp + SIZE(base)) - ELSE - base(:) = win_data(:SIZE(base)) - END IF - -#endif - CALL timestop(handle) - END SUBROUTINE mp_rget_iv - -! ***************************************************************************** -! *************************************************************************** - FUNCTION mp_type_indexed_make_i (count, lengths, displs) & - RESULT(type_descriptor) - INTEGER, INTENT(IN) :: count - INTEGER, DIMENSION(1:count), INTENT(IN), TARGET :: lengths, displs - TYPE(mp_type_descriptor_type) :: type_descriptor - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_type_indexed_make_i' - - INTEGER :: ierr, handle - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - CALL mpi_type_indexed(count, lengths, displs, MPI_INTEGER, & - type_descriptor%type_handle, ierr) - IF (ierr /= 0) & - DBCSR_ABORT("MPI_Type_Indexed @ "//routineN) - CALL mpi_type_commit(type_descriptor%type_handle, ierr) - IF (ierr /= 0) & - DBCSR_ABORT("MPI_Type_commit @ "//routineN) -#else - type_descriptor%type_handle = 17 -#endif - type_descriptor%length = count - NULLIFY (type_descriptor%subtype) - type_descriptor%vector_descriptor(1:2) = 1 - type_descriptor%has_indexing = .TRUE. - type_descriptor%index_descriptor%index => lengths - type_descriptor%index_descriptor%chunks => displs - - CALL timestop(handle) - - END FUNCTION mp_type_indexed_make_i - - SUBROUTINE mp_allocate_i (DATA, len, stat) - !! Allocates special parallel memory - - INTEGER(KIND=int_4), DIMENSION(:), POINTER, CONTIGUOUS :: DATA - !! pointer to integer array to allocate - INTEGER, INTENT(IN) :: len - !! number of integers to allocate - INTEGER, INTENT(OUT), OPTIONAL :: stat - !! allocation status result + base(:) = win_data(disp_aint + 1:disp_aint + len) + request = mp_request_null + ierr = 0 + ELSE + CALL mpi_rget(base, origin_len, handle_origin_datatype, source, disp_aint, & + target_len, handle_target_datatype, win%handle, request%handle, ierr) + END IF + ELSE + request = mp_request_null + ierr = 0 + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_rget @ "//routineN) + + CALL add_perf(perf_id=25, msg_size=SIZE(base)*int_4_size) +#else + MARK_USED(source) + MARK_USED(win) + MARK_USED(myproc) + MARK_USED(origin_datatype) + MARK_USED(target_datatype) + + request = mp_request_null + ! + IF (PRESENT(disp)) THEN + base(:) = win_data(disp + 1:disp + SIZE(base)) + ELSE + base(:) = win_data(:SIZE(base)) + END IF + +#endif + CALL timestop(handle) + END SUBROUTINE mp_rget_iv + +! ***************************************************************************** +! *************************************************************************** + FUNCTION mp_type_indexed_make_i (count, lengths, displs) & + RESULT(type_descriptor) + INTEGER, INTENT(IN) :: count + INTEGER, DIMENSION(1:count), INTENT(IN), TARGET :: lengths, displs + TYPE(mp_type_descriptor_type) :: type_descriptor + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_type_indexed_make_i' + + INTEGER :: ierr, handle + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + CALL mpi_type_indexed(count, lengths, displs, MPI_INTEGER, & + type_descriptor%type_handle, ierr) + IF (ierr /= 0) & + DBCSR_ABORT("MPI_Type_Indexed @ "//routineN) + CALL mpi_type_commit(type_descriptor%type_handle, ierr) + IF (ierr /= 0) & + DBCSR_ABORT("MPI_Type_commit @ "//routineN) +#else + type_descriptor%type_handle = 17 +#endif + type_descriptor%length = count + NULLIFY (type_descriptor%subtype) + type_descriptor%vector_descriptor(1:2) = 1 + type_descriptor%has_indexing = .TRUE. + type_descriptor%index_descriptor%index => lengths + type_descriptor%index_descriptor%chunks => displs + + CALL timestop(handle) + + END FUNCTION mp_type_indexed_make_i + + SUBROUTINE mp_allocate_i (DATA, len, stat) + !! Allocates special parallel memory + + INTEGER(KIND=int_4), DIMENSION(:), POINTER, CONTIGUOUS :: DATA + !! pointer to integer array to allocate + INTEGER, INTENT(IN) :: len + !! number of integers to allocate + INTEGER, INTENT(OUT), OPTIONAL :: stat + !! allocation status result + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allocate_i' + + INTEGER :: ierr, handle + + CALL timeset(routineN, handle) - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allocate_i' - - INTEGER :: ierr, handle - - CALL timeset(routineN, handle) - - ierr = 0 -#if defined(__parallel) - NULLIFY (DATA) - CALL mp_alloc_mem(DATA, len, stat=ierr) - IF (ierr /= 0 .AND. .NOT. PRESENT(stat)) & - CALL mp_stop(ierr, "mpi_alloc_mem @ "//routineN) -#else - ALLOCATE (DATA(len), stat=ierr) - IF (ierr /= 0 .AND. .NOT. PRESENT(stat)) & - CALL mp_stop(ierr, "ALLOCATE @ "//routineN) -#endif - IF (PRESENT(stat)) stat = ierr - CALL timestop(handle) - END SUBROUTINE mp_allocate_i - - SUBROUTINE mp_deallocate_i (DATA, stat) - !! Deallocates special parallel memory + ierr = 0 +#if defined(__parallel) + NULLIFY (DATA) + CALL mp_alloc_mem(DATA, len, stat=ierr) + IF (ierr /= 0 .AND. .NOT. PRESENT(stat)) & + CALL mp_stop(ierr, "mpi_alloc_mem @ "//routineN) +#else + ALLOCATE (DATA(len), stat=ierr) + IF (ierr /= 0 .AND. .NOT. PRESENT(stat)) & + CALL mp_stop(ierr, "ALLOCATE @ "//routineN) +#endif + IF (PRESENT(stat)) stat = ierr + CALL timestop(handle) + END SUBROUTINE mp_allocate_i + + SUBROUTINE mp_deallocate_i (DATA, stat) + !! Deallocates special parallel memory + + INTEGER(KIND=int_4), DIMENSION(:), POINTER, CONTIGUOUS :: DATA + !! pointer to special memory to deallocate + INTEGER, INTENT(OUT), OPTIONAL :: stat + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_deallocate_i' - INTEGER(KIND=int_4), DIMENSION(:), POINTER, CONTIGUOUS :: DATA - !! pointer to special memory to deallocate - INTEGER, INTENT(OUT), OPTIONAL :: stat + INTEGER :: ierr, handle + + CALL timeset(routineN, handle) - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_deallocate_i' - - INTEGER :: ierr, handle - - CALL timeset(routineN, handle) - - ierr = 0 -#if defined(__parallel) - CALL mp_free_mem(DATA, ierr) - IF (PRESENT(stat)) THEN - stat = ierr - ELSE - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_free_mem @ "//routineN) - END IF - NULLIFY (DATA) -#else - DEALLOCATE (DATA) - IF (PRESENT(stat)) stat = 0 -#endif - CALL timestop(handle) - END SUBROUTINE mp_deallocate_i - - SUBROUTINE mp_file_write_at_iv(fh, offset, msg, msglen) - !! (parallel) Blocking individual file write using explicit offsets - !! (serial) Unformatted stream write - !! - !! MPI-I/O mapping mpi_file_write_at - !! - !! STREAM-I/O mapping WRITE - - INTEGER(KIND=int_4), INTENT(IN) :: msg(:) - !! data to be written to the file - TYPE(mp_file_type), INTENT(IN) :: fh - !! file handle (file storage unit) - INTEGER, INTENT(IN), OPTIONAL :: msglen - !! number of the elements of data - INTEGER(kind=file_offset), INTENT(IN) :: offset - !! file offset (position) - - INTEGER :: msg_len - - msg_len = SIZE(msg) - IF (PRESENT(msglen)) msg_len = msglen - -#if defined(__parallel) - BLOCK - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_iv' - INTEGER :: ierr - ierr = 0 - CALL MPI_FILE_WRITE_AT(fh%handle, offset, msg, msg_len, MPI_INTEGER, MPI_STATUS_IGNORE, ierr) - IF (ierr .NE. 0) & - DBCSR_ABORT("mpi_file_write_at_iv @ "//routineN) - END BLOCK -#else - WRITE (UNIT=fh%handle, POS=offset + 1) msg(1:msg_len) -#endif - END SUBROUTINE mp_file_write_at_iv - -! ***************************************************************************** -! ***************************************************************************** - SUBROUTINE mp_file_write_at_i (fh, offset, msg) - INTEGER(KIND=int_4), INTENT(IN) :: msg - TYPE(mp_file_type), INTENT(IN) :: fh - INTEGER(kind=file_offset), INTENT(IN) :: offset - -#if defined(__parallel) - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_i' - - INTEGER :: ierr - - ierr = 0 - CALL MPI_FILE_WRITE_AT(fh%handle, offset, msg, 1, MPI_INTEGER, MPI_STATUS_IGNORE, ierr) - IF (ierr .NE. 0) & - DBCSR_ABORT("mpi_file_write_at_i @ "//routineN) -#else - WRITE (UNIT=fh%handle, POS=offset + 1) msg -#endif - END SUBROUTINE mp_file_write_at_i - - SUBROUTINE mp_file_write_at_all_iv(fh, offset, msg, msglen) - !! (parallel) Blocking collective file write using explicit offsets - !! (serial) Unformatted stream write - !! - !! MPI-I/O mapping mpi_file_write_at_all - !! - !! STREAM-I/O mapping WRITE + ierr = 0 +#if defined(__parallel) + CALL mp_free_mem(DATA, ierr) + IF (PRESENT(stat)) THEN + stat = ierr + ELSE + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_free_mem @ "//routineN) + END IF + NULLIFY (DATA) +#else + DEALLOCATE (DATA) + IF (PRESENT(stat)) stat = 0 +#endif + CALL timestop(handle) + END SUBROUTINE mp_deallocate_i + + SUBROUTINE mp_file_write_at_iv(fh, offset, msg, msglen) + !! (parallel) Blocking individual file write using explicit offsets + !! (serial) Unformatted stream write + !! + !! MPI-I/O mapping mpi_file_write_at + !! + !! STREAM-I/O mapping WRITE + + INTEGER(KIND=int_4), INTENT(IN) :: msg(:) + !! data to be written to the file + TYPE(mp_file_type), INTENT(IN) :: fh + !! file handle (file storage unit) + INTEGER, INTENT(IN), OPTIONAL :: msglen + !! number of the elements of data + INTEGER(kind=file_offset), INTENT(IN) :: offset + !! file offset (position) + + INTEGER :: msg_len + + msg_len = SIZE(msg) + IF (PRESENT(msglen)) msg_len = msglen + +#if defined(__parallel) + BLOCK + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_iv' + INTEGER :: ierr + ierr = 0 + CALL MPI_FILE_WRITE_AT(fh%handle, offset, msg, msg_len, MPI_INTEGER, MPI_STATUS_IGNORE, ierr) + IF (ierr .NE. 0) & + DBCSR_ABORT("mpi_file_write_at_iv @ "//routineN) + END BLOCK +#else + WRITE (UNIT=fh%handle, POS=offset + 1) msg(1:msg_len) +#endif + END SUBROUTINE mp_file_write_at_iv + +! ***************************************************************************** +! ***************************************************************************** + SUBROUTINE mp_file_write_at_i (fh, offset, msg) + INTEGER(KIND=int_4), INTENT(IN) :: msg + TYPE(mp_file_type), INTENT(IN) :: fh + INTEGER(kind=file_offset), INTENT(IN) :: offset + +#if defined(__parallel) + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_i' + + INTEGER :: ierr + + ierr = 0 + CALL MPI_FILE_WRITE_AT(fh%handle, offset, msg, 1, MPI_INTEGER, MPI_STATUS_IGNORE, ierr) + IF (ierr .NE. 0) & + DBCSR_ABORT("mpi_file_write_at_i @ "//routineN) +#else + WRITE (UNIT=fh%handle, POS=offset + 1) msg +#endif + END SUBROUTINE mp_file_write_at_i + + SUBROUTINE mp_file_write_at_all_iv(fh, offset, msg, msglen) + !! (parallel) Blocking collective file write using explicit offsets + !! (serial) Unformatted stream write + !! + !! MPI-I/O mapping mpi_file_write_at_all + !! + !! STREAM-I/O mapping WRITE + + INTEGER(KIND=int_4), INTENT(IN) :: msg(:) + TYPE(mp_file_type), INTENT(IN) :: fh + INTEGER, INTENT(IN), OPTIONAL :: msglen + INTEGER :: msg_len + INTEGER(kind=file_offset), INTENT(IN) :: offset - INTEGER(KIND=int_4), INTENT(IN) :: msg(:) - TYPE(mp_file_type), INTENT(IN) :: fh - INTEGER, INTENT(IN), OPTIONAL :: msglen - INTEGER :: msg_len - INTEGER(kind=file_offset), INTENT(IN) :: offset - - msg_len = SIZE(msg) - IF (PRESENT(msglen)) msg_len = msglen -#if defined(__parallel) - BLOCK - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_all_iv' - INTEGER :: ierr - ierr = 0 - - CALL MPI_FILE_WRITE_AT_ALL(fh%handle, offset, msg, msg_len, MPI_INTEGER, MPI_STATUS_IGNORE, ierr) - IF (ierr .NE. 0) & - DBCSR_ABORT("mpi_file_write_at_all_iv @ "//routineN) - END BLOCK -#else - WRITE (UNIT=fh%handle, POS=offset + 1) msg(1:msg_len) -#endif - END SUBROUTINE mp_file_write_at_all_iv - -! ***************************************************************************** -! ***************************************************************************** - SUBROUTINE mp_file_write_at_all_i (fh, offset, msg) - INTEGER(KIND=int_4), INTENT(IN) :: msg - TYPE(mp_file_type), INTENT(IN) :: fh - INTEGER(kind=file_offset), INTENT(IN) :: offset - -#if defined(__parallel) - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_all_i' - - INTEGER :: ierr - - ierr = 0 - CALL MPI_FILE_WRITE_AT_ALL(fh%handle, offset, msg, 1, MPI_INTEGER, MPI_STATUS_IGNORE, ierr) - IF (ierr .NE. 0) & - DBCSR_ABORT("mpi_file_write_at_all_i @ "//routineN) -#else - WRITE (UNIT=fh%handle, POS=offset + 1) msg -#endif - END SUBROUTINE mp_file_write_at_all_i - -! ***************************************************************************** -! ***************************************************************************** - SUBROUTINE mp_file_read_at_all_iv(fh, offset, msg, msglen) - !! (parallel) Blocking collective file read using explicit offsets - !! (serial) Unformatted stream read - !! - !! MPI-I/O mapping mpi_file_read_at_all - !! - !! STREAM-I/O mapping READ - - INTEGER(KIND=int_4), INTENT(OUT) :: msg(:) - TYPE(mp_file_type), INTENT(IN) :: fh - INTEGER, INTENT(IN), OPTIONAL :: msglen - INTEGER(kind=file_offset), INTENT(IN) :: offset - - INTEGER :: msg_len - - msg_len = SIZE(msg) - IF (PRESENT(msglen)) msg_len = msglen -#if defined(__parallel) - BLOCK - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_read_at_all_iv' - INTEGER :: ierr - ierr = 0 - - CALL MPI_FILE_READ_AT_ALL(fh%handle, offset, msg, msg_len, MPI_INTEGER, MPI_STATUS_IGNORE, ierr) - IF (ierr .NE. 0) & - DBCSR_ABORT("mpi_file_read_at_all_iv @ "//routineN) - END BLOCK -#else - READ (UNIT=fh%handle, POS=offset + 1) msg(1:msg_len) -#endif - END SUBROUTINE mp_file_read_at_all_iv - -! ***************************************************************************** -! ***************************************************************************** - SUBROUTINE mp_file_read_at_all_i (fh, offset, msg) - INTEGER(KIND=int_4), INTENT(OUT) :: msg - TYPE(mp_file_type), INTENT(IN) :: fh - INTEGER(kind=file_offset), INTENT(IN) :: offset - -#if defined(__parallel) - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_read_at_all_i' - - INTEGER :: ierr - - ierr = 0 - CALL MPI_FILE_READ_AT_ALL(fh%handle, offset, msg, 1, MPI_INTEGER, MPI_STATUS_IGNORE, ierr) - IF (ierr .NE. 0) & - DBCSR_ABORT("mpi_file_read_at_all_i @ "//routineN) -#else - READ (UNIT=fh%handle, POS=offset + 1) msg -#endif - END SUBROUTINE mp_file_read_at_all_i - -! ***************************************************************************** -! ***************************************************************************** - FUNCTION mp_type_make_i (ptr, & - vector_descriptor, index_descriptor) & - RESULT(type_descriptor) - INTEGER(KIND=int_4), DIMENSION(:), POINTER :: ptr - INTEGER, DIMENSION(2), INTENT(IN), OPTIONAL :: vector_descriptor - TYPE(mp_indexing_meta_type), INTENT(IN), OPTIONAL :: index_descriptor - TYPE(mp_type_descriptor_type) :: type_descriptor - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_type_make_i' - - INTEGER :: ierr - - ierr = 0 - NULLIFY (type_descriptor%subtype) - type_descriptor%length = SIZE(ptr) -#if defined(__parallel) - type_descriptor%type_handle = MPI_INTEGER - CALL MPI_Get_address(ptr, type_descriptor%base, ierr) - IF (ierr /= 0) & - DBCSR_ABORT("MPI_Get_address @ "//routineN) -#else - type_descriptor%type_handle = 17 -#endif - type_descriptor%vector_descriptor(1:2) = 1 - type_descriptor%has_indexing = .FALSE. - type_descriptor%data_i => ptr - IF (PRESENT(vector_descriptor) .OR. PRESENT(index_descriptor)) THEN - DBCSR_ABORT(routineN//": Vectors and indices NYI") - END IF - END FUNCTION mp_type_make_i - -#if defined(__parallel) - SUBROUTINE mp_alloc_mem_i (DATA, len, stat) - !! Allocates an array, using MPI_ALLOC_MEM ... this is hackish - !! as the Fortran version returns an integer, which we take to be a C_PTR - - INTEGER(KIND=int_4), DIMENSION(:), POINTER, CONTIGUOUS :: DATA - !! data array to allocate - INTEGER, INTENT(IN) :: len - !! length (in data elements) of data array allocation - INTEGER, INTENT(OUT), OPTIONAL :: stat - !! allocation status result + msg_len = SIZE(msg) + IF (PRESENT(msglen)) msg_len = msglen +#if defined(__parallel) + BLOCK + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_all_iv' + INTEGER :: ierr + ierr = 0 + + CALL MPI_FILE_WRITE_AT_ALL(fh%handle, offset, msg, msg_len, MPI_INTEGER, MPI_STATUS_IGNORE, ierr) + IF (ierr .NE. 0) & + DBCSR_ABORT("mpi_file_write_at_all_iv @ "//routineN) + END BLOCK +#else + WRITE (UNIT=fh%handle, POS=offset + 1) msg(1:msg_len) +#endif + END SUBROUTINE mp_file_write_at_all_iv + +! ***************************************************************************** +! ***************************************************************************** + SUBROUTINE mp_file_write_at_all_i (fh, offset, msg) + INTEGER(KIND=int_4), INTENT(IN) :: msg + TYPE(mp_file_type), INTENT(IN) :: fh + INTEGER(kind=file_offset), INTENT(IN) :: offset + +#if defined(__parallel) + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_all_i' + + INTEGER :: ierr + + ierr = 0 + CALL MPI_FILE_WRITE_AT_ALL(fh%handle, offset, msg, 1, MPI_INTEGER, MPI_STATUS_IGNORE, ierr) + IF (ierr .NE. 0) & + DBCSR_ABORT("mpi_file_write_at_all_i @ "//routineN) +#else + WRITE (UNIT=fh%handle, POS=offset + 1) msg +#endif + END SUBROUTINE mp_file_write_at_all_i + +! ***************************************************************************** +! ***************************************************************************** + SUBROUTINE mp_file_read_at_all_iv(fh, offset, msg, msglen) + !! (parallel) Blocking collective file read using explicit offsets + !! (serial) Unformatted stream read + !! + !! MPI-I/O mapping mpi_file_read_at_all + !! + !! STREAM-I/O mapping READ + + INTEGER(KIND=int_4), INTENT(OUT) :: msg(:) + TYPE(mp_file_type), INTENT(IN) :: fh + INTEGER, INTENT(IN), OPTIONAL :: msglen + INTEGER(kind=file_offset), INTENT(IN) :: offset + + INTEGER :: msg_len + + msg_len = SIZE(msg) + IF (PRESENT(msglen)) msg_len = msglen +#if defined(__parallel) + BLOCK + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_read_at_all_iv' + INTEGER :: ierr + ierr = 0 + + CALL MPI_FILE_READ_AT_ALL(fh%handle, offset, msg, msg_len, MPI_INTEGER, MPI_STATUS_IGNORE, ierr) + IF (ierr .NE. 0) & + DBCSR_ABORT("mpi_file_read_at_all_iv @ "//routineN) + END BLOCK +#else + READ (UNIT=fh%handle, POS=offset + 1) msg(1:msg_len) +#endif + END SUBROUTINE mp_file_read_at_all_iv + +! ***************************************************************************** +! ***************************************************************************** + SUBROUTINE mp_file_read_at_all_i (fh, offset, msg) + INTEGER(KIND=int_4), INTENT(OUT) :: msg + TYPE(mp_file_type), INTENT(IN) :: fh + INTEGER(kind=file_offset), INTENT(IN) :: offset + +#if defined(__parallel) + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_read_at_all_i' + + INTEGER :: ierr + + ierr = 0 + CALL MPI_FILE_READ_AT_ALL(fh%handle, offset, msg, 1, MPI_INTEGER, MPI_STATUS_IGNORE, ierr) + IF (ierr .NE. 0) & + DBCSR_ABORT("mpi_file_read_at_all_i @ "//routineN) +#else + READ (UNIT=fh%handle, POS=offset + 1) msg +#endif + END SUBROUTINE mp_file_read_at_all_i + +! ***************************************************************************** +! ***************************************************************************** + FUNCTION mp_type_make_i (ptr, & + vector_descriptor, index_descriptor) & + RESULT(type_descriptor) + INTEGER(KIND=int_4), DIMENSION(:), POINTER :: ptr + INTEGER, DIMENSION(2), INTENT(IN), OPTIONAL :: vector_descriptor + TYPE(mp_indexing_meta_type), INTENT(IN), OPTIONAL :: index_descriptor + TYPE(mp_type_descriptor_type) :: type_descriptor + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_type_make_i' + + INTEGER :: ierr + + ierr = 0 + NULLIFY (type_descriptor%subtype) + type_descriptor%length = SIZE(ptr) +#if defined(__parallel) + type_descriptor%type_handle = MPI_INTEGER + CALL MPI_Get_address(ptr, type_descriptor%base, ierr) + IF (ierr /= 0) & + DBCSR_ABORT("MPI_Get_address @ "//routineN) +#else + type_descriptor%type_handle = 17 +#endif + type_descriptor%vector_descriptor(1:2) = 1 + type_descriptor%has_indexing = .FALSE. + type_descriptor%data_i => ptr + IF (PRESENT(vector_descriptor) .OR. PRESENT(index_descriptor)) THEN + DBCSR_ABORT(routineN//": Vectors and indices NYI") + END IF + END FUNCTION mp_type_make_i + +#if defined(__parallel) + SUBROUTINE mp_alloc_mem_i (DATA, len, stat) + !! Allocates an array, using MPI_ALLOC_MEM ... this is hackish + !! as the Fortran version returns an integer, which we take to be a C_PTR + + INTEGER(KIND=int_4), DIMENSION(:), POINTER, CONTIGUOUS :: DATA + !! data array to allocate + INTEGER, INTENT(IN) :: len + !! length (in data elements) of data array allocation + INTEGER, INTENT(OUT), OPTIONAL :: stat + !! allocation status result + + INTEGER :: size, ierr, length, & + mp_res + INTEGER(KIND=MPI_ADDRESS_KIND) :: mp_size + TYPE(C_PTR) :: mp_baseptr + MPI_INFO_TYPE :: mp_info - INTEGER :: size, ierr, length, & - mp_res - INTEGER(KIND=MPI_ADDRESS_KIND) :: mp_size - TYPE(C_PTR) :: mp_baseptr - MPI_INFO_TYPE :: mp_info - - length = MAX(len, 1) - CALL MPI_TYPE_SIZE(MPI_INTEGER, size, ierr) - mp_size = INT(length, KIND=MPI_ADDRESS_KIND)*size - IF (mp_size .GT. mp_max_memory_size) THEN - DBCSR_ABORT("MPI cannot allocate more than 2 GiByte") - END IF - mp_info = MPI_INFO_NULL - CALL MPI_ALLOC_MEM(mp_size, mp_info, mp_baseptr, mp_res) - CALL C_F_POINTER(mp_baseptr, DATA, (/length/)) - IF (PRESENT(stat)) stat = mp_res - END SUBROUTINE mp_alloc_mem_i -#endif - -#if defined(__parallel) - SUBROUTINE mp_free_mem_i (DATA, stat) - !! Deallocates am array, ... this is hackish - !! as the Fortran version takes an integer, which we hope to get by reference + length = MAX(len, 1) + CALL MPI_TYPE_SIZE(MPI_INTEGER, size, ierr) + mp_size = INT(length, KIND=MPI_ADDRESS_KIND)*size + IF (mp_size .GT. mp_max_memory_size) THEN + DBCSR_ABORT("MPI cannot allocate more than 2 GiByte") + END IF + mp_info = MPI_INFO_NULL + CALL MPI_ALLOC_MEM(mp_size, mp_info, mp_baseptr, mp_res) + CALL C_F_POINTER(mp_baseptr, DATA, (/length/)) + IF (PRESENT(stat)) stat = mp_res + END SUBROUTINE mp_alloc_mem_i +#endif + +#if defined(__parallel) + SUBROUTINE mp_free_mem_i (DATA, stat) + !! Deallocates am array, ... this is hackish + !! as the Fortran version takes an integer, which we hope to get by reference + + INTEGER(KIND=int_4), DIMENSION(:), & + POINTER, CONTIGUOUS :: DATA + !! data array to allocate + INTEGER, INTENT(OUT), OPTIONAL :: stat + !! allocation status result - INTEGER(KIND=int_4), DIMENSION(:), & - POINTER, CONTIGUOUS :: DATA - !! data array to allocate - INTEGER, INTENT(OUT), OPTIONAL :: stat - !! allocation status result + INTEGER :: mp_res + CALL MPI_FREE_MEM(DATA, mp_res) + IF (PRESENT(stat)) stat = mp_res + END SUBROUTINE mp_free_mem_i +#endif - INTEGER :: mp_res - CALL MPI_FREE_MEM(DATA, mp_res) - IF (PRESENT(stat)) stat = mp_res - END SUBROUTINE mp_free_mem_i -#endif - -# 2824 "/__w/dbcsr/dbcsr/src/mpi/dbcsr_mpiwrap.F" - SUBROUTINE mp_alltoall_l11v(sb, scount, sdispl, rb, rcount, rdispl, group) - !! All-to-all data exchange, rank-1 data of different sizes - !! - !! MPI mapping - !! mpi_alltoallv - !! - !! Array sizes - !! The scount, rcount, and the sdispl and rdispl arrays have a - !! size equal to the number of processes. - !! - !! Offsets - !! Values in sdispl and rdispl start with 0. - - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: sb(:) - !! Data to send - INTEGER, CONTIGUOUS, INTENT(IN) :: scount(:), sdispl(:) - !! Data counts for data sent to other processes - !! Respective data offsets for data sent to process - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(INOUT) :: rb(:) - !! Buffer into which to receive data - INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:), rdispl(:) - !! Data counts for data received from other processes - !! Respective data offsets for data received from other processes - TYPE(mp_comm_type), INTENT(IN) :: group - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_l11v' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen -#else - INTEGER :: i -#endif - - CALL timeset(routineN, handle) - - ierr = 0 -#if defined(__parallel) - CALL mpi_alltoallv(sb, scount, sdispl, MPI_INTEGER8, & - rb, rcount, rdispl, MPI_INTEGER8, group%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoallv @ "//routineN) - msglen = SUM(scount) + SUM(rcount) - CALL add_perf(perf_id=6, msg_size=msglen*int_8_size) -#else - MARK_USED(group) - MARK_USED(scount) - MARK_USED(sdispl) -!$OMP PARALLEL DO DEFAULT(NONE) PRIVATE(i) SHARED(rcount,rdispl,sdispl,rb,sb) - DO i = 1, rcount(1) - rb(rdispl(1) + i) = sb(sdispl(1) + i) - END DO -#endif - CALL timestop(handle) - - END SUBROUTINE mp_alltoall_l11v - - SUBROUTINE mp_alltoall_l (sb, rb, count, group) - !! All-to-all data exchange, rank 1 arrays, equal sizes - !! - !! Index meaning +# 2824 "/__w/dbcsr/dbcsr/src/mpi/dbcsr_mpiwrap.F" + SUBROUTINE mp_alltoall_l11v(sb, scount, sdispl, rb, rcount, rdispl, group) + !! All-to-all data exchange, rank-1 data of different sizes + !! + !! MPI mapping + !! mpi_alltoallv + !! + !! Array sizes + !! The scount, rcount, and the sdispl and rdispl arrays have a + !! size equal to the number of processes. + !! + !! Offsets + !! Values in sdispl and rdispl start with 0. + + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: sb(:) + !! Data to send + INTEGER, CONTIGUOUS, INTENT(IN) :: scount(:), sdispl(:) + !! Data counts for data sent to other processes + !! Respective data offsets for data sent to process + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(INOUT) :: rb(:) + !! Buffer into which to receive data + INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:), rdispl(:) + !! Data counts for data received from other processes + !! Respective data offsets for data received from other processes + TYPE(mp_comm_type), INTENT(IN) :: group + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_l11v' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen +#else + INTEGER :: i +#endif + + CALL timeset(routineN, handle) + + ierr = 0 +#if defined(__parallel) + CALL mpi_alltoallv(sb, scount, sdispl, MPI_INTEGER8, & + rb, rcount, rdispl, MPI_INTEGER8, group%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoallv @ "//routineN) + msglen = SUM(scount) + SUM(rcount) + CALL add_perf(perf_id=6, msg_size=msglen*int_8_size) +#else + MARK_USED(group) + MARK_USED(scount) + MARK_USED(sdispl) +!$OMP PARALLEL DO DEFAULT(NONE) PRIVATE(i) SHARED(rcount,rdispl,sdispl,rb,sb) + DO i = 1, rcount(1) + rb(rdispl(1) + i) = sb(sdispl(1) + i) + END DO +#endif + CALL timestop(handle) + + END SUBROUTINE mp_alltoall_l11v + + SUBROUTINE mp_alltoall_l (sb, rb, count, group) + !! All-to-all data exchange, rank 1 arrays, equal sizes + !! + !! Index meaning + !! + !! The first two indices specify the data while the last index counts + !! the processes + !! + !! Sizes of ranks + !! All processes have the same data size. !! - !! The first two indices specify the data while the last index counts - !! the processes - !! - !! Sizes of ranks - !! All processes have the same data size. - !! - !! MPI mapping - !! mpi_alltoall - - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: sb(:) - !! array with data to send - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: rb(:) - !! array into which data is received - INTEGER, INTENT(IN) :: count - !! number of elements to send/receive (product of the extents of the first two dimensions) - TYPE(mp_comm_type), INTENT(IN) :: group - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_l' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, np -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - CALL mpi_alltoall(sb, count, MPI_INTEGER8, & - rb, count, MPI_INTEGER8, group%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoall @ "//routineN) - CALL mpi_comm_size(group%handle, np, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_size @ "//routineN) - msglen = 2*count*np - CALL add_perf(perf_id=6, msg_size=msglen*int_8_size) -#else - MARK_USED(count) - MARK_USED(group) - rb = sb -#endif - CALL timestop(handle) + !! MPI mapping + !! mpi_alltoall + + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: sb(:) + !! array with data to send + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: rb(:) + !! array into which data is received + INTEGER, INTENT(IN) :: count + !! number of elements to send/receive (product of the extents of the first two dimensions) + TYPE(mp_comm_type), INTENT(IN) :: group + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_l' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, np +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + CALL mpi_alltoall(sb, count, MPI_INTEGER8, & + rb, count, MPI_INTEGER8, group%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoall @ "//routineN) + CALL mpi_comm_size(group%handle, np, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_size @ "//routineN) + msglen = 2*count*np + CALL add_perf(perf_id=6, msg_size=msglen*int_8_size) +#else + MARK_USED(count) + MARK_USED(group) + rb = sb +#endif + CALL timestop(handle) + + END SUBROUTINE mp_alltoall_l + + SUBROUTINE mp_alltoall_l22(sb, rb, count, group) + !! All-to-all data exchange, rank-2 arrays, equal sizes + !! @note see mp_alltoall_l - END SUBROUTINE mp_alltoall_l - - SUBROUTINE mp_alltoall_l22(sb, rb, count, group) - !! All-to-all data exchange, rank-2 arrays, equal sizes - !! @note see mp_alltoall_l - - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: sb(:, :) - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: rb(:, :) - INTEGER, INTENT(IN) :: count - TYPE(mp_comm_type), INTENT(IN) :: group - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_l22' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, np -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - CALL mpi_alltoall(sb, count, MPI_INTEGER8, & - rb, count, MPI_INTEGER8, group%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoall @ "//routineN) - CALL mpi_comm_size(group%handle, np, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_size @ "//routineN) - msglen = 2*SIZE(sb)*np - CALL add_perf(perf_id=6, msg_size=msglen*int_8_size) -#else - MARK_USED(count) - MARK_USED(group) - rb = sb -#endif - CALL timestop(handle) + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: sb(:, :) + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: rb(:, :) + INTEGER, INTENT(IN) :: count + TYPE(mp_comm_type), INTENT(IN) :: group + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_l22' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, np +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + CALL mpi_alltoall(sb, count, MPI_INTEGER8, & + rb, count, MPI_INTEGER8, group%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoall @ "//routineN) + CALL mpi_comm_size(group%handle, np, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_size @ "//routineN) + msglen = 2*SIZE(sb)*np + CALL add_perf(perf_id=6, msg_size=msglen*int_8_size) +#else + MARK_USED(count) + MARK_USED(group) + rb = sb +#endif + CALL timestop(handle) + + END SUBROUTINE mp_alltoall_l22 + + SUBROUTINE mp_alltoall_l44(sb, rb, count, group) + !! All-to-all data exchange, rank 4 data, equal sizes + !! @note see mp_alltoall_l - END SUBROUTINE mp_alltoall_l22 - - SUBROUTINE mp_alltoall_l44(sb, rb, count, group) - !! All-to-all data exchange, rank 4 data, equal sizes - !! @note see mp_alltoall_l - - INTEGER(KIND=int_8), DIMENSION(:, :, :, :), CONTIGUOUS, & - INTENT(IN) :: sb - INTEGER(KIND=int_8), DIMENSION(:, :, :, :), CONTIGUOUS, & - INTENT(OUT) :: rb - INTEGER, INTENT(IN) :: count - TYPE(mp_comm_type), INTENT(IN) :: group - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_l44' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, np -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - CALL mpi_alltoall(sb, count, MPI_INTEGER8, & - rb, count, MPI_INTEGER8, group%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoall @ "//routineN) - CALL mpi_comm_size(group%handle, np, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_size @ "//routineN) - msglen = 2*count*np - CALL add_perf(perf_id=6, msg_size=msglen*int_8_size) -#else - MARK_USED(count) - MARK_USED(group) - rb = sb -#endif - CALL timestop(handle) - - END SUBROUTINE mp_alltoall_l44 + INTEGER(KIND=int_8), DIMENSION(:, :, :, :), CONTIGUOUS, & + INTENT(IN) :: sb + INTEGER(KIND=int_8), DIMENSION(:, :, :, :), CONTIGUOUS, & + INTENT(OUT) :: rb + INTEGER, INTENT(IN) :: count + TYPE(mp_comm_type), INTENT(IN) :: group + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_l44' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, np +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + CALL mpi_alltoall(sb, count, MPI_INTEGER8, & + rb, count, MPI_INTEGER8, group%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoall @ "//routineN) + CALL mpi_comm_size(group%handle, np, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_size @ "//routineN) + msglen = 2*count*np + CALL add_perf(perf_id=6, msg_size=msglen*int_8_size) +#else + MARK_USED(count) + MARK_USED(group) + rb = sb +#endif + CALL timestop(handle) + + END SUBROUTINE mp_alltoall_l44 + + SUBROUTINE mp_send_l (msg, dest, tag, gid) + !! Send one datum to another process + !! + !! MPI mapping + !! mpi_send - SUBROUTINE mp_send_l (msg, dest, tag, gid) - !! Send one datum to another process - !! - !! MPI mapping - !! mpi_send - - INTEGER(KIND=int_8) :: msg - !! Scalar to send - INTEGER :: dest, tag - !! Destination process - !! Transfer identifier - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_send_l' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = 1 -#if defined(__parallel) - CALL mpi_send(msg, msglen, MPI_INTEGER8, dest, tag, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_send @ "//routineN) - CALL add_perf(perf_id=13, msg_size=msglen*int_8_size) -#else - MARK_USED(msg) - MARK_USED(dest) - MARK_USED(tag) - MARK_USED(gid) - ! only defined in parallel - DBCSR_ABORT("not in parallel mode") -#endif - CALL timestop(handle) - END SUBROUTINE mp_send_l - - SUBROUTINE mp_send_lv(msg, dest, tag, gid) - !! Send rank-1 data to another process - !! @note see mp_send_l - - INTEGER(KIND=int_8), CONTIGUOUS :: msg(:) - !! Rank-1 data to send - INTEGER :: dest, tag - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_send_lv' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_send(msg, msglen, MPI_INTEGER8, dest, tag, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_send @ "//routineN) - CALL add_perf(perf_id=13, msg_size=msglen*int_8_size) -#else - MARK_USED(msg) - MARK_USED(dest) - MARK_USED(tag) - MARK_USED(gid) - ! only defined in parallel - DBCSR_ABORT("not in parallel mode") -#endif - CALL timestop(handle) - END SUBROUTINE mp_send_lv + INTEGER(KIND=int_8) :: msg + !! Scalar to send + INTEGER :: dest, tag + !! Destination process + !! Transfer identifier + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_send_l' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_send(msg, msglen, MPI_INTEGER8, dest, tag, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_send @ "//routineN) + CALL add_perf(perf_id=13, msg_size=msglen*int_8_size) +#else + MARK_USED(msg) + MARK_USED(dest) + MARK_USED(tag) + MARK_USED(gid) + ! only defined in parallel + DBCSR_ABORT("not in parallel mode") +#endif + CALL timestop(handle) + END SUBROUTINE mp_send_l + + SUBROUTINE mp_send_lv(msg, dest, tag, gid) + !! Send rank-1 data to another process + !! @note see mp_send_l + + INTEGER(KIND=int_8), CONTIGUOUS :: msg(:) + !! Rank-1 data to send + INTEGER :: dest, tag + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_send_lv' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_send(msg, msglen, MPI_INTEGER8, dest, tag, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_send @ "//routineN) + CALL add_perf(perf_id=13, msg_size=msglen*int_8_size) +#else + MARK_USED(msg) + MARK_USED(dest) + MARK_USED(tag) + MARK_USED(gid) + ! only defined in parallel + DBCSR_ABORT("not in parallel mode") +#endif + CALL timestop(handle) + END SUBROUTINE mp_send_lv + + SUBROUTINE mp_recv_l (msg, source, tag, gid) + !! Receive one datum from another process + !! + !! MPI mapping + !! mpi_send - SUBROUTINE mp_recv_l (msg, source, tag, gid) - !! Receive one datum from another process - !! - !! MPI mapping - !! mpi_send - - INTEGER(KIND=int_8), INTENT(INOUT) :: msg - !! Place received data into this variable - INTEGER, INTENT(INOUT) :: source, tag - !! Process to receive from - !! Transfer identifier - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_recv_l' - - INTEGER :: handle, ierr, msglen -#if defined(__parallel) - MPI_STATUS_TYPE :: status -#endif - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = 1 -#if defined(__parallel) - CALL mpi_recv(msg, msglen, MPI_INTEGER8, source, tag, gid%handle, status, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_recv @ "//routineN) - CALL add_perf(perf_id=14, msg_size=msglen*int_8_size) - source = status MPI_STATUS_EXTRACT(MPI_SOURCE) - tag = status MPI_STATUS_EXTRACT(MPI_TAG) -#else - MARK_USED(msg) - MARK_USED(source) - MARK_USED(tag) - MARK_USED(gid) - ! only defined in parallel - DBCSR_ABORT("not in parallel mode") -#endif - CALL timestop(handle) - END SUBROUTINE mp_recv_l - - SUBROUTINE mp_recv_lv(msg, source, tag, gid) - !! Receive rank-1 data from another process - !! @note see mp_recv_l - - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) - !! Place received data into this rank-1 array - INTEGER, INTENT(INOUT) :: source, tag - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_recv_lv' - - INTEGER :: handle, ierr, msglen -#if defined(__parallel) - MPI_STATUS_TYPE :: status -#endif - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_recv(msg, msglen, MPI_INTEGER8, source, tag, gid%handle, status, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_recv @ "//routineN) - CALL add_perf(perf_id=14, msg_size=msglen*int_8_size) - source = status MPI_STATUS_EXTRACT(MPI_SOURCE) - tag = status MPI_STATUS_EXTRACT(MPI_TAG) -#else - MARK_USED(msg) - MARK_USED(source) - MARK_USED(tag) - MARK_USED(gid) - ! only defined in parallel - DBCSR_ABORT("not in parallel mode") -#endif - CALL timestop(handle) - END SUBROUTINE mp_recv_lv + INTEGER(KIND=int_8), INTENT(INOUT) :: msg + !! Place received data into this variable + INTEGER, INTENT(INOUT) :: source, tag + !! Process to receive from + !! Transfer identifier + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_recv_l' + + INTEGER :: handle, ierr, msglen +#if defined(__parallel) + MPI_STATUS_TYPE :: status +#endif + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_recv(msg, msglen, MPI_INTEGER8, source, tag, gid%handle, status, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_recv @ "//routineN) + CALL add_perf(perf_id=14, msg_size=msglen*int_8_size) + source = status MPI_STATUS_EXTRACT(MPI_SOURCE) + tag = status MPI_STATUS_EXTRACT(MPI_TAG) +#else + MARK_USED(msg) + MARK_USED(source) + MARK_USED(tag) + MARK_USED(gid) + ! only defined in parallel + DBCSR_ABORT("not in parallel mode") +#endif + CALL timestop(handle) + END SUBROUTINE mp_recv_l + + SUBROUTINE mp_recv_lv(msg, source, tag, gid) + !! Receive rank-1 data from another process + !! @note see mp_recv_l + + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) + !! Place received data into this rank-1 array + INTEGER, INTENT(INOUT) :: source, tag + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_recv_lv' + + INTEGER :: handle, ierr, msglen +#if defined(__parallel) + MPI_STATUS_TYPE :: status +#endif + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_recv(msg, msglen, MPI_INTEGER8, source, tag, gid%handle, status, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_recv @ "//routineN) + CALL add_perf(perf_id=14, msg_size=msglen*int_8_size) + source = status MPI_STATUS_EXTRACT(MPI_SOURCE) + tag = status MPI_STATUS_EXTRACT(MPI_TAG) +#else + MARK_USED(msg) + MARK_USED(source) + MARK_USED(tag) + MARK_USED(gid) + ! only defined in parallel + DBCSR_ABORT("not in parallel mode") +#endif + CALL timestop(handle) + END SUBROUTINE mp_recv_lv + + SUBROUTINE mp_bcast_l (msg, source, gid) + !! Broadcasts a datum to all processes. + !! + !! MPI mapping + !! mpi_bcast - SUBROUTINE mp_bcast_l (msg, source, gid) - !! Broadcasts a datum to all processes. - !! - !! MPI mapping - !! mpi_bcast - - INTEGER(KIND=int_8) :: msg - !! Datum to broadcast - INTEGER :: source - !! Processes which broadcasts - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_l' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = 1 -#if defined(__parallel) - CALL mpi_bcast(msg, msglen, MPI_INTEGER8, source, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) - CALL add_perf(perf_id=2, msg_size=msglen*int_8_size) -#else - MARK_USED(msg) - MARK_USED(source) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_bcast_l + INTEGER(KIND=int_8) :: msg + !! Datum to broadcast + INTEGER :: source + !! Processes which broadcasts + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_l' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_bcast(msg, msglen, MPI_INTEGER8, source, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) + CALL add_perf(perf_id=2, msg_size=msglen*int_8_size) +#else + MARK_USED(msg) + MARK_USED(source) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_bcast_l + + SUBROUTINE mp_ibcast_l (msg, source, gid, request) + !! Broadcasts a datum to all processes. + !! + !! MPI mapping + !! mpi_bcast - SUBROUTINE mp_ibcast_l (msg, source, gid, request) - !! Broadcasts a datum to all processes. - !! - !! MPI mapping - !! mpi_bcast - - INTEGER(KIND=int_8) :: msg - !! Datum to broadcast - INTEGER :: source - !! Processes which broadcasts - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_ibcast_l' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = 1 -#if defined(__parallel) - CALL mpi_ibcast(msg, msglen, MPI_INTEGER8, source, gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_ibcast @ "//routineN) - CALL add_perf(perf_id=22, msg_size=msglen*int_8_size) -#else - MARK_USED(msg) - MARK_USED(source) - MARK_USED(gid) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_ibcast_l - - SUBROUTINE mp_bcast_lv(msg, source, gid) - !! Broadcasts rank-1 data to all processes - !! @note see mp_bcast_l1 - - INTEGER(KIND=int_8), CONTIGUOUS :: msg(:) - !! Data to broadcast - INTEGER :: source - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_lv' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_bcast(msg, msglen, MPI_INTEGER8, source, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) - CALL add_perf(perf_id=2, msg_size=msglen*int_8_size) -#else - MARK_USED(source) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_bcast_lv - - SUBROUTINE mp_ibcast_lv(msg, source, gid, request) - !! Broadcasts rank-1 data to all processes - !! @note see mp_bcast_l1 + INTEGER(KIND=int_8) :: msg + !! Datum to broadcast + INTEGER :: source + !! Processes which broadcasts + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_ibcast_l' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_ibcast(msg, msglen, MPI_INTEGER8, source, gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_ibcast @ "//routineN) + CALL add_perf(perf_id=22, msg_size=msglen*int_8_size) +#else + MARK_USED(msg) + MARK_USED(source) + MARK_USED(gid) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_ibcast_l + + SUBROUTINE mp_bcast_lv(msg, source, gid) + !! Broadcasts rank-1 data to all processes + !! @note see mp_bcast_l1 + + INTEGER(KIND=int_8), CONTIGUOUS :: msg(:) + !! Data to broadcast + INTEGER :: source + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_lv' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_bcast(msg, msglen, MPI_INTEGER8, source, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) + CALL add_perf(perf_id=2, msg_size=msglen*int_8_size) +#else + MARK_USED(source) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_bcast_lv + + SUBROUTINE mp_ibcast_lv(msg, source, gid, request) + !! Broadcasts rank-1 data to all processes + !! @note see mp_bcast_l1 + + INTEGER(KIND=int_8), CONTIGUOUS :: msg(:) + !! Data to broadcast + INTEGER :: source + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(INOUT) :: request - INTEGER(KIND=int_8), CONTIGUOUS :: msg(:) - !! Data to broadcast - INTEGER :: source - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_ibcast_lv' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_ibcast(msg, msglen, MPI_INTEGER8, source, gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_ibcast @ "//routineN) - CALL add_perf(perf_id=22, msg_size=msglen*int_8_size) -#else - MARK_USED(source) - MARK_USED(gid) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_ibcast_lv - - SUBROUTINE mp_bcast_lm(msg, source, gid) - !! Broadcasts rank-2 data to all processes - !! @note see mp_bcast_l1 - - INTEGER(KIND=int_8), CONTIGUOUS :: msg(:, :) - !! Data to broadcast - INTEGER :: source - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_im' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_bcast(msg, msglen, MPI_INTEGER8, source, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) - CALL add_perf(perf_id=2, msg_size=msglen*int_8_size) -#else - MARK_USED(source) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_bcast_lm - - SUBROUTINE mp_bcast_l3(msg, source, gid) - !! Broadcasts rank-3 data to all processes - !! @note see mp_bcast_l1 - - INTEGER(KIND=int_8), CONTIGUOUS :: msg(:, :, :) - !! Data to broadcast - INTEGER :: source - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_l3' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_bcast(msg, msglen, MPI_INTEGER8, source, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) - CALL add_perf(perf_id=2, msg_size=msglen*int_8_size) -#else - MARK_USED(source) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_bcast_l3 + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_ibcast_lv' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_ibcast(msg, msglen, MPI_INTEGER8, source, gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_ibcast @ "//routineN) + CALL add_perf(perf_id=22, msg_size=msglen*int_8_size) +#else + MARK_USED(source) + MARK_USED(gid) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_ibcast_lv + + SUBROUTINE mp_bcast_lm(msg, source, gid) + !! Broadcasts rank-2 data to all processes + !! @note see mp_bcast_l1 + + INTEGER(KIND=int_8), CONTIGUOUS :: msg(:, :) + !! Data to broadcast + INTEGER :: source + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_im' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_bcast(msg, msglen, MPI_INTEGER8, source, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) + CALL add_perf(perf_id=2, msg_size=msglen*int_8_size) +#else + MARK_USED(source) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_bcast_lm + + SUBROUTINE mp_bcast_l3(msg, source, gid) + !! Broadcasts rank-3 data to all processes + !! @note see mp_bcast_l1 + + INTEGER(KIND=int_8), CONTIGUOUS :: msg(:, :, :) + !! Data to broadcast + INTEGER :: source + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_l3' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_bcast(msg, msglen, MPI_INTEGER8, source, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) + CALL add_perf(perf_id=2, msg_size=msglen*int_8_size) +#else + MARK_USED(source) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_bcast_l3 + + SUBROUTINE mp_sum_l (msg, gid) + !! Sums a datum from all processes with result left on all processes. + !! + !! MPI mapping + !! mpi_allreduce - SUBROUTINE mp_sum_l (msg, gid) - !! Sums a datum from all processes with result left on all processes. - !! - !! MPI mapping - !! mpi_allreduce - - INTEGER(KIND=int_8), INTENT(INOUT) :: msg - !! Datum to sum (input) and result (output) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_l' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = 1 -#if defined(__parallel) - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_INTEGER8, MPI_SUM, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - CALL add_perf(perf_id=3, msg_size=msglen*int_8_size) -#else - MARK_USED(msg) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_sum_l - - SUBROUTINE mp_sum_lv(msg, gid) - !! Element-wise sum of a rank-1 array on all processes. - !! @note see mp_sum_l + INTEGER(KIND=int_8), INTENT(INOUT) :: msg + !! Datum to sum (input) and result (output) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_l' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_INTEGER8, MPI_SUM, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + CALL add_perf(perf_id=3, msg_size=msglen*int_8_size) +#else + MARK_USED(msg) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_sum_l + + SUBROUTINE mp_sum_lv(msg, gid) + !! Element-wise sum of a rank-1 array on all processes. + !! @note see mp_sum_l + + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) + !! Vector to sum and result + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_lv' - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) - !! Vector to sum and result - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_lv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - msglen = SIZE(msg) - IF (msglen > 0) THEN - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_INTEGER8, MPI_SUM, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - END IF - CALL add_perf(perf_id=3, msg_size=msglen*int_8_size) -#else - MARK_USED(msg) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_sum_lv - - SUBROUTINE mp_isum_lv(msg, gid, request) - !! Element-wise sum of a rank-1 array on all processes. - !! @note see mp_sum_l - - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) - !! Vector to sum and result - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isum_lv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - msglen = SIZE(msg) - IF (msglen > 0) THEN - CALL mpi_iallreduce(MPI_IN_PLACE, msg, msglen, MPI_INTEGER8, MPI_SUM, gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallreduce @ "//routineN) - ELSE - request = mp_request_null - END IF - CALL add_perf(perf_id=23, msg_size=msglen*int_8_size) -#else - MARK_USED(msg) - MARK_USED(gid) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_isum_lv - - SUBROUTINE mp_sum_lm(msg, gid) - !! Element-wise sum of a rank-2 array on all processes. - !! @note see mp_sum_l + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + msglen = SIZE(msg) + IF (msglen > 0) THEN + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_INTEGER8, MPI_SUM, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + END IF + CALL add_perf(perf_id=3, msg_size=msglen*int_8_size) +#else + MARK_USED(msg) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_sum_lv + + SUBROUTINE mp_isum_lv(msg, gid, request) + !! Element-wise sum of a rank-1 array on all processes. + !! @note see mp_sum_l + + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) + !! Vector to sum and result + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isum_lv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + msglen = SIZE(msg) + IF (msglen > 0) THEN + CALL mpi_iallreduce(MPI_IN_PLACE, msg, msglen, MPI_INTEGER8, MPI_SUM, gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallreduce @ "//routineN) + ELSE + request = mp_request_null + END IF + CALL add_perf(perf_id=23, msg_size=msglen*int_8_size) +#else + MARK_USED(msg) + MARK_USED(gid) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_isum_lv + + SUBROUTINE mp_sum_lm(msg, gid) + !! Element-wise sum of a rank-2 array on all processes. + !! @note see mp_sum_l + + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(INOUT) :: msg(:, :) + !! Matrix to sum and result + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_lm' - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(INOUT) :: msg(:, :) - !! Matrix to sum and result - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_lm' + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER, PARAMETER :: max_msg = 2**25 + INTEGER :: m1, msglen, step, msglensum +#endif - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER, PARAMETER :: max_msg = 2**25 - INTEGER :: m1, msglen, step, msglensum -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - ! chunk up the call so that message sizes are limited, to avoid overflows in mpich triggered in large rpa calcs - step = MAX(1, SIZE(msg, 2)/MAX(1, SIZE(msg)/max_msg)) - msglensum = 0 - DO m1 = LBOUND(msg, 2), UBOUND(msg, 2), step - msglen = SIZE(msg, 1)*(MIN(UBOUND(msg, 2), m1 + step - 1) - m1 + 1) - msglensum = msglensum + msglen - IF (msglen > 0) THEN - CALL mpi_allreduce(MPI_IN_PLACE, msg(LBOUND(msg, 1), m1), msglen, MPI_INTEGER8, MPI_SUM, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - END IF - END DO - CALL add_perf(perf_id=3, msg_size=msglensum*int_8_size) -#else - MARK_USED(msg) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_sum_lm - - SUBROUTINE mp_sum_lm3(msg, gid) - !! Element-wise sum of a rank-3 array on all processes. - !! @note see mp_sum_l + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + ! chunk up the call so that message sizes are limited, to avoid overflows in mpich triggered in large rpa calcs + step = MAX(1, SIZE(msg, 2)/MAX(1, SIZE(msg)/max_msg)) + msglensum = 0 + DO m1 = LBOUND(msg, 2), UBOUND(msg, 2), step + msglen = SIZE(msg, 1)*(MIN(UBOUND(msg, 2), m1 + step - 1) - m1 + 1) + msglensum = msglensum + msglen + IF (msglen > 0) THEN + CALL mpi_allreduce(MPI_IN_PLACE, msg(LBOUND(msg, 1), m1), msglen, MPI_INTEGER8, MPI_SUM, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + END IF + END DO + CALL add_perf(perf_id=3, msg_size=msglensum*int_8_size) +#else + MARK_USED(msg) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_sum_lm + + SUBROUTINE mp_sum_lm3(msg, gid) + !! Element-wise sum of a rank-3 array on all processes. + !! @note see mp_sum_l + + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(INOUT) :: msg(:, :, :) + !! Array to sum and result + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_lm3' - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(INOUT) :: msg(:, :, :) - !! Array to sum and result - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_lm3' - - INTEGER :: handle, ierr, & - msglen - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - IF (msglen > 0) THEN - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_INTEGER8, MPI_SUM, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - END IF - CALL add_perf(perf_id=3, msg_size=msglen*int_8_size) -#else - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_sum_lm3 - - SUBROUTINE mp_sum_lm4(msg, gid) - !! Element-wise sum of a rank-4 array on all processes. - !! @note see mp_sum_l + INTEGER :: handle, ierr, & + msglen + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + IF (msglen > 0) THEN + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_INTEGER8, MPI_SUM, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + END IF + CALL add_perf(perf_id=3, msg_size=msglen*int_8_size) +#else + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_sum_lm3 + + SUBROUTINE mp_sum_lm4(msg, gid) + !! Element-wise sum of a rank-4 array on all processes. + !! @note see mp_sum_l + + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(INOUT) :: msg(:, :, :, :) + !! Array to sum and result + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_lm4' - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(INOUT) :: msg(:, :, :, :) - !! Array to sum and result - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_lm4' + INTEGER :: handle, ierr, & + msglen + + ierr = 0 + CALL timeset(routineN, handle) - INTEGER :: handle, ierr, & - msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - IF (msglen > 0) THEN - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_INTEGER8, MPI_SUM, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - END IF - CALL add_perf(perf_id=3, msg_size=msglen*int_8_size) -#else - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_sum_lm4 - - SUBROUTINE mp_sum_root_lv(msg, root, gid) - !! Element-wise sum of data from all processes with result left only on - !! one. - !! - !! MPI mapping - !! mpi_reduce + msglen = SIZE(msg) +#if defined(__parallel) + IF (msglen > 0) THEN + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_INTEGER8, MPI_SUM, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + END IF + CALL add_perf(perf_id=3, msg_size=msglen*int_8_size) +#else + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_sum_lm4 + + SUBROUTINE mp_sum_root_lv(msg, root, gid) + !! Element-wise sum of data from all processes with result left only on + !! one. + !! + !! MPI mapping + !! mpi_reduce + + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) + !! Vector to sum (input) and (only on process root) result (output) + INTEGER, INTENT(IN) :: root + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) - !! Vector to sum (input) and (only on process root) result (output) - INTEGER, INTENT(IN) :: root - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_root_lv' + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_root_lv' + + INTEGER :: handle, ierr, msglen +#if defined(__parallel) + INTEGER :: m1, taskid + INTEGER(KIND=int_8), ALLOCATABLE :: res(:) +#endif - INTEGER :: handle, ierr, msglen -#if defined(__parallel) - INTEGER :: m1, taskid - INTEGER(KIND=int_8), ALLOCATABLE :: res(:) -#endif - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_comm_rank(gid%handle, taskid, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_rank @ "//routineN) - IF (msglen > 0) THEN - m1 = SIZE(msg, 1) - ALLOCATE (res(m1)) - CALL mpi_reduce(msg, res, msglen, MPI_INTEGER8, MPI_SUM, & - root, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_reduce @ "//routineN) - IF (taskid == root) THEN - msg = res - END IF - DEALLOCATE (res) - END IF - CALL add_perf(perf_id=3, msg_size=msglen*int_8_size) -#else - MARK_USED(root) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_sum_root_lv - - SUBROUTINE mp_sum_root_lm(msg, root, gid) - !! Element-wise sum of data from all processes with result left only on - !! one. - !! @note see mp_sum_root_lv - - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(INOUT) :: msg(:, :) - !! Matrix to sum (input) and (only on process root) result (output) - INTEGER, INTENT(IN) :: root - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_root_rm' + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_comm_rank(gid%handle, taskid, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_rank @ "//routineN) + IF (msglen > 0) THEN + m1 = SIZE(msg, 1) + ALLOCATE (res(m1)) + CALL mpi_reduce(msg, res, msglen, MPI_INTEGER8, MPI_SUM, & + root, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_reduce @ "//routineN) + IF (taskid == root) THEN + msg = res + END IF + DEALLOCATE (res) + END IF + CALL add_perf(perf_id=3, msg_size=msglen*int_8_size) +#else + MARK_USED(root) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_sum_root_lv + + SUBROUTINE mp_sum_root_lm(msg, root, gid) + !! Element-wise sum of data from all processes with result left only on + !! one. + !! @note see mp_sum_root_lv + + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(INOUT) :: msg(:, :) + !! Matrix to sum (input) and (only on process root) result (output) + INTEGER, INTENT(IN) :: root + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_root_rm' + + INTEGER :: handle, ierr, msglen +#if defined(__parallel) + INTEGER :: m1, m2, taskid + INTEGER(KIND=int_8), ALLOCATABLE :: res(:, :) +#endif - INTEGER :: handle, ierr, msglen -#if defined(__parallel) - INTEGER :: m1, m2, taskid - INTEGER(KIND=int_8), ALLOCATABLE :: res(:, :) -#endif - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_comm_rank(gid%handle, taskid, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_rank @ "//routineN) - IF (msglen > 0) THEN - m1 = SIZE(msg, 1) - m2 = SIZE(msg, 2) - ALLOCATE (res(m1, m2)) - CALL mpi_reduce(msg, res, msglen, MPI_INTEGER8, MPI_SUM, root, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_reduce @ "//routineN) - IF (taskid == root) THEN - msg = res - END IF - DEALLOCATE (res) - END IF - CALL add_perf(perf_id=3, msg_size=msglen*int_8_size) -#else - MARK_USED(root) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_sum_root_lm - - SUBROUTINE mp_sum_partial_lm(msg, res, gid) - !! Partial sum of data from all processes with result on each process. - - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msg(:, :) - !! Matrix to sum (input) - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: res(:, :) - !! Matrix containing result (output) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_partial_lm' - - INTEGER :: handle, ierr, msglen -#if defined(__parallel) - INTEGER :: taskid -#endif - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_comm_rank(gid%handle, taskid, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_rank @ "//routineN) - IF (msglen > 0) THEN - CALL mpi_scan(msg, res, msglen, MPI_INTEGER8, MPI_SUM, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_scan @ "//routineN) - END IF - CALL add_perf(perf_id=3, msg_size=msglen*int_8_size) - ! perf_id is same as for other summation routines -#else - res = msg - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_sum_partial_lm + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_comm_rank(gid%handle, taskid, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_rank @ "//routineN) + IF (msglen > 0) THEN + m1 = SIZE(msg, 1) + m2 = SIZE(msg, 2) + ALLOCATE (res(m1, m2)) + CALL mpi_reduce(msg, res, msglen, MPI_INTEGER8, MPI_SUM, root, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_reduce @ "//routineN) + IF (taskid == root) THEN + msg = res + END IF + DEALLOCATE (res) + END IF + CALL add_perf(perf_id=3, msg_size=msglen*int_8_size) +#else + MARK_USED(root) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_sum_root_lm + + SUBROUTINE mp_sum_partial_lm(msg, res, gid) + !! Partial sum of data from all processes with result on each process. + + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msg(:, :) + !! Matrix to sum (input) + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: res(:, :) + !! Matrix containing result (output) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_partial_lm' + + INTEGER :: handle, ierr, msglen +#if defined(__parallel) + INTEGER :: taskid +#endif + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_comm_rank(gid%handle, taskid, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_rank @ "//routineN) + IF (msglen > 0) THEN + CALL mpi_scan(msg, res, msglen, MPI_INTEGER8, MPI_SUM, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_scan @ "//routineN) + END IF + CALL add_perf(perf_id=3, msg_size=msglen*int_8_size) + ! perf_id is same as for other summation routines +#else + res = msg + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_sum_partial_lm + + SUBROUTINE mp_max_l (msg, gid) + !! Finds the maximum of a datum with the result left on all processes. + !! + !! MPI mapping + !! mpi_allreduce - SUBROUTINE mp_max_l (msg, gid) - !! Finds the maximum of a datum with the result left on all processes. - !! - !! MPI mapping - !! mpi_allreduce - - INTEGER(KIND=int_8), INTENT(INOUT) :: msg - !! Find maximum among these data (input) and maximum (output) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_max_l' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = 1 -#if defined(__parallel) - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_INTEGER8, MPI_MAX, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - CALL add_perf(perf_id=3, msg_size=msglen*int_8_size) -#else - MARK_USED(msg) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_max_l - - SUBROUTINE mp_max_lv(msg, gid) - !! Finds the element-wise maximum of a vector with the result left on - !! all processes. - !! @note see mp_max_l + INTEGER(KIND=int_8), INTENT(INOUT) :: msg + !! Find maximum among these data (input) and maximum (output) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_max_l' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_INTEGER8, MPI_MAX, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + CALL add_perf(perf_id=3, msg_size=msglen*int_8_size) +#else + MARK_USED(msg) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_max_l + + SUBROUTINE mp_max_lv(msg, gid) + !! Finds the element-wise maximum of a vector with the result left on + !! all processes. + !! @note see mp_max_l + + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) + !! Find maximum among these data (input) and maximum (output) + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_max_lv' - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) - !! Find maximum among these data (input) and maximum (output) - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_max_lv' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_INTEGER8, MPI_MAX, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - CALL add_perf(perf_id=3, msg_size=msglen*int_8_size) -#else - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_max_lv + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_INTEGER8, MPI_MAX, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + CALL add_perf(perf_id=3, msg_size=msglen*int_8_size) +#else + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_max_lv + + SUBROUTINE mp_min_l (msg, gid) + !! Finds the minimum of a datum with the result left on all processes. + !! + !! MPI mapping + !! mpi_allreduce - SUBROUTINE mp_min_l (msg, gid) - !! Finds the minimum of a datum with the result left on all processes. - !! - !! MPI mapping - !! mpi_allreduce - - INTEGER(KIND=int_8), INTENT(INOUT) :: msg - !! Find minimum among these data (input) and maximum (output) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_min_l' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = 1 -#if defined(__parallel) - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_INTEGER8, MPI_MIN, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - CALL add_perf(perf_id=3, msg_size=msglen*int_8_size) -#else - MARK_USED(msg) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_min_l - - SUBROUTINE mp_min_lv(msg, gid) - !! Finds the element-wise minimum of vector with the result left on - !! all processes. - !! - !! MPI mapping - !! mpi_allreduce - !! @note see mp_min_l + INTEGER(KIND=int_8), INTENT(INOUT) :: msg + !! Find minimum among these data (input) and maximum (output) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_min_l' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_INTEGER8, MPI_MIN, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + CALL add_perf(perf_id=3, msg_size=msglen*int_8_size) +#else + MARK_USED(msg) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_min_l + + SUBROUTINE mp_min_lv(msg, gid) + !! Finds the element-wise minimum of vector with the result left on + !! all processes. + !! + !! MPI mapping + !! mpi_allreduce + !! @note see mp_min_l + + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) + !! Find minimum among these data (input) and maximum (output) + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_min_lv' - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) - !! Find minimum among these data (input) and maximum (output) - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_min_lv' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_INTEGER8, MPI_MIN, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - CALL add_perf(perf_id=3, msg_size=msglen*int_8_size) -#else - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_min_lv - - SUBROUTINE mp_prod_l (msg, gid) - !! Multiplies a set of numbers scattered across a number of processes, - !! then replicates the result. - !! - !! MPI mapping - !! mpi_allreduce - - INTEGER(KIND=int_8), INTENT(INOUT) :: msg - !! a number to multiply (input) and result (output) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_l' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = 1 -#if defined(__parallel) - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_INTEGER8, MPI_PROD, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - CALL add_perf(perf_id=3, msg_size=msglen*int_8_size) -#else - MARK_USED(msg) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_prod_l + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_INTEGER8, MPI_MIN, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + CALL add_perf(perf_id=3, msg_size=msglen*int_8_size) +#else + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_min_lv + + SUBROUTINE mp_prod_l (msg, gid) + !! Multiplies a set of numbers scattered across a number of processes, + !! then replicates the result. + !! + !! MPI mapping + !! mpi_allreduce + + INTEGER(KIND=int_8), INTENT(INOUT) :: msg + !! a number to multiply (input) and result (output) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_l' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_INTEGER8, MPI_PROD, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + CALL add_perf(perf_id=3, msg_size=msglen*int_8_size) +#else + MARK_USED(msg) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_prod_l + + SUBROUTINE mp_iscatter_l (msg_scatter, msg, root, gid, request) + !! Scatters data from one processes to all others + !! + !! MPI mapping + !! mpi_scatter - SUBROUTINE mp_iscatter_l (msg_scatter, msg, root, gid, request) - !! Scatters data from one processes to all others - !! - !! MPI mapping - !! mpi_scatter - - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msg_scatter(:) - !! Data to scatter (for root process) - INTEGER(KIND=int_8), INTENT(INOUT) :: msg - INTEGER, INTENT(IN) :: root - !! Process which scatters data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iscatter_l' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = 1 -#if defined(__parallel) - CALL mpi_iscatter(msg_scatter, msglen, MPI_INTEGER8, msg, & - msglen, MPI_INTEGER8, root, gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iscatter @ "//routineN) - CALL add_perf(perf_id=24, msg_size=1*int_8_size) -#else - MARK_USED(root) - MARK_USED(gid) - msg = msg_scatter(1) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iscatter_l + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msg_scatter(:) + !! Data to scatter (for root process) + INTEGER(KIND=int_8), INTENT(INOUT) :: msg + INTEGER, INTENT(IN) :: root + !! Process which scatters data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iscatter_l' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_iscatter(msg_scatter, msglen, MPI_INTEGER8, msg, & + msglen, MPI_INTEGER8, root, gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iscatter @ "//routineN) + CALL add_perf(perf_id=24, msg_size=1*int_8_size) +#else + MARK_USED(root) + MARK_USED(gid) + msg = msg_scatter(1) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iscatter_l + + SUBROUTINE mp_iscatter_lv2(msg_scatter, msg, root, gid, request) + !! Scatters data from one processes to all others + !! + !! MPI mapping + !! mpi_scatter - SUBROUTINE mp_iscatter_lv2(msg_scatter, msg, root, gid, request) - !! Scatters data from one processes to all others - !! - !! MPI mapping - !! mpi_scatter - - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msg_scatter(:, :) - !! Data to scatter (for root process) - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) - INTEGER, INTENT(IN) :: root - !! Process which scatters data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iscatter_lv2' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_iscatter(msg_scatter, msglen, MPI_INTEGER8, msg, & - msglen, MPI_INTEGER8, root, gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iscatter @ "//routineN) - CALL add_perf(perf_id=24, msg_size=1*int_8_size) -#else - MARK_USED(root) - MARK_USED(gid) - msg(:) = msg_scatter(:, 1) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iscatter_lv2 + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msg_scatter(:, :) + !! Data to scatter (for root process) + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) + INTEGER, INTENT(IN) :: root + !! Process which scatters data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iscatter_lv2' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_iscatter(msg_scatter, msglen, MPI_INTEGER8, msg, & + msglen, MPI_INTEGER8, root, gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iscatter @ "//routineN) + CALL add_perf(perf_id=24, msg_size=1*int_8_size) +#else + MARK_USED(root) + MARK_USED(gid) + msg(:) = msg_scatter(:, 1) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iscatter_lv2 + + SUBROUTINE mp_iscatterv_lv(msg_scatter, sendcounts, displs, msg, recvcount, root, gid, request) + !! Scatters data from one processes to all others + !! + !! MPI mapping + !! mpi_scatter - SUBROUTINE mp_iscatterv_lv(msg_scatter, sendcounts, displs, msg, recvcount, root, gid, request) - !! Scatters data from one processes to all others - !! - !! MPI mapping - !! mpi_scatter - - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msg_scatter(:) - !! Data to scatter (for root process) - INTEGER, CONTIGUOUS, INTENT(IN) :: sendcounts(:), displs(:) - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) - INTEGER, INTENT(IN) :: recvcount, root - !! Process which scatters data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iscatterv_lv' - - INTEGER :: handle, ierr - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - CALL mpi_iscatterv(msg_scatter, sendcounts, displs, MPI_INTEGER8, msg, & - recvcount, MPI_INTEGER8, root, gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iscatterv @ "//routineN) - CALL add_perf(perf_id=24, msg_size=1*int_8_size) -#else - MARK_USED(sendcounts) - MARK_USED(displs) - MARK_USED(recvcount) - MARK_USED(root) - MARK_USED(gid) - msg(1:recvcount) = msg_scatter(1 + displs(1):1 + displs(1) + sendcounts(1)) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iscatterv_lv + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msg_scatter(:) + !! Data to scatter (for root process) + INTEGER, CONTIGUOUS, INTENT(IN) :: sendcounts(:), displs(:) + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) + INTEGER, INTENT(IN) :: recvcount, root + !! Process which scatters data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iscatterv_lv' + + INTEGER :: handle, ierr + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + CALL mpi_iscatterv(msg_scatter, sendcounts, displs, MPI_INTEGER8, msg, & + recvcount, MPI_INTEGER8, root, gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iscatterv @ "//routineN) + CALL add_perf(perf_id=24, msg_size=1*int_8_size) +#else + MARK_USED(sendcounts) + MARK_USED(displs) + MARK_USED(recvcount) + MARK_USED(root) + MARK_USED(gid) + msg(1:recvcount) = msg_scatter(1 + displs(1):1 + displs(1) + sendcounts(1)) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iscatterv_lv + + SUBROUTINE mp_gather_l (msg, msg_gather, root, gid) + !! Gathers a datum from all processes to one + !! + !! MPI mapping + !! mpi_gather - SUBROUTINE mp_gather_l (msg, msg_gather, root, gid) - !! Gathers a datum from all processes to one - !! - !! MPI mapping - !! mpi_gather - - INTEGER(KIND=int_8), INTENT(IN) :: msg - !! Datum to send to root - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msg_gather(:) - !! Received data (on root) - INTEGER, INTENT(IN) :: root - !! Process which gathers the data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gather_l' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = 1 -#if defined(__parallel) - CALL mpi_gather(msg, msglen, MPI_INTEGER8, msg_gather, & - msglen, MPI_INTEGER8, root, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gather @ "//routineN) - CALL add_perf(perf_id=4, msg_size=msglen*int_8_size) -#else - MARK_USED(root) - MARK_USED(gid) - msg_gather(1) = msg -#endif - CALL timestop(handle) - END SUBROUTINE mp_gather_l - - SUBROUTINE mp_gather_lv(msg, msg_gather, root, gid) - !! Gathers data from all processes to one - !! - !! Data length - !! All data (msg) is equal-sized - !! - !! MPI mapping - !! mpi_gather - !! @note see mp_gather_l + INTEGER(KIND=int_8), INTENT(IN) :: msg + !! Datum to send to root + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msg_gather(:) + !! Received data (on root) + INTEGER, INTENT(IN) :: root + !! Process which gathers the data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gather_l' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_gather(msg, msglen, MPI_INTEGER8, msg_gather, & + msglen, MPI_INTEGER8, root, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gather @ "//routineN) + CALL add_perf(perf_id=4, msg_size=msglen*int_8_size) +#else + MARK_USED(root) + MARK_USED(gid) + msg_gather(1) = msg +#endif + CALL timestop(handle) + END SUBROUTINE mp_gather_l + + SUBROUTINE mp_gather_lv(msg, msg_gather, root, gid) + !! Gathers data from all processes to one + !! + !! Data length + !! All data (msg) is equal-sized + !! + !! MPI mapping + !! mpi_gather + !! @note see mp_gather_l + + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msg(:) + !! Datum to send to root + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msg_gather(:) + INTEGER, INTENT(IN) :: root + TYPE(mp_comm_type), INTENT(IN) :: gid - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msg(:) - !! Datum to send to root - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msg_gather(:) - INTEGER, INTENT(IN) :: root - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gather_lv' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_gather(msg, msglen, MPI_INTEGER8, msg_gather, & - msglen, MPI_INTEGER8, root, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gather @ "//routineN) - CALL add_perf(perf_id=4, msg_size=msglen*int_8_size) -#else - MARK_USED(root) - MARK_USED(gid) - msg_gather = msg -#endif - CALL timestop(handle) - END SUBROUTINE mp_gather_lv - - SUBROUTINE mp_gather_lm(msg, msg_gather, root, gid) - !! Gathers data from all processes to one - !! - !! Data length - !! All data (msg) is equal-sized - !! - !! MPI mapping - !! mpi_gather - !! @note see mp_gather_l + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gather_lv' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_gather(msg, msglen, MPI_INTEGER8, msg_gather, & + msglen, MPI_INTEGER8, root, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gather @ "//routineN) + CALL add_perf(perf_id=4, msg_size=msglen*int_8_size) +#else + MARK_USED(root) + MARK_USED(gid) + msg_gather = msg +#endif + CALL timestop(handle) + END SUBROUTINE mp_gather_lv + + SUBROUTINE mp_gather_lm(msg, msg_gather, root, gid) + !! Gathers data from all processes to one + !! + !! Data length + !! All data (msg) is equal-sized + !! + !! MPI mapping + !! mpi_gather + !! @note see mp_gather_l + + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msg(:, :) + !! Datum to send to root + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msg_gather(:, :) + INTEGER, INTENT(IN) :: root + TYPE(mp_comm_type), INTENT(IN) :: gid - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msg(:, :) - !! Datum to send to root - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msg_gather(:, :) - INTEGER, INTENT(IN) :: root - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gather_lm' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_gather(msg, msglen, MPI_INTEGER8, msg_gather, & - msglen, MPI_INTEGER8, root, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gather @ "//routineN) - CALL add_perf(perf_id=4, msg_size=msglen*int_8_size) -#else - MARK_USED(root) - MARK_USED(gid) - msg_gather = msg -#endif - CALL timestop(handle) - END SUBROUTINE mp_gather_lm - - SUBROUTINE mp_gatherv_lv(sendbuf, recvbuf, recvcounts, displs, root, comm) - !! Gathers data from all processes to one. + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gather_lm' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_gather(msg, msglen, MPI_INTEGER8, msg_gather, & + msglen, MPI_INTEGER8, root, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gather @ "//routineN) + CALL add_perf(perf_id=4, msg_size=msglen*int_8_size) +#else + MARK_USED(root) + MARK_USED(gid) + msg_gather = msg +#endif + CALL timestop(handle) + END SUBROUTINE mp_gather_lm + + SUBROUTINE mp_gatherv_lv(sendbuf, recvbuf, recvcounts, displs, root, comm) + !! Gathers data from all processes to one. + !! + !! Data length + !! Data can have different lengths + !! + !! Offsets + !! Offsets start at 0 !! - !! Data length - !! Data can have different lengths - !! - !! Offsets - !! Offsets start at 0 - !! - !! MPI mapping - !! mpi_gather - - INTEGER(KIND=int_8), DIMENSION(:), CONTIGUOUS, INTENT(IN) :: sendbuf - !! Data to send to root - INTEGER(KIND=int_8), DIMENSION(:), CONTIGUOUS, INTENT(OUT) :: recvbuf - !! Received data (on root) - INTEGER, DIMENSION(:), CONTIGUOUS, INTENT(IN) :: recvcounts, displs - !! Sizes of data received from processes - !! Offsets of data received from processes - INTEGER, INTENT(IN) :: root - !! Process which gathers the data - TYPE(mp_comm_type), INTENT(IN) :: comm - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gatherv_lv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: sendcount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - sendcount = SIZE(sendbuf) - CALL mpi_gatherv(sendbuf, sendcount, MPI_INTEGER8, & - recvbuf, recvcounts, displs, MPI_INTEGER8, & - root, comm%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gatherv @ "//routineN) - CALL add_perf(perf_id=4, & - msg_size=sendcount*int_8_size) -#else - MARK_USED(recvcounts) - MARK_USED(root) - MARK_USED(comm) - recvbuf(1 + displs(1):) = sendbuf -#endif - CALL timestop(handle) - END SUBROUTINE mp_gatherv_lv - - SUBROUTINE mp_allgather_l (msgout, msgin, gid) - !! Gathers a datum from all processes and all processes receive the - !! same data - !! - !! Data size - !! All processes send equal-sized data - !! - !! MPI mapping - !! mpi_allgather - - INTEGER(KIND=int_8), INTENT(IN) :: msgout - !! Datum to send - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) - !! Received data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_l' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = 1 - rcount = 1 - CALL MPI_ALLGATHER(msgout, scount, MPI_INTEGER8, & - msgin, rcount, MPI_INTEGER8, & - gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) -#else - MARK_USED(gid) - msgin = msgout -#endif - CALL timestop(handle) - END SUBROUTINE mp_allgather_l - - SUBROUTINE mp_allgather_l2(msgout, msgin, gid) - !! Gathers a datum from all processes and all processes receive the - !! same data - !! - !! Data size - !! All processes send equal-sized data - !! - !! MPI mapping - !! mpi_allgather - - INTEGER(KIND=int_8), INTENT(IN) :: msgout - !! Datum to send - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) - !! Received data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_l2' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = 1 - rcount = 1 - CALL MPI_ALLGATHER(msgout, scount, MPI_INTEGER8, & - msgin, rcount, MPI_INTEGER8, & - gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) -#else - MARK_USED(gid) - msgin = msgout -#endif - CALL timestop(handle) - END SUBROUTINE mp_allgather_l2 - - SUBROUTINE mp_iallgather_l (msgout, msgin, gid, request) - !! Gathers a datum from all processes and all processes receive the - !! same data - !! - !! Data size - !! All processes send equal-sized data - !! - !! MPI mapping - !! mpi_allgather - - INTEGER(KIND=int_8), INTENT(IN) :: msgout - !! Datum to send - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) - !! Received data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_l' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = 1 - rcount = 1 - CALL MPI_IALLGATHER(msgout, scount, MPI_INTEGER8, & - msgin, rcount, MPI_INTEGER8, & - gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) -#else - MARK_USED(gid) - msgin = msgout - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgather_l - - SUBROUTINE mp_allgather_l12(msgout, msgin, gid) - !! Gathers vector data from all processes and all processes receive the - !! same data + !! MPI mapping + !! mpi_gather + + INTEGER(KIND=int_8), DIMENSION(:), CONTIGUOUS, INTENT(IN) :: sendbuf + !! Data to send to root + INTEGER(KIND=int_8), DIMENSION(:), CONTIGUOUS, INTENT(OUT) :: recvbuf + !! Received data (on root) + INTEGER, DIMENSION(:), CONTIGUOUS, INTENT(IN) :: recvcounts, displs + !! Sizes of data received from processes + !! Offsets of data received from processes + INTEGER, INTENT(IN) :: root + !! Process which gathers the data + TYPE(mp_comm_type), INTENT(IN) :: comm + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gatherv_lv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: sendcount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + sendcount = SIZE(sendbuf) + CALL mpi_gatherv(sendbuf, sendcount, MPI_INTEGER8, & + recvbuf, recvcounts, displs, MPI_INTEGER8, & + root, comm%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gatherv @ "//routineN) + CALL add_perf(perf_id=4, & + msg_size=sendcount*int_8_size) +#else + MARK_USED(recvcounts) + MARK_USED(root) + MARK_USED(comm) + recvbuf(1 + displs(1):) = sendbuf +#endif + CALL timestop(handle) + END SUBROUTINE mp_gatherv_lv + + SUBROUTINE mp_allgather_l (msgout, msgin, gid) + !! Gathers a datum from all processes and all processes receive the + !! same data + !! + !! Data size + !! All processes send equal-sized data + !! + !! MPI mapping + !! mpi_allgather + + INTEGER(KIND=int_8), INTENT(IN) :: msgout + !! Datum to send + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) + !! Received data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_l' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = 1 + rcount = 1 + CALL MPI_ALLGATHER(msgout, scount, MPI_INTEGER8, & + msgin, rcount, MPI_INTEGER8, & + gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) +#else + MARK_USED(gid) + msgin = msgout +#endif + CALL timestop(handle) + END SUBROUTINE mp_allgather_l + + SUBROUTINE mp_allgather_l2(msgout, msgin, gid) + !! Gathers a datum from all processes and all processes receive the + !! same data + !! + !! Data size + !! All processes send equal-sized data + !! + !! MPI mapping + !! mpi_allgather + + INTEGER(KIND=int_8), INTENT(IN) :: msgout + !! Datum to send + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) + !! Received data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_l2' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = 1 + rcount = 1 + CALL MPI_ALLGATHER(msgout, scount, MPI_INTEGER8, & + msgin, rcount, MPI_INTEGER8, & + gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) +#else + MARK_USED(gid) + msgin = msgout +#endif + CALL timestop(handle) + END SUBROUTINE mp_allgather_l2 + + SUBROUTINE mp_iallgather_l (msgout, msgin, gid, request) + !! Gathers a datum from all processes and all processes receive the + !! same data + !! + !! Data size + !! All processes send equal-sized data + !! + !! MPI mapping + !! mpi_allgather + + INTEGER(KIND=int_8), INTENT(IN) :: msgout + !! Datum to send + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) + !! Received data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_l' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = 1 + rcount = 1 + CALL MPI_IALLGATHER(msgout, scount, MPI_INTEGER8, & + msgin, rcount, MPI_INTEGER8, & + gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) +#else + MARK_USED(gid) + msgin = msgout + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgather_l + + SUBROUTINE mp_allgather_l12(msgout, msgin, gid) + !! Gathers vector data from all processes and all processes receive the + !! same data + !! + !! Data size + !! All processes send equal-sized data + !! + !! Ranks + !! The last rank counts the processes !! - !! Data size - !! All processes send equal-sized data - !! - !! Ranks - !! The last rank counts the processes - !! - !! MPI mapping - !! mpi_allgather - - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msgout(:) - !! Rank-1 data to send - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) - !! Received data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_l12' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:)) - rcount = scount - CALL MPI_ALLGATHER(msgout, scount, MPI_INTEGER8, & - msgin, rcount, MPI_INTEGER8, & - gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, 1) = msgout(:) -#endif - CALL timestop(handle) - END SUBROUTINE mp_allgather_l12 - - SUBROUTINE mp_allgather_l23(msgout, msgin, gid) - !! Gathers matrix data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_l12 - - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msgout(:, :) - !! Rank-2 data to send - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :) - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_l23' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:, :)) - rcount = scount - CALL MPI_ALLGATHER(msgout, scount, MPI_INTEGER8, & - msgin, rcount, MPI_INTEGER8, & - gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, :, 1) = msgout(:, :) -#endif - CALL timestop(handle) - END SUBROUTINE mp_allgather_l23 - - SUBROUTINE mp_allgather_l34(msgout, msgin, gid) - !! Gathers rank-3 data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_l12 - - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msgout(:, :, :) - !! Rank-3 data to send - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :, :) - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_l34' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:, :, :)) - rcount = scount - CALL MPI_ALLGATHER(msgout, scount, MPI_INTEGER8, & - msgin, rcount, MPI_INTEGER8, & - gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, :, :, 1) = msgout(:, :, :) -#endif - CALL timestop(handle) - END SUBROUTINE mp_allgather_l34 - - SUBROUTINE mp_allgather_l22(msgout, msgin, gid) - !! Gathers rank-2 data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_l12 - - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msgout(:, :) - !! Rank-2 data to send - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_l22' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:, :)) - rcount = scount - CALL MPI_ALLGATHER(msgout, scount, MPI_INTEGER8, & - msgin, rcount, MPI_INTEGER8, & - gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, :) = msgout(:, :) -#endif - CALL timestop(handle) - END SUBROUTINE mp_allgather_l22 - - SUBROUTINE mp_iallgather_l11(msgout, msgin, gid, request) - !! Gathers rank-1 data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_l11 + !! MPI mapping + !! mpi_allgather + + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msgout(:) + !! Rank-1 data to send + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) + !! Received data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_l12' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:)) + rcount = scount + CALL MPI_ALLGATHER(msgout, scount, MPI_INTEGER8, & + msgin, rcount, MPI_INTEGER8, & + gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, 1) = msgout(:) +#endif + CALL timestop(handle) + END SUBROUTINE mp_allgather_l12 + + SUBROUTINE mp_allgather_l23(msgout, msgin, gid) + !! Gathers matrix data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_l12 + + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msgout(:, :) + !! Rank-2 data to send + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :) + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_l23' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:, :)) + rcount = scount + CALL MPI_ALLGATHER(msgout, scount, MPI_INTEGER8, & + msgin, rcount, MPI_INTEGER8, & + gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, :, 1) = msgout(:, :) +#endif + CALL timestop(handle) + END SUBROUTINE mp_allgather_l23 + + SUBROUTINE mp_allgather_l34(msgout, msgin, gid) + !! Gathers rank-3 data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_l12 + + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msgout(:, :, :) + !! Rank-3 data to send + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :, :) + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_l34' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:, :, :)) + rcount = scount + CALL MPI_ALLGATHER(msgout, scount, MPI_INTEGER8, & + msgin, rcount, MPI_INTEGER8, & + gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, :, :, 1) = msgout(:, :, :) +#endif + CALL timestop(handle) + END SUBROUTINE mp_allgather_l34 + + SUBROUTINE mp_allgather_l22(msgout, msgin, gid) + !! Gathers rank-2 data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_l12 + + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msgout(:, :) + !! Rank-2 data to send + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_l22' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:, :)) + rcount = scount + CALL MPI_ALLGATHER(msgout, scount, MPI_INTEGER8, & + msgin, rcount, MPI_INTEGER8, & + gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, :) = msgout(:, :) +#endif + CALL timestop(handle) + END SUBROUTINE mp_allgather_l22 + + SUBROUTINE mp_iallgather_l11(msgout, msgin, gid, request) + !! Gathers rank-1 data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_l11 + + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msgout(:) + !! Rank-1 data to send + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(OUT) :: request - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msgout(:) - !! Rank-1 data to send - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(OUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_l11' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:)) - rcount = scount - CALL MPI_IALLGATHER(msgout, scount, MPI_INTEGER8, & - msgin, rcount, MPI_INTEGER8, & - gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) -#else - MARK_USED(gid) - msgin = msgout - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgather_l11 - - SUBROUTINE mp_iallgather_l13(msgout, msgin, gid, request) - !! Gathers rank-2 data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_l12 + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_l11' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:)) + rcount = scount + CALL MPI_IALLGATHER(msgout, scount, MPI_INTEGER8, & + msgin, rcount, MPI_INTEGER8, & + gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) +#else + MARK_USED(gid) + msgin = msgout + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgather_l11 + + SUBROUTINE mp_iallgather_l13(msgout, msgin, gid, request) + !! Gathers rank-2 data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_l12 + + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msgout(:) + !! Rank-2 data to send + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :) + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(OUT) :: request - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msgout(:) - !! Rank-2 data to send - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :) - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(OUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_l13' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:)) - rcount = scount - CALL MPI_IALLGATHER(msgout, scount, MPI_INTEGER8, & - msgin, rcount, MPI_INTEGER8, & - gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, 1, 1) = msgout(:) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgather_l13 - - SUBROUTINE mp_iallgather_l22(msgout, msgin, gid, request) - !! Gathers rank-2 data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_l12 + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_l13' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:)) + rcount = scount + CALL MPI_IALLGATHER(msgout, scount, MPI_INTEGER8, & + msgin, rcount, MPI_INTEGER8, & + gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, 1, 1) = msgout(:) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgather_l13 + + SUBROUTINE mp_iallgather_l22(msgout, msgin, gid, request) + !! Gathers rank-2 data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_l12 + + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msgout(:, :) + !! Rank-2 data to send + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(OUT) :: request - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msgout(:, :) - !! Rank-2 data to send - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(OUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_l22' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:, :)) - rcount = scount - CALL MPI_IALLGATHER(msgout, scount, MPI_INTEGER8, & - msgin, rcount, MPI_INTEGER8, & - gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, :) = msgout(:, :) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgather_l22 - - SUBROUTINE mp_iallgather_l24(msgout, msgin, gid, request) - !! Gathers rank-2 data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_l12 + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_l22' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:, :)) + rcount = scount + CALL MPI_IALLGATHER(msgout, scount, MPI_INTEGER8, & + msgin, rcount, MPI_INTEGER8, & + gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, :) = msgout(:, :) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgather_l22 + + SUBROUTINE mp_iallgather_l24(msgout, msgin, gid, request) + !! Gathers rank-2 data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_l12 + + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msgout(:, :) + !! Rank-2 data to send + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :, :) + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(OUT) :: request - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msgout(:, :) - !! Rank-2 data to send - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :, :) - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(OUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_l24' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:, :)) - rcount = scount - CALL MPI_IALLGATHER(msgout, scount, MPI_INTEGER8, & - msgin, rcount, MPI_INTEGER8, & - gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, :, 1, 1) = msgout(:, :) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgather_l24 - - SUBROUTINE mp_iallgather_l33(msgout, msgin, gid, request) - !! Gathers rank-3 data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_l12 + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_l24' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:, :)) + rcount = scount + CALL MPI_IALLGATHER(msgout, scount, MPI_INTEGER8, & + msgin, rcount, MPI_INTEGER8, & + gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, :, 1, 1) = msgout(:, :) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgather_l24 + + SUBROUTINE mp_iallgather_l33(msgout, msgin, gid, request) + !! Gathers rank-3 data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_l12 + + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msgout(:, :, :) + !! Rank-3 data to send + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :) + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(OUT) :: request - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msgout(:, :, :) - !! Rank-3 data to send - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :) - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(OUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_l33' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:, :, :)) - rcount = scount - CALL MPI_IALLGATHER(msgout, scount, MPI_INTEGER8, & - msgin, rcount, MPI_INTEGER8, & - gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, :, :) = msgout(:, :, :) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgather_l33 - - SUBROUTINE mp_allgatherv_lv(msgout, msgin, rcount, rdispl, gid) - !! Gathers vector data from all processes and all processes receive the - !! same data + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_l33' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:, :, :)) + rcount = scount + CALL MPI_IALLGATHER(msgout, scount, MPI_INTEGER8, & + msgin, rcount, MPI_INTEGER8, & + gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, :, :) = msgout(:, :, :) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgather_l33 + + SUBROUTINE mp_allgatherv_lv(msgout, msgin, rcount, rdispl, gid) + !! Gathers vector data from all processes and all processes receive the + !! same data + !! + !! Data size + !! Processes can send different-sized data + !! + !! Ranks + !! The last rank counts the processes !! - !! Data size - !! Processes can send different-sized data + !! Offsets + !! Offsets are from 0 !! - !! Ranks - !! The last rank counts the processes - !! - !! Offsets - !! Offsets are from 0 - !! - !! MPI mapping - !! mpi_allgather - - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msgout(:) - !! Rank-1 data to send - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) - !! Received data - INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:), rdispl(:) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Size of sent data for every process - !! Offset of sent data for every process - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgatherv_lv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout) - CALL MPI_ALLGATHERV(msgout, scount, MPI_INTEGER8, msgin, rcount, & - rdispl, MPI_INTEGER8, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgatherv @ "//routineN) -#else - MARK_USED(rcount) - MARK_USED(rdispl) - MARK_USED(gid) - msgin = msgout -#endif - CALL timestop(handle) - END SUBROUTINE mp_allgatherv_lv - - SUBROUTINE mp_iallgatherv_lv(msgout, msgin, rcount, rdispl, gid, request) - !! Gathers vector data from all processes and all processes receive the - !! same data + !! MPI mapping + !! mpi_allgather + + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msgout(:) + !! Rank-1 data to send + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) + !! Received data + INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:), rdispl(:) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Size of sent data for every process + !! Offset of sent data for every process + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgatherv_lv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout) + CALL MPI_ALLGATHERV(msgout, scount, MPI_INTEGER8, msgin, rcount, & + rdispl, MPI_INTEGER8, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgatherv @ "//routineN) +#else + MARK_USED(rcount) + MARK_USED(rdispl) + MARK_USED(gid) + msgin = msgout +#endif + CALL timestop(handle) + END SUBROUTINE mp_allgatherv_lv + + SUBROUTINE mp_iallgatherv_lv(msgout, msgin, rcount, rdispl, gid, request) + !! Gathers vector data from all processes and all processes receive the + !! same data + !! + !! Data size + !! Processes can send different-sized data + !! + !! Ranks + !! The last rank counts the processes !! - !! Data size - !! Processes can send different-sized data + !! Offsets + !! Offsets are from 0 !! - !! Ranks - !! The last rank counts the processes - !! - !! Offsets - !! Offsets are from 0 - !! - !! MPI mapping - !! mpi_allgather - - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msgout(:) - !! Rank-1 data to send - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) - !! Received data - INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:), rdispl(:) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Size of sent data for every process - !! Offset of sent data for every process - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgatherv_lv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: scount, rsize -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout) - rsize = SIZE(rcount) - CALL mp_iallgatherv_lv_internal(msgout, scount, msgin, rsize, rcount, & - rdispl, gid, request, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgatherv @ "//routineN) -#else - MARK_USED(rcount) - MARK_USED(rdispl) - MARK_USED(gid) - msgin = msgout - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgatherv_lv - - SUBROUTINE mp_iallgatherv_lv2(msgout, msgin, rcount, rdispl, gid, request) - !! Gathers vector data from all processes and all processes receive the - !! same data + !! MPI mapping + !! mpi_allgather + + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msgout(:) + !! Rank-1 data to send + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) + !! Received data + INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:), rdispl(:) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Size of sent data for every process + !! Offset of sent data for every process + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgatherv_lv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: scount, rsize +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout) + rsize = SIZE(rcount) + CALL mp_iallgatherv_lv_internal(msgout, scount, msgin, rsize, rcount, & + rdispl, gid, request, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgatherv @ "//routineN) +#else + MARK_USED(rcount) + MARK_USED(rdispl) + MARK_USED(gid) + msgin = msgout + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgatherv_lv + + SUBROUTINE mp_iallgatherv_lv2(msgout, msgin, rcount, rdispl, gid, request) + !! Gathers vector data from all processes and all processes receive the + !! same data + !! + !! Data size + !! Processes can send different-sized data + !! + !! Ranks + !! The last rank counts the processes !! - !! Data size - !! Processes can send different-sized data + !! Offsets + !! Offsets are from 0 !! - !! Ranks - !! The last rank counts the processes - !! - !! Offsets - !! Offsets are from 0 - !! - !! MPI mapping - !! mpi_allgather - - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msgout(:) - !! Rank-1 data to send - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) - !! Received data - INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:, :), rdispl(:, :) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Size of sent data for every process - !! Offset of sent data for every process - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgatherv_lv2' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: scount, rsize -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout) - rsize = SIZE(rcount) - CALL mp_iallgatherv_lv_internal(msgout, scount, msgin, rsize, rcount, & - rdispl, gid, request, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgatherv @ "//routineN) -#else - MARK_USED(rcount) - MARK_USED(rdispl) - MARK_USED(gid) - msgin = msgout - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgatherv_lv2 - -#if defined(__parallel) - SUBROUTINE mp_iallgatherv_lv_internal(msgout, scount, msgin, rsize, rcount, rdispl, gid, request, ierr) - !! wrapper needed to deal with interfaces as present in openmpi 1.8.1 - !! the issue is with the rank of rcount and rdispl - - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msgout(:) - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) - INTEGER, INTENT(IN) :: rsize - INTEGER, INTENT(IN) :: rcount(rsize), rdispl(rsize), scount - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(INOUT) :: request - INTEGER, INTENT(INOUT) :: ierr + !! MPI mapping + !! mpi_allgather + + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msgout(:) + !! Rank-1 data to send + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) + !! Received data + INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:, :), rdispl(:, :) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Size of sent data for every process + !! Offset of sent data for every process + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgatherv_lv2' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: scount, rsize +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout) + rsize = SIZE(rcount) + CALL mp_iallgatherv_lv_internal(msgout, scount, msgin, rsize, rcount, & + rdispl, gid, request, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgatherv @ "//routineN) +#else + MARK_USED(rcount) + MARK_USED(rdispl) + MARK_USED(gid) + msgin = msgout + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgatherv_lv2 + +#if defined(__parallel) + SUBROUTINE mp_iallgatherv_lv_internal(msgout, scount, msgin, rsize, rcount, rdispl, gid, request, ierr) + !! wrapper needed to deal with interfaces as present in openmpi 1.8.1 + !! the issue is with the rank of rcount and rdispl + + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msgout(:) + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) + INTEGER, INTENT(IN) :: rsize + INTEGER, INTENT(IN) :: rcount(rsize), rdispl(rsize), scount + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(INOUT) :: request + INTEGER, INTENT(INOUT) :: ierr + + CALL MPI_IALLGATHERV(msgout, scount, MPI_INTEGER8, msgin, rcount, & + rdispl, MPI_INTEGER8, gid%handle, request%handle, ierr) + + END SUBROUTINE mp_iallgatherv_lv_internal +#endif - CALL MPI_IALLGATHERV(msgout, scount, MPI_INTEGER8, msgin, rcount, & - rdispl, MPI_INTEGER8, gid%handle, request%handle, ierr) + SUBROUTINE mp_sendrecv_lv(msgin, dest, msgout, source, comm) + !! Sends and receives vector data - END SUBROUTINE mp_iallgatherv_lv_internal -#endif - - SUBROUTINE mp_sendrecv_lv(msgin, dest, msgout, source, comm) - !! Sends and receives vector data - - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msgin(:) - !! Data to send - INTEGER, INTENT(IN) :: dest - !! Process to send data to - INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msgout(:) - !! Received data - INTEGER, INTENT(IN) :: source - !! Process from which to receive - TYPE(mp_comm_type), INTENT(IN) :: comm - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sendrecv_lv' + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(IN) :: msgin(:) + !! Data to send + INTEGER, INTENT(IN) :: dest + !! Process to send data to + INTEGER(KIND=int_8), CONTIGUOUS, INTENT(OUT) :: msgout(:) + !! Received data + INTEGER, INTENT(IN) :: source + !! Process from which to receive + TYPE(mp_comm_type), INTENT(IN) :: comm + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sendrecv_lv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen_in, msglen_out, & + recv_tag, send_tag +#endif - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen_in, msglen_out, & - recv_tag, send_tag -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - msglen_in = SIZE(msgin) - msglen_out = SIZE(msgout) - send_tag = 0 ! cannot think of something better here, this might be dangerous - recv_tag = 0 ! cannot think of something better here, this might be dangerous - CALL mpi_sendrecv(msgin, msglen_in, MPI_INTEGER8, dest, send_tag, msgout, & - msglen_out, MPI_INTEGER8, source, recv_tag, comm%handle, MPI_STATUS_IGNORE, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_sendrecv @ "//routineN) - CALL add_perf(perf_id=7, & - msg_size=(msglen_in + msglen_out)*int_8_size/2) -#else - MARK_USED(dest) - MARK_USED(source) - MARK_USED(comm) - msgout = msgin -#endif - CALL timestop(handle) - END SUBROUTINE mp_sendrecv_lv - - SUBROUTINE mp_isendrecv_l (msgin, dest, msgout, source, comm, send_request, & - recv_request, tag) - !! Non-blocking send and receive of a scalar - !! - !! Implementation - !! Calls mpi_isend and mpi_irecv. - - INTEGER(KIND=int_8) :: msgin - !! Scalar data to send - INTEGER, INTENT(IN) :: dest - !! Which process to send to - INTEGER(KIND=int_8) :: msgout - !! Receive data into this pointer - INTEGER, INTENT(IN) :: source - !! Process to receive from - TYPE(mp_comm_type), INTENT(IN) :: comm - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(out) :: send_request, recv_request - !! Request handle for the send - !! Request handle for the receive - INTEGER, INTENT(in), OPTIONAL :: tag - !! tag to differentiate requests - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isendrecv_l' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: my_tag -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - my_tag = 0 - IF (PRESENT(tag)) my_tag = tag - - CALL mpi_irecv(msgout, 1, MPI_INTEGER8, source, my_tag, & - comm%handle, recv_request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) - - CALL mpi_isend(msgin, 1, MPI_INTEGER8, dest, my_tag, & - comm%handle, send_request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) - - CALL add_perf(perf_id=8, msg_size=2*int_8_size) -#else - MARK_USED(dest) - MARK_USED(source) - MARK_USED(comm) - MARK_USED(tag) - send_request = mp_request_null - recv_request = mp_request_null - msgout = msgin -#endif - CALL timestop(handle) - END SUBROUTINE mp_isendrecv_l - - SUBROUTINE mp_isendrecv_lv(msgin, dest, msgout, source, comm, send_request, & - recv_request, tag) - !! Non-blocking send and receive of a vector - !! - !! Implementation - !! Calls mpi_isend and mpi_irecv. - !! @note - !! arrays can be pointers or assumed shape, but they must be contiguous! - - INTEGER(KIND=int_8), CONTIGUOUS, DIMENSION(:) :: msgin - !! Vector data to send - INTEGER, INTENT(IN) :: dest - !! Which process to send to - INTEGER(KIND=int_8), CONTIGUOUS, DIMENSION(:) :: msgout - !! Receive data into this pointer - INTEGER, INTENT(IN) :: source - !! Process to receive from - TYPE(mp_comm_type), INTENT(IN) :: comm - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(out) :: send_request, recv_request - !! Request handle for the send - !! Request handle for the receive - INTEGER, INTENT(in), OPTIONAL :: tag - !! tag to differentiate requests - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isendrecv_lv' + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + msglen_in = SIZE(msgin) + msglen_out = SIZE(msgout) + send_tag = 0 ! cannot think of something better here, this might be dangerous + recv_tag = 0 ! cannot think of something better here, this might be dangerous + CALL mpi_sendrecv(msgin, msglen_in, MPI_INTEGER8, dest, send_tag, msgout, & + msglen_out, MPI_INTEGER8, source, recv_tag, comm%handle, MPI_STATUS_IGNORE, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_sendrecv @ "//routineN) + CALL add_perf(perf_id=7, & + msg_size=(msglen_in + msglen_out)*int_8_size/2) +#else + MARK_USED(dest) + MARK_USED(source) + MARK_USED(comm) + msgout = msgin +#endif + CALL timestop(handle) + END SUBROUTINE mp_sendrecv_lv + + SUBROUTINE mp_isendrecv_l (msgin, dest, msgout, source, comm, send_request, & + recv_request, tag) + !! Non-blocking send and receive of a scalar + !! + !! Implementation + !! Calls mpi_isend and mpi_irecv. + + INTEGER(KIND=int_8) :: msgin + !! Scalar data to send + INTEGER, INTENT(IN) :: dest + !! Which process to send to + INTEGER(KIND=int_8) :: msgout + !! Receive data into this pointer + INTEGER, INTENT(IN) :: source + !! Process to receive from + TYPE(mp_comm_type), INTENT(IN) :: comm + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(out) :: send_request, recv_request + !! Request handle for the send + !! Request handle for the receive + INTEGER, INTENT(in), OPTIONAL :: tag + !! tag to differentiate requests + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isendrecv_l' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: my_tag +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + my_tag = 0 + IF (PRESENT(tag)) my_tag = tag + + CALL mpi_irecv(msgout, 1, MPI_INTEGER8, source, my_tag, & + comm%handle, recv_request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) + + CALL mpi_isend(msgin, 1, MPI_INTEGER8, dest, my_tag, & + comm%handle, send_request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) + + CALL add_perf(perf_id=8, msg_size=2*int_8_size) +#else + MARK_USED(dest) + MARK_USED(source) + MARK_USED(comm) + MARK_USED(tag) + send_request = mp_request_null + recv_request = mp_request_null + msgout = msgin +#endif + CALL timestop(handle) + END SUBROUTINE mp_isendrecv_l + + SUBROUTINE mp_isendrecv_lv(msgin, dest, msgout, source, comm, send_request, & + recv_request, tag) + !! Non-blocking send and receive of a vector + !! + !! Implementation + !! Calls mpi_isend and mpi_irecv. + !! @note + !! arrays can be pointers or assumed shape, but they must be contiguous! + + INTEGER(KIND=int_8), CONTIGUOUS, DIMENSION(:) :: msgin + !! Vector data to send + INTEGER, INTENT(IN) :: dest + !! Which process to send to + INTEGER(KIND=int_8), CONTIGUOUS, DIMENSION(:) :: msgout + !! Receive data into this pointer + INTEGER, INTENT(IN) :: source + !! Process to receive from + TYPE(mp_comm_type), INTENT(IN) :: comm + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(out) :: send_request, recv_request + !! Request handle for the send + !! Request handle for the receive + INTEGER, INTENT(in), OPTIONAL :: tag + !! tag to differentiate requests + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isendrecv_lv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, my_tag + INTEGER(KIND=int_8) :: foo +#endif - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, my_tag - INTEGER(KIND=int_8) :: foo -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - my_tag = 0 - IF (PRESENT(tag)) my_tag = tag - - msglen = SIZE(msgout, 1) - IF (msglen > 0) THEN - CALL mpi_irecv(msgout, msglen, MPI_INTEGER8, source, my_tag, & - comm%handle, recv_request%handle, ierr) - ELSE - CALL mpi_irecv(foo, msglen, MPI_INTEGER8, source, my_tag, & - comm%handle, recv_request%handle, ierr) - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) - - msglen = SIZE(msgin, 1) - IF (msglen > 0) THEN - CALL mpi_isend(msgin, msglen, MPI_INTEGER8, dest, my_tag, & - comm%handle, send_request%handle, ierr) - ELSE - CALL mpi_isend(foo, msglen, MPI_INTEGER8, dest, my_tag, & - comm%handle, send_request%handle, ierr) - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) - - msglen = (msglen + SIZE(msgout, 1) + 1)/2 - CALL add_perf(perf_id=8, msg_size=msglen*int_8_size) -#else - MARK_USED(dest) - MARK_USED(source) - MARK_USED(comm) - MARK_USED(tag) - send_request = mp_request_null - recv_request = mp_request_null - msgout = msgin -#endif - CALL timestop(handle) - END SUBROUTINE mp_isendrecv_lv - - SUBROUTINE mp_isend_lv(msgin, dest, comm, request, tag) - !! Non-blocking send of vector data - !! @note see mp_isendrecv_lv - !! @endnote - !! @note - !! arrays can be pointers or assumed shape, but they must be contiguous! + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + my_tag = 0 + IF (PRESENT(tag)) my_tag = tag + + msglen = SIZE(msgout, 1) + IF (msglen > 0) THEN + CALL mpi_irecv(msgout, msglen, MPI_INTEGER8, source, my_tag, & + comm%handle, recv_request%handle, ierr) + ELSE + CALL mpi_irecv(foo, msglen, MPI_INTEGER8, source, my_tag, & + comm%handle, recv_request%handle, ierr) + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) + + msglen = SIZE(msgin, 1) + IF (msglen > 0) THEN + CALL mpi_isend(msgin, msglen, MPI_INTEGER8, dest, my_tag, & + comm%handle, send_request%handle, ierr) + ELSE + CALL mpi_isend(foo, msglen, MPI_INTEGER8, dest, my_tag, & + comm%handle, send_request%handle, ierr) + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) + + msglen = (msglen + SIZE(msgout, 1) + 1)/2 + CALL add_perf(perf_id=8, msg_size=msglen*int_8_size) +#else + MARK_USED(dest) + MARK_USED(source) + MARK_USED(comm) + MARK_USED(tag) + send_request = mp_request_null + recv_request = mp_request_null + msgout = msgin +#endif + CALL timestop(handle) + END SUBROUTINE mp_isendrecv_lv + + SUBROUTINE mp_isend_lv(msgin, dest, comm, request, tag) + !! Non-blocking send of vector data + !! @note see mp_isendrecv_lv + !! @endnote + !! @note + !! arrays can be pointers or assumed shape, but they must be contiguous! + + INTEGER(KIND=int_8), CONTIGUOUS, DIMENSION(:) :: msgin + INTEGER, INTENT(IN) :: dest + TYPE(mp_comm_type), INTENT(IN) :: comm + TYPE(mp_request_type), INTENT(out) :: request + INTEGER, INTENT(in), OPTIONAL :: tag - INTEGER(KIND=int_8), CONTIGUOUS, DIMENSION(:) :: msgin - INTEGER, INTENT(IN) :: dest - TYPE(mp_comm_type), INTENT(IN) :: comm - TYPE(mp_request_type), INTENT(out) :: request - INTEGER, INTENT(in), OPTIONAL :: tag - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isend_lv' + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isend_lv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, my_tag + INTEGER(KIND=int_8) :: foo(1) +#endif - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, my_tag - INTEGER(KIND=int_8) :: foo(1) -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - my_tag = 0 - IF (PRESENT(tag)) my_tag = tag - - msglen = SIZE(msgin) - IF (msglen > 0) THEN - CALL mpi_isend(msgin, msglen, MPI_INTEGER8, dest, my_tag, & - comm%handle, request%handle, ierr) - ELSE - CALL mpi_isend(foo, msglen, MPI_INTEGER8, dest, my_tag, & - comm%handle, request%handle, ierr) - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) - - CALL add_perf(perf_id=11, msg_size=msglen*int_8_size) -#else - MARK_USED(msgin) - MARK_USED(dest) - MARK_USED(comm) - MARK_USED(request) - MARK_USED(tag) - ierr = 1 - request = mp_request_null - CALL mp_stop(ierr, "mp_isend called in non parallel case") -#endif - CALL timestop(handle) - END SUBROUTINE mp_isend_lv - - SUBROUTINE mp_isend_lm2(msgin, dest, comm, request, tag) - !! Non-blocking send of matrix data - !! @note see mp_isendrecv_lv - !! @endnote - !! @note see mp_isend_lv - !! @endnote - !! @note - !! arrays can be pointers or assumed shape, but they must be contiguous! + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + my_tag = 0 + IF (PRESENT(tag)) my_tag = tag + + msglen = SIZE(msgin) + IF (msglen > 0) THEN + CALL mpi_isend(msgin, msglen, MPI_INTEGER8, dest, my_tag, & + comm%handle, request%handle, ierr) + ELSE + CALL mpi_isend(foo, msglen, MPI_INTEGER8, dest, my_tag, & + comm%handle, request%handle, ierr) + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) + + CALL add_perf(perf_id=11, msg_size=msglen*int_8_size) +#else + MARK_USED(msgin) + MARK_USED(dest) + MARK_USED(comm) + MARK_USED(request) + MARK_USED(tag) + ierr = 1 + request = mp_request_null + CALL mp_stop(ierr, "mp_isend called in non parallel case") +#endif + CALL timestop(handle) + END SUBROUTINE mp_isend_lv + + SUBROUTINE mp_isend_lm2(msgin, dest, comm, request, tag) + !! Non-blocking send of matrix data + !! @note see mp_isendrecv_lv + !! @endnote + !! @note see mp_isend_lv + !! @endnote + !! @note + !! arrays can be pointers or assumed shape, but they must be contiguous! + + INTEGER(KIND=int_8), DIMENSION(:, :), CONTIGUOUS :: msgin + INTEGER, INTENT(IN) :: dest + TYPE(mp_comm_type), INTENT(IN) :: comm + TYPE(mp_request_type), INTENT(out) :: request + INTEGER, INTENT(in), OPTIONAL :: tag - INTEGER(KIND=int_8), DIMENSION(:, :), CONTIGUOUS :: msgin - INTEGER, INTENT(IN) :: dest - TYPE(mp_comm_type), INTENT(IN) :: comm - TYPE(mp_request_type), INTENT(out) :: request - INTEGER, INTENT(in), OPTIONAL :: tag - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isend_lm2' + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isend_lm2' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, my_tag + INTEGER(KIND=int_8) :: foo(1) +#endif - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, my_tag - INTEGER(KIND=int_8) :: foo(1) -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - my_tag = 0 - IF (PRESENT(tag)) my_tag = tag - - msglen = SIZE(msgin, 1)*SIZE(msgin, 2) - IF (msglen > 0) THEN - CALL mpi_isend(msgin, msglen, MPI_INTEGER8, dest, my_tag, & - comm%handle, request%handle, ierr) - ELSE - CALL mpi_isend(foo, msglen, MPI_INTEGER8, dest, my_tag, & - comm%handle, request%handle, ierr) - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) - - CALL add_perf(perf_id=11, msg_size=msglen*int_8_size) -#else - MARK_USED(msgin) - MARK_USED(dest) - MARK_USED(comm) - MARK_USED(request) - MARK_USED(tag) - ierr = 1 - request = mp_request_null - CALL mp_stop(ierr, "mp_isend called in non parallel case") -#endif - CALL timestop(handle) - END SUBROUTINE mp_isend_lm2 - - SUBROUTINE mp_irecv_lv(msgout, source, comm, request, tag) - !! Non-blocking receive of vector data - !! @note see mp_isendrecv_lv - !! @endnote - !! @note - !! arrays can be pointers or assumed shape, but they must be contiguous! + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + my_tag = 0 + IF (PRESENT(tag)) my_tag = tag + + msglen = SIZE(msgin, 1)*SIZE(msgin, 2) + IF (msglen > 0) THEN + CALL mpi_isend(msgin, msglen, MPI_INTEGER8, dest, my_tag, & + comm%handle, request%handle, ierr) + ELSE + CALL mpi_isend(foo, msglen, MPI_INTEGER8, dest, my_tag, & + comm%handle, request%handle, ierr) + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) + + CALL add_perf(perf_id=11, msg_size=msglen*int_8_size) +#else + MARK_USED(msgin) + MARK_USED(dest) + MARK_USED(comm) + MARK_USED(request) + MARK_USED(tag) + ierr = 1 + request = mp_request_null + CALL mp_stop(ierr, "mp_isend called in non parallel case") +#endif + CALL timestop(handle) + END SUBROUTINE mp_isend_lm2 + + SUBROUTINE mp_irecv_lv(msgout, source, comm, request, tag) + !! Non-blocking receive of vector data + !! @note see mp_isendrecv_lv + !! @endnote + !! @note + !! arrays can be pointers or assumed shape, but they must be contiguous! + + INTEGER(KIND=int_8), CONTIGUOUS, DIMENSION(:) :: msgout + INTEGER, INTENT(IN) :: source + TYPE(mp_comm_type), INTENT(IN) :: comm + TYPE(mp_request_type), INTENT(out) :: request + INTEGER, INTENT(in), OPTIONAL :: tag - INTEGER(KIND=int_8), CONTIGUOUS, DIMENSION(:) :: msgout - INTEGER, INTENT(IN) :: source - TYPE(mp_comm_type), INTENT(IN) :: comm - TYPE(mp_request_type), INTENT(out) :: request - INTEGER, INTENT(in), OPTIONAL :: tag - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_irecv_lv' + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_irecv_lv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, my_tag + INTEGER(KIND=int_8) :: foo(1) +#endif - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, my_tag - INTEGER(KIND=int_8) :: foo(1) -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - my_tag = 0 - IF (PRESENT(tag)) my_tag = tag - - msglen = SIZE(msgout) - IF (msglen > 0) THEN - CALL mpi_irecv(msgout, msglen, MPI_INTEGER8, source, my_tag, & - comm%handle, request%handle, ierr) - ELSE - CALL mpi_irecv(foo, msglen, MPI_INTEGER8, source, my_tag, & - comm%handle, request%handle, ierr) - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) - - CALL add_perf(perf_id=12, msg_size=msglen*int_8_size) -#else - DBCSR_ABORT("mp_irecv called in non parallel case") - MARK_USED(msgout) - MARK_USED(source) - MARK_USED(comm) - MARK_USED(request) - MARK_USED(tag) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_irecv_lv - - SUBROUTINE mp_irecv_lm2(msgout, source, comm, request, tag) - !! Non-blocking receive of matrix data - !! @note see mp_isendrecv_lv - !! @endnote - !! @note see mp_irecv_lv - !! @endnote - !! @note - !! arrays can be pointers or assumed shape, but they must be contiguous! + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + my_tag = 0 + IF (PRESENT(tag)) my_tag = tag + + msglen = SIZE(msgout) + IF (msglen > 0) THEN + CALL mpi_irecv(msgout, msglen, MPI_INTEGER8, source, my_tag, & + comm%handle, request%handle, ierr) + ELSE + CALL mpi_irecv(foo, msglen, MPI_INTEGER8, source, my_tag, & + comm%handle, request%handle, ierr) + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) + + CALL add_perf(perf_id=12, msg_size=msglen*int_8_size) +#else + DBCSR_ABORT("mp_irecv called in non parallel case") + MARK_USED(msgout) + MARK_USED(source) + MARK_USED(comm) + MARK_USED(request) + MARK_USED(tag) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_irecv_lv + + SUBROUTINE mp_irecv_lm2(msgout, source, comm, request, tag) + !! Non-blocking receive of matrix data + !! @note see mp_isendrecv_lv + !! @endnote + !! @note see mp_irecv_lv + !! @endnote + !! @note + !! arrays can be pointers or assumed shape, but they must be contiguous! + + INTEGER(KIND=int_8), DIMENSION(:, :), CONTIGUOUS :: msgout + INTEGER, INTENT(IN) :: source + TYPE(mp_comm_type), INTENT(IN) :: comm + TYPE(mp_request_type), INTENT(out) :: request + INTEGER, INTENT(in), OPTIONAL :: tag - INTEGER(KIND=int_8), DIMENSION(:, :), CONTIGUOUS :: msgout - INTEGER, INTENT(IN) :: source - TYPE(mp_comm_type), INTENT(IN) :: comm - TYPE(mp_request_type), INTENT(out) :: request - INTEGER, INTENT(in), OPTIONAL :: tag - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_irecv_lm2' + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_irecv_lm2' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, my_tag + INTEGER(KIND=int_8) :: foo(1) +#endif - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, my_tag - INTEGER(KIND=int_8) :: foo(1) -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - my_tag = 0 - IF (PRESENT(tag)) my_tag = tag - - msglen = SIZE(msgout, 1)*SIZE(msgout, 2) - IF (msglen > 0) THEN - CALL mpi_irecv(msgout, msglen, MPI_INTEGER8, source, my_tag, & - comm%handle, request%handle, ierr) - ELSE - CALL mpi_irecv(foo, msglen, MPI_INTEGER8, source, my_tag, & - comm%handle, request%handle, ierr) - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) - - CALL add_perf(perf_id=12, msg_size=msglen*int_8_size) -#else - MARK_USED(msgout) - MARK_USED(source) - MARK_USED(comm) - MARK_USED(request) - MARK_USED(tag) - request = mp_request_null - DBCSR_ABORT("mp_irecv called in non parallel case") -#endif - CALL timestop(handle) - END SUBROUTINE mp_irecv_lm2 - - SUBROUTINE mp_win_create_lv(base, comm, win) - !! Window initialization function for vector data - !! @note - !! arrays can be pointers or assumed shape, but they must be contiguous! + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + my_tag = 0 + IF (PRESENT(tag)) my_tag = tag + + msglen = SIZE(msgout, 1)*SIZE(msgout, 2) + IF (msglen > 0) THEN + CALL mpi_irecv(msgout, msglen, MPI_INTEGER8, source, my_tag, & + comm%handle, request%handle, ierr) + ELSE + CALL mpi_irecv(foo, msglen, MPI_INTEGER8, source, my_tag, & + comm%handle, request%handle, ierr) + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) + + CALL add_perf(perf_id=12, msg_size=msglen*int_8_size) +#else + MARK_USED(msgout) + MARK_USED(source) + MARK_USED(comm) + MARK_USED(request) + MARK_USED(tag) + request = mp_request_null + DBCSR_ABORT("mp_irecv called in non parallel case") +#endif + CALL timestop(handle) + END SUBROUTINE mp_irecv_lm2 + + SUBROUTINE mp_win_create_lv(base, comm, win) + !! Window initialization function for vector data + !! @note + !! arrays can be pointers or assumed shape, but they must be contiguous! + + INTEGER(KIND=int_8), CONTIGUOUS, DIMENSION(:) :: base + TYPE(mp_comm_type), INTENT(IN) :: comm + TYPE(mp_win_type), INTENT(OUT) :: win + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_win_create_lv' - INTEGER(KIND=int_8), CONTIGUOUS, DIMENSION(:) :: base - TYPE(mp_comm_type), INTENT(IN) :: comm - TYPE(mp_win_type), INTENT(OUT) :: win - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_win_create_lv' + INTEGER :: ierr, handle +#if defined(__parallel) + INTEGER(kind=mpi_address_kind) :: len + INTEGER(KIND=int_8) :: foo(1) +#endif - INTEGER :: ierr, handle -#if defined(__parallel) - INTEGER(kind=mpi_address_kind) :: len - INTEGER(KIND=int_8) :: foo(1) -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - - len = SIZE(base)*int_8_size - IF (len > 0) THEN - CALL mpi_win_create(base, len, int_8_size, MPI_INFO_NULL, comm%handle, win%handle, ierr) - ELSE - CALL mpi_win_create(foo, len, int_8_size, MPI_INFO_NULL, comm%handle, win%handle, ierr) - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_win_create @ "//routineN) -#else - MARK_USED(base) - MARK_USED(comm) - win = mp_win_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_win_create_lv + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + + len = SIZE(base)*int_8_size + IF (len > 0) THEN + CALL mpi_win_create(base, len, int_8_size, MPI_INFO_NULL, comm%handle, win%handle, ierr) + ELSE + CALL mpi_win_create(foo, len, int_8_size, MPI_INFO_NULL, comm%handle, win%handle, ierr) + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_win_create @ "//routineN) +#else + MARK_USED(base) + MARK_USED(comm) + win = mp_win_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_win_create_lv + + SUBROUTINE mp_rget_lv(base, source, win, win_data, myproc, disp, request, & + origin_datatype, target_datatype) + !! Single-sided get function for vector data + !! @note + !! arrays can be pointers or assumed shape, but they must be contiguous! - SUBROUTINE mp_rget_lv(base, source, win, win_data, myproc, disp, request, & - origin_datatype, target_datatype) - !! Single-sided get function for vector data - !! @note - !! arrays can be pointers or assumed shape, but they must be contiguous! - - INTEGER(KIND=int_8), CONTIGUOUS, DIMENSION(:) :: base - INTEGER, INTENT(IN) :: source - TYPE(mp_win_type), INTENT(IN) :: win - INTEGER(KIND=int_8), CONTIGUOUS, DIMENSION(:) :: win_data - INTEGER, INTENT(IN), OPTIONAL :: myproc, disp - TYPE(mp_request_type), INTENT(OUT) :: request - TYPE(mp_type_descriptor_type), INTENT(IN), OPTIONAL :: origin_datatype, target_datatype - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_rget_lv' - - INTEGER :: ierr, handle -#if defined(__parallel) - INTEGER :: len, & - origin_len, target_len - LOGICAL :: do_local_copy - INTEGER(kind=mpi_address_kind) :: disp_aint - MPI_DATA_TYPE :: handle_origin_datatype, handle_target_datatype -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - len = SIZE(base) - disp_aint = 0 - IF (PRESENT(disp)) THEN - disp_aint = INT(disp, KIND=mpi_address_kind) + INTEGER(KIND=int_8), CONTIGUOUS, DIMENSION(:) :: base + INTEGER, INTENT(IN) :: source + TYPE(mp_win_type), INTENT(IN) :: win + INTEGER(KIND=int_8), CONTIGUOUS, DIMENSION(:) :: win_data + INTEGER, INTENT(IN), OPTIONAL :: myproc, disp + TYPE(mp_request_type), INTENT(OUT) :: request + TYPE(mp_type_descriptor_type), INTENT(IN), OPTIONAL :: origin_datatype, target_datatype + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_rget_lv' + + INTEGER :: ierr, handle +#if defined(__parallel) + INTEGER :: len, & + origin_len, target_len + LOGICAL :: do_local_copy + INTEGER(kind=mpi_address_kind) :: disp_aint + MPI_DATA_TYPE :: handle_origin_datatype, handle_target_datatype +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + len = SIZE(base) + disp_aint = 0 + IF (PRESENT(disp)) THEN + disp_aint = INT(disp, KIND=mpi_address_kind) + END IF + handle_origin_datatype = MPI_INTEGER8 + origin_len = len + IF (PRESENT(origin_datatype)) THEN + handle_origin_datatype = origin_datatype%type_handle + origin_len = 1 END IF - handle_origin_datatype = MPI_INTEGER8 - origin_len = len - IF (PRESENT(origin_datatype)) THEN - handle_origin_datatype = origin_datatype%type_handle - origin_len = 1 + handle_target_datatype = MPI_INTEGER8 + target_len = len + IF (PRESENT(target_datatype)) THEN + handle_target_datatype = target_datatype%type_handle + target_len = 1 END IF - handle_target_datatype = MPI_INTEGER8 - target_len = len - IF (PRESENT(target_datatype)) THEN - handle_target_datatype = target_datatype%type_handle - target_len = 1 - END IF - IF (len > 0) THEN - do_local_copy = .FALSE. -#if !defined(__DBCSR_DISABLE_RMA_LOCAL_COPY) - IF (PRESENT(myproc) .AND. .NOT. PRESENT(origin_datatype) .AND. .NOT. PRESENT(target_datatype)) THEN - IF (myproc .EQ. source) do_local_copy = .TRUE. - END IF -#else - MARK_USED(myproc) -#endif - IF (do_local_copy) THEN -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(base,win_data,disp_aint,len) -#endif - base(:) = win_data(disp_aint + 1:disp_aint + len) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif - request = mp_request_null - ierr = 0 - ELSE - CALL mpi_rget(base, origin_len, handle_origin_datatype, source, disp_aint, & - target_len, handle_target_datatype, win%handle, request%handle, ierr) - END IF - ELSE - request = mp_request_null - ierr = 0 - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_rget @ "//routineN) - - CALL add_perf(perf_id=25, msg_size=SIZE(base)*int_8_size) -#else - MARK_USED(source) - MARK_USED(win) - MARK_USED(myproc) - MARK_USED(origin_datatype) - MARK_USED(target_datatype) + IF (len > 0) THEN + do_local_copy = .FALSE. +#if !defined(__DBCSR_DISABLE_RMA_LOCAL_COPY) + IF (PRESENT(myproc) .AND. .NOT. PRESENT(origin_datatype) .AND. .NOT. PRESENT(target_datatype)) THEN + IF (myproc .EQ. source) do_local_copy = .TRUE. + END IF +#else + MARK_USED(myproc) +#endif + IF (do_local_copy) THEN + base(:) = win_data(disp_aint + 1:disp_aint + len) + request = mp_request_null + ierr = 0 + ELSE + CALL mpi_rget(base, origin_len, handle_origin_datatype, source, disp_aint, & + target_len, handle_target_datatype, win%handle, request%handle, ierr) + END IF + ELSE + request = mp_request_null + ierr = 0 + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_rget @ "//routineN) + + CALL add_perf(perf_id=25, msg_size=SIZE(base)*int_8_size) +#else + MARK_USED(source) + MARK_USED(win) + MARK_USED(myproc) + MARK_USED(origin_datatype) + MARK_USED(target_datatype) + + request = mp_request_null + ! + IF (PRESENT(disp)) THEN + base(:) = win_data(disp + 1:disp + SIZE(base)) + ELSE + base(:) = win_data(:SIZE(base)) + END IF + +#endif + CALL timestop(handle) + END SUBROUTINE mp_rget_lv - request = mp_request_null - ! - IF (PRESENT(disp)) THEN - base(:) = win_data(disp + 1:disp + SIZE(base)) - ELSE - base(:) = win_data(:SIZE(base)) - END IF +! ***************************************************************************** +! *************************************************************************** + FUNCTION mp_type_indexed_make_l (count, lengths, displs) & + RESULT(type_descriptor) + INTEGER, INTENT(IN) :: count + INTEGER, DIMENSION(1:count), INTENT(IN), TARGET :: lengths, displs + TYPE(mp_type_descriptor_type) :: type_descriptor -#endif - CALL timestop(handle) - END SUBROUTINE mp_rget_lv + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_type_indexed_make_l' + + INTEGER :: ierr, handle -! ***************************************************************************** -! *************************************************************************** - FUNCTION mp_type_indexed_make_l (count, lengths, displs) & - RESULT(type_descriptor) - INTEGER, INTENT(IN) :: count - INTEGER, DIMENSION(1:count), INTENT(IN), TARGET :: lengths, displs - TYPE(mp_type_descriptor_type) :: type_descriptor - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_type_indexed_make_l' - - INTEGER :: ierr, handle - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - CALL mpi_type_indexed(count, lengths, displs, MPI_INTEGER8, & - type_descriptor%type_handle, ierr) - IF (ierr /= 0) & - DBCSR_ABORT("MPI_Type_Indexed @ "//routineN) - CALL mpi_type_commit(type_descriptor%type_handle, ierr) - IF (ierr /= 0) & - DBCSR_ABORT("MPI_Type_commit @ "//routineN) -#else - type_descriptor%type_handle = 19 -#endif - type_descriptor%length = count - NULLIFY (type_descriptor%subtype) - type_descriptor%vector_descriptor(1:2) = 1 - type_descriptor%has_indexing = .TRUE. - type_descriptor%index_descriptor%index => lengths - type_descriptor%index_descriptor%chunks => displs - - CALL timestop(handle) + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + CALL mpi_type_indexed(count, lengths, displs, MPI_INTEGER8, & + type_descriptor%type_handle, ierr) + IF (ierr /= 0) & + DBCSR_ABORT("MPI_Type_Indexed @ "//routineN) + CALL mpi_type_commit(type_descriptor%type_handle, ierr) + IF (ierr /= 0) & + DBCSR_ABORT("MPI_Type_commit @ "//routineN) +#else + type_descriptor%type_handle = 19 +#endif + type_descriptor%length = count + NULLIFY (type_descriptor%subtype) + type_descriptor%vector_descriptor(1:2) = 1 + type_descriptor%has_indexing = .TRUE. + type_descriptor%index_descriptor%index => lengths + type_descriptor%index_descriptor%chunks => displs + + CALL timestop(handle) + + END FUNCTION mp_type_indexed_make_l + + SUBROUTINE mp_allocate_l (DATA, len, stat) + !! Allocates special parallel memory + + INTEGER(KIND=int_8), DIMENSION(:), POINTER, CONTIGUOUS :: DATA + !! pointer to integer array to allocate + INTEGER, INTENT(IN) :: len + !! number of integers to allocate + INTEGER, INTENT(OUT), OPTIONAL :: stat + !! allocation status result - END FUNCTION mp_type_indexed_make_l + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allocate_l' - SUBROUTINE mp_allocate_l (DATA, len, stat) - !! Allocates special parallel memory - - INTEGER(KIND=int_8), DIMENSION(:), POINTER, CONTIGUOUS :: DATA - !! pointer to integer array to allocate - INTEGER, INTENT(IN) :: len - !! number of integers to allocate - INTEGER, INTENT(OUT), OPTIONAL :: stat - !! allocation status result - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allocate_l' - - INTEGER :: ierr, handle - - CALL timeset(routineN, handle) - - ierr = 0 -#if defined(__parallel) - NULLIFY (DATA) - CALL mp_alloc_mem(DATA, len, stat=ierr) - IF (ierr /= 0 .AND. .NOT. PRESENT(stat)) & - CALL mp_stop(ierr, "mpi_alloc_mem @ "//routineN) -#else - ALLOCATE (DATA(len), stat=ierr) - IF (ierr /= 0 .AND. .NOT. PRESENT(stat)) & - CALL mp_stop(ierr, "ALLOCATE @ "//routineN) -#endif - IF (PRESENT(stat)) stat = ierr - CALL timestop(handle) - END SUBROUTINE mp_allocate_l - - SUBROUTINE mp_deallocate_l (DATA, stat) - !! Deallocates special parallel memory - - INTEGER(KIND=int_8), DIMENSION(:), POINTER, CONTIGUOUS :: DATA - !! pointer to special memory to deallocate - INTEGER, INTENT(OUT), OPTIONAL :: stat - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_deallocate_l' - - INTEGER :: ierr, handle - - CALL timeset(routineN, handle) - - ierr = 0 -#if defined(__parallel) - CALL mp_free_mem(DATA, ierr) - IF (PRESENT(stat)) THEN - stat = ierr - ELSE - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_free_mem @ "//routineN) - END IF - NULLIFY (DATA) -#else - DEALLOCATE (DATA) - IF (PRESENT(stat)) stat = 0 -#endif - CALL timestop(handle) - END SUBROUTINE mp_deallocate_l - - SUBROUTINE mp_file_write_at_lv(fh, offset, msg, msglen) - !! (parallel) Blocking individual file write using explicit offsets - !! (serial) Unformatted stream write - !! - !! MPI-I/O mapping mpi_file_write_at - !! - !! STREAM-I/O mapping WRITE - - INTEGER(KIND=int_8), INTENT(IN) :: msg(:) - !! data to be written to the file - TYPE(mp_file_type), INTENT(IN) :: fh - !! file handle (file storage unit) - INTEGER, INTENT(IN), OPTIONAL :: msglen - !! number of the elements of data - INTEGER(kind=file_offset), INTENT(IN) :: offset - !! file offset (position) - - INTEGER :: msg_len - - msg_len = SIZE(msg) - IF (PRESENT(msglen)) msg_len = msglen - -#if defined(__parallel) - BLOCK - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_lv' - INTEGER :: ierr - ierr = 0 - CALL MPI_FILE_WRITE_AT(fh%handle, offset, msg, msg_len, MPI_INTEGER8, MPI_STATUS_IGNORE, ierr) - IF (ierr .NE. 0) & - DBCSR_ABORT("mpi_file_write_at_lv @ "//routineN) - END BLOCK -#else - WRITE (UNIT=fh%handle, POS=offset + 1) msg(1:msg_len) -#endif - END SUBROUTINE mp_file_write_at_lv + INTEGER :: ierr, handle + + CALL timeset(routineN, handle) + + ierr = 0 +#if defined(__parallel) + NULLIFY (DATA) + CALL mp_alloc_mem(DATA, len, stat=ierr) + IF (ierr /= 0 .AND. .NOT. PRESENT(stat)) & + CALL mp_stop(ierr, "mpi_alloc_mem @ "//routineN) +#else + ALLOCATE (DATA(len), stat=ierr) + IF (ierr /= 0 .AND. .NOT. PRESENT(stat)) & + CALL mp_stop(ierr, "ALLOCATE @ "//routineN) +#endif + IF (PRESENT(stat)) stat = ierr + CALL timestop(handle) + END SUBROUTINE mp_allocate_l + + SUBROUTINE mp_deallocate_l (DATA, stat) + !! Deallocates special parallel memory + + INTEGER(KIND=int_8), DIMENSION(:), POINTER, CONTIGUOUS :: DATA + !! pointer to special memory to deallocate + INTEGER, INTENT(OUT), OPTIONAL :: stat + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_deallocate_l' + + INTEGER :: ierr, handle + + CALL timeset(routineN, handle) + + ierr = 0 +#if defined(__parallel) + CALL mp_free_mem(DATA, ierr) + IF (PRESENT(stat)) THEN + stat = ierr + ELSE + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_free_mem @ "//routineN) + END IF + NULLIFY (DATA) +#else + DEALLOCATE (DATA) + IF (PRESENT(stat)) stat = 0 +#endif + CALL timestop(handle) + END SUBROUTINE mp_deallocate_l + + SUBROUTINE mp_file_write_at_lv(fh, offset, msg, msglen) + !! (parallel) Blocking individual file write using explicit offsets + !! (serial) Unformatted stream write + !! + !! MPI-I/O mapping mpi_file_write_at + !! + !! STREAM-I/O mapping WRITE + + INTEGER(KIND=int_8), INTENT(IN) :: msg(:) + !! data to be written to the file + TYPE(mp_file_type), INTENT(IN) :: fh + !! file handle (file storage unit) + INTEGER, INTENT(IN), OPTIONAL :: msglen + !! number of the elements of data + INTEGER(kind=file_offset), INTENT(IN) :: offset + !! file offset (position) + + INTEGER :: msg_len + + msg_len = SIZE(msg) + IF (PRESENT(msglen)) msg_len = msglen + +#if defined(__parallel) + BLOCK + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_lv' + INTEGER :: ierr + ierr = 0 + CALL MPI_FILE_WRITE_AT(fh%handle, offset, msg, msg_len, MPI_INTEGER8, MPI_STATUS_IGNORE, ierr) + IF (ierr .NE. 0) & + DBCSR_ABORT("mpi_file_write_at_lv @ "//routineN) + END BLOCK +#else + WRITE (UNIT=fh%handle, POS=offset + 1) msg(1:msg_len) +#endif + END SUBROUTINE mp_file_write_at_lv + +! ***************************************************************************** +! ***************************************************************************** + SUBROUTINE mp_file_write_at_l (fh, offset, msg) + INTEGER(KIND=int_8), INTENT(IN) :: msg + TYPE(mp_file_type), INTENT(IN) :: fh + INTEGER(kind=file_offset), INTENT(IN) :: offset + +#if defined(__parallel) + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_l' + + INTEGER :: ierr -! ***************************************************************************** -! ***************************************************************************** - SUBROUTINE mp_file_write_at_l (fh, offset, msg) - INTEGER(KIND=int_8), INTENT(IN) :: msg - TYPE(mp_file_type), INTENT(IN) :: fh - INTEGER(kind=file_offset), INTENT(IN) :: offset - -#if defined(__parallel) - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_l' - - INTEGER :: ierr - - ierr = 0 - CALL MPI_FILE_WRITE_AT(fh%handle, offset, msg, 1, MPI_INTEGER8, MPI_STATUS_IGNORE, ierr) - IF (ierr .NE. 0) & - DBCSR_ABORT("mpi_file_write_at_l @ "//routineN) -#else - WRITE (UNIT=fh%handle, POS=offset + 1) msg -#endif - END SUBROUTINE mp_file_write_at_l - - SUBROUTINE mp_file_write_at_all_lv(fh, offset, msg, msglen) - !! (parallel) Blocking collective file write using explicit offsets - !! (serial) Unformatted stream write - !! - !! MPI-I/O mapping mpi_file_write_at_all - !! - !! STREAM-I/O mapping WRITE - - INTEGER(KIND=int_8), INTENT(IN) :: msg(:) - TYPE(mp_file_type), INTENT(IN) :: fh - INTEGER, INTENT(IN), OPTIONAL :: msglen - INTEGER :: msg_len - INTEGER(kind=file_offset), INTENT(IN) :: offset - - msg_len = SIZE(msg) - IF (PRESENT(msglen)) msg_len = msglen -#if defined(__parallel) - BLOCK - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_all_lv' - INTEGER :: ierr - ierr = 0 - - CALL MPI_FILE_WRITE_AT_ALL(fh%handle, offset, msg, msg_len, MPI_INTEGER8, MPI_STATUS_IGNORE, ierr) - IF (ierr .NE. 0) & - DBCSR_ABORT("mpi_file_write_at_all_lv @ "//routineN) - END BLOCK -#else - WRITE (UNIT=fh%handle, POS=offset + 1) msg(1:msg_len) -#endif - END SUBROUTINE mp_file_write_at_all_lv + ierr = 0 + CALL MPI_FILE_WRITE_AT(fh%handle, offset, msg, 1, MPI_INTEGER8, MPI_STATUS_IGNORE, ierr) + IF (ierr .NE. 0) & + DBCSR_ABORT("mpi_file_write_at_l @ "//routineN) +#else + WRITE (UNIT=fh%handle, POS=offset + 1) msg +#endif + END SUBROUTINE mp_file_write_at_l + + SUBROUTINE mp_file_write_at_all_lv(fh, offset, msg, msglen) + !! (parallel) Blocking collective file write using explicit offsets + !! (serial) Unformatted stream write + !! + !! MPI-I/O mapping mpi_file_write_at_all + !! + !! STREAM-I/O mapping WRITE + + INTEGER(KIND=int_8), INTENT(IN) :: msg(:) + TYPE(mp_file_type), INTENT(IN) :: fh + INTEGER, INTENT(IN), OPTIONAL :: msglen + INTEGER :: msg_len + INTEGER(kind=file_offset), INTENT(IN) :: offset + + msg_len = SIZE(msg) + IF (PRESENT(msglen)) msg_len = msglen +#if defined(__parallel) + BLOCK + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_all_lv' + INTEGER :: ierr + ierr = 0 + + CALL MPI_FILE_WRITE_AT_ALL(fh%handle, offset, msg, msg_len, MPI_INTEGER8, MPI_STATUS_IGNORE, ierr) + IF (ierr .NE. 0) & + DBCSR_ABORT("mpi_file_write_at_all_lv @ "//routineN) + END BLOCK +#else + WRITE (UNIT=fh%handle, POS=offset + 1) msg(1:msg_len) +#endif + END SUBROUTINE mp_file_write_at_all_lv + +! ***************************************************************************** +! ***************************************************************************** + SUBROUTINE mp_file_write_at_all_l (fh, offset, msg) + INTEGER(KIND=int_8), INTENT(IN) :: msg + TYPE(mp_file_type), INTENT(IN) :: fh + INTEGER(kind=file_offset), INTENT(IN) :: offset + +#if defined(__parallel) + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_all_l' + + INTEGER :: ierr -! ***************************************************************************** -! ***************************************************************************** - SUBROUTINE mp_file_write_at_all_l (fh, offset, msg) - INTEGER(KIND=int_8), INTENT(IN) :: msg - TYPE(mp_file_type), INTENT(IN) :: fh - INTEGER(kind=file_offset), INTENT(IN) :: offset - -#if defined(__parallel) - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_all_l' - - INTEGER :: ierr - - ierr = 0 - CALL MPI_FILE_WRITE_AT_ALL(fh%handle, offset, msg, 1, MPI_INTEGER8, MPI_STATUS_IGNORE, ierr) - IF (ierr .NE. 0) & - DBCSR_ABORT("mpi_file_write_at_all_l @ "//routineN) -#else - WRITE (UNIT=fh%handle, POS=offset + 1) msg -#endif - END SUBROUTINE mp_file_write_at_all_l - -! ***************************************************************************** -! ***************************************************************************** - SUBROUTINE mp_file_read_at_all_lv(fh, offset, msg, msglen) - !! (parallel) Blocking collective file read using explicit offsets - !! (serial) Unformatted stream read - !! - !! MPI-I/O mapping mpi_file_read_at_all - !! - !! STREAM-I/O mapping READ - - INTEGER(KIND=int_8), INTENT(OUT) :: msg(:) - TYPE(mp_file_type), INTENT(IN) :: fh - INTEGER, INTENT(IN), OPTIONAL :: msglen - INTEGER(kind=file_offset), INTENT(IN) :: offset - - INTEGER :: msg_len - - msg_len = SIZE(msg) - IF (PRESENT(msglen)) msg_len = msglen -#if defined(__parallel) - BLOCK - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_read_at_all_lv' - INTEGER :: ierr - ierr = 0 - - CALL MPI_FILE_READ_AT_ALL(fh%handle, offset, msg, msg_len, MPI_INTEGER8, MPI_STATUS_IGNORE, ierr) - IF (ierr .NE. 0) & - DBCSR_ABORT("mpi_file_read_at_all_lv @ "//routineN) - END BLOCK -#else - READ (UNIT=fh%handle, POS=offset + 1) msg(1:msg_len) -#endif - END SUBROUTINE mp_file_read_at_all_lv + ierr = 0 + CALL MPI_FILE_WRITE_AT_ALL(fh%handle, offset, msg, 1, MPI_INTEGER8, MPI_STATUS_IGNORE, ierr) + IF (ierr .NE. 0) & + DBCSR_ABORT("mpi_file_write_at_all_l @ "//routineN) +#else + WRITE (UNIT=fh%handle, POS=offset + 1) msg +#endif + END SUBROUTINE mp_file_write_at_all_l + +! ***************************************************************************** +! ***************************************************************************** + SUBROUTINE mp_file_read_at_all_lv(fh, offset, msg, msglen) + !! (parallel) Blocking collective file read using explicit offsets + !! (serial) Unformatted stream read + !! + !! MPI-I/O mapping mpi_file_read_at_all + !! + !! STREAM-I/O mapping READ + + INTEGER(KIND=int_8), INTENT(OUT) :: msg(:) + TYPE(mp_file_type), INTENT(IN) :: fh + INTEGER, INTENT(IN), OPTIONAL :: msglen + INTEGER(kind=file_offset), INTENT(IN) :: offset + + INTEGER :: msg_len + + msg_len = SIZE(msg) + IF (PRESENT(msglen)) msg_len = msglen +#if defined(__parallel) + BLOCK + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_read_at_all_lv' + INTEGER :: ierr + ierr = 0 + + CALL MPI_FILE_READ_AT_ALL(fh%handle, offset, msg, msg_len, MPI_INTEGER8, MPI_STATUS_IGNORE, ierr) + IF (ierr .NE. 0) & + DBCSR_ABORT("mpi_file_read_at_all_lv @ "//routineN) + END BLOCK +#else + READ (UNIT=fh%handle, POS=offset + 1) msg(1:msg_len) +#endif + END SUBROUTINE mp_file_read_at_all_lv + +! ***************************************************************************** +! ***************************************************************************** + SUBROUTINE mp_file_read_at_all_l (fh, offset, msg) + INTEGER(KIND=int_8), INTENT(OUT) :: msg + TYPE(mp_file_type), INTENT(IN) :: fh + INTEGER(kind=file_offset), INTENT(IN) :: offset + +#if defined(__parallel) + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_read_at_all_l' + + INTEGER :: ierr -! ***************************************************************************** -! ***************************************************************************** - SUBROUTINE mp_file_read_at_all_l (fh, offset, msg) - INTEGER(KIND=int_8), INTENT(OUT) :: msg - TYPE(mp_file_type), INTENT(IN) :: fh - INTEGER(kind=file_offset), INTENT(IN) :: offset - -#if defined(__parallel) - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_read_at_all_l' - - INTEGER :: ierr - - ierr = 0 - CALL MPI_FILE_READ_AT_ALL(fh%handle, offset, msg, 1, MPI_INTEGER8, MPI_STATUS_IGNORE, ierr) - IF (ierr .NE. 0) & - DBCSR_ABORT("mpi_file_read_at_all_l @ "//routineN) -#else - READ (UNIT=fh%handle, POS=offset + 1) msg -#endif - END SUBROUTINE mp_file_read_at_all_l + ierr = 0 + CALL MPI_FILE_READ_AT_ALL(fh%handle, offset, msg, 1, MPI_INTEGER8, MPI_STATUS_IGNORE, ierr) + IF (ierr .NE. 0) & + DBCSR_ABORT("mpi_file_read_at_all_l @ "//routineN) +#else + READ (UNIT=fh%handle, POS=offset + 1) msg +#endif + END SUBROUTINE mp_file_read_at_all_l + +! ***************************************************************************** +! ***************************************************************************** + FUNCTION mp_type_make_l (ptr, & + vector_descriptor, index_descriptor) & + RESULT(type_descriptor) + INTEGER(KIND=int_8), DIMENSION(:), POINTER :: ptr + INTEGER, DIMENSION(2), INTENT(IN), OPTIONAL :: vector_descriptor + TYPE(mp_indexing_meta_type), INTENT(IN), OPTIONAL :: index_descriptor + TYPE(mp_type_descriptor_type) :: type_descriptor + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_type_make_l' -! ***************************************************************************** -! ***************************************************************************** - FUNCTION mp_type_make_l (ptr, & - vector_descriptor, index_descriptor) & - RESULT(type_descriptor) - INTEGER(KIND=int_8), DIMENSION(:), POINTER :: ptr - INTEGER, DIMENSION(2), INTENT(IN), OPTIONAL :: vector_descriptor - TYPE(mp_indexing_meta_type), INTENT(IN), OPTIONAL :: index_descriptor - TYPE(mp_type_descriptor_type) :: type_descriptor - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_type_make_l' - - INTEGER :: ierr - - ierr = 0 - NULLIFY (type_descriptor%subtype) - type_descriptor%length = SIZE(ptr) -#if defined(__parallel) - type_descriptor%type_handle = MPI_INTEGER8 - CALL MPI_Get_address(ptr, type_descriptor%base, ierr) - IF (ierr /= 0) & - DBCSR_ABORT("MPI_Get_address @ "//routineN) -#else - type_descriptor%type_handle = 19 -#endif - type_descriptor%vector_descriptor(1:2) = 1 - type_descriptor%has_indexing = .FALSE. - type_descriptor%data_l => ptr - IF (PRESENT(vector_descriptor) .OR. PRESENT(index_descriptor)) THEN - DBCSR_ABORT(routineN//": Vectors and indices NYI") - END IF - END FUNCTION mp_type_make_l + INTEGER :: ierr + + ierr = 0 + NULLIFY (type_descriptor%subtype) + type_descriptor%length = SIZE(ptr) +#if defined(__parallel) + type_descriptor%type_handle = MPI_INTEGER8 + CALL MPI_Get_address(ptr, type_descriptor%base, ierr) + IF (ierr /= 0) & + DBCSR_ABORT("MPI_Get_address @ "//routineN) +#else + type_descriptor%type_handle = 19 +#endif + type_descriptor%vector_descriptor(1:2) = 1 + type_descriptor%has_indexing = .FALSE. + type_descriptor%data_l => ptr + IF (PRESENT(vector_descriptor) .OR. PRESENT(index_descriptor)) THEN + DBCSR_ABORT(routineN//": Vectors and indices NYI") + END IF + END FUNCTION mp_type_make_l + +#if defined(__parallel) + SUBROUTINE mp_alloc_mem_l (DATA, len, stat) + !! Allocates an array, using MPI_ALLOC_MEM ... this is hackish + !! as the Fortran version returns an integer, which we take to be a C_PTR + + INTEGER(KIND=int_8), DIMENSION(:), POINTER, CONTIGUOUS :: DATA + !! data array to allocate + INTEGER, INTENT(IN) :: len + !! length (in data elements) of data array allocation + INTEGER, INTENT(OUT), OPTIONAL :: stat + !! allocation status result -#if defined(__parallel) - SUBROUTINE mp_alloc_mem_l (DATA, len, stat) - !! Allocates an array, using MPI_ALLOC_MEM ... this is hackish - !! as the Fortran version returns an integer, which we take to be a C_PTR - - INTEGER(KIND=int_8), DIMENSION(:), POINTER, CONTIGUOUS :: DATA - !! data array to allocate - INTEGER, INTENT(IN) :: len - !! length (in data elements) of data array allocation - INTEGER, INTENT(OUT), OPTIONAL :: stat - !! allocation status result - - INTEGER :: size, ierr, length, & - mp_res - INTEGER(KIND=MPI_ADDRESS_KIND) :: mp_size - TYPE(C_PTR) :: mp_baseptr - MPI_INFO_TYPE :: mp_info - - length = MAX(len, 1) - CALL MPI_TYPE_SIZE(MPI_INTEGER8, size, ierr) - mp_size = INT(length, KIND=MPI_ADDRESS_KIND)*size - IF (mp_size .GT. mp_max_memory_size) THEN - DBCSR_ABORT("MPI cannot allocate more than 2 GiByte") - END IF - mp_info = MPI_INFO_NULL - CALL MPI_ALLOC_MEM(mp_size, mp_info, mp_baseptr, mp_res) - CALL C_F_POINTER(mp_baseptr, DATA, (/length/)) - IF (PRESENT(stat)) stat = mp_res - END SUBROUTINE mp_alloc_mem_l -#endif - -#if defined(__parallel) - SUBROUTINE mp_free_mem_l (DATA, stat) - !! Deallocates am array, ... this is hackish - !! as the Fortran version takes an integer, which we hope to get by reference + INTEGER :: size, ierr, length, & + mp_res + INTEGER(KIND=MPI_ADDRESS_KIND) :: mp_size + TYPE(C_PTR) :: mp_baseptr + MPI_INFO_TYPE :: mp_info + + length = MAX(len, 1) + CALL MPI_TYPE_SIZE(MPI_INTEGER8, size, ierr) + mp_size = INT(length, KIND=MPI_ADDRESS_KIND)*size + IF (mp_size .GT. mp_max_memory_size) THEN + DBCSR_ABORT("MPI cannot allocate more than 2 GiByte") + END IF + mp_info = MPI_INFO_NULL + CALL MPI_ALLOC_MEM(mp_size, mp_info, mp_baseptr, mp_res) + CALL C_F_POINTER(mp_baseptr, DATA, (/length/)) + IF (PRESENT(stat)) stat = mp_res + END SUBROUTINE mp_alloc_mem_l +#endif + +#if defined(__parallel) + SUBROUTINE mp_free_mem_l (DATA, stat) + !! Deallocates am array, ... this is hackish + !! as the Fortran version takes an integer, which we hope to get by reference + + INTEGER(KIND=int_8), DIMENSION(:), & + POINTER, CONTIGUOUS :: DATA + !! data array to allocate + INTEGER, INTENT(OUT), OPTIONAL :: stat + !! allocation status result + + INTEGER :: mp_res + CALL MPI_FREE_MEM(DATA, mp_res) + IF (PRESENT(stat)) stat = mp_res + END SUBROUTINE mp_free_mem_l +#endif - INTEGER(KIND=int_8), DIMENSION(:), & - POINTER, CONTIGUOUS :: DATA - !! data array to allocate - INTEGER, INTENT(OUT), OPTIONAL :: stat - !! allocation status result - - INTEGER :: mp_res - CALL MPI_FREE_MEM(DATA, mp_res) - IF (PRESENT(stat)) stat = mp_res - END SUBROUTINE mp_free_mem_l -#endif - -# 2824 "/__w/dbcsr/dbcsr/src/mpi/dbcsr_mpiwrap.F" - SUBROUTINE mp_alltoall_d11v(sb, scount, sdispl, rb, rcount, rdispl, group) - !! All-to-all data exchange, rank-1 data of different sizes - !! - !! MPI mapping - !! mpi_alltoallv - !! - !! Array sizes - !! The scount, rcount, and the sdispl and rdispl arrays have a - !! size equal to the number of processes. - !! - !! Offsets - !! Values in sdispl and rdispl start with 0. - - REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: sb(:) - !! Data to send - INTEGER, CONTIGUOUS, INTENT(IN) :: scount(:), sdispl(:) - !! Data counts for data sent to other processes - !! Respective data offsets for data sent to process - REAL(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: rb(:) - !! Buffer into which to receive data - INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:), rdispl(:) - !! Data counts for data received from other processes - !! Respective data offsets for data received from other processes - TYPE(mp_comm_type), INTENT(IN) :: group - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_d11v' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen -#else - INTEGER :: i -#endif - - CALL timeset(routineN, handle) - - ierr = 0 -#if defined(__parallel) - CALL mpi_alltoallv(sb, scount, sdispl, MPI_DOUBLE_PRECISION, & - rb, rcount, rdispl, MPI_DOUBLE_PRECISION, group%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoallv @ "//routineN) - msglen = SUM(scount) + SUM(rcount) - CALL add_perf(perf_id=6, msg_size=msglen*real_8_size) -#else - MARK_USED(group) - MARK_USED(scount) - MARK_USED(sdispl) -!$OMP PARALLEL DO DEFAULT(NONE) PRIVATE(i) SHARED(rcount,rdispl,sdispl,rb,sb) - DO i = 1, rcount(1) - rb(rdispl(1) + i) = sb(sdispl(1) + i) - END DO -#endif - CALL timestop(handle) - - END SUBROUTINE mp_alltoall_d11v - - SUBROUTINE mp_alltoall_d (sb, rb, count, group) - !! All-to-all data exchange, rank 1 arrays, equal sizes - !! - !! Index meaning - !! - !! The first two indices specify the data while the last index counts - !! the processes - !! - !! Sizes of ranks - !! All processes have the same data size. - !! - !! MPI mapping - !! mpi_alltoall - - REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: sb(:) - !! array with data to send - REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: rb(:) - !! array into which data is received - INTEGER, INTENT(IN) :: count - !! number of elements to send/receive (product of the extents of the first two dimensions) - TYPE(mp_comm_type), INTENT(IN) :: group - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_d' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, np -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - CALL mpi_alltoall(sb, count, MPI_DOUBLE_PRECISION, & - rb, count, MPI_DOUBLE_PRECISION, group%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoall @ "//routineN) - CALL mpi_comm_size(group%handle, np, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_size @ "//routineN) - msglen = 2*count*np - CALL add_perf(perf_id=6, msg_size=msglen*real_8_size) -#else - MARK_USED(count) - MARK_USED(group) - rb = sb -#endif - CALL timestop(handle) - - END SUBROUTINE mp_alltoall_d - - SUBROUTINE mp_alltoall_d22(sb, rb, count, group) - !! All-to-all data exchange, rank-2 arrays, equal sizes - !! @note see mp_alltoall_d +# 2824 "/__w/dbcsr/dbcsr/src/mpi/dbcsr_mpiwrap.F" + SUBROUTINE mp_alltoall_d11v(sb, scount, sdispl, rb, rcount, rdispl, group) + !! All-to-all data exchange, rank-1 data of different sizes + !! + !! MPI mapping + !! mpi_alltoallv + !! + !! Array sizes + !! The scount, rcount, and the sdispl and rdispl arrays have a + !! size equal to the number of processes. + !! + !! Offsets + !! Values in sdispl and rdispl start with 0. + + REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: sb(:) + !! Data to send + INTEGER, CONTIGUOUS, INTENT(IN) :: scount(:), sdispl(:) + !! Data counts for data sent to other processes + !! Respective data offsets for data sent to process + REAL(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: rb(:) + !! Buffer into which to receive data + INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:), rdispl(:) + !! Data counts for data received from other processes + !! Respective data offsets for data received from other processes + TYPE(mp_comm_type), INTENT(IN) :: group + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_d11v' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen +#else + INTEGER :: i +#endif + + CALL timeset(routineN, handle) + + ierr = 0 +#if defined(__parallel) + CALL mpi_alltoallv(sb, scount, sdispl, MPI_DOUBLE_PRECISION, & + rb, rcount, rdispl, MPI_DOUBLE_PRECISION, group%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoallv @ "//routineN) + msglen = SUM(scount) + SUM(rcount) + CALL add_perf(perf_id=6, msg_size=msglen*real_8_size) +#else + MARK_USED(group) + MARK_USED(scount) + MARK_USED(sdispl) +!$OMP PARALLEL DO DEFAULT(NONE) PRIVATE(i) SHARED(rcount,rdispl,sdispl,rb,sb) + DO i = 1, rcount(1) + rb(rdispl(1) + i) = sb(sdispl(1) + i) + END DO +#endif + CALL timestop(handle) + + END SUBROUTINE mp_alltoall_d11v + + SUBROUTINE mp_alltoall_d (sb, rb, count, group) + !! All-to-all data exchange, rank 1 arrays, equal sizes + !! + !! Index meaning + !! + !! The first two indices specify the data while the last index counts + !! the processes + !! + !! Sizes of ranks + !! All processes have the same data size. + !! + !! MPI mapping + !! mpi_alltoall + + REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: sb(:) + !! array with data to send + REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: rb(:) + !! array into which data is received + INTEGER, INTENT(IN) :: count + !! number of elements to send/receive (product of the extents of the first two dimensions) + TYPE(mp_comm_type), INTENT(IN) :: group + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_d' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, np +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + CALL mpi_alltoall(sb, count, MPI_DOUBLE_PRECISION, & + rb, count, MPI_DOUBLE_PRECISION, group%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoall @ "//routineN) + CALL mpi_comm_size(group%handle, np, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_size @ "//routineN) + msglen = 2*count*np + CALL add_perf(perf_id=6, msg_size=msglen*real_8_size) +#else + MARK_USED(count) + MARK_USED(group) + rb = sb +#endif + CALL timestop(handle) + + END SUBROUTINE mp_alltoall_d + + SUBROUTINE mp_alltoall_d22(sb, rb, count, group) + !! All-to-all data exchange, rank-2 arrays, equal sizes + !! @note see mp_alltoall_d + + REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: sb(:, :) + REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: rb(:, :) + INTEGER, INTENT(IN) :: count + TYPE(mp_comm_type), INTENT(IN) :: group + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_d22' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, np +#endif - REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: sb(:, :) - REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: rb(:, :) - INTEGER, INTENT(IN) :: count - TYPE(mp_comm_type), INTENT(IN) :: group - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_d22' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, np -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - CALL mpi_alltoall(sb, count, MPI_DOUBLE_PRECISION, & - rb, count, MPI_DOUBLE_PRECISION, group%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoall @ "//routineN) - CALL mpi_comm_size(group%handle, np, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_size @ "//routineN) - msglen = 2*SIZE(sb)*np - CALL add_perf(perf_id=6, msg_size=msglen*real_8_size) -#else - MARK_USED(count) - MARK_USED(group) - rb = sb -#endif - CALL timestop(handle) - - END SUBROUTINE mp_alltoall_d22 - - SUBROUTINE mp_alltoall_d44(sb, rb, count, group) - !! All-to-all data exchange, rank 4 data, equal sizes - !! @note see mp_alltoall_d - - REAL(kind=real_8), DIMENSION(:, :, :, :), CONTIGUOUS, & - INTENT(IN) :: sb - REAL(kind=real_8), DIMENSION(:, :, :, :), CONTIGUOUS, & - INTENT(OUT) :: rb - INTEGER, INTENT(IN) :: count - TYPE(mp_comm_type), INTENT(IN) :: group - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_d44' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, np -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - CALL mpi_alltoall(sb, count, MPI_DOUBLE_PRECISION, & - rb, count, MPI_DOUBLE_PRECISION, group%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoall @ "//routineN) - CALL mpi_comm_size(group%handle, np, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_size @ "//routineN) - msglen = 2*count*np - CALL add_perf(perf_id=6, msg_size=msglen*real_8_size) -#else - MARK_USED(count) - MARK_USED(group) - rb = sb -#endif - CALL timestop(handle) - - END SUBROUTINE mp_alltoall_d44 - - SUBROUTINE mp_send_d (msg, dest, tag, gid) - !! Send one datum to another process - !! - !! MPI mapping - !! mpi_send + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + CALL mpi_alltoall(sb, count, MPI_DOUBLE_PRECISION, & + rb, count, MPI_DOUBLE_PRECISION, group%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoall @ "//routineN) + CALL mpi_comm_size(group%handle, np, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_size @ "//routineN) + msglen = 2*SIZE(sb)*np + CALL add_perf(perf_id=6, msg_size=msglen*real_8_size) +#else + MARK_USED(count) + MARK_USED(group) + rb = sb +#endif + CALL timestop(handle) + + END SUBROUTINE mp_alltoall_d22 + + SUBROUTINE mp_alltoall_d44(sb, rb, count, group) + !! All-to-all data exchange, rank 4 data, equal sizes + !! @note see mp_alltoall_d + + REAL(kind=real_8), DIMENSION(:, :, :, :), CONTIGUOUS, & + INTENT(IN) :: sb + REAL(kind=real_8), DIMENSION(:, :, :, :), CONTIGUOUS, & + INTENT(OUT) :: rb + INTEGER, INTENT(IN) :: count + TYPE(mp_comm_type), INTENT(IN) :: group + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_d44' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, np +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + CALL mpi_alltoall(sb, count, MPI_DOUBLE_PRECISION, & + rb, count, MPI_DOUBLE_PRECISION, group%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoall @ "//routineN) + CALL mpi_comm_size(group%handle, np, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_size @ "//routineN) + msglen = 2*count*np + CALL add_perf(perf_id=6, msg_size=msglen*real_8_size) +#else + MARK_USED(count) + MARK_USED(group) + rb = sb +#endif + CALL timestop(handle) + + END SUBROUTINE mp_alltoall_d44 + + SUBROUTINE mp_send_d (msg, dest, tag, gid) + !! Send one datum to another process + !! + !! MPI mapping + !! mpi_send + + REAL(kind=real_8) :: msg + !! Scalar to send + INTEGER :: dest, tag + !! Destination process + !! Transfer identifier + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_send_d' + + INTEGER :: handle, ierr, msglen - REAL(kind=real_8) :: msg - !! Scalar to send - INTEGER :: dest, tag - !! Destination process - !! Transfer identifier - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_send_d' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = 1 -#if defined(__parallel) - CALL mpi_send(msg, msglen, MPI_DOUBLE_PRECISION, dest, tag, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_send @ "//routineN) - CALL add_perf(perf_id=13, msg_size=msglen*real_8_size) -#else - MARK_USED(msg) - MARK_USED(dest) - MARK_USED(tag) - MARK_USED(gid) - ! only defined in parallel - DBCSR_ABORT("not in parallel mode") -#endif - CALL timestop(handle) - END SUBROUTINE mp_send_d - - SUBROUTINE mp_send_dv(msg, dest, tag, gid) - !! Send rank-1 data to another process - !! @note see mp_send_d + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_send(msg, msglen, MPI_DOUBLE_PRECISION, dest, tag, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_send @ "//routineN) + CALL add_perf(perf_id=13, msg_size=msglen*real_8_size) +#else + MARK_USED(msg) + MARK_USED(dest) + MARK_USED(tag) + MARK_USED(gid) + ! only defined in parallel + DBCSR_ABORT("not in parallel mode") +#endif + CALL timestop(handle) + END SUBROUTINE mp_send_d + + SUBROUTINE mp_send_dv(msg, dest, tag, gid) + !! Send rank-1 data to another process + !! @note see mp_send_d + + REAL(kind=real_8), CONTIGUOUS :: msg(:) + !! Rank-1 data to send + INTEGER :: dest, tag + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_send_dv' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) - REAL(kind=real_8), CONTIGUOUS :: msg(:) - !! Rank-1 data to send - INTEGER :: dest, tag - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_send_dv' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_send(msg, msglen, MPI_DOUBLE_PRECISION, dest, tag, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_send @ "//routineN) - CALL add_perf(perf_id=13, msg_size=msglen*real_8_size) -#else - MARK_USED(msg) - MARK_USED(dest) - MARK_USED(tag) - MARK_USED(gid) - ! only defined in parallel - DBCSR_ABORT("not in parallel mode") -#endif - CALL timestop(handle) - END SUBROUTINE mp_send_dv - - SUBROUTINE mp_recv_d (msg, source, tag, gid) - !! Receive one datum from another process - !! - !! MPI mapping - !! mpi_send - - REAL(kind=real_8), INTENT(INOUT) :: msg - !! Place received data into this variable - INTEGER, INTENT(INOUT) :: source, tag - !! Process to receive from - !! Transfer identifier - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_recv_d' - - INTEGER :: handle, ierr, msglen -#if defined(__parallel) - MPI_STATUS_TYPE :: status -#endif - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = 1 -#if defined(__parallel) - CALL mpi_recv(msg, msglen, MPI_DOUBLE_PRECISION, source, tag, gid%handle, status, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_recv @ "//routineN) - CALL add_perf(perf_id=14, msg_size=msglen*real_8_size) - source = status MPI_STATUS_EXTRACT(MPI_SOURCE) - tag = status MPI_STATUS_EXTRACT(MPI_TAG) -#else - MARK_USED(msg) - MARK_USED(source) - MARK_USED(tag) - MARK_USED(gid) - ! only defined in parallel - DBCSR_ABORT("not in parallel mode") -#endif - CALL timestop(handle) - END SUBROUTINE mp_recv_d - - SUBROUTINE mp_recv_dv(msg, source, tag, gid) - !! Receive rank-1 data from another process - !! @note see mp_recv_d + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_send(msg, msglen, MPI_DOUBLE_PRECISION, dest, tag, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_send @ "//routineN) + CALL add_perf(perf_id=13, msg_size=msglen*real_8_size) +#else + MARK_USED(msg) + MARK_USED(dest) + MARK_USED(tag) + MARK_USED(gid) + ! only defined in parallel + DBCSR_ABORT("not in parallel mode") +#endif + CALL timestop(handle) + END SUBROUTINE mp_send_dv + + SUBROUTINE mp_recv_d (msg, source, tag, gid) + !! Receive one datum from another process + !! + !! MPI mapping + !! mpi_send + + REAL(kind=real_8), INTENT(INOUT) :: msg + !! Place received data into this variable + INTEGER, INTENT(INOUT) :: source, tag + !! Process to receive from + !! Transfer identifier + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_recv_d' + + INTEGER :: handle, ierr, msglen +#if defined(__parallel) + MPI_STATUS_TYPE :: status +#endif + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_recv(msg, msglen, MPI_DOUBLE_PRECISION, source, tag, gid%handle, status, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_recv @ "//routineN) + CALL add_perf(perf_id=14, msg_size=msglen*real_8_size) + source = status MPI_STATUS_EXTRACT(MPI_SOURCE) + tag = status MPI_STATUS_EXTRACT(MPI_TAG) +#else + MARK_USED(msg) + MARK_USED(source) + MARK_USED(tag) + MARK_USED(gid) + ! only defined in parallel + DBCSR_ABORT("not in parallel mode") +#endif + CALL timestop(handle) + END SUBROUTINE mp_recv_d + + SUBROUTINE mp_recv_dv(msg, source, tag, gid) + !! Receive rank-1 data from another process + !! @note see mp_recv_d + + REAL(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) + !! Place received data into this rank-1 array + INTEGER, INTENT(INOUT) :: source, tag + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_recv_dv' + + INTEGER :: handle, ierr, msglen +#if defined(__parallel) + MPI_STATUS_TYPE :: status +#endif - REAL(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) - !! Place received data into this rank-1 array - INTEGER, INTENT(INOUT) :: source, tag - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_recv_dv' - - INTEGER :: handle, ierr, msglen -#if defined(__parallel) - MPI_STATUS_TYPE :: status -#endif - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_recv(msg, msglen, MPI_DOUBLE_PRECISION, source, tag, gid%handle, status, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_recv @ "//routineN) - CALL add_perf(perf_id=14, msg_size=msglen*real_8_size) - source = status MPI_STATUS_EXTRACT(MPI_SOURCE) - tag = status MPI_STATUS_EXTRACT(MPI_TAG) -#else - MARK_USED(msg) - MARK_USED(source) - MARK_USED(tag) - MARK_USED(gid) - ! only defined in parallel - DBCSR_ABORT("not in parallel mode") -#endif - CALL timestop(handle) - END SUBROUTINE mp_recv_dv - - SUBROUTINE mp_bcast_d (msg, source, gid) - !! Broadcasts a datum to all processes. - !! - !! MPI mapping - !! mpi_bcast - - REAL(kind=real_8) :: msg - !! Datum to broadcast - INTEGER :: source - !! Processes which broadcasts - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_d' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = 1 -#if defined(__parallel) - CALL mpi_bcast(msg, msglen, MPI_DOUBLE_PRECISION, source, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) - CALL add_perf(perf_id=2, msg_size=msglen*real_8_size) -#else - MARK_USED(msg) - MARK_USED(source) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_bcast_d - - SUBROUTINE mp_ibcast_d (msg, source, gid, request) - !! Broadcasts a datum to all processes. - !! - !! MPI mapping - !! mpi_bcast + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_recv(msg, msglen, MPI_DOUBLE_PRECISION, source, tag, gid%handle, status, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_recv @ "//routineN) + CALL add_perf(perf_id=14, msg_size=msglen*real_8_size) + source = status MPI_STATUS_EXTRACT(MPI_SOURCE) + tag = status MPI_STATUS_EXTRACT(MPI_TAG) +#else + MARK_USED(msg) + MARK_USED(source) + MARK_USED(tag) + MARK_USED(gid) + ! only defined in parallel + DBCSR_ABORT("not in parallel mode") +#endif + CALL timestop(handle) + END SUBROUTINE mp_recv_dv + + SUBROUTINE mp_bcast_d (msg, source, gid) + !! Broadcasts a datum to all processes. + !! + !! MPI mapping + !! mpi_bcast + + REAL(kind=real_8) :: msg + !! Datum to broadcast + INTEGER :: source + !! Processes which broadcasts + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_d' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_bcast(msg, msglen, MPI_DOUBLE_PRECISION, source, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) + CALL add_perf(perf_id=2, msg_size=msglen*real_8_size) +#else + MARK_USED(msg) + MARK_USED(source) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_bcast_d + + SUBROUTINE mp_ibcast_d (msg, source, gid, request) + !! Broadcasts a datum to all processes. + !! + !! MPI mapping + !! mpi_bcast + + REAL(kind=real_8) :: msg + !! Datum to broadcast + INTEGER :: source + !! Processes which broadcasts + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_ibcast_d' + + INTEGER :: handle, ierr, msglen - REAL(kind=real_8) :: msg - !! Datum to broadcast - INTEGER :: source - !! Processes which broadcasts - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_ibcast_d' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = 1 -#if defined(__parallel) - CALL mpi_ibcast(msg, msglen, MPI_DOUBLE_PRECISION, source, gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_ibcast @ "//routineN) - CALL add_perf(perf_id=22, msg_size=msglen*real_8_size) -#else - MARK_USED(msg) - MARK_USED(source) - MARK_USED(gid) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_ibcast_d - - SUBROUTINE mp_bcast_dv(msg, source, gid) - !! Broadcasts rank-1 data to all processes - !! @note see mp_bcast_d1 + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_ibcast(msg, msglen, MPI_DOUBLE_PRECISION, source, gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_ibcast @ "//routineN) + CALL add_perf(perf_id=22, msg_size=msglen*real_8_size) +#else + MARK_USED(msg) + MARK_USED(source) + MARK_USED(gid) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_ibcast_d + + SUBROUTINE mp_bcast_dv(msg, source, gid) + !! Broadcasts rank-1 data to all processes + !! @note see mp_bcast_d1 + + REAL(kind=real_8), CONTIGUOUS :: msg(:) + !! Data to broadcast + INTEGER :: source + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_dv' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) - REAL(kind=real_8), CONTIGUOUS :: msg(:) - !! Data to broadcast - INTEGER :: source - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_dv' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_bcast(msg, msglen, MPI_DOUBLE_PRECISION, source, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) + CALL add_perf(perf_id=2, msg_size=msglen*real_8_size) +#else + MARK_USED(source) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_bcast_dv - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_bcast(msg, msglen, MPI_DOUBLE_PRECISION, source, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) - CALL add_perf(perf_id=2, msg_size=msglen*real_8_size) -#else - MARK_USED(source) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_bcast_dv + SUBROUTINE mp_ibcast_dv(msg, source, gid, request) + !! Broadcasts rank-1 data to all processes + !! @note see mp_bcast_d1 + + REAL(kind=real_8), CONTIGUOUS :: msg(:) + !! Data to broadcast + INTEGER :: source + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_ibcast_dv' - SUBROUTINE mp_ibcast_dv(msg, source, gid, request) - !! Broadcasts rank-1 data to all processes - !! @note see mp_bcast_d1 - - REAL(kind=real_8), CONTIGUOUS :: msg(:) - !! Data to broadcast - INTEGER :: source - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_ibcast_dv' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_ibcast(msg, msglen, MPI_DOUBLE_PRECISION, source, gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_ibcast @ "//routineN) - CALL add_perf(perf_id=22, msg_size=msglen*real_8_size) -#else - MARK_USED(source) - MARK_USED(gid) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_ibcast_dv - - SUBROUTINE mp_bcast_dm(msg, source, gid) - !! Broadcasts rank-2 data to all processes - !! @note see mp_bcast_d1 + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_ibcast(msg, msglen, MPI_DOUBLE_PRECISION, source, gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_ibcast @ "//routineN) + CALL add_perf(perf_id=22, msg_size=msglen*real_8_size) +#else + MARK_USED(source) + MARK_USED(gid) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_ibcast_dv + + SUBROUTINE mp_bcast_dm(msg, source, gid) + !! Broadcasts rank-2 data to all processes + !! @note see mp_bcast_d1 + + REAL(kind=real_8), CONTIGUOUS :: msg(:, :) + !! Data to broadcast + INTEGER :: source + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_im' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) - REAL(kind=real_8), CONTIGUOUS :: msg(:, :) - !! Data to broadcast - INTEGER :: source - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_im' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_bcast(msg, msglen, MPI_DOUBLE_PRECISION, source, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) + CALL add_perf(perf_id=2, msg_size=msglen*real_8_size) +#else + MARK_USED(source) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_bcast_dm - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_bcast(msg, msglen, MPI_DOUBLE_PRECISION, source, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) - CALL add_perf(perf_id=2, msg_size=msglen*real_8_size) -#else - MARK_USED(source) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_bcast_dm - - SUBROUTINE mp_bcast_d3(msg, source, gid) - !! Broadcasts rank-3 data to all processes - !! @note see mp_bcast_d1 + SUBROUTINE mp_bcast_d3(msg, source, gid) + !! Broadcasts rank-3 data to all processes + !! @note see mp_bcast_d1 + + REAL(kind=real_8), CONTIGUOUS :: msg(:, :, :) + !! Data to broadcast + INTEGER :: source + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_d3' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) - REAL(kind=real_8), CONTIGUOUS :: msg(:, :, :) - !! Data to broadcast - INTEGER :: source - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_d3' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_bcast(msg, msglen, MPI_DOUBLE_PRECISION, source, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) + CALL add_perf(perf_id=2, msg_size=msglen*real_8_size) +#else + MARK_USED(source) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_bcast_d3 - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_bcast(msg, msglen, MPI_DOUBLE_PRECISION, source, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) - CALL add_perf(perf_id=2, msg_size=msglen*real_8_size) -#else - MARK_USED(source) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_bcast_d3 - - SUBROUTINE mp_sum_d (msg, gid) - !! Sums a datum from all processes with result left on all processes. - !! - !! MPI mapping - !! mpi_allreduce + SUBROUTINE mp_sum_d (msg, gid) + !! Sums a datum from all processes with result left on all processes. + !! + !! MPI mapping + !! mpi_allreduce + + REAL(kind=real_8), INTENT(INOUT) :: msg + !! Datum to sum (input) and result (output) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_d' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) - REAL(kind=real_8), INTENT(INOUT) :: msg - !! Datum to sum (input) and result (output) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_d' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) + msglen = 1 +#if defined(__parallel) + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_PRECISION, MPI_SUM, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + CALL add_perf(perf_id=3, msg_size=msglen*real_8_size) +#else + MARK_USED(msg) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_sum_d - msglen = 1 -#if defined(__parallel) - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_PRECISION, MPI_SUM, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - CALL add_perf(perf_id=3, msg_size=msglen*real_8_size) -#else - MARK_USED(msg) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_sum_d - - SUBROUTINE mp_sum_dv(msg, gid) - !! Element-wise sum of a rank-1 array on all processes. - !! @note see mp_sum_d - - REAL(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) - !! Vector to sum and result - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_dv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - msglen = SIZE(msg) - IF (msglen > 0) THEN - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_PRECISION, MPI_SUM, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - END IF - CALL add_perf(perf_id=3, msg_size=msglen*real_8_size) -#else - MARK_USED(msg) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_sum_dv - - SUBROUTINE mp_isum_dv(msg, gid, request) - !! Element-wise sum of a rank-1 array on all processes. - !! @note see mp_sum_d + SUBROUTINE mp_sum_dv(msg, gid) + !! Element-wise sum of a rank-1 array on all processes. + !! @note see mp_sum_d + + REAL(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) + !! Vector to sum and result + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_dv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + msglen = SIZE(msg) + IF (msglen > 0) THEN + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_PRECISION, MPI_SUM, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + END IF + CALL add_perf(perf_id=3, msg_size=msglen*real_8_size) +#else + MARK_USED(msg) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_sum_dv + + SUBROUTINE mp_isum_dv(msg, gid, request) + !! Element-wise sum of a rank-1 array on all processes. + !! @note see mp_sum_d + + REAL(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) + !! Vector to sum and result + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isum_dv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen +#endif - REAL(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) - !! Vector to sum and result - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isum_dv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - msglen = SIZE(msg) - IF (msglen > 0) THEN - CALL mpi_iallreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_PRECISION, MPI_SUM, gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallreduce @ "//routineN) - ELSE - request = mp_request_null - END IF - CALL add_perf(perf_id=23, msg_size=msglen*real_8_size) -#else - MARK_USED(msg) - MARK_USED(gid) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_isum_dv - - SUBROUTINE mp_sum_dm(msg, gid) - !! Element-wise sum of a rank-2 array on all processes. - !! @note see mp_sum_d + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + msglen = SIZE(msg) + IF (msglen > 0) THEN + CALL mpi_iallreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_PRECISION, MPI_SUM, gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallreduce @ "//routineN) + ELSE + request = mp_request_null + END IF + CALL add_perf(perf_id=23, msg_size=msglen*real_8_size) +#else + MARK_USED(msg) + MARK_USED(gid) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_isum_dv + + SUBROUTINE mp_sum_dm(msg, gid) + !! Element-wise sum of a rank-2 array on all processes. + !! @note see mp_sum_d + + REAL(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:, :) + !! Matrix to sum and result + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_dm' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER, PARAMETER :: max_msg = 2**25 + INTEGER :: m1, msglen, step, msglensum +#endif - REAL(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:, :) - !! Matrix to sum and result - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_dm' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER, PARAMETER :: max_msg = 2**25 - INTEGER :: m1, msglen, step, msglensum -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - ! chunk up the call so that message sizes are limited, to avoid overflows in mpich triggered in large rpa calcs - step = MAX(1, SIZE(msg, 2)/MAX(1, SIZE(msg)/max_msg)) - msglensum = 0 - DO m1 = LBOUND(msg, 2), UBOUND(msg, 2), step - msglen = SIZE(msg, 1)*(MIN(UBOUND(msg, 2), m1 + step - 1) - m1 + 1) - msglensum = msglensum + msglen - IF (msglen > 0) THEN - CALL mpi_allreduce(MPI_IN_PLACE, msg(LBOUND(msg, 1), m1), msglen, MPI_DOUBLE_PRECISION, MPI_SUM, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - END IF - END DO - CALL add_perf(perf_id=3, msg_size=msglensum*real_8_size) -#else - MARK_USED(msg) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_sum_dm - - SUBROUTINE mp_sum_dm3(msg, gid) - !! Element-wise sum of a rank-3 array on all processes. - !! @note see mp_sum_d - - REAL(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:, :, :) - !! Array to sum and result - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_dm3' - - INTEGER :: handle, ierr, & - msglen - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - IF (msglen > 0) THEN - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_PRECISION, MPI_SUM, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - END IF - CALL add_perf(perf_id=3, msg_size=msglen*real_8_size) -#else - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_sum_dm3 - - SUBROUTINE mp_sum_dm4(msg, gid) - !! Element-wise sum of a rank-4 array on all processes. - !! @note see mp_sum_d + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + ! chunk up the call so that message sizes are limited, to avoid overflows in mpich triggered in large rpa calcs + step = MAX(1, SIZE(msg, 2)/MAX(1, SIZE(msg)/max_msg)) + msglensum = 0 + DO m1 = LBOUND(msg, 2), UBOUND(msg, 2), step + msglen = SIZE(msg, 1)*(MIN(UBOUND(msg, 2), m1 + step - 1) - m1 + 1) + msglensum = msglensum + msglen + IF (msglen > 0) THEN + CALL mpi_allreduce(MPI_IN_PLACE, msg(LBOUND(msg, 1), m1), msglen, MPI_DOUBLE_PRECISION, MPI_SUM, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + END IF + END DO + CALL add_perf(perf_id=3, msg_size=msglensum*real_8_size) +#else + MARK_USED(msg) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_sum_dm + + SUBROUTINE mp_sum_dm3(msg, gid) + !! Element-wise sum of a rank-3 array on all processes. + !! @note see mp_sum_d + + REAL(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:, :, :) + !! Array to sum and result + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_dm3' + + INTEGER :: handle, ierr, & + msglen + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + IF (msglen > 0) THEN + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_PRECISION, MPI_SUM, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + END IF + CALL add_perf(perf_id=3, msg_size=msglen*real_8_size) +#else + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_sum_dm3 + + SUBROUTINE mp_sum_dm4(msg, gid) + !! Element-wise sum of a rank-4 array on all processes. + !! @note see mp_sum_d + + REAL(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:, :, :, :) + !! Array to sum and result + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_dm4' + + INTEGER :: handle, ierr, & + msglen + + ierr = 0 + CALL timeset(routineN, handle) - REAL(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:, :, :, :) - !! Array to sum and result - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_dm4' - - INTEGER :: handle, ierr, & - msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - IF (msglen > 0) THEN - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_PRECISION, MPI_SUM, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - END IF - CALL add_perf(perf_id=3, msg_size=msglen*real_8_size) -#else - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_sum_dm4 - - SUBROUTINE mp_sum_root_dv(msg, root, gid) - !! Element-wise sum of data from all processes with result left only on - !! one. - !! - !! MPI mapping - !! mpi_reduce - - REAL(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) - !! Vector to sum (input) and (only on process root) result (output) - INTEGER, INTENT(IN) :: root - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_root_dv' - - INTEGER :: handle, ierr, msglen -#if defined(__parallel) - INTEGER :: m1, taskid - REAL(kind=real_8), ALLOCATABLE :: res(:) -#endif - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_comm_rank(gid%handle, taskid, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_rank @ "//routineN) - IF (msglen > 0) THEN - m1 = SIZE(msg, 1) - ALLOCATE (res(m1)) - CALL mpi_reduce(msg, res, msglen, MPI_DOUBLE_PRECISION, MPI_SUM, & - root, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_reduce @ "//routineN) - IF (taskid == root) THEN - msg = res - END IF - DEALLOCATE (res) - END IF - CALL add_perf(perf_id=3, msg_size=msglen*real_8_size) -#else - MARK_USED(root) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_sum_root_dv + msglen = SIZE(msg) +#if defined(__parallel) + IF (msglen > 0) THEN + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_PRECISION, MPI_SUM, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + END IF + CALL add_perf(perf_id=3, msg_size=msglen*real_8_size) +#else + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_sum_dm4 + + SUBROUTINE mp_sum_root_dv(msg, root, gid) + !! Element-wise sum of data from all processes with result left only on + !! one. + !! + !! MPI mapping + !! mpi_reduce + + REAL(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) + !! Vector to sum (input) and (only on process root) result (output) + INTEGER, INTENT(IN) :: root + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_root_dv' + + INTEGER :: handle, ierr, msglen +#if defined(__parallel) + INTEGER :: m1, taskid + REAL(kind=real_8), ALLOCATABLE :: res(:) +#endif + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_comm_rank(gid%handle, taskid, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_rank @ "//routineN) + IF (msglen > 0) THEN + m1 = SIZE(msg, 1) + ALLOCATE (res(m1)) + CALL mpi_reduce(msg, res, msglen, MPI_DOUBLE_PRECISION, MPI_SUM, & + root, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_reduce @ "//routineN) + IF (taskid == root) THEN + msg = res + END IF + DEALLOCATE (res) + END IF + CALL add_perf(perf_id=3, msg_size=msglen*real_8_size) +#else + MARK_USED(root) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_sum_root_dv + + SUBROUTINE mp_sum_root_dm(msg, root, gid) + !! Element-wise sum of data from all processes with result left only on + !! one. + !! @note see mp_sum_root_dv + + REAL(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:, :) + !! Matrix to sum (input) and (only on process root) result (output) + INTEGER, INTENT(IN) :: root + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_root_rm' - SUBROUTINE mp_sum_root_dm(msg, root, gid) - !! Element-wise sum of data from all processes with result left only on - !! one. - !! @note see mp_sum_root_dv - - REAL(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:, :) - !! Matrix to sum (input) and (only on process root) result (output) - INTEGER, INTENT(IN) :: root - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_root_rm' - - INTEGER :: handle, ierr, msglen -#if defined(__parallel) - INTEGER :: m1, m2, taskid - REAL(kind=real_8), ALLOCATABLE :: res(:, :) -#endif - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_comm_rank(gid%handle, taskid, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_rank @ "//routineN) - IF (msglen > 0) THEN - m1 = SIZE(msg, 1) - m2 = SIZE(msg, 2) - ALLOCATE (res(m1, m2)) - CALL mpi_reduce(msg, res, msglen, MPI_DOUBLE_PRECISION, MPI_SUM, root, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_reduce @ "//routineN) - IF (taskid == root) THEN - msg = res - END IF - DEALLOCATE (res) - END IF - CALL add_perf(perf_id=3, msg_size=msglen*real_8_size) -#else - MARK_USED(root) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_sum_root_dm + INTEGER :: handle, ierr, msglen +#if defined(__parallel) + INTEGER :: m1, m2, taskid + REAL(kind=real_8), ALLOCATABLE :: res(:, :) +#endif + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_comm_rank(gid%handle, taskid, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_rank @ "//routineN) + IF (msglen > 0) THEN + m1 = SIZE(msg, 1) + m2 = SIZE(msg, 2) + ALLOCATE (res(m1, m2)) + CALL mpi_reduce(msg, res, msglen, MPI_DOUBLE_PRECISION, MPI_SUM, root, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_reduce @ "//routineN) + IF (taskid == root) THEN + msg = res + END IF + DEALLOCATE (res) + END IF + CALL add_perf(perf_id=3, msg_size=msglen*real_8_size) +#else + MARK_USED(root) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_sum_root_dm + + SUBROUTINE mp_sum_partial_dm(msg, res, gid) + !! Partial sum of data from all processes with result on each process. + + REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msg(:, :) + !! Matrix to sum (input) + REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: res(:, :) + !! Matrix containing result (output) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_partial_dm' - SUBROUTINE mp_sum_partial_dm(msg, res, gid) - !! Partial sum of data from all processes with result on each process. - - REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msg(:, :) - !! Matrix to sum (input) - REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: res(:, :) - !! Matrix containing result (output) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_partial_dm' - - INTEGER :: handle, ierr, msglen -#if defined(__parallel) - INTEGER :: taskid -#endif - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_comm_rank(gid%handle, taskid, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_rank @ "//routineN) - IF (msglen > 0) THEN - CALL mpi_scan(msg, res, msglen, MPI_DOUBLE_PRECISION, MPI_SUM, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_scan @ "//routineN) - END IF - CALL add_perf(perf_id=3, msg_size=msglen*real_8_size) - ! perf_id is same as for other summation routines -#else - res = msg - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_sum_partial_dm - - SUBROUTINE mp_max_d (msg, gid) - !! Finds the maximum of a datum with the result left on all processes. - !! - !! MPI mapping - !! mpi_allreduce + INTEGER :: handle, ierr, msglen +#if defined(__parallel) + INTEGER :: taskid +#endif + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_comm_rank(gid%handle, taskid, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_rank @ "//routineN) + IF (msglen > 0) THEN + CALL mpi_scan(msg, res, msglen, MPI_DOUBLE_PRECISION, MPI_SUM, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_scan @ "//routineN) + END IF + CALL add_perf(perf_id=3, msg_size=msglen*real_8_size) + ! perf_id is same as for other summation routines +#else + res = msg + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_sum_partial_dm + + SUBROUTINE mp_max_d (msg, gid) + !! Finds the maximum of a datum with the result left on all processes. + !! + !! MPI mapping + !! mpi_allreduce + + REAL(kind=real_8), INTENT(INOUT) :: msg + !! Find maximum among these data (input) and maximum (output) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_max_d' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) - REAL(kind=real_8), INTENT(INOUT) :: msg - !! Find maximum among these data (input) and maximum (output) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_max_d' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) + msglen = 1 +#if defined(__parallel) + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_PRECISION, MPI_MAX, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + CALL add_perf(perf_id=3, msg_size=msglen*real_8_size) +#else + MARK_USED(msg) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_max_d - msglen = 1 -#if defined(__parallel) - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_PRECISION, MPI_MAX, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - CALL add_perf(perf_id=3, msg_size=msglen*real_8_size) -#else - MARK_USED(msg) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_max_d - - SUBROUTINE mp_max_dv(msg, gid) - !! Finds the element-wise maximum of a vector with the result left on - !! all processes. - !! @note see mp_max_d - - REAL(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) - !! Find maximum among these data (input) and maximum (output) - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_max_dv' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_PRECISION, MPI_MAX, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - CALL add_perf(perf_id=3, msg_size=msglen*real_8_size) -#else - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_max_dv - - SUBROUTINE mp_min_d (msg, gid) - !! Finds the minimum of a datum with the result left on all processes. - !! - !! MPI mapping - !! mpi_allreduce + SUBROUTINE mp_max_dv(msg, gid) + !! Finds the element-wise maximum of a vector with the result left on + !! all processes. + !! @note see mp_max_d + + REAL(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) + !! Find maximum among these data (input) and maximum (output) + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_max_dv' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_PRECISION, MPI_MAX, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + CALL add_perf(perf_id=3, msg_size=msglen*real_8_size) +#else + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_max_dv + + SUBROUTINE mp_min_d (msg, gid) + !! Finds the minimum of a datum with the result left on all processes. + !! + !! MPI mapping + !! mpi_allreduce + + REAL(kind=real_8), INTENT(INOUT) :: msg + !! Find minimum among these data (input) and maximum (output) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_min_d' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) - REAL(kind=real_8), INTENT(INOUT) :: msg - !! Find minimum among these data (input) and maximum (output) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_min_d' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) + msglen = 1 +#if defined(__parallel) + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_PRECISION, MPI_MIN, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + CALL add_perf(perf_id=3, msg_size=msglen*real_8_size) +#else + MARK_USED(msg) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_min_d - msglen = 1 -#if defined(__parallel) - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_PRECISION, MPI_MIN, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - CALL add_perf(perf_id=3, msg_size=msglen*real_8_size) -#else - MARK_USED(msg) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_min_d + SUBROUTINE mp_min_dv(msg, gid) + !! Finds the element-wise minimum of vector with the result left on + !! all processes. + !! + !! MPI mapping + !! mpi_allreduce + !! @note see mp_min_d + + REAL(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) + !! Find minimum among these data (input) and maximum (output) + TYPE(mp_comm_type), INTENT(IN) :: gid - SUBROUTINE mp_min_dv(msg, gid) - !! Finds the element-wise minimum of vector with the result left on - !! all processes. - !! - !! MPI mapping - !! mpi_allreduce - !! @note see mp_min_d - - REAL(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) - !! Find minimum among these data (input) and maximum (output) - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_min_dv' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_PRECISION, MPI_MIN, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - CALL add_perf(perf_id=3, msg_size=msglen*real_8_size) -#else - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_min_dv + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_min_dv' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_PRECISION, MPI_MIN, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + CALL add_perf(perf_id=3, msg_size=msglen*real_8_size) +#else + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_min_dv + + SUBROUTINE mp_prod_d (msg, gid) + !! Multiplies a set of numbers scattered across a number of processes, + !! then replicates the result. + !! + !! MPI mapping + !! mpi_allreduce + + REAL(kind=real_8), INTENT(INOUT) :: msg + !! a number to multiply (input) and result (output) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! message passing environment identifier - SUBROUTINE mp_prod_d (msg, gid) - !! Multiplies a set of numbers scattered across a number of processes, - !! then replicates the result. - !! - !! MPI mapping - !! mpi_allreduce + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_d' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) - REAL(kind=real_8), INTENT(INOUT) :: msg - !! a number to multiply (input) and result (output) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_d' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) + msglen = 1 +#if defined(__parallel) + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_PRECISION, MPI_PROD, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + CALL add_perf(perf_id=3, msg_size=msglen*real_8_size) +#else + MARK_USED(msg) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_prod_d - msglen = 1 -#if defined(__parallel) - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_PRECISION, MPI_PROD, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - CALL add_perf(perf_id=3, msg_size=msglen*real_8_size) -#else - MARK_USED(msg) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_prod_d - - SUBROUTINE mp_iscatter_d (msg_scatter, msg, root, gid, request) - !! Scatters data from one processes to all others - !! - !! MPI mapping - !! mpi_scatter - - REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msg_scatter(:) - !! Data to scatter (for root process) - REAL(kind=real_8), INTENT(INOUT) :: msg - INTEGER, INTENT(IN) :: root - !! Process which scatters data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iscatter_d' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = 1 -#if defined(__parallel) - CALL mpi_iscatter(msg_scatter, msglen, MPI_DOUBLE_PRECISION, msg, & - msglen, MPI_DOUBLE_PRECISION, root, gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iscatter @ "//routineN) - CALL add_perf(perf_id=24, msg_size=1*real_8_size) -#else - MARK_USED(root) - MARK_USED(gid) - msg = msg_scatter(1) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iscatter_d - - SUBROUTINE mp_iscatter_dv2(msg_scatter, msg, root, gid, request) - !! Scatters data from one processes to all others - !! - !! MPI mapping - !! mpi_scatter - - REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msg_scatter(:, :) - !! Data to scatter (for root process) - REAL(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) - INTEGER, INTENT(IN) :: root - !! Process which scatters data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iscatter_dv2' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_iscatter(msg_scatter, msglen, MPI_DOUBLE_PRECISION, msg, & - msglen, MPI_DOUBLE_PRECISION, root, gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iscatter @ "//routineN) - CALL add_perf(perf_id=24, msg_size=1*real_8_size) -#else - MARK_USED(root) - MARK_USED(gid) - msg(:) = msg_scatter(:, 1) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iscatter_dv2 - - SUBROUTINE mp_iscatterv_dv(msg_scatter, sendcounts, displs, msg, recvcount, root, gid, request) - !! Scatters data from one processes to all others - !! - !! MPI mapping - !! mpi_scatter + SUBROUTINE mp_iscatter_d (msg_scatter, msg, root, gid, request) + !! Scatters data from one processes to all others + !! + !! MPI mapping + !! mpi_scatter + + REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msg_scatter(:) + !! Data to scatter (for root process) + REAL(kind=real_8), INTENT(INOUT) :: msg + INTEGER, INTENT(IN) :: root + !! Process which scatters data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iscatter_d' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_iscatter(msg_scatter, msglen, MPI_DOUBLE_PRECISION, msg, & + msglen, MPI_DOUBLE_PRECISION, root, gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iscatter @ "//routineN) + CALL add_perf(perf_id=24, msg_size=1*real_8_size) +#else + MARK_USED(root) + MARK_USED(gid) + msg = msg_scatter(1) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iscatter_d + + SUBROUTINE mp_iscatter_dv2(msg_scatter, msg, root, gid, request) + !! Scatters data from one processes to all others + !! + !! MPI mapping + !! mpi_scatter + + REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msg_scatter(:, :) + !! Data to scatter (for root process) + REAL(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) + INTEGER, INTENT(IN) :: root + !! Process which scatters data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iscatter_dv2' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_iscatter(msg_scatter, msglen, MPI_DOUBLE_PRECISION, msg, & + msglen, MPI_DOUBLE_PRECISION, root, gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iscatter @ "//routineN) + CALL add_perf(perf_id=24, msg_size=1*real_8_size) +#else + MARK_USED(root) + MARK_USED(gid) + msg(:) = msg_scatter(:, 1) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iscatter_dv2 + + SUBROUTINE mp_iscatterv_dv(msg_scatter, sendcounts, displs, msg, recvcount, root, gid, request) + !! Scatters data from one processes to all others + !! + !! MPI mapping + !! mpi_scatter + + REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msg_scatter(:) + !! Data to scatter (for root process) + INTEGER, CONTIGUOUS, INTENT(IN) :: sendcounts(:), displs(:) + REAL(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) + INTEGER, INTENT(IN) :: recvcount, root + !! Process which scatters data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iscatterv_dv' - REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msg_scatter(:) - !! Data to scatter (for root process) - INTEGER, CONTIGUOUS, INTENT(IN) :: sendcounts(:), displs(:) - REAL(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) - INTEGER, INTENT(IN) :: recvcount, root - !! Process which scatters data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iscatterv_dv' - - INTEGER :: handle, ierr - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - CALL mpi_iscatterv(msg_scatter, sendcounts, displs, MPI_DOUBLE_PRECISION, msg, & - recvcount, MPI_DOUBLE_PRECISION, root, gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iscatterv @ "//routineN) - CALL add_perf(perf_id=24, msg_size=1*real_8_size) -#else - MARK_USED(sendcounts) - MARK_USED(displs) - MARK_USED(recvcount) - MARK_USED(root) - MARK_USED(gid) - msg(1:recvcount) = msg_scatter(1 + displs(1):1 + displs(1) + sendcounts(1)) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iscatterv_dv - - SUBROUTINE mp_gather_d (msg, msg_gather, root, gid) - !! Gathers a datum from all processes to one - !! - !! MPI mapping - !! mpi_gather - - REAL(kind=real_8), INTENT(IN) :: msg - !! Datum to send to root - REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msg_gather(:) - !! Received data (on root) - INTEGER, INTENT(IN) :: root - !! Process which gathers the data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gather_d' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = 1 -#if defined(__parallel) - CALL mpi_gather(msg, msglen, MPI_DOUBLE_PRECISION, msg_gather, & - msglen, MPI_DOUBLE_PRECISION, root, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gather @ "//routineN) - CALL add_perf(perf_id=4, msg_size=msglen*real_8_size) -#else - MARK_USED(root) - MARK_USED(gid) - msg_gather(1) = msg -#endif - CALL timestop(handle) - END SUBROUTINE mp_gather_d - - SUBROUTINE mp_gather_dv(msg, msg_gather, root, gid) - !! Gathers data from all processes to one - !! - !! Data length - !! All data (msg) is equal-sized - !! - !! MPI mapping - !! mpi_gather - !! @note see mp_gather_d - - REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msg(:) - !! Datum to send to root - REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msg_gather(:) - INTEGER, INTENT(IN) :: root - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gather_dv' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_gather(msg, msglen, MPI_DOUBLE_PRECISION, msg_gather, & - msglen, MPI_DOUBLE_PRECISION, root, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gather @ "//routineN) - CALL add_perf(perf_id=4, msg_size=msglen*real_8_size) -#else - MARK_USED(root) - MARK_USED(gid) - msg_gather = msg -#endif - CALL timestop(handle) - END SUBROUTINE mp_gather_dv - - SUBROUTINE mp_gather_dm(msg, msg_gather, root, gid) - !! Gathers data from all processes to one - !! - !! Data length - !! All data (msg) is equal-sized - !! - !! MPI mapping - !! mpi_gather - !! @note see mp_gather_d - - REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msg(:, :) - !! Datum to send to root - REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msg_gather(:, :) - INTEGER, INTENT(IN) :: root - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gather_dm' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_gather(msg, msglen, MPI_DOUBLE_PRECISION, msg_gather, & - msglen, MPI_DOUBLE_PRECISION, root, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gather @ "//routineN) - CALL add_perf(perf_id=4, msg_size=msglen*real_8_size) -#else - MARK_USED(root) - MARK_USED(gid) - msg_gather = msg -#endif - CALL timestop(handle) - END SUBROUTINE mp_gather_dm + INTEGER :: handle, ierr + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + CALL mpi_iscatterv(msg_scatter, sendcounts, displs, MPI_DOUBLE_PRECISION, msg, & + recvcount, MPI_DOUBLE_PRECISION, root, gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iscatterv @ "//routineN) + CALL add_perf(perf_id=24, msg_size=1*real_8_size) +#else + MARK_USED(sendcounts) + MARK_USED(displs) + MARK_USED(recvcount) + MARK_USED(root) + MARK_USED(gid) + msg(1:recvcount) = msg_scatter(1 + displs(1):1 + displs(1) + sendcounts(1)) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iscatterv_dv + + SUBROUTINE mp_gather_d (msg, msg_gather, root, gid) + !! Gathers a datum from all processes to one + !! + !! MPI mapping + !! mpi_gather + + REAL(kind=real_8), INTENT(IN) :: msg + !! Datum to send to root + REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msg_gather(:) + !! Received data (on root) + INTEGER, INTENT(IN) :: root + !! Process which gathers the data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gather_d' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_gather(msg, msglen, MPI_DOUBLE_PRECISION, msg_gather, & + msglen, MPI_DOUBLE_PRECISION, root, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gather @ "//routineN) + CALL add_perf(perf_id=4, msg_size=msglen*real_8_size) +#else + MARK_USED(root) + MARK_USED(gid) + msg_gather(1) = msg +#endif + CALL timestop(handle) + END SUBROUTINE mp_gather_d + + SUBROUTINE mp_gather_dv(msg, msg_gather, root, gid) + !! Gathers data from all processes to one + !! + !! Data length + !! All data (msg) is equal-sized + !! + !! MPI mapping + !! mpi_gather + !! @note see mp_gather_d + + REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msg(:) + !! Datum to send to root + REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msg_gather(:) + INTEGER, INTENT(IN) :: root + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gather_dv' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_gather(msg, msglen, MPI_DOUBLE_PRECISION, msg_gather, & + msglen, MPI_DOUBLE_PRECISION, root, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gather @ "//routineN) + CALL add_perf(perf_id=4, msg_size=msglen*real_8_size) +#else + MARK_USED(root) + MARK_USED(gid) + msg_gather = msg +#endif + CALL timestop(handle) + END SUBROUTINE mp_gather_dv + + SUBROUTINE mp_gather_dm(msg, msg_gather, root, gid) + !! Gathers data from all processes to one + !! + !! Data length + !! All data (msg) is equal-sized + !! + !! MPI mapping + !! mpi_gather + !! @note see mp_gather_d + + REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msg(:, :) + !! Datum to send to root + REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msg_gather(:, :) + INTEGER, INTENT(IN) :: root + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gather_dm' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_gather(msg, msglen, MPI_DOUBLE_PRECISION, msg_gather, & + msglen, MPI_DOUBLE_PRECISION, root, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gather @ "//routineN) + CALL add_perf(perf_id=4, msg_size=msglen*real_8_size) +#else + MARK_USED(root) + MARK_USED(gid) + msg_gather = msg +#endif + CALL timestop(handle) + END SUBROUTINE mp_gather_dm + + SUBROUTINE mp_gatherv_dv(sendbuf, recvbuf, recvcounts, displs, root, comm) + !! Gathers data from all processes to one. + !! + !! Data length + !! Data can have different lengths + !! + !! Offsets + !! Offsets start at 0 + !! + !! MPI mapping + !! mpi_gather - SUBROUTINE mp_gatherv_dv(sendbuf, recvbuf, recvcounts, displs, root, comm) - !! Gathers data from all processes to one. - !! - !! Data length - !! Data can have different lengths - !! - !! Offsets - !! Offsets start at 0 - !! - !! MPI mapping - !! mpi_gather + REAL(kind=real_8), DIMENSION(:), CONTIGUOUS, INTENT(IN) :: sendbuf + !! Data to send to root + REAL(kind=real_8), DIMENSION(:), CONTIGUOUS, INTENT(OUT) :: recvbuf + !! Received data (on root) + INTEGER, DIMENSION(:), CONTIGUOUS, INTENT(IN) :: recvcounts, displs + !! Sizes of data received from processes + !! Offsets of data received from processes + INTEGER, INTENT(IN) :: root + !! Process which gathers the data + TYPE(mp_comm_type), INTENT(IN) :: comm + !! Message passing environment identifier - REAL(kind=real_8), DIMENSION(:), CONTIGUOUS, INTENT(IN) :: sendbuf - !! Data to send to root - REAL(kind=real_8), DIMENSION(:), CONTIGUOUS, INTENT(OUT) :: recvbuf - !! Received data (on root) - INTEGER, DIMENSION(:), CONTIGUOUS, INTENT(IN) :: recvcounts, displs - !! Sizes of data received from processes - !! Offsets of data received from processes - INTEGER, INTENT(IN) :: root - !! Process which gathers the data - TYPE(mp_comm_type), INTENT(IN) :: comm - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gatherv_dv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: sendcount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - sendcount = SIZE(sendbuf) - CALL mpi_gatherv(sendbuf, sendcount, MPI_DOUBLE_PRECISION, & - recvbuf, recvcounts, displs, MPI_DOUBLE_PRECISION, & - root, comm%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gatherv @ "//routineN) - CALL add_perf(perf_id=4, & - msg_size=sendcount*real_8_size) -#else - MARK_USED(recvcounts) - MARK_USED(root) - MARK_USED(comm) - recvbuf(1 + displs(1):) = sendbuf -#endif - CALL timestop(handle) - END SUBROUTINE mp_gatherv_dv - - SUBROUTINE mp_allgather_d (msgout, msgin, gid) - !! Gathers a datum from all processes and all processes receive the - !! same data - !! - !! Data size - !! All processes send equal-sized data - !! - !! MPI mapping - !! mpi_allgather - - REAL(kind=real_8), INTENT(IN) :: msgout - !! Datum to send - REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) - !! Received data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_d' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = 1 - rcount = 1 - CALL MPI_ALLGATHER(msgout, scount, MPI_DOUBLE_PRECISION, & - msgin, rcount, MPI_DOUBLE_PRECISION, & - gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) -#else - MARK_USED(gid) - msgin = msgout -#endif - CALL timestop(handle) - END SUBROUTINE mp_allgather_d - - SUBROUTINE mp_allgather_d2(msgout, msgin, gid) - !! Gathers a datum from all processes and all processes receive the - !! same data - !! - !! Data size - !! All processes send equal-sized data - !! - !! MPI mapping - !! mpi_allgather - - REAL(kind=real_8), INTENT(IN) :: msgout - !! Datum to send - REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) - !! Received data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_d2' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = 1 - rcount = 1 - CALL MPI_ALLGATHER(msgout, scount, MPI_DOUBLE_PRECISION, & - msgin, rcount, MPI_DOUBLE_PRECISION, & - gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) -#else - MARK_USED(gid) - msgin = msgout -#endif - CALL timestop(handle) - END SUBROUTINE mp_allgather_d2 - - SUBROUTINE mp_iallgather_d (msgout, msgin, gid, request) - !! Gathers a datum from all processes and all processes receive the - !! same data - !! - !! Data size - !! All processes send equal-sized data - !! - !! MPI mapping - !! mpi_allgather - - REAL(kind=real_8), INTENT(IN) :: msgout - !! Datum to send - REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) - !! Received data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_d' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = 1 - rcount = 1 - CALL MPI_IALLGATHER(msgout, scount, MPI_DOUBLE_PRECISION, & - msgin, rcount, MPI_DOUBLE_PRECISION, & - gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) -#else - MARK_USED(gid) - msgin = msgout - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgather_d - - SUBROUTINE mp_allgather_d12(msgout, msgin, gid) - !! Gathers vector data from all processes and all processes receive the - !! same data - !! - !! Data size - !! All processes send equal-sized data - !! - !! Ranks - !! The last rank counts the processes - !! - !! MPI mapping - !! mpi_allgather - - REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:) - !! Rank-1 data to send - REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) - !! Received data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_d12' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:)) - rcount = scount - CALL MPI_ALLGATHER(msgout, scount, MPI_DOUBLE_PRECISION, & - msgin, rcount, MPI_DOUBLE_PRECISION, & - gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, 1) = msgout(:) -#endif - CALL timestop(handle) - END SUBROUTINE mp_allgather_d12 + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gatherv_dv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: sendcount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + sendcount = SIZE(sendbuf) + CALL mpi_gatherv(sendbuf, sendcount, MPI_DOUBLE_PRECISION, & + recvbuf, recvcounts, displs, MPI_DOUBLE_PRECISION, & + root, comm%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gatherv @ "//routineN) + CALL add_perf(perf_id=4, & + msg_size=sendcount*real_8_size) +#else + MARK_USED(recvcounts) + MARK_USED(root) + MARK_USED(comm) + recvbuf(1 + displs(1):) = sendbuf +#endif + CALL timestop(handle) + END SUBROUTINE mp_gatherv_dv + + SUBROUTINE mp_allgather_d (msgout, msgin, gid) + !! Gathers a datum from all processes and all processes receive the + !! same data + !! + !! Data size + !! All processes send equal-sized data + !! + !! MPI mapping + !! mpi_allgather + + REAL(kind=real_8), INTENT(IN) :: msgout + !! Datum to send + REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) + !! Received data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_d' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = 1 + rcount = 1 + CALL MPI_ALLGATHER(msgout, scount, MPI_DOUBLE_PRECISION, & + msgin, rcount, MPI_DOUBLE_PRECISION, & + gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) +#else + MARK_USED(gid) + msgin = msgout +#endif + CALL timestop(handle) + END SUBROUTINE mp_allgather_d + + SUBROUTINE mp_allgather_d2(msgout, msgin, gid) + !! Gathers a datum from all processes and all processes receive the + !! same data + !! + !! Data size + !! All processes send equal-sized data + !! + !! MPI mapping + !! mpi_allgather + + REAL(kind=real_8), INTENT(IN) :: msgout + !! Datum to send + REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) + !! Received data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_d2' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = 1 + rcount = 1 + CALL MPI_ALLGATHER(msgout, scount, MPI_DOUBLE_PRECISION, & + msgin, rcount, MPI_DOUBLE_PRECISION, & + gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) +#else + MARK_USED(gid) + msgin = msgout +#endif + CALL timestop(handle) + END SUBROUTINE mp_allgather_d2 + + SUBROUTINE mp_iallgather_d (msgout, msgin, gid, request) + !! Gathers a datum from all processes and all processes receive the + !! same data + !! + !! Data size + !! All processes send equal-sized data + !! + !! MPI mapping + !! mpi_allgather + + REAL(kind=real_8), INTENT(IN) :: msgout + !! Datum to send + REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) + !! Received data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_d' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = 1 + rcount = 1 + CALL MPI_IALLGATHER(msgout, scount, MPI_DOUBLE_PRECISION, & + msgin, rcount, MPI_DOUBLE_PRECISION, & + gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) +#else + MARK_USED(gid) + msgin = msgout + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgather_d + + SUBROUTINE mp_allgather_d12(msgout, msgin, gid) + !! Gathers vector data from all processes and all processes receive the + !! same data + !! + !! Data size + !! All processes send equal-sized data + !! + !! Ranks + !! The last rank counts the processes + !! + !! MPI mapping + !! mpi_allgather + + REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:) + !! Rank-1 data to send + REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) + !! Received data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_d12' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:)) + rcount = scount + CALL MPI_ALLGATHER(msgout, scount, MPI_DOUBLE_PRECISION, & + msgin, rcount, MPI_DOUBLE_PRECISION, & + gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, 1) = msgout(:) +#endif + CALL timestop(handle) + END SUBROUTINE mp_allgather_d12 + + SUBROUTINE mp_allgather_d23(msgout, msgin, gid) + !! Gathers matrix data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_d12 + + REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:, :) + !! Rank-2 data to send + REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :) + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_d23' - SUBROUTINE mp_allgather_d23(msgout, msgin, gid) - !! Gathers matrix data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_d12 + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif - REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:, :) - !! Rank-2 data to send - REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :) - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_d23' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:, :)) - rcount = scount - CALL MPI_ALLGATHER(msgout, scount, MPI_DOUBLE_PRECISION, & - msgin, rcount, MPI_DOUBLE_PRECISION, & - gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, :, 1) = msgout(:, :) -#endif - CALL timestop(handle) - END SUBROUTINE mp_allgather_d23 + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:, :)) + rcount = scount + CALL MPI_ALLGATHER(msgout, scount, MPI_DOUBLE_PRECISION, & + msgin, rcount, MPI_DOUBLE_PRECISION, & + gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, :, 1) = msgout(:, :) +#endif + CALL timestop(handle) + END SUBROUTINE mp_allgather_d23 + + SUBROUTINE mp_allgather_d34(msgout, msgin, gid) + !! Gathers rank-3 data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_d12 + + REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:, :, :) + !! Rank-3 data to send + REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :, :) + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_d34' - SUBROUTINE mp_allgather_d34(msgout, msgin, gid) - !! Gathers rank-3 data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_d12 + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif - REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:, :, :) - !! Rank-3 data to send - REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :, :) - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_d34' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:, :, :)) - rcount = scount - CALL MPI_ALLGATHER(msgout, scount, MPI_DOUBLE_PRECISION, & - msgin, rcount, MPI_DOUBLE_PRECISION, & - gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, :, :, 1) = msgout(:, :, :) -#endif - CALL timestop(handle) - END SUBROUTINE mp_allgather_d34 + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:, :, :)) + rcount = scount + CALL MPI_ALLGATHER(msgout, scount, MPI_DOUBLE_PRECISION, & + msgin, rcount, MPI_DOUBLE_PRECISION, & + gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, :, :, 1) = msgout(:, :, :) +#endif + CALL timestop(handle) + END SUBROUTINE mp_allgather_d34 + + SUBROUTINE mp_allgather_d22(msgout, msgin, gid) + !! Gathers rank-2 data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_d12 + + REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:, :) + !! Rank-2 data to send + REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_d22' - SUBROUTINE mp_allgather_d22(msgout, msgin, gid) - !! Gathers rank-2 data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_d12 + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif - REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:, :) - !! Rank-2 data to send - REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_d22' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:, :)) - rcount = scount - CALL MPI_ALLGATHER(msgout, scount, MPI_DOUBLE_PRECISION, & - msgin, rcount, MPI_DOUBLE_PRECISION, & - gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, :) = msgout(:, :) -#endif - CALL timestop(handle) - END SUBROUTINE mp_allgather_d22 - - SUBROUTINE mp_iallgather_d11(msgout, msgin, gid, request) - !! Gathers rank-1 data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_d11 - - REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:) - !! Rank-1 data to send - REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(OUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_d11' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:)) - rcount = scount - CALL MPI_IALLGATHER(msgout, scount, MPI_DOUBLE_PRECISION, & - msgin, rcount, MPI_DOUBLE_PRECISION, & - gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) -#else - MARK_USED(gid) - msgin = msgout - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgather_d11 - - SUBROUTINE mp_iallgather_d13(msgout, msgin, gid, request) - !! Gathers rank-2 data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_d12 - - REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:) - !! Rank-2 data to send - REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :) - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(OUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_d13' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:)) - rcount = scount - CALL MPI_IALLGATHER(msgout, scount, MPI_DOUBLE_PRECISION, & - msgin, rcount, MPI_DOUBLE_PRECISION, & - gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, 1, 1) = msgout(:) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgather_d13 - - SUBROUTINE mp_iallgather_d22(msgout, msgin, gid, request) - !! Gathers rank-2 data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_d12 - - REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:, :) - !! Rank-2 data to send - REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(OUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_d22' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:, :)) - rcount = scount - CALL MPI_IALLGATHER(msgout, scount, MPI_DOUBLE_PRECISION, & - msgin, rcount, MPI_DOUBLE_PRECISION, & - gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, :) = msgout(:, :) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgather_d22 - - SUBROUTINE mp_iallgather_d24(msgout, msgin, gid, request) - !! Gathers rank-2 data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_d12 - - REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:, :) - !! Rank-2 data to send - REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :, :) - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(OUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_d24' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:, :)) - rcount = scount - CALL MPI_IALLGATHER(msgout, scount, MPI_DOUBLE_PRECISION, & - msgin, rcount, MPI_DOUBLE_PRECISION, & - gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, :, 1, 1) = msgout(:, :) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgather_d24 - - SUBROUTINE mp_iallgather_d33(msgout, msgin, gid, request) - !! Gathers rank-3 data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_d12 - - REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:, :, :) - !! Rank-3 data to send - REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :) - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(OUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_d33' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:, :, :)) - rcount = scount - CALL MPI_IALLGATHER(msgout, scount, MPI_DOUBLE_PRECISION, & - msgin, rcount, MPI_DOUBLE_PRECISION, & - gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, :, :) = msgout(:, :, :) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgather_d33 - - SUBROUTINE mp_allgatherv_dv(msgout, msgin, rcount, rdispl, gid) - !! Gathers vector data from all processes and all processes receive the - !! same data - !! - !! Data size - !! Processes can send different-sized data - !! - !! Ranks - !! The last rank counts the processes - !! - !! Offsets - !! Offsets are from 0 - !! - !! MPI mapping - !! mpi_allgather + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:, :)) + rcount = scount + CALL MPI_ALLGATHER(msgout, scount, MPI_DOUBLE_PRECISION, & + msgin, rcount, MPI_DOUBLE_PRECISION, & + gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, :) = msgout(:, :) +#endif + CALL timestop(handle) + END SUBROUTINE mp_allgather_d22 + + SUBROUTINE mp_iallgather_d11(msgout, msgin, gid, request) + !! Gathers rank-1 data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_d11 + + REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:) + !! Rank-1 data to send + REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(OUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_d11' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:)) + rcount = scount + CALL MPI_IALLGATHER(msgout, scount, MPI_DOUBLE_PRECISION, & + msgin, rcount, MPI_DOUBLE_PRECISION, & + gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) +#else + MARK_USED(gid) + msgin = msgout + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgather_d11 + + SUBROUTINE mp_iallgather_d13(msgout, msgin, gid, request) + !! Gathers rank-2 data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_d12 + + REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:) + !! Rank-2 data to send + REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :) + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(OUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_d13' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:)) + rcount = scount + CALL MPI_IALLGATHER(msgout, scount, MPI_DOUBLE_PRECISION, & + msgin, rcount, MPI_DOUBLE_PRECISION, & + gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, 1, 1) = msgout(:) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgather_d13 + + SUBROUTINE mp_iallgather_d22(msgout, msgin, gid, request) + !! Gathers rank-2 data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_d12 + + REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:, :) + !! Rank-2 data to send + REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(OUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_d22' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:, :)) + rcount = scount + CALL MPI_IALLGATHER(msgout, scount, MPI_DOUBLE_PRECISION, & + msgin, rcount, MPI_DOUBLE_PRECISION, & + gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, :) = msgout(:, :) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgather_d22 + + SUBROUTINE mp_iallgather_d24(msgout, msgin, gid, request) + !! Gathers rank-2 data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_d12 + + REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:, :) + !! Rank-2 data to send + REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :, :) + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(OUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_d24' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:, :)) + rcount = scount + CALL MPI_IALLGATHER(msgout, scount, MPI_DOUBLE_PRECISION, & + msgin, rcount, MPI_DOUBLE_PRECISION, & + gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, :, 1, 1) = msgout(:, :) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgather_d24 + + SUBROUTINE mp_iallgather_d33(msgout, msgin, gid, request) + !! Gathers rank-3 data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_d12 + + REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:, :, :) + !! Rank-3 data to send + REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :) + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(OUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_d33' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:, :, :)) + rcount = scount + CALL MPI_IALLGATHER(msgout, scount, MPI_DOUBLE_PRECISION, & + msgin, rcount, MPI_DOUBLE_PRECISION, & + gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, :, :) = msgout(:, :, :) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgather_d33 + + SUBROUTINE mp_allgatherv_dv(msgout, msgin, rcount, rdispl, gid) + !! Gathers vector data from all processes and all processes receive the + !! same data + !! + !! Data size + !! Processes can send different-sized data + !! + !! Ranks + !! The last rank counts the processes + !! + !! Offsets + !! Offsets are from 0 + !! + !! MPI mapping + !! mpi_allgather + + REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:) + !! Rank-1 data to send + REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) + !! Received data + INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:), rdispl(:) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Size of sent data for every process + !! Offset of sent data for every process + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgatherv_dv' - REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:) - !! Rank-1 data to send - REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) - !! Received data - INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:), rdispl(:) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Size of sent data for every process - !! Offset of sent data for every process - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgatherv_dv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout) - CALL MPI_ALLGATHERV(msgout, scount, MPI_DOUBLE_PRECISION, msgin, rcount, & - rdispl, MPI_DOUBLE_PRECISION, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgatherv @ "//routineN) -#else - MARK_USED(rcount) - MARK_USED(rdispl) - MARK_USED(gid) - msgin = msgout -#endif - CALL timestop(handle) - END SUBROUTINE mp_allgatherv_dv - - SUBROUTINE mp_iallgatherv_dv(msgout, msgin, rcount, rdispl, gid, request) - !! Gathers vector data from all processes and all processes receive the - !! same data - !! - !! Data size - !! Processes can send different-sized data - !! - !! Ranks - !! The last rank counts the processes - !! - !! Offsets - !! Offsets are from 0 - !! - !! MPI mapping - !! mpi_allgather - - REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:) - !! Rank-1 data to send - REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) - !! Received data - INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:), rdispl(:) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Size of sent data for every process - !! Offset of sent data for every process - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgatherv_dv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: scount, rsize -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout) - rsize = SIZE(rcount) - CALL mp_iallgatherv_dv_internal(msgout, scount, msgin, rsize, rcount, & - rdispl, gid, request, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgatherv @ "//routineN) -#else - MARK_USED(rcount) - MARK_USED(rdispl) - MARK_USED(gid) - msgin = msgout - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgatherv_dv - - SUBROUTINE mp_iallgatherv_dv2(msgout, msgin, rcount, rdispl, gid, request) - !! Gathers vector data from all processes and all processes receive the - !! same data - !! - !! Data size - !! Processes can send different-sized data - !! - !! Ranks - !! The last rank counts the processes - !! - !! Offsets - !! Offsets are from 0 - !! - !! MPI mapping - !! mpi_allgather - - REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:) - !! Rank-1 data to send - REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) - !! Received data - INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:, :), rdispl(:, :) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Size of sent data for every process - !! Offset of sent data for every process - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgatherv_dv2' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: scount, rsize -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout) - rsize = SIZE(rcount) - CALL mp_iallgatherv_dv_internal(msgout, scount, msgin, rsize, rcount, & - rdispl, gid, request, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgatherv @ "//routineN) -#else - MARK_USED(rcount) - MARK_USED(rdispl) - MARK_USED(gid) - msgin = msgout - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgatherv_dv2 - -#if defined(__parallel) - SUBROUTINE mp_iallgatherv_dv_internal(msgout, scount, msgin, rsize, rcount, rdispl, gid, request, ierr) - !! wrapper needed to deal with interfaces as present in openmpi 1.8.1 - !! the issue is with the rank of rcount and rdispl - - REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:) - REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) - INTEGER, INTENT(IN) :: rsize - INTEGER, INTENT(IN) :: rcount(rsize), rdispl(rsize), scount - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(INOUT) :: request - INTEGER, INTENT(INOUT) :: ierr - - CALL MPI_IALLGATHERV(msgout, scount, MPI_DOUBLE_PRECISION, msgin, rcount, & - rdispl, MPI_DOUBLE_PRECISION, gid%handle, request%handle, ierr) - - END SUBROUTINE mp_iallgatherv_dv_internal -#endif - - SUBROUTINE mp_sendrecv_dv(msgin, dest, msgout, source, comm) - !! Sends and receives vector data - - REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgin(:) - !! Data to send - INTEGER, INTENT(IN) :: dest - !! Process to send data to - REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgout(:) - !! Received data - INTEGER, INTENT(IN) :: source - !! Process from which to receive - TYPE(mp_comm_type), INTENT(IN) :: comm - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sendrecv_dv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen_in, msglen_out, & - recv_tag, send_tag -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - msglen_in = SIZE(msgin) - msglen_out = SIZE(msgout) - send_tag = 0 ! cannot think of something better here, this might be dangerous - recv_tag = 0 ! cannot think of something better here, this might be dangerous - CALL mpi_sendrecv(msgin, msglen_in, MPI_DOUBLE_PRECISION, dest, send_tag, msgout, & - msglen_out, MPI_DOUBLE_PRECISION, source, recv_tag, comm%handle, MPI_STATUS_IGNORE, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_sendrecv @ "//routineN) - CALL add_perf(perf_id=7, & - msg_size=(msglen_in + msglen_out)*real_8_size/2) -#else - MARK_USED(dest) - MARK_USED(source) - MARK_USED(comm) - msgout = msgin -#endif - CALL timestop(handle) - END SUBROUTINE mp_sendrecv_dv - - SUBROUTINE mp_isendrecv_d (msgin, dest, msgout, source, comm, send_request, & - recv_request, tag) - !! Non-blocking send and receive of a scalar - !! - !! Implementation - !! Calls mpi_isend and mpi_irecv. - - REAL(kind=real_8) :: msgin - !! Scalar data to send - INTEGER, INTENT(IN) :: dest - !! Which process to send to - REAL(kind=real_8) :: msgout - !! Receive data into this pointer - INTEGER, INTENT(IN) :: source - !! Process to receive from - TYPE(mp_comm_type), INTENT(IN) :: comm - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(out) :: send_request, recv_request - !! Request handle for the send - !! Request handle for the receive - INTEGER, INTENT(in), OPTIONAL :: tag - !! tag to differentiate requests - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isendrecv_d' + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout) + CALL MPI_ALLGATHERV(msgout, scount, MPI_DOUBLE_PRECISION, msgin, rcount, & + rdispl, MPI_DOUBLE_PRECISION, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgatherv @ "//routineN) +#else + MARK_USED(rcount) + MARK_USED(rdispl) + MARK_USED(gid) + msgin = msgout +#endif + CALL timestop(handle) + END SUBROUTINE mp_allgatherv_dv + + SUBROUTINE mp_iallgatherv_dv(msgout, msgin, rcount, rdispl, gid, request) + !! Gathers vector data from all processes and all processes receive the + !! same data + !! + !! Data size + !! Processes can send different-sized data + !! + !! Ranks + !! The last rank counts the processes + !! + !! Offsets + !! Offsets are from 0 + !! + !! MPI mapping + !! mpi_allgather + + REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:) + !! Rank-1 data to send + REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) + !! Received data + INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:), rdispl(:) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Size of sent data for every process + !! Offset of sent data for every process + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgatherv_dv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: scount, rsize +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout) + rsize = SIZE(rcount) + CALL mp_iallgatherv_dv_internal(msgout, scount, msgin, rsize, rcount, & + rdispl, gid, request, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgatherv @ "//routineN) +#else + MARK_USED(rcount) + MARK_USED(rdispl) + MARK_USED(gid) + msgin = msgout + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgatherv_dv + + SUBROUTINE mp_iallgatherv_dv2(msgout, msgin, rcount, rdispl, gid, request) + !! Gathers vector data from all processes and all processes receive the + !! same data + !! + !! Data size + !! Processes can send different-sized data + !! + !! Ranks + !! The last rank counts the processes + !! + !! Offsets + !! Offsets are from 0 + !! + !! MPI mapping + !! mpi_allgather + + REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:) + !! Rank-1 data to send + REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) + !! Received data + INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:, :), rdispl(:, :) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Size of sent data for every process + !! Offset of sent data for every process + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgatherv_dv2' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: scount, rsize +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout) + rsize = SIZE(rcount) + CALL mp_iallgatherv_dv_internal(msgout, scount, msgin, rsize, rcount, & + rdispl, gid, request, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgatherv @ "//routineN) +#else + MARK_USED(rcount) + MARK_USED(rdispl) + MARK_USED(gid) + msgin = msgout + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgatherv_dv2 + +#if defined(__parallel) + SUBROUTINE mp_iallgatherv_dv_internal(msgout, scount, msgin, rsize, rcount, rdispl, gid, request, ierr) + !! wrapper needed to deal with interfaces as present in openmpi 1.8.1 + !! the issue is with the rank of rcount and rdispl + + REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:) + REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) + INTEGER, INTENT(IN) :: rsize + INTEGER, INTENT(IN) :: rcount(rsize), rdispl(rsize), scount + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(INOUT) :: request + INTEGER, INTENT(INOUT) :: ierr + + CALL MPI_IALLGATHERV(msgout, scount, MPI_DOUBLE_PRECISION, msgin, rcount, & + rdispl, MPI_DOUBLE_PRECISION, gid%handle, request%handle, ierr) + + END SUBROUTINE mp_iallgatherv_dv_internal +#endif + + SUBROUTINE mp_sendrecv_dv(msgin, dest, msgout, source, comm) + !! Sends and receives vector data + + REAL(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgin(:) + !! Data to send + INTEGER, INTENT(IN) :: dest + !! Process to send data to + REAL(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgout(:) + !! Received data + INTEGER, INTENT(IN) :: source + !! Process from which to receive + TYPE(mp_comm_type), INTENT(IN) :: comm + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sendrecv_dv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen_in, msglen_out, & + recv_tag, send_tag +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + msglen_in = SIZE(msgin) + msglen_out = SIZE(msgout) + send_tag = 0 ! cannot think of something better here, this might be dangerous + recv_tag = 0 ! cannot think of something better here, this might be dangerous + CALL mpi_sendrecv(msgin, msglen_in, MPI_DOUBLE_PRECISION, dest, send_tag, msgout, & + msglen_out, MPI_DOUBLE_PRECISION, source, recv_tag, comm%handle, MPI_STATUS_IGNORE, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_sendrecv @ "//routineN) + CALL add_perf(perf_id=7, & + msg_size=(msglen_in + msglen_out)*real_8_size/2) +#else + MARK_USED(dest) + MARK_USED(source) + MARK_USED(comm) + msgout = msgin +#endif + CALL timestop(handle) + END SUBROUTINE mp_sendrecv_dv + + SUBROUTINE mp_isendrecv_d (msgin, dest, msgout, source, comm, send_request, & + recv_request, tag) + !! Non-blocking send and receive of a scalar + !! + !! Implementation + !! Calls mpi_isend and mpi_irecv. + + REAL(kind=real_8) :: msgin + !! Scalar data to send + INTEGER, INTENT(IN) :: dest + !! Which process to send to + REAL(kind=real_8) :: msgout + !! Receive data into this pointer + INTEGER, INTENT(IN) :: source + !! Process to receive from + TYPE(mp_comm_type), INTENT(IN) :: comm + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(out) :: send_request, recv_request + !! Request handle for the send + !! Request handle for the receive + INTEGER, INTENT(in), OPTIONAL :: tag + !! tag to differentiate requests + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isendrecv_d' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: my_tag +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + my_tag = 0 + IF (PRESENT(tag)) my_tag = tag - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: my_tag -#endif - - ierr = 0 - CALL timeset(routineN, handle) + CALL mpi_irecv(msgout, 1, MPI_DOUBLE_PRECISION, source, my_tag, & + comm%handle, recv_request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) + + CALL mpi_isend(msgin, 1, MPI_DOUBLE_PRECISION, dest, my_tag, & + comm%handle, send_request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) -#if defined(__parallel) - my_tag = 0 - IF (PRESENT(tag)) my_tag = tag - - CALL mpi_irecv(msgout, 1, MPI_DOUBLE_PRECISION, source, my_tag, & - comm%handle, recv_request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) - - CALL mpi_isend(msgin, 1, MPI_DOUBLE_PRECISION, dest, my_tag, & - comm%handle, send_request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) - - CALL add_perf(perf_id=8, msg_size=2*real_8_size) -#else - MARK_USED(dest) - MARK_USED(source) - MARK_USED(comm) - MARK_USED(tag) - send_request = mp_request_null - recv_request = mp_request_null - msgout = msgin -#endif - CALL timestop(handle) - END SUBROUTINE mp_isendrecv_d - - SUBROUTINE mp_isendrecv_dv(msgin, dest, msgout, source, comm, send_request, & - recv_request, tag) - !! Non-blocking send and receive of a vector - !! - !! Implementation - !! Calls mpi_isend and mpi_irecv. - !! @note - !! arrays can be pointers or assumed shape, but they must be contiguous! - - REAL(kind=real_8), CONTIGUOUS, DIMENSION(:) :: msgin - !! Vector data to send - INTEGER, INTENT(IN) :: dest - !! Which process to send to - REAL(kind=real_8), CONTIGUOUS, DIMENSION(:) :: msgout - !! Receive data into this pointer - INTEGER, INTENT(IN) :: source - !! Process to receive from - TYPE(mp_comm_type), INTENT(IN) :: comm - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(out) :: send_request, recv_request - !! Request handle for the send - !! Request handle for the receive - INTEGER, INTENT(in), OPTIONAL :: tag - !! tag to differentiate requests - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isendrecv_dv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, my_tag - REAL(kind=real_8) :: foo -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - my_tag = 0 - IF (PRESENT(tag)) my_tag = tag - - msglen = SIZE(msgout, 1) - IF (msglen > 0) THEN - CALL mpi_irecv(msgout, msglen, MPI_DOUBLE_PRECISION, source, my_tag, & - comm%handle, recv_request%handle, ierr) - ELSE - CALL mpi_irecv(foo, msglen, MPI_DOUBLE_PRECISION, source, my_tag, & - comm%handle, recv_request%handle, ierr) - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) - - msglen = SIZE(msgin, 1) - IF (msglen > 0) THEN - CALL mpi_isend(msgin, msglen, MPI_DOUBLE_PRECISION, dest, my_tag, & - comm%handle, send_request%handle, ierr) - ELSE - CALL mpi_isend(foo, msglen, MPI_DOUBLE_PRECISION, dest, my_tag, & - comm%handle, send_request%handle, ierr) - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) - - msglen = (msglen + SIZE(msgout, 1) + 1)/2 - CALL add_perf(perf_id=8, msg_size=msglen*real_8_size) -#else - MARK_USED(dest) - MARK_USED(source) - MARK_USED(comm) - MARK_USED(tag) - send_request = mp_request_null - recv_request = mp_request_null - msgout = msgin -#endif - CALL timestop(handle) - END SUBROUTINE mp_isendrecv_dv - - SUBROUTINE mp_isend_dv(msgin, dest, comm, request, tag) - !! Non-blocking send of vector data - !! @note see mp_isendrecv_dv - !! @endnote - !! @note - !! arrays can be pointers or assumed shape, but they must be contiguous! - - REAL(kind=real_8), CONTIGUOUS, DIMENSION(:) :: msgin - INTEGER, INTENT(IN) :: dest - TYPE(mp_comm_type), INTENT(IN) :: comm - TYPE(mp_request_type), INTENT(out) :: request - INTEGER, INTENT(in), OPTIONAL :: tag - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isend_dv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, my_tag - REAL(kind=real_8) :: foo(1) -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - my_tag = 0 - IF (PRESENT(tag)) my_tag = tag - - msglen = SIZE(msgin) - IF (msglen > 0) THEN - CALL mpi_isend(msgin, msglen, MPI_DOUBLE_PRECISION, dest, my_tag, & - comm%handle, request%handle, ierr) - ELSE - CALL mpi_isend(foo, msglen, MPI_DOUBLE_PRECISION, dest, my_tag, & - comm%handle, request%handle, ierr) - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) - - CALL add_perf(perf_id=11, msg_size=msglen*real_8_size) -#else - MARK_USED(msgin) - MARK_USED(dest) - MARK_USED(comm) - MARK_USED(request) - MARK_USED(tag) - ierr = 1 - request = mp_request_null - CALL mp_stop(ierr, "mp_isend called in non parallel case") -#endif - CALL timestop(handle) - END SUBROUTINE mp_isend_dv - - SUBROUTINE mp_isend_dm2(msgin, dest, comm, request, tag) - !! Non-blocking send of matrix data - !! @note see mp_isendrecv_dv - !! @endnote - !! @note see mp_isend_dv - !! @endnote - !! @note - !! arrays can be pointers or assumed shape, but they must be contiguous! - - REAL(kind=real_8), DIMENSION(:, :), CONTIGUOUS :: msgin - INTEGER, INTENT(IN) :: dest - TYPE(mp_comm_type), INTENT(IN) :: comm - TYPE(mp_request_type), INTENT(out) :: request - INTEGER, INTENT(in), OPTIONAL :: tag - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isend_dm2' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, my_tag - REAL(kind=real_8) :: foo(1) -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - my_tag = 0 - IF (PRESENT(tag)) my_tag = tag - - msglen = SIZE(msgin, 1)*SIZE(msgin, 2) - IF (msglen > 0) THEN - CALL mpi_isend(msgin, msglen, MPI_DOUBLE_PRECISION, dest, my_tag, & - comm%handle, request%handle, ierr) - ELSE - CALL mpi_isend(foo, msglen, MPI_DOUBLE_PRECISION, dest, my_tag, & - comm%handle, request%handle, ierr) - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) - - CALL add_perf(perf_id=11, msg_size=msglen*real_8_size) -#else - MARK_USED(msgin) - MARK_USED(dest) - MARK_USED(comm) - MARK_USED(request) - MARK_USED(tag) - ierr = 1 - request = mp_request_null - CALL mp_stop(ierr, "mp_isend called in non parallel case") -#endif - CALL timestop(handle) - END SUBROUTINE mp_isend_dm2 - - SUBROUTINE mp_irecv_dv(msgout, source, comm, request, tag) - !! Non-blocking receive of vector data - !! @note see mp_isendrecv_dv - !! @endnote - !! @note - !! arrays can be pointers or assumed shape, but they must be contiguous! - - REAL(kind=real_8), CONTIGUOUS, DIMENSION(:) :: msgout - INTEGER, INTENT(IN) :: source - TYPE(mp_comm_type), INTENT(IN) :: comm - TYPE(mp_request_type), INTENT(out) :: request - INTEGER, INTENT(in), OPTIONAL :: tag - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_irecv_dv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, my_tag - REAL(kind=real_8) :: foo(1) -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - my_tag = 0 - IF (PRESENT(tag)) my_tag = tag - - msglen = SIZE(msgout) - IF (msglen > 0) THEN - CALL mpi_irecv(msgout, msglen, MPI_DOUBLE_PRECISION, source, my_tag, & - comm%handle, request%handle, ierr) - ELSE - CALL mpi_irecv(foo, msglen, MPI_DOUBLE_PRECISION, source, my_tag, & - comm%handle, request%handle, ierr) - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) - - CALL add_perf(perf_id=12, msg_size=msglen*real_8_size) -#else - DBCSR_ABORT("mp_irecv called in non parallel case") - MARK_USED(msgout) - MARK_USED(source) - MARK_USED(comm) - MARK_USED(request) - MARK_USED(tag) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_irecv_dv - - SUBROUTINE mp_irecv_dm2(msgout, source, comm, request, tag) - !! Non-blocking receive of matrix data - !! @note see mp_isendrecv_dv - !! @endnote - !! @note see mp_irecv_dv - !! @endnote - !! @note - !! arrays can be pointers or assumed shape, but they must be contiguous! - - REAL(kind=real_8), DIMENSION(:, :), CONTIGUOUS :: msgout - INTEGER, INTENT(IN) :: source - TYPE(mp_comm_type), INTENT(IN) :: comm - TYPE(mp_request_type), INTENT(out) :: request - INTEGER, INTENT(in), OPTIONAL :: tag - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_irecv_dm2' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, my_tag - REAL(kind=real_8) :: foo(1) -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - my_tag = 0 - IF (PRESENT(tag)) my_tag = tag - - msglen = SIZE(msgout, 1)*SIZE(msgout, 2) - IF (msglen > 0) THEN - CALL mpi_irecv(msgout, msglen, MPI_DOUBLE_PRECISION, source, my_tag, & - comm%handle, request%handle, ierr) - ELSE - CALL mpi_irecv(foo, msglen, MPI_DOUBLE_PRECISION, source, my_tag, & - comm%handle, request%handle, ierr) - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) - - CALL add_perf(perf_id=12, msg_size=msglen*real_8_size) -#else - MARK_USED(msgout) - MARK_USED(source) - MARK_USED(comm) - MARK_USED(request) - MARK_USED(tag) - request = mp_request_null - DBCSR_ABORT("mp_irecv called in non parallel case") -#endif - CALL timestop(handle) - END SUBROUTINE mp_irecv_dm2 - - SUBROUTINE mp_win_create_dv(base, comm, win) - !! Window initialization function for vector data - !! @note - !! arrays can be pointers or assumed shape, but they must be contiguous! + CALL add_perf(perf_id=8, msg_size=2*real_8_size) +#else + MARK_USED(dest) + MARK_USED(source) + MARK_USED(comm) + MARK_USED(tag) + send_request = mp_request_null + recv_request = mp_request_null + msgout = msgin +#endif + CALL timestop(handle) + END SUBROUTINE mp_isendrecv_d + + SUBROUTINE mp_isendrecv_dv(msgin, dest, msgout, source, comm, send_request, & + recv_request, tag) + !! Non-blocking send and receive of a vector + !! + !! Implementation + !! Calls mpi_isend and mpi_irecv. + !! @note + !! arrays can be pointers or assumed shape, but they must be contiguous! + + REAL(kind=real_8), CONTIGUOUS, DIMENSION(:) :: msgin + !! Vector data to send + INTEGER, INTENT(IN) :: dest + !! Which process to send to + REAL(kind=real_8), CONTIGUOUS, DIMENSION(:) :: msgout + !! Receive data into this pointer + INTEGER, INTENT(IN) :: source + !! Process to receive from + TYPE(mp_comm_type), INTENT(IN) :: comm + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(out) :: send_request, recv_request + !! Request handle for the send + !! Request handle for the receive + INTEGER, INTENT(in), OPTIONAL :: tag + !! tag to differentiate requests + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isendrecv_dv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, my_tag + REAL(kind=real_8) :: foo +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + my_tag = 0 + IF (PRESENT(tag)) my_tag = tag + + msglen = SIZE(msgout, 1) + IF (msglen > 0) THEN + CALL mpi_irecv(msgout, msglen, MPI_DOUBLE_PRECISION, source, my_tag, & + comm%handle, recv_request%handle, ierr) + ELSE + CALL mpi_irecv(foo, msglen, MPI_DOUBLE_PRECISION, source, my_tag, & + comm%handle, recv_request%handle, ierr) + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) + + msglen = SIZE(msgin, 1) + IF (msglen > 0) THEN + CALL mpi_isend(msgin, msglen, MPI_DOUBLE_PRECISION, dest, my_tag, & + comm%handle, send_request%handle, ierr) + ELSE + CALL mpi_isend(foo, msglen, MPI_DOUBLE_PRECISION, dest, my_tag, & + comm%handle, send_request%handle, ierr) + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) + + msglen = (msglen + SIZE(msgout, 1) + 1)/2 + CALL add_perf(perf_id=8, msg_size=msglen*real_8_size) +#else + MARK_USED(dest) + MARK_USED(source) + MARK_USED(comm) + MARK_USED(tag) + send_request = mp_request_null + recv_request = mp_request_null + msgout = msgin +#endif + CALL timestop(handle) + END SUBROUTINE mp_isendrecv_dv + + SUBROUTINE mp_isend_dv(msgin, dest, comm, request, tag) + !! Non-blocking send of vector data + !! @note see mp_isendrecv_dv + !! @endnote + !! @note + !! arrays can be pointers or assumed shape, but they must be contiguous! + + REAL(kind=real_8), CONTIGUOUS, DIMENSION(:) :: msgin + INTEGER, INTENT(IN) :: dest + TYPE(mp_comm_type), INTENT(IN) :: comm + TYPE(mp_request_type), INTENT(out) :: request + INTEGER, INTENT(in), OPTIONAL :: tag + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isend_dv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, my_tag + REAL(kind=real_8) :: foo(1) +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + my_tag = 0 + IF (PRESENT(tag)) my_tag = tag + + msglen = SIZE(msgin) + IF (msglen > 0) THEN + CALL mpi_isend(msgin, msglen, MPI_DOUBLE_PRECISION, dest, my_tag, & + comm%handle, request%handle, ierr) + ELSE + CALL mpi_isend(foo, msglen, MPI_DOUBLE_PRECISION, dest, my_tag, & + comm%handle, request%handle, ierr) + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) + + CALL add_perf(perf_id=11, msg_size=msglen*real_8_size) +#else + MARK_USED(msgin) + MARK_USED(dest) + MARK_USED(comm) + MARK_USED(request) + MARK_USED(tag) + ierr = 1 + request = mp_request_null + CALL mp_stop(ierr, "mp_isend called in non parallel case") +#endif + CALL timestop(handle) + END SUBROUTINE mp_isend_dv + + SUBROUTINE mp_isend_dm2(msgin, dest, comm, request, tag) + !! Non-blocking send of matrix data + !! @note see mp_isendrecv_dv + !! @endnote + !! @note see mp_isend_dv + !! @endnote + !! @note + !! arrays can be pointers or assumed shape, but they must be contiguous! + + REAL(kind=real_8), DIMENSION(:, :), CONTIGUOUS :: msgin + INTEGER, INTENT(IN) :: dest + TYPE(mp_comm_type), INTENT(IN) :: comm + TYPE(mp_request_type), INTENT(out) :: request + INTEGER, INTENT(in), OPTIONAL :: tag + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isend_dm2' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, my_tag + REAL(kind=real_8) :: foo(1) +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + my_tag = 0 + IF (PRESENT(tag)) my_tag = tag + + msglen = SIZE(msgin, 1)*SIZE(msgin, 2) + IF (msglen > 0) THEN + CALL mpi_isend(msgin, msglen, MPI_DOUBLE_PRECISION, dest, my_tag, & + comm%handle, request%handle, ierr) + ELSE + CALL mpi_isend(foo, msglen, MPI_DOUBLE_PRECISION, dest, my_tag, & + comm%handle, request%handle, ierr) + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) + + CALL add_perf(perf_id=11, msg_size=msglen*real_8_size) +#else + MARK_USED(msgin) + MARK_USED(dest) + MARK_USED(comm) + MARK_USED(request) + MARK_USED(tag) + ierr = 1 + request = mp_request_null + CALL mp_stop(ierr, "mp_isend called in non parallel case") +#endif + CALL timestop(handle) + END SUBROUTINE mp_isend_dm2 + + SUBROUTINE mp_irecv_dv(msgout, source, comm, request, tag) + !! Non-blocking receive of vector data + !! @note see mp_isendrecv_dv + !! @endnote + !! @note + !! arrays can be pointers or assumed shape, but they must be contiguous! + + REAL(kind=real_8), CONTIGUOUS, DIMENSION(:) :: msgout + INTEGER, INTENT(IN) :: source + TYPE(mp_comm_type), INTENT(IN) :: comm + TYPE(mp_request_type), INTENT(out) :: request + INTEGER, INTENT(in), OPTIONAL :: tag + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_irecv_dv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, my_tag + REAL(kind=real_8) :: foo(1) +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + my_tag = 0 + IF (PRESENT(tag)) my_tag = tag + + msglen = SIZE(msgout) + IF (msglen > 0) THEN + CALL mpi_irecv(msgout, msglen, MPI_DOUBLE_PRECISION, source, my_tag, & + comm%handle, request%handle, ierr) + ELSE + CALL mpi_irecv(foo, msglen, MPI_DOUBLE_PRECISION, source, my_tag, & + comm%handle, request%handle, ierr) + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) + + CALL add_perf(perf_id=12, msg_size=msglen*real_8_size) +#else + DBCSR_ABORT("mp_irecv called in non parallel case") + MARK_USED(msgout) + MARK_USED(source) + MARK_USED(comm) + MARK_USED(request) + MARK_USED(tag) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_irecv_dv + + SUBROUTINE mp_irecv_dm2(msgout, source, comm, request, tag) + !! Non-blocking receive of matrix data + !! @note see mp_isendrecv_dv + !! @endnote + !! @note see mp_irecv_dv + !! @endnote + !! @note + !! arrays can be pointers or assumed shape, but they must be contiguous! + + REAL(kind=real_8), DIMENSION(:, :), CONTIGUOUS :: msgout + INTEGER, INTENT(IN) :: source + TYPE(mp_comm_type), INTENT(IN) :: comm + TYPE(mp_request_type), INTENT(out) :: request + INTEGER, INTENT(in), OPTIONAL :: tag + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_irecv_dm2' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, my_tag + REAL(kind=real_8) :: foo(1) +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + my_tag = 0 + IF (PRESENT(tag)) my_tag = tag + + msglen = SIZE(msgout, 1)*SIZE(msgout, 2) + IF (msglen > 0) THEN + CALL mpi_irecv(msgout, msglen, MPI_DOUBLE_PRECISION, source, my_tag, & + comm%handle, request%handle, ierr) + ELSE + CALL mpi_irecv(foo, msglen, MPI_DOUBLE_PRECISION, source, my_tag, & + comm%handle, request%handle, ierr) + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) + + CALL add_perf(perf_id=12, msg_size=msglen*real_8_size) +#else + MARK_USED(msgout) + MARK_USED(source) + MARK_USED(comm) + MARK_USED(request) + MARK_USED(tag) + request = mp_request_null + DBCSR_ABORT("mp_irecv called in non parallel case") +#endif + CALL timestop(handle) + END SUBROUTINE mp_irecv_dm2 + + SUBROUTINE mp_win_create_dv(base, comm, win) + !! Window initialization function for vector data + !! @note + !! arrays can be pointers or assumed shape, but they must be contiguous! + + REAL(kind=real_8), CONTIGUOUS, DIMENSION(:) :: base + TYPE(mp_comm_type), INTENT(IN) :: comm + TYPE(mp_win_type), INTENT(OUT) :: win + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_win_create_dv' + + INTEGER :: ierr, handle +#if defined(__parallel) + INTEGER(kind=mpi_address_kind) :: len + REAL(kind=real_8) :: foo(1) +#endif - REAL(kind=real_8), CONTIGUOUS, DIMENSION(:) :: base - TYPE(mp_comm_type), INTENT(IN) :: comm - TYPE(mp_win_type), INTENT(OUT) :: win - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_win_create_dv' - - INTEGER :: ierr, handle -#if defined(__parallel) - INTEGER(kind=mpi_address_kind) :: len - REAL(kind=real_8) :: foo(1) -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - - len = SIZE(base)*real_8_size - IF (len > 0) THEN - CALL mpi_win_create(base, len, real_8_size, MPI_INFO_NULL, comm%handle, win%handle, ierr) - ELSE - CALL mpi_win_create(foo, len, real_8_size, MPI_INFO_NULL, comm%handle, win%handle, ierr) - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_win_create @ "//routineN) -#else - MARK_USED(base) - MARK_USED(comm) - win = mp_win_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_win_create_dv - - SUBROUTINE mp_rget_dv(base, source, win, win_data, myproc, disp, request, & - origin_datatype, target_datatype) - !! Single-sided get function for vector data - !! @note - !! arrays can be pointers or assumed shape, but they must be contiguous! - - REAL(kind=real_8), CONTIGUOUS, DIMENSION(:) :: base - INTEGER, INTENT(IN) :: source - TYPE(mp_win_type), INTENT(IN) :: win - REAL(kind=real_8), CONTIGUOUS, DIMENSION(:) :: win_data - INTEGER, INTENT(IN), OPTIONAL :: myproc, disp - TYPE(mp_request_type), INTENT(OUT) :: request - TYPE(mp_type_descriptor_type), INTENT(IN), OPTIONAL :: origin_datatype, target_datatype - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_rget_dv' + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + + len = SIZE(base)*real_8_size + IF (len > 0) THEN + CALL mpi_win_create(base, len, real_8_size, MPI_INFO_NULL, comm%handle, win%handle, ierr) + ELSE + CALL mpi_win_create(foo, len, real_8_size, MPI_INFO_NULL, comm%handle, win%handle, ierr) + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_win_create @ "//routineN) +#else + MARK_USED(base) + MARK_USED(comm) + win = mp_win_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_win_create_dv + + SUBROUTINE mp_rget_dv(base, source, win, win_data, myproc, disp, request, & + origin_datatype, target_datatype) + !! Single-sided get function for vector data + !! @note + !! arrays can be pointers or assumed shape, but they must be contiguous! + + REAL(kind=real_8), CONTIGUOUS, DIMENSION(:) :: base + INTEGER, INTENT(IN) :: source + TYPE(mp_win_type), INTENT(IN) :: win + REAL(kind=real_8), CONTIGUOUS, DIMENSION(:) :: win_data + INTEGER, INTENT(IN), OPTIONAL :: myproc, disp + TYPE(mp_request_type), INTENT(OUT) :: request + TYPE(mp_type_descriptor_type), INTENT(IN), OPTIONAL :: origin_datatype, target_datatype + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_rget_dv' + + INTEGER :: ierr, handle +#if defined(__parallel) + INTEGER :: len, & + origin_len, target_len + LOGICAL :: do_local_copy + INTEGER(kind=mpi_address_kind) :: disp_aint + MPI_DATA_TYPE :: handle_origin_datatype, handle_target_datatype +#endif + + ierr = 0 + CALL timeset(routineN, handle) - INTEGER :: ierr, handle -#if defined(__parallel) - INTEGER :: len, & - origin_len, target_len - LOGICAL :: do_local_copy - INTEGER(kind=mpi_address_kind) :: disp_aint - MPI_DATA_TYPE :: handle_origin_datatype, handle_target_datatype -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - len = SIZE(base) - disp_aint = 0 - IF (PRESENT(disp)) THEN - disp_aint = INT(disp, KIND=mpi_address_kind) +#if defined(__parallel) + len = SIZE(base) + disp_aint = 0 + IF (PRESENT(disp)) THEN + disp_aint = INT(disp, KIND=mpi_address_kind) + END IF + handle_origin_datatype = MPI_DOUBLE_PRECISION + origin_len = len + IF (PRESENT(origin_datatype)) THEN + handle_origin_datatype = origin_datatype%type_handle + origin_len = 1 + END IF + handle_target_datatype = MPI_DOUBLE_PRECISION + target_len = len + IF (PRESENT(target_datatype)) THEN + handle_target_datatype = target_datatype%type_handle + target_len = 1 END IF - handle_origin_datatype = MPI_DOUBLE_PRECISION - origin_len = len - IF (PRESENT(origin_datatype)) THEN - handle_origin_datatype = origin_datatype%type_handle - origin_len = 1 - END IF - handle_target_datatype = MPI_DOUBLE_PRECISION - target_len = len - IF (PRESENT(target_datatype)) THEN - handle_target_datatype = target_datatype%type_handle - target_len = 1 - END IF - IF (len > 0) THEN - do_local_copy = .FALSE. -#if !defined(__DBCSR_DISABLE_RMA_LOCAL_COPY) - IF (PRESENT(myproc) .AND. .NOT. PRESENT(origin_datatype) .AND. .NOT. PRESENT(target_datatype)) THEN - IF (myproc .EQ. source) do_local_copy = .TRUE. - END IF -#else - MARK_USED(myproc) -#endif - IF (do_local_copy) THEN -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(base,win_data,disp_aint,len) -#endif - base(:) = win_data(disp_aint + 1:disp_aint + len) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif - request = mp_request_null - ierr = 0 - ELSE - CALL mpi_rget(base, origin_len, handle_origin_datatype, source, disp_aint, & - target_len, handle_target_datatype, win%handle, request%handle, ierr) - END IF - ELSE - request = mp_request_null - ierr = 0 - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_rget @ "//routineN) - - CALL add_perf(perf_id=25, msg_size=SIZE(base)*real_8_size) -#else - MARK_USED(source) - MARK_USED(win) - MARK_USED(myproc) - MARK_USED(origin_datatype) - MARK_USED(target_datatype) - - request = mp_request_null - ! - IF (PRESENT(disp)) THEN - base(:) = win_data(disp + 1:disp + SIZE(base)) - ELSE - base(:) = win_data(:SIZE(base)) - END IF - -#endif - CALL timestop(handle) - END SUBROUTINE mp_rget_dv - -! ***************************************************************************** -! *************************************************************************** - FUNCTION mp_type_indexed_make_d (count, lengths, displs) & - RESULT(type_descriptor) - INTEGER, INTENT(IN) :: count - INTEGER, DIMENSION(1:count), INTENT(IN), TARGET :: lengths, displs - TYPE(mp_type_descriptor_type) :: type_descriptor - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_type_indexed_make_d' - - INTEGER :: ierr, handle - - ierr = 0 - CALL timeset(routineN, handle) + IF (len > 0) THEN + do_local_copy = .FALSE. +#if !defined(__DBCSR_DISABLE_RMA_LOCAL_COPY) + IF (PRESENT(myproc) .AND. .NOT. PRESENT(origin_datatype) .AND. .NOT. PRESENT(target_datatype)) THEN + IF (myproc .EQ. source) do_local_copy = .TRUE. + END IF +#else + MARK_USED(myproc) +#endif + IF (do_local_copy) THEN + base(:) = win_data(disp_aint + 1:disp_aint + len) + request = mp_request_null + ierr = 0 + ELSE + CALL mpi_rget(base, origin_len, handle_origin_datatype, source, disp_aint, & + target_len, handle_target_datatype, win%handle, request%handle, ierr) + END IF + ELSE + request = mp_request_null + ierr = 0 + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_rget @ "//routineN) + + CALL add_perf(perf_id=25, msg_size=SIZE(base)*real_8_size) +#else + MARK_USED(source) + MARK_USED(win) + MARK_USED(myproc) + MARK_USED(origin_datatype) + MARK_USED(target_datatype) + + request = mp_request_null + ! + IF (PRESENT(disp)) THEN + base(:) = win_data(disp + 1:disp + SIZE(base)) + ELSE + base(:) = win_data(:SIZE(base)) + END IF + +#endif + CALL timestop(handle) + END SUBROUTINE mp_rget_dv + +! ***************************************************************************** +! *************************************************************************** + FUNCTION mp_type_indexed_make_d (count, lengths, displs) & + RESULT(type_descriptor) + INTEGER, INTENT(IN) :: count + INTEGER, DIMENSION(1:count), INTENT(IN), TARGET :: lengths, displs + TYPE(mp_type_descriptor_type) :: type_descriptor + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_type_indexed_make_d' + + INTEGER :: ierr, handle + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + CALL mpi_type_indexed(count, lengths, displs, MPI_DOUBLE_PRECISION, & + type_descriptor%type_handle, ierr) + IF (ierr /= 0) & + DBCSR_ABORT("MPI_Type_Indexed @ "//routineN) + CALL mpi_type_commit(type_descriptor%type_handle, ierr) + IF (ierr /= 0) & + DBCSR_ABORT("MPI_Type_commit @ "//routineN) +#else + type_descriptor%type_handle = 3 +#endif + type_descriptor%length = count + NULLIFY (type_descriptor%subtype) + type_descriptor%vector_descriptor(1:2) = 1 + type_descriptor%has_indexing = .TRUE. + type_descriptor%index_descriptor%index => lengths + type_descriptor%index_descriptor%chunks => displs -#if defined(__parallel) - CALL mpi_type_indexed(count, lengths, displs, MPI_DOUBLE_PRECISION, & - type_descriptor%type_handle, ierr) - IF (ierr /= 0) & - DBCSR_ABORT("MPI_Type_Indexed @ "//routineN) - CALL mpi_type_commit(type_descriptor%type_handle, ierr) - IF (ierr /= 0) & - DBCSR_ABORT("MPI_Type_commit @ "//routineN) -#else - type_descriptor%type_handle = 3 -#endif - type_descriptor%length = count - NULLIFY (type_descriptor%subtype) - type_descriptor%vector_descriptor(1:2) = 1 - type_descriptor%has_indexing = .TRUE. - type_descriptor%index_descriptor%index => lengths - type_descriptor%index_descriptor%chunks => displs + CALL timestop(handle) + + END FUNCTION mp_type_indexed_make_d + + SUBROUTINE mp_allocate_d (DATA, len, stat) + !! Allocates special parallel memory + + REAL(kind=real_8), DIMENSION(:), POINTER, CONTIGUOUS :: DATA + !! pointer to integer array to allocate + INTEGER, INTENT(IN) :: len + !! number of integers to allocate + INTEGER, INTENT(OUT), OPTIONAL :: stat + !! allocation status result + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allocate_d' + + INTEGER :: ierr, handle - CALL timestop(handle) + CALL timeset(routineN, handle) - END FUNCTION mp_type_indexed_make_d - - SUBROUTINE mp_allocate_d (DATA, len, stat) - !! Allocates special parallel memory - - REAL(kind=real_8), DIMENSION(:), POINTER, CONTIGUOUS :: DATA - !! pointer to integer array to allocate - INTEGER, INTENT(IN) :: len - !! number of integers to allocate - INTEGER, INTENT(OUT), OPTIONAL :: stat - !! allocation status result - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allocate_d' - - INTEGER :: ierr, handle - - CALL timeset(routineN, handle) + ierr = 0 +#if defined(__parallel) + NULLIFY (DATA) + CALL mp_alloc_mem(DATA, len, stat=ierr) + IF (ierr /= 0 .AND. .NOT. PRESENT(stat)) & + CALL mp_stop(ierr, "mpi_alloc_mem @ "//routineN) +#else + ALLOCATE (DATA(len), stat=ierr) + IF (ierr /= 0 .AND. .NOT. PRESENT(stat)) & + CALL mp_stop(ierr, "ALLOCATE @ "//routineN) +#endif + IF (PRESENT(stat)) stat = ierr + CALL timestop(handle) + END SUBROUTINE mp_allocate_d + + SUBROUTINE mp_deallocate_d (DATA, stat) + !! Deallocates special parallel memory - ierr = 0 -#if defined(__parallel) - NULLIFY (DATA) - CALL mp_alloc_mem(DATA, len, stat=ierr) - IF (ierr /= 0 .AND. .NOT. PRESENT(stat)) & - CALL mp_stop(ierr, "mpi_alloc_mem @ "//routineN) -#else - ALLOCATE (DATA(len), stat=ierr) - IF (ierr /= 0 .AND. .NOT. PRESENT(stat)) & - CALL mp_stop(ierr, "ALLOCATE @ "//routineN) -#endif - IF (PRESENT(stat)) stat = ierr - CALL timestop(handle) - END SUBROUTINE mp_allocate_d - - SUBROUTINE mp_deallocate_d (DATA, stat) - !! Deallocates special parallel memory - - REAL(kind=real_8), DIMENSION(:), POINTER, CONTIGUOUS :: DATA - !! pointer to special memory to deallocate - INTEGER, INTENT(OUT), OPTIONAL :: stat - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_deallocate_d' - - INTEGER :: ierr, handle + REAL(kind=real_8), DIMENSION(:), POINTER, CONTIGUOUS :: DATA + !! pointer to special memory to deallocate + INTEGER, INTENT(OUT), OPTIONAL :: stat + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_deallocate_d' + + INTEGER :: ierr, handle + + CALL timeset(routineN, handle) + + ierr = 0 +#if defined(__parallel) + CALL mp_free_mem(DATA, ierr) + IF (PRESENT(stat)) THEN + stat = ierr + ELSE + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_free_mem @ "//routineN) + END IF + NULLIFY (DATA) +#else + DEALLOCATE (DATA) + IF (PRESENT(stat)) stat = 0 +#endif + CALL timestop(handle) + END SUBROUTINE mp_deallocate_d - CALL timeset(routineN, handle) - - ierr = 0 -#if defined(__parallel) - CALL mp_free_mem(DATA, ierr) - IF (PRESENT(stat)) THEN - stat = ierr - ELSE - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_free_mem @ "//routineN) - END IF - NULLIFY (DATA) -#else - DEALLOCATE (DATA) - IF (PRESENT(stat)) stat = 0 -#endif - CALL timestop(handle) - END SUBROUTINE mp_deallocate_d - - SUBROUTINE mp_file_write_at_dv(fh, offset, msg, msglen) - !! (parallel) Blocking individual file write using explicit offsets - !! (serial) Unformatted stream write - !! - !! MPI-I/O mapping mpi_file_write_at - !! - !! STREAM-I/O mapping WRITE - - REAL(kind=real_8), INTENT(IN) :: msg(:) - !! data to be written to the file - TYPE(mp_file_type), INTENT(IN) :: fh - !! file handle (file storage unit) - INTEGER, INTENT(IN), OPTIONAL :: msglen - !! number of the elements of data - INTEGER(kind=file_offset), INTENT(IN) :: offset - !! file offset (position) - - INTEGER :: msg_len - - msg_len = SIZE(msg) - IF (PRESENT(msglen)) msg_len = msglen - -#if defined(__parallel) - BLOCK - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_dv' - INTEGER :: ierr - ierr = 0 - CALL MPI_FILE_WRITE_AT(fh%handle, offset, msg, msg_len, MPI_DOUBLE_PRECISION, MPI_STATUS_IGNORE, ierr) - IF (ierr .NE. 0) & - DBCSR_ABORT("mpi_file_write_at_dv @ "//routineN) - END BLOCK -#else - WRITE (UNIT=fh%handle, POS=offset + 1) msg(1:msg_len) -#endif - END SUBROUTINE mp_file_write_at_dv - -! ***************************************************************************** -! ***************************************************************************** - SUBROUTINE mp_file_write_at_d (fh, offset, msg) - REAL(kind=real_8), INTENT(IN) :: msg - TYPE(mp_file_type), INTENT(IN) :: fh - INTEGER(kind=file_offset), INTENT(IN) :: offset - -#if defined(__parallel) - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_d' - - INTEGER :: ierr - - ierr = 0 - CALL MPI_FILE_WRITE_AT(fh%handle, offset, msg, 1, MPI_DOUBLE_PRECISION, MPI_STATUS_IGNORE, ierr) - IF (ierr .NE. 0) & - DBCSR_ABORT("mpi_file_write_at_d @ "//routineN) -#else - WRITE (UNIT=fh%handle, POS=offset + 1) msg -#endif - END SUBROUTINE mp_file_write_at_d - - SUBROUTINE mp_file_write_at_all_dv(fh, offset, msg, msglen) - !! (parallel) Blocking collective file write using explicit offsets - !! (serial) Unformatted stream write - !! - !! MPI-I/O mapping mpi_file_write_at_all - !! - !! STREAM-I/O mapping WRITE - - REAL(kind=real_8), INTENT(IN) :: msg(:) - TYPE(mp_file_type), INTENT(IN) :: fh - INTEGER, INTENT(IN), OPTIONAL :: msglen - INTEGER :: msg_len - INTEGER(kind=file_offset), INTENT(IN) :: offset - - msg_len = SIZE(msg) - IF (PRESENT(msglen)) msg_len = msglen -#if defined(__parallel) - BLOCK - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_all_dv' - INTEGER :: ierr - ierr = 0 - - CALL MPI_FILE_WRITE_AT_ALL(fh%handle, offset, msg, msg_len, MPI_DOUBLE_PRECISION, MPI_STATUS_IGNORE, ierr) - IF (ierr .NE. 0) & - DBCSR_ABORT("mpi_file_write_at_all_dv @ "//routineN) - END BLOCK -#else - WRITE (UNIT=fh%handle, POS=offset + 1) msg(1:msg_len) -#endif - END SUBROUTINE mp_file_write_at_all_dv - -! ***************************************************************************** -! ***************************************************************************** - SUBROUTINE mp_file_write_at_all_d (fh, offset, msg) - REAL(kind=real_8), INTENT(IN) :: msg - TYPE(mp_file_type), INTENT(IN) :: fh - INTEGER(kind=file_offset), INTENT(IN) :: offset - -#if defined(__parallel) - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_all_d' - - INTEGER :: ierr - - ierr = 0 - CALL MPI_FILE_WRITE_AT_ALL(fh%handle, offset, msg, 1, MPI_DOUBLE_PRECISION, MPI_STATUS_IGNORE, ierr) - IF (ierr .NE. 0) & - DBCSR_ABORT("mpi_file_write_at_all_d @ "//routineN) -#else - WRITE (UNIT=fh%handle, POS=offset + 1) msg -#endif - END SUBROUTINE mp_file_write_at_all_d - -! ***************************************************************************** -! ***************************************************************************** - SUBROUTINE mp_file_read_at_all_dv(fh, offset, msg, msglen) - !! (parallel) Blocking collective file read using explicit offsets - !! (serial) Unformatted stream read - !! - !! MPI-I/O mapping mpi_file_read_at_all - !! - !! STREAM-I/O mapping READ - - REAL(kind=real_8), INTENT(OUT) :: msg(:) - TYPE(mp_file_type), INTENT(IN) :: fh - INTEGER, INTENT(IN), OPTIONAL :: msglen - INTEGER(kind=file_offset), INTENT(IN) :: offset - - INTEGER :: msg_len - - msg_len = SIZE(msg) - IF (PRESENT(msglen)) msg_len = msglen -#if defined(__parallel) - BLOCK - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_read_at_all_dv' - INTEGER :: ierr - ierr = 0 - - CALL MPI_FILE_READ_AT_ALL(fh%handle, offset, msg, msg_len, MPI_DOUBLE_PRECISION, MPI_STATUS_IGNORE, ierr) - IF (ierr .NE. 0) & - DBCSR_ABORT("mpi_file_read_at_all_dv @ "//routineN) - END BLOCK -#else - READ (UNIT=fh%handle, POS=offset + 1) msg(1:msg_len) -#endif - END SUBROUTINE mp_file_read_at_all_dv - -! ***************************************************************************** -! ***************************************************************************** - SUBROUTINE mp_file_read_at_all_d (fh, offset, msg) - REAL(kind=real_8), INTENT(OUT) :: msg - TYPE(mp_file_type), INTENT(IN) :: fh - INTEGER(kind=file_offset), INTENT(IN) :: offset - -#if defined(__parallel) - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_read_at_all_d' - - INTEGER :: ierr - - ierr = 0 - CALL MPI_FILE_READ_AT_ALL(fh%handle, offset, msg, 1, MPI_DOUBLE_PRECISION, MPI_STATUS_IGNORE, ierr) - IF (ierr .NE. 0) & - DBCSR_ABORT("mpi_file_read_at_all_d @ "//routineN) -#else - READ (UNIT=fh%handle, POS=offset + 1) msg -#endif - END SUBROUTINE mp_file_read_at_all_d - -! ***************************************************************************** -! ***************************************************************************** - FUNCTION mp_type_make_d (ptr, & - vector_descriptor, index_descriptor) & - RESULT(type_descriptor) - REAL(kind=real_8), DIMENSION(:), POINTER :: ptr - INTEGER, DIMENSION(2), INTENT(IN), OPTIONAL :: vector_descriptor - TYPE(mp_indexing_meta_type), INTENT(IN), OPTIONAL :: index_descriptor - TYPE(mp_type_descriptor_type) :: type_descriptor - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_type_make_d' - - INTEGER :: ierr - - ierr = 0 - NULLIFY (type_descriptor%subtype) - type_descriptor%length = SIZE(ptr) -#if defined(__parallel) - type_descriptor%type_handle = MPI_DOUBLE_PRECISION - CALL MPI_Get_address(ptr, type_descriptor%base, ierr) - IF (ierr /= 0) & - DBCSR_ABORT("MPI_Get_address @ "//routineN) -#else - type_descriptor%type_handle = 3 -#endif - type_descriptor%vector_descriptor(1:2) = 1 - type_descriptor%has_indexing = .FALSE. - type_descriptor%data_d => ptr - IF (PRESENT(vector_descriptor) .OR. PRESENT(index_descriptor)) THEN - DBCSR_ABORT(routineN//": Vectors and indices NYI") - END IF - END FUNCTION mp_type_make_d + SUBROUTINE mp_file_write_at_dv(fh, offset, msg, msglen) + !! (parallel) Blocking individual file write using explicit offsets + !! (serial) Unformatted stream write + !! + !! MPI-I/O mapping mpi_file_write_at + !! + !! STREAM-I/O mapping WRITE + + REAL(kind=real_8), INTENT(IN) :: msg(:) + !! data to be written to the file + TYPE(mp_file_type), INTENT(IN) :: fh + !! file handle (file storage unit) + INTEGER, INTENT(IN), OPTIONAL :: msglen + !! number of the elements of data + INTEGER(kind=file_offset), INTENT(IN) :: offset + !! file offset (position) + + INTEGER :: msg_len + + msg_len = SIZE(msg) + IF (PRESENT(msglen)) msg_len = msglen + +#if defined(__parallel) + BLOCK + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_dv' + INTEGER :: ierr + ierr = 0 + CALL MPI_FILE_WRITE_AT(fh%handle, offset, msg, msg_len, MPI_DOUBLE_PRECISION, MPI_STATUS_IGNORE, ierr) + IF (ierr .NE. 0) & + DBCSR_ABORT("mpi_file_write_at_dv @ "//routineN) + END BLOCK +#else + WRITE (UNIT=fh%handle, POS=offset + 1) msg(1:msg_len) +#endif + END SUBROUTINE mp_file_write_at_dv + +! ***************************************************************************** +! ***************************************************************************** + SUBROUTINE mp_file_write_at_d (fh, offset, msg) + REAL(kind=real_8), INTENT(IN) :: msg + TYPE(mp_file_type), INTENT(IN) :: fh + INTEGER(kind=file_offset), INTENT(IN) :: offset + +#if defined(__parallel) + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_d' + + INTEGER :: ierr + + ierr = 0 + CALL MPI_FILE_WRITE_AT(fh%handle, offset, msg, 1, MPI_DOUBLE_PRECISION, MPI_STATUS_IGNORE, ierr) + IF (ierr .NE. 0) & + DBCSR_ABORT("mpi_file_write_at_d @ "//routineN) +#else + WRITE (UNIT=fh%handle, POS=offset + 1) msg +#endif + END SUBROUTINE mp_file_write_at_d + + SUBROUTINE mp_file_write_at_all_dv(fh, offset, msg, msglen) + !! (parallel) Blocking collective file write using explicit offsets + !! (serial) Unformatted stream write + !! + !! MPI-I/O mapping mpi_file_write_at_all + !! + !! STREAM-I/O mapping WRITE + + REAL(kind=real_8), INTENT(IN) :: msg(:) + TYPE(mp_file_type), INTENT(IN) :: fh + INTEGER, INTENT(IN), OPTIONAL :: msglen + INTEGER :: msg_len + INTEGER(kind=file_offset), INTENT(IN) :: offset + + msg_len = SIZE(msg) + IF (PRESENT(msglen)) msg_len = msglen +#if defined(__parallel) + BLOCK + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_all_dv' + INTEGER :: ierr + ierr = 0 + + CALL MPI_FILE_WRITE_AT_ALL(fh%handle, offset, msg, msg_len, MPI_DOUBLE_PRECISION, MPI_STATUS_IGNORE, ierr) + IF (ierr .NE. 0) & + DBCSR_ABORT("mpi_file_write_at_all_dv @ "//routineN) + END BLOCK +#else + WRITE (UNIT=fh%handle, POS=offset + 1) msg(1:msg_len) +#endif + END SUBROUTINE mp_file_write_at_all_dv + +! ***************************************************************************** +! ***************************************************************************** + SUBROUTINE mp_file_write_at_all_d (fh, offset, msg) + REAL(kind=real_8), INTENT(IN) :: msg + TYPE(mp_file_type), INTENT(IN) :: fh + INTEGER(kind=file_offset), INTENT(IN) :: offset + +#if defined(__parallel) + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_all_d' + + INTEGER :: ierr + + ierr = 0 + CALL MPI_FILE_WRITE_AT_ALL(fh%handle, offset, msg, 1, MPI_DOUBLE_PRECISION, MPI_STATUS_IGNORE, ierr) + IF (ierr .NE. 0) & + DBCSR_ABORT("mpi_file_write_at_all_d @ "//routineN) +#else + WRITE (UNIT=fh%handle, POS=offset + 1) msg +#endif + END SUBROUTINE mp_file_write_at_all_d + +! ***************************************************************************** +! ***************************************************************************** + SUBROUTINE mp_file_read_at_all_dv(fh, offset, msg, msglen) + !! (parallel) Blocking collective file read using explicit offsets + !! (serial) Unformatted stream read + !! + !! MPI-I/O mapping mpi_file_read_at_all + !! + !! STREAM-I/O mapping READ + + REAL(kind=real_8), INTENT(OUT) :: msg(:) + TYPE(mp_file_type), INTENT(IN) :: fh + INTEGER, INTENT(IN), OPTIONAL :: msglen + INTEGER(kind=file_offset), INTENT(IN) :: offset + + INTEGER :: msg_len + + msg_len = SIZE(msg) + IF (PRESENT(msglen)) msg_len = msglen +#if defined(__parallel) + BLOCK + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_read_at_all_dv' + INTEGER :: ierr + ierr = 0 + + CALL MPI_FILE_READ_AT_ALL(fh%handle, offset, msg, msg_len, MPI_DOUBLE_PRECISION, MPI_STATUS_IGNORE, ierr) + IF (ierr .NE. 0) & + DBCSR_ABORT("mpi_file_read_at_all_dv @ "//routineN) + END BLOCK +#else + READ (UNIT=fh%handle, POS=offset + 1) msg(1:msg_len) +#endif + END SUBROUTINE mp_file_read_at_all_dv + +! ***************************************************************************** +! ***************************************************************************** + SUBROUTINE mp_file_read_at_all_d (fh, offset, msg) + REAL(kind=real_8), INTENT(OUT) :: msg + TYPE(mp_file_type), INTENT(IN) :: fh + INTEGER(kind=file_offset), INTENT(IN) :: offset + +#if defined(__parallel) + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_read_at_all_d' + + INTEGER :: ierr + + ierr = 0 + CALL MPI_FILE_READ_AT_ALL(fh%handle, offset, msg, 1, MPI_DOUBLE_PRECISION, MPI_STATUS_IGNORE, ierr) + IF (ierr .NE. 0) & + DBCSR_ABORT("mpi_file_read_at_all_d @ "//routineN) +#else + READ (UNIT=fh%handle, POS=offset + 1) msg +#endif + END SUBROUTINE mp_file_read_at_all_d + +! ***************************************************************************** +! ***************************************************************************** + FUNCTION mp_type_make_d (ptr, & + vector_descriptor, index_descriptor) & + RESULT(type_descriptor) + REAL(kind=real_8), DIMENSION(:), POINTER :: ptr + INTEGER, DIMENSION(2), INTENT(IN), OPTIONAL :: vector_descriptor + TYPE(mp_indexing_meta_type), INTENT(IN), OPTIONAL :: index_descriptor + TYPE(mp_type_descriptor_type) :: type_descriptor + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_type_make_d' + + INTEGER :: ierr + + ierr = 0 + NULLIFY (type_descriptor%subtype) + type_descriptor%length = SIZE(ptr) +#if defined(__parallel) + type_descriptor%type_handle = MPI_DOUBLE_PRECISION + CALL MPI_Get_address(ptr, type_descriptor%base, ierr) + IF (ierr /= 0) & + DBCSR_ABORT("MPI_Get_address @ "//routineN) +#else + type_descriptor%type_handle = 3 +#endif + type_descriptor%vector_descriptor(1:2) = 1 + type_descriptor%has_indexing = .FALSE. + type_descriptor%data_d => ptr + IF (PRESENT(vector_descriptor) .OR. PRESENT(index_descriptor)) THEN + DBCSR_ABORT(routineN//": Vectors and indices NYI") + END IF + END FUNCTION mp_type_make_d + +#if defined(__parallel) + SUBROUTINE mp_alloc_mem_d (DATA, len, stat) + !! Allocates an array, using MPI_ALLOC_MEM ... this is hackish + !! as the Fortran version returns an integer, which we take to be a C_PTR + + REAL(kind=real_8), DIMENSION(:), POINTER, CONTIGUOUS :: DATA + !! data array to allocate + INTEGER, INTENT(IN) :: len + !! length (in data elements) of data array allocation + INTEGER, INTENT(OUT), OPTIONAL :: stat + !! allocation status result + + INTEGER :: size, ierr, length, & + mp_res + INTEGER(KIND=MPI_ADDRESS_KIND) :: mp_size + TYPE(C_PTR) :: mp_baseptr + MPI_INFO_TYPE :: mp_info -#if defined(__parallel) - SUBROUTINE mp_alloc_mem_d (DATA, len, stat) - !! Allocates an array, using MPI_ALLOC_MEM ... this is hackish - !! as the Fortran version returns an integer, which we take to be a C_PTR - - REAL(kind=real_8), DIMENSION(:), POINTER, CONTIGUOUS :: DATA - !! data array to allocate - INTEGER, INTENT(IN) :: len - !! length (in data elements) of data array allocation - INTEGER, INTENT(OUT), OPTIONAL :: stat - !! allocation status result - - INTEGER :: size, ierr, length, & - mp_res - INTEGER(KIND=MPI_ADDRESS_KIND) :: mp_size - TYPE(C_PTR) :: mp_baseptr - MPI_INFO_TYPE :: mp_info + length = MAX(len, 1) + CALL MPI_TYPE_SIZE(MPI_DOUBLE_PRECISION, size, ierr) + mp_size = INT(length, KIND=MPI_ADDRESS_KIND)*size + IF (mp_size .GT. mp_max_memory_size) THEN + DBCSR_ABORT("MPI cannot allocate more than 2 GiByte") + END IF + mp_info = MPI_INFO_NULL + CALL MPI_ALLOC_MEM(mp_size, mp_info, mp_baseptr, mp_res) + CALL C_F_POINTER(mp_baseptr, DATA, (/length/)) + IF (PRESENT(stat)) stat = mp_res + END SUBROUTINE mp_alloc_mem_d +#endif + +#if defined(__parallel) + SUBROUTINE mp_free_mem_d (DATA, stat) + !! Deallocates am array, ... this is hackish + !! as the Fortran version takes an integer, which we hope to get by reference - length = MAX(len, 1) - CALL MPI_TYPE_SIZE(MPI_DOUBLE_PRECISION, size, ierr) - mp_size = INT(length, KIND=MPI_ADDRESS_KIND)*size - IF (mp_size .GT. mp_max_memory_size) THEN - DBCSR_ABORT("MPI cannot allocate more than 2 GiByte") - END IF - mp_info = MPI_INFO_NULL - CALL MPI_ALLOC_MEM(mp_size, mp_info, mp_baseptr, mp_res) - CALL C_F_POINTER(mp_baseptr, DATA, (/length/)) - IF (PRESENT(stat)) stat = mp_res - END SUBROUTINE mp_alloc_mem_d -#endif - -#if defined(__parallel) - SUBROUTINE mp_free_mem_d (DATA, stat) - !! Deallocates am array, ... this is hackish - !! as the Fortran version takes an integer, which we hope to get by reference - - REAL(kind=real_8), DIMENSION(:), & - POINTER, CONTIGUOUS :: DATA - !! data array to allocate - INTEGER, INTENT(OUT), OPTIONAL :: stat - !! allocation status result - - INTEGER :: mp_res - CALL MPI_FREE_MEM(DATA, mp_res) - IF (PRESENT(stat)) stat = mp_res - END SUBROUTINE mp_free_mem_d -#endif - -# 2824 "/__w/dbcsr/dbcsr/src/mpi/dbcsr_mpiwrap.F" - SUBROUTINE mp_alltoall_r11v(sb, scount, sdispl, rb, rcount, rdispl, group) - !! All-to-all data exchange, rank-1 data of different sizes - !! - !! MPI mapping - !! mpi_alltoallv - !! - !! Array sizes - !! The scount, rcount, and the sdispl and rdispl arrays have a - !! size equal to the number of processes. - !! - !! Offsets - !! Values in sdispl and rdispl start with 0. - - REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: sb(:) - !! Data to send - INTEGER, CONTIGUOUS, INTENT(IN) :: scount(:), sdispl(:) - !! Data counts for data sent to other processes - !! Respective data offsets for data sent to process - REAL(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: rb(:) - !! Buffer into which to receive data - INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:), rdispl(:) - !! Data counts for data received from other processes - !! Respective data offsets for data received from other processes - TYPE(mp_comm_type), INTENT(IN) :: group - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_r11v' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen -#else - INTEGER :: i -#endif - - CALL timeset(routineN, handle) + REAL(kind=real_8), DIMENSION(:), & + POINTER, CONTIGUOUS :: DATA + !! data array to allocate + INTEGER, INTENT(OUT), OPTIONAL :: stat + !! allocation status result + + INTEGER :: mp_res + CALL MPI_FREE_MEM(DATA, mp_res) + IF (PRESENT(stat)) stat = mp_res + END SUBROUTINE mp_free_mem_d +#endif + +# 2824 "/__w/dbcsr/dbcsr/src/mpi/dbcsr_mpiwrap.F" + SUBROUTINE mp_alltoall_r11v(sb, scount, sdispl, rb, rcount, rdispl, group) + !! All-to-all data exchange, rank-1 data of different sizes + !! + !! MPI mapping + !! mpi_alltoallv + !! + !! Array sizes + !! The scount, rcount, and the sdispl and rdispl arrays have a + !! size equal to the number of processes. + !! + !! Offsets + !! Values in sdispl and rdispl start with 0. + + REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: sb(:) + !! Data to send + INTEGER, CONTIGUOUS, INTENT(IN) :: scount(:), sdispl(:) + !! Data counts for data sent to other processes + !! Respective data offsets for data sent to process + REAL(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: rb(:) + !! Buffer into which to receive data + INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:), rdispl(:) + !! Data counts for data received from other processes + !! Respective data offsets for data received from other processes + TYPE(mp_comm_type), INTENT(IN) :: group + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_r11v' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen +#else + INTEGER :: i +#endif + + CALL timeset(routineN, handle) + + ierr = 0 +#if defined(__parallel) + CALL mpi_alltoallv(sb, scount, sdispl, MPI_REAL, & + rb, rcount, rdispl, MPI_REAL, group%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoallv @ "//routineN) + msglen = SUM(scount) + SUM(rcount) + CALL add_perf(perf_id=6, msg_size=msglen*real_4_size) +#else + MARK_USED(group) + MARK_USED(scount) + MARK_USED(sdispl) +!$OMP PARALLEL DO DEFAULT(NONE) PRIVATE(i) SHARED(rcount,rdispl,sdispl,rb,sb) + DO i = 1, rcount(1) + rb(rdispl(1) + i) = sb(sdispl(1) + i) + END DO +#endif + CALL timestop(handle) - ierr = 0 -#if defined(__parallel) - CALL mpi_alltoallv(sb, scount, sdispl, MPI_REAL, & - rb, rcount, rdispl, MPI_REAL, group%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoallv @ "//routineN) - msglen = SUM(scount) + SUM(rcount) - CALL add_perf(perf_id=6, msg_size=msglen*real_4_size) -#else - MARK_USED(group) - MARK_USED(scount) - MARK_USED(sdispl) -!$OMP PARALLEL DO DEFAULT(NONE) PRIVATE(i) SHARED(rcount,rdispl,sdispl,rb,sb) - DO i = 1, rcount(1) - rb(rdispl(1) + i) = sb(sdispl(1) + i) - END DO -#endif - CALL timestop(handle) - - END SUBROUTINE mp_alltoall_r11v - - SUBROUTINE mp_alltoall_r (sb, rb, count, group) - !! All-to-all data exchange, rank 1 arrays, equal sizes - !! - !! Index meaning - !! - !! The first two indices specify the data while the last index counts - !! the processes - !! - !! Sizes of ranks - !! All processes have the same data size. - !! - !! MPI mapping - !! mpi_alltoall - - REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: sb(:) - !! array with data to send - REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: rb(:) - !! array into which data is received - INTEGER, INTENT(IN) :: count - !! number of elements to send/receive (product of the extents of the first two dimensions) - TYPE(mp_comm_type), INTENT(IN) :: group - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_r' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, np -#endif + END SUBROUTINE mp_alltoall_r11v + + SUBROUTINE mp_alltoall_r (sb, rb, count, group) + !! All-to-all data exchange, rank 1 arrays, equal sizes + !! + !! Index meaning + !! + !! The first two indices specify the data while the last index counts + !! the processes + !! + !! Sizes of ranks + !! All processes have the same data size. + !! + !! MPI mapping + !! mpi_alltoall + + REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: sb(:) + !! array with data to send + REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: rb(:) + !! array into which data is received + INTEGER, INTENT(IN) :: count + !! number of elements to send/receive (product of the extents of the first two dimensions) + TYPE(mp_comm_type), INTENT(IN) :: group + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_r' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, np +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + CALL mpi_alltoall(sb, count, MPI_REAL, & + rb, count, MPI_REAL, group%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoall @ "//routineN) + CALL mpi_comm_size(group%handle, np, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_size @ "//routineN) + msglen = 2*count*np + CALL add_perf(perf_id=6, msg_size=msglen*real_4_size) +#else + MARK_USED(count) + MARK_USED(group) + rb = sb +#endif + CALL timestop(handle) - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - CALL mpi_alltoall(sb, count, MPI_REAL, & - rb, count, MPI_REAL, group%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoall @ "//routineN) - CALL mpi_comm_size(group%handle, np, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_size @ "//routineN) - msglen = 2*count*np - CALL add_perf(perf_id=6, msg_size=msglen*real_4_size) -#else - MARK_USED(count) - MARK_USED(group) - rb = sb -#endif - CALL timestop(handle) + END SUBROUTINE mp_alltoall_r + + SUBROUTINE mp_alltoall_r22(sb, rb, count, group) + !! All-to-all data exchange, rank-2 arrays, equal sizes + !! @note see mp_alltoall_r + + REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: sb(:, :) + REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: rb(:, :) + INTEGER, INTENT(IN) :: count + TYPE(mp_comm_type), INTENT(IN) :: group + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_r22' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, np +#endif - END SUBROUTINE mp_alltoall_r - - SUBROUTINE mp_alltoall_r22(sb, rb, count, group) - !! All-to-all data exchange, rank-2 arrays, equal sizes - !! @note see mp_alltoall_r - - REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: sb(:, :) - REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: rb(:, :) - INTEGER, INTENT(IN) :: count - TYPE(mp_comm_type), INTENT(IN) :: group - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_r22' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, np -#endif + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + CALL mpi_alltoall(sb, count, MPI_REAL, & + rb, count, MPI_REAL, group%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoall @ "//routineN) + CALL mpi_comm_size(group%handle, np, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_size @ "//routineN) + msglen = 2*SIZE(sb)*np + CALL add_perf(perf_id=6, msg_size=msglen*real_4_size) +#else + MARK_USED(count) + MARK_USED(group) + rb = sb +#endif + CALL timestop(handle) - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - CALL mpi_alltoall(sb, count, MPI_REAL, & - rb, count, MPI_REAL, group%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoall @ "//routineN) - CALL mpi_comm_size(group%handle, np, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_size @ "//routineN) - msglen = 2*SIZE(sb)*np - CALL add_perf(perf_id=6, msg_size=msglen*real_4_size) -#else - MARK_USED(count) - MARK_USED(group) - rb = sb -#endif - CALL timestop(handle) - - END SUBROUTINE mp_alltoall_r22 + END SUBROUTINE mp_alltoall_r22 + + SUBROUTINE mp_alltoall_r44(sb, rb, count, group) + !! All-to-all data exchange, rank 4 data, equal sizes + !! @note see mp_alltoall_r + + REAL(kind=real_4), DIMENSION(:, :, :, :), CONTIGUOUS, & + INTENT(IN) :: sb + REAL(kind=real_4), DIMENSION(:, :, :, :), CONTIGUOUS, & + INTENT(OUT) :: rb + INTEGER, INTENT(IN) :: count + TYPE(mp_comm_type), INTENT(IN) :: group + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_r44' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, np +#endif - SUBROUTINE mp_alltoall_r44(sb, rb, count, group) - !! All-to-all data exchange, rank 4 data, equal sizes - !! @note see mp_alltoall_r - - REAL(kind=real_4), DIMENSION(:, :, :, :), CONTIGUOUS, & - INTENT(IN) :: sb - REAL(kind=real_4), DIMENSION(:, :, :, :), CONTIGUOUS, & - INTENT(OUT) :: rb - INTEGER, INTENT(IN) :: count - TYPE(mp_comm_type), INTENT(IN) :: group - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_r44' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, np -#endif + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + CALL mpi_alltoall(sb, count, MPI_REAL, & + rb, count, MPI_REAL, group%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoall @ "//routineN) + CALL mpi_comm_size(group%handle, np, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_size @ "//routineN) + msglen = 2*count*np + CALL add_perf(perf_id=6, msg_size=msglen*real_4_size) +#else + MARK_USED(count) + MARK_USED(group) + rb = sb +#endif + CALL timestop(handle) - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - CALL mpi_alltoall(sb, count, MPI_REAL, & - rb, count, MPI_REAL, group%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoall @ "//routineN) - CALL mpi_comm_size(group%handle, np, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_size @ "//routineN) - msglen = 2*count*np - CALL add_perf(perf_id=6, msg_size=msglen*real_4_size) -#else - MARK_USED(count) - MARK_USED(group) - rb = sb -#endif - CALL timestop(handle) + END SUBROUTINE mp_alltoall_r44 + + SUBROUTINE mp_send_r (msg, dest, tag, gid) + !! Send one datum to another process + !! + !! MPI mapping + !! mpi_send + + REAL(kind=real_4) :: msg + !! Scalar to send + INTEGER :: dest, tag + !! Destination process + !! Transfer identifier + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_send_r' - END SUBROUTINE mp_alltoall_r44 + INTEGER :: handle, ierr, msglen - SUBROUTINE mp_send_r (msg, dest, tag, gid) - !! Send one datum to another process - !! - !! MPI mapping - !! mpi_send - - REAL(kind=real_4) :: msg - !! Scalar to send - INTEGER :: dest, tag - !! Destination process - !! Transfer identifier - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_send_r' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = 1 -#if defined(__parallel) - CALL mpi_send(msg, msglen, MPI_REAL, dest, tag, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_send @ "//routineN) - CALL add_perf(perf_id=13, msg_size=msglen*real_4_size) -#else - MARK_USED(msg) - MARK_USED(dest) - MARK_USED(tag) - MARK_USED(gid) - ! only defined in parallel - DBCSR_ABORT("not in parallel mode") -#endif - CALL timestop(handle) - END SUBROUTINE mp_send_r - - SUBROUTINE mp_send_rv(msg, dest, tag, gid) - !! Send rank-1 data to another process - !! @note see mp_send_r - - REAL(kind=real_4), CONTIGUOUS :: msg(:) - !! Rank-1 data to send - INTEGER :: dest, tag - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_send_rv' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_send(msg, msglen, MPI_REAL, dest, tag, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_send @ "//routineN) - CALL add_perf(perf_id=13, msg_size=msglen*real_4_size) -#else - MARK_USED(msg) - MARK_USED(dest) - MARK_USED(tag) - MARK_USED(gid) - ! only defined in parallel - DBCSR_ABORT("not in parallel mode") -#endif - CALL timestop(handle) - END SUBROUTINE mp_send_rv - - SUBROUTINE mp_recv_r (msg, source, tag, gid) - !! Receive one datum from another process - !! - !! MPI mapping - !! mpi_send + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_send(msg, msglen, MPI_REAL, dest, tag, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_send @ "//routineN) + CALL add_perf(perf_id=13, msg_size=msglen*real_4_size) +#else + MARK_USED(msg) + MARK_USED(dest) + MARK_USED(tag) + MARK_USED(gid) + ! only defined in parallel + DBCSR_ABORT("not in parallel mode") +#endif + CALL timestop(handle) + END SUBROUTINE mp_send_r + + SUBROUTINE mp_send_rv(msg, dest, tag, gid) + !! Send rank-1 data to another process + !! @note see mp_send_r + + REAL(kind=real_4), CONTIGUOUS :: msg(:) + !! Rank-1 data to send + INTEGER :: dest, tag + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_send_rv' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_send(msg, msglen, MPI_REAL, dest, tag, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_send @ "//routineN) + CALL add_perf(perf_id=13, msg_size=msglen*real_4_size) +#else + MARK_USED(msg) + MARK_USED(dest) + MARK_USED(tag) + MARK_USED(gid) + ! only defined in parallel + DBCSR_ABORT("not in parallel mode") +#endif + CALL timestop(handle) + END SUBROUTINE mp_send_rv + + SUBROUTINE mp_recv_r (msg, source, tag, gid) + !! Receive one datum from another process + !! + !! MPI mapping + !! mpi_send + + REAL(kind=real_4), INTENT(INOUT) :: msg + !! Place received data into this variable + INTEGER, INTENT(INOUT) :: source, tag + !! Process to receive from + !! Transfer identifier + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_recv_r' + + INTEGER :: handle, ierr, msglen +#if defined(__parallel) + MPI_STATUS_TYPE :: status +#endif + + ierr = 0 + CALL timeset(routineN, handle) - REAL(kind=real_4), INTENT(INOUT) :: msg - !! Place received data into this variable - INTEGER, INTENT(INOUT) :: source, tag - !! Process to receive from - !! Transfer identifier - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_recv_r' - - INTEGER :: handle, ierr, msglen -#if defined(__parallel) - MPI_STATUS_TYPE :: status -#endif - - ierr = 0 - CALL timeset(routineN, handle) + msglen = 1 +#if defined(__parallel) + CALL mpi_recv(msg, msglen, MPI_REAL, source, tag, gid%handle, status, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_recv @ "//routineN) + CALL add_perf(perf_id=14, msg_size=msglen*real_4_size) + source = status MPI_STATUS_EXTRACT(MPI_SOURCE) + tag = status MPI_STATUS_EXTRACT(MPI_TAG) +#else + MARK_USED(msg) + MARK_USED(source) + MARK_USED(tag) + MARK_USED(gid) + ! only defined in parallel + DBCSR_ABORT("not in parallel mode") +#endif + CALL timestop(handle) + END SUBROUTINE mp_recv_r - msglen = 1 -#if defined(__parallel) - CALL mpi_recv(msg, msglen, MPI_REAL, source, tag, gid%handle, status, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_recv @ "//routineN) - CALL add_perf(perf_id=14, msg_size=msglen*real_4_size) - source = status MPI_STATUS_EXTRACT(MPI_SOURCE) - tag = status MPI_STATUS_EXTRACT(MPI_TAG) -#else - MARK_USED(msg) - MARK_USED(source) - MARK_USED(tag) - MARK_USED(gid) - ! only defined in parallel - DBCSR_ABORT("not in parallel mode") + SUBROUTINE mp_recv_rv(msg, source, tag, gid) + !! Receive rank-1 data from another process + !! @note see mp_recv_r + + REAL(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:) + !! Place received data into this rank-1 array + INTEGER, INTENT(INOUT) :: source, tag + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_recv_rv' + + INTEGER :: handle, ierr, msglen +#if defined(__parallel) + MPI_STATUS_TYPE :: status #endif - CALL timestop(handle) - END SUBROUTINE mp_recv_r - - SUBROUTINE mp_recv_rv(msg, source, tag, gid) - !! Receive rank-1 data from another process - !! @note see mp_recv_r - - REAL(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:) - !! Place received data into this rank-1 array - INTEGER, INTENT(INOUT) :: source, tag - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_recv_rv' - - INTEGER :: handle, ierr, msglen -#if defined(__parallel) - MPI_STATUS_TYPE :: status -#endif - - ierr = 0 - CALL timeset(routineN, handle) + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_recv(msg, msglen, MPI_REAL, source, tag, gid%handle, status, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_recv @ "//routineN) + CALL add_perf(perf_id=14, msg_size=msglen*real_4_size) + source = status MPI_STATUS_EXTRACT(MPI_SOURCE) + tag = status MPI_STATUS_EXTRACT(MPI_TAG) +#else + MARK_USED(msg) + MARK_USED(source) + MARK_USED(tag) + MARK_USED(gid) + ! only defined in parallel + DBCSR_ABORT("not in parallel mode") +#endif + CALL timestop(handle) + END SUBROUTINE mp_recv_rv - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_recv(msg, msglen, MPI_REAL, source, tag, gid%handle, status, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_recv @ "//routineN) - CALL add_perf(perf_id=14, msg_size=msglen*real_4_size) - source = status MPI_STATUS_EXTRACT(MPI_SOURCE) - tag = status MPI_STATUS_EXTRACT(MPI_TAG) -#else - MARK_USED(msg) - MARK_USED(source) - MARK_USED(tag) - MARK_USED(gid) - ! only defined in parallel - DBCSR_ABORT("not in parallel mode") -#endif - CALL timestop(handle) - END SUBROUTINE mp_recv_rv - - SUBROUTINE mp_bcast_r (msg, source, gid) - !! Broadcasts a datum to all processes. - !! - !! MPI mapping - !! mpi_bcast - - REAL(kind=real_4) :: msg - !! Datum to broadcast - INTEGER :: source - !! Processes which broadcasts - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_r' + SUBROUTINE mp_bcast_r (msg, source, gid) + !! Broadcasts a datum to all processes. + !! + !! MPI mapping + !! mpi_bcast + + REAL(kind=real_4) :: msg + !! Datum to broadcast + INTEGER :: source + !! Processes which broadcasts + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_r' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_bcast(msg, msglen, MPI_REAL, source, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) + CALL add_perf(perf_id=2, msg_size=msglen*real_4_size) +#else + MARK_USED(msg) + MARK_USED(source) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_bcast_r - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = 1 -#if defined(__parallel) - CALL mpi_bcast(msg, msglen, MPI_REAL, source, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) - CALL add_perf(perf_id=2, msg_size=msglen*real_4_size) -#else - MARK_USED(msg) - MARK_USED(source) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_bcast_r + SUBROUTINE mp_ibcast_r (msg, source, gid, request) + !! Broadcasts a datum to all processes. + !! + !! MPI mapping + !! mpi_bcast + + REAL(kind=real_4) :: msg + !! Datum to broadcast + INTEGER :: source + !! Processes which broadcasts + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_ibcast_r' + + INTEGER :: handle, ierr, msglen - SUBROUTINE mp_ibcast_r (msg, source, gid, request) - !! Broadcasts a datum to all processes. - !! - !! MPI mapping - !! mpi_bcast - - REAL(kind=real_4) :: msg - !! Datum to broadcast - INTEGER :: source - !! Processes which broadcasts - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_ibcast_r' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_ibcast(msg, msglen, MPI_REAL, source, gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_ibcast @ "//routineN) + CALL add_perf(perf_id=22, msg_size=msglen*real_4_size) +#else + MARK_USED(msg) + MARK_USED(source) + MARK_USED(gid) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_ibcast_r + + SUBROUTINE mp_bcast_rv(msg, source, gid) + !! Broadcasts rank-1 data to all processes + !! @note see mp_bcast_r1 - msglen = 1 -#if defined(__parallel) - CALL mpi_ibcast(msg, msglen, MPI_REAL, source, gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_ibcast @ "//routineN) - CALL add_perf(perf_id=22, msg_size=msglen*real_4_size) -#else - MARK_USED(msg) - MARK_USED(source) - MARK_USED(gid) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_ibcast_r - - SUBROUTINE mp_bcast_rv(msg, source, gid) - !! Broadcasts rank-1 data to all processes - !! @note see mp_bcast_r1 - - REAL(kind=real_4), CONTIGUOUS :: msg(:) - !! Data to broadcast - INTEGER :: source - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_rv' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_bcast(msg, msglen, MPI_REAL, source, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) - CALL add_perf(perf_id=2, msg_size=msglen*real_4_size) -#else - MARK_USED(source) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_bcast_rv - - SUBROUTINE mp_ibcast_rv(msg, source, gid, request) - !! Broadcasts rank-1 data to all processes - !! @note see mp_bcast_r1 - - REAL(kind=real_4), CONTIGUOUS :: msg(:) - !! Data to broadcast - INTEGER :: source - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_ibcast_rv' + REAL(kind=real_4), CONTIGUOUS :: msg(:) + !! Data to broadcast + INTEGER :: source + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_rv' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_bcast(msg, msglen, MPI_REAL, source, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) + CALL add_perf(perf_id=2, msg_size=msglen*real_4_size) +#else + MARK_USED(source) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_bcast_rv + + SUBROUTINE mp_ibcast_rv(msg, source, gid, request) + !! Broadcasts rank-1 data to all processes + !! @note see mp_bcast_r1 + + REAL(kind=real_4), CONTIGUOUS :: msg(:) + !! Data to broadcast + INTEGER :: source + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_ibcast_rv' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_ibcast(msg, msglen, MPI_REAL, source, gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_ibcast @ "//routineN) + CALL add_perf(perf_id=22, msg_size=msglen*real_4_size) +#else + MARK_USED(source) + MARK_USED(gid) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_ibcast_rv - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_ibcast(msg, msglen, MPI_REAL, source, gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_ibcast @ "//routineN) - CALL add_perf(perf_id=22, msg_size=msglen*real_4_size) -#else - MARK_USED(source) - MARK_USED(gid) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_ibcast_rv - - SUBROUTINE mp_bcast_rm(msg, source, gid) - !! Broadcasts rank-2 data to all processes - !! @note see mp_bcast_r1 - - REAL(kind=real_4), CONTIGUOUS :: msg(:, :) - !! Data to broadcast - INTEGER :: source - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_im' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_bcast(msg, msglen, MPI_REAL, source, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) - CALL add_perf(perf_id=2, msg_size=msglen*real_4_size) -#else - MARK_USED(source) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_bcast_rm - - SUBROUTINE mp_bcast_r3(msg, source, gid) - !! Broadcasts rank-3 data to all processes - !! @note see mp_bcast_r1 - - REAL(kind=real_4), CONTIGUOUS :: msg(:, :, :) - !! Data to broadcast - INTEGER :: source - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_r3' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) + SUBROUTINE mp_bcast_rm(msg, source, gid) + !! Broadcasts rank-2 data to all processes + !! @note see mp_bcast_r1 + + REAL(kind=real_4), CONTIGUOUS :: msg(:, :) + !! Data to broadcast + INTEGER :: source + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_im' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_bcast(msg, msglen, MPI_REAL, source, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) + CALL add_perf(perf_id=2, msg_size=msglen*real_4_size) +#else + MARK_USED(source) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_bcast_rm + + SUBROUTINE mp_bcast_r3(msg, source, gid) + !! Broadcasts rank-3 data to all processes + !! @note see mp_bcast_r1 + + REAL(kind=real_4), CONTIGUOUS :: msg(:, :, :) + !! Data to broadcast + INTEGER :: source + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_r3' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_bcast(msg, msglen, MPI_REAL, source, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) + CALL add_perf(perf_id=2, msg_size=msglen*real_4_size) +#else + MARK_USED(source) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_bcast_r3 + + SUBROUTINE mp_sum_r (msg, gid) + !! Sums a datum from all processes with result left on all processes. + !! + !! MPI mapping + !! mpi_allreduce - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_bcast(msg, msglen, MPI_REAL, source, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) - CALL add_perf(perf_id=2, msg_size=msglen*real_4_size) -#else - MARK_USED(source) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_bcast_r3 + REAL(kind=real_4), INTENT(INOUT) :: msg + !! Datum to sum (input) and result (output) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_r' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) - SUBROUTINE mp_sum_r (msg, gid) - !! Sums a datum from all processes with result left on all processes. - !! - !! MPI mapping - !! mpi_allreduce - - REAL(kind=real_4), INTENT(INOUT) :: msg - !! Datum to sum (input) and result (output) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_r' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = 1 -#if defined(__parallel) - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_REAL, MPI_SUM, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - CALL add_perf(perf_id=3, msg_size=msglen*real_4_size) -#else - MARK_USED(msg) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_sum_r + msglen = 1 +#if defined(__parallel) + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_REAL, MPI_SUM, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + CALL add_perf(perf_id=3, msg_size=msglen*real_4_size) +#else + MARK_USED(msg) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_sum_r + + SUBROUTINE mp_sum_rv(msg, gid) + !! Element-wise sum of a rank-1 array on all processes. + !! @note see mp_sum_r + + REAL(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:) + !! Vector to sum and result + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_rv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen +#endif + + ierr = 0 + CALL timeset(routineN, handle) - SUBROUTINE mp_sum_rv(msg, gid) - !! Element-wise sum of a rank-1 array on all processes. - !! @note see mp_sum_r - - REAL(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:) - !! Vector to sum and result - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_rv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen -#endif - - ierr = 0 - CALL timeset(routineN, handle) +#if defined(__parallel) + msglen = SIZE(msg) + IF (msglen > 0) THEN + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_REAL, MPI_SUM, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + END IF + CALL add_perf(perf_id=3, msg_size=msglen*real_4_size) +#else + MARK_USED(msg) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_sum_rv + + SUBROUTINE mp_isum_rv(msg, gid, request) + !! Element-wise sum of a rank-1 array on all processes. + !! @note see mp_sum_r -#if defined(__parallel) - msglen = SIZE(msg) - IF (msglen > 0) THEN - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_REAL, MPI_SUM, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - END IF - CALL add_perf(perf_id=3, msg_size=msglen*real_4_size) -#else - MARK_USED(msg) - MARK_USED(gid) + REAL(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:) + !! Vector to sum and result + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isum_rv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen #endif - CALL timestop(handle) - END SUBROUTINE mp_sum_rv - - SUBROUTINE mp_isum_rv(msg, gid, request) - !! Element-wise sum of a rank-1 array on all processes. - !! @note see mp_sum_r - - REAL(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:) - !! Vector to sum and result - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isum_rv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + msglen = SIZE(msg) + IF (msglen > 0) THEN + CALL mpi_iallreduce(MPI_IN_PLACE, msg, msglen, MPI_REAL, MPI_SUM, gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallreduce @ "//routineN) + ELSE + request = mp_request_null + END IF + CALL add_perf(perf_id=23, msg_size=msglen*real_4_size) +#else + MARK_USED(msg) + MARK_USED(gid) + request = mp_request_null #endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - msglen = SIZE(msg) - IF (msglen > 0) THEN - CALL mpi_iallreduce(MPI_IN_PLACE, msg, msglen, MPI_REAL, MPI_SUM, gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallreduce @ "//routineN) - ELSE - request = mp_request_null - END IF - CALL add_perf(perf_id=23, msg_size=msglen*real_4_size) -#else - MARK_USED(msg) - MARK_USED(gid) - request = mp_request_null + CALL timestop(handle) + END SUBROUTINE mp_isum_rv + + SUBROUTINE mp_sum_rm(msg, gid) + !! Element-wise sum of a rank-2 array on all processes. + !! @note see mp_sum_r + + REAL(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:, :) + !! Matrix to sum and result + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_rm' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER, PARAMETER :: max_msg = 2**25 + INTEGER :: m1, msglen, step, msglensum #endif - CALL timestop(handle) - END SUBROUTINE mp_isum_rv - - SUBROUTINE mp_sum_rm(msg, gid) - !! Element-wise sum of a rank-2 array on all processes. - !! @note see mp_sum_r - - REAL(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:, :) - !! Matrix to sum and result - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_rm' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER, PARAMETER :: max_msg = 2**25 - INTEGER :: m1, msglen, step, msglensum -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - ! chunk up the call so that message sizes are limited, to avoid overflows in mpich triggered in large rpa calcs - step = MAX(1, SIZE(msg, 2)/MAX(1, SIZE(msg)/max_msg)) - msglensum = 0 - DO m1 = LBOUND(msg, 2), UBOUND(msg, 2), step - msglen = SIZE(msg, 1)*(MIN(UBOUND(msg, 2), m1 + step - 1) - m1 + 1) - msglensum = msglensum + msglen - IF (msglen > 0) THEN - CALL mpi_allreduce(MPI_IN_PLACE, msg(LBOUND(msg, 1), m1), msglen, MPI_REAL, MPI_SUM, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - END IF - END DO - CALL add_perf(perf_id=3, msg_size=msglensum*real_4_size) -#else - MARK_USED(msg) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_sum_rm - - SUBROUTINE mp_sum_rm3(msg, gid) - !! Element-wise sum of a rank-3 array on all processes. - !! @note see mp_sum_r - - REAL(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:, :, :) - !! Array to sum and result - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_rm3' + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + ! chunk up the call so that message sizes are limited, to avoid overflows in mpich triggered in large rpa calcs + step = MAX(1, SIZE(msg, 2)/MAX(1, SIZE(msg)/max_msg)) + msglensum = 0 + DO m1 = LBOUND(msg, 2), UBOUND(msg, 2), step + msglen = SIZE(msg, 1)*(MIN(UBOUND(msg, 2), m1 + step - 1) - m1 + 1) + msglensum = msglensum + msglen + IF (msglen > 0) THEN + CALL mpi_allreduce(MPI_IN_PLACE, msg(LBOUND(msg, 1), m1), msglen, MPI_REAL, MPI_SUM, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + END IF + END DO + CALL add_perf(perf_id=3, msg_size=msglensum*real_4_size) +#else + MARK_USED(msg) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_sum_rm + + SUBROUTINE mp_sum_rm3(msg, gid) + !! Element-wise sum of a rank-3 array on all processes. + !! @note see mp_sum_r + + REAL(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:, :, :) + !! Array to sum and result + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_rm3' + + INTEGER :: handle, ierr, & + msglen + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + IF (msglen > 0) THEN + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_REAL, MPI_SUM, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + END IF + CALL add_perf(perf_id=3, msg_size=msglen*real_4_size) +#else + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_sum_rm3 - INTEGER :: handle, ierr, & - msglen - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - IF (msglen > 0) THEN - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_REAL, MPI_SUM, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - END IF - CALL add_perf(perf_id=3, msg_size=msglen*real_4_size) -#else - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_sum_rm3 - - SUBROUTINE mp_sum_rm4(msg, gid) - !! Element-wise sum of a rank-4 array on all processes. - !! @note see mp_sum_r - - REAL(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:, :, :, :) - !! Array to sum and result - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_rm4' - - INTEGER :: handle, ierr, & - msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - IF (msglen > 0) THEN - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_REAL, MPI_SUM, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - END IF - CALL add_perf(perf_id=3, msg_size=msglen*real_4_size) -#else - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_sum_rm4 - - SUBROUTINE mp_sum_root_rv(msg, root, gid) - !! Element-wise sum of data from all processes with result left only on - !! one. - !! - !! MPI mapping - !! mpi_reduce - - REAL(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:) - !! Vector to sum (input) and (only on process root) result (output) - INTEGER, INTENT(IN) :: root - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_root_rv' - - INTEGER :: handle, ierr, msglen -#if defined(__parallel) - INTEGER :: m1, taskid - REAL(kind=real_4), ALLOCATABLE :: res(:) -#endif - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_comm_rank(gid%handle, taskid, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_rank @ "//routineN) - IF (msglen > 0) THEN - m1 = SIZE(msg, 1) - ALLOCATE (res(m1)) - CALL mpi_reduce(msg, res, msglen, MPI_REAL, MPI_SUM, & - root, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_reduce @ "//routineN) - IF (taskid == root) THEN - msg = res - END IF - DEALLOCATE (res) - END IF - CALL add_perf(perf_id=3, msg_size=msglen*real_4_size) -#else - MARK_USED(root) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_sum_root_rv + SUBROUTINE mp_sum_rm4(msg, gid) + !! Element-wise sum of a rank-4 array on all processes. + !! @note see mp_sum_r + + REAL(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:, :, :, :) + !! Array to sum and result + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_rm4' + + INTEGER :: handle, ierr, & + msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + IF (msglen > 0) THEN + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_REAL, MPI_SUM, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + END IF + CALL add_perf(perf_id=3, msg_size=msglen*real_4_size) +#else + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_sum_rm4 + + SUBROUTINE mp_sum_root_rv(msg, root, gid) + !! Element-wise sum of data from all processes with result left only on + !! one. + !! + !! MPI mapping + !! mpi_reduce + + REAL(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:) + !! Vector to sum (input) and (only on process root) result (output) + INTEGER, INTENT(IN) :: root + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_root_rv' + + INTEGER :: handle, ierr, msglen +#if defined(__parallel) + INTEGER :: m1, taskid + REAL(kind=real_4), ALLOCATABLE :: res(:) +#endif + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_comm_rank(gid%handle, taskid, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_rank @ "//routineN) + IF (msglen > 0) THEN + m1 = SIZE(msg, 1) + ALLOCATE (res(m1)) + CALL mpi_reduce(msg, res, msglen, MPI_REAL, MPI_SUM, & + root, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_reduce @ "//routineN) + IF (taskid == root) THEN + msg = res + END IF + DEALLOCATE (res) + END IF + CALL add_perf(perf_id=3, msg_size=msglen*real_4_size) +#else + MARK_USED(root) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_sum_root_rv + + SUBROUTINE mp_sum_root_rm(msg, root, gid) + !! Element-wise sum of data from all processes with result left only on + !! one. + !! @note see mp_sum_root_rv + + REAL(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:, :) + !! Matrix to sum (input) and (only on process root) result (output) + INTEGER, INTENT(IN) :: root + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_root_rm' + + INTEGER :: handle, ierr, msglen +#if defined(__parallel) + INTEGER :: m1, m2, taskid + REAL(kind=real_4), ALLOCATABLE :: res(:, :) +#endif - SUBROUTINE mp_sum_root_rm(msg, root, gid) - !! Element-wise sum of data from all processes with result left only on - !! one. - !! @note see mp_sum_root_rv - - REAL(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:, :) - !! Matrix to sum (input) and (only on process root) result (output) - INTEGER, INTENT(IN) :: root - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_root_rm' - - INTEGER :: handle, ierr, msglen -#if defined(__parallel) - INTEGER :: m1, m2, taskid - REAL(kind=real_4), ALLOCATABLE :: res(:, :) -#endif - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_comm_rank(gid%handle, taskid, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_rank @ "//routineN) - IF (msglen > 0) THEN - m1 = SIZE(msg, 1) - m2 = SIZE(msg, 2) - ALLOCATE (res(m1, m2)) - CALL mpi_reduce(msg, res, msglen, MPI_REAL, MPI_SUM, root, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_reduce @ "//routineN) - IF (taskid == root) THEN - msg = res - END IF - DEALLOCATE (res) - END IF - CALL add_perf(perf_id=3, msg_size=msglen*real_4_size) -#else - MARK_USED(root) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_sum_root_rm - - SUBROUTINE mp_sum_partial_rm(msg, res, gid) - !! Partial sum of data from all processes with result on each process. - - REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msg(:, :) - !! Matrix to sum (input) - REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: res(:, :) - !! Matrix containing result (output) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_partial_rm' - - INTEGER :: handle, ierr, msglen -#if defined(__parallel) - INTEGER :: taskid + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_comm_rank(gid%handle, taskid, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_rank @ "//routineN) + IF (msglen > 0) THEN + m1 = SIZE(msg, 1) + m2 = SIZE(msg, 2) + ALLOCATE (res(m1, m2)) + CALL mpi_reduce(msg, res, msglen, MPI_REAL, MPI_SUM, root, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_reduce @ "//routineN) + IF (taskid == root) THEN + msg = res + END IF + DEALLOCATE (res) + END IF + CALL add_perf(perf_id=3, msg_size=msglen*real_4_size) +#else + MARK_USED(root) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_sum_root_rm + + SUBROUTINE mp_sum_partial_rm(msg, res, gid) + !! Partial sum of data from all processes with result on each process. + + REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msg(:, :) + !! Matrix to sum (input) + REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: res(:, :) + !! Matrix containing result (output) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_partial_rm' + + INTEGER :: handle, ierr, msglen +#if defined(__parallel) + INTEGER :: taskid +#endif + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_comm_rank(gid%handle, taskid, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_rank @ "//routineN) + IF (msglen > 0) THEN + CALL mpi_scan(msg, res, msglen, MPI_REAL, MPI_SUM, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_scan @ "//routineN) + END IF + CALL add_perf(perf_id=3, msg_size=msglen*real_4_size) + ! perf_id is same as for other summation routines +#else + res = msg + MARK_USED(gid) #endif - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_comm_rank(gid%handle, taskid, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_rank @ "//routineN) - IF (msglen > 0) THEN - CALL mpi_scan(msg, res, msglen, MPI_REAL, MPI_SUM, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_scan @ "//routineN) - END IF - CALL add_perf(perf_id=3, msg_size=msglen*real_4_size) - ! perf_id is same as for other summation routines -#else - res = msg - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_sum_partial_rm + CALL timestop(handle) + END SUBROUTINE mp_sum_partial_rm + + SUBROUTINE mp_max_r (msg, gid) + !! Finds the maximum of a datum with the result left on all processes. + !! + !! MPI mapping + !! mpi_allreduce + + REAL(kind=real_4), INTENT(INOUT) :: msg + !! Find maximum among these data (input) and maximum (output) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_max_r' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) - SUBROUTINE mp_max_r (msg, gid) - !! Finds the maximum of a datum with the result left on all processes. - !! - !! MPI mapping - !! mpi_allreduce - - REAL(kind=real_4), INTENT(INOUT) :: msg - !! Find maximum among these data (input) and maximum (output) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_max_r' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = 1 -#if defined(__parallel) - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_REAL, MPI_MAX, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - CALL add_perf(perf_id=3, msg_size=msglen*real_4_size) -#else - MARK_USED(msg) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_max_r - - SUBROUTINE mp_max_rv(msg, gid) - !! Finds the element-wise maximum of a vector with the result left on - !! all processes. - !! @note see mp_max_r - - REAL(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:) - !! Find maximum among these data (input) and maximum (output) - TYPE(mp_comm_type), INTENT(IN) :: gid + msglen = 1 +#if defined(__parallel) + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_REAL, MPI_MAX, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + CALL add_perf(perf_id=3, msg_size=msglen*real_4_size) +#else + MARK_USED(msg) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_max_r + + SUBROUTINE mp_max_rv(msg, gid) + !! Finds the element-wise maximum of a vector with the result left on + !! all processes. + !! @note see mp_max_r + + REAL(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:) + !! Find maximum among these data (input) and maximum (output) + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_max_rv' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_REAL, MPI_MAX, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + CALL add_perf(perf_id=3, msg_size=msglen*real_4_size) +#else + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_max_rv - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_max_rv' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_REAL, MPI_MAX, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - CALL add_perf(perf_id=3, msg_size=msglen*real_4_size) -#else - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_max_rv + SUBROUTINE mp_min_r (msg, gid) + !! Finds the minimum of a datum with the result left on all processes. + !! + !! MPI mapping + !! mpi_allreduce + + REAL(kind=real_4), INTENT(INOUT) :: msg + !! Find minimum among these data (input) and maximum (output) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_min_r' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) - SUBROUTINE mp_min_r (msg, gid) - !! Finds the minimum of a datum with the result left on all processes. - !! - !! MPI mapping - !! mpi_allreduce - - REAL(kind=real_4), INTENT(INOUT) :: msg - !! Find minimum among these data (input) and maximum (output) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_min_r' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = 1 -#if defined(__parallel) - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_REAL, MPI_MIN, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - CALL add_perf(perf_id=3, msg_size=msglen*real_4_size) -#else - MARK_USED(msg) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_min_r - - SUBROUTINE mp_min_rv(msg, gid) - !! Finds the element-wise minimum of vector with the result left on - !! all processes. - !! - !! MPI mapping - !! mpi_allreduce - !! @note see mp_min_r - - REAL(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:) - !! Find minimum among these data (input) and maximum (output) - TYPE(mp_comm_type), INTENT(IN) :: gid + msglen = 1 +#if defined(__parallel) + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_REAL, MPI_MIN, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + CALL add_perf(perf_id=3, msg_size=msglen*real_4_size) +#else + MARK_USED(msg) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_min_r + + SUBROUTINE mp_min_rv(msg, gid) + !! Finds the element-wise minimum of vector with the result left on + !! all processes. + !! + !! MPI mapping + !! mpi_allreduce + !! @note see mp_min_r + + REAL(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:) + !! Find minimum among these data (input) and maximum (output) + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_min_rv' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_REAL, MPI_MIN, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + CALL add_perf(perf_id=3, msg_size=msglen*real_4_size) +#else + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_min_rv - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_min_rv' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) + SUBROUTINE mp_prod_r (msg, gid) + !! Multiplies a set of numbers scattered across a number of processes, + !! then replicates the result. + !! + !! MPI mapping + !! mpi_allreduce - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_REAL, MPI_MIN, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - CALL add_perf(perf_id=3, msg_size=msglen*real_4_size) -#else - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_min_rv - - SUBROUTINE mp_prod_r (msg, gid) - !! Multiplies a set of numbers scattered across a number of processes, - !! then replicates the result. - !! - !! MPI mapping - !! mpi_allreduce - - REAL(kind=real_4), INTENT(INOUT) :: msg - !! a number to multiply (input) and result (output) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_r' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) + REAL(kind=real_4), INTENT(INOUT) :: msg + !! a number to multiply (input) and result (output) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_r' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_REAL, MPI_PROD, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + CALL add_perf(perf_id=3, msg_size=msglen*real_4_size) +#else + MARK_USED(msg) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_prod_r + + SUBROUTINE mp_iscatter_r (msg_scatter, msg, root, gid, request) + !! Scatters data from one processes to all others + !! + !! MPI mapping + !! mpi_scatter - msglen = 1 -#if defined(__parallel) - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_REAL, MPI_PROD, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - CALL add_perf(perf_id=3, msg_size=msglen*real_4_size) -#else - MARK_USED(msg) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_prod_r - - SUBROUTINE mp_iscatter_r (msg_scatter, msg, root, gid, request) - !! Scatters data from one processes to all others - !! - !! MPI mapping - !! mpi_scatter - - REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msg_scatter(:) - !! Data to scatter (for root process) - REAL(kind=real_4), INTENT(INOUT) :: msg - INTEGER, INTENT(IN) :: root - !! Process which scatters data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iscatter_r' - - INTEGER :: handle, ierr, msglen + REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msg_scatter(:) + !! Data to scatter (for root process) + REAL(kind=real_4), INTENT(INOUT) :: msg + INTEGER, INTENT(IN) :: root + !! Process which scatters data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iscatter_r' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_iscatter(msg_scatter, msglen, MPI_REAL, msg, & + msglen, MPI_REAL, root, gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iscatter @ "//routineN) + CALL add_perf(perf_id=24, msg_size=1*real_4_size) +#else + MARK_USED(root) + MARK_USED(gid) + msg = msg_scatter(1) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iscatter_r - ierr = 0 - CALL timeset(routineN, handle) - - msglen = 1 -#if defined(__parallel) - CALL mpi_iscatter(msg_scatter, msglen, MPI_REAL, msg, & - msglen, MPI_REAL, root, gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iscatter @ "//routineN) - CALL add_perf(perf_id=24, msg_size=1*real_4_size) -#else - MARK_USED(root) - MARK_USED(gid) - msg = msg_scatter(1) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iscatter_r - - SUBROUTINE mp_iscatter_rv2(msg_scatter, msg, root, gid, request) - !! Scatters data from one processes to all others - !! - !! MPI mapping - !! mpi_scatter - - REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msg_scatter(:, :) - !! Data to scatter (for root process) - REAL(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:) - INTEGER, INTENT(IN) :: root - !! Process which scatters data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iscatter_rv2' - - INTEGER :: handle, ierr, msglen + SUBROUTINE mp_iscatter_rv2(msg_scatter, msg, root, gid, request) + !! Scatters data from one processes to all others + !! + !! MPI mapping + !! mpi_scatter + + REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msg_scatter(:, :) + !! Data to scatter (for root process) + REAL(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:) + INTEGER, INTENT(IN) :: root + !! Process which scatters data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iscatter_rv2' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_iscatter(msg_scatter, msglen, MPI_REAL, msg, & + msglen, MPI_REAL, root, gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iscatter @ "//routineN) + CALL add_perf(perf_id=24, msg_size=1*real_4_size) +#else + MARK_USED(root) + MARK_USED(gid) + msg(:) = msg_scatter(:, 1) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iscatter_rv2 - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_iscatter(msg_scatter, msglen, MPI_REAL, msg, & - msglen, MPI_REAL, root, gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iscatter @ "//routineN) - CALL add_perf(perf_id=24, msg_size=1*real_4_size) -#else - MARK_USED(root) - MARK_USED(gid) - msg(:) = msg_scatter(:, 1) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iscatter_rv2 + SUBROUTINE mp_iscatterv_rv(msg_scatter, sendcounts, displs, msg, recvcount, root, gid, request) + !! Scatters data from one processes to all others + !! + !! MPI mapping + !! mpi_scatter + + REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msg_scatter(:) + !! Data to scatter (for root process) + INTEGER, CONTIGUOUS, INTENT(IN) :: sendcounts(:), displs(:) + REAL(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:) + INTEGER, INTENT(IN) :: recvcount, root + !! Process which scatters data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iscatterv_rv' - SUBROUTINE mp_iscatterv_rv(msg_scatter, sendcounts, displs, msg, recvcount, root, gid, request) - !! Scatters data from one processes to all others - !! - !! MPI mapping - !! mpi_scatter - - REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msg_scatter(:) - !! Data to scatter (for root process) - INTEGER, CONTIGUOUS, INTENT(IN) :: sendcounts(:), displs(:) - REAL(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:) - INTEGER, INTENT(IN) :: recvcount, root - !! Process which scatters data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iscatterv_rv' - - INTEGER :: handle, ierr - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - CALL mpi_iscatterv(msg_scatter, sendcounts, displs, MPI_REAL, msg, & - recvcount, MPI_REAL, root, gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iscatterv @ "//routineN) - CALL add_perf(perf_id=24, msg_size=1*real_4_size) -#else - MARK_USED(sendcounts) - MARK_USED(displs) - MARK_USED(recvcount) - MARK_USED(root) - MARK_USED(gid) - msg(1:recvcount) = msg_scatter(1 + displs(1):1 + displs(1) + sendcounts(1)) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iscatterv_rv - - SUBROUTINE mp_gather_r (msg, msg_gather, root, gid) - !! Gathers a datum from all processes to one - !! - !! MPI mapping - !! mpi_gather - - REAL(kind=real_4), INTENT(IN) :: msg - !! Datum to send to root - REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msg_gather(:) - !! Received data (on root) - INTEGER, INTENT(IN) :: root - !! Process which gathers the data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gather_r' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = 1 -#if defined(__parallel) - CALL mpi_gather(msg, msglen, MPI_REAL, msg_gather, & - msglen, MPI_REAL, root, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gather @ "//routineN) - CALL add_perf(perf_id=4, msg_size=msglen*real_4_size) -#else - MARK_USED(root) - MARK_USED(gid) - msg_gather(1) = msg -#endif - CALL timestop(handle) - END SUBROUTINE mp_gather_r + INTEGER :: handle, ierr + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + CALL mpi_iscatterv(msg_scatter, sendcounts, displs, MPI_REAL, msg, & + recvcount, MPI_REAL, root, gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iscatterv @ "//routineN) + CALL add_perf(perf_id=24, msg_size=1*real_4_size) +#else + MARK_USED(sendcounts) + MARK_USED(displs) + MARK_USED(recvcount) + MARK_USED(root) + MARK_USED(gid) + msg(1:recvcount) = msg_scatter(1 + displs(1):1 + displs(1) + sendcounts(1)) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iscatterv_rv + + SUBROUTINE mp_gather_r (msg, msg_gather, root, gid) + !! Gathers a datum from all processes to one + !! + !! MPI mapping + !! mpi_gather + + REAL(kind=real_4), INTENT(IN) :: msg + !! Datum to send to root + REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msg_gather(:) + !! Received data (on root) + INTEGER, INTENT(IN) :: root + !! Process which gathers the data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gather_r' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_gather(msg, msglen, MPI_REAL, msg_gather, & + msglen, MPI_REAL, root, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gather @ "//routineN) + CALL add_perf(perf_id=4, msg_size=msglen*real_4_size) +#else + MARK_USED(root) + MARK_USED(gid) + msg_gather(1) = msg +#endif + CALL timestop(handle) + END SUBROUTINE mp_gather_r + + SUBROUTINE mp_gather_rv(msg, msg_gather, root, gid) + !! Gathers data from all processes to one + !! + !! Data length + !! All data (msg) is equal-sized + !! + !! MPI mapping + !! mpi_gather + !! @note see mp_gather_r + + REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msg(:) + !! Datum to send to root + REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msg_gather(:) + INTEGER, INTENT(IN) :: root + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gather_rv' - SUBROUTINE mp_gather_rv(msg, msg_gather, root, gid) - !! Gathers data from all processes to one - !! - !! Data length - !! All data (msg) is equal-sized - !! - !! MPI mapping - !! mpi_gather - !! @note see mp_gather_r - - REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msg(:) - !! Datum to send to root - REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msg_gather(:) - INTEGER, INTENT(IN) :: root - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gather_rv' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_gather(msg, msglen, MPI_REAL, msg_gather, & - msglen, MPI_REAL, root, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gather @ "//routineN) - CALL add_perf(perf_id=4, msg_size=msglen*real_4_size) -#else - MARK_USED(root) - MARK_USED(gid) - msg_gather = msg -#endif - CALL timestop(handle) - END SUBROUTINE mp_gather_rv + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_gather(msg, msglen, MPI_REAL, msg_gather, & + msglen, MPI_REAL, root, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gather @ "//routineN) + CALL add_perf(perf_id=4, msg_size=msglen*real_4_size) +#else + MARK_USED(root) + MARK_USED(gid) + msg_gather = msg +#endif + CALL timestop(handle) + END SUBROUTINE mp_gather_rv + + SUBROUTINE mp_gather_rm(msg, msg_gather, root, gid) + !! Gathers data from all processes to one + !! + !! Data length + !! All data (msg) is equal-sized + !! + !! MPI mapping + !! mpi_gather + !! @note see mp_gather_r + + REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msg(:, :) + !! Datum to send to root + REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msg_gather(:, :) + INTEGER, INTENT(IN) :: root + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gather_rm' - SUBROUTINE mp_gather_rm(msg, msg_gather, root, gid) - !! Gathers data from all processes to one - !! - !! Data length - !! All data (msg) is equal-sized - !! - !! MPI mapping - !! mpi_gather - !! @note see mp_gather_r - - REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msg(:, :) - !! Datum to send to root - REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msg_gather(:, :) - INTEGER, INTENT(IN) :: root - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gather_rm' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_gather(msg, msglen, MPI_REAL, msg_gather, & - msglen, MPI_REAL, root, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gather @ "//routineN) - CALL add_perf(perf_id=4, msg_size=msglen*real_4_size) -#else - MARK_USED(root) - MARK_USED(gid) - msg_gather = msg -#endif - CALL timestop(handle) - END SUBROUTINE mp_gather_rm - - SUBROUTINE mp_gatherv_rv(sendbuf, recvbuf, recvcounts, displs, root, comm) - !! Gathers data from all processes to one. - !! - !! Data length - !! Data can have different lengths - !! - !! Offsets - !! Offsets start at 0 - !! - !! MPI mapping - !! mpi_gather - - REAL(kind=real_4), DIMENSION(:), CONTIGUOUS, INTENT(IN) :: sendbuf - !! Data to send to root - REAL(kind=real_4), DIMENSION(:), CONTIGUOUS, INTENT(OUT) :: recvbuf - !! Received data (on root) - INTEGER, DIMENSION(:), CONTIGUOUS, INTENT(IN) :: recvcounts, displs - !! Sizes of data received from processes - !! Offsets of data received from processes - INTEGER, INTENT(IN) :: root - !! Process which gathers the data - TYPE(mp_comm_type), INTENT(IN) :: comm - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gatherv_rv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: sendcount + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_gather(msg, msglen, MPI_REAL, msg_gather, & + msglen, MPI_REAL, root, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gather @ "//routineN) + CALL add_perf(perf_id=4, msg_size=msglen*real_4_size) +#else + MARK_USED(root) + MARK_USED(gid) + msg_gather = msg +#endif + CALL timestop(handle) + END SUBROUTINE mp_gather_rm + + SUBROUTINE mp_gatherv_rv(sendbuf, recvbuf, recvcounts, displs, root, comm) + !! Gathers data from all processes to one. + !! + !! Data length + !! Data can have different lengths + !! + !! Offsets + !! Offsets start at 0 + !! + !! MPI mapping + !! mpi_gather + + REAL(kind=real_4), DIMENSION(:), CONTIGUOUS, INTENT(IN) :: sendbuf + !! Data to send to root + REAL(kind=real_4), DIMENSION(:), CONTIGUOUS, INTENT(OUT) :: recvbuf + !! Received data (on root) + INTEGER, DIMENSION(:), CONTIGUOUS, INTENT(IN) :: recvcounts, displs + !! Sizes of data received from processes + !! Offsets of data received from processes + INTEGER, INTENT(IN) :: root + !! Process which gathers the data + TYPE(mp_comm_type), INTENT(IN) :: comm + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gatherv_rv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: sendcount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + sendcount = SIZE(sendbuf) + CALL mpi_gatherv(sendbuf, sendcount, MPI_REAL, & + recvbuf, recvcounts, displs, MPI_REAL, & + root, comm%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gatherv @ "//routineN) + CALL add_perf(perf_id=4, & + msg_size=sendcount*real_4_size) +#else + MARK_USED(recvcounts) + MARK_USED(root) + MARK_USED(comm) + recvbuf(1 + displs(1):) = sendbuf #endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - sendcount = SIZE(sendbuf) - CALL mpi_gatherv(sendbuf, sendcount, MPI_REAL, & - recvbuf, recvcounts, displs, MPI_REAL, & - root, comm%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gatherv @ "//routineN) - CALL add_perf(perf_id=4, & - msg_size=sendcount*real_4_size) -#else - MARK_USED(recvcounts) - MARK_USED(root) - MARK_USED(comm) - recvbuf(1 + displs(1):) = sendbuf -#endif - CALL timestop(handle) - END SUBROUTINE mp_gatherv_rv - - SUBROUTINE mp_allgather_r (msgout, msgin, gid) - !! Gathers a datum from all processes and all processes receive the - !! same data - !! - !! Data size - !! All processes send equal-sized data - !! - !! MPI mapping - !! mpi_allgather - - REAL(kind=real_4), INTENT(IN) :: msgout - !! Datum to send - REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:) - !! Received data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_r' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = 1 - rcount = 1 - CALL MPI_ALLGATHER(msgout, scount, MPI_REAL, & - msgin, rcount, MPI_REAL, & - gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) -#else - MARK_USED(gid) - msgin = msgout -#endif - CALL timestop(handle) - END SUBROUTINE mp_allgather_r - - SUBROUTINE mp_allgather_r2(msgout, msgin, gid) - !! Gathers a datum from all processes and all processes receive the - !! same data - !! - !! Data size - !! All processes send equal-sized data - !! - !! MPI mapping - !! mpi_allgather - - REAL(kind=real_4), INTENT(IN) :: msgout - !! Datum to send - REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) - !! Received data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_r2' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = 1 - rcount = 1 - CALL MPI_ALLGATHER(msgout, scount, MPI_REAL, & - msgin, rcount, MPI_REAL, & - gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) -#else - MARK_USED(gid) - msgin = msgout -#endif - CALL timestop(handle) - END SUBROUTINE mp_allgather_r2 + CALL timestop(handle) + END SUBROUTINE mp_gatherv_rv + + SUBROUTINE mp_allgather_r (msgout, msgin, gid) + !! Gathers a datum from all processes and all processes receive the + !! same data + !! + !! Data size + !! All processes send equal-sized data + !! + !! MPI mapping + !! mpi_allgather + + REAL(kind=real_4), INTENT(IN) :: msgout + !! Datum to send + REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:) + !! Received data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_r' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = 1 + rcount = 1 + CALL MPI_ALLGATHER(msgout, scount, MPI_REAL, & + msgin, rcount, MPI_REAL, & + gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) +#else + MARK_USED(gid) + msgin = msgout +#endif + CALL timestop(handle) + END SUBROUTINE mp_allgather_r + + SUBROUTINE mp_allgather_r2(msgout, msgin, gid) + !! Gathers a datum from all processes and all processes receive the + !! same data + !! + !! Data size + !! All processes send equal-sized data + !! + !! MPI mapping + !! mpi_allgather + + REAL(kind=real_4), INTENT(IN) :: msgout + !! Datum to send + REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) + !! Received data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_r2' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = 1 + rcount = 1 + CALL MPI_ALLGATHER(msgout, scount, MPI_REAL, & + msgin, rcount, MPI_REAL, & + gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) +#else + MARK_USED(gid) + msgin = msgout +#endif + CALL timestop(handle) + END SUBROUTINE mp_allgather_r2 + + SUBROUTINE mp_iallgather_r (msgout, msgin, gid, request) + !! Gathers a datum from all processes and all processes receive the + !! same data + !! + !! Data size + !! All processes send equal-sized data + !! + !! MPI mapping + !! mpi_allgather + + REAL(kind=real_4), INTENT(IN) :: msgout + !! Datum to send + REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:) + !! Received data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(INOUT) :: request - SUBROUTINE mp_iallgather_r (msgout, msgin, gid, request) - !! Gathers a datum from all processes and all processes receive the - !! same data - !! - !! Data size - !! All processes send equal-sized data - !! - !! MPI mapping - !! mpi_allgather + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_r' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) - REAL(kind=real_4), INTENT(IN) :: msgout - !! Datum to send - REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:) - !! Received data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_r' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif +#if defined(__parallel) + scount = 1 + rcount = 1 + CALL MPI_IALLGATHER(msgout, scount, MPI_REAL, & + msgin, rcount, MPI_REAL, & + gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) +#else + MARK_USED(gid) + msgin = msgout + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgather_r - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = 1 - rcount = 1 - CALL MPI_IALLGATHER(msgout, scount, MPI_REAL, & - msgin, rcount, MPI_REAL, & - gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) -#else - MARK_USED(gid) - msgin = msgout - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgather_r - - SUBROUTINE mp_allgather_r12(msgout, msgin, gid) - !! Gathers vector data from all processes and all processes receive the - !! same data - !! - !! Data size - !! All processes send equal-sized data - !! - !! Ranks - !! The last rank counts the processes - !! - !! MPI mapping - !! mpi_allgather - - REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:) - !! Rank-1 data to send - REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) - !! Received data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_r12' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:)) - rcount = scount - CALL MPI_ALLGATHER(msgout, scount, MPI_REAL, & - msgin, rcount, MPI_REAL, & - gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, 1) = msgout(:) -#endif - CALL timestop(handle) - END SUBROUTINE mp_allgather_r12 - - SUBROUTINE mp_allgather_r23(msgout, msgin, gid) - !! Gathers matrix data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_r12 - - REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:, :) - !! Rank-2 data to send - REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :) - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_r23' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:, :)) - rcount = scount - CALL MPI_ALLGATHER(msgout, scount, MPI_REAL, & - msgin, rcount, MPI_REAL, & - gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, :, 1) = msgout(:, :) -#endif - CALL timestop(handle) - END SUBROUTINE mp_allgather_r23 - - SUBROUTINE mp_allgather_r34(msgout, msgin, gid) - !! Gathers rank-3 data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_r12 - - REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:, :, :) - !! Rank-3 data to send - REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :, :) - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_r34' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:, :, :)) - rcount = scount - CALL MPI_ALLGATHER(msgout, scount, MPI_REAL, & - msgin, rcount, MPI_REAL, & - gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, :, :, 1) = msgout(:, :, :) -#endif - CALL timestop(handle) - END SUBROUTINE mp_allgather_r34 - - SUBROUTINE mp_allgather_r22(msgout, msgin, gid) - !! Gathers rank-2 data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_r12 - - REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:, :) - !! Rank-2 data to send - REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_r22' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:, :)) - rcount = scount - CALL MPI_ALLGATHER(msgout, scount, MPI_REAL, & - msgin, rcount, MPI_REAL, & - gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, :) = msgout(:, :) -#endif - CALL timestop(handle) - END SUBROUTINE mp_allgather_r22 + SUBROUTINE mp_allgather_r12(msgout, msgin, gid) + !! Gathers vector data from all processes and all processes receive the + !! same data + !! + !! Data size + !! All processes send equal-sized data + !! + !! Ranks + !! The last rank counts the processes + !! + !! MPI mapping + !! mpi_allgather + + REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:) + !! Rank-1 data to send + REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) + !! Received data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_r12' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:)) + rcount = scount + CALL MPI_ALLGATHER(msgout, scount, MPI_REAL, & + msgin, rcount, MPI_REAL, & + gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, 1) = msgout(:) +#endif + CALL timestop(handle) + END SUBROUTINE mp_allgather_r12 + + SUBROUTINE mp_allgather_r23(msgout, msgin, gid) + !! Gathers matrix data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_r12 + + REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:, :) + !! Rank-2 data to send + REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :) + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_r23' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:, :)) + rcount = scount + CALL MPI_ALLGATHER(msgout, scount, MPI_REAL, & + msgin, rcount, MPI_REAL, & + gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, :, 1) = msgout(:, :) +#endif + CALL timestop(handle) + END SUBROUTINE mp_allgather_r23 + + SUBROUTINE mp_allgather_r34(msgout, msgin, gid) + !! Gathers rank-3 data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_r12 + + REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:, :, :) + !! Rank-3 data to send + REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :, :) + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_r34' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:, :, :)) + rcount = scount + CALL MPI_ALLGATHER(msgout, scount, MPI_REAL, & + msgin, rcount, MPI_REAL, & + gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, :, :, 1) = msgout(:, :, :) +#endif + CALL timestop(handle) + END SUBROUTINE mp_allgather_r34 + + SUBROUTINE mp_allgather_r22(msgout, msgin, gid) + !! Gathers rank-2 data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_r12 + + REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:, :) + !! Rank-2 data to send + REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_r22' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:, :)) + rcount = scount + CALL MPI_ALLGATHER(msgout, scount, MPI_REAL, & + msgin, rcount, MPI_REAL, & + gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, :) = msgout(:, :) +#endif + CALL timestop(handle) + END SUBROUTINE mp_allgather_r22 + + SUBROUTINE mp_iallgather_r11(msgout, msgin, gid, request) + !! Gathers rank-1 data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_r11 + + REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:) + !! Rank-1 data to send + REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:) + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(OUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_r11' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif - SUBROUTINE mp_iallgather_r11(msgout, msgin, gid, request) - !! Gathers rank-1 data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_r11 - - REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:) - !! Rank-1 data to send - REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:) - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(OUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_r11' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:)) + rcount = scount + CALL MPI_IALLGATHER(msgout, scount, MPI_REAL, & + msgin, rcount, MPI_REAL, & + gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) +#else + MARK_USED(gid) + msgin = msgout + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgather_r11 - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:)) - rcount = scount - CALL MPI_IALLGATHER(msgout, scount, MPI_REAL, & - msgin, rcount, MPI_REAL, & - gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) -#else - MARK_USED(gid) - msgin = msgout - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgather_r11 + SUBROUTINE mp_iallgather_r13(msgout, msgin, gid, request) + !! Gathers rank-2 data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_r12 + + REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:) + !! Rank-2 data to send + REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :) + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(OUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_r13' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif - SUBROUTINE mp_iallgather_r13(msgout, msgin, gid, request) - !! Gathers rank-2 data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_r12 - - REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:) - !! Rank-2 data to send - REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :) - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(OUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_r13' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:)) + rcount = scount + CALL MPI_IALLGATHER(msgout, scount, MPI_REAL, & + msgin, rcount, MPI_REAL, & + gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, 1, 1) = msgout(:) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgather_r13 - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:)) - rcount = scount - CALL MPI_IALLGATHER(msgout, scount, MPI_REAL, & - msgin, rcount, MPI_REAL, & - gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, 1, 1) = msgout(:) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgather_r13 + SUBROUTINE mp_iallgather_r22(msgout, msgin, gid, request) + !! Gathers rank-2 data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_r12 + + REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:, :) + !! Rank-2 data to send + REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(OUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_r22' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif - SUBROUTINE mp_iallgather_r22(msgout, msgin, gid, request) - !! Gathers rank-2 data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_r12 - - REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:, :) - !! Rank-2 data to send - REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(OUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_r22' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:, :)) + rcount = scount + CALL MPI_IALLGATHER(msgout, scount, MPI_REAL, & + msgin, rcount, MPI_REAL, & + gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, :) = msgout(:, :) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgather_r22 - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:, :)) - rcount = scount - CALL MPI_IALLGATHER(msgout, scount, MPI_REAL, & - msgin, rcount, MPI_REAL, & - gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, :) = msgout(:, :) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgather_r22 + SUBROUTINE mp_iallgather_r24(msgout, msgin, gid, request) + !! Gathers rank-2 data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_r12 + + REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:, :) + !! Rank-2 data to send + REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :, :) + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(OUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_r24' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif - SUBROUTINE mp_iallgather_r24(msgout, msgin, gid, request) - !! Gathers rank-2 data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_r12 - - REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:, :) - !! Rank-2 data to send - REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :, :) - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(OUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_r24' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:, :)) + rcount = scount + CALL MPI_IALLGATHER(msgout, scount, MPI_REAL, & + msgin, rcount, MPI_REAL, & + gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, :, 1, 1) = msgout(:, :) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgather_r24 - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:, :)) - rcount = scount - CALL MPI_IALLGATHER(msgout, scount, MPI_REAL, & - msgin, rcount, MPI_REAL, & - gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, :, 1, 1) = msgout(:, :) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgather_r24 + SUBROUTINE mp_iallgather_r33(msgout, msgin, gid, request) + !! Gathers rank-3 data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_r12 + + REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:, :, :) + !! Rank-3 data to send + REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :) + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(OUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_r33' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif - SUBROUTINE mp_iallgather_r33(msgout, msgin, gid, request) - !! Gathers rank-3 data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_r12 - - REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:, :, :) - !! Rank-3 data to send - REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :) - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(OUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_r33' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:, :, :)) + rcount = scount + CALL MPI_IALLGATHER(msgout, scount, MPI_REAL, & + msgin, rcount, MPI_REAL, & + gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, :, :) = msgout(:, :, :) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgather_r33 - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:, :, :)) - rcount = scount - CALL MPI_IALLGATHER(msgout, scount, MPI_REAL, & - msgin, rcount, MPI_REAL, & - gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, :, :) = msgout(:, :, :) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgather_r33 - - SUBROUTINE mp_allgatherv_rv(msgout, msgin, rcount, rdispl, gid) - !! Gathers vector data from all processes and all processes receive the - !! same data - !! - !! Data size - !! Processes can send different-sized data - !! - !! Ranks - !! The last rank counts the processes - !! - !! Offsets - !! Offsets are from 0 - !! - !! MPI mapping - !! mpi_allgather - - REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:) - !! Rank-1 data to send - REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:) - !! Received data - INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:), rdispl(:) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Size of sent data for every process - !! Offset of sent data for every process - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgatherv_rv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout) - CALL MPI_ALLGATHERV(msgout, scount, MPI_REAL, msgin, rcount, & - rdispl, MPI_REAL, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgatherv @ "//routineN) -#else - MARK_USED(rcount) - MARK_USED(rdispl) - MARK_USED(gid) - msgin = msgout -#endif - CALL timestop(handle) - END SUBROUTINE mp_allgatherv_rv - - SUBROUTINE mp_iallgatherv_rv(msgout, msgin, rcount, rdispl, gid, request) - !! Gathers vector data from all processes and all processes receive the - !! same data - !! - !! Data size - !! Processes can send different-sized data - !! - !! Ranks - !! The last rank counts the processes - !! - !! Offsets - !! Offsets are from 0 - !! - !! MPI mapping - !! mpi_allgather + SUBROUTINE mp_allgatherv_rv(msgout, msgin, rcount, rdispl, gid) + !! Gathers vector data from all processes and all processes receive the + !! same data + !! + !! Data size + !! Processes can send different-sized data + !! + !! Ranks + !! The last rank counts the processes + !! + !! Offsets + !! Offsets are from 0 + !! + !! MPI mapping + !! mpi_allgather + + REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:) + !! Rank-1 data to send + REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:) + !! Received data + INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:), rdispl(:) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Size of sent data for every process + !! Offset of sent data for every process + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgatherv_rv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout) + CALL MPI_ALLGATHERV(msgout, scount, MPI_REAL, msgin, rcount, & + rdispl, MPI_REAL, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgatherv @ "//routineN) +#else + MARK_USED(rcount) + MARK_USED(rdispl) + MARK_USED(gid) + msgin = msgout +#endif + CALL timestop(handle) + END SUBROUTINE mp_allgatherv_rv + + SUBROUTINE mp_iallgatherv_rv(msgout, msgin, rcount, rdispl, gid, request) + !! Gathers vector data from all processes and all processes receive the + !! same data + !! + !! Data size + !! Processes can send different-sized data + !! + !! Ranks + !! The last rank counts the processes + !! + !! Offsets + !! Offsets are from 0 + !! + !! MPI mapping + !! mpi_allgather + + REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:) + !! Rank-1 data to send + REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:) + !! Received data + INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:), rdispl(:) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Size of sent data for every process + !! Offset of sent data for every process + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgatherv_rv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: scount, rsize +#endif - REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:) - !! Rank-1 data to send - REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:) - !! Received data - INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:), rdispl(:) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Size of sent data for every process - !! Offset of sent data for every process - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgatherv_rv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: scount, rsize -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout) - rsize = SIZE(rcount) - CALL mp_iallgatherv_rv_internal(msgout, scount, msgin, rsize, rcount, & - rdispl, gid, request, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgatherv @ "//routineN) -#else - MARK_USED(rcount) - MARK_USED(rdispl) - MARK_USED(gid) - msgin = msgout - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgatherv_rv - - SUBROUTINE mp_iallgatherv_rv2(msgout, msgin, rcount, rdispl, gid, request) - !! Gathers vector data from all processes and all processes receive the - !! same data - !! - !! Data size - !! Processes can send different-sized data - !! - !! Ranks - !! The last rank counts the processes - !! - !! Offsets - !! Offsets are from 0 - !! - !! MPI mapping - !! mpi_allgather + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout) + rsize = SIZE(rcount) + CALL mp_iallgatherv_rv_internal(msgout, scount, msgin, rsize, rcount, & + rdispl, gid, request, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgatherv @ "//routineN) +#else + MARK_USED(rcount) + MARK_USED(rdispl) + MARK_USED(gid) + msgin = msgout + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgatherv_rv + + SUBROUTINE mp_iallgatherv_rv2(msgout, msgin, rcount, rdispl, gid, request) + !! Gathers vector data from all processes and all processes receive the + !! same data + !! + !! Data size + !! Processes can send different-sized data + !! + !! Ranks + !! The last rank counts the processes + !! + !! Offsets + !! Offsets are from 0 + !! + !! MPI mapping + !! mpi_allgather + + REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:) + !! Rank-1 data to send + REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:) + !! Received data + INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:, :), rdispl(:, :) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Size of sent data for every process + !! Offset of sent data for every process + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgatherv_rv2' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: scount, rsize +#endif - REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:) - !! Rank-1 data to send - REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:) - !! Received data - INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:, :), rdispl(:, :) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Size of sent data for every process - !! Offset of sent data for every process - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgatherv_rv2' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: scount, rsize -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout) - rsize = SIZE(rcount) - CALL mp_iallgatherv_rv_internal(msgout, scount, msgin, rsize, rcount, & - rdispl, gid, request, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgatherv @ "//routineN) -#else - MARK_USED(rcount) - MARK_USED(rdispl) - MARK_USED(gid) - msgin = msgout - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgatherv_rv2 - -#if defined(__parallel) - SUBROUTINE mp_iallgatherv_rv_internal(msgout, scount, msgin, rsize, rcount, rdispl, gid, request, ierr) - !! wrapper needed to deal with interfaces as present in openmpi 1.8.1 - !! the issue is with the rank of rcount and rdispl - - REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:) - REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:) - INTEGER, INTENT(IN) :: rsize - INTEGER, INTENT(IN) :: rcount(rsize), rdispl(rsize), scount - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(INOUT) :: request - INTEGER, INTENT(INOUT) :: ierr - - CALL MPI_IALLGATHERV(msgout, scount, MPI_REAL, msgin, rcount, & - rdispl, MPI_REAL, gid%handle, request%handle, ierr) - - END SUBROUTINE mp_iallgatherv_rv_internal -#endif - - SUBROUTINE mp_sendrecv_rv(msgin, dest, msgout, source, comm) - !! Sends and receives vector data - - REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgin(:) - !! Data to send - INTEGER, INTENT(IN) :: dest - !! Process to send data to - REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgout(:) - !! Received data - INTEGER, INTENT(IN) :: source - !! Process from which to receive - TYPE(mp_comm_type), INTENT(IN) :: comm - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sendrecv_rv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen_in, msglen_out, & - recv_tag, send_tag -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - msglen_in = SIZE(msgin) - msglen_out = SIZE(msgout) - send_tag = 0 ! cannot think of something better here, this might be dangerous - recv_tag = 0 ! cannot think of something better here, this might be dangerous - CALL mpi_sendrecv(msgin, msglen_in, MPI_REAL, dest, send_tag, msgout, & - msglen_out, MPI_REAL, source, recv_tag, comm%handle, MPI_STATUS_IGNORE, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_sendrecv @ "//routineN) - CALL add_perf(perf_id=7, & - msg_size=(msglen_in + msglen_out)*real_4_size/2) -#else - MARK_USED(dest) - MARK_USED(source) - MARK_USED(comm) - msgout = msgin -#endif - CALL timestop(handle) - END SUBROUTINE mp_sendrecv_rv - - SUBROUTINE mp_isendrecv_r (msgin, dest, msgout, source, comm, send_request, & - recv_request, tag) - !! Non-blocking send and receive of a scalar - !! - !! Implementation - !! Calls mpi_isend and mpi_irecv. + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout) + rsize = SIZE(rcount) + CALL mp_iallgatherv_rv_internal(msgout, scount, msgin, rsize, rcount, & + rdispl, gid, request, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgatherv @ "//routineN) +#else + MARK_USED(rcount) + MARK_USED(rdispl) + MARK_USED(gid) + msgin = msgout + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgatherv_rv2 + +#if defined(__parallel) + SUBROUTINE mp_iallgatherv_rv_internal(msgout, scount, msgin, rsize, rcount, rdispl, gid, request, ierr) + !! wrapper needed to deal with interfaces as present in openmpi 1.8.1 + !! the issue is with the rank of rcount and rdispl + + REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:) + REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:) + INTEGER, INTENT(IN) :: rsize + INTEGER, INTENT(IN) :: rcount(rsize), rdispl(rsize), scount + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(INOUT) :: request + INTEGER, INTENT(INOUT) :: ierr + + CALL MPI_IALLGATHERV(msgout, scount, MPI_REAL, msgin, rcount, & + rdispl, MPI_REAL, gid%handle, request%handle, ierr) + + END SUBROUTINE mp_iallgatherv_rv_internal +#endif + + SUBROUTINE mp_sendrecv_rv(msgin, dest, msgout, source, comm) + !! Sends and receives vector data + + REAL(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgin(:) + !! Data to send + INTEGER, INTENT(IN) :: dest + !! Process to send data to + REAL(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgout(:) + !! Received data + INTEGER, INTENT(IN) :: source + !! Process from which to receive + TYPE(mp_comm_type), INTENT(IN) :: comm + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sendrecv_rv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen_in, msglen_out, & + recv_tag, send_tag +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + msglen_in = SIZE(msgin) + msglen_out = SIZE(msgout) + send_tag = 0 ! cannot think of something better here, this might be dangerous + recv_tag = 0 ! cannot think of something better here, this might be dangerous + CALL mpi_sendrecv(msgin, msglen_in, MPI_REAL, dest, send_tag, msgout, & + msglen_out, MPI_REAL, source, recv_tag, comm%handle, MPI_STATUS_IGNORE, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_sendrecv @ "//routineN) + CALL add_perf(perf_id=7, & + msg_size=(msglen_in + msglen_out)*real_4_size/2) +#else + MARK_USED(dest) + MARK_USED(source) + MARK_USED(comm) + msgout = msgin +#endif + CALL timestop(handle) + END SUBROUTINE mp_sendrecv_rv + + SUBROUTINE mp_isendrecv_r (msgin, dest, msgout, source, comm, send_request, & + recv_request, tag) + !! Non-blocking send and receive of a scalar + !! + !! Implementation + !! Calls mpi_isend and mpi_irecv. + + REAL(kind=real_4) :: msgin + !! Scalar data to send + INTEGER, INTENT(IN) :: dest + !! Which process to send to + REAL(kind=real_4) :: msgout + !! Receive data into this pointer + INTEGER, INTENT(IN) :: source + !! Process to receive from + TYPE(mp_comm_type), INTENT(IN) :: comm + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(out) :: send_request, recv_request + !! Request handle for the send + !! Request handle for the receive + INTEGER, INTENT(in), OPTIONAL :: tag + !! tag to differentiate requests + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isendrecv_r' - REAL(kind=real_4) :: msgin - !! Scalar data to send - INTEGER, INTENT(IN) :: dest - !! Which process to send to - REAL(kind=real_4) :: msgout - !! Receive data into this pointer - INTEGER, INTENT(IN) :: source - !! Process to receive from - TYPE(mp_comm_type), INTENT(IN) :: comm - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(out) :: send_request, recv_request - !! Request handle for the send - !! Request handle for the receive - INTEGER, INTENT(in), OPTIONAL :: tag - !! tag to differentiate requests + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: my_tag +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + my_tag = 0 + IF (PRESENT(tag)) my_tag = tag + + CALL mpi_irecv(msgout, 1, MPI_REAL, source, my_tag, & + comm%handle, recv_request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isendrecv_r' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: my_tag -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - my_tag = 0 - IF (PRESENT(tag)) my_tag = tag - - CALL mpi_irecv(msgout, 1, MPI_REAL, source, my_tag, & - comm%handle, recv_request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) - - CALL mpi_isend(msgin, 1, MPI_REAL, dest, my_tag, & - comm%handle, send_request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) - - CALL add_perf(perf_id=8, msg_size=2*real_4_size) -#else - MARK_USED(dest) - MARK_USED(source) - MARK_USED(comm) - MARK_USED(tag) - send_request = mp_request_null - recv_request = mp_request_null - msgout = msgin -#endif - CALL timestop(handle) - END SUBROUTINE mp_isendrecv_r - - SUBROUTINE mp_isendrecv_rv(msgin, dest, msgout, source, comm, send_request, & - recv_request, tag) - !! Non-blocking send and receive of a vector - !! - !! Implementation - !! Calls mpi_isend and mpi_irecv. - !! @note - !! arrays can be pointers or assumed shape, but they must be contiguous! + CALL mpi_isend(msgin, 1, MPI_REAL, dest, my_tag, & + comm%handle, send_request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) + + CALL add_perf(perf_id=8, msg_size=2*real_4_size) +#else + MARK_USED(dest) + MARK_USED(source) + MARK_USED(comm) + MARK_USED(tag) + send_request = mp_request_null + recv_request = mp_request_null + msgout = msgin +#endif + CALL timestop(handle) + END SUBROUTINE mp_isendrecv_r + + SUBROUTINE mp_isendrecv_rv(msgin, dest, msgout, source, comm, send_request, & + recv_request, tag) + !! Non-blocking send and receive of a vector + !! + !! Implementation + !! Calls mpi_isend and mpi_irecv. + !! @note + !! arrays can be pointers or assumed shape, but they must be contiguous! + + REAL(kind=real_4), CONTIGUOUS, DIMENSION(:) :: msgin + !! Vector data to send + INTEGER, INTENT(IN) :: dest + !! Which process to send to + REAL(kind=real_4), CONTIGUOUS, DIMENSION(:) :: msgout + !! Receive data into this pointer + INTEGER, INTENT(IN) :: source + !! Process to receive from + TYPE(mp_comm_type), INTENT(IN) :: comm + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(out) :: send_request, recv_request + !! Request handle for the send + !! Request handle for the receive + INTEGER, INTENT(in), OPTIONAL :: tag + !! tag to differentiate requests + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isendrecv_rv' - REAL(kind=real_4), CONTIGUOUS, DIMENSION(:) :: msgin - !! Vector data to send - INTEGER, INTENT(IN) :: dest - !! Which process to send to - REAL(kind=real_4), CONTIGUOUS, DIMENSION(:) :: msgout - !! Receive data into this pointer - INTEGER, INTENT(IN) :: source - !! Process to receive from - TYPE(mp_comm_type), INTENT(IN) :: comm - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(out) :: send_request, recv_request - !! Request handle for the send - !! Request handle for the receive - INTEGER, INTENT(in), OPTIONAL :: tag - !! tag to differentiate requests - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isendrecv_rv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, my_tag - REAL(kind=real_4) :: foo -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - my_tag = 0 - IF (PRESENT(tag)) my_tag = tag - - msglen = SIZE(msgout, 1) - IF (msglen > 0) THEN - CALL mpi_irecv(msgout, msglen, MPI_REAL, source, my_tag, & - comm%handle, recv_request%handle, ierr) - ELSE - CALL mpi_irecv(foo, msglen, MPI_REAL, source, my_tag, & - comm%handle, recv_request%handle, ierr) - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) - - msglen = SIZE(msgin, 1) - IF (msglen > 0) THEN - CALL mpi_isend(msgin, msglen, MPI_REAL, dest, my_tag, & - comm%handle, send_request%handle, ierr) - ELSE - CALL mpi_isend(foo, msglen, MPI_REAL, dest, my_tag, & - comm%handle, send_request%handle, ierr) - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) - - msglen = (msglen + SIZE(msgout, 1) + 1)/2 - CALL add_perf(perf_id=8, msg_size=msglen*real_4_size) -#else - MARK_USED(dest) - MARK_USED(source) - MARK_USED(comm) - MARK_USED(tag) - send_request = mp_request_null - recv_request = mp_request_null - msgout = msgin -#endif - CALL timestop(handle) - END SUBROUTINE mp_isendrecv_rv - - SUBROUTINE mp_isend_rv(msgin, dest, comm, request, tag) - !! Non-blocking send of vector data - !! @note see mp_isendrecv_rv - !! @endnote - !! @note - !! arrays can be pointers or assumed shape, but they must be contiguous! - - REAL(kind=real_4), CONTIGUOUS, DIMENSION(:) :: msgin - INTEGER, INTENT(IN) :: dest - TYPE(mp_comm_type), INTENT(IN) :: comm - TYPE(mp_request_type), INTENT(out) :: request - INTEGER, INTENT(in), OPTIONAL :: tag - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isend_rv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, my_tag - REAL(kind=real_4) :: foo(1) -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - my_tag = 0 - IF (PRESENT(tag)) my_tag = tag - - msglen = SIZE(msgin) - IF (msglen > 0) THEN - CALL mpi_isend(msgin, msglen, MPI_REAL, dest, my_tag, & - comm%handle, request%handle, ierr) - ELSE - CALL mpi_isend(foo, msglen, MPI_REAL, dest, my_tag, & - comm%handle, request%handle, ierr) - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) - - CALL add_perf(perf_id=11, msg_size=msglen*real_4_size) -#else - MARK_USED(msgin) - MARK_USED(dest) - MARK_USED(comm) - MARK_USED(request) - MARK_USED(tag) - ierr = 1 - request = mp_request_null - CALL mp_stop(ierr, "mp_isend called in non parallel case") -#endif - CALL timestop(handle) - END SUBROUTINE mp_isend_rv - - SUBROUTINE mp_isend_rm2(msgin, dest, comm, request, tag) - !! Non-blocking send of matrix data - !! @note see mp_isendrecv_rv - !! @endnote - !! @note see mp_isend_rv - !! @endnote - !! @note - !! arrays can be pointers or assumed shape, but they must be contiguous! - - REAL(kind=real_4), DIMENSION(:, :), CONTIGUOUS :: msgin - INTEGER, INTENT(IN) :: dest - TYPE(mp_comm_type), INTENT(IN) :: comm - TYPE(mp_request_type), INTENT(out) :: request - INTEGER, INTENT(in), OPTIONAL :: tag - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isend_rm2' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, my_tag - REAL(kind=real_4) :: foo(1) -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - my_tag = 0 - IF (PRESENT(tag)) my_tag = tag - - msglen = SIZE(msgin, 1)*SIZE(msgin, 2) - IF (msglen > 0) THEN - CALL mpi_isend(msgin, msglen, MPI_REAL, dest, my_tag, & - comm%handle, request%handle, ierr) - ELSE - CALL mpi_isend(foo, msglen, MPI_REAL, dest, my_tag, & - comm%handle, request%handle, ierr) - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) - - CALL add_perf(perf_id=11, msg_size=msglen*real_4_size) -#else - MARK_USED(msgin) - MARK_USED(dest) - MARK_USED(comm) - MARK_USED(request) - MARK_USED(tag) - ierr = 1 - request = mp_request_null - CALL mp_stop(ierr, "mp_isend called in non parallel case") -#endif - CALL timestop(handle) - END SUBROUTINE mp_isend_rm2 - - SUBROUTINE mp_irecv_rv(msgout, source, comm, request, tag) - !! Non-blocking receive of vector data - !! @note see mp_isendrecv_rv - !! @endnote - !! @note - !! arrays can be pointers or assumed shape, but they must be contiguous! - - REAL(kind=real_4), CONTIGUOUS, DIMENSION(:) :: msgout - INTEGER, INTENT(IN) :: source - TYPE(mp_comm_type), INTENT(IN) :: comm - TYPE(mp_request_type), INTENT(out) :: request - INTEGER, INTENT(in), OPTIONAL :: tag - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_irecv_rv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, my_tag - REAL(kind=real_4) :: foo(1) -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - my_tag = 0 - IF (PRESENT(tag)) my_tag = tag - - msglen = SIZE(msgout) - IF (msglen > 0) THEN - CALL mpi_irecv(msgout, msglen, MPI_REAL, source, my_tag, & - comm%handle, request%handle, ierr) - ELSE - CALL mpi_irecv(foo, msglen, MPI_REAL, source, my_tag, & - comm%handle, request%handle, ierr) - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) - - CALL add_perf(perf_id=12, msg_size=msglen*real_4_size) -#else - DBCSR_ABORT("mp_irecv called in non parallel case") - MARK_USED(msgout) - MARK_USED(source) - MARK_USED(comm) - MARK_USED(request) - MARK_USED(tag) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_irecv_rv - - SUBROUTINE mp_irecv_rm2(msgout, source, comm, request, tag) - !! Non-blocking receive of matrix data - !! @note see mp_isendrecv_rv - !! @endnote - !! @note see mp_irecv_rv - !! @endnote - !! @note - !! arrays can be pointers or assumed shape, but they must be contiguous! - - REAL(kind=real_4), DIMENSION(:, :), CONTIGUOUS :: msgout - INTEGER, INTENT(IN) :: source - TYPE(mp_comm_type), INTENT(IN) :: comm - TYPE(mp_request_type), INTENT(out) :: request - INTEGER, INTENT(in), OPTIONAL :: tag - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_irecv_rm2' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, my_tag - REAL(kind=real_4) :: foo(1) -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - my_tag = 0 - IF (PRESENT(tag)) my_tag = tag - - msglen = SIZE(msgout, 1)*SIZE(msgout, 2) - IF (msglen > 0) THEN - CALL mpi_irecv(msgout, msglen, MPI_REAL, source, my_tag, & - comm%handle, request%handle, ierr) - ELSE - CALL mpi_irecv(foo, msglen, MPI_REAL, source, my_tag, & - comm%handle, request%handle, ierr) - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, my_tag + REAL(kind=real_4) :: foo +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + my_tag = 0 + IF (PRESENT(tag)) my_tag = tag + + msglen = SIZE(msgout, 1) + IF (msglen > 0) THEN + CALL mpi_irecv(msgout, msglen, MPI_REAL, source, my_tag, & + comm%handle, recv_request%handle, ierr) + ELSE + CALL mpi_irecv(foo, msglen, MPI_REAL, source, my_tag, & + comm%handle, recv_request%handle, ierr) + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) + + msglen = SIZE(msgin, 1) + IF (msglen > 0) THEN + CALL mpi_isend(msgin, msglen, MPI_REAL, dest, my_tag, & + comm%handle, send_request%handle, ierr) + ELSE + CALL mpi_isend(foo, msglen, MPI_REAL, dest, my_tag, & + comm%handle, send_request%handle, ierr) + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) + + msglen = (msglen + SIZE(msgout, 1) + 1)/2 + CALL add_perf(perf_id=8, msg_size=msglen*real_4_size) +#else + MARK_USED(dest) + MARK_USED(source) + MARK_USED(comm) + MARK_USED(tag) + send_request = mp_request_null + recv_request = mp_request_null + msgout = msgin +#endif + CALL timestop(handle) + END SUBROUTINE mp_isendrecv_rv + + SUBROUTINE mp_isend_rv(msgin, dest, comm, request, tag) + !! Non-blocking send of vector data + !! @note see mp_isendrecv_rv + !! @endnote + !! @note + !! arrays can be pointers or assumed shape, but they must be contiguous! + + REAL(kind=real_4), CONTIGUOUS, DIMENSION(:) :: msgin + INTEGER, INTENT(IN) :: dest + TYPE(mp_comm_type), INTENT(IN) :: comm + TYPE(mp_request_type), INTENT(out) :: request + INTEGER, INTENT(in), OPTIONAL :: tag + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isend_rv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, my_tag + REAL(kind=real_4) :: foo(1) +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + my_tag = 0 + IF (PRESENT(tag)) my_tag = tag + + msglen = SIZE(msgin) + IF (msglen > 0) THEN + CALL mpi_isend(msgin, msglen, MPI_REAL, dest, my_tag, & + comm%handle, request%handle, ierr) + ELSE + CALL mpi_isend(foo, msglen, MPI_REAL, dest, my_tag, & + comm%handle, request%handle, ierr) + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) + + CALL add_perf(perf_id=11, msg_size=msglen*real_4_size) +#else + MARK_USED(msgin) + MARK_USED(dest) + MARK_USED(comm) + MARK_USED(request) + MARK_USED(tag) + ierr = 1 + request = mp_request_null + CALL mp_stop(ierr, "mp_isend called in non parallel case") +#endif + CALL timestop(handle) + END SUBROUTINE mp_isend_rv + + SUBROUTINE mp_isend_rm2(msgin, dest, comm, request, tag) + !! Non-blocking send of matrix data + !! @note see mp_isendrecv_rv + !! @endnote + !! @note see mp_isend_rv + !! @endnote + !! @note + !! arrays can be pointers or assumed shape, but they must be contiguous! + + REAL(kind=real_4), DIMENSION(:, :), CONTIGUOUS :: msgin + INTEGER, INTENT(IN) :: dest + TYPE(mp_comm_type), INTENT(IN) :: comm + TYPE(mp_request_type), INTENT(out) :: request + INTEGER, INTENT(in), OPTIONAL :: tag + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isend_rm2' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, my_tag + REAL(kind=real_4) :: foo(1) +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + my_tag = 0 + IF (PRESENT(tag)) my_tag = tag + + msglen = SIZE(msgin, 1)*SIZE(msgin, 2) + IF (msglen > 0) THEN + CALL mpi_isend(msgin, msglen, MPI_REAL, dest, my_tag, & + comm%handle, request%handle, ierr) + ELSE + CALL mpi_isend(foo, msglen, MPI_REAL, dest, my_tag, & + comm%handle, request%handle, ierr) + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) + + CALL add_perf(perf_id=11, msg_size=msglen*real_4_size) +#else + MARK_USED(msgin) + MARK_USED(dest) + MARK_USED(comm) + MARK_USED(request) + MARK_USED(tag) + ierr = 1 + request = mp_request_null + CALL mp_stop(ierr, "mp_isend called in non parallel case") +#endif + CALL timestop(handle) + END SUBROUTINE mp_isend_rm2 + + SUBROUTINE mp_irecv_rv(msgout, source, comm, request, tag) + !! Non-blocking receive of vector data + !! @note see mp_isendrecv_rv + !! @endnote + !! @note + !! arrays can be pointers or assumed shape, but they must be contiguous! + + REAL(kind=real_4), CONTIGUOUS, DIMENSION(:) :: msgout + INTEGER, INTENT(IN) :: source + TYPE(mp_comm_type), INTENT(IN) :: comm + TYPE(mp_request_type), INTENT(out) :: request + INTEGER, INTENT(in), OPTIONAL :: tag + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_irecv_rv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, my_tag + REAL(kind=real_4) :: foo(1) +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + my_tag = 0 + IF (PRESENT(tag)) my_tag = tag + + msglen = SIZE(msgout) + IF (msglen > 0) THEN + CALL mpi_irecv(msgout, msglen, MPI_REAL, source, my_tag, & + comm%handle, request%handle, ierr) + ELSE + CALL mpi_irecv(foo, msglen, MPI_REAL, source, my_tag, & + comm%handle, request%handle, ierr) + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) + + CALL add_perf(perf_id=12, msg_size=msglen*real_4_size) +#else + DBCSR_ABORT("mp_irecv called in non parallel case") + MARK_USED(msgout) + MARK_USED(source) + MARK_USED(comm) + MARK_USED(request) + MARK_USED(tag) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_irecv_rv + + SUBROUTINE mp_irecv_rm2(msgout, source, comm, request, tag) + !! Non-blocking receive of matrix data + !! @note see mp_isendrecv_rv + !! @endnote + !! @note see mp_irecv_rv + !! @endnote + !! @note + !! arrays can be pointers or assumed shape, but they must be contiguous! + + REAL(kind=real_4), DIMENSION(:, :), CONTIGUOUS :: msgout + INTEGER, INTENT(IN) :: source + TYPE(mp_comm_type), INTENT(IN) :: comm + TYPE(mp_request_type), INTENT(out) :: request + INTEGER, INTENT(in), OPTIONAL :: tag + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_irecv_rm2' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, my_tag + REAL(kind=real_4) :: foo(1) +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + my_tag = 0 + IF (PRESENT(tag)) my_tag = tag + + msglen = SIZE(msgout, 1)*SIZE(msgout, 2) + IF (msglen > 0) THEN + CALL mpi_irecv(msgout, msglen, MPI_REAL, source, my_tag, & + comm%handle, request%handle, ierr) + ELSE + CALL mpi_irecv(foo, msglen, MPI_REAL, source, my_tag, & + comm%handle, request%handle, ierr) + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) + + CALL add_perf(perf_id=12, msg_size=msglen*real_4_size) +#else + MARK_USED(msgout) + MARK_USED(source) + MARK_USED(comm) + MARK_USED(request) + MARK_USED(tag) + request = mp_request_null + DBCSR_ABORT("mp_irecv called in non parallel case") +#endif + CALL timestop(handle) + END SUBROUTINE mp_irecv_rm2 + + SUBROUTINE mp_win_create_rv(base, comm, win) + !! Window initialization function for vector data + !! @note + !! arrays can be pointers or assumed shape, but they must be contiguous! - CALL add_perf(perf_id=12, msg_size=msglen*real_4_size) -#else - MARK_USED(msgout) - MARK_USED(source) - MARK_USED(comm) - MARK_USED(request) - MARK_USED(tag) - request = mp_request_null - DBCSR_ABORT("mp_irecv called in non parallel case") -#endif - CALL timestop(handle) - END SUBROUTINE mp_irecv_rm2 - - SUBROUTINE mp_win_create_rv(base, comm, win) - !! Window initialization function for vector data - !! @note - !! arrays can be pointers or assumed shape, but they must be contiguous! - - REAL(kind=real_4), CONTIGUOUS, DIMENSION(:) :: base - TYPE(mp_comm_type), INTENT(IN) :: comm - TYPE(mp_win_type), INTENT(OUT) :: win - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_win_create_rv' - - INTEGER :: ierr, handle -#if defined(__parallel) - INTEGER(kind=mpi_address_kind) :: len - REAL(kind=real_4) :: foo(1) + REAL(kind=real_4), CONTIGUOUS, DIMENSION(:) :: base + TYPE(mp_comm_type), INTENT(IN) :: comm + TYPE(mp_win_type), INTENT(OUT) :: win + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_win_create_rv' + + INTEGER :: ierr, handle +#if defined(__parallel) + INTEGER(kind=mpi_address_kind) :: len + REAL(kind=real_4) :: foo(1) +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + + len = SIZE(base)*real_4_size + IF (len > 0) THEN + CALL mpi_win_create(base, len, real_4_size, MPI_INFO_NULL, comm%handle, win%handle, ierr) + ELSE + CALL mpi_win_create(foo, len, real_4_size, MPI_INFO_NULL, comm%handle, win%handle, ierr) + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_win_create @ "//routineN) +#else + MARK_USED(base) + MARK_USED(comm) + win = mp_win_null #endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - - len = SIZE(base)*real_4_size - IF (len > 0) THEN - CALL mpi_win_create(base, len, real_4_size, MPI_INFO_NULL, comm%handle, win%handle, ierr) - ELSE - CALL mpi_win_create(foo, len, real_4_size, MPI_INFO_NULL, comm%handle, win%handle, ierr) - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_win_create @ "//routineN) -#else - MARK_USED(base) - MARK_USED(comm) - win = mp_win_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_win_create_rv - - SUBROUTINE mp_rget_rv(base, source, win, win_data, myproc, disp, request, & - origin_datatype, target_datatype) - !! Single-sided get function for vector data - !! @note - !! arrays can be pointers or assumed shape, but they must be contiguous! - - REAL(kind=real_4), CONTIGUOUS, DIMENSION(:) :: base - INTEGER, INTENT(IN) :: source - TYPE(mp_win_type), INTENT(IN) :: win - REAL(kind=real_4), CONTIGUOUS, DIMENSION(:) :: win_data - INTEGER, INTENT(IN), OPTIONAL :: myproc, disp - TYPE(mp_request_type), INTENT(OUT) :: request - TYPE(mp_type_descriptor_type), INTENT(IN), OPTIONAL :: origin_datatype, target_datatype - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_rget_rv' - - INTEGER :: ierr, handle -#if defined(__parallel) - INTEGER :: len, & - origin_len, target_len - LOGICAL :: do_local_copy - INTEGER(kind=mpi_address_kind) :: disp_aint - MPI_DATA_TYPE :: handle_origin_datatype, handle_target_datatype -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - len = SIZE(base) - disp_aint = 0 - IF (PRESENT(disp)) THEN - disp_aint = INT(disp, KIND=mpi_address_kind) - END IF - handle_origin_datatype = MPI_REAL - origin_len = len - IF (PRESENT(origin_datatype)) THEN - handle_origin_datatype = origin_datatype%type_handle - origin_len = 1 - END IF - handle_target_datatype = MPI_REAL - target_len = len - IF (PRESENT(target_datatype)) THEN - handle_target_datatype = target_datatype%type_handle - target_len = 1 - END IF - IF (len > 0) THEN - do_local_copy = .FALSE. -#if !defined(__DBCSR_DISABLE_RMA_LOCAL_COPY) - IF (PRESENT(myproc) .AND. .NOT. PRESENT(origin_datatype) .AND. .NOT. PRESENT(target_datatype)) THEN - IF (myproc .EQ. source) do_local_copy = .TRUE. - END IF + CALL timestop(handle) + END SUBROUTINE mp_win_create_rv + + SUBROUTINE mp_rget_rv(base, source, win, win_data, myproc, disp, request, & + origin_datatype, target_datatype) + !! Single-sided get function for vector data + !! @note + !! arrays can be pointers or assumed shape, but they must be contiguous! + + REAL(kind=real_4), CONTIGUOUS, DIMENSION(:) :: base + INTEGER, INTENT(IN) :: source + TYPE(mp_win_type), INTENT(IN) :: win + REAL(kind=real_4), CONTIGUOUS, DIMENSION(:) :: win_data + INTEGER, INTENT(IN), OPTIONAL :: myproc, disp + TYPE(mp_request_type), INTENT(OUT) :: request + TYPE(mp_type_descriptor_type), INTENT(IN), OPTIONAL :: origin_datatype, target_datatype + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_rget_rv' + + INTEGER :: ierr, handle +#if defined(__parallel) + INTEGER :: len, & + origin_len, target_len + LOGICAL :: do_local_copy + INTEGER(kind=mpi_address_kind) :: disp_aint + MPI_DATA_TYPE :: handle_origin_datatype, handle_target_datatype +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + len = SIZE(base) + disp_aint = 0 + IF (PRESENT(disp)) THEN + disp_aint = INT(disp, KIND=mpi_address_kind) + END IF + handle_origin_datatype = MPI_REAL + origin_len = len + IF (PRESENT(origin_datatype)) THEN + handle_origin_datatype = origin_datatype%type_handle + origin_len = 1 + END IF + handle_target_datatype = MPI_REAL + target_len = len + IF (PRESENT(target_datatype)) THEN + handle_target_datatype = target_datatype%type_handle + target_len = 1 + END IF + IF (len > 0) THEN + do_local_copy = .FALSE. +#if !defined(__DBCSR_DISABLE_RMA_LOCAL_COPY) + IF (PRESENT(myproc) .AND. .NOT. PRESENT(origin_datatype) .AND. .NOT. PRESENT(target_datatype)) THEN + IF (myproc .EQ. source) do_local_copy = .TRUE. + END IF +#else + MARK_USED(myproc) +#endif + IF (do_local_copy) THEN + base(:) = win_data(disp_aint + 1:disp_aint + len) + request = mp_request_null + ierr = 0 + ELSE + CALL mpi_rget(base, origin_len, handle_origin_datatype, source, disp_aint, & + target_len, handle_target_datatype, win%handle, request%handle, ierr) + END IF + ELSE + request = mp_request_null + ierr = 0 + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_rget @ "//routineN) + + CALL add_perf(perf_id=25, msg_size=SIZE(base)*real_4_size) #else - MARK_USED(myproc) -#endif - IF (do_local_copy) THEN -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(base,win_data,disp_aint,len) -#endif - base(:) = win_data(disp_aint + 1:disp_aint + len) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif - request = mp_request_null - ierr = 0 - ELSE - CALL mpi_rget(base, origin_len, handle_origin_datatype, source, disp_aint, & - target_len, handle_target_datatype, win%handle, request%handle, ierr) - END IF - ELSE - request = mp_request_null - ierr = 0 - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_rget @ "//routineN) - - CALL add_perf(perf_id=25, msg_size=SIZE(base)*real_4_size) -#else - MARK_USED(source) - MARK_USED(win) - MARK_USED(myproc) - MARK_USED(origin_datatype) - MARK_USED(target_datatype) + MARK_USED(source) + MARK_USED(win) + MARK_USED(myproc) + MARK_USED(origin_datatype) + MARK_USED(target_datatype) + + request = mp_request_null + ! + IF (PRESENT(disp)) THEN + base(:) = win_data(disp + 1:disp + SIZE(base)) + ELSE + base(:) = win_data(:SIZE(base)) + END IF + +#endif + CALL timestop(handle) + END SUBROUTINE mp_rget_rv + +! ***************************************************************************** +! *************************************************************************** + FUNCTION mp_type_indexed_make_r (count, lengths, displs) & + RESULT(type_descriptor) + INTEGER, INTENT(IN) :: count + INTEGER, DIMENSION(1:count), INTENT(IN), TARGET :: lengths, displs + TYPE(mp_type_descriptor_type) :: type_descriptor + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_type_indexed_make_r' + + INTEGER :: ierr, handle - request = mp_request_null - ! - IF (PRESENT(disp)) THEN - base(:) = win_data(disp + 1:disp + SIZE(base)) - ELSE - base(:) = win_data(:SIZE(base)) - END IF - -#endif - CALL timestop(handle) - END SUBROUTINE mp_rget_rv - -! ***************************************************************************** -! *************************************************************************** - FUNCTION mp_type_indexed_make_r (count, lengths, displs) & - RESULT(type_descriptor) - INTEGER, INTENT(IN) :: count - INTEGER, DIMENSION(1:count), INTENT(IN), TARGET :: lengths, displs - TYPE(mp_type_descriptor_type) :: type_descriptor - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_type_indexed_make_r' - - INTEGER :: ierr, handle - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - CALL mpi_type_indexed(count, lengths, displs, MPI_REAL, & - type_descriptor%type_handle, ierr) - IF (ierr /= 0) & - DBCSR_ABORT("MPI_Type_Indexed @ "//routineN) - CALL mpi_type_commit(type_descriptor%type_handle, ierr) - IF (ierr /= 0) & - DBCSR_ABORT("MPI_Type_commit @ "//routineN) -#else - type_descriptor%type_handle = 1 -#endif - type_descriptor%length = count - NULLIFY (type_descriptor%subtype) - type_descriptor%vector_descriptor(1:2) = 1 - type_descriptor%has_indexing = .TRUE. - type_descriptor%index_descriptor%index => lengths - type_descriptor%index_descriptor%chunks => displs - - CALL timestop(handle) - - END FUNCTION mp_type_indexed_make_r - - SUBROUTINE mp_allocate_r (DATA, len, stat) - !! Allocates special parallel memory - - REAL(kind=real_4), DIMENSION(:), POINTER, CONTIGUOUS :: DATA - !! pointer to integer array to allocate - INTEGER, INTENT(IN) :: len - !! number of integers to allocate - INTEGER, INTENT(OUT), OPTIONAL :: stat - !! allocation status result + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + CALL mpi_type_indexed(count, lengths, displs, MPI_REAL, & + type_descriptor%type_handle, ierr) + IF (ierr /= 0) & + DBCSR_ABORT("MPI_Type_Indexed @ "//routineN) + CALL mpi_type_commit(type_descriptor%type_handle, ierr) + IF (ierr /= 0) & + DBCSR_ABORT("MPI_Type_commit @ "//routineN) +#else + type_descriptor%type_handle = 1 +#endif + type_descriptor%length = count + NULLIFY (type_descriptor%subtype) + type_descriptor%vector_descriptor(1:2) = 1 + type_descriptor%has_indexing = .TRUE. + type_descriptor%index_descriptor%index => lengths + type_descriptor%index_descriptor%chunks => displs + + CALL timestop(handle) + + END FUNCTION mp_type_indexed_make_r + + SUBROUTINE mp_allocate_r (DATA, len, stat) + !! Allocates special parallel memory + + REAL(kind=real_4), DIMENSION(:), POINTER, CONTIGUOUS :: DATA + !! pointer to integer array to allocate + INTEGER, INTENT(IN) :: len + !! number of integers to allocate + INTEGER, INTENT(OUT), OPTIONAL :: stat + !! allocation status result + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allocate_r' + + INTEGER :: ierr, handle + + CALL timeset(routineN, handle) + + ierr = 0 +#if defined(__parallel) + NULLIFY (DATA) + CALL mp_alloc_mem(DATA, len, stat=ierr) + IF (ierr /= 0 .AND. .NOT. PRESENT(stat)) & + CALL mp_stop(ierr, "mpi_alloc_mem @ "//routineN) +#else + ALLOCATE (DATA(len), stat=ierr) + IF (ierr /= 0 .AND. .NOT. PRESENT(stat)) & + CALL mp_stop(ierr, "ALLOCATE @ "//routineN) +#endif + IF (PRESENT(stat)) stat = ierr + CALL timestop(handle) + END SUBROUTINE mp_allocate_r + + SUBROUTINE mp_deallocate_r (DATA, stat) + !! Deallocates special parallel memory - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allocate_r' - - INTEGER :: ierr, handle + REAL(kind=real_4), DIMENSION(:), POINTER, CONTIGUOUS :: DATA + !! pointer to special memory to deallocate + INTEGER, INTENT(OUT), OPTIONAL :: stat - CALL timeset(routineN, handle) + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_deallocate_r' - ierr = 0 -#if defined(__parallel) - NULLIFY (DATA) - CALL mp_alloc_mem(DATA, len, stat=ierr) - IF (ierr /= 0 .AND. .NOT. PRESENT(stat)) & - CALL mp_stop(ierr, "mpi_alloc_mem @ "//routineN) -#else - ALLOCATE (DATA(len), stat=ierr) - IF (ierr /= 0 .AND. .NOT. PRESENT(stat)) & - CALL mp_stop(ierr, "ALLOCATE @ "//routineN) -#endif - IF (PRESENT(stat)) stat = ierr - CALL timestop(handle) - END SUBROUTINE mp_allocate_r - - SUBROUTINE mp_deallocate_r (DATA, stat) - !! Deallocates special parallel memory - - REAL(kind=real_4), DIMENSION(:), POINTER, CONTIGUOUS :: DATA - !! pointer to special memory to deallocate - INTEGER, INTENT(OUT), OPTIONAL :: stat - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_deallocate_r' - - INTEGER :: ierr, handle - - CALL timeset(routineN, handle) + INTEGER :: ierr, handle + + CALL timeset(routineN, handle) + + ierr = 0 +#if defined(__parallel) + CALL mp_free_mem(DATA, ierr) + IF (PRESENT(stat)) THEN + stat = ierr + ELSE + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_free_mem @ "//routineN) + END IF + NULLIFY (DATA) +#else + DEALLOCATE (DATA) + IF (PRESENT(stat)) stat = 0 +#endif + CALL timestop(handle) + END SUBROUTINE mp_deallocate_r + + SUBROUTINE mp_file_write_at_rv(fh, offset, msg, msglen) + !! (parallel) Blocking individual file write using explicit offsets + !! (serial) Unformatted stream write + !! + !! MPI-I/O mapping mpi_file_write_at + !! + !! STREAM-I/O mapping WRITE - ierr = 0 -#if defined(__parallel) - CALL mp_free_mem(DATA, ierr) - IF (PRESENT(stat)) THEN - stat = ierr - ELSE - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_free_mem @ "//routineN) - END IF - NULLIFY (DATA) -#else - DEALLOCATE (DATA) - IF (PRESENT(stat)) stat = 0 -#endif - CALL timestop(handle) - END SUBROUTINE mp_deallocate_r - - SUBROUTINE mp_file_write_at_rv(fh, offset, msg, msglen) - !! (parallel) Blocking individual file write using explicit offsets - !! (serial) Unformatted stream write - !! - !! MPI-I/O mapping mpi_file_write_at - !! - !! STREAM-I/O mapping WRITE - - REAL(kind=real_4), INTENT(IN) :: msg(:) - !! data to be written to the file - TYPE(mp_file_type), INTENT(IN) :: fh - !! file handle (file storage unit) - INTEGER, INTENT(IN), OPTIONAL :: msglen - !! number of the elements of data - INTEGER(kind=file_offset), INTENT(IN) :: offset - !! file offset (position) - - INTEGER :: msg_len + REAL(kind=real_4), INTENT(IN) :: msg(:) + !! data to be written to the file + TYPE(mp_file_type), INTENT(IN) :: fh + !! file handle (file storage unit) + INTEGER, INTENT(IN), OPTIONAL :: msglen + !! number of the elements of data + INTEGER(kind=file_offset), INTENT(IN) :: offset + !! file offset (position) + + INTEGER :: msg_len + + msg_len = SIZE(msg) + IF (PRESENT(msglen)) msg_len = msglen + +#if defined(__parallel) + BLOCK + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_rv' + INTEGER :: ierr + ierr = 0 + CALL MPI_FILE_WRITE_AT(fh%handle, offset, msg, msg_len, MPI_REAL, MPI_STATUS_IGNORE, ierr) + IF (ierr .NE. 0) & + DBCSR_ABORT("mpi_file_write_at_rv @ "//routineN) + END BLOCK +#else + WRITE (UNIT=fh%handle, POS=offset + 1) msg(1:msg_len) +#endif + END SUBROUTINE mp_file_write_at_rv + +! ***************************************************************************** +! ***************************************************************************** + SUBROUTINE mp_file_write_at_r (fh, offset, msg) + REAL(kind=real_4), INTENT(IN) :: msg + TYPE(mp_file_type), INTENT(IN) :: fh + INTEGER(kind=file_offset), INTENT(IN) :: offset - msg_len = SIZE(msg) - IF (PRESENT(msglen)) msg_len = msglen +#if defined(__parallel) + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_r' -#if defined(__parallel) - BLOCK - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_rv' - INTEGER :: ierr - ierr = 0 - CALL MPI_FILE_WRITE_AT(fh%handle, offset, msg, msg_len, MPI_REAL, MPI_STATUS_IGNORE, ierr) - IF (ierr .NE. 0) & - DBCSR_ABORT("mpi_file_write_at_rv @ "//routineN) - END BLOCK -#else - WRITE (UNIT=fh%handle, POS=offset + 1) msg(1:msg_len) -#endif - END SUBROUTINE mp_file_write_at_rv - -! ***************************************************************************** -! ***************************************************************************** - SUBROUTINE mp_file_write_at_r (fh, offset, msg) - REAL(kind=real_4), INTENT(IN) :: msg - TYPE(mp_file_type), INTENT(IN) :: fh - INTEGER(kind=file_offset), INTENT(IN) :: offset - -#if defined(__parallel) - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_r' - - INTEGER :: ierr - - ierr = 0 - CALL MPI_FILE_WRITE_AT(fh%handle, offset, msg, 1, MPI_REAL, MPI_STATUS_IGNORE, ierr) - IF (ierr .NE. 0) & - DBCSR_ABORT("mpi_file_write_at_r @ "//routineN) -#else - WRITE (UNIT=fh%handle, POS=offset + 1) msg -#endif - END SUBROUTINE mp_file_write_at_r - - SUBROUTINE mp_file_write_at_all_rv(fh, offset, msg, msglen) - !! (parallel) Blocking collective file write using explicit offsets - !! (serial) Unformatted stream write - !! - !! MPI-I/O mapping mpi_file_write_at_all - !! - !! STREAM-I/O mapping WRITE - - REAL(kind=real_4), INTENT(IN) :: msg(:) - TYPE(mp_file_type), INTENT(IN) :: fh - INTEGER, INTENT(IN), OPTIONAL :: msglen - INTEGER :: msg_len + INTEGER :: ierr + + ierr = 0 + CALL MPI_FILE_WRITE_AT(fh%handle, offset, msg, 1, MPI_REAL, MPI_STATUS_IGNORE, ierr) + IF (ierr .NE. 0) & + DBCSR_ABORT("mpi_file_write_at_r @ "//routineN) +#else + WRITE (UNIT=fh%handle, POS=offset + 1) msg +#endif + END SUBROUTINE mp_file_write_at_r + + SUBROUTINE mp_file_write_at_all_rv(fh, offset, msg, msglen) + !! (parallel) Blocking collective file write using explicit offsets + !! (serial) Unformatted stream write + !! + !! MPI-I/O mapping mpi_file_write_at_all + !! + !! STREAM-I/O mapping WRITE + + REAL(kind=real_4), INTENT(IN) :: msg(:) + TYPE(mp_file_type), INTENT(IN) :: fh + INTEGER, INTENT(IN), OPTIONAL :: msglen + INTEGER :: msg_len + INTEGER(kind=file_offset), INTENT(IN) :: offset + + msg_len = SIZE(msg) + IF (PRESENT(msglen)) msg_len = msglen +#if defined(__parallel) + BLOCK + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_all_rv' + INTEGER :: ierr + ierr = 0 + + CALL MPI_FILE_WRITE_AT_ALL(fh%handle, offset, msg, msg_len, MPI_REAL, MPI_STATUS_IGNORE, ierr) + IF (ierr .NE. 0) & + DBCSR_ABORT("mpi_file_write_at_all_rv @ "//routineN) + END BLOCK +#else + WRITE (UNIT=fh%handle, POS=offset + 1) msg(1:msg_len) +#endif + END SUBROUTINE mp_file_write_at_all_rv + +! ***************************************************************************** +! ***************************************************************************** + SUBROUTINE mp_file_write_at_all_r (fh, offset, msg) + REAL(kind=real_4), INTENT(IN) :: msg + TYPE(mp_file_type), INTENT(IN) :: fh INTEGER(kind=file_offset), INTENT(IN) :: offset - msg_len = SIZE(msg) - IF (PRESENT(msglen)) msg_len = msglen -#if defined(__parallel) - BLOCK - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_all_rv' - INTEGER :: ierr - ierr = 0 - - CALL MPI_FILE_WRITE_AT_ALL(fh%handle, offset, msg, msg_len, MPI_REAL, MPI_STATUS_IGNORE, ierr) - IF (ierr .NE. 0) & - DBCSR_ABORT("mpi_file_write_at_all_rv @ "//routineN) - END BLOCK -#else - WRITE (UNIT=fh%handle, POS=offset + 1) msg(1:msg_len) -#endif - END SUBROUTINE mp_file_write_at_all_rv - -! ***************************************************************************** -! ***************************************************************************** - SUBROUTINE mp_file_write_at_all_r (fh, offset, msg) - REAL(kind=real_4), INTENT(IN) :: msg - TYPE(mp_file_type), INTENT(IN) :: fh - INTEGER(kind=file_offset), INTENT(IN) :: offset +#if defined(__parallel) + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_all_r' + + INTEGER :: ierr + + ierr = 0 + CALL MPI_FILE_WRITE_AT_ALL(fh%handle, offset, msg, 1, MPI_REAL, MPI_STATUS_IGNORE, ierr) + IF (ierr .NE. 0) & + DBCSR_ABORT("mpi_file_write_at_all_r @ "//routineN) +#else + WRITE (UNIT=fh%handle, POS=offset + 1) msg +#endif + END SUBROUTINE mp_file_write_at_all_r + +! ***************************************************************************** +! ***************************************************************************** + SUBROUTINE mp_file_read_at_all_rv(fh, offset, msg, msglen) + !! (parallel) Blocking collective file read using explicit offsets + !! (serial) Unformatted stream read + !! + !! MPI-I/O mapping mpi_file_read_at_all + !! + !! STREAM-I/O mapping READ -#if defined(__parallel) - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_all_r' - - INTEGER :: ierr + REAL(kind=real_4), INTENT(OUT) :: msg(:) + TYPE(mp_file_type), INTENT(IN) :: fh + INTEGER, INTENT(IN), OPTIONAL :: msglen + INTEGER(kind=file_offset), INTENT(IN) :: offset - ierr = 0 - CALL MPI_FILE_WRITE_AT_ALL(fh%handle, offset, msg, 1, MPI_REAL, MPI_STATUS_IGNORE, ierr) - IF (ierr .NE. 0) & - DBCSR_ABORT("mpi_file_write_at_all_r @ "//routineN) -#else - WRITE (UNIT=fh%handle, POS=offset + 1) msg -#endif - END SUBROUTINE mp_file_write_at_all_r - -! ***************************************************************************** -! ***************************************************************************** - SUBROUTINE mp_file_read_at_all_rv(fh, offset, msg, msglen) - !! (parallel) Blocking collective file read using explicit offsets - !! (serial) Unformatted stream read - !! - !! MPI-I/O mapping mpi_file_read_at_all - !! - !! STREAM-I/O mapping READ + INTEGER :: msg_len + + msg_len = SIZE(msg) + IF (PRESENT(msglen)) msg_len = msglen +#if defined(__parallel) + BLOCK + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_read_at_all_rv' + INTEGER :: ierr + ierr = 0 + + CALL MPI_FILE_READ_AT_ALL(fh%handle, offset, msg, msg_len, MPI_REAL, MPI_STATUS_IGNORE, ierr) + IF (ierr .NE. 0) & + DBCSR_ABORT("mpi_file_read_at_all_rv @ "//routineN) + END BLOCK +#else + READ (UNIT=fh%handle, POS=offset + 1) msg(1:msg_len) +#endif + END SUBROUTINE mp_file_read_at_all_rv - REAL(kind=real_4), INTENT(OUT) :: msg(:) - TYPE(mp_file_type), INTENT(IN) :: fh - INTEGER, INTENT(IN), OPTIONAL :: msglen - INTEGER(kind=file_offset), INTENT(IN) :: offset - - INTEGER :: msg_len +! ***************************************************************************** +! ***************************************************************************** + SUBROUTINE mp_file_read_at_all_r (fh, offset, msg) + REAL(kind=real_4), INTENT(OUT) :: msg + TYPE(mp_file_type), INTENT(IN) :: fh + INTEGER(kind=file_offset), INTENT(IN) :: offset - msg_len = SIZE(msg) - IF (PRESENT(msglen)) msg_len = msglen -#if defined(__parallel) - BLOCK - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_read_at_all_rv' - INTEGER :: ierr - ierr = 0 - - CALL MPI_FILE_READ_AT_ALL(fh%handle, offset, msg, msg_len, MPI_REAL, MPI_STATUS_IGNORE, ierr) - IF (ierr .NE. 0) & - DBCSR_ABORT("mpi_file_read_at_all_rv @ "//routineN) - END BLOCK -#else - READ (UNIT=fh%handle, POS=offset + 1) msg(1:msg_len) -#endif - END SUBROUTINE mp_file_read_at_all_rv - -! ***************************************************************************** -! ***************************************************************************** - SUBROUTINE mp_file_read_at_all_r (fh, offset, msg) - REAL(kind=real_4), INTENT(OUT) :: msg - TYPE(mp_file_type), INTENT(IN) :: fh - INTEGER(kind=file_offset), INTENT(IN) :: offset +#if defined(__parallel) + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_read_at_all_r' + + INTEGER :: ierr + + ierr = 0 + CALL MPI_FILE_READ_AT_ALL(fh%handle, offset, msg, 1, MPI_REAL, MPI_STATUS_IGNORE, ierr) + IF (ierr .NE. 0) & + DBCSR_ABORT("mpi_file_read_at_all_r @ "//routineN) +#else + READ (UNIT=fh%handle, POS=offset + 1) msg +#endif + END SUBROUTINE mp_file_read_at_all_r + +! ***************************************************************************** +! ***************************************************************************** + FUNCTION mp_type_make_r (ptr, & + vector_descriptor, index_descriptor) & + RESULT(type_descriptor) + REAL(kind=real_4), DIMENSION(:), POINTER :: ptr + INTEGER, DIMENSION(2), INTENT(IN), OPTIONAL :: vector_descriptor + TYPE(mp_indexing_meta_type), INTENT(IN), OPTIONAL :: index_descriptor + TYPE(mp_type_descriptor_type) :: type_descriptor -#if defined(__parallel) - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_read_at_all_r' - - INTEGER :: ierr - - ierr = 0 - CALL MPI_FILE_READ_AT_ALL(fh%handle, offset, msg, 1, MPI_REAL, MPI_STATUS_IGNORE, ierr) - IF (ierr .NE. 0) & - DBCSR_ABORT("mpi_file_read_at_all_r @ "//routineN) -#else - READ (UNIT=fh%handle, POS=offset + 1) msg -#endif - END SUBROUTINE mp_file_read_at_all_r - -! ***************************************************************************** -! ***************************************************************************** - FUNCTION mp_type_make_r (ptr, & - vector_descriptor, index_descriptor) & - RESULT(type_descriptor) - REAL(kind=real_4), DIMENSION(:), POINTER :: ptr - INTEGER, DIMENSION(2), INTENT(IN), OPTIONAL :: vector_descriptor - TYPE(mp_indexing_meta_type), INTENT(IN), OPTIONAL :: index_descriptor - TYPE(mp_type_descriptor_type) :: type_descriptor - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_type_make_r' - - INTEGER :: ierr + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_type_make_r' + + INTEGER :: ierr + + ierr = 0 + NULLIFY (type_descriptor%subtype) + type_descriptor%length = SIZE(ptr) +#if defined(__parallel) + type_descriptor%type_handle = MPI_REAL + CALL MPI_Get_address(ptr, type_descriptor%base, ierr) + IF (ierr /= 0) & + DBCSR_ABORT("MPI_Get_address @ "//routineN) +#else + type_descriptor%type_handle = 1 +#endif + type_descriptor%vector_descriptor(1:2) = 1 + type_descriptor%has_indexing = .FALSE. + type_descriptor%data_r => ptr + IF (PRESENT(vector_descriptor) .OR. PRESENT(index_descriptor)) THEN + DBCSR_ABORT(routineN//": Vectors and indices NYI") + END IF + END FUNCTION mp_type_make_r + +#if defined(__parallel) + SUBROUTINE mp_alloc_mem_r (DATA, len, stat) + !! Allocates an array, using MPI_ALLOC_MEM ... this is hackish + !! as the Fortran version returns an integer, which we take to be a C_PTR - ierr = 0 - NULLIFY (type_descriptor%subtype) - type_descriptor%length = SIZE(ptr) -#if defined(__parallel) - type_descriptor%type_handle = MPI_REAL - CALL MPI_Get_address(ptr, type_descriptor%base, ierr) - IF (ierr /= 0) & - DBCSR_ABORT("MPI_Get_address @ "//routineN) -#else - type_descriptor%type_handle = 1 -#endif - type_descriptor%vector_descriptor(1:2) = 1 - type_descriptor%has_indexing = .FALSE. - type_descriptor%data_r => ptr - IF (PRESENT(vector_descriptor) .OR. PRESENT(index_descriptor)) THEN - DBCSR_ABORT(routineN//": Vectors and indices NYI") - END IF - END FUNCTION mp_type_make_r - -#if defined(__parallel) - SUBROUTINE mp_alloc_mem_r (DATA, len, stat) - !! Allocates an array, using MPI_ALLOC_MEM ... this is hackish - !! as the Fortran version returns an integer, which we take to be a C_PTR - - REAL(kind=real_4), DIMENSION(:), POINTER, CONTIGUOUS :: DATA - !! data array to allocate - INTEGER, INTENT(IN) :: len - !! length (in data elements) of data array allocation - INTEGER, INTENT(OUT), OPTIONAL :: stat - !! allocation status result + REAL(kind=real_4), DIMENSION(:), POINTER, CONTIGUOUS :: DATA + !! data array to allocate + INTEGER, INTENT(IN) :: len + !! length (in data elements) of data array allocation + INTEGER, INTENT(OUT), OPTIONAL :: stat + !! allocation status result + + INTEGER :: size, ierr, length, & + mp_res + INTEGER(KIND=MPI_ADDRESS_KIND) :: mp_size + TYPE(C_PTR) :: mp_baseptr + MPI_INFO_TYPE :: mp_info + + length = MAX(len, 1) + CALL MPI_TYPE_SIZE(MPI_REAL, size, ierr) + mp_size = INT(length, KIND=MPI_ADDRESS_KIND)*size + IF (mp_size .GT. mp_max_memory_size) THEN + DBCSR_ABORT("MPI cannot allocate more than 2 GiByte") + END IF + mp_info = MPI_INFO_NULL + CALL MPI_ALLOC_MEM(mp_size, mp_info, mp_baseptr, mp_res) + CALL C_F_POINTER(mp_baseptr, DATA, (/length/)) + IF (PRESENT(stat)) stat = mp_res + END SUBROUTINE mp_alloc_mem_r +#endif + +#if defined(__parallel) + SUBROUTINE mp_free_mem_r (DATA, stat) + !! Deallocates am array, ... this is hackish + !! as the Fortran version takes an integer, which we hope to get by reference - INTEGER :: size, ierr, length, & - mp_res - INTEGER(KIND=MPI_ADDRESS_KIND) :: mp_size - TYPE(C_PTR) :: mp_baseptr - MPI_INFO_TYPE :: mp_info + REAL(kind=real_4), DIMENSION(:), & + POINTER, CONTIGUOUS :: DATA + !! data array to allocate + INTEGER, INTENT(OUT), OPTIONAL :: stat + !! allocation status result - length = MAX(len, 1) - CALL MPI_TYPE_SIZE(MPI_REAL, size, ierr) - mp_size = INT(length, KIND=MPI_ADDRESS_KIND)*size - IF (mp_size .GT. mp_max_memory_size) THEN - DBCSR_ABORT("MPI cannot allocate more than 2 GiByte") - END IF - mp_info = MPI_INFO_NULL - CALL MPI_ALLOC_MEM(mp_size, mp_info, mp_baseptr, mp_res) - CALL C_F_POINTER(mp_baseptr, DATA, (/length/)) - IF (PRESENT(stat)) stat = mp_res - END SUBROUTINE mp_alloc_mem_r -#endif - -#if defined(__parallel) - SUBROUTINE mp_free_mem_r (DATA, stat) - !! Deallocates am array, ... this is hackish - !! as the Fortran version takes an integer, which we hope to get by reference - - REAL(kind=real_4), DIMENSION(:), & - POINTER, CONTIGUOUS :: DATA - !! data array to allocate - INTEGER, INTENT(OUT), OPTIONAL :: stat - !! allocation status result - - INTEGER :: mp_res - CALL MPI_FREE_MEM(DATA, mp_res) - IF (PRESENT(stat)) stat = mp_res - END SUBROUTINE mp_free_mem_r -#endif - -# 2824 "/__w/dbcsr/dbcsr/src/mpi/dbcsr_mpiwrap.F" - SUBROUTINE mp_alltoall_z11v(sb, scount, sdispl, rb, rcount, rdispl, group) - !! All-to-all data exchange, rank-1 data of different sizes - !! - !! MPI mapping - !! mpi_alltoallv - !! - !! Array sizes - !! The scount, rcount, and the sdispl and rdispl arrays have a - !! size equal to the number of processes. - !! - !! Offsets - !! Values in sdispl and rdispl start with 0. + INTEGER :: mp_res + CALL MPI_FREE_MEM(DATA, mp_res) + IF (PRESENT(stat)) stat = mp_res + END SUBROUTINE mp_free_mem_r +#endif + +# 2824 "/__w/dbcsr/dbcsr/src/mpi/dbcsr_mpiwrap.F" + SUBROUTINE mp_alltoall_z11v(sb, scount, sdispl, rb, rcount, rdispl, group) + !! All-to-all data exchange, rank-1 data of different sizes + !! + !! MPI mapping + !! mpi_alltoallv + !! + !! Array sizes + !! The scount, rcount, and the sdispl and rdispl arrays have a + !! size equal to the number of processes. + !! + !! Offsets + !! Values in sdispl and rdispl start with 0. + + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: sb(:) + !! Data to send + INTEGER, CONTIGUOUS, INTENT(IN) :: scount(:), sdispl(:) + !! Data counts for data sent to other processes + !! Respective data offsets for data sent to process + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: rb(:) + !! Buffer into which to receive data + INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:), rdispl(:) + !! Data counts for data received from other processes + !! Respective data offsets for data received from other processes + TYPE(mp_comm_type), INTENT(IN) :: group + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_z11v' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen +#else + INTEGER :: i +#endif + + CALL timeset(routineN, handle) - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: sb(:) - !! Data to send - INTEGER, CONTIGUOUS, INTENT(IN) :: scount(:), sdispl(:) - !! Data counts for data sent to other processes - !! Respective data offsets for data sent to process - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: rb(:) - !! Buffer into which to receive data - INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:), rdispl(:) - !! Data counts for data received from other processes - !! Respective data offsets for data received from other processes - TYPE(mp_comm_type), INTENT(IN) :: group - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_z11v' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen -#else - INTEGER :: i -#endif - - CALL timeset(routineN, handle) - - ierr = 0 -#if defined(__parallel) - CALL mpi_alltoallv(sb, scount, sdispl, MPI_DOUBLE_COMPLEX, & - rb, rcount, rdispl, MPI_DOUBLE_COMPLEX, group%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoallv @ "//routineN) - msglen = SUM(scount) + SUM(rcount) - CALL add_perf(perf_id=6, msg_size=msglen*(2*real_8_size)) -#else - MARK_USED(group) - MARK_USED(scount) - MARK_USED(sdispl) -!$OMP PARALLEL DO DEFAULT(NONE) PRIVATE(i) SHARED(rcount,rdispl,sdispl,rb,sb) - DO i = 1, rcount(1) - rb(rdispl(1) + i) = sb(sdispl(1) + i) - END DO -#endif - CALL timestop(handle) - - END SUBROUTINE mp_alltoall_z11v - - SUBROUTINE mp_alltoall_z (sb, rb, count, group) - !! All-to-all data exchange, rank 1 arrays, equal sizes - !! - !! Index meaning - !! - !! The first two indices specify the data while the last index counts - !! the processes - !! - !! Sizes of ranks - !! All processes have the same data size. - !! - !! MPI mapping - !! mpi_alltoall - - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: sb(:) - !! array with data to send - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: rb(:) - !! array into which data is received - INTEGER, INTENT(IN) :: count - !! number of elements to send/receive (product of the extents of the first two dimensions) - TYPE(mp_comm_type), INTENT(IN) :: group - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_z' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, np -#endif + ierr = 0 +#if defined(__parallel) + CALL mpi_alltoallv(sb, scount, sdispl, MPI_DOUBLE_COMPLEX, & + rb, rcount, rdispl, MPI_DOUBLE_COMPLEX, group%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoallv @ "//routineN) + msglen = SUM(scount) + SUM(rcount) + CALL add_perf(perf_id=6, msg_size=msglen*(2*real_8_size)) +#else + MARK_USED(group) + MARK_USED(scount) + MARK_USED(sdispl) +!$OMP PARALLEL DO DEFAULT(NONE) PRIVATE(i) SHARED(rcount,rdispl,sdispl,rb,sb) + DO i = 1, rcount(1) + rb(rdispl(1) + i) = sb(sdispl(1) + i) + END DO +#endif + CALL timestop(handle) + + END SUBROUTINE mp_alltoall_z11v + + SUBROUTINE mp_alltoall_z (sb, rb, count, group) + !! All-to-all data exchange, rank 1 arrays, equal sizes + !! + !! Index meaning + !! + !! The first two indices specify the data while the last index counts + !! the processes + !! + !! Sizes of ranks + !! All processes have the same data size. + !! + !! MPI mapping + !! mpi_alltoall + + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: sb(:) + !! array with data to send + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: rb(:) + !! array into which data is received + INTEGER, INTENT(IN) :: count + !! number of elements to send/receive (product of the extents of the first two dimensions) + TYPE(mp_comm_type), INTENT(IN) :: group + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_z' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, np +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + CALL mpi_alltoall(sb, count, MPI_DOUBLE_COMPLEX, & + rb, count, MPI_DOUBLE_COMPLEX, group%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoall @ "//routineN) + CALL mpi_comm_size(group%handle, np, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_size @ "//routineN) + msglen = 2*count*np + CALL add_perf(perf_id=6, msg_size=msglen*(2*real_8_size)) +#else + MARK_USED(count) + MARK_USED(group) + rb = sb +#endif + CALL timestop(handle) + + END SUBROUTINE mp_alltoall_z + + SUBROUTINE mp_alltoall_z22(sb, rb, count, group) + !! All-to-all data exchange, rank-2 arrays, equal sizes + !! @note see mp_alltoall_z - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - CALL mpi_alltoall(sb, count, MPI_DOUBLE_COMPLEX, & - rb, count, MPI_DOUBLE_COMPLEX, group%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoall @ "//routineN) - CALL mpi_comm_size(group%handle, np, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_size @ "//routineN) - msglen = 2*count*np - CALL add_perf(perf_id=6, msg_size=msglen*(2*real_8_size)) -#else - MARK_USED(count) - MARK_USED(group) - rb = sb -#endif - CALL timestop(handle) - - END SUBROUTINE mp_alltoall_z - - SUBROUTINE mp_alltoall_z22(sb, rb, count, group) - !! All-to-all data exchange, rank-2 arrays, equal sizes - !! @note see mp_alltoall_z - - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: sb(:, :) - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: rb(:, :) - INTEGER, INTENT(IN) :: count - TYPE(mp_comm_type), INTENT(IN) :: group - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_z22' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, np -#endif + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: sb(:, :) + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: rb(:, :) + INTEGER, INTENT(IN) :: count + TYPE(mp_comm_type), INTENT(IN) :: group + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_z22' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, np +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + CALL mpi_alltoall(sb, count, MPI_DOUBLE_COMPLEX, & + rb, count, MPI_DOUBLE_COMPLEX, group%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoall @ "//routineN) + CALL mpi_comm_size(group%handle, np, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_size @ "//routineN) + msglen = 2*SIZE(sb)*np + CALL add_perf(perf_id=6, msg_size=msglen*(2*real_8_size)) +#else + MARK_USED(count) + MARK_USED(group) + rb = sb +#endif + CALL timestop(handle) + + END SUBROUTINE mp_alltoall_z22 + + SUBROUTINE mp_alltoall_z44(sb, rb, count, group) + !! All-to-all data exchange, rank 4 data, equal sizes + !! @note see mp_alltoall_z - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - CALL mpi_alltoall(sb, count, MPI_DOUBLE_COMPLEX, & - rb, count, MPI_DOUBLE_COMPLEX, group%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoall @ "//routineN) - CALL mpi_comm_size(group%handle, np, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_size @ "//routineN) - msglen = 2*SIZE(sb)*np - CALL add_perf(perf_id=6, msg_size=msglen*(2*real_8_size)) -#else - MARK_USED(count) - MARK_USED(group) - rb = sb -#endif - CALL timestop(handle) - - END SUBROUTINE mp_alltoall_z22 - - SUBROUTINE mp_alltoall_z44(sb, rb, count, group) - !! All-to-all data exchange, rank 4 data, equal sizes - !! @note see mp_alltoall_z - - COMPLEX(kind=real_8), DIMENSION(:, :, :, :), CONTIGUOUS, & - INTENT(IN) :: sb - COMPLEX(kind=real_8), DIMENSION(:, :, :, :), CONTIGUOUS, & - INTENT(OUT) :: rb - INTEGER, INTENT(IN) :: count - TYPE(mp_comm_type), INTENT(IN) :: group - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_z44' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, np -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - CALL mpi_alltoall(sb, count, MPI_DOUBLE_COMPLEX, & - rb, count, MPI_DOUBLE_COMPLEX, group%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoall @ "//routineN) - CALL mpi_comm_size(group%handle, np, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_size @ "//routineN) - msglen = 2*count*np - CALL add_perf(perf_id=6, msg_size=msglen*(2*real_8_size)) -#else - MARK_USED(count) - MARK_USED(group) - rb = sb -#endif - CALL timestop(handle) - - END SUBROUTINE mp_alltoall_z44 - - SUBROUTINE mp_send_z (msg, dest, tag, gid) - !! Send one datum to another process - !! - !! MPI mapping - !! mpi_send - - COMPLEX(kind=real_8) :: msg - !! Scalar to send - INTEGER :: dest, tag - !! Destination process - !! Transfer identifier - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_send_z' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = 1 -#if defined(__parallel) - CALL mpi_send(msg, msglen, MPI_DOUBLE_COMPLEX, dest, tag, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_send @ "//routineN) - CALL add_perf(perf_id=13, msg_size=msglen*(2*real_8_size)) -#else - MARK_USED(msg) - MARK_USED(dest) - MARK_USED(tag) - MARK_USED(gid) - ! only defined in parallel - DBCSR_ABORT("not in parallel mode") -#endif - CALL timestop(handle) - END SUBROUTINE mp_send_z - - SUBROUTINE mp_send_zv(msg, dest, tag, gid) - !! Send rank-1 data to another process - !! @note see mp_send_z - - COMPLEX(kind=real_8), CONTIGUOUS :: msg(:) - !! Rank-1 data to send - INTEGER :: dest, tag - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_send_zv' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_send(msg, msglen, MPI_DOUBLE_COMPLEX, dest, tag, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_send @ "//routineN) - CALL add_perf(perf_id=13, msg_size=msglen*(2*real_8_size)) -#else - MARK_USED(msg) - MARK_USED(dest) - MARK_USED(tag) - MARK_USED(gid) - ! only defined in parallel - DBCSR_ABORT("not in parallel mode") -#endif - CALL timestop(handle) - END SUBROUTINE mp_send_zv + COMPLEX(kind=real_8), DIMENSION(:, :, :, :), CONTIGUOUS, & + INTENT(IN) :: sb + COMPLEX(kind=real_8), DIMENSION(:, :, :, :), CONTIGUOUS, & + INTENT(OUT) :: rb + INTEGER, INTENT(IN) :: count + TYPE(mp_comm_type), INTENT(IN) :: group + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_z44' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, np +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + CALL mpi_alltoall(sb, count, MPI_DOUBLE_COMPLEX, & + rb, count, MPI_DOUBLE_COMPLEX, group%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoall @ "//routineN) + CALL mpi_comm_size(group%handle, np, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_size @ "//routineN) + msglen = 2*count*np + CALL add_perf(perf_id=6, msg_size=msglen*(2*real_8_size)) +#else + MARK_USED(count) + MARK_USED(group) + rb = sb +#endif + CALL timestop(handle) + + END SUBROUTINE mp_alltoall_z44 + + SUBROUTINE mp_send_z (msg, dest, tag, gid) + !! Send one datum to another process + !! + !! MPI mapping + !! mpi_send + + COMPLEX(kind=real_8) :: msg + !! Scalar to send + INTEGER :: dest, tag + !! Destination process + !! Transfer identifier + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_send_z' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_send(msg, msglen, MPI_DOUBLE_COMPLEX, dest, tag, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_send @ "//routineN) + CALL add_perf(perf_id=13, msg_size=msglen*(2*real_8_size)) +#else + MARK_USED(msg) + MARK_USED(dest) + MARK_USED(tag) + MARK_USED(gid) + ! only defined in parallel + DBCSR_ABORT("not in parallel mode") +#endif + CALL timestop(handle) + END SUBROUTINE mp_send_z + + SUBROUTINE mp_send_zv(msg, dest, tag, gid) + !! Send rank-1 data to another process + !! @note see mp_send_z + + COMPLEX(kind=real_8), CONTIGUOUS :: msg(:) + !! Rank-1 data to send + INTEGER :: dest, tag + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_send_zv' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_send(msg, msglen, MPI_DOUBLE_COMPLEX, dest, tag, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_send @ "//routineN) + CALL add_perf(perf_id=13, msg_size=msglen*(2*real_8_size)) +#else + MARK_USED(msg) + MARK_USED(dest) + MARK_USED(tag) + MARK_USED(gid) + ! only defined in parallel + DBCSR_ABORT("not in parallel mode") +#endif + CALL timestop(handle) + END SUBROUTINE mp_send_zv + + SUBROUTINE mp_recv_z (msg, source, tag, gid) + !! Receive one datum from another process + !! + !! MPI mapping + !! mpi_send + + COMPLEX(kind=real_8), INTENT(INOUT) :: msg + !! Place received data into this variable + INTEGER, INTENT(INOUT) :: source, tag + !! Process to receive from + !! Transfer identifier + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_recv_z' + + INTEGER :: handle, ierr, msglen +#if defined(__parallel) + MPI_STATUS_TYPE :: status +#endif + + ierr = 0 + CALL timeset(routineN, handle) - SUBROUTINE mp_recv_z (msg, source, tag, gid) - !! Receive one datum from another process - !! - !! MPI mapping - !! mpi_send - - COMPLEX(kind=real_8), INTENT(INOUT) :: msg - !! Place received data into this variable - INTEGER, INTENT(INOUT) :: source, tag - !! Process to receive from - !! Transfer identifier - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_recv_z' - - INTEGER :: handle, ierr, msglen -#if defined(__parallel) - MPI_STATUS_TYPE :: status -#endif - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = 1 -#if defined(__parallel) - CALL mpi_recv(msg, msglen, MPI_DOUBLE_COMPLEX, source, tag, gid%handle, status, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_recv @ "//routineN) - CALL add_perf(perf_id=14, msg_size=msglen*(2*real_8_size)) - source = status MPI_STATUS_EXTRACT(MPI_SOURCE) - tag = status MPI_STATUS_EXTRACT(MPI_TAG) -#else - MARK_USED(msg) - MARK_USED(source) - MARK_USED(tag) - MARK_USED(gid) - ! only defined in parallel - DBCSR_ABORT("not in parallel mode") -#endif - CALL timestop(handle) - END SUBROUTINE mp_recv_z - - SUBROUTINE mp_recv_zv(msg, source, tag, gid) - !! Receive rank-1 data from another process - !! @note see mp_recv_z - - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) - !! Place received data into this rank-1 array - INTEGER, INTENT(INOUT) :: source, tag - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_recv_zv' - - INTEGER :: handle, ierr, msglen -#if defined(__parallel) - MPI_STATUS_TYPE :: status -#endif - - ierr = 0 - CALL timeset(routineN, handle) + msglen = 1 +#if defined(__parallel) + CALL mpi_recv(msg, msglen, MPI_DOUBLE_COMPLEX, source, tag, gid%handle, status, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_recv @ "//routineN) + CALL add_perf(perf_id=14, msg_size=msglen*(2*real_8_size)) + source = status MPI_STATUS_EXTRACT(MPI_SOURCE) + tag = status MPI_STATUS_EXTRACT(MPI_TAG) +#else + MARK_USED(msg) + MARK_USED(source) + MARK_USED(tag) + MARK_USED(gid) + ! only defined in parallel + DBCSR_ABORT("not in parallel mode") +#endif + CALL timestop(handle) + END SUBROUTINE mp_recv_z + + SUBROUTINE mp_recv_zv(msg, source, tag, gid) + !! Receive rank-1 data from another process + !! @note see mp_recv_z + + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) + !! Place received data into this rank-1 array + INTEGER, INTENT(INOUT) :: source, tag + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_recv_zv' + + INTEGER :: handle, ierr, msglen +#if defined(__parallel) + MPI_STATUS_TYPE :: status +#endif + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_recv(msg, msglen, MPI_DOUBLE_COMPLEX, source, tag, gid%handle, status, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_recv @ "//routineN) + CALL add_perf(perf_id=14, msg_size=msglen*(2*real_8_size)) + source = status MPI_STATUS_EXTRACT(MPI_SOURCE) + tag = status MPI_STATUS_EXTRACT(MPI_TAG) +#else + MARK_USED(msg) + MARK_USED(source) + MARK_USED(tag) + MARK_USED(gid) + ! only defined in parallel + DBCSR_ABORT("not in parallel mode") +#endif + CALL timestop(handle) + END SUBROUTINE mp_recv_zv + + SUBROUTINE mp_bcast_z (msg, source, gid) + !! Broadcasts a datum to all processes. + !! + !! MPI mapping + !! mpi_bcast - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_recv(msg, msglen, MPI_DOUBLE_COMPLEX, source, tag, gid%handle, status, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_recv @ "//routineN) - CALL add_perf(perf_id=14, msg_size=msglen*(2*real_8_size)) - source = status MPI_STATUS_EXTRACT(MPI_SOURCE) - tag = status MPI_STATUS_EXTRACT(MPI_TAG) -#else - MARK_USED(msg) - MARK_USED(source) - MARK_USED(tag) - MARK_USED(gid) - ! only defined in parallel - DBCSR_ABORT("not in parallel mode") -#endif - CALL timestop(handle) - END SUBROUTINE mp_recv_zv - - SUBROUTINE mp_bcast_z (msg, source, gid) - !! Broadcasts a datum to all processes. - !! - !! MPI mapping - !! mpi_bcast - - COMPLEX(kind=real_8) :: msg - !! Datum to broadcast - INTEGER :: source - !! Processes which broadcasts - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_z' + COMPLEX(kind=real_8) :: msg + !! Datum to broadcast + INTEGER :: source + !! Processes which broadcasts + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_z' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_bcast(msg, msglen, MPI_DOUBLE_COMPLEX, source, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) + CALL add_perf(perf_id=2, msg_size=msglen*(2*real_8_size)) +#else + MARK_USED(msg) + MARK_USED(source) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_bcast_z + + SUBROUTINE mp_ibcast_z (msg, source, gid, request) + !! Broadcasts a datum to all processes. + !! + !! MPI mapping + !! mpi_bcast - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = 1 -#if defined(__parallel) - CALL mpi_bcast(msg, msglen, MPI_DOUBLE_COMPLEX, source, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) - CALL add_perf(perf_id=2, msg_size=msglen*(2*real_8_size)) -#else - MARK_USED(msg) - MARK_USED(source) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_bcast_z - - SUBROUTINE mp_ibcast_z (msg, source, gid, request) - !! Broadcasts a datum to all processes. - !! - !! MPI mapping - !! mpi_bcast - - COMPLEX(kind=real_8) :: msg - !! Datum to broadcast - INTEGER :: source - !! Processes which broadcasts - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_ibcast_z' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = 1 -#if defined(__parallel) - CALL mpi_ibcast(msg, msglen, MPI_DOUBLE_COMPLEX, source, gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_ibcast @ "//routineN) - CALL add_perf(perf_id=22, msg_size=msglen*(2*real_8_size)) -#else - MARK_USED(msg) - MARK_USED(source) - MARK_USED(gid) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_ibcast_z - - SUBROUTINE mp_bcast_zv(msg, source, gid) - !! Broadcasts rank-1 data to all processes - !! @note see mp_bcast_z1 + COMPLEX(kind=real_8) :: msg + !! Datum to broadcast + INTEGER :: source + !! Processes which broadcasts + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_ibcast_z' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_ibcast(msg, msglen, MPI_DOUBLE_COMPLEX, source, gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_ibcast @ "//routineN) + CALL add_perf(perf_id=22, msg_size=msglen*(2*real_8_size)) +#else + MARK_USED(msg) + MARK_USED(source) + MARK_USED(gid) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_ibcast_z + + SUBROUTINE mp_bcast_zv(msg, source, gid) + !! Broadcasts rank-1 data to all processes + !! @note see mp_bcast_z1 + + COMPLEX(kind=real_8), CONTIGUOUS :: msg(:) + !! Data to broadcast + INTEGER :: source + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_zv' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_bcast(msg, msglen, MPI_DOUBLE_COMPLEX, source, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) + CALL add_perf(perf_id=2, msg_size=msglen*(2*real_8_size)) +#else + MARK_USED(source) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_bcast_zv - COMPLEX(kind=real_8), CONTIGUOUS :: msg(:) - !! Data to broadcast - INTEGER :: source - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_zv' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) + SUBROUTINE mp_ibcast_zv(msg, source, gid, request) + !! Broadcasts rank-1 data to all processes + !! @note see mp_bcast_z1 + + COMPLEX(kind=real_8), CONTIGUOUS :: msg(:) + !! Data to broadcast + INTEGER :: source + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_ibcast_zv' - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_bcast(msg, msglen, MPI_DOUBLE_COMPLEX, source, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) - CALL add_perf(perf_id=2, msg_size=msglen*(2*real_8_size)) -#else - MARK_USED(source) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_bcast_zv - - SUBROUTINE mp_ibcast_zv(msg, source, gid, request) - !! Broadcasts rank-1 data to all processes - !! @note see mp_bcast_z1 - - COMPLEX(kind=real_8), CONTIGUOUS :: msg(:) - !! Data to broadcast - INTEGER :: source - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(INOUT) :: request + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_ibcast(msg, msglen, MPI_DOUBLE_COMPLEX, source, gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_ibcast @ "//routineN) + CALL add_perf(perf_id=22, msg_size=msglen*(2*real_8_size)) +#else + MARK_USED(source) + MARK_USED(gid) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_ibcast_zv + + SUBROUTINE mp_bcast_zm(msg, source, gid) + !! Broadcasts rank-2 data to all processes + !! @note see mp_bcast_z1 - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_ibcast_zv' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) + COMPLEX(kind=real_8), CONTIGUOUS :: msg(:, :) + !! Data to broadcast + INTEGER :: source + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_im' - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_ibcast(msg, msglen, MPI_DOUBLE_COMPLEX, source, gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_ibcast @ "//routineN) - CALL add_perf(perf_id=22, msg_size=msglen*(2*real_8_size)) -#else - MARK_USED(source) - MARK_USED(gid) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_ibcast_zv - - SUBROUTINE mp_bcast_zm(msg, source, gid) - !! Broadcasts rank-2 data to all processes - !! @note see mp_bcast_z1 + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_bcast(msg, msglen, MPI_DOUBLE_COMPLEX, source, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) + CALL add_perf(perf_id=2, msg_size=msglen*(2*real_8_size)) +#else + MARK_USED(source) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_bcast_zm - COMPLEX(kind=real_8), CONTIGUOUS :: msg(:, :) - !! Data to broadcast - INTEGER :: source - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_im' - - INTEGER :: handle, ierr, msglen + SUBROUTINE mp_bcast_z3(msg, source, gid) + !! Broadcasts rank-3 data to all processes + !! @note see mp_bcast_z1 + + COMPLEX(kind=real_8), CONTIGUOUS :: msg(:, :, :) + !! Data to broadcast + INTEGER :: source + TYPE(mp_comm_type), INTENT(IN) :: gid - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_bcast(msg, msglen, MPI_DOUBLE_COMPLEX, source, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) - CALL add_perf(perf_id=2, msg_size=msglen*(2*real_8_size)) -#else - MARK_USED(source) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_bcast_zm - - SUBROUTINE mp_bcast_z3(msg, source, gid) - !! Broadcasts rank-3 data to all processes - !! @note see mp_bcast_z1 + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_z3' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_bcast(msg, msglen, MPI_DOUBLE_COMPLEX, source, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) + CALL add_perf(perf_id=2, msg_size=msglen*(2*real_8_size)) +#else + MARK_USED(source) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_bcast_z3 - COMPLEX(kind=real_8), CONTIGUOUS :: msg(:, :, :) - !! Data to broadcast - INTEGER :: source - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_z3' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_bcast(msg, msglen, MPI_DOUBLE_COMPLEX, source, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) - CALL add_perf(perf_id=2, msg_size=msglen*(2*real_8_size)) -#else - MARK_USED(source) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_bcast_z3 - - SUBROUTINE mp_sum_z (msg, gid) - !! Sums a datum from all processes with result left on all processes. - !! - !! MPI mapping - !! mpi_allreduce + SUBROUTINE mp_sum_z (msg, gid) + !! Sums a datum from all processes with result left on all processes. + !! + !! MPI mapping + !! mpi_allreduce + + COMPLEX(kind=real_8), INTENT(INOUT) :: msg + !! Datum to sum (input) and result (output) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_z' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_COMPLEX, MPI_SUM, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + CALL add_perf(perf_id=3, msg_size=msglen*(2*real_8_size)) +#else + MARK_USED(msg) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_sum_z - COMPLEX(kind=real_8), INTENT(INOUT) :: msg - !! Datum to sum (input) and result (output) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_z' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = 1 -#if defined(__parallel) - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_COMPLEX, MPI_SUM, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - CALL add_perf(perf_id=3, msg_size=msglen*(2*real_8_size)) -#else - MARK_USED(msg) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_sum_z - - SUBROUTINE mp_sum_zv(msg, gid) - !! Element-wise sum of a rank-1 array on all processes. - !! @note see mp_sum_z - - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) - !! Vector to sum and result - TYPE(mp_comm_type), INTENT(IN) :: gid + SUBROUTINE mp_sum_zv(msg, gid) + !! Element-wise sum of a rank-1 array on all processes. + !! @note see mp_sum_z + + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) + !! Vector to sum and result + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_zv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + msglen = SIZE(msg) + IF (msglen > 0) THEN + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_COMPLEX, MPI_SUM, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + END IF + CALL add_perf(perf_id=3, msg_size=msglen*(2*real_8_size)) +#else + MARK_USED(msg) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_sum_zv - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_zv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - msglen = SIZE(msg) - IF (msglen > 0) THEN - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_COMPLEX, MPI_SUM, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - END IF - CALL add_perf(perf_id=3, msg_size=msglen*(2*real_8_size)) -#else - MARK_USED(msg) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_sum_zv - - SUBROUTINE mp_isum_zv(msg, gid, request) - !! Element-wise sum of a rank-1 array on all processes. - !! @note see mp_sum_z - - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) - !! Vector to sum and result - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isum_zv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen -#endif + SUBROUTINE mp_isum_zv(msg, gid, request) + !! Element-wise sum of a rank-1 array on all processes. + !! @note see mp_sum_z + + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) + !! Vector to sum and result + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isum_zv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + msglen = SIZE(msg) + IF (msglen > 0) THEN + CALL mpi_iallreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_COMPLEX, MPI_SUM, gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallreduce @ "//routineN) + ELSE + request = mp_request_null + END IF + CALL add_perf(perf_id=23, msg_size=msglen*(2*real_8_size)) +#else + MARK_USED(msg) + MARK_USED(gid) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_isum_zv + + SUBROUTINE mp_sum_zm(msg, gid) + !! Element-wise sum of a rank-2 array on all processes. + !! @note see mp_sum_z - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - msglen = SIZE(msg) - IF (msglen > 0) THEN - CALL mpi_iallreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_COMPLEX, MPI_SUM, gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallreduce @ "//routineN) - ELSE - request = mp_request_null - END IF - CALL add_perf(perf_id=23, msg_size=msglen*(2*real_8_size)) -#else - MARK_USED(msg) - MARK_USED(gid) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_isum_zv - - SUBROUTINE mp_sum_zm(msg, gid) - !! Element-wise sum of a rank-2 array on all processes. - !! @note see mp_sum_z - - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:, :) - !! Matrix to sum and result - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_zm' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER, PARAMETER :: max_msg = 2**25 - INTEGER :: m1, msglen, step, msglensum -#endif - - ierr = 0 - CALL timeset(routineN, handle) + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:, :) + !! Matrix to sum and result + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_zm' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER, PARAMETER :: max_msg = 2**25 + INTEGER :: m1, msglen, step, msglensum +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + ! chunk up the call so that message sizes are limited, to avoid overflows in mpich triggered in large rpa calcs + step = MAX(1, SIZE(msg, 2)/MAX(1, SIZE(msg)/max_msg)) + msglensum = 0 + DO m1 = LBOUND(msg, 2), UBOUND(msg, 2), step + msglen = SIZE(msg, 1)*(MIN(UBOUND(msg, 2), m1 + step - 1) - m1 + 1) + msglensum = msglensum + msglen + IF (msglen > 0) THEN + CALL mpi_allreduce(MPI_IN_PLACE, msg(LBOUND(msg, 1), m1), msglen, MPI_DOUBLE_COMPLEX, MPI_SUM, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + END IF + END DO + CALL add_perf(perf_id=3, msg_size=msglensum*(2*real_8_size)) +#else + MARK_USED(msg) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_sum_zm + + SUBROUTINE mp_sum_zm3(msg, gid) + !! Element-wise sum of a rank-3 array on all processes. + !! @note see mp_sum_z -#if defined(__parallel) - ! chunk up the call so that message sizes are limited, to avoid overflows in mpich triggered in large rpa calcs - step = MAX(1, SIZE(msg, 2)/MAX(1, SIZE(msg)/max_msg)) - msglensum = 0 - DO m1 = LBOUND(msg, 2), UBOUND(msg, 2), step - msglen = SIZE(msg, 1)*(MIN(UBOUND(msg, 2), m1 + step - 1) - m1 + 1) - msglensum = msglensum + msglen - IF (msglen > 0) THEN - CALL mpi_allreduce(MPI_IN_PLACE, msg(LBOUND(msg, 1), m1), msglen, MPI_DOUBLE_COMPLEX, MPI_SUM, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - END IF - END DO - CALL add_perf(perf_id=3, msg_size=msglensum*(2*real_8_size)) -#else - MARK_USED(msg) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_sum_zm - - SUBROUTINE mp_sum_zm3(msg, gid) - !! Element-wise sum of a rank-3 array on all processes. - !! @note see mp_sum_z + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:, :, :) + !! Array to sum and result + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_zm3' + + INTEGER :: handle, ierr, & + msglen + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + IF (msglen > 0) THEN + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_COMPLEX, MPI_SUM, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + END IF + CALL add_perf(perf_id=3, msg_size=msglen*(2*real_8_size)) +#else + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_sum_zm3 - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:, :, :) - !! Array to sum and result - TYPE(mp_comm_type), INTENT(IN) :: gid + SUBROUTINE mp_sum_zm4(msg, gid) + !! Element-wise sum of a rank-4 array on all processes. + !! @note see mp_sum_z - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_zm3' - - INTEGER :: handle, ierr, & - msglen - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - IF (msglen > 0) THEN - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_COMPLEX, MPI_SUM, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - END IF - CALL add_perf(perf_id=3, msg_size=msglen*(2*real_8_size)) -#else - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_sum_zm3 - - SUBROUTINE mp_sum_zm4(msg, gid) - !! Element-wise sum of a rank-4 array on all processes. - !! @note see mp_sum_z - - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:, :, :, :) - !! Array to sum and result - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_zm4' - - INTEGER :: handle, ierr, & - msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - IF (msglen > 0) THEN - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_COMPLEX, MPI_SUM, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - END IF - CALL add_perf(perf_id=3, msg_size=msglen*(2*real_8_size)) -#else - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_sum_zm4 + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:, :, :, :) + !! Array to sum and result + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_zm4' + + INTEGER :: handle, ierr, & + msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + IF (msglen > 0) THEN + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_COMPLEX, MPI_SUM, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + END IF + CALL add_perf(perf_id=3, msg_size=msglen*(2*real_8_size)) +#else + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_sum_zm4 + + SUBROUTINE mp_sum_root_zv(msg, root, gid) + !! Element-wise sum of data from all processes with result left only on + !! one. + !! + !! MPI mapping + !! mpi_reduce + + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) + !! Vector to sum (input) and (only on process root) result (output) + INTEGER, INTENT(IN) :: root + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_root_zv' + + INTEGER :: handle, ierr, msglen +#if defined(__parallel) + INTEGER :: m1, taskid + COMPLEX(kind=real_8), ALLOCATABLE :: res(:) +#endif + + ierr = 0 + CALL timeset(routineN, handle) - SUBROUTINE mp_sum_root_zv(msg, root, gid) - !! Element-wise sum of data from all processes with result left only on - !! one. - !! - !! MPI mapping - !! mpi_reduce - - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) - !! Vector to sum (input) and (only on process root) result (output) - INTEGER, INTENT(IN) :: root - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_root_zv' - - INTEGER :: handle, ierr, msglen -#if defined(__parallel) - INTEGER :: m1, taskid - COMPLEX(kind=real_8), ALLOCATABLE :: res(:) + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_comm_rank(gid%handle, taskid, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_rank @ "//routineN) + IF (msglen > 0) THEN + m1 = SIZE(msg, 1) + ALLOCATE (res(m1)) + CALL mpi_reduce(msg, res, msglen, MPI_DOUBLE_COMPLEX, MPI_SUM, & + root, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_reduce @ "//routineN) + IF (taskid == root) THEN + msg = res + END IF + DEALLOCATE (res) + END IF + CALL add_perf(perf_id=3, msg_size=msglen*(2*real_8_size)) +#else + MARK_USED(root) + MARK_USED(gid) #endif - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_comm_rank(gid%handle, taskid, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_rank @ "//routineN) - IF (msglen > 0) THEN - m1 = SIZE(msg, 1) - ALLOCATE (res(m1)) - CALL mpi_reduce(msg, res, msglen, MPI_DOUBLE_COMPLEX, MPI_SUM, & - root, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_reduce @ "//routineN) - IF (taskid == root) THEN - msg = res - END IF - DEALLOCATE (res) - END IF - CALL add_perf(perf_id=3, msg_size=msglen*(2*real_8_size)) -#else - MARK_USED(root) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_sum_root_zv - - SUBROUTINE mp_sum_root_zm(msg, root, gid) - !! Element-wise sum of data from all processes with result left only on - !! one. - !! @note see mp_sum_root_zv - - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:, :) - !! Matrix to sum (input) and (only on process root) result (output) - INTEGER, INTENT(IN) :: root - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_root_rm' - - INTEGER :: handle, ierr, msglen -#if defined(__parallel) - INTEGER :: m1, m2, taskid - COMPLEX(kind=real_8), ALLOCATABLE :: res(:, :) + CALL timestop(handle) + END SUBROUTINE mp_sum_root_zv + + SUBROUTINE mp_sum_root_zm(msg, root, gid) + !! Element-wise sum of data from all processes with result left only on + !! one. + !! @note see mp_sum_root_zv + + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:, :) + !! Matrix to sum (input) and (only on process root) result (output) + INTEGER, INTENT(IN) :: root + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_root_rm' + + INTEGER :: handle, ierr, msglen +#if defined(__parallel) + INTEGER :: m1, m2, taskid + COMPLEX(kind=real_8), ALLOCATABLE :: res(:, :) +#endif + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_comm_rank(gid%handle, taskid, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_rank @ "//routineN) + IF (msglen > 0) THEN + m1 = SIZE(msg, 1) + m2 = SIZE(msg, 2) + ALLOCATE (res(m1, m2)) + CALL mpi_reduce(msg, res, msglen, MPI_DOUBLE_COMPLEX, MPI_SUM, root, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_reduce @ "//routineN) + IF (taskid == root) THEN + msg = res + END IF + DEALLOCATE (res) + END IF + CALL add_perf(perf_id=3, msg_size=msglen*(2*real_8_size)) +#else + MARK_USED(root) + MARK_USED(gid) #endif - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_comm_rank(gid%handle, taskid, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_rank @ "//routineN) - IF (msglen > 0) THEN - m1 = SIZE(msg, 1) - m2 = SIZE(msg, 2) - ALLOCATE (res(m1, m2)) - CALL mpi_reduce(msg, res, msglen, MPI_DOUBLE_COMPLEX, MPI_SUM, root, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_reduce @ "//routineN) - IF (taskid == root) THEN - msg = res - END IF - DEALLOCATE (res) - END IF - CALL add_perf(perf_id=3, msg_size=msglen*(2*real_8_size)) -#else - MARK_USED(root) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_sum_root_zm - - SUBROUTINE mp_sum_partial_zm(msg, res, gid) - !! Partial sum of data from all processes with result on each process. - - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msg(:, :) - !! Matrix to sum (input) - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: res(:, :) - !! Matrix containing result (output) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_partial_zm' - - INTEGER :: handle, ierr, msglen -#if defined(__parallel) - INTEGER :: taskid -#endif - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_comm_rank(gid%handle, taskid, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_rank @ "//routineN) - IF (msglen > 0) THEN - CALL mpi_scan(msg, res, msglen, MPI_DOUBLE_COMPLEX, MPI_SUM, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_scan @ "//routineN) - END IF - CALL add_perf(perf_id=3, msg_size=msglen*(2*real_8_size)) - ! perf_id is same as for other summation routines -#else - res = msg - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_sum_partial_zm - - SUBROUTINE mp_max_z (msg, gid) - !! Finds the maximum of a datum with the result left on all processes. - !! - !! MPI mapping - !! mpi_allreduce + CALL timestop(handle) + END SUBROUTINE mp_sum_root_zm + + SUBROUTINE mp_sum_partial_zm(msg, res, gid) + !! Partial sum of data from all processes with result on each process. + + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msg(:, :) + !! Matrix to sum (input) + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: res(:, :) + !! Matrix containing result (output) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_partial_zm' + + INTEGER :: handle, ierr, msglen +#if defined(__parallel) + INTEGER :: taskid +#endif + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_comm_rank(gid%handle, taskid, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_rank @ "//routineN) + IF (msglen > 0) THEN + CALL mpi_scan(msg, res, msglen, MPI_DOUBLE_COMPLEX, MPI_SUM, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_scan @ "//routineN) + END IF + CALL add_perf(perf_id=3, msg_size=msglen*(2*real_8_size)) + ! perf_id is same as for other summation routines +#else + res = msg + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_sum_partial_zm + + SUBROUTINE mp_max_z (msg, gid) + !! Finds the maximum of a datum with the result left on all processes. + !! + !! MPI mapping + !! mpi_allreduce + + COMPLEX(kind=real_8), INTENT(INOUT) :: msg + !! Find maximum among these data (input) and maximum (output) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_max_z' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_COMPLEX, MPI_MAX, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + CALL add_perf(perf_id=3, msg_size=msglen*(2*real_8_size)) +#else + MARK_USED(msg) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_max_z - COMPLEX(kind=real_8), INTENT(INOUT) :: msg - !! Find maximum among these data (input) and maximum (output) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier + SUBROUTINE mp_max_zv(msg, gid) + !! Finds the element-wise maximum of a vector with the result left on + !! all processes. + !! @note see mp_max_z - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_max_z' - - INTEGER :: handle, ierr, msglen + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) + !! Find maximum among these data (input) and maximum (output) + TYPE(mp_comm_type), INTENT(IN) :: gid - ierr = 0 - CALL timeset(routineN, handle) - - msglen = 1 -#if defined(__parallel) - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_COMPLEX, MPI_MAX, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - CALL add_perf(perf_id=3, msg_size=msglen*(2*real_8_size)) -#else - MARK_USED(msg) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_max_z - - SUBROUTINE mp_max_zv(msg, gid) - !! Finds the element-wise maximum of a vector with the result left on - !! all processes. - !! @note see mp_max_z - - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) - !! Find maximum among these data (input) and maximum (output) - TYPE(mp_comm_type), INTENT(IN) :: gid + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_max_zv' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_COMPLEX, MPI_MAX, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + CALL add_perf(perf_id=3, msg_size=msglen*(2*real_8_size)) +#else + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_max_zv + + SUBROUTINE mp_min_z (msg, gid) + !! Finds the minimum of a datum with the result left on all processes. + !! + !! MPI mapping + !! mpi_allreduce - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_max_zv' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) + COMPLEX(kind=real_8), INTENT(INOUT) :: msg + !! Find minimum among these data (input) and maximum (output) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_min_z' - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_COMPLEX, MPI_MAX, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - CALL add_perf(perf_id=3, msg_size=msglen*(2*real_8_size)) -#else - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_max_zv - - SUBROUTINE mp_min_z (msg, gid) - !! Finds the minimum of a datum with the result left on all processes. - !! - !! MPI mapping - !! mpi_allreduce + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_COMPLEX, MPI_MIN, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + CALL add_perf(perf_id=3, msg_size=msglen*(2*real_8_size)) +#else + MARK_USED(msg) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_min_z - COMPLEX(kind=real_8), INTENT(INOUT) :: msg - !! Find minimum among these data (input) and maximum (output) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_min_z' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) + SUBROUTINE mp_min_zv(msg, gid) + !! Finds the element-wise minimum of vector with the result left on + !! all processes. + !! + !! MPI mapping + !! mpi_allreduce + !! @note see mp_min_z + + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) + !! Find minimum among these data (input) and maximum (output) + TYPE(mp_comm_type), INTENT(IN) :: gid - msglen = 1 -#if defined(__parallel) - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_COMPLEX, MPI_MIN, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - CALL add_perf(perf_id=3, msg_size=msglen*(2*real_8_size)) -#else - MARK_USED(msg) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_min_z - - SUBROUTINE mp_min_zv(msg, gid) - !! Finds the element-wise minimum of vector with the result left on - !! all processes. - !! - !! MPI mapping - !! mpi_allreduce - !! @note see mp_min_z - - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) - !! Find minimum among these data (input) and maximum (output) - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_min_zv' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_COMPLEX, MPI_MIN, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - CALL add_perf(perf_id=3, msg_size=msglen*(2*real_8_size)) -#else - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_min_zv - - SUBROUTINE mp_prod_z (msg, gid) - !! Multiplies a set of numbers scattered across a number of processes, - !! then replicates the result. - !! - !! MPI mapping - !! mpi_allreduce + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_min_zv' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_COMPLEX, MPI_MIN, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + CALL add_perf(perf_id=3, msg_size=msglen*(2*real_8_size)) +#else + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_min_zv + + SUBROUTINE mp_prod_z (msg, gid) + !! Multiplies a set of numbers scattered across a number of processes, + !! then replicates the result. + !! + !! MPI mapping + !! mpi_allreduce + + COMPLEX(kind=real_8), INTENT(INOUT) :: msg + !! a number to multiply (input) and result (output) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_z' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_COMPLEX, MPI_PROD, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + CALL add_perf(perf_id=3, msg_size=msglen*(2*real_8_size)) +#else + MARK_USED(msg) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_prod_z - COMPLEX(kind=real_8), INTENT(INOUT) :: msg - !! a number to multiply (input) and result (output) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_z' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = 1 -#if defined(__parallel) - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_DOUBLE_COMPLEX, MPI_PROD, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - CALL add_perf(perf_id=3, msg_size=msglen*(2*real_8_size)) -#else - MARK_USED(msg) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_prod_z - - SUBROUTINE mp_iscatter_z (msg_scatter, msg, root, gid, request) - !! Scatters data from one processes to all others - !! - !! MPI mapping - !! mpi_scatter - - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msg_scatter(:) - !! Data to scatter (for root process) - COMPLEX(kind=real_8), INTENT(INOUT) :: msg - INTEGER, INTENT(IN) :: root - !! Process which scatters data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iscatter_z' - - INTEGER :: handle, ierr, msglen + SUBROUTINE mp_iscatter_z (msg_scatter, msg, root, gid, request) + !! Scatters data from one processes to all others + !! + !! MPI mapping + !! mpi_scatter + + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msg_scatter(:) + !! Data to scatter (for root process) + COMPLEX(kind=real_8), INTENT(INOUT) :: msg + INTEGER, INTENT(IN) :: root + !! Process which scatters data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iscatter_z' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_iscatter(msg_scatter, msglen, MPI_DOUBLE_COMPLEX, msg, & + msglen, MPI_DOUBLE_COMPLEX, root, gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iscatter @ "//routineN) + CALL add_perf(perf_id=24, msg_size=1*(2*real_8_size)) +#else + MARK_USED(root) + MARK_USED(gid) + msg = msg_scatter(1) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iscatter_z + + SUBROUTINE mp_iscatter_zv2(msg_scatter, msg, root, gid, request) + !! Scatters data from one processes to all others + !! + !! MPI mapping + !! mpi_scatter - ierr = 0 - CALL timeset(routineN, handle) - - msglen = 1 -#if defined(__parallel) - CALL mpi_iscatter(msg_scatter, msglen, MPI_DOUBLE_COMPLEX, msg, & - msglen, MPI_DOUBLE_COMPLEX, root, gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iscatter @ "//routineN) - CALL add_perf(perf_id=24, msg_size=1*(2*real_8_size)) -#else - MARK_USED(root) - MARK_USED(gid) - msg = msg_scatter(1) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iscatter_z - - SUBROUTINE mp_iscatter_zv2(msg_scatter, msg, root, gid, request) - !! Scatters data from one processes to all others - !! - !! MPI mapping - !! mpi_scatter - - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msg_scatter(:, :) - !! Data to scatter (for root process) - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) - INTEGER, INTENT(IN) :: root - !! Process which scatters data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iscatter_zv2' - - INTEGER :: handle, ierr, msglen + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msg_scatter(:, :) + !! Data to scatter (for root process) + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) + INTEGER, INTENT(IN) :: root + !! Process which scatters data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iscatter_zv2' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_iscatter(msg_scatter, msglen, MPI_DOUBLE_COMPLEX, msg, & + msglen, MPI_DOUBLE_COMPLEX, root, gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iscatter @ "//routineN) + CALL add_perf(perf_id=24, msg_size=1*(2*real_8_size)) +#else + MARK_USED(root) + MARK_USED(gid) + msg(:) = msg_scatter(:, 1) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iscatter_zv2 + + SUBROUTINE mp_iscatterv_zv(msg_scatter, sendcounts, displs, msg, recvcount, root, gid, request) + !! Scatters data from one processes to all others + !! + !! MPI mapping + !! mpi_scatter - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_iscatter(msg_scatter, msglen, MPI_DOUBLE_COMPLEX, msg, & - msglen, MPI_DOUBLE_COMPLEX, root, gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iscatter @ "//routineN) - CALL add_perf(perf_id=24, msg_size=1*(2*real_8_size)) -#else - MARK_USED(root) - MARK_USED(gid) - msg(:) = msg_scatter(:, 1) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iscatter_zv2 - - SUBROUTINE mp_iscatterv_zv(msg_scatter, sendcounts, displs, msg, recvcount, root, gid, request) - !! Scatters data from one processes to all others - !! - !! MPI mapping - !! mpi_scatter - - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msg_scatter(:) - !! Data to scatter (for root process) - INTEGER, CONTIGUOUS, INTENT(IN) :: sendcounts(:), displs(:) - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) - INTEGER, INTENT(IN) :: recvcount, root - !! Process which scatters data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(INOUT) :: request + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msg_scatter(:) + !! Data to scatter (for root process) + INTEGER, CONTIGUOUS, INTENT(IN) :: sendcounts(:), displs(:) + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(INOUT) :: msg(:) + INTEGER, INTENT(IN) :: recvcount, root + !! Process which scatters data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iscatterv_zv' + + INTEGER :: handle, ierr + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + CALL mpi_iscatterv(msg_scatter, sendcounts, displs, MPI_DOUBLE_COMPLEX, msg, & + recvcount, MPI_DOUBLE_COMPLEX, root, gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iscatterv @ "//routineN) + CALL add_perf(perf_id=24, msg_size=1*(2*real_8_size)) +#else + MARK_USED(sendcounts) + MARK_USED(displs) + MARK_USED(recvcount) + MARK_USED(root) + MARK_USED(gid) + msg(1:recvcount) = msg_scatter(1 + displs(1):1 + displs(1) + sendcounts(1)) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iscatterv_zv - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iscatterv_zv' - - INTEGER :: handle, ierr - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - CALL mpi_iscatterv(msg_scatter, sendcounts, displs, MPI_DOUBLE_COMPLEX, msg, & - recvcount, MPI_DOUBLE_COMPLEX, root, gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iscatterv @ "//routineN) - CALL add_perf(perf_id=24, msg_size=1*(2*real_8_size)) -#else - MARK_USED(sendcounts) - MARK_USED(displs) - MARK_USED(recvcount) - MARK_USED(root) - MARK_USED(gid) - msg(1:recvcount) = msg_scatter(1 + displs(1):1 + displs(1) + sendcounts(1)) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iscatterv_zv - - SUBROUTINE mp_gather_z (msg, msg_gather, root, gid) - !! Gathers a datum from all processes to one - !! - !! MPI mapping - !! mpi_gather - - COMPLEX(kind=real_8), INTENT(IN) :: msg - !! Datum to send to root - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msg_gather(:) - !! Received data (on root) - INTEGER, INTENT(IN) :: root - !! Process which gathers the data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gather_z' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) + SUBROUTINE mp_gather_z (msg, msg_gather, root, gid) + !! Gathers a datum from all processes to one + !! + !! MPI mapping + !! mpi_gather + + COMPLEX(kind=real_8), INTENT(IN) :: msg + !! Datum to send to root + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msg_gather(:) + !! Received data (on root) + INTEGER, INTENT(IN) :: root + !! Process which gathers the data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gather_z' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_gather(msg, msglen, MPI_DOUBLE_COMPLEX, msg_gather, & + msglen, MPI_DOUBLE_COMPLEX, root, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gather @ "//routineN) + CALL add_perf(perf_id=4, msg_size=msglen*(2*real_8_size)) +#else + MARK_USED(root) + MARK_USED(gid) + msg_gather(1) = msg +#endif + CALL timestop(handle) + END SUBROUTINE mp_gather_z + + SUBROUTINE mp_gather_zv(msg, msg_gather, root, gid) + !! Gathers data from all processes to one + !! + !! Data length + !! All data (msg) is equal-sized + !! + !! MPI mapping + !! mpi_gather + !! @note see mp_gather_z - msglen = 1 -#if defined(__parallel) - CALL mpi_gather(msg, msglen, MPI_DOUBLE_COMPLEX, msg_gather, & - msglen, MPI_DOUBLE_COMPLEX, root, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gather @ "//routineN) - CALL add_perf(perf_id=4, msg_size=msglen*(2*real_8_size)) -#else - MARK_USED(root) - MARK_USED(gid) - msg_gather(1) = msg -#endif - CALL timestop(handle) - END SUBROUTINE mp_gather_z - - SUBROUTINE mp_gather_zv(msg, msg_gather, root, gid) - !! Gathers data from all processes to one - !! - !! Data length - !! All data (msg) is equal-sized - !! - !! MPI mapping - !! mpi_gather - !! @note see mp_gather_z - - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msg(:) - !! Datum to send to root - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msg_gather(:) - INTEGER, INTENT(IN) :: root - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gather_zv' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msg(:) + !! Datum to send to root + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msg_gather(:) + INTEGER, INTENT(IN) :: root + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gather_zv' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_gather(msg, msglen, MPI_DOUBLE_COMPLEX, msg_gather, & + msglen, MPI_DOUBLE_COMPLEX, root, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gather @ "//routineN) + CALL add_perf(perf_id=4, msg_size=msglen*(2*real_8_size)) +#else + MARK_USED(root) + MARK_USED(gid) + msg_gather = msg +#endif + CALL timestop(handle) + END SUBROUTINE mp_gather_zv + + SUBROUTINE mp_gather_zm(msg, msg_gather, root, gid) + !! Gathers data from all processes to one + !! + !! Data length + !! All data (msg) is equal-sized + !! + !! MPI mapping + !! mpi_gather + !! @note see mp_gather_z - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_gather(msg, msglen, MPI_DOUBLE_COMPLEX, msg_gather, & - msglen, MPI_DOUBLE_COMPLEX, root, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gather @ "//routineN) - CALL add_perf(perf_id=4, msg_size=msglen*(2*real_8_size)) -#else - MARK_USED(root) - MARK_USED(gid) - msg_gather = msg -#endif - CALL timestop(handle) - END SUBROUTINE mp_gather_zv - - SUBROUTINE mp_gather_zm(msg, msg_gather, root, gid) - !! Gathers data from all processes to one - !! - !! Data length - !! All data (msg) is equal-sized - !! - !! MPI mapping - !! mpi_gather - !! @note see mp_gather_z - - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msg(:, :) - !! Datum to send to root - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msg_gather(:, :) - INTEGER, INTENT(IN) :: root - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gather_zm' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_gather(msg, msglen, MPI_DOUBLE_COMPLEX, msg_gather, & - msglen, MPI_DOUBLE_COMPLEX, root, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gather @ "//routineN) - CALL add_perf(perf_id=4, msg_size=msglen*(2*real_8_size)) -#else - MARK_USED(root) - MARK_USED(gid) - msg_gather = msg -#endif - CALL timestop(handle) - END SUBROUTINE mp_gather_zm + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msg(:, :) + !! Datum to send to root + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msg_gather(:, :) + INTEGER, INTENT(IN) :: root + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gather_zm' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_gather(msg, msglen, MPI_DOUBLE_COMPLEX, msg_gather, & + msglen, MPI_DOUBLE_COMPLEX, root, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gather @ "//routineN) + CALL add_perf(perf_id=4, msg_size=msglen*(2*real_8_size)) +#else + MARK_USED(root) + MARK_USED(gid) + msg_gather = msg +#endif + CALL timestop(handle) + END SUBROUTINE mp_gather_zm + + SUBROUTINE mp_gatherv_zv(sendbuf, recvbuf, recvcounts, displs, root, comm) + !! Gathers data from all processes to one. + !! + !! Data length + !! Data can have different lengths + !! + !! Offsets + !! Offsets start at 0 + !! + !! MPI mapping + !! mpi_gather + + COMPLEX(kind=real_8), DIMENSION(:), CONTIGUOUS, INTENT(IN) :: sendbuf + !! Data to send to root + COMPLEX(kind=real_8), DIMENSION(:), CONTIGUOUS, INTENT(OUT) :: recvbuf + !! Received data (on root) + INTEGER, DIMENSION(:), CONTIGUOUS, INTENT(IN) :: recvcounts, displs + !! Sizes of data received from processes + !! Offsets of data received from processes + INTEGER, INTENT(IN) :: root + !! Process which gathers the data + TYPE(mp_comm_type), INTENT(IN) :: comm + !! Message passing environment identifier - SUBROUTINE mp_gatherv_zv(sendbuf, recvbuf, recvcounts, displs, root, comm) - !! Gathers data from all processes to one. - !! - !! Data length - !! Data can have different lengths - !! - !! Offsets - !! Offsets start at 0 - !! - !! MPI mapping - !! mpi_gather - - COMPLEX(kind=real_8), DIMENSION(:), CONTIGUOUS, INTENT(IN) :: sendbuf - !! Data to send to root - COMPLEX(kind=real_8), DIMENSION(:), CONTIGUOUS, INTENT(OUT) :: recvbuf - !! Received data (on root) - INTEGER, DIMENSION(:), CONTIGUOUS, INTENT(IN) :: recvcounts, displs - !! Sizes of data received from processes - !! Offsets of data received from processes - INTEGER, INTENT(IN) :: root - !! Process which gathers the data - TYPE(mp_comm_type), INTENT(IN) :: comm - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gatherv_zv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: sendcount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - sendcount = SIZE(sendbuf) - CALL mpi_gatherv(sendbuf, sendcount, MPI_DOUBLE_COMPLEX, & - recvbuf, recvcounts, displs, MPI_DOUBLE_COMPLEX, & - root, comm%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gatherv @ "//routineN) - CALL add_perf(perf_id=4, & - msg_size=sendcount*(2*real_8_size)) -#else - MARK_USED(recvcounts) - MARK_USED(root) - MARK_USED(comm) - recvbuf(1 + displs(1):) = sendbuf -#endif - CALL timestop(handle) - END SUBROUTINE mp_gatherv_zv + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gatherv_zv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: sendcount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + sendcount = SIZE(sendbuf) + CALL mpi_gatherv(sendbuf, sendcount, MPI_DOUBLE_COMPLEX, & + recvbuf, recvcounts, displs, MPI_DOUBLE_COMPLEX, & + root, comm%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gatherv @ "//routineN) + CALL add_perf(perf_id=4, & + msg_size=sendcount*(2*real_8_size)) +#else + MARK_USED(recvcounts) + MARK_USED(root) + MARK_USED(comm) + recvbuf(1 + displs(1):) = sendbuf +#endif + CALL timestop(handle) + END SUBROUTINE mp_gatherv_zv + + SUBROUTINE mp_allgather_z (msgout, msgin, gid) + !! Gathers a datum from all processes and all processes receive the + !! same data + !! + !! Data size + !! All processes send equal-sized data + !! + !! MPI mapping + !! mpi_allgather + + COMPLEX(kind=real_8), INTENT(IN) :: msgout + !! Datum to send + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) + !! Received data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_z' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif - SUBROUTINE mp_allgather_z (msgout, msgin, gid) - !! Gathers a datum from all processes and all processes receive the - !! same data - !! - !! Data size - !! All processes send equal-sized data - !! - !! MPI mapping - !! mpi_allgather - - COMPLEX(kind=real_8), INTENT(IN) :: msgout - !! Datum to send - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) - !! Received data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = 1 + rcount = 1 + CALL MPI_ALLGATHER(msgout, scount, MPI_DOUBLE_COMPLEX, & + msgin, rcount, MPI_DOUBLE_COMPLEX, & + gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) +#else + MARK_USED(gid) + msgin = msgout +#endif + CALL timestop(handle) + END SUBROUTINE mp_allgather_z - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_z' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) + SUBROUTINE mp_allgather_z2(msgout, msgin, gid) + !! Gathers a datum from all processes and all processes receive the + !! same data + !! + !! Data size + !! All processes send equal-sized data + !! + !! MPI mapping + !! mpi_allgather -#if defined(__parallel) - scount = 1 - rcount = 1 - CALL MPI_ALLGATHER(msgout, scount, MPI_DOUBLE_COMPLEX, & - msgin, rcount, MPI_DOUBLE_COMPLEX, & - gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) -#else - MARK_USED(gid) - msgin = msgout -#endif - CALL timestop(handle) - END SUBROUTINE mp_allgather_z + COMPLEX(kind=real_8), INTENT(IN) :: msgout + !! Datum to send + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) + !! Received data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_z2' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif - SUBROUTINE mp_allgather_z2(msgout, msgin, gid) - !! Gathers a datum from all processes and all processes receive the - !! same data - !! - !! Data size - !! All processes send equal-sized data - !! - !! MPI mapping - !! mpi_allgather - - COMPLEX(kind=real_8), INTENT(IN) :: msgout - !! Datum to send - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) - !! Received data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = 1 + rcount = 1 + CALL MPI_ALLGATHER(msgout, scount, MPI_DOUBLE_COMPLEX, & + msgin, rcount, MPI_DOUBLE_COMPLEX, & + gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) +#else + MARK_USED(gid) + msgin = msgout +#endif + CALL timestop(handle) + END SUBROUTINE mp_allgather_z2 - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_z2' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) + SUBROUTINE mp_iallgather_z (msgout, msgin, gid, request) + !! Gathers a datum from all processes and all processes receive the + !! same data + !! + !! Data size + !! All processes send equal-sized data + !! + !! MPI mapping + !! mpi_allgather -#if defined(__parallel) - scount = 1 - rcount = 1 - CALL MPI_ALLGATHER(msgout, scount, MPI_DOUBLE_COMPLEX, & - msgin, rcount, MPI_DOUBLE_COMPLEX, & - gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) -#else - MARK_USED(gid) - msgin = msgout -#endif - CALL timestop(handle) - END SUBROUTINE mp_allgather_z2 - - SUBROUTINE mp_iallgather_z (msgout, msgin, gid, request) - !! Gathers a datum from all processes and all processes receive the - !! same data - !! - !! Data size - !! All processes send equal-sized data - !! - !! MPI mapping - !! mpi_allgather - - COMPLEX(kind=real_8), INTENT(IN) :: msgout - !! Datum to send - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) - !! Received data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_z' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = 1 - rcount = 1 - CALL MPI_IALLGATHER(msgout, scount, MPI_DOUBLE_COMPLEX, & - msgin, rcount, MPI_DOUBLE_COMPLEX, & - gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) -#else - MARK_USED(gid) - msgin = msgout - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgather_z - - SUBROUTINE mp_allgather_z12(msgout, msgin, gid) - !! Gathers vector data from all processes and all processes receive the - !! same data - !! - !! Data size - !! All processes send equal-sized data - !! - !! Ranks - !! The last rank counts the processes - !! - !! MPI mapping - !! mpi_allgather - - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:) - !! Rank-1 data to send - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) - !! Received data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier + COMPLEX(kind=real_8), INTENT(IN) :: msgout + !! Datum to send + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) + !! Received data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_z' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = 1 + rcount = 1 + CALL MPI_IALLGATHER(msgout, scount, MPI_DOUBLE_COMPLEX, & + msgin, rcount, MPI_DOUBLE_COMPLEX, & + gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) +#else + MARK_USED(gid) + msgin = msgout + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgather_z + + SUBROUTINE mp_allgather_z12(msgout, msgin, gid) + !! Gathers vector data from all processes and all processes receive the + !! same data + !! + !! Data size + !! All processes send equal-sized data + !! + !! Ranks + !! The last rank counts the processes + !! + !! MPI mapping + !! mpi_allgather + + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:) + !! Rank-1 data to send + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) + !! Received data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_z12' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:)) + rcount = scount + CALL MPI_ALLGATHER(msgout, scount, MPI_DOUBLE_COMPLEX, & + msgin, rcount, MPI_DOUBLE_COMPLEX, & + gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, 1) = msgout(:) +#endif + CALL timestop(handle) + END SUBROUTINE mp_allgather_z12 - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_z12' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) + SUBROUTINE mp_allgather_z23(msgout, msgin, gid) + !! Gathers matrix data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_z12 + + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:, :) + !! Rank-2 data to send + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :) + TYPE(mp_comm_type), INTENT(IN) :: gid -#if defined(__parallel) - scount = SIZE(msgout(:)) - rcount = scount - CALL MPI_ALLGATHER(msgout, scount, MPI_DOUBLE_COMPLEX, & - msgin, rcount, MPI_DOUBLE_COMPLEX, & - gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, 1) = msgout(:) -#endif - CALL timestop(handle) - END SUBROUTINE mp_allgather_z12 - - SUBROUTINE mp_allgather_z23(msgout, msgin, gid) - !! Gathers matrix data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_z12 - - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:, :) - !! Rank-2 data to send - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :) - TYPE(mp_comm_type), INTENT(IN) :: gid + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_z23' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:, :)) + rcount = scount + CALL MPI_ALLGATHER(msgout, scount, MPI_DOUBLE_COMPLEX, & + msgin, rcount, MPI_DOUBLE_COMPLEX, & + gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, :, 1) = msgout(:, :) +#endif + CALL timestop(handle) + END SUBROUTINE mp_allgather_z23 - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_z23' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) + SUBROUTINE mp_allgather_z34(msgout, msgin, gid) + !! Gathers rank-3 data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_z12 + + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:, :, :) + !! Rank-3 data to send + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :, :) + TYPE(mp_comm_type), INTENT(IN) :: gid -#if defined(__parallel) - scount = SIZE(msgout(:, :)) - rcount = scount - CALL MPI_ALLGATHER(msgout, scount, MPI_DOUBLE_COMPLEX, & - msgin, rcount, MPI_DOUBLE_COMPLEX, & - gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, :, 1) = msgout(:, :) -#endif - CALL timestop(handle) - END SUBROUTINE mp_allgather_z23 - - SUBROUTINE mp_allgather_z34(msgout, msgin, gid) - !! Gathers rank-3 data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_z12 - - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:, :, :) - !! Rank-3 data to send - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :, :) - TYPE(mp_comm_type), INTENT(IN) :: gid + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_z34' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:, :, :)) + rcount = scount + CALL MPI_ALLGATHER(msgout, scount, MPI_DOUBLE_COMPLEX, & + msgin, rcount, MPI_DOUBLE_COMPLEX, & + gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, :, :, 1) = msgout(:, :, :) +#endif + CALL timestop(handle) + END SUBROUTINE mp_allgather_z34 - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_z34' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) + SUBROUTINE mp_allgather_z22(msgout, msgin, gid) + !! Gathers rank-2 data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_z12 + + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:, :) + !! Rank-2 data to send + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) + TYPE(mp_comm_type), INTENT(IN) :: gid -#if defined(__parallel) - scount = SIZE(msgout(:, :, :)) - rcount = scount - CALL MPI_ALLGATHER(msgout, scount, MPI_DOUBLE_COMPLEX, & - msgin, rcount, MPI_DOUBLE_COMPLEX, & - gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, :, :, 1) = msgout(:, :, :) -#endif - CALL timestop(handle) - END SUBROUTINE mp_allgather_z34 - - SUBROUTINE mp_allgather_z22(msgout, msgin, gid) - !! Gathers rank-2 data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_z12 - - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:, :) - !! Rank-2 data to send - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) - TYPE(mp_comm_type), INTENT(IN) :: gid + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_z22' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:, :)) + rcount = scount + CALL MPI_ALLGATHER(msgout, scount, MPI_DOUBLE_COMPLEX, & + msgin, rcount, MPI_DOUBLE_COMPLEX, & + gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, :) = msgout(:, :) +#endif + CALL timestop(handle) + END SUBROUTINE mp_allgather_z22 - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_z22' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:, :)) - rcount = scount - CALL MPI_ALLGATHER(msgout, scount, MPI_DOUBLE_COMPLEX, & - msgin, rcount, MPI_DOUBLE_COMPLEX, & - gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, :) = msgout(:, :) -#endif - CALL timestop(handle) - END SUBROUTINE mp_allgather_z22 - - SUBROUTINE mp_iallgather_z11(msgout, msgin, gid, request) - !! Gathers rank-1 data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_z11 - - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:) - !! Rank-1 data to send - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(OUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_z11' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:)) - rcount = scount - CALL MPI_IALLGATHER(msgout, scount, MPI_DOUBLE_COMPLEX, & - msgin, rcount, MPI_DOUBLE_COMPLEX, & - gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) -#else - MARK_USED(gid) - msgin = msgout - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgather_z11 - - SUBROUTINE mp_iallgather_z13(msgout, msgin, gid, request) - !! Gathers rank-2 data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_z12 - - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:) - !! Rank-2 data to send - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :) - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(OUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_z13' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:)) - rcount = scount - CALL MPI_IALLGATHER(msgout, scount, MPI_DOUBLE_COMPLEX, & - msgin, rcount, MPI_DOUBLE_COMPLEX, & - gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, 1, 1) = msgout(:) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgather_z13 - - SUBROUTINE mp_iallgather_z22(msgout, msgin, gid, request) - !! Gathers rank-2 data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_z12 - - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:, :) - !! Rank-2 data to send - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(OUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_z22' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:, :)) - rcount = scount - CALL MPI_IALLGATHER(msgout, scount, MPI_DOUBLE_COMPLEX, & - msgin, rcount, MPI_DOUBLE_COMPLEX, & - gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, :) = msgout(:, :) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgather_z22 - - SUBROUTINE mp_iallgather_z24(msgout, msgin, gid, request) - !! Gathers rank-2 data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_z12 - - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:, :) - !! Rank-2 data to send - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :, :) - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(OUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_z24' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:, :)) - rcount = scount - CALL MPI_IALLGATHER(msgout, scount, MPI_DOUBLE_COMPLEX, & - msgin, rcount, MPI_DOUBLE_COMPLEX, & - gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, :, 1, 1) = msgout(:, :) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgather_z24 - - SUBROUTINE mp_iallgather_z33(msgout, msgin, gid, request) - !! Gathers rank-3 data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_z12 - - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:, :, :) - !! Rank-3 data to send - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :) - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(OUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_z33' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:, :, :)) - rcount = scount - CALL MPI_IALLGATHER(msgout, scount, MPI_DOUBLE_COMPLEX, & - msgin, rcount, MPI_DOUBLE_COMPLEX, & - gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, :, :) = msgout(:, :, :) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgather_z33 - - SUBROUTINE mp_allgatherv_zv(msgout, msgin, rcount, rdispl, gid) - !! Gathers vector data from all processes and all processes receive the - !! same data - !! - !! Data size - !! Processes can send different-sized data - !! - !! Ranks - !! The last rank counts the processes - !! - !! Offsets - !! Offsets are from 0 - !! - !! MPI mapping - !! mpi_allgather - - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:) - !! Rank-1 data to send - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) - !! Received data - INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:), rdispl(:) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Size of sent data for every process - !! Offset of sent data for every process - !! Message passing environment identifier + SUBROUTINE mp_iallgather_z11(msgout, msgin, gid, request) + !! Gathers rank-1 data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_z11 + + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:) + !! Rank-1 data to send + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(OUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_z11' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:)) + rcount = scount + CALL MPI_IALLGATHER(msgout, scount, MPI_DOUBLE_COMPLEX, & + msgin, rcount, MPI_DOUBLE_COMPLEX, & + gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) +#else + MARK_USED(gid) + msgin = msgout + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgather_z11 + + SUBROUTINE mp_iallgather_z13(msgout, msgin, gid, request) + !! Gathers rank-2 data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_z12 + + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:) + !! Rank-2 data to send + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :) + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(OUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_z13' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:)) + rcount = scount + CALL MPI_IALLGATHER(msgout, scount, MPI_DOUBLE_COMPLEX, & + msgin, rcount, MPI_DOUBLE_COMPLEX, & + gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, 1, 1) = msgout(:) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgather_z13 + + SUBROUTINE mp_iallgather_z22(msgout, msgin, gid, request) + !! Gathers rank-2 data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_z12 + + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:, :) + !! Rank-2 data to send + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(OUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_z22' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:, :)) + rcount = scount + CALL MPI_IALLGATHER(msgout, scount, MPI_DOUBLE_COMPLEX, & + msgin, rcount, MPI_DOUBLE_COMPLEX, & + gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, :) = msgout(:, :) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgather_z22 + + SUBROUTINE mp_iallgather_z24(msgout, msgin, gid, request) + !! Gathers rank-2 data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_z12 + + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:, :) + !! Rank-2 data to send + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :, :) + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(OUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_z24' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:, :)) + rcount = scount + CALL MPI_IALLGATHER(msgout, scount, MPI_DOUBLE_COMPLEX, & + msgin, rcount, MPI_DOUBLE_COMPLEX, & + gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, :, 1, 1) = msgout(:, :) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgather_z24 + + SUBROUTINE mp_iallgather_z33(msgout, msgin, gid, request) + !! Gathers rank-3 data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_z12 + + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:, :, :) + !! Rank-3 data to send + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :) + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(OUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_z33' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:, :, :)) + rcount = scount + CALL MPI_IALLGATHER(msgout, scount, MPI_DOUBLE_COMPLEX, & + msgin, rcount, MPI_DOUBLE_COMPLEX, & + gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, :, :) = msgout(:, :, :) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgather_z33 + + SUBROUTINE mp_allgatherv_zv(msgout, msgin, rcount, rdispl, gid) + !! Gathers vector data from all processes and all processes receive the + !! same data + !! + !! Data size + !! Processes can send different-sized data + !! + !! Ranks + !! The last rank counts the processes + !! + !! Offsets + !! Offsets are from 0 + !! + !! MPI mapping + !! mpi_allgather + + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:) + !! Rank-1 data to send + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) + !! Received data + INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:), rdispl(:) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Size of sent data for every process + !! Offset of sent data for every process + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgatherv_zv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout) + CALL MPI_ALLGATHERV(msgout, scount, MPI_DOUBLE_COMPLEX, msgin, rcount, & + rdispl, MPI_DOUBLE_COMPLEX, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgatherv @ "//routineN) +#else + MARK_USED(rcount) + MARK_USED(rdispl) + MARK_USED(gid) + msgin = msgout +#endif + CALL timestop(handle) + END SUBROUTINE mp_allgatherv_zv - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgatherv_zv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout) - CALL MPI_ALLGATHERV(msgout, scount, MPI_DOUBLE_COMPLEX, msgin, rcount, & - rdispl, MPI_DOUBLE_COMPLEX, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgatherv @ "//routineN) -#else - MARK_USED(rcount) - MARK_USED(rdispl) - MARK_USED(gid) - msgin = msgout -#endif - CALL timestop(handle) - END SUBROUTINE mp_allgatherv_zv - - SUBROUTINE mp_iallgatherv_zv(msgout, msgin, rcount, rdispl, gid, request) - !! Gathers vector data from all processes and all processes receive the - !! same data - !! - !! Data size - !! Processes can send different-sized data - !! - !! Ranks - !! The last rank counts the processes - !! - !! Offsets - !! Offsets are from 0 - !! - !! MPI mapping - !! mpi_allgather - - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:) - !! Rank-1 data to send - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) - !! Received data - INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:), rdispl(:) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Size of sent data for every process - !! Offset of sent data for every process - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgatherv_zv' + SUBROUTINE mp_iallgatherv_zv(msgout, msgin, rcount, rdispl, gid, request) + !! Gathers vector data from all processes and all processes receive the + !! same data + !! + !! Data size + !! Processes can send different-sized data + !! + !! Ranks + !! The last rank counts the processes + !! + !! Offsets + !! Offsets are from 0 + !! + !! MPI mapping + !! mpi_allgather + + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:) + !! Rank-1 data to send + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) + !! Received data + INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:), rdispl(:) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Size of sent data for every process + !! Offset of sent data for every process + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgatherv_zv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: scount, rsize +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout) + rsize = SIZE(rcount) + CALL mp_iallgatherv_zv_internal(msgout, scount, msgin, rsize, rcount, & + rdispl, gid, request, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgatherv @ "//routineN) +#else + MARK_USED(rcount) + MARK_USED(rdispl) + MARK_USED(gid) + msgin = msgout + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgatherv_zv - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: scount, rsize -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout) - rsize = SIZE(rcount) - CALL mp_iallgatherv_zv_internal(msgout, scount, msgin, rsize, rcount, & - rdispl, gid, request, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgatherv @ "//routineN) -#else - MARK_USED(rcount) - MARK_USED(rdispl) - MARK_USED(gid) - msgin = msgout - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgatherv_zv - - SUBROUTINE mp_iallgatherv_zv2(msgout, msgin, rcount, rdispl, gid, request) - !! Gathers vector data from all processes and all processes receive the - !! same data - !! - !! Data size - !! Processes can send different-sized data - !! - !! Ranks - !! The last rank counts the processes - !! - !! Offsets - !! Offsets are from 0 - !! - !! MPI mapping - !! mpi_allgather - - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:) - !! Rank-1 data to send - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) - !! Received data - INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:, :), rdispl(:, :) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Size of sent data for every process - !! Offset of sent data for every process - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgatherv_zv2' + SUBROUTINE mp_iallgatherv_zv2(msgout, msgin, rcount, rdispl, gid, request) + !! Gathers vector data from all processes and all processes receive the + !! same data + !! + !! Data size + !! Processes can send different-sized data + !! + !! Ranks + !! The last rank counts the processes + !! + !! Offsets + !! Offsets are from 0 + !! + !! MPI mapping + !! mpi_allgather + + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:) + !! Rank-1 data to send + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) + !! Received data + INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:, :), rdispl(:, :) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Size of sent data for every process + !! Offset of sent data for every process + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgatherv_zv2' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: scount, rsize +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout) + rsize = SIZE(rcount) + CALL mp_iallgatherv_zv_internal(msgout, scount, msgin, rsize, rcount, & + rdispl, gid, request, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgatherv @ "//routineN) +#else + MARK_USED(rcount) + MARK_USED(rdispl) + MARK_USED(gid) + msgin = msgout + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgatherv_zv2 - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: scount, rsize -#endif +#if defined(__parallel) + SUBROUTINE mp_iallgatherv_zv_internal(msgout, scount, msgin, rsize, rcount, rdispl, gid, request, ierr) + !! wrapper needed to deal with interfaces as present in openmpi 1.8.1 + !! the issue is with the rank of rcount and rdispl - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout) - rsize = SIZE(rcount) - CALL mp_iallgatherv_zv_internal(msgout, scount, msgin, rsize, rcount, & - rdispl, gid, request, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgatherv @ "//routineN) -#else - MARK_USED(rcount) - MARK_USED(rdispl) - MARK_USED(gid) - msgin = msgout - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgatherv_zv2 - -#if defined(__parallel) - SUBROUTINE mp_iallgatherv_zv_internal(msgout, scount, msgin, rsize, rcount, rdispl, gid, request, ierr) - !! wrapper needed to deal with interfaces as present in openmpi 1.8.1 - !! the issue is with the rank of rcount and rdispl - - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:) - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) - INTEGER, INTENT(IN) :: rsize - INTEGER, INTENT(IN) :: rcount(rsize), rdispl(rsize), scount - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(INOUT) :: request - INTEGER, INTENT(INOUT) :: ierr - - CALL MPI_IALLGATHERV(msgout, scount, MPI_DOUBLE_COMPLEX, msgin, rcount, & - rdispl, MPI_DOUBLE_COMPLEX, gid%handle, request%handle, ierr) - - END SUBROUTINE mp_iallgatherv_zv_internal -#endif - - SUBROUTINE mp_sendrecv_zv(msgin, dest, msgout, source, comm) - !! Sends and receives vector data - - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgin(:) - !! Data to send - INTEGER, INTENT(IN) :: dest - !! Process to send data to - COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgout(:) - !! Received data - INTEGER, INTENT(IN) :: source - !! Process from which to receive - TYPE(mp_comm_type), INTENT(IN) :: comm - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sendrecv_zv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen_in, msglen_out, & - recv_tag, send_tag -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - msglen_in = SIZE(msgin) - msglen_out = SIZE(msgout) - send_tag = 0 ! cannot think of something better here, this might be dangerous - recv_tag = 0 ! cannot think of something better here, this might be dangerous - CALL mpi_sendrecv(msgin, msglen_in, MPI_DOUBLE_COMPLEX, dest, send_tag, msgout, & - msglen_out, MPI_DOUBLE_COMPLEX, source, recv_tag, comm%handle, MPI_STATUS_IGNORE, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_sendrecv @ "//routineN) - CALL add_perf(perf_id=7, & - msg_size=(msglen_in + msglen_out)*(2*real_8_size)/2) -#else - MARK_USED(dest) - MARK_USED(source) - MARK_USED(comm) - msgout = msgin -#endif - CALL timestop(handle) - END SUBROUTINE mp_sendrecv_zv - - SUBROUTINE mp_isendrecv_z (msgin, dest, msgout, source, comm, send_request, & - recv_request, tag) - !! Non-blocking send and receive of a scalar - !! - !! Implementation - !! Calls mpi_isend and mpi_irecv. - - COMPLEX(kind=real_8) :: msgin - !! Scalar data to send - INTEGER, INTENT(IN) :: dest - !! Which process to send to - COMPLEX(kind=real_8) :: msgout - !! Receive data into this pointer - INTEGER, INTENT(IN) :: source - !! Process to receive from - TYPE(mp_comm_type), INTENT(IN) :: comm - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(out) :: send_request, recv_request - !! Request handle for the send - !! Request handle for the receive - INTEGER, INTENT(in), OPTIONAL :: tag - !! tag to differentiate requests - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isendrecv_z' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: my_tag -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - my_tag = 0 - IF (PRESENT(tag)) my_tag = tag - - CALL mpi_irecv(msgout, 1, MPI_DOUBLE_COMPLEX, source, my_tag, & - comm%handle, recv_request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) - - CALL mpi_isend(msgin, 1, MPI_DOUBLE_COMPLEX, dest, my_tag, & - comm%handle, send_request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) - - CALL add_perf(perf_id=8, msg_size=2*(2*real_8_size)) -#else - MARK_USED(dest) - MARK_USED(source) - MARK_USED(comm) - MARK_USED(tag) - send_request = mp_request_null - recv_request = mp_request_null - msgout = msgin -#endif - CALL timestop(handle) - END SUBROUTINE mp_isendrecv_z - - SUBROUTINE mp_isendrecv_zv(msgin, dest, msgout, source, comm, send_request, & - recv_request, tag) - !! Non-blocking send and receive of a vector - !! - !! Implementation - !! Calls mpi_isend and mpi_irecv. - !! @note - !! arrays can be pointers or assumed shape, but they must be contiguous! + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgout(:) + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgin(:) + INTEGER, INTENT(IN) :: rsize + INTEGER, INTENT(IN) :: rcount(rsize), rdispl(rsize), scount + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(INOUT) :: request + INTEGER, INTENT(INOUT) :: ierr + + CALL MPI_IALLGATHERV(msgout, scount, MPI_DOUBLE_COMPLEX, msgin, rcount, & + rdispl, MPI_DOUBLE_COMPLEX, gid%handle, request%handle, ierr) + + END SUBROUTINE mp_iallgatherv_zv_internal +#endif + + SUBROUTINE mp_sendrecv_zv(msgin, dest, msgout, source, comm) + !! Sends and receives vector data + + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(IN) :: msgin(:) + !! Data to send + INTEGER, INTENT(IN) :: dest + !! Process to send data to + COMPLEX(kind=real_8), CONTIGUOUS, INTENT(OUT) :: msgout(:) + !! Received data + INTEGER, INTENT(IN) :: source + !! Process from which to receive + TYPE(mp_comm_type), INTENT(IN) :: comm + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sendrecv_zv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen_in, msglen_out, & + recv_tag, send_tag +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + msglen_in = SIZE(msgin) + msglen_out = SIZE(msgout) + send_tag = 0 ! cannot think of something better here, this might be dangerous + recv_tag = 0 ! cannot think of something better here, this might be dangerous + CALL mpi_sendrecv(msgin, msglen_in, MPI_DOUBLE_COMPLEX, dest, send_tag, msgout, & + msglen_out, MPI_DOUBLE_COMPLEX, source, recv_tag, comm%handle, MPI_STATUS_IGNORE, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_sendrecv @ "//routineN) + CALL add_perf(perf_id=7, & + msg_size=(msglen_in + msglen_out)*(2*real_8_size)/2) +#else + MARK_USED(dest) + MARK_USED(source) + MARK_USED(comm) + msgout = msgin +#endif + CALL timestop(handle) + END SUBROUTINE mp_sendrecv_zv + + SUBROUTINE mp_isendrecv_z (msgin, dest, msgout, source, comm, send_request, & + recv_request, tag) + !! Non-blocking send and receive of a scalar + !! + !! Implementation + !! Calls mpi_isend and mpi_irecv. + + COMPLEX(kind=real_8) :: msgin + !! Scalar data to send + INTEGER, INTENT(IN) :: dest + !! Which process to send to + COMPLEX(kind=real_8) :: msgout + !! Receive data into this pointer + INTEGER, INTENT(IN) :: source + !! Process to receive from + TYPE(mp_comm_type), INTENT(IN) :: comm + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(out) :: send_request, recv_request + !! Request handle for the send + !! Request handle for the receive + INTEGER, INTENT(in), OPTIONAL :: tag + !! tag to differentiate requests + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isendrecv_z' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: my_tag +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + my_tag = 0 + IF (PRESENT(tag)) my_tag = tag + + CALL mpi_irecv(msgout, 1, MPI_DOUBLE_COMPLEX, source, my_tag, & + comm%handle, recv_request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) + + CALL mpi_isend(msgin, 1, MPI_DOUBLE_COMPLEX, dest, my_tag, & + comm%handle, send_request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) + + CALL add_perf(perf_id=8, msg_size=2*(2*real_8_size)) +#else + MARK_USED(dest) + MARK_USED(source) + MARK_USED(comm) + MARK_USED(tag) + send_request = mp_request_null + recv_request = mp_request_null + msgout = msgin +#endif + CALL timestop(handle) + END SUBROUTINE mp_isendrecv_z + + SUBROUTINE mp_isendrecv_zv(msgin, dest, msgout, source, comm, send_request, & + recv_request, tag) + !! Non-blocking send and receive of a vector + !! + !! Implementation + !! Calls mpi_isend and mpi_irecv. + !! @note + !! arrays can be pointers or assumed shape, but they must be contiguous! + + COMPLEX(kind=real_8), CONTIGUOUS, DIMENSION(:) :: msgin + !! Vector data to send + INTEGER, INTENT(IN) :: dest + !! Which process to send to + COMPLEX(kind=real_8), CONTIGUOUS, DIMENSION(:) :: msgout + !! Receive data into this pointer + INTEGER, INTENT(IN) :: source + !! Process to receive from + TYPE(mp_comm_type), INTENT(IN) :: comm + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(out) :: send_request, recv_request + !! Request handle for the send + !! Request handle for the receive + INTEGER, INTENT(in), OPTIONAL :: tag + !! tag to differentiate requests + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isendrecv_zv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, my_tag + COMPLEX(kind=real_8) :: foo +#endif - COMPLEX(kind=real_8), CONTIGUOUS, DIMENSION(:) :: msgin - !! Vector data to send - INTEGER, INTENT(IN) :: dest - !! Which process to send to - COMPLEX(kind=real_8), CONTIGUOUS, DIMENSION(:) :: msgout - !! Receive data into this pointer - INTEGER, INTENT(IN) :: source - !! Process to receive from - TYPE(mp_comm_type), INTENT(IN) :: comm - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(out) :: send_request, recv_request - !! Request handle for the send - !! Request handle for the receive - INTEGER, INTENT(in), OPTIONAL :: tag - !! tag to differentiate requests - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isendrecv_zv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, my_tag - COMPLEX(kind=real_8) :: foo -#endif - - ierr = 0 - CALL timeset(routineN, handle) + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + my_tag = 0 + IF (PRESENT(tag)) my_tag = tag + + msglen = SIZE(msgout, 1) + IF (msglen > 0) THEN + CALL mpi_irecv(msgout, msglen, MPI_DOUBLE_COMPLEX, source, my_tag, & + comm%handle, recv_request%handle, ierr) + ELSE + CALL mpi_irecv(foo, msglen, MPI_DOUBLE_COMPLEX, source, my_tag, & + comm%handle, recv_request%handle, ierr) + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) + + msglen = SIZE(msgin, 1) + IF (msglen > 0) THEN + CALL mpi_isend(msgin, msglen, MPI_DOUBLE_COMPLEX, dest, my_tag, & + comm%handle, send_request%handle, ierr) + ELSE + CALL mpi_isend(foo, msglen, MPI_DOUBLE_COMPLEX, dest, my_tag, & + comm%handle, send_request%handle, ierr) + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) -#if defined(__parallel) - my_tag = 0 - IF (PRESENT(tag)) my_tag = tag - - msglen = SIZE(msgout, 1) - IF (msglen > 0) THEN - CALL mpi_irecv(msgout, msglen, MPI_DOUBLE_COMPLEX, source, my_tag, & - comm%handle, recv_request%handle, ierr) - ELSE - CALL mpi_irecv(foo, msglen, MPI_DOUBLE_COMPLEX, source, my_tag, & - comm%handle, recv_request%handle, ierr) - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) + msglen = (msglen + SIZE(msgout, 1) + 1)/2 + CALL add_perf(perf_id=8, msg_size=msglen*(2*real_8_size)) +#else + MARK_USED(dest) + MARK_USED(source) + MARK_USED(comm) + MARK_USED(tag) + send_request = mp_request_null + recv_request = mp_request_null + msgout = msgin +#endif + CALL timestop(handle) + END SUBROUTINE mp_isendrecv_zv - msglen = SIZE(msgin, 1) - IF (msglen > 0) THEN - CALL mpi_isend(msgin, msglen, MPI_DOUBLE_COMPLEX, dest, my_tag, & - comm%handle, send_request%handle, ierr) - ELSE - CALL mpi_isend(foo, msglen, MPI_DOUBLE_COMPLEX, dest, my_tag, & - comm%handle, send_request%handle, ierr) - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) - - msglen = (msglen + SIZE(msgout, 1) + 1)/2 - CALL add_perf(perf_id=8, msg_size=msglen*(2*real_8_size)) -#else - MARK_USED(dest) - MARK_USED(source) - MARK_USED(comm) - MARK_USED(tag) - send_request = mp_request_null - recv_request = mp_request_null - msgout = msgin -#endif - CALL timestop(handle) - END SUBROUTINE mp_isendrecv_zv + SUBROUTINE mp_isend_zv(msgin, dest, comm, request, tag) + !! Non-blocking send of vector data + !! @note see mp_isendrecv_zv + !! @endnote + !! @note + !! arrays can be pointers or assumed shape, but they must be contiguous! + + COMPLEX(kind=real_8), CONTIGUOUS, DIMENSION(:) :: msgin + INTEGER, INTENT(IN) :: dest + TYPE(mp_comm_type), INTENT(IN) :: comm + TYPE(mp_request_type), INTENT(out) :: request + INTEGER, INTENT(in), OPTIONAL :: tag + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isend_zv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, my_tag + COMPLEX(kind=real_8) :: foo(1) +#endif + + ierr = 0 + CALL timeset(routineN, handle) - SUBROUTINE mp_isend_zv(msgin, dest, comm, request, tag) - !! Non-blocking send of vector data - !! @note see mp_isendrecv_zv - !! @endnote - !! @note - !! arrays can be pointers or assumed shape, but they must be contiguous! - - COMPLEX(kind=real_8), CONTIGUOUS, DIMENSION(:) :: msgin - INTEGER, INTENT(IN) :: dest - TYPE(mp_comm_type), INTENT(IN) :: comm - TYPE(mp_request_type), INTENT(out) :: request - INTEGER, INTENT(in), OPTIONAL :: tag - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isend_zv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, my_tag - COMPLEX(kind=real_8) :: foo(1) -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - my_tag = 0 - IF (PRESENT(tag)) my_tag = tag +#if defined(__parallel) + my_tag = 0 + IF (PRESENT(tag)) my_tag = tag + + msglen = SIZE(msgin) + IF (msglen > 0) THEN + CALL mpi_isend(msgin, msglen, MPI_DOUBLE_COMPLEX, dest, my_tag, & + comm%handle, request%handle, ierr) + ELSE + CALL mpi_isend(foo, msglen, MPI_DOUBLE_COMPLEX, dest, my_tag, & + comm%handle, request%handle, ierr) + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) + + CALL add_perf(perf_id=11, msg_size=msglen*(2*real_8_size)) +#else + MARK_USED(msgin) + MARK_USED(dest) + MARK_USED(comm) + MARK_USED(request) + MARK_USED(tag) + ierr = 1 + request = mp_request_null + CALL mp_stop(ierr, "mp_isend called in non parallel case") +#endif + CALL timestop(handle) + END SUBROUTINE mp_isend_zv - msglen = SIZE(msgin) - IF (msglen > 0) THEN - CALL mpi_isend(msgin, msglen, MPI_DOUBLE_COMPLEX, dest, my_tag, & - comm%handle, request%handle, ierr) - ELSE - CALL mpi_isend(foo, msglen, MPI_DOUBLE_COMPLEX, dest, my_tag, & - comm%handle, request%handle, ierr) - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) - - CALL add_perf(perf_id=11, msg_size=msglen*(2*real_8_size)) -#else - MARK_USED(msgin) - MARK_USED(dest) - MARK_USED(comm) - MARK_USED(request) - MARK_USED(tag) - ierr = 1 - request = mp_request_null - CALL mp_stop(ierr, "mp_isend called in non parallel case") -#endif - CALL timestop(handle) - END SUBROUTINE mp_isend_zv - - SUBROUTINE mp_isend_zm2(msgin, dest, comm, request, tag) - !! Non-blocking send of matrix data - !! @note see mp_isendrecv_zv - !! @endnote - !! @note see mp_isend_zv - !! @endnote - !! @note - !! arrays can be pointers or assumed shape, but they must be contiguous! - - COMPLEX(kind=real_8), DIMENSION(:, :), CONTIGUOUS :: msgin - INTEGER, INTENT(IN) :: dest - TYPE(mp_comm_type), INTENT(IN) :: comm - TYPE(mp_request_type), INTENT(out) :: request - INTEGER, INTENT(in), OPTIONAL :: tag - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isend_zm2' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, my_tag - COMPLEX(kind=real_8) :: foo(1) -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - my_tag = 0 - IF (PRESENT(tag)) my_tag = tag + SUBROUTINE mp_isend_zm2(msgin, dest, comm, request, tag) + !! Non-blocking send of matrix data + !! @note see mp_isendrecv_zv + !! @endnote + !! @note see mp_isend_zv + !! @endnote + !! @note + !! arrays can be pointers or assumed shape, but they must be contiguous! + + COMPLEX(kind=real_8), DIMENSION(:, :), CONTIGUOUS :: msgin + INTEGER, INTENT(IN) :: dest + TYPE(mp_comm_type), INTENT(IN) :: comm + TYPE(mp_request_type), INTENT(out) :: request + INTEGER, INTENT(in), OPTIONAL :: tag + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isend_zm2' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, my_tag + COMPLEX(kind=real_8) :: foo(1) +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + my_tag = 0 + IF (PRESENT(tag)) my_tag = tag + + msglen = SIZE(msgin, 1)*SIZE(msgin, 2) + IF (msglen > 0) THEN + CALL mpi_isend(msgin, msglen, MPI_DOUBLE_COMPLEX, dest, my_tag, & + comm%handle, request%handle, ierr) + ELSE + CALL mpi_isend(foo, msglen, MPI_DOUBLE_COMPLEX, dest, my_tag, & + comm%handle, request%handle, ierr) + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) + + CALL add_perf(perf_id=11, msg_size=msglen*(2*real_8_size)) +#else + MARK_USED(msgin) + MARK_USED(dest) + MARK_USED(comm) + MARK_USED(request) + MARK_USED(tag) + ierr = 1 + request = mp_request_null + CALL mp_stop(ierr, "mp_isend called in non parallel case") +#endif + CALL timestop(handle) + END SUBROUTINE mp_isend_zm2 - msglen = SIZE(msgin, 1)*SIZE(msgin, 2) - IF (msglen > 0) THEN - CALL mpi_isend(msgin, msglen, MPI_DOUBLE_COMPLEX, dest, my_tag, & - comm%handle, request%handle, ierr) - ELSE - CALL mpi_isend(foo, msglen, MPI_DOUBLE_COMPLEX, dest, my_tag, & - comm%handle, request%handle, ierr) - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) - - CALL add_perf(perf_id=11, msg_size=msglen*(2*real_8_size)) -#else - MARK_USED(msgin) - MARK_USED(dest) - MARK_USED(comm) - MARK_USED(request) - MARK_USED(tag) - ierr = 1 - request = mp_request_null - CALL mp_stop(ierr, "mp_isend called in non parallel case") -#endif - CALL timestop(handle) - END SUBROUTINE mp_isend_zm2 + SUBROUTINE mp_irecv_zv(msgout, source, comm, request, tag) + !! Non-blocking receive of vector data + !! @note see mp_isendrecv_zv + !! @endnote + !! @note + !! arrays can be pointers or assumed shape, but they must be contiguous! + + COMPLEX(kind=real_8), CONTIGUOUS, DIMENSION(:) :: msgout + INTEGER, INTENT(IN) :: source + TYPE(mp_comm_type), INTENT(IN) :: comm + TYPE(mp_request_type), INTENT(out) :: request + INTEGER, INTENT(in), OPTIONAL :: tag + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_irecv_zv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, my_tag + COMPLEX(kind=real_8) :: foo(1) +#endif + + ierr = 0 + CALL timeset(routineN, handle) - SUBROUTINE mp_irecv_zv(msgout, source, comm, request, tag) - !! Non-blocking receive of vector data - !! @note see mp_isendrecv_zv - !! @endnote - !! @note - !! arrays can be pointers or assumed shape, but they must be contiguous! - - COMPLEX(kind=real_8), CONTIGUOUS, DIMENSION(:) :: msgout - INTEGER, INTENT(IN) :: source - TYPE(mp_comm_type), INTENT(IN) :: comm - TYPE(mp_request_type), INTENT(out) :: request - INTEGER, INTENT(in), OPTIONAL :: tag - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_irecv_zv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, my_tag - COMPLEX(kind=real_8) :: foo(1) -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - my_tag = 0 - IF (PRESENT(tag)) my_tag = tag - - msglen = SIZE(msgout) - IF (msglen > 0) THEN - CALL mpi_irecv(msgout, msglen, MPI_DOUBLE_COMPLEX, source, my_tag, & - comm%handle, request%handle, ierr) - ELSE - CALL mpi_irecv(foo, msglen, MPI_DOUBLE_COMPLEX, source, my_tag, & - comm%handle, request%handle, ierr) - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) - - CALL add_perf(perf_id=12, msg_size=msglen*(2*real_8_size)) -#else - DBCSR_ABORT("mp_irecv called in non parallel case") - MARK_USED(msgout) - MARK_USED(source) - MARK_USED(comm) - MARK_USED(request) - MARK_USED(tag) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_irecv_zv - - SUBROUTINE mp_irecv_zm2(msgout, source, comm, request, tag) - !! Non-blocking receive of matrix data - !! @note see mp_isendrecv_zv - !! @endnote - !! @note see mp_irecv_zv - !! @endnote - !! @note - !! arrays can be pointers or assumed shape, but they must be contiguous! - - COMPLEX(kind=real_8), DIMENSION(:, :), CONTIGUOUS :: msgout - INTEGER, INTENT(IN) :: source - TYPE(mp_comm_type), INTENT(IN) :: comm - TYPE(mp_request_type), INTENT(out) :: request - INTEGER, INTENT(in), OPTIONAL :: tag - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_irecv_zm2' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, my_tag - COMPLEX(kind=real_8) :: foo(1) -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - my_tag = 0 - IF (PRESENT(tag)) my_tag = tag - - msglen = SIZE(msgout, 1)*SIZE(msgout, 2) - IF (msglen > 0) THEN - CALL mpi_irecv(msgout, msglen, MPI_DOUBLE_COMPLEX, source, my_tag, & - comm%handle, request%handle, ierr) - ELSE - CALL mpi_irecv(foo, msglen, MPI_DOUBLE_COMPLEX, source, my_tag, & - comm%handle, request%handle, ierr) - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) +#if defined(__parallel) + my_tag = 0 + IF (PRESENT(tag)) my_tag = tag + + msglen = SIZE(msgout) + IF (msglen > 0) THEN + CALL mpi_irecv(msgout, msglen, MPI_DOUBLE_COMPLEX, source, my_tag, & + comm%handle, request%handle, ierr) + ELSE + CALL mpi_irecv(foo, msglen, MPI_DOUBLE_COMPLEX, source, my_tag, & + comm%handle, request%handle, ierr) + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) + + CALL add_perf(perf_id=12, msg_size=msglen*(2*real_8_size)) +#else + DBCSR_ABORT("mp_irecv called in non parallel case") + MARK_USED(msgout) + MARK_USED(source) + MARK_USED(comm) + MARK_USED(request) + MARK_USED(tag) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_irecv_zv + + SUBROUTINE mp_irecv_zm2(msgout, source, comm, request, tag) + !! Non-blocking receive of matrix data + !! @note see mp_isendrecv_zv + !! @endnote + !! @note see mp_irecv_zv + !! @endnote + !! @note + !! arrays can be pointers or assumed shape, but they must be contiguous! + + COMPLEX(kind=real_8), DIMENSION(:, :), CONTIGUOUS :: msgout + INTEGER, INTENT(IN) :: source + TYPE(mp_comm_type), INTENT(IN) :: comm + TYPE(mp_request_type), INTENT(out) :: request + INTEGER, INTENT(in), OPTIONAL :: tag + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_irecv_zm2' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, my_tag + COMPLEX(kind=real_8) :: foo(1) +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + my_tag = 0 + IF (PRESENT(tag)) my_tag = tag + + msglen = SIZE(msgout, 1)*SIZE(msgout, 2) + IF (msglen > 0) THEN + CALL mpi_irecv(msgout, msglen, MPI_DOUBLE_COMPLEX, source, my_tag, & + comm%handle, request%handle, ierr) + ELSE + CALL mpi_irecv(foo, msglen, MPI_DOUBLE_COMPLEX, source, my_tag, & + comm%handle, request%handle, ierr) + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) + + CALL add_perf(perf_id=12, msg_size=msglen*(2*real_8_size)) +#else + MARK_USED(msgout) + MARK_USED(source) + MARK_USED(comm) + MARK_USED(request) + MARK_USED(tag) + request = mp_request_null + DBCSR_ABORT("mp_irecv called in non parallel case") +#endif + CALL timestop(handle) + END SUBROUTINE mp_irecv_zm2 + + SUBROUTINE mp_win_create_zv(base, comm, win) + !! Window initialization function for vector data + !! @note + !! arrays can be pointers or assumed shape, but they must be contiguous! + + COMPLEX(kind=real_8), CONTIGUOUS, DIMENSION(:) :: base + TYPE(mp_comm_type), INTENT(IN) :: comm + TYPE(mp_win_type), INTENT(OUT) :: win + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_win_create_zv' - CALL add_perf(perf_id=12, msg_size=msglen*(2*real_8_size)) -#else - MARK_USED(msgout) - MARK_USED(source) - MARK_USED(comm) - MARK_USED(request) - MARK_USED(tag) - request = mp_request_null - DBCSR_ABORT("mp_irecv called in non parallel case") -#endif - CALL timestop(handle) - END SUBROUTINE mp_irecv_zm2 - - SUBROUTINE mp_win_create_zv(base, comm, win) - !! Window initialization function for vector data - !! @note - !! arrays can be pointers or assumed shape, but they must be contiguous! - - COMPLEX(kind=real_8), CONTIGUOUS, DIMENSION(:) :: base - TYPE(mp_comm_type), INTENT(IN) :: comm - TYPE(mp_win_type), INTENT(OUT) :: win - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_win_create_zv' - - INTEGER :: ierr, handle -#if defined(__parallel) - INTEGER(kind=mpi_address_kind) :: len - COMPLEX(kind=real_8) :: foo(1) -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - - len = SIZE(base)*(2*real_8_size) - IF (len > 0) THEN - CALL mpi_win_create(base, len, (2*real_8_size), MPI_INFO_NULL, comm%handle, win%handle, ierr) - ELSE - CALL mpi_win_create(foo, len, (2*real_8_size), MPI_INFO_NULL, comm%handle, win%handle, ierr) - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_win_create @ "//routineN) -#else - MARK_USED(base) - MARK_USED(comm) - win = mp_win_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_win_create_zv - - SUBROUTINE mp_rget_zv(base, source, win, win_data, myproc, disp, request, & - origin_datatype, target_datatype) - !! Single-sided get function for vector data - !! @note - !! arrays can be pointers or assumed shape, but they must be contiguous! - - COMPLEX(kind=real_8), CONTIGUOUS, DIMENSION(:) :: base - INTEGER, INTENT(IN) :: source - TYPE(mp_win_type), INTENT(IN) :: win - COMPLEX(kind=real_8), CONTIGUOUS, DIMENSION(:) :: win_data - INTEGER, INTENT(IN), OPTIONAL :: myproc, disp - TYPE(mp_request_type), INTENT(OUT) :: request - TYPE(mp_type_descriptor_type), INTENT(IN), OPTIONAL :: origin_datatype, target_datatype - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_rget_zv' - - INTEGER :: ierr, handle -#if defined(__parallel) - INTEGER :: len, & - origin_len, target_len - LOGICAL :: do_local_copy - INTEGER(kind=mpi_address_kind) :: disp_aint - MPI_DATA_TYPE :: handle_origin_datatype, handle_target_datatype -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - len = SIZE(base) - disp_aint = 0 - IF (PRESENT(disp)) THEN - disp_aint = INT(disp, KIND=mpi_address_kind) - END IF - handle_origin_datatype = MPI_DOUBLE_COMPLEX - origin_len = len - IF (PRESENT(origin_datatype)) THEN - handle_origin_datatype = origin_datatype%type_handle - origin_len = 1 - END IF - handle_target_datatype = MPI_DOUBLE_COMPLEX - target_len = len - IF (PRESENT(target_datatype)) THEN - handle_target_datatype = target_datatype%type_handle - target_len = 1 - END IF - IF (len > 0) THEN - do_local_copy = .FALSE. -#if !defined(__DBCSR_DISABLE_RMA_LOCAL_COPY) - IF (PRESENT(myproc) .AND. .NOT. PRESENT(origin_datatype) .AND. .NOT. PRESENT(target_datatype)) THEN - IF (myproc .EQ. source) do_local_copy = .TRUE. - END IF -#else - MARK_USED(myproc) -#endif - IF (do_local_copy) THEN -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(base,win_data,disp_aint,len) -#endif - base(:) = win_data(disp_aint + 1:disp_aint + len) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif - request = mp_request_null - ierr = 0 - ELSE - CALL mpi_rget(base, origin_len, handle_origin_datatype, source, disp_aint, & - target_len, handle_target_datatype, win%handle, request%handle, ierr) - END IF - ELSE - request = mp_request_null - ierr = 0 - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_rget @ "//routineN) + INTEGER :: ierr, handle +#if defined(__parallel) + INTEGER(kind=mpi_address_kind) :: len + COMPLEX(kind=real_8) :: foo(1) +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + + len = SIZE(base)*(2*real_8_size) + IF (len > 0) THEN + CALL mpi_win_create(base, len, (2*real_8_size), MPI_INFO_NULL, comm%handle, win%handle, ierr) + ELSE + CALL mpi_win_create(foo, len, (2*real_8_size), MPI_INFO_NULL, comm%handle, win%handle, ierr) + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_win_create @ "//routineN) +#else + MARK_USED(base) + MARK_USED(comm) + win = mp_win_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_win_create_zv + + SUBROUTINE mp_rget_zv(base, source, win, win_data, myproc, disp, request, & + origin_datatype, target_datatype) + !! Single-sided get function for vector data + !! @note + !! arrays can be pointers or assumed shape, but they must be contiguous! + + COMPLEX(kind=real_8), CONTIGUOUS, DIMENSION(:) :: base + INTEGER, INTENT(IN) :: source + TYPE(mp_win_type), INTENT(IN) :: win + COMPLEX(kind=real_8), CONTIGUOUS, DIMENSION(:) :: win_data + INTEGER, INTENT(IN), OPTIONAL :: myproc, disp + TYPE(mp_request_type), INTENT(OUT) :: request + TYPE(mp_type_descriptor_type), INTENT(IN), OPTIONAL :: origin_datatype, target_datatype + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_rget_zv' + + INTEGER :: ierr, handle +#if defined(__parallel) + INTEGER :: len, & + origin_len, target_len + LOGICAL :: do_local_copy + INTEGER(kind=mpi_address_kind) :: disp_aint + MPI_DATA_TYPE :: handle_origin_datatype, handle_target_datatype +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + len = SIZE(base) + disp_aint = 0 + IF (PRESENT(disp)) THEN + disp_aint = INT(disp, KIND=mpi_address_kind) + END IF + handle_origin_datatype = MPI_DOUBLE_COMPLEX + origin_len = len + IF (PRESENT(origin_datatype)) THEN + handle_origin_datatype = origin_datatype%type_handle + origin_len = 1 + END IF + handle_target_datatype = MPI_DOUBLE_COMPLEX + target_len = len + IF (PRESENT(target_datatype)) THEN + handle_target_datatype = target_datatype%type_handle + target_len = 1 + END IF + IF (len > 0) THEN + do_local_copy = .FALSE. +#if !defined(__DBCSR_DISABLE_RMA_LOCAL_COPY) + IF (PRESENT(myproc) .AND. .NOT. PRESENT(origin_datatype) .AND. .NOT. PRESENT(target_datatype)) THEN + IF (myproc .EQ. source) do_local_copy = .TRUE. + END IF +#else + MARK_USED(myproc) +#endif + IF (do_local_copy) THEN + base(:) = win_data(disp_aint + 1:disp_aint + len) + request = mp_request_null + ierr = 0 + ELSE + CALL mpi_rget(base, origin_len, handle_origin_datatype, source, disp_aint, & + target_len, handle_target_datatype, win%handle, request%handle, ierr) + END IF + ELSE + request = mp_request_null + ierr = 0 + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_rget @ "//routineN) + + CALL add_perf(perf_id=25, msg_size=SIZE(base)*(2*real_8_size)) +#else + MARK_USED(source) + MARK_USED(win) + MARK_USED(myproc) + MARK_USED(origin_datatype) + MARK_USED(target_datatype) + + request = mp_request_null + ! + IF (PRESENT(disp)) THEN + base(:) = win_data(disp + 1:disp + SIZE(base)) + ELSE + base(:) = win_data(:SIZE(base)) + END IF + +#endif + CALL timestop(handle) + END SUBROUTINE mp_rget_zv + +! ***************************************************************************** +! *************************************************************************** + FUNCTION mp_type_indexed_make_z (count, lengths, displs) & + RESULT(type_descriptor) + INTEGER, INTENT(IN) :: count + INTEGER, DIMENSION(1:count), INTENT(IN), TARGET :: lengths, displs + TYPE(mp_type_descriptor_type) :: type_descriptor + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_type_indexed_make_z' - CALL add_perf(perf_id=25, msg_size=SIZE(base)*(2*real_8_size)) -#else - MARK_USED(source) - MARK_USED(win) - MARK_USED(myproc) - MARK_USED(origin_datatype) - MARK_USED(target_datatype) - - request = mp_request_null - ! - IF (PRESENT(disp)) THEN - base(:) = win_data(disp + 1:disp + SIZE(base)) - ELSE - base(:) = win_data(:SIZE(base)) - END IF - -#endif - CALL timestop(handle) - END SUBROUTINE mp_rget_zv - -! ***************************************************************************** -! *************************************************************************** - FUNCTION mp_type_indexed_make_z (count, lengths, displs) & - RESULT(type_descriptor) - INTEGER, INTENT(IN) :: count - INTEGER, DIMENSION(1:count), INTENT(IN), TARGET :: lengths, displs - TYPE(mp_type_descriptor_type) :: type_descriptor - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_type_indexed_make_z' + INTEGER :: ierr, handle + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + CALL mpi_type_indexed(count, lengths, displs, MPI_DOUBLE_COMPLEX, & + type_descriptor%type_handle, ierr) + IF (ierr /= 0) & + DBCSR_ABORT("MPI_Type_Indexed @ "//routineN) + CALL mpi_type_commit(type_descriptor%type_handle, ierr) + IF (ierr /= 0) & + DBCSR_ABORT("MPI_Type_commit @ "//routineN) +#else + type_descriptor%type_handle = 7 +#endif + type_descriptor%length = count + NULLIFY (type_descriptor%subtype) + type_descriptor%vector_descriptor(1:2) = 1 + type_descriptor%has_indexing = .TRUE. + type_descriptor%index_descriptor%index => lengths + type_descriptor%index_descriptor%chunks => displs + + CALL timestop(handle) + + END FUNCTION mp_type_indexed_make_z + + SUBROUTINE mp_allocate_z (DATA, len, stat) + !! Allocates special parallel memory - INTEGER :: ierr, handle - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - CALL mpi_type_indexed(count, lengths, displs, MPI_DOUBLE_COMPLEX, & - type_descriptor%type_handle, ierr) - IF (ierr /= 0) & - DBCSR_ABORT("MPI_Type_Indexed @ "//routineN) - CALL mpi_type_commit(type_descriptor%type_handle, ierr) - IF (ierr /= 0) & - DBCSR_ABORT("MPI_Type_commit @ "//routineN) -#else - type_descriptor%type_handle = 7 -#endif - type_descriptor%length = count - NULLIFY (type_descriptor%subtype) - type_descriptor%vector_descriptor(1:2) = 1 - type_descriptor%has_indexing = .TRUE. - type_descriptor%index_descriptor%index => lengths - type_descriptor%index_descriptor%chunks => displs - - CALL timestop(handle) - - END FUNCTION mp_type_indexed_make_z - - SUBROUTINE mp_allocate_z (DATA, len, stat) - !! Allocates special parallel memory - - COMPLEX(kind=real_8), DIMENSION(:), POINTER, CONTIGUOUS :: DATA - !! pointer to integer array to allocate - INTEGER, INTENT(IN) :: len - !! number of integers to allocate - INTEGER, INTENT(OUT), OPTIONAL :: stat - !! allocation status result + COMPLEX(kind=real_8), DIMENSION(:), POINTER, CONTIGUOUS :: DATA + !! pointer to integer array to allocate + INTEGER, INTENT(IN) :: len + !! number of integers to allocate + INTEGER, INTENT(OUT), OPTIONAL :: stat + !! allocation status result + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allocate_z' + + INTEGER :: ierr, handle + + CALL timeset(routineN, handle) + + ierr = 0 +#if defined(__parallel) + NULLIFY (DATA) + CALL mp_alloc_mem(DATA, len, stat=ierr) + IF (ierr /= 0 .AND. .NOT. PRESENT(stat)) & + CALL mp_stop(ierr, "mpi_alloc_mem @ "//routineN) +#else + ALLOCATE (DATA(len), stat=ierr) + IF (ierr /= 0 .AND. .NOT. PRESENT(stat)) & + CALL mp_stop(ierr, "ALLOCATE @ "//routineN) +#endif + IF (PRESENT(stat)) stat = ierr + CALL timestop(handle) + END SUBROUTINE mp_allocate_z + + SUBROUTINE mp_deallocate_z (DATA, stat) + !! Deallocates special parallel memory + + COMPLEX(kind=real_8), DIMENSION(:), POINTER, CONTIGUOUS :: DATA + !! pointer to special memory to deallocate + INTEGER, INTENT(OUT), OPTIONAL :: stat + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_deallocate_z' - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allocate_z' + INTEGER :: ierr, handle - INTEGER :: ierr, handle + CALL timeset(routineN, handle) - CALL timeset(routineN, handle) - - ierr = 0 -#if defined(__parallel) - NULLIFY (DATA) - CALL mp_alloc_mem(DATA, len, stat=ierr) - IF (ierr /= 0 .AND. .NOT. PRESENT(stat)) & - CALL mp_stop(ierr, "mpi_alloc_mem @ "//routineN) -#else - ALLOCATE (DATA(len), stat=ierr) - IF (ierr /= 0 .AND. .NOT. PRESENT(stat)) & - CALL mp_stop(ierr, "ALLOCATE @ "//routineN) + ierr = 0 +#if defined(__parallel) + CALL mp_free_mem(DATA, ierr) + IF (PRESENT(stat)) THEN + stat = ierr + ELSE + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_free_mem @ "//routineN) + END IF + NULLIFY (DATA) +#else + DEALLOCATE (DATA) + IF (PRESENT(stat)) stat = 0 #endif - IF (PRESENT(stat)) stat = ierr - CALL timestop(handle) - END SUBROUTINE mp_allocate_z - - SUBROUTINE mp_deallocate_z (DATA, stat) - !! Deallocates special parallel memory - - COMPLEX(kind=real_8), DIMENSION(:), POINTER, CONTIGUOUS :: DATA - !! pointer to special memory to deallocate - INTEGER, INTENT(OUT), OPTIONAL :: stat + CALL timestop(handle) + END SUBROUTINE mp_deallocate_z + + SUBROUTINE mp_file_write_at_zv(fh, offset, msg, msglen) + !! (parallel) Blocking individual file write using explicit offsets + !! (serial) Unformatted stream write + !! + !! MPI-I/O mapping mpi_file_write_at + !! + !! STREAM-I/O mapping WRITE - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_deallocate_z' - - INTEGER :: ierr, handle - - CALL timeset(routineN, handle) - - ierr = 0 -#if defined(__parallel) - CALL mp_free_mem(DATA, ierr) - IF (PRESENT(stat)) THEN - stat = ierr - ELSE - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_free_mem @ "//routineN) - END IF - NULLIFY (DATA) -#else - DEALLOCATE (DATA) - IF (PRESENT(stat)) stat = 0 -#endif - CALL timestop(handle) - END SUBROUTINE mp_deallocate_z - - SUBROUTINE mp_file_write_at_zv(fh, offset, msg, msglen) - !! (parallel) Blocking individual file write using explicit offsets - !! (serial) Unformatted stream write - !! - !! MPI-I/O mapping mpi_file_write_at - !! - !! STREAM-I/O mapping WRITE - - COMPLEX(kind=real_8), INTENT(IN) :: msg(:) - !! data to be written to the file + COMPLEX(kind=real_8), INTENT(IN) :: msg(:) + !! data to be written to the file + TYPE(mp_file_type), INTENT(IN) :: fh + !! file handle (file storage unit) + INTEGER, INTENT(IN), OPTIONAL :: msglen + !! number of the elements of data + INTEGER(kind=file_offset), INTENT(IN) :: offset + !! file offset (position) + + INTEGER :: msg_len + + msg_len = SIZE(msg) + IF (PRESENT(msglen)) msg_len = msglen + +#if defined(__parallel) + BLOCK + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_zv' + INTEGER :: ierr + ierr = 0 + CALL MPI_FILE_WRITE_AT(fh%handle, offset, msg, msg_len, MPI_DOUBLE_COMPLEX, MPI_STATUS_IGNORE, ierr) + IF (ierr .NE. 0) & + DBCSR_ABORT("mpi_file_write_at_zv @ "//routineN) + END BLOCK +#else + WRITE (UNIT=fh%handle, POS=offset + 1) msg(1:msg_len) +#endif + END SUBROUTINE mp_file_write_at_zv + +! ***************************************************************************** +! ***************************************************************************** + SUBROUTINE mp_file_write_at_z (fh, offset, msg) + COMPLEX(kind=real_8), INTENT(IN) :: msg TYPE(mp_file_type), INTENT(IN) :: fh - !! file handle (file storage unit) - INTEGER, INTENT(IN), OPTIONAL :: msglen - !! number of the elements of data - INTEGER(kind=file_offset), INTENT(IN) :: offset - !! file offset (position) - - INTEGER :: msg_len - - msg_len = SIZE(msg) - IF (PRESENT(msglen)) msg_len = msglen - -#if defined(__parallel) - BLOCK - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_zv' - INTEGER :: ierr - ierr = 0 - CALL MPI_FILE_WRITE_AT(fh%handle, offset, msg, msg_len, MPI_DOUBLE_COMPLEX, MPI_STATUS_IGNORE, ierr) - IF (ierr .NE. 0) & - DBCSR_ABORT("mpi_file_write_at_zv @ "//routineN) - END BLOCK -#else - WRITE (UNIT=fh%handle, POS=offset + 1) msg(1:msg_len) -#endif - END SUBROUTINE mp_file_write_at_zv - -! ***************************************************************************** -! ***************************************************************************** - SUBROUTINE mp_file_write_at_z (fh, offset, msg) - COMPLEX(kind=real_8), INTENT(IN) :: msg - TYPE(mp_file_type), INTENT(IN) :: fh - INTEGER(kind=file_offset), INTENT(IN) :: offset - + INTEGER(kind=file_offset), INTENT(IN) :: offset + +#if defined(__parallel) + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_z' + + INTEGER :: ierr + + ierr = 0 + CALL MPI_FILE_WRITE_AT(fh%handle, offset, msg, 1, MPI_DOUBLE_COMPLEX, MPI_STATUS_IGNORE, ierr) + IF (ierr .NE. 0) & + DBCSR_ABORT("mpi_file_write_at_z @ "//routineN) +#else + WRITE (UNIT=fh%handle, POS=offset + 1) msg +#endif + END SUBROUTINE mp_file_write_at_z + + SUBROUTINE mp_file_write_at_all_zv(fh, offset, msg, msglen) + !! (parallel) Blocking collective file write using explicit offsets + !! (serial) Unformatted stream write + !! + !! MPI-I/O mapping mpi_file_write_at_all + !! + !! STREAM-I/O mapping WRITE + + COMPLEX(kind=real_8), INTENT(IN) :: msg(:) + TYPE(mp_file_type), INTENT(IN) :: fh + INTEGER, INTENT(IN), OPTIONAL :: msglen + INTEGER :: msg_len + INTEGER(kind=file_offset), INTENT(IN) :: offset + + msg_len = SIZE(msg) + IF (PRESENT(msglen)) msg_len = msglen #if defined(__parallel) - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_z' - - INTEGER :: ierr - - ierr = 0 - CALL MPI_FILE_WRITE_AT(fh%handle, offset, msg, 1, MPI_DOUBLE_COMPLEX, MPI_STATUS_IGNORE, ierr) - IF (ierr .NE. 0) & - DBCSR_ABORT("mpi_file_write_at_z @ "//routineN) -#else - WRITE (UNIT=fh%handle, POS=offset + 1) msg -#endif - END SUBROUTINE mp_file_write_at_z - - SUBROUTINE mp_file_write_at_all_zv(fh, offset, msg, msglen) - !! (parallel) Blocking collective file write using explicit offsets - !! (serial) Unformatted stream write - !! - !! MPI-I/O mapping mpi_file_write_at_all - !! - !! STREAM-I/O mapping WRITE + BLOCK + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_all_zv' + INTEGER :: ierr + ierr = 0 + + CALL MPI_FILE_WRITE_AT_ALL(fh%handle, offset, msg, msg_len, MPI_DOUBLE_COMPLEX, MPI_STATUS_IGNORE, ierr) + IF (ierr .NE. 0) & + DBCSR_ABORT("mpi_file_write_at_all_zv @ "//routineN) + END BLOCK +#else + WRITE (UNIT=fh%handle, POS=offset + 1) msg(1:msg_len) +#endif + END SUBROUTINE mp_file_write_at_all_zv + +! ***************************************************************************** +! ***************************************************************************** + SUBROUTINE mp_file_write_at_all_z (fh, offset, msg) + COMPLEX(kind=real_8), INTENT(IN) :: msg + TYPE(mp_file_type), INTENT(IN) :: fh + INTEGER(kind=file_offset), INTENT(IN) :: offset - COMPLEX(kind=real_8), INTENT(IN) :: msg(:) - TYPE(mp_file_type), INTENT(IN) :: fh - INTEGER, INTENT(IN), OPTIONAL :: msglen - INTEGER :: msg_len - INTEGER(kind=file_offset), INTENT(IN) :: offset - - msg_len = SIZE(msg) - IF (PRESENT(msglen)) msg_len = msglen -#if defined(__parallel) - BLOCK - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_all_zv' - INTEGER :: ierr - ierr = 0 +#if defined(__parallel) + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_all_z' + + INTEGER :: ierr + + ierr = 0 + CALL MPI_FILE_WRITE_AT_ALL(fh%handle, offset, msg, 1, MPI_DOUBLE_COMPLEX, MPI_STATUS_IGNORE, ierr) + IF (ierr .NE. 0) & + DBCSR_ABORT("mpi_file_write_at_all_z @ "//routineN) +#else + WRITE (UNIT=fh%handle, POS=offset + 1) msg +#endif + END SUBROUTINE mp_file_write_at_all_z - CALL MPI_FILE_WRITE_AT_ALL(fh%handle, offset, msg, msg_len, MPI_DOUBLE_COMPLEX, MPI_STATUS_IGNORE, ierr) - IF (ierr .NE. 0) & - DBCSR_ABORT("mpi_file_write_at_all_zv @ "//routineN) - END BLOCK -#else - WRITE (UNIT=fh%handle, POS=offset + 1) msg(1:msg_len) -#endif - END SUBROUTINE mp_file_write_at_all_zv - -! ***************************************************************************** -! ***************************************************************************** - SUBROUTINE mp_file_write_at_all_z (fh, offset, msg) - COMPLEX(kind=real_8), INTENT(IN) :: msg - TYPE(mp_file_type), INTENT(IN) :: fh - INTEGER(kind=file_offset), INTENT(IN) :: offset - -#if defined(__parallel) - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_all_z' - - INTEGER :: ierr - - ierr = 0 - CALL MPI_FILE_WRITE_AT_ALL(fh%handle, offset, msg, 1, MPI_DOUBLE_COMPLEX, MPI_STATUS_IGNORE, ierr) - IF (ierr .NE. 0) & - DBCSR_ABORT("mpi_file_write_at_all_z @ "//routineN) -#else - WRITE (UNIT=fh%handle, POS=offset + 1) msg -#endif - END SUBROUTINE mp_file_write_at_all_z - -! ***************************************************************************** -! ***************************************************************************** - SUBROUTINE mp_file_read_at_all_zv(fh, offset, msg, msglen) - !! (parallel) Blocking collective file read using explicit offsets - !! (serial) Unformatted stream read - !! - !! MPI-I/O mapping mpi_file_read_at_all - !! - !! STREAM-I/O mapping READ - - COMPLEX(kind=real_8), INTENT(OUT) :: msg(:) - TYPE(mp_file_type), INTENT(IN) :: fh - INTEGER, INTENT(IN), OPTIONAL :: msglen - INTEGER(kind=file_offset), INTENT(IN) :: offset - - INTEGER :: msg_len - - msg_len = SIZE(msg) - IF (PRESENT(msglen)) msg_len = msglen -#if defined(__parallel) - BLOCK - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_read_at_all_zv' - INTEGER :: ierr - ierr = 0 +! ***************************************************************************** +! ***************************************************************************** + SUBROUTINE mp_file_read_at_all_zv(fh, offset, msg, msglen) + !! (parallel) Blocking collective file read using explicit offsets + !! (serial) Unformatted stream read + !! + !! MPI-I/O mapping mpi_file_read_at_all + !! + !! STREAM-I/O mapping READ + + COMPLEX(kind=real_8), INTENT(OUT) :: msg(:) + TYPE(mp_file_type), INTENT(IN) :: fh + INTEGER, INTENT(IN), OPTIONAL :: msglen + INTEGER(kind=file_offset), INTENT(IN) :: offset + + INTEGER :: msg_len + + msg_len = SIZE(msg) + IF (PRESENT(msglen)) msg_len = msglen +#if defined(__parallel) + BLOCK + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_read_at_all_zv' + INTEGER :: ierr + ierr = 0 + + CALL MPI_FILE_READ_AT_ALL(fh%handle, offset, msg, msg_len, MPI_DOUBLE_COMPLEX, MPI_STATUS_IGNORE, ierr) + IF (ierr .NE. 0) & + DBCSR_ABORT("mpi_file_read_at_all_zv @ "//routineN) + END BLOCK +#else + READ (UNIT=fh%handle, POS=offset + 1) msg(1:msg_len) +#endif + END SUBROUTINE mp_file_read_at_all_zv + +! ***************************************************************************** +! ***************************************************************************** + SUBROUTINE mp_file_read_at_all_z (fh, offset, msg) + COMPLEX(kind=real_8), INTENT(OUT) :: msg + TYPE(mp_file_type), INTENT(IN) :: fh + INTEGER(kind=file_offset), INTENT(IN) :: offset + +#if defined(__parallel) + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_read_at_all_z' + + INTEGER :: ierr + + ierr = 0 + CALL MPI_FILE_READ_AT_ALL(fh%handle, offset, msg, 1, MPI_DOUBLE_COMPLEX, MPI_STATUS_IGNORE, ierr) + IF (ierr .NE. 0) & + DBCSR_ABORT("mpi_file_read_at_all_z @ "//routineN) +#else + READ (UNIT=fh%handle, POS=offset + 1) msg +#endif + END SUBROUTINE mp_file_read_at_all_z - CALL MPI_FILE_READ_AT_ALL(fh%handle, offset, msg, msg_len, MPI_DOUBLE_COMPLEX, MPI_STATUS_IGNORE, ierr) - IF (ierr .NE. 0) & - DBCSR_ABORT("mpi_file_read_at_all_zv @ "//routineN) - END BLOCK -#else - READ (UNIT=fh%handle, POS=offset + 1) msg(1:msg_len) -#endif - END SUBROUTINE mp_file_read_at_all_zv - -! ***************************************************************************** -! ***************************************************************************** - SUBROUTINE mp_file_read_at_all_z (fh, offset, msg) - COMPLEX(kind=real_8), INTENT(OUT) :: msg - TYPE(mp_file_type), INTENT(IN) :: fh - INTEGER(kind=file_offset), INTENT(IN) :: offset - -#if defined(__parallel) - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_read_at_all_z' - - INTEGER :: ierr - - ierr = 0 - CALL MPI_FILE_READ_AT_ALL(fh%handle, offset, msg, 1, MPI_DOUBLE_COMPLEX, MPI_STATUS_IGNORE, ierr) - IF (ierr .NE. 0) & - DBCSR_ABORT("mpi_file_read_at_all_z @ "//routineN) -#else - READ (UNIT=fh%handle, POS=offset + 1) msg -#endif - END SUBROUTINE mp_file_read_at_all_z - -! ***************************************************************************** -! ***************************************************************************** - FUNCTION mp_type_make_z (ptr, & - vector_descriptor, index_descriptor) & - RESULT(type_descriptor) - COMPLEX(kind=real_8), DIMENSION(:), POINTER :: ptr - INTEGER, DIMENSION(2), INTENT(IN), OPTIONAL :: vector_descriptor - TYPE(mp_indexing_meta_type), INTENT(IN), OPTIONAL :: index_descriptor - TYPE(mp_type_descriptor_type) :: type_descriptor - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_type_make_z' - - INTEGER :: ierr - - ierr = 0 - NULLIFY (type_descriptor%subtype) - type_descriptor%length = SIZE(ptr) -#if defined(__parallel) - type_descriptor%type_handle = MPI_DOUBLE_COMPLEX - CALL MPI_Get_address(ptr, type_descriptor%base, ierr) - IF (ierr /= 0) & - DBCSR_ABORT("MPI_Get_address @ "//routineN) -#else - type_descriptor%type_handle = 7 -#endif - type_descriptor%vector_descriptor(1:2) = 1 - type_descriptor%has_indexing = .FALSE. - type_descriptor%data_z => ptr - IF (PRESENT(vector_descriptor) .OR. PRESENT(index_descriptor)) THEN - DBCSR_ABORT(routineN//": Vectors and indices NYI") - END IF - END FUNCTION mp_type_make_z - -#if defined(__parallel) - SUBROUTINE mp_alloc_mem_z (DATA, len, stat) - !! Allocates an array, using MPI_ALLOC_MEM ... this is hackish - !! as the Fortran version returns an integer, which we take to be a C_PTR - - COMPLEX(kind=real_8), DIMENSION(:), POINTER, CONTIGUOUS :: DATA - !! data array to allocate - INTEGER, INTENT(IN) :: len - !! length (in data elements) of data array allocation +! ***************************************************************************** +! ***************************************************************************** + FUNCTION mp_type_make_z (ptr, & + vector_descriptor, index_descriptor) & + RESULT(type_descriptor) + COMPLEX(kind=real_8), DIMENSION(:), POINTER :: ptr + INTEGER, DIMENSION(2), INTENT(IN), OPTIONAL :: vector_descriptor + TYPE(mp_indexing_meta_type), INTENT(IN), OPTIONAL :: index_descriptor + TYPE(mp_type_descriptor_type) :: type_descriptor + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_type_make_z' + + INTEGER :: ierr + + ierr = 0 + NULLIFY (type_descriptor%subtype) + type_descriptor%length = SIZE(ptr) +#if defined(__parallel) + type_descriptor%type_handle = MPI_DOUBLE_COMPLEX + CALL MPI_Get_address(ptr, type_descriptor%base, ierr) + IF (ierr /= 0) & + DBCSR_ABORT("MPI_Get_address @ "//routineN) +#else + type_descriptor%type_handle = 7 +#endif + type_descriptor%vector_descriptor(1:2) = 1 + type_descriptor%has_indexing = .FALSE. + type_descriptor%data_z => ptr + IF (PRESENT(vector_descriptor) .OR. PRESENT(index_descriptor)) THEN + DBCSR_ABORT(routineN//": Vectors and indices NYI") + END IF + END FUNCTION mp_type_make_z + +#if defined(__parallel) + SUBROUTINE mp_alloc_mem_z (DATA, len, stat) + !! Allocates an array, using MPI_ALLOC_MEM ... this is hackish + !! as the Fortran version returns an integer, which we take to be a C_PTR + + COMPLEX(kind=real_8), DIMENSION(:), POINTER, CONTIGUOUS :: DATA + !! data array to allocate + INTEGER, INTENT(IN) :: len + !! length (in data elements) of data array allocation + INTEGER, INTENT(OUT), OPTIONAL :: stat + !! allocation status result + + INTEGER :: size, ierr, length, & + mp_res + INTEGER(KIND=MPI_ADDRESS_KIND) :: mp_size + TYPE(C_PTR) :: mp_baseptr + MPI_INFO_TYPE :: mp_info + + length = MAX(len, 1) + CALL MPI_TYPE_SIZE(MPI_DOUBLE_COMPLEX, size, ierr) + mp_size = INT(length, KIND=MPI_ADDRESS_KIND)*size + IF (mp_size .GT. mp_max_memory_size) THEN + DBCSR_ABORT("MPI cannot allocate more than 2 GiByte") + END IF + mp_info = MPI_INFO_NULL + CALL MPI_ALLOC_MEM(mp_size, mp_info, mp_baseptr, mp_res) + CALL C_F_POINTER(mp_baseptr, DATA, (/length/)) + IF (PRESENT(stat)) stat = mp_res + END SUBROUTINE mp_alloc_mem_z +#endif + +#if defined(__parallel) + SUBROUTINE mp_free_mem_z (DATA, stat) + !! Deallocates am array, ... this is hackish + !! as the Fortran version takes an integer, which we hope to get by reference + + COMPLEX(kind=real_8), DIMENSION(:), & + POINTER, CONTIGUOUS :: DATA + !! data array to allocate INTEGER, INTENT(OUT), OPTIONAL :: stat !! allocation status result - INTEGER :: size, ierr, length, & - mp_res - INTEGER(KIND=MPI_ADDRESS_KIND) :: mp_size - TYPE(C_PTR) :: mp_baseptr - MPI_INFO_TYPE :: mp_info + INTEGER :: mp_res + CALL MPI_FREE_MEM(DATA, mp_res) + IF (PRESENT(stat)) stat = mp_res + END SUBROUTINE mp_free_mem_z +#endif - length = MAX(len, 1) - CALL MPI_TYPE_SIZE(MPI_DOUBLE_COMPLEX, size, ierr) - mp_size = INT(length, KIND=MPI_ADDRESS_KIND)*size - IF (mp_size .GT. mp_max_memory_size) THEN - DBCSR_ABORT("MPI cannot allocate more than 2 GiByte") - END IF - mp_info = MPI_INFO_NULL - CALL MPI_ALLOC_MEM(mp_size, mp_info, mp_baseptr, mp_res) - CALL C_F_POINTER(mp_baseptr, DATA, (/length/)) - IF (PRESENT(stat)) stat = mp_res - END SUBROUTINE mp_alloc_mem_z -#endif - -#if defined(__parallel) - SUBROUTINE mp_free_mem_z (DATA, stat) - !! Deallocates am array, ... this is hackish - !! as the Fortran version takes an integer, which we hope to get by reference - - COMPLEX(kind=real_8), DIMENSION(:), & - POINTER, CONTIGUOUS :: DATA - !! data array to allocate - INTEGER, INTENT(OUT), OPTIONAL :: stat - !! allocation status result - - INTEGER :: mp_res - CALL MPI_FREE_MEM(DATA, mp_res) - IF (PRESENT(stat)) stat = mp_res - END SUBROUTINE mp_free_mem_z -#endif - -# 2824 "/__w/dbcsr/dbcsr/src/mpi/dbcsr_mpiwrap.F" - SUBROUTINE mp_alltoall_c11v(sb, scount, sdispl, rb, rcount, rdispl, group) - !! All-to-all data exchange, rank-1 data of different sizes - !! - !! MPI mapping - !! mpi_alltoallv - !! - !! Array sizes - !! The scount, rcount, and the sdispl and rdispl arrays have a - !! size equal to the number of processes. - !! - !! Offsets - !! Values in sdispl and rdispl start with 0. - - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: sb(:) - !! Data to send - INTEGER, CONTIGUOUS, INTENT(IN) :: scount(:), sdispl(:) - !! Data counts for data sent to other processes - !! Respective data offsets for data sent to process - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: rb(:) - !! Buffer into which to receive data - INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:), rdispl(:) - !! Data counts for data received from other processes - !! Respective data offsets for data received from other processes - TYPE(mp_comm_type), INTENT(IN) :: group - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_c11v' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen -#else - INTEGER :: i -#endif - - CALL timeset(routineN, handle) - - ierr = 0 -#if defined(__parallel) - CALL mpi_alltoallv(sb, scount, sdispl, MPI_COMPLEX, & - rb, rcount, rdispl, MPI_COMPLEX, group%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoallv @ "//routineN) - msglen = SUM(scount) + SUM(rcount) - CALL add_perf(perf_id=6, msg_size=msglen*(2*real_4_size)) -#else - MARK_USED(group) - MARK_USED(scount) - MARK_USED(sdispl) -!$OMP PARALLEL DO DEFAULT(NONE) PRIVATE(i) SHARED(rcount,rdispl,sdispl,rb,sb) - DO i = 1, rcount(1) - rb(rdispl(1) + i) = sb(sdispl(1) + i) - END DO -#endif - CALL timestop(handle) - - END SUBROUTINE mp_alltoall_c11v +# 2824 "/__w/dbcsr/dbcsr/src/mpi/dbcsr_mpiwrap.F" + SUBROUTINE mp_alltoall_c11v(sb, scount, sdispl, rb, rcount, rdispl, group) + !! All-to-all data exchange, rank-1 data of different sizes + !! + !! MPI mapping + !! mpi_alltoallv + !! + !! Array sizes + !! The scount, rcount, and the sdispl and rdispl arrays have a + !! size equal to the number of processes. + !! + !! Offsets + !! Values in sdispl and rdispl start with 0. + + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: sb(:) + !! Data to send + INTEGER, CONTIGUOUS, INTENT(IN) :: scount(:), sdispl(:) + !! Data counts for data sent to other processes + !! Respective data offsets for data sent to process + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: rb(:) + !! Buffer into which to receive data + INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:), rdispl(:) + !! Data counts for data received from other processes + !! Respective data offsets for data received from other processes + TYPE(mp_comm_type), INTENT(IN) :: group + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_c11v' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen +#else + INTEGER :: i +#endif + + CALL timeset(routineN, handle) + + ierr = 0 +#if defined(__parallel) + CALL mpi_alltoallv(sb, scount, sdispl, MPI_COMPLEX, & + rb, rcount, rdispl, MPI_COMPLEX, group%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoallv @ "//routineN) + msglen = SUM(scount) + SUM(rcount) + CALL add_perf(perf_id=6, msg_size=msglen*(2*real_4_size)) +#else + MARK_USED(group) + MARK_USED(scount) + MARK_USED(sdispl) +!$OMP PARALLEL DO DEFAULT(NONE) PRIVATE(i) SHARED(rcount,rdispl,sdispl,rb,sb) + DO i = 1, rcount(1) + rb(rdispl(1) + i) = sb(sdispl(1) + i) + END DO +#endif + CALL timestop(handle) + + END SUBROUTINE mp_alltoall_c11v + + SUBROUTINE mp_alltoall_c (sb, rb, count, group) + !! All-to-all data exchange, rank 1 arrays, equal sizes + !! + !! Index meaning + !! + !! The first two indices specify the data while the last index counts + !! the processes + !! + !! Sizes of ranks + !! All processes have the same data size. + !! + !! MPI mapping + !! mpi_alltoall + + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: sb(:) + !! array with data to send + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: rb(:) + !! array into which data is received + INTEGER, INTENT(IN) :: count + !! number of elements to send/receive (product of the extents of the first two dimensions) + TYPE(mp_comm_type), INTENT(IN) :: group + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_c' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, np +#endif - SUBROUTINE mp_alltoall_c (sb, rb, count, group) - !! All-to-all data exchange, rank 1 arrays, equal sizes - !! - !! Index meaning - !! - !! The first two indices specify the data while the last index counts - !! the processes - !! - !! Sizes of ranks - !! All processes have the same data size. - !! - !! MPI mapping - !! mpi_alltoall - - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: sb(:) - !! array with data to send - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: rb(:) - !! array into which data is received - INTEGER, INTENT(IN) :: count - !! number of elements to send/receive (product of the extents of the first two dimensions) - TYPE(mp_comm_type), INTENT(IN) :: group - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_c' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, np -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - CALL mpi_alltoall(sb, count, MPI_COMPLEX, & - rb, count, MPI_COMPLEX, group%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoall @ "//routineN) - CALL mpi_comm_size(group%handle, np, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_size @ "//routineN) - msglen = 2*count*np - CALL add_perf(perf_id=6, msg_size=msglen*(2*real_4_size)) -#else - MARK_USED(count) - MARK_USED(group) - rb = sb -#endif - CALL timestop(handle) - - END SUBROUTINE mp_alltoall_c - - SUBROUTINE mp_alltoall_c22(sb, rb, count, group) - !! All-to-all data exchange, rank-2 arrays, equal sizes - !! @note see mp_alltoall_c + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + CALL mpi_alltoall(sb, count, MPI_COMPLEX, & + rb, count, MPI_COMPLEX, group%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoall @ "//routineN) + CALL mpi_comm_size(group%handle, np, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_size @ "//routineN) + msglen = 2*count*np + CALL add_perf(perf_id=6, msg_size=msglen*(2*real_4_size)) +#else + MARK_USED(count) + MARK_USED(group) + rb = sb +#endif + CALL timestop(handle) + + END SUBROUTINE mp_alltoall_c + + SUBROUTINE mp_alltoall_c22(sb, rb, count, group) + !! All-to-all data exchange, rank-2 arrays, equal sizes + !! @note see mp_alltoall_c + + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: sb(:, :) + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: rb(:, :) + INTEGER, INTENT(IN) :: count + TYPE(mp_comm_type), INTENT(IN) :: group + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_c22' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, np +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + CALL mpi_alltoall(sb, count, MPI_COMPLEX, & + rb, count, MPI_COMPLEX, group%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoall @ "//routineN) + CALL mpi_comm_size(group%handle, np, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_size @ "//routineN) + msglen = 2*SIZE(sb)*np + CALL add_perf(perf_id=6, msg_size=msglen*(2*real_4_size)) +#else + MARK_USED(count) + MARK_USED(group) + rb = sb +#endif + CALL timestop(handle) - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: sb(:, :) - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: rb(:, :) - INTEGER, INTENT(IN) :: count - TYPE(mp_comm_type), INTENT(IN) :: group - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_c22' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, np -#endif - - ierr = 0 - CALL timeset(routineN, handle) + END SUBROUTINE mp_alltoall_c22 + + SUBROUTINE mp_alltoall_c44(sb, rb, count, group) + !! All-to-all data exchange, rank 4 data, equal sizes + !! @note see mp_alltoall_c + + COMPLEX(kind=real_4), DIMENSION(:, :, :, :), CONTIGUOUS, & + INTENT(IN) :: sb + COMPLEX(kind=real_4), DIMENSION(:, :, :, :), CONTIGUOUS, & + INTENT(OUT) :: rb + INTEGER, INTENT(IN) :: count + TYPE(mp_comm_type), INTENT(IN) :: group + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_c44' -#if defined(__parallel) - CALL mpi_alltoall(sb, count, MPI_COMPLEX, & - rb, count, MPI_COMPLEX, group%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoall @ "//routineN) - CALL mpi_comm_size(group%handle, np, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_size @ "//routineN) - msglen = 2*SIZE(sb)*np - CALL add_perf(perf_id=6, msg_size=msglen*(2*real_4_size)) -#else - MARK_USED(count) - MARK_USED(group) - rb = sb -#endif - CALL timestop(handle) - - END SUBROUTINE mp_alltoall_c22 - - SUBROUTINE mp_alltoall_c44(sb, rb, count, group) - !! All-to-all data exchange, rank 4 data, equal sizes - !! @note see mp_alltoall_c - - COMPLEX(kind=real_4), DIMENSION(:, :, :, :), CONTIGUOUS, & - INTENT(IN) :: sb - COMPLEX(kind=real_4), DIMENSION(:, :, :, :), CONTIGUOUS, & - INTENT(OUT) :: rb - INTEGER, INTENT(IN) :: count - TYPE(mp_comm_type), INTENT(IN) :: group - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_alltoall_c44' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, np -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - CALL mpi_alltoall(sb, count, MPI_COMPLEX, & - rb, count, MPI_COMPLEX, group%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoall @ "//routineN) - CALL mpi_comm_size(group%handle, np, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_size @ "//routineN) - msglen = 2*count*np - CALL add_perf(perf_id=6, msg_size=msglen*(2*real_4_size)) -#else - MARK_USED(count) - MARK_USED(group) - rb = sb -#endif - CALL timestop(handle) - - END SUBROUTINE mp_alltoall_c44 - - SUBROUTINE mp_send_c (msg, dest, tag, gid) - !! Send one datum to another process - !! - !! MPI mapping - !! mpi_send - - COMPLEX(kind=real_4) :: msg - !! Scalar to send - INTEGER :: dest, tag - !! Destination process - !! Transfer identifier - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_send_c' + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, np +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + CALL mpi_alltoall(sb, count, MPI_COMPLEX, & + rb, count, MPI_COMPLEX, group%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_alltoall @ "//routineN) + CALL mpi_comm_size(group%handle, np, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_size @ "//routineN) + msglen = 2*count*np + CALL add_perf(perf_id=6, msg_size=msglen*(2*real_4_size)) +#else + MARK_USED(count) + MARK_USED(group) + rb = sb +#endif + CALL timestop(handle) + + END SUBROUTINE mp_alltoall_c44 + + SUBROUTINE mp_send_c (msg, dest, tag, gid) + !! Send one datum to another process + !! + !! MPI mapping + !! mpi_send + + COMPLEX(kind=real_4) :: msg + !! Scalar to send + INTEGER :: dest, tag + !! Destination process + !! Transfer identifier + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_send_c' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_send(msg, msglen, MPI_COMPLEX, dest, tag, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_send @ "//routineN) + CALL add_perf(perf_id=13, msg_size=msglen*(2*real_4_size)) +#else + MARK_USED(msg) + MARK_USED(dest) + MARK_USED(tag) + MARK_USED(gid) + ! only defined in parallel + DBCSR_ABORT("not in parallel mode") +#endif + CALL timestop(handle) + END SUBROUTINE mp_send_c + + SUBROUTINE mp_send_cv(msg, dest, tag, gid) + !! Send rank-1 data to another process + !! @note see mp_send_c + + COMPLEX(kind=real_4), CONTIGUOUS :: msg(:) + !! Rank-1 data to send + INTEGER :: dest, tag + TYPE(mp_comm_type), INTENT(IN) :: gid - INTEGER :: handle, ierr, msglen + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_send_cv' - ierr = 0 - CALL timeset(routineN, handle) - - msglen = 1 -#if defined(__parallel) - CALL mpi_send(msg, msglen, MPI_COMPLEX, dest, tag, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_send @ "//routineN) - CALL add_perf(perf_id=13, msg_size=msglen*(2*real_4_size)) -#else - MARK_USED(msg) - MARK_USED(dest) - MARK_USED(tag) - MARK_USED(gid) - ! only defined in parallel - DBCSR_ABORT("not in parallel mode") -#endif - CALL timestop(handle) - END SUBROUTINE mp_send_c - - SUBROUTINE mp_send_cv(msg, dest, tag, gid) - !! Send rank-1 data to another process - !! @note see mp_send_c - - COMPLEX(kind=real_4), CONTIGUOUS :: msg(:) - !! Rank-1 data to send - INTEGER :: dest, tag - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_send_cv' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_send(msg, msglen, MPI_COMPLEX, dest, tag, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_send @ "//routineN) + CALL add_perf(perf_id=13, msg_size=msglen*(2*real_4_size)) +#else + MARK_USED(msg) + MARK_USED(dest) + MARK_USED(tag) + MARK_USED(gid) + ! only defined in parallel + DBCSR_ABORT("not in parallel mode") +#endif + CALL timestop(handle) + END SUBROUTINE mp_send_cv + + SUBROUTINE mp_recv_c (msg, source, tag, gid) + !! Receive one datum from another process + !! + !! MPI mapping + !! mpi_send + + COMPLEX(kind=real_4), INTENT(INOUT) :: msg + !! Place received data into this variable + INTEGER, INTENT(INOUT) :: source, tag + !! Process to receive from + !! Transfer identifier + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_send(msg, msglen, MPI_COMPLEX, dest, tag, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_send @ "//routineN) - CALL add_perf(perf_id=13, msg_size=msglen*(2*real_4_size)) -#else - MARK_USED(msg) - MARK_USED(dest) - MARK_USED(tag) - MARK_USED(gid) - ! only defined in parallel - DBCSR_ABORT("not in parallel mode") -#endif - CALL timestop(handle) - END SUBROUTINE mp_send_cv - - SUBROUTINE mp_recv_c (msg, source, tag, gid) - !! Receive one datum from another process - !! - !! MPI mapping - !! mpi_send - - COMPLEX(kind=real_4), INTENT(INOUT) :: msg - !! Place received data into this variable - INTEGER, INTENT(INOUT) :: source, tag - !! Process to receive from - !! Transfer identifier - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_recv_c' + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_recv_c' + + INTEGER :: handle, ierr, msglen +#if defined(__parallel) + MPI_STATUS_TYPE :: status +#endif + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_recv(msg, msglen, MPI_COMPLEX, source, tag, gid%handle, status, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_recv @ "//routineN) + CALL add_perf(perf_id=14, msg_size=msglen*(2*real_4_size)) + source = status MPI_STATUS_EXTRACT(MPI_SOURCE) + tag = status MPI_STATUS_EXTRACT(MPI_TAG) +#else + MARK_USED(msg) + MARK_USED(source) + MARK_USED(tag) + MARK_USED(gid) + ! only defined in parallel + DBCSR_ABORT("not in parallel mode") +#endif + CALL timestop(handle) + END SUBROUTINE mp_recv_c + + SUBROUTINE mp_recv_cv(msg, source, tag, gid) + !! Receive rank-1 data from another process + !! @note see mp_recv_c - INTEGER :: handle, ierr, msglen -#if defined(__parallel) - MPI_STATUS_TYPE :: status -#endif + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:) + !! Place received data into this rank-1 array + INTEGER, INTENT(INOUT) :: source, tag + TYPE(mp_comm_type), INTENT(IN) :: gid - ierr = 0 - CALL timeset(routineN, handle) - - msglen = 1 -#if defined(__parallel) - CALL mpi_recv(msg, msglen, MPI_COMPLEX, source, tag, gid%handle, status, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_recv @ "//routineN) - CALL add_perf(perf_id=14, msg_size=msglen*(2*real_4_size)) - source = status MPI_STATUS_EXTRACT(MPI_SOURCE) - tag = status MPI_STATUS_EXTRACT(MPI_TAG) -#else - MARK_USED(msg) - MARK_USED(source) - MARK_USED(tag) - MARK_USED(gid) - ! only defined in parallel - DBCSR_ABORT("not in parallel mode") -#endif - CALL timestop(handle) - END SUBROUTINE mp_recv_c - - SUBROUTINE mp_recv_cv(msg, source, tag, gid) - !! Receive rank-1 data from another process - !! @note see mp_recv_c - - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:) - !! Place received data into this rank-1 array - INTEGER, INTENT(INOUT) :: source, tag - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_recv_cv' - - INTEGER :: handle, ierr, msglen -#if defined(__parallel) - MPI_STATUS_TYPE :: status -#endif - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_recv(msg, msglen, MPI_COMPLEX, source, tag, gid%handle, status, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_recv @ "//routineN) - CALL add_perf(perf_id=14, msg_size=msglen*(2*real_4_size)) - source = status MPI_STATUS_EXTRACT(MPI_SOURCE) - tag = status MPI_STATUS_EXTRACT(MPI_TAG) -#else - MARK_USED(msg) - MARK_USED(source) - MARK_USED(tag) - MARK_USED(gid) - ! only defined in parallel - DBCSR_ABORT("not in parallel mode") -#endif - CALL timestop(handle) - END SUBROUTINE mp_recv_cv - - SUBROUTINE mp_bcast_c (msg, source, gid) - !! Broadcasts a datum to all processes. - !! - !! MPI mapping - !! mpi_bcast - - COMPLEX(kind=real_4) :: msg - !! Datum to broadcast - INTEGER :: source - !! Processes which broadcasts - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_c' - - INTEGER :: handle, ierr, msglen + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_recv_cv' + + INTEGER :: handle, ierr, msglen +#if defined(__parallel) + MPI_STATUS_TYPE :: status +#endif + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_recv(msg, msglen, MPI_COMPLEX, source, tag, gid%handle, status, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_recv @ "//routineN) + CALL add_perf(perf_id=14, msg_size=msglen*(2*real_4_size)) + source = status MPI_STATUS_EXTRACT(MPI_SOURCE) + tag = status MPI_STATUS_EXTRACT(MPI_TAG) +#else + MARK_USED(msg) + MARK_USED(source) + MARK_USED(tag) + MARK_USED(gid) + ! only defined in parallel + DBCSR_ABORT("not in parallel mode") +#endif + CALL timestop(handle) + END SUBROUTINE mp_recv_cv + + SUBROUTINE mp_bcast_c (msg, source, gid) + !! Broadcasts a datum to all processes. + !! + !! MPI mapping + !! mpi_bcast + + COMPLEX(kind=real_4) :: msg + !! Datum to broadcast + INTEGER :: source + !! Processes which broadcasts + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_c' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_bcast(msg, msglen, MPI_COMPLEX, source, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) + CALL add_perf(perf_id=2, msg_size=msglen*(2*real_4_size)) +#else + MARK_USED(msg) + MARK_USED(source) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_bcast_c + + SUBROUTINE mp_ibcast_c (msg, source, gid, request) + !! Broadcasts a datum to all processes. + !! + !! MPI mapping + !! mpi_bcast + + COMPLEX(kind=real_4) :: msg + !! Datum to broadcast + INTEGER :: source + !! Processes which broadcasts + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(INOUT) :: request - ierr = 0 - CALL timeset(routineN, handle) - - msglen = 1 -#if defined(__parallel) - CALL mpi_bcast(msg, msglen, MPI_COMPLEX, source, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) - CALL add_perf(perf_id=2, msg_size=msglen*(2*real_4_size)) -#else - MARK_USED(msg) - MARK_USED(source) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_bcast_c - - SUBROUTINE mp_ibcast_c (msg, source, gid, request) - !! Broadcasts a datum to all processes. - !! - !! MPI mapping - !! mpi_bcast - - COMPLEX(kind=real_4) :: msg - !! Datum to broadcast - INTEGER :: source - !! Processes which broadcasts - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(INOUT) :: request + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_ibcast_c' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_ibcast(msg, msglen, MPI_COMPLEX, source, gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_ibcast @ "//routineN) + CALL add_perf(perf_id=22, msg_size=msglen*(2*real_4_size)) +#else + MARK_USED(msg) + MARK_USED(source) + MARK_USED(gid) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_ibcast_c + + SUBROUTINE mp_bcast_cv(msg, source, gid) + !! Broadcasts rank-1 data to all processes + !! @note see mp_bcast_c1 + + COMPLEX(kind=real_4), CONTIGUOUS :: msg(:) + !! Data to broadcast + INTEGER :: source + TYPE(mp_comm_type), INTENT(IN) :: gid - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_ibcast_c' + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_cv' INTEGER :: handle, ierr, msglen ierr = 0 CALL timeset(routineN, handle) - msglen = 1 + msglen = SIZE(msg) #if defined(__parallel) - CALL mpi_ibcast(msg, msglen, MPI_COMPLEX, source, gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_ibcast @ "//routineN) - CALL add_perf(perf_id=22, msg_size=msglen*(2*real_4_size)) + CALL mpi_bcast(msg, msglen, MPI_COMPLEX, source, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) + CALL add_perf(perf_id=2, msg_size=msglen*(2*real_4_size)) #else - MARK_USED(msg) - MARK_USED(source) - MARK_USED(gid) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_ibcast_c - - SUBROUTINE mp_bcast_cv(msg, source, gid) - !! Broadcasts rank-1 data to all processes - !! @note see mp_bcast_c1 - - COMPLEX(kind=real_4), CONTIGUOUS :: msg(:) - !! Data to broadcast - INTEGER :: source - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_cv' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_bcast(msg, msglen, MPI_COMPLEX, source, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) - CALL add_perf(perf_id=2, msg_size=msglen*(2*real_4_size)) -#else - MARK_USED(source) - MARK_USED(gid) + MARK_USED(source) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_bcast_cv + + SUBROUTINE mp_ibcast_cv(msg, source, gid, request) + !! Broadcasts rank-1 data to all processes + !! @note see mp_bcast_c1 + + COMPLEX(kind=real_4), CONTIGUOUS :: msg(:) + !! Data to broadcast + INTEGER :: source + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_ibcast_cv' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_ibcast(msg, msglen, MPI_COMPLEX, source, gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_ibcast @ "//routineN) + CALL add_perf(perf_id=22, msg_size=msglen*(2*real_4_size)) +#else + MARK_USED(source) + MARK_USED(gid) + request = mp_request_null #endif CALL timestop(handle) - END SUBROUTINE mp_bcast_cv + END SUBROUTINE mp_ibcast_cv - SUBROUTINE mp_ibcast_cv(msg, source, gid, request) - !! Broadcasts rank-1 data to all processes + SUBROUTINE mp_bcast_cm(msg, source, gid) + !! Broadcasts rank-2 data to all processes !! @note see mp_bcast_c1 - COMPLEX(kind=real_4), CONTIGUOUS :: msg(:) + COMPLEX(kind=real_4), CONTIGUOUS :: msg(:, :) !! Data to broadcast INTEGER :: source TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_ibcast_cv' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_ibcast(msg, msglen, MPI_COMPLEX, source, gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_ibcast @ "//routineN) - CALL add_perf(perf_id=22, msg_size=msglen*(2*real_4_size)) -#else - MARK_USED(source) - MARK_USED(gid) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_ibcast_cv - - SUBROUTINE mp_bcast_cm(msg, source, gid) - !! Broadcasts rank-2 data to all processes - !! @note see mp_bcast_c1 - - COMPLEX(kind=real_4), CONTIGUOUS :: msg(:, :) - !! Data to broadcast - INTEGER :: source - TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_im' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_bcast(msg, msglen, MPI_COMPLEX, source, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) + CALL add_perf(perf_id=2, msg_size=msglen*(2*real_4_size)) +#else + MARK_USED(source) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_bcast_cm + + SUBROUTINE mp_bcast_c3(msg, source, gid) + !! Broadcasts rank-3 data to all processes + !! @note see mp_bcast_c1 + + COMPLEX(kind=real_4), CONTIGUOUS :: msg(:, :, :) + !! Data to broadcast + INTEGER :: source + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_c3' - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_im' + INTEGER :: handle, ierr, msglen - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_bcast(msg, msglen, MPI_COMPLEX, source, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) - CALL add_perf(perf_id=2, msg_size=msglen*(2*real_4_size)) -#else - MARK_USED(source) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_bcast_cm - - SUBROUTINE mp_bcast_c3(msg, source, gid) - !! Broadcasts rank-3 data to all processes - !! @note see mp_bcast_c1 + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_bcast(msg, msglen, MPI_COMPLEX, source, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) + CALL add_perf(perf_id=2, msg_size=msglen*(2*real_4_size)) +#else + MARK_USED(source) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_bcast_c3 + + SUBROUTINE mp_sum_c (msg, gid) + !! Sums a datum from all processes with result left on all processes. + !! + !! MPI mapping + !! mpi_allreduce - COMPLEX(kind=real_4), CONTIGUOUS :: msg(:, :, :) - !! Data to broadcast - INTEGER :: source - TYPE(mp_comm_type), INTENT(IN) :: gid + COMPLEX(kind=real_4), INTENT(INOUT) :: msg + !! Datum to sum (input) and result (output) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_bcast_c3' + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_c' - INTEGER :: handle, ierr, msglen + INTEGER :: handle, ierr, msglen ierr = 0 CALL timeset(routineN, handle) - msglen = SIZE(msg) + msglen = 1 #if defined(__parallel) - CALL mpi_bcast(msg, msglen, MPI_COMPLEX, source, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_bcast @ "//routineN) - CALL add_perf(perf_id=2, msg_size=msglen*(2*real_4_size)) + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_COMPLEX, MPI_SUM, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + CALL add_perf(perf_id=3, msg_size=msglen*(2*real_4_size)) #else - MARK_USED(source) + MARK_USED(msg) MARK_USED(gid) #endif CALL timestop(handle) - END SUBROUTINE mp_bcast_c3 + END SUBROUTINE mp_sum_c - SUBROUTINE mp_sum_c (msg, gid) - !! Sums a datum from all processes with result left on all processes. - !! - !! MPI mapping - !! mpi_allreduce - - COMPLEX(kind=real_4), INTENT(INOUT) :: msg - !! Datum to sum (input) and result (output) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_c' - - INTEGER :: handle, ierr, msglen + SUBROUTINE mp_sum_cv(msg, gid) + !! Element-wise sum of a rank-1 array on all processes. + !! @note see mp_sum_c + + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:) + !! Vector to sum and result + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_cv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen +#endif ierr = 0 CALL timeset(routineN, handle) - msglen = 1 -#if defined(__parallel) - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_COMPLEX, MPI_SUM, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - CALL add_perf(perf_id=3, msg_size=msglen*(2*real_4_size)) -#else - MARK_USED(msg) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_sum_c - - SUBROUTINE mp_sum_cv(msg, gid) - !! Element-wise sum of a rank-1 array on all processes. - !! @note see mp_sum_c - - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:) - !! Vector to sum and result - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_cv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen -#endif - - ierr = 0 - CALL timeset(routineN, handle) +#if defined(__parallel) + msglen = SIZE(msg) + IF (msglen > 0) THEN + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_COMPLEX, MPI_SUM, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + END IF + CALL add_perf(perf_id=3, msg_size=msglen*(2*real_4_size)) +#else + MARK_USED(msg) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_sum_cv + + SUBROUTINE mp_isum_cv(msg, gid, request) + !! Element-wise sum of a rank-1 array on all processes. + !! @note see mp_sum_c + + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:) + !! Vector to sum and result + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isum_cv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen +#endif -#if defined(__parallel) - msglen = SIZE(msg) - IF (msglen > 0) THEN - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_COMPLEX, MPI_SUM, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - END IF - CALL add_perf(perf_id=3, msg_size=msglen*(2*real_4_size)) -#else - MARK_USED(msg) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_sum_cv - - SUBROUTINE mp_isum_cv(msg, gid, request) - !! Element-wise sum of a rank-1 array on all processes. - !! @note see mp_sum_c - - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:) - !! Vector to sum and result - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isum_cv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen -#endif + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + msglen = SIZE(msg) + IF (msglen > 0) THEN + CALL mpi_iallreduce(MPI_IN_PLACE, msg, msglen, MPI_COMPLEX, MPI_SUM, gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallreduce @ "//routineN) + ELSE + request = mp_request_null + END IF + CALL add_perf(perf_id=23, msg_size=msglen*(2*real_4_size)) +#else + MARK_USED(msg) + MARK_USED(gid) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_isum_cv + + SUBROUTINE mp_sum_cm(msg, gid) + !! Element-wise sum of a rank-2 array on all processes. + !! @note see mp_sum_c + + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:, :) + !! Matrix to sum and result + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_cm' - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - msglen = SIZE(msg) - IF (msglen > 0) THEN - CALL mpi_iallreduce(MPI_IN_PLACE, msg, msglen, MPI_COMPLEX, MPI_SUM, gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallreduce @ "//routineN) - ELSE - request = mp_request_null - END IF - CALL add_perf(perf_id=23, msg_size=msglen*(2*real_4_size)) -#else - MARK_USED(msg) - MARK_USED(gid) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_isum_cv - - SUBROUTINE mp_sum_cm(msg, gid) - !! Element-wise sum of a rank-2 array on all processes. - !! @note see mp_sum_c - - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:, :) - !! Matrix to sum and result - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_cm' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER, PARAMETER :: max_msg = 2**25 - INTEGER :: m1, msglen, step, msglensum -#endif - - ierr = 0 - CALL timeset(routineN, handle) + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER, PARAMETER :: max_msg = 2**25 + INTEGER :: m1, msglen, step, msglensum +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + ! chunk up the call so that message sizes are limited, to avoid overflows in mpich triggered in large rpa calcs + step = MAX(1, SIZE(msg, 2)/MAX(1, SIZE(msg)/max_msg)) + msglensum = 0 + DO m1 = LBOUND(msg, 2), UBOUND(msg, 2), step + msglen = SIZE(msg, 1)*(MIN(UBOUND(msg, 2), m1 + step - 1) - m1 + 1) + msglensum = msglensum + msglen + IF (msglen > 0) THEN + CALL mpi_allreduce(MPI_IN_PLACE, msg(LBOUND(msg, 1), m1), msglen, MPI_COMPLEX, MPI_SUM, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + END IF + END DO + CALL add_perf(perf_id=3, msg_size=msglensum*(2*real_4_size)) +#else + MARK_USED(msg) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_sum_cm + + SUBROUTINE mp_sum_cm3(msg, gid) + !! Element-wise sum of a rank-3 array on all processes. + !! @note see mp_sum_c + + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:, :, :) + !! Array to sum and result + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_cm3' -#if defined(__parallel) - ! chunk up the call so that message sizes are limited, to avoid overflows in mpich triggered in large rpa calcs - step = MAX(1, SIZE(msg, 2)/MAX(1, SIZE(msg)/max_msg)) - msglensum = 0 - DO m1 = LBOUND(msg, 2), UBOUND(msg, 2), step - msglen = SIZE(msg, 1)*(MIN(UBOUND(msg, 2), m1 + step - 1) - m1 + 1) - msglensum = msglensum + msglen - IF (msglen > 0) THEN - CALL mpi_allreduce(MPI_IN_PLACE, msg(LBOUND(msg, 1), m1), msglen, MPI_COMPLEX, MPI_SUM, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - END IF - END DO - CALL add_perf(perf_id=3, msg_size=msglensum*(2*real_4_size)) -#else - MARK_USED(msg) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_sum_cm - - SUBROUTINE mp_sum_cm3(msg, gid) - !! Element-wise sum of a rank-3 array on all processes. - !! @note see mp_sum_c - - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:, :, :) - !! Array to sum and result - TYPE(mp_comm_type), INTENT(IN) :: gid + INTEGER :: handle, ierr, & + msglen + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + IF (msglen > 0) THEN + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_COMPLEX, MPI_SUM, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + END IF + CALL add_perf(perf_id=3, msg_size=msglen*(2*real_4_size)) +#else + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_sum_cm3 + + SUBROUTINE mp_sum_cm4(msg, gid) + !! Element-wise sum of a rank-4 array on all processes. + !! @note see mp_sum_c + + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:, :, :, :) + !! Array to sum and result + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_cm4' - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_cm3' - - INTEGER :: handle, ierr, & - msglen - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - IF (msglen > 0) THEN - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_COMPLEX, MPI_SUM, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - END IF - CALL add_perf(perf_id=3, msg_size=msglen*(2*real_4_size)) -#else - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_sum_cm3 - - SUBROUTINE mp_sum_cm4(msg, gid) - !! Element-wise sum of a rank-4 array on all processes. - !! @note see mp_sum_c - - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:, :, :, :) - !! Array to sum and result - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_cm4' - - INTEGER :: handle, ierr, & - msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - IF (msglen > 0) THEN - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_COMPLEX, MPI_SUM, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - END IF - CALL add_perf(perf_id=3, msg_size=msglen*(2*real_4_size)) -#else - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_sum_cm4 - - SUBROUTINE mp_sum_root_cv(msg, root, gid) - !! Element-wise sum of data from all processes with result left only on - !! one. - !! - !! MPI mapping - !! mpi_reduce - - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:) - !! Vector to sum (input) and (only on process root) result (output) - INTEGER, INTENT(IN) :: root - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_root_cv' - - INTEGER :: handle, ierr, msglen -#if defined(__parallel) - INTEGER :: m1, taskid - COMPLEX(kind=real_4), ALLOCATABLE :: res(:) -#endif - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_comm_rank(gid%handle, taskid, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_rank @ "//routineN) - IF (msglen > 0) THEN - m1 = SIZE(msg, 1) - ALLOCATE (res(m1)) - CALL mpi_reduce(msg, res, msglen, MPI_COMPLEX, MPI_SUM, & - root, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_reduce @ "//routineN) - IF (taskid == root) THEN - msg = res - END IF - DEALLOCATE (res) - END IF - CALL add_perf(perf_id=3, msg_size=msglen*(2*real_4_size)) -#else - MARK_USED(root) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_sum_root_cv - - SUBROUTINE mp_sum_root_cm(msg, root, gid) - !! Element-wise sum of data from all processes with result left only on - !! one. - !! @note see mp_sum_root_cv - - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:, :) - !! Matrix to sum (input) and (only on process root) result (output) - INTEGER, INTENT(IN) :: root - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_root_rm' - - INTEGER :: handle, ierr, msglen -#if defined(__parallel) - INTEGER :: m1, m2, taskid - COMPLEX(kind=real_4), ALLOCATABLE :: res(:, :) -#endif - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_comm_rank(gid%handle, taskid, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_rank @ "//routineN) - IF (msglen > 0) THEN - m1 = SIZE(msg, 1) - m2 = SIZE(msg, 2) - ALLOCATE (res(m1, m2)) - CALL mpi_reduce(msg, res, msglen, MPI_COMPLEX, MPI_SUM, root, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_reduce @ "//routineN) - IF (taskid == root) THEN - msg = res - END IF - DEALLOCATE (res) - END IF - CALL add_perf(perf_id=3, msg_size=msglen*(2*real_4_size)) -#else - MARK_USED(root) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_sum_root_cm - - SUBROUTINE mp_sum_partial_cm(msg, res, gid) - !! Partial sum of data from all processes with result on each process. - - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msg(:, :) - !! Matrix to sum (input) - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: res(:, :) - !! Matrix containing result (output) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_partial_cm' - - INTEGER :: handle, ierr, msglen -#if defined(__parallel) - INTEGER :: taskid -#endif - - ierr = 0 - CALL timeset(routineN, handle) + INTEGER :: handle, ierr, & + msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + IF (msglen > 0) THEN + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_COMPLEX, MPI_SUM, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + END IF + CALL add_perf(perf_id=3, msg_size=msglen*(2*real_4_size)) +#else + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_sum_cm4 + + SUBROUTINE mp_sum_root_cv(msg, root, gid) + !! Element-wise sum of data from all processes with result left only on + !! one. + !! + !! MPI mapping + !! mpi_reduce + + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:) + !! Vector to sum (input) and (only on process root) result (output) + INTEGER, INTENT(IN) :: root + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_root_cv' + + INTEGER :: handle, ierr, msglen +#if defined(__parallel) + INTEGER :: m1, taskid + COMPLEX(kind=real_4), ALLOCATABLE :: res(:) +#endif + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_comm_rank(gid%handle, taskid, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_rank @ "//routineN) + IF (msglen > 0) THEN + m1 = SIZE(msg, 1) + ALLOCATE (res(m1)) + CALL mpi_reduce(msg, res, msglen, MPI_COMPLEX, MPI_SUM, & + root, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_reduce @ "//routineN) + IF (taskid == root) THEN + msg = res + END IF + DEALLOCATE (res) + END IF + CALL add_perf(perf_id=3, msg_size=msglen*(2*real_4_size)) +#else + MARK_USED(root) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_sum_root_cv + + SUBROUTINE mp_sum_root_cm(msg, root, gid) + !! Element-wise sum of data from all processes with result left only on + !! one. + !! @note see mp_sum_root_cv + + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:, :) + !! Matrix to sum (input) and (only on process root) result (output) + INTEGER, INTENT(IN) :: root + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_root_rm' + + INTEGER :: handle, ierr, msglen +#if defined(__parallel) + INTEGER :: m1, m2, taskid + COMPLEX(kind=real_4), ALLOCATABLE :: res(:, :) +#endif + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_comm_rank(gid%handle, taskid, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_rank @ "//routineN) + IF (msglen > 0) THEN + m1 = SIZE(msg, 1) + m2 = SIZE(msg, 2) + ALLOCATE (res(m1, m2)) + CALL mpi_reduce(msg, res, msglen, MPI_COMPLEX, MPI_SUM, root, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_reduce @ "//routineN) + IF (taskid == root) THEN + msg = res + END IF + DEALLOCATE (res) + END IF + CALL add_perf(perf_id=3, msg_size=msglen*(2*real_4_size)) +#else + MARK_USED(root) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_sum_root_cm + + SUBROUTINE mp_sum_partial_cm(msg, res, gid) + !! Partial sum of data from all processes with result on each process. + + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msg(:, :) + !! Matrix to sum (input) + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: res(:, :) + !! Matrix containing result (output) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_partial_cm' + + INTEGER :: handle, ierr, msglen +#if defined(__parallel) + INTEGER :: taskid +#endif + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_comm_rank(gid%handle, taskid, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_rank @ "//routineN) + IF (msglen > 0) THEN + CALL mpi_scan(msg, res, msglen, MPI_COMPLEX, MPI_SUM, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_scan @ "//routineN) + END IF + CALL add_perf(perf_id=3, msg_size=msglen*(2*real_4_size)) + ! perf_id is same as for other summation routines +#else + res = msg + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_sum_partial_cm + + SUBROUTINE mp_max_c (msg, gid) + !! Finds the maximum of a datum with the result left on all processes. + !! + !! MPI mapping + !! mpi_allreduce + + COMPLEX(kind=real_4), INTENT(INOUT) :: msg + !! Find maximum among these data (input) and maximum (output) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_max_c' - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_comm_rank(gid%handle, taskid, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_comm_rank @ "//routineN) - IF (msglen > 0) THEN - CALL mpi_scan(msg, res, msglen, MPI_COMPLEX, MPI_SUM, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_scan @ "//routineN) - END IF - CALL add_perf(perf_id=3, msg_size=msglen*(2*real_4_size)) - ! perf_id is same as for other summation routines + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_COMPLEX, MPI_MAX, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + CALL add_perf(perf_id=3, msg_size=msglen*(2*real_4_size)) #else - res = msg + MARK_USED(msg) MARK_USED(gid) #endif CALL timestop(handle) - END SUBROUTINE mp_sum_partial_cm + END SUBROUTINE mp_max_c - SUBROUTINE mp_max_c (msg, gid) - !! Finds the maximum of a datum with the result left on all processes. - !! - !! MPI mapping - !! mpi_allreduce - - COMPLEX(kind=real_4), INTENT(INOUT) :: msg - !! Find maximum among these data (input) and maximum (output) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier + SUBROUTINE mp_max_cv(msg, gid) + !! Finds the element-wise maximum of a vector with the result left on + !! all processes. + !! @note see mp_max_c + + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:) + !! Find maximum among these data (input) and maximum (output) + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_max_cv' - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_max_c' + INTEGER :: handle, ierr, msglen - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = 1 -#if defined(__parallel) - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_COMPLEX, MPI_MAX, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - CALL add_perf(perf_id=3, msg_size=msglen*(2*real_4_size)) -#else - MARK_USED(msg) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_max_c - - SUBROUTINE mp_max_cv(msg, gid) - !! Finds the element-wise maximum of a vector with the result left on - !! all processes. - !! @note see mp_max_c - - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:) - !! Find maximum among these data (input) and maximum (output) - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_max_cv' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_COMPLEX, MPI_MAX, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - CALL add_perf(perf_id=3, msg_size=msglen*(2*real_4_size)) -#else + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_COMPLEX, MPI_MAX, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + CALL add_perf(perf_id=3, msg_size=msglen*(2*real_4_size)) +#else + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_max_cv + + SUBROUTINE mp_min_c (msg, gid) + !! Finds the minimum of a datum with the result left on all processes. + !! + !! MPI mapping + !! mpi_allreduce + + COMPLEX(kind=real_4), INTENT(INOUT) :: msg + !! Find minimum among these data (input) and maximum (output) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_min_c' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_COMPLEX, MPI_MIN, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + CALL add_perf(perf_id=3, msg_size=msglen*(2*real_4_size)) +#else + MARK_USED(msg) MARK_USED(gid) #endif CALL timestop(handle) - END SUBROUTINE mp_max_cv + END SUBROUTINE mp_min_c - SUBROUTINE mp_min_c (msg, gid) - !! Finds the minimum of a datum with the result left on all processes. - !! - !! MPI mapping - !! mpi_allreduce - - COMPLEX(kind=real_4), INTENT(INOUT) :: msg - !! Find minimum among these data (input) and maximum (output) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_min_c' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = 1 -#if defined(__parallel) - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_COMPLEX, MPI_MIN, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - CALL add_perf(perf_id=3, msg_size=msglen*(2*real_4_size)) -#else - MARK_USED(msg) + SUBROUTINE mp_min_cv(msg, gid) + !! Finds the element-wise minimum of vector with the result left on + !! all processes. + !! + !! MPI mapping + !! mpi_allreduce + !! @note see mp_min_c + + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:) + !! Find minimum among these data (input) and maximum (output) + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_min_cv' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_COMPLEX, MPI_MIN, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) + CALL add_perf(perf_id=3, msg_size=msglen*(2*real_4_size)) +#else MARK_USED(gid) #endif CALL timestop(handle) - END SUBROUTINE mp_min_c + END SUBROUTINE mp_min_cv - SUBROUTINE mp_min_cv(msg, gid) - !! Finds the element-wise minimum of vector with the result left on - !! all processes. + SUBROUTINE mp_prod_c (msg, gid) + !! Multiplies a set of numbers scattered across a number of processes, + !! then replicates the result. !! !! MPI mapping !! mpi_allreduce - !! @note see mp_min_c - - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:) - !! Find minimum among these data (input) and maximum (output) - TYPE(mp_comm_type), INTENT(IN) :: gid + + COMPLEX(kind=real_4), INTENT(INOUT) :: msg + !! a number to multiply (input) and result (output) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! message passing environment identifier - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_min_cv' + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_c' INTEGER :: handle, ierr, msglen ierr = 0 CALL timeset(routineN, handle) - msglen = SIZE(msg) + msglen = 1 #if defined(__parallel) - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_COMPLEX, MPI_MIN, gid%handle, ierr) + CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_COMPLEX, MPI_PROD, gid%handle, ierr) IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) CALL add_perf(perf_id=3, msg_size=msglen*(2*real_4_size)) #else - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_min_cv - - SUBROUTINE mp_prod_c (msg, gid) - !! Multiplies a set of numbers scattered across a number of processes, - !! then replicates the result. + MARK_USED(msg) + MARK_USED(gid) +#endif + CALL timestop(handle) + END SUBROUTINE mp_prod_c + + SUBROUTINE mp_iscatter_c (msg_scatter, msg, root, gid, request) + !! Scatters data from one processes to all others !! !! MPI mapping - !! mpi_allreduce + !! mpi_scatter - COMPLEX(kind=real_4), INTENT(INOUT) :: msg - !! a number to multiply (input) and result (output) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sum_c' - - INTEGER :: handle, ierr, msglen + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msg_scatter(:) + !! Data to scatter (for root process) + COMPLEX(kind=real_4), INTENT(INOUT) :: msg + INTEGER, INTENT(IN) :: root + !! Process which scatters data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(INOUT) :: request - ierr = 0 - CALL timeset(routineN, handle) - - msglen = 1 -#if defined(__parallel) - CALL mpi_allreduce(MPI_IN_PLACE, msg, msglen, MPI_COMPLEX, MPI_PROD, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allreduce @ "//routineN) - CALL add_perf(perf_id=3, msg_size=msglen*(2*real_4_size)) -#else - MARK_USED(msg) - MARK_USED(gid) -#endif - CALL timestop(handle) - END SUBROUTINE mp_prod_c - - SUBROUTINE mp_iscatter_c (msg_scatter, msg, root, gid, request) - !! Scatters data from one processes to all others - !! - !! MPI mapping - !! mpi_scatter - - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msg_scatter(:) - !! Data to scatter (for root process) - COMPLEX(kind=real_4), INTENT(INOUT) :: msg - INTEGER, INTENT(IN) :: root - !! Process which scatters data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iscatter_c' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iscatter_c' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_iscatter(msg_scatter, msglen, MPI_COMPLEX, msg, & + msglen, MPI_COMPLEX, root, gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iscatter @ "//routineN) + CALL add_perf(perf_id=24, msg_size=1*(2*real_4_size)) +#else + MARK_USED(root) + MARK_USED(gid) + msg = msg_scatter(1) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iscatter_c + + SUBROUTINE mp_iscatter_cv2(msg_scatter, msg, root, gid, request) + !! Scatters data from one processes to all others + !! + !! MPI mapping + !! mpi_scatter + + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msg_scatter(:, :) + !! Data to scatter (for root process) + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:) + INTEGER, INTENT(IN) :: root + !! Process which scatters data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(INOUT) :: request - msglen = 1 -#if defined(__parallel) - CALL mpi_iscatter(msg_scatter, msglen, MPI_COMPLEX, msg, & - msglen, MPI_COMPLEX, root, gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iscatter @ "//routineN) - CALL add_perf(perf_id=24, msg_size=1*(2*real_4_size)) -#else - MARK_USED(root) - MARK_USED(gid) - msg = msg_scatter(1) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iscatter_c - - SUBROUTINE mp_iscatter_cv2(msg_scatter, msg, root, gid, request) - !! Scatters data from one processes to all others - !! - !! MPI mapping - !! mpi_scatter - - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msg_scatter(:, :) - !! Data to scatter (for root process) - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:) - INTEGER, INTENT(IN) :: root - !! Process which scatters data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iscatter_cv2' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_iscatter(msg_scatter, msglen, MPI_COMPLEX, msg, & - msglen, MPI_COMPLEX, root, gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iscatter @ "//routineN) - CALL add_perf(perf_id=24, msg_size=1*(2*real_4_size)) -#else - MARK_USED(root) - MARK_USED(gid) - msg(:) = msg_scatter(:, 1) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iscatter_cv2 - - SUBROUTINE mp_iscatterv_cv(msg_scatter, sendcounts, displs, msg, recvcount, root, gid, request) - !! Scatters data from one processes to all others - !! - !! MPI mapping - !! mpi_scatter - - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msg_scatter(:) - !! Data to scatter (for root process) - INTEGER, CONTIGUOUS, INTENT(IN) :: sendcounts(:), displs(:) - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:) - INTEGER, INTENT(IN) :: recvcount, root - !! Process which scatters data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(INOUT) :: request + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iscatter_cv2' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_iscatter(msg_scatter, msglen, MPI_COMPLEX, msg, & + msglen, MPI_COMPLEX, root, gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iscatter @ "//routineN) + CALL add_perf(perf_id=24, msg_size=1*(2*real_4_size)) +#else + MARK_USED(root) + MARK_USED(gid) + msg(:) = msg_scatter(:, 1) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iscatter_cv2 + + SUBROUTINE mp_iscatterv_cv(msg_scatter, sendcounts, displs, msg, recvcount, root, gid, request) + !! Scatters data from one processes to all others + !! + !! MPI mapping + !! mpi_scatter + + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msg_scatter(:) + !! Data to scatter (for root process) + INTEGER, CONTIGUOUS, INTENT(IN) :: sendcounts(:), displs(:) + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(INOUT) :: msg(:) + INTEGER, INTENT(IN) :: recvcount, root + !! Process which scatters data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iscatterv_cv' + + INTEGER :: handle, ierr + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + CALL mpi_iscatterv(msg_scatter, sendcounts, displs, MPI_COMPLEX, msg, & + recvcount, MPI_COMPLEX, root, gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iscatterv @ "//routineN) + CALL add_perf(perf_id=24, msg_size=1*(2*real_4_size)) +#else + MARK_USED(sendcounts) + MARK_USED(displs) + MARK_USED(recvcount) + MARK_USED(root) + MARK_USED(gid) + msg(1:recvcount) = msg_scatter(1 + displs(1):1 + displs(1) + sendcounts(1)) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iscatterv_cv + + SUBROUTINE mp_gather_c (msg, msg_gather, root, gid) + !! Gathers a datum from all processes to one + !! + !! MPI mapping + !! mpi_gather - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iscatterv_cv' - - INTEGER :: handle, ierr - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - CALL mpi_iscatterv(msg_scatter, sendcounts, displs, MPI_COMPLEX, msg, & - recvcount, MPI_COMPLEX, root, gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iscatterv @ "//routineN) - CALL add_perf(perf_id=24, msg_size=1*(2*real_4_size)) -#else - MARK_USED(sendcounts) - MARK_USED(displs) - MARK_USED(recvcount) - MARK_USED(root) - MARK_USED(gid) - msg(1:recvcount) = msg_scatter(1 + displs(1):1 + displs(1) + sendcounts(1)) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iscatterv_cv - - SUBROUTINE mp_gather_c (msg, msg_gather, root, gid) - !! Gathers a datum from all processes to one - !! - !! MPI mapping - !! mpi_gather + COMPLEX(kind=real_4), INTENT(IN) :: msg + !! Datum to send to root + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msg_gather(:) + !! Received data (on root) + INTEGER, INTENT(IN) :: root + !! Process which gathers the data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gather_c' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = 1 +#if defined(__parallel) + CALL mpi_gather(msg, msglen, MPI_COMPLEX, msg_gather, & + msglen, MPI_COMPLEX, root, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gather @ "//routineN) + CALL add_perf(perf_id=4, msg_size=msglen*(2*real_4_size)) +#else + MARK_USED(root) + MARK_USED(gid) + msg_gather(1) = msg +#endif + CALL timestop(handle) + END SUBROUTINE mp_gather_c - COMPLEX(kind=real_4), INTENT(IN) :: msg - !! Datum to send to root - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msg_gather(:) - !! Received data (on root) - INTEGER, INTENT(IN) :: root - !! Process which gathers the data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gather_c' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) + SUBROUTINE mp_gather_cv(msg, msg_gather, root, gid) + !! Gathers data from all processes to one + !! + !! Data length + !! All data (msg) is equal-sized + !! + !! MPI mapping + !! mpi_gather + !! @note see mp_gather_c + + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msg(:) + !! Datum to send to root + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msg_gather(:) + INTEGER, INTENT(IN) :: root + TYPE(mp_comm_type), INTENT(IN) :: gid - msglen = 1 -#if defined(__parallel) - CALL mpi_gather(msg, msglen, MPI_COMPLEX, msg_gather, & - msglen, MPI_COMPLEX, root, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gather @ "//routineN) - CALL add_perf(perf_id=4, msg_size=msglen*(2*real_4_size)) -#else - MARK_USED(root) - MARK_USED(gid) - msg_gather(1) = msg -#endif - CALL timestop(handle) - END SUBROUTINE mp_gather_c - - SUBROUTINE mp_gather_cv(msg, msg_gather, root, gid) - !! Gathers data from all processes to one - !! - !! Data length - !! All data (msg) is equal-sized - !! - !! MPI mapping - !! mpi_gather - !! @note see mp_gather_c - - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msg(:) - !! Datum to send to root - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msg_gather(:) - INTEGER, INTENT(IN) :: root - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gather_cv' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gather_cv' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_gather(msg, msglen, MPI_COMPLEX, msg_gather, & + msglen, MPI_COMPLEX, root, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gather @ "//routineN) + CALL add_perf(perf_id=4, msg_size=msglen*(2*real_4_size)) +#else + MARK_USED(root) + MARK_USED(gid) + msg_gather = msg +#endif + CALL timestop(handle) + END SUBROUTINE mp_gather_cv + + SUBROUTINE mp_gather_cm(msg, msg_gather, root, gid) + !! Gathers data from all processes to one + !! + !! Data length + !! All data (msg) is equal-sized + !! + !! MPI mapping + !! mpi_gather + !! @note see mp_gather_c + + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msg(:, :) + !! Datum to send to root + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msg_gather(:, :) + INTEGER, INTENT(IN) :: root + TYPE(mp_comm_type), INTENT(IN) :: gid - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_gather(msg, msglen, MPI_COMPLEX, msg_gather, & - msglen, MPI_COMPLEX, root, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gather @ "//routineN) - CALL add_perf(perf_id=4, msg_size=msglen*(2*real_4_size)) -#else - MARK_USED(root) - MARK_USED(gid) - msg_gather = msg -#endif - CALL timestop(handle) - END SUBROUTINE mp_gather_cv - - SUBROUTINE mp_gather_cm(msg, msg_gather, root, gid) - !! Gathers data from all processes to one - !! - !! Data length - !! All data (msg) is equal-sized - !! - !! MPI mapping - !! mpi_gather - !! @note see mp_gather_c - - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msg(:, :) - !! Datum to send to root - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msg_gather(:, :) - INTEGER, INTENT(IN) :: root - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gather_cm' - - INTEGER :: handle, ierr, msglen - - ierr = 0 - CALL timeset(routineN, handle) - - msglen = SIZE(msg) -#if defined(__parallel) - CALL mpi_gather(msg, msglen, MPI_COMPLEX, msg_gather, & - msglen, MPI_COMPLEX, root, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gather @ "//routineN) - CALL add_perf(perf_id=4, msg_size=msglen*(2*real_4_size)) -#else - MARK_USED(root) - MARK_USED(gid) - msg_gather = msg -#endif - CALL timestop(handle) - END SUBROUTINE mp_gather_cm - - SUBROUTINE mp_gatherv_cv(sendbuf, recvbuf, recvcounts, displs, root, comm) - !! Gathers data from all processes to one. - !! - !! Data length - !! Data can have different lengths - !! - !! Offsets - !! Offsets start at 0 - !! - !! MPI mapping - !! mpi_gather - - COMPLEX(kind=real_4), DIMENSION(:), CONTIGUOUS, INTENT(IN) :: sendbuf - !! Data to send to root - COMPLEX(kind=real_4), DIMENSION(:), CONTIGUOUS, INTENT(OUT) :: recvbuf - !! Received data (on root) - INTEGER, DIMENSION(:), CONTIGUOUS, INTENT(IN) :: recvcounts, displs - !! Sizes of data received from processes - !! Offsets of data received from processes - INTEGER, INTENT(IN) :: root - !! Process which gathers the data - TYPE(mp_comm_type), INTENT(IN) :: comm - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gatherv_cv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: sendcount -#endif + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gather_cm' + + INTEGER :: handle, ierr, msglen + + ierr = 0 + CALL timeset(routineN, handle) + + msglen = SIZE(msg) +#if defined(__parallel) + CALL mpi_gather(msg, msglen, MPI_COMPLEX, msg_gather, & + msglen, MPI_COMPLEX, root, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gather @ "//routineN) + CALL add_perf(perf_id=4, msg_size=msglen*(2*real_4_size)) +#else + MARK_USED(root) + MARK_USED(gid) + msg_gather = msg +#endif + CALL timestop(handle) + END SUBROUTINE mp_gather_cm + + SUBROUTINE mp_gatherv_cv(sendbuf, recvbuf, recvcounts, displs, root, comm) + !! Gathers data from all processes to one. + !! + !! Data length + !! Data can have different lengths + !! + !! Offsets + !! Offsets start at 0 + !! + !! MPI mapping + !! mpi_gather + + COMPLEX(kind=real_4), DIMENSION(:), CONTIGUOUS, INTENT(IN) :: sendbuf + !! Data to send to root + COMPLEX(kind=real_4), DIMENSION(:), CONTIGUOUS, INTENT(OUT) :: recvbuf + !! Received data (on root) + INTEGER, DIMENSION(:), CONTIGUOUS, INTENT(IN) :: recvcounts, displs + !! Sizes of data received from processes + !! Offsets of data received from processes + INTEGER, INTENT(IN) :: root + !! Process which gathers the data + TYPE(mp_comm_type), INTENT(IN) :: comm + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_gatherv_cv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: sendcount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + sendcount = SIZE(sendbuf) + CALL mpi_gatherv(sendbuf, sendcount, MPI_COMPLEX, & + recvbuf, recvcounts, displs, MPI_COMPLEX, & + root, comm%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gatherv @ "//routineN) + CALL add_perf(perf_id=4, & + msg_size=sendcount*(2*real_4_size)) +#else + MARK_USED(recvcounts) + MARK_USED(root) + MARK_USED(comm) + recvbuf(1 + displs(1):) = sendbuf +#endif + CALL timestop(handle) + END SUBROUTINE mp_gatherv_cv + + SUBROUTINE mp_allgather_c (msgout, msgin, gid) + !! Gathers a datum from all processes and all processes receive the + !! same data + !! + !! Data size + !! All processes send equal-sized data + !! + !! MPI mapping + !! mpi_allgather - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - sendcount = SIZE(sendbuf) - CALL mpi_gatherv(sendbuf, sendcount, MPI_COMPLEX, & - recvbuf, recvcounts, displs, MPI_COMPLEX, & - root, comm%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_gatherv @ "//routineN) - CALL add_perf(perf_id=4, & - msg_size=sendcount*(2*real_4_size)) -#else - MARK_USED(recvcounts) - MARK_USED(root) - MARK_USED(comm) - recvbuf(1 + displs(1):) = sendbuf -#endif - CALL timestop(handle) - END SUBROUTINE mp_gatherv_cv - - SUBROUTINE mp_allgather_c (msgout, msgin, gid) - !! Gathers a datum from all processes and all processes receive the - !! same data - !! - !! Data size - !! All processes send equal-sized data - !! - !! MPI mapping - !! mpi_allgather - - COMPLEX(kind=real_4), INTENT(IN) :: msgout - !! Datum to send - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:) - !! Received data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_c' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = 1 - rcount = 1 - CALL MPI_ALLGATHER(msgout, scount, MPI_COMPLEX, & - msgin, rcount, MPI_COMPLEX, & - gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) -#else - MARK_USED(gid) - msgin = msgout -#endif - CALL timestop(handle) - END SUBROUTINE mp_allgather_c - - SUBROUTINE mp_allgather_c2(msgout, msgin, gid) - !! Gathers a datum from all processes and all processes receive the - !! same data - !! - !! Data size - !! All processes send equal-sized data - !! - !! MPI mapping - !! mpi_allgather - - COMPLEX(kind=real_4), INTENT(IN) :: msgout - !! Datum to send - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) - !! Received data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_c2' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = 1 - rcount = 1 - CALL MPI_ALLGATHER(msgout, scount, MPI_COMPLEX, & - msgin, rcount, MPI_COMPLEX, & - gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) -#else - MARK_USED(gid) - msgin = msgout -#endif - CALL timestop(handle) - END SUBROUTINE mp_allgather_c2 - - SUBROUTINE mp_iallgather_c (msgout, msgin, gid, request) - !! Gathers a datum from all processes and all processes receive the - !! same data - !! - !! Data size - !! All processes send equal-sized data - !! - !! MPI mapping - !! mpi_allgather - - COMPLEX(kind=real_4), INTENT(IN) :: msgout - !! Datum to send - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:) - !! Received data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_c' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = 1 - rcount = 1 - CALL MPI_IALLGATHER(msgout, scount, MPI_COMPLEX, & - msgin, rcount, MPI_COMPLEX, & - gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) -#else - MARK_USED(gid) - msgin = msgout - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgather_c + COMPLEX(kind=real_4), INTENT(IN) :: msgout + !! Datum to send + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:) + !! Received data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_c' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = 1 + rcount = 1 + CALL MPI_ALLGATHER(msgout, scount, MPI_COMPLEX, & + msgin, rcount, MPI_COMPLEX, & + gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) +#else + MARK_USED(gid) + msgin = msgout +#endif + CALL timestop(handle) + END SUBROUTINE mp_allgather_c + + SUBROUTINE mp_allgather_c2(msgout, msgin, gid) + !! Gathers a datum from all processes and all processes receive the + !! same data + !! + !! Data size + !! All processes send equal-sized data + !! + !! MPI mapping + !! mpi_allgather + + COMPLEX(kind=real_4), INTENT(IN) :: msgout + !! Datum to send + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) + !! Received data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_c2' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = 1 + rcount = 1 + CALL MPI_ALLGATHER(msgout, scount, MPI_COMPLEX, & + msgin, rcount, MPI_COMPLEX, & + gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) +#else + MARK_USED(gid) + msgin = msgout +#endif + CALL timestop(handle) + END SUBROUTINE mp_allgather_c2 + + SUBROUTINE mp_iallgather_c (msgout, msgin, gid, request) + !! Gathers a datum from all processes and all processes receive the + !! same data + !! + !! Data size + !! All processes send equal-sized data + !! + !! MPI mapping + !! mpi_allgather + + COMPLEX(kind=real_4), INTENT(IN) :: msgout + !! Datum to send + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:) + !! Received data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_c' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = 1 + rcount = 1 + CALL MPI_IALLGATHER(msgout, scount, MPI_COMPLEX, & + msgin, rcount, MPI_COMPLEX, & + gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) +#else + MARK_USED(gid) + msgin = msgout + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgather_c + + SUBROUTINE mp_allgather_c12(msgout, msgin, gid) + !! Gathers vector data from all processes and all processes receive the + !! same data + !! + !! Data size + !! All processes send equal-sized data + !! + !! Ranks + !! The last rank counts the processes + !! + !! MPI mapping + !! mpi_allgather + + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:) + !! Rank-1 data to send + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) + !! Received data + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_c12' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) - SUBROUTINE mp_allgather_c12(msgout, msgin, gid) - !! Gathers vector data from all processes and all processes receive the - !! same data - !! - !! Data size - !! All processes send equal-sized data - !! - !! Ranks - !! The last rank counts the processes - !! - !! MPI mapping - !! mpi_allgather - - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:) - !! Rank-1 data to send - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) - !! Received data - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_c12' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:)) - rcount = scount - CALL MPI_ALLGATHER(msgout, scount, MPI_COMPLEX, & - msgin, rcount, MPI_COMPLEX, & - gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, 1) = msgout(:) -#endif - CALL timestop(handle) - END SUBROUTINE mp_allgather_c12 - - SUBROUTINE mp_allgather_c23(msgout, msgin, gid) - !! Gathers matrix data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_c12 - - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:, :) - !! Rank-2 data to send - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :) - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_c23' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:, :)) - rcount = scount - CALL MPI_ALLGATHER(msgout, scount, MPI_COMPLEX, & - msgin, rcount, MPI_COMPLEX, & - gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, :, 1) = msgout(:, :) -#endif - CALL timestop(handle) - END SUBROUTINE mp_allgather_c23 - - SUBROUTINE mp_allgather_c34(msgout, msgin, gid) - !! Gathers rank-3 data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_c12 - - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:, :, :) - !! Rank-3 data to send - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :, :) - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_c34' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:, :, :)) - rcount = scount - CALL MPI_ALLGATHER(msgout, scount, MPI_COMPLEX, & - msgin, rcount, MPI_COMPLEX, & - gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, :, :, 1) = msgout(:, :, :) -#endif - CALL timestop(handle) - END SUBROUTINE mp_allgather_c34 - - SUBROUTINE mp_allgather_c22(msgout, msgin, gid) - !! Gathers rank-2 data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_c12 - - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:, :) - !! Rank-2 data to send - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) - TYPE(mp_comm_type), INTENT(IN) :: gid - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_c22' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif +#if defined(__parallel) + scount = SIZE(msgout(:)) + rcount = scount + CALL MPI_ALLGATHER(msgout, scount, MPI_COMPLEX, & + msgin, rcount, MPI_COMPLEX, & + gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, 1) = msgout(:) +#endif + CALL timestop(handle) + END SUBROUTINE mp_allgather_c12 + + SUBROUTINE mp_allgather_c23(msgout, msgin, gid) + !! Gathers matrix data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_c12 + + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:, :) + !! Rank-2 data to send + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :) + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_c23' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:, :)) + rcount = scount + CALL MPI_ALLGATHER(msgout, scount, MPI_COMPLEX, & + msgin, rcount, MPI_COMPLEX, & + gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, :, 1) = msgout(:, :) +#endif + CALL timestop(handle) + END SUBROUTINE mp_allgather_c23 + + SUBROUTINE mp_allgather_c34(msgout, msgin, gid) + !! Gathers rank-3 data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_c12 + + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:, :, :) + !! Rank-3 data to send + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :, :) + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_c34' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:, :, :)) + rcount = scount + CALL MPI_ALLGATHER(msgout, scount, MPI_COMPLEX, & + msgin, rcount, MPI_COMPLEX, & + gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, :, :, 1) = msgout(:, :, :) +#endif + CALL timestop(handle) + END SUBROUTINE mp_allgather_c34 + + SUBROUTINE mp_allgather_c22(msgout, msgin, gid) + !! Gathers rank-2 data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_c12 + + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:, :) + !! Rank-2 data to send + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) + TYPE(mp_comm_type), INTENT(IN) :: gid + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgather_c22' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:, :)) + rcount = scount + CALL MPI_ALLGATHER(msgout, scount, MPI_COMPLEX, & + msgin, rcount, MPI_COMPLEX, & + gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, :) = msgout(:, :) +#endif + CALL timestop(handle) + END SUBROUTINE mp_allgather_c22 + + SUBROUTINE mp_iallgather_c11(msgout, msgin, gid, request) + !! Gathers rank-1 data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_c11 + + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:) + !! Rank-1 data to send + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:) + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(OUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_c11' - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:, :)) - rcount = scount - CALL MPI_ALLGATHER(msgout, scount, MPI_COMPLEX, & - msgin, rcount, MPI_COMPLEX, & - gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, :) = msgout(:, :) -#endif - CALL timestop(handle) - END SUBROUTINE mp_allgather_c22 - - SUBROUTINE mp_iallgather_c11(msgout, msgin, gid, request) - !! Gathers rank-1 data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_c11 - - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:) - !! Rank-1 data to send - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:) - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(OUT) :: request + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:)) + rcount = scount + CALL MPI_IALLGATHER(msgout, scount, MPI_COMPLEX, & + msgin, rcount, MPI_COMPLEX, & + gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) +#else + MARK_USED(gid) + msgin = msgout + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgather_c11 + + SUBROUTINE mp_iallgather_c13(msgout, msgin, gid, request) + !! Gathers rank-2 data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_c12 - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_c11' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:)) - rcount = scount - CALL MPI_IALLGATHER(msgout, scount, MPI_COMPLEX, & - msgin, rcount, MPI_COMPLEX, & - gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) -#else - MARK_USED(gid) - msgin = msgout - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgather_c11 - - SUBROUTINE mp_iallgather_c13(msgout, msgin, gid, request) - !! Gathers rank-2 data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_c12 - - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:) - !! Rank-2 data to send - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :) - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(OUT) :: request + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:) + !! Rank-2 data to send + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :) + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(OUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_c13' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:)) + rcount = scount + CALL MPI_IALLGATHER(msgout, scount, MPI_COMPLEX, & + msgin, rcount, MPI_COMPLEX, & + gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, 1, 1) = msgout(:) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgather_c13 + + SUBROUTINE mp_iallgather_c22(msgout, msgin, gid, request) + !! Gathers rank-2 data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_c12 - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_c13' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:)) - rcount = scount - CALL MPI_IALLGATHER(msgout, scount, MPI_COMPLEX, & - msgin, rcount, MPI_COMPLEX, & - gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, 1, 1) = msgout(:) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgather_c13 - - SUBROUTINE mp_iallgather_c22(msgout, msgin, gid, request) - !! Gathers rank-2 data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_c12 - - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:, :) - !! Rank-2 data to send - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(OUT) :: request + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:, :) + !! Rank-2 data to send + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:, :) + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(OUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_c22' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:, :)) + rcount = scount + CALL MPI_IALLGATHER(msgout, scount, MPI_COMPLEX, & + msgin, rcount, MPI_COMPLEX, & + gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, :) = msgout(:, :) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgather_c22 + + SUBROUTINE mp_iallgather_c24(msgout, msgin, gid, request) + !! Gathers rank-2 data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_c12 - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_c22' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:, :)) - rcount = scount - CALL MPI_IALLGATHER(msgout, scount, MPI_COMPLEX, & - msgin, rcount, MPI_COMPLEX, & - gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, :) = msgout(:, :) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgather_c22 - - SUBROUTINE mp_iallgather_c24(msgout, msgin, gid, request) - !! Gathers rank-2 data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_c12 - - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:, :) - !! Rank-2 data to send - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :, :) - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(OUT) :: request + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:, :) + !! Rank-2 data to send + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :, :) + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(OUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_c24' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:, :)) + rcount = scount + CALL MPI_IALLGATHER(msgout, scount, MPI_COMPLEX, & + msgin, rcount, MPI_COMPLEX, & + gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, :, 1, 1) = msgout(:, :) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgather_c24 + + SUBROUTINE mp_iallgather_c33(msgout, msgin, gid, request) + !! Gathers rank-3 data from all processes and all processes receive the + !! same data + !! @note see mp_allgather_c12 - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_c24' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:, :)) - rcount = scount - CALL MPI_IALLGATHER(msgout, scount, MPI_COMPLEX, & - msgin, rcount, MPI_COMPLEX, & - gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, :, 1, 1) = msgout(:, :) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgather_c24 - - SUBROUTINE mp_iallgather_c33(msgout, msgin, gid, request) - !! Gathers rank-3 data from all processes and all processes receive the - !! same data - !! @note see mp_allgather_c12 - - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:, :, :) - !! Rank-3 data to send - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :) - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(OUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_c33' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: rcount, scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout(:, :, :)) - rcount = scount - CALL MPI_IALLGATHER(msgout, scount, MPI_COMPLEX, & - msgin, rcount, MPI_COMPLEX, & - gid%handle, request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) -#else - MARK_USED(gid) - msgin(:, :, :) = msgout(:, :, :) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgather_c33 - - SUBROUTINE mp_allgatherv_cv(msgout, msgin, rcount, rdispl, gid) - !! Gathers vector data from all processes and all processes receive the - !! same data - !! - !! Data size - !! Processes can send different-sized data - !! - !! Ranks - !! The last rank counts the processes - !! - !! Offsets - !! Offsets are from 0 - !! - !! MPI mapping - !! mpi_allgather - - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:) - !! Rank-1 data to send - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:) - !! Received data - INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:), rdispl(:) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Size of sent data for every process - !! Offset of sent data for every process - !! Message passing environment identifier - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgatherv_cv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: scount -#endif - - ierr = 0 - CALL timeset(routineN, handle) + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:, :, :) + !! Rank-3 data to send + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:, :, :) + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(OUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgather_c33' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: rcount, scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout(:, :, :)) + rcount = scount + CALL MPI_IALLGATHER(msgout, scount, MPI_COMPLEX, & + msgin, rcount, MPI_COMPLEX, & + gid%handle, request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgather @ "//routineN) +#else + MARK_USED(gid) + msgin(:, :, :) = msgout(:, :, :) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgather_c33 + + SUBROUTINE mp_allgatherv_cv(msgout, msgin, rcount, rdispl, gid) + !! Gathers vector data from all processes and all processes receive the + !! same data + !! + !! Data size + !! Processes can send different-sized data + !! + !! Ranks + !! The last rank counts the processes + !! + !! Offsets + !! Offsets are from 0 + !! + !! MPI mapping + !! mpi_allgather + + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:) + !! Rank-1 data to send + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:) + !! Received data + INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:), rdispl(:) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Size of sent data for every process + !! Offset of sent data for every process + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allgatherv_cv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: scount +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout) + CALL MPI_ALLGATHERV(msgout, scount, MPI_COMPLEX, msgin, rcount, & + rdispl, MPI_COMPLEX, gid%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgatherv @ "//routineN) +#else + MARK_USED(rcount) + MARK_USED(rdispl) + MARK_USED(gid) + msgin = msgout +#endif + CALL timestop(handle) + END SUBROUTINE mp_allgatherv_cv + + SUBROUTINE mp_iallgatherv_cv(msgout, msgin, rcount, rdispl, gid, request) + !! Gathers vector data from all processes and all processes receive the + !! same data + !! + !! Data size + !! Processes can send different-sized data + !! + !! Ranks + !! The last rank counts the processes + !! + !! Offsets + !! Offsets are from 0 + !! + !! MPI mapping + !! mpi_allgather -#if defined(__parallel) - scount = SIZE(msgout) - CALL MPI_ALLGATHERV(msgout, scount, MPI_COMPLEX, msgin, rcount, & - rdispl, MPI_COMPLEX, gid%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_allgatherv @ "//routineN) -#else - MARK_USED(rcount) - MARK_USED(rdispl) - MARK_USED(gid) - msgin = msgout -#endif - CALL timestop(handle) - END SUBROUTINE mp_allgatherv_cv - - SUBROUTINE mp_iallgatherv_cv(msgout, msgin, rcount, rdispl, gid, request) - !! Gathers vector data from all processes and all processes receive the - !! same data - !! - !! Data size - !! Processes can send different-sized data - !! - !! Ranks - !! The last rank counts the processes - !! - !! Offsets - !! Offsets are from 0 - !! - !! MPI mapping - !! mpi_allgather - - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:) - !! Rank-1 data to send - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:) - !! Received data - INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:), rdispl(:) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Size of sent data for every process - !! Offset of sent data for every process - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgatherv_cv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: scount, rsize -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout) - rsize = SIZE(rcount) - CALL mp_iallgatherv_cv_internal(msgout, scount, msgin, rsize, rcount, & - rdispl, gid, request, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgatherv @ "//routineN) -#else - MARK_USED(rcount) - MARK_USED(rdispl) - MARK_USED(gid) - msgin = msgout - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgatherv_cv - - SUBROUTINE mp_iallgatherv_cv2(msgout, msgin, rcount, rdispl, gid, request) - !! Gathers vector data from all processes and all processes receive the - !! same data - !! - !! Data size - !! Processes can send different-sized data - !! - !! Ranks - !! The last rank counts the processes - !! - !! Offsets - !! Offsets are from 0 - !! - !! MPI mapping - !! mpi_allgather - - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:) - !! Rank-1 data to send - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:) - !! Received data - INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:, :), rdispl(:, :) - TYPE(mp_comm_type), INTENT(IN) :: gid - !! Size of sent data for every process - !! Offset of sent data for every process - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(INOUT) :: request - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgatherv_cv2' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: scount, rsize -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - scount = SIZE(msgout) - rsize = SIZE(rcount) - CALL mp_iallgatherv_cv_internal(msgout, scount, msgin, rsize, rcount, & - rdispl, gid, request, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgatherv @ "//routineN) -#else - MARK_USED(rcount) - MARK_USED(rdispl) - MARK_USED(gid) - msgin = msgout - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_iallgatherv_cv2 - -#if defined(__parallel) - SUBROUTINE mp_iallgatherv_cv_internal(msgout, scount, msgin, rsize, rcount, rdispl, gid, request, ierr) - !! wrapper needed to deal with interfaces as present in openmpi 1.8.1 - !! the issue is with the rank of rcount and rdispl + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:) + !! Rank-1 data to send + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:) + !! Received data + INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:), rdispl(:) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Size of sent data for every process + !! Offset of sent data for every process + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgatherv_cv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: scount, rsize +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout) + rsize = SIZE(rcount) + CALL mp_iallgatherv_cv_internal(msgout, scount, msgin, rsize, rcount, & + rdispl, gid, request, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgatherv @ "//routineN) +#else + MARK_USED(rcount) + MARK_USED(rdispl) + MARK_USED(gid) + msgin = msgout + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgatherv_cv + + SUBROUTINE mp_iallgatherv_cv2(msgout, msgin, rcount, rdispl, gid, request) + !! Gathers vector data from all processes and all processes receive the + !! same data + !! + !! Data size + !! Processes can send different-sized data + !! + !! Ranks + !! The last rank counts the processes + !! + !! Offsets + !! Offsets are from 0 + !! + !! MPI mapping + !! mpi_allgather + + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:) + !! Rank-1 data to send + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:) + !! Received data + INTEGER, CONTIGUOUS, INTENT(IN) :: rcount(:, :), rdispl(:, :) + TYPE(mp_comm_type), INTENT(IN) :: gid + !! Size of sent data for every process + !! Offset of sent data for every process + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(INOUT) :: request + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_iallgatherv_cv2' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: scount, rsize +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + scount = SIZE(msgout) + rsize = SIZE(rcount) + CALL mp_iallgatherv_cv_internal(msgout, scount, msgin, rsize, rcount, & + rdispl, gid, request, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_iallgatherv @ "//routineN) +#else + MARK_USED(rcount) + MARK_USED(rdispl) + MARK_USED(gid) + msgin = msgout + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_iallgatherv_cv2 + +#if defined(__parallel) + SUBROUTINE mp_iallgatherv_cv_internal(msgout, scount, msgin, rsize, rcount, rdispl, gid, request, ierr) + !! wrapper needed to deal with interfaces as present in openmpi 1.8.1 + !! the issue is with the rank of rcount and rdispl + + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:) + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:) + INTEGER, INTENT(IN) :: rsize + INTEGER, INTENT(IN) :: rcount(rsize), rdispl(rsize), scount + TYPE(mp_comm_type), INTENT(IN) :: gid + TYPE(mp_request_type), INTENT(INOUT) :: request + INTEGER, INTENT(INOUT) :: ierr + + CALL MPI_IALLGATHERV(msgout, scount, MPI_COMPLEX, msgin, rcount, & + rdispl, MPI_COMPLEX, gid%handle, request%handle, ierr) + + END SUBROUTINE mp_iallgatherv_cv_internal +#endif + + SUBROUTINE mp_sendrecv_cv(msgin, dest, msgout, source, comm) + !! Sends and receives vector data + + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgin(:) + !! Data to send + INTEGER, INTENT(IN) :: dest + !! Process to send data to + COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgout(:) + !! Received data + INTEGER, INTENT(IN) :: source + !! Process from which to receive + TYPE(mp_comm_type), INTENT(IN) :: comm + !! Message passing environment identifier + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sendrecv_cv' - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgout(:) - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgin(:) - INTEGER, INTENT(IN) :: rsize - INTEGER, INTENT(IN) :: rcount(rsize), rdispl(rsize), scount - TYPE(mp_comm_type), INTENT(IN) :: gid - TYPE(mp_request_type), INTENT(INOUT) :: request - INTEGER, INTENT(INOUT) :: ierr - - CALL MPI_IALLGATHERV(msgout, scount, MPI_COMPLEX, msgin, rcount, & - rdispl, MPI_COMPLEX, gid%handle, request%handle, ierr) - - END SUBROUTINE mp_iallgatherv_cv_internal -#endif - - SUBROUTINE mp_sendrecv_cv(msgin, dest, msgout, source, comm) - !! Sends and receives vector data - - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(IN) :: msgin(:) - !! Data to send - INTEGER, INTENT(IN) :: dest - !! Process to send data to - COMPLEX(kind=real_4), CONTIGUOUS, INTENT(OUT) :: msgout(:) - !! Received data - INTEGER, INTENT(IN) :: source - !! Process from which to receive - TYPE(mp_comm_type), INTENT(IN) :: comm - !! Message passing environment identifier + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen_in, msglen_out, & + recv_tag, send_tag +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + msglen_in = SIZE(msgin) + msglen_out = SIZE(msgout) + send_tag = 0 ! cannot think of something better here, this might be dangerous + recv_tag = 0 ! cannot think of something better here, this might be dangerous + CALL mpi_sendrecv(msgin, msglen_in, MPI_COMPLEX, dest, send_tag, msgout, & + msglen_out, MPI_COMPLEX, source, recv_tag, comm%handle, MPI_STATUS_IGNORE, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_sendrecv @ "//routineN) + CALL add_perf(perf_id=7, & + msg_size=(msglen_in + msglen_out)*(2*real_4_size)/2) +#else + MARK_USED(dest) + MARK_USED(source) + MARK_USED(comm) + msgout = msgin +#endif + CALL timestop(handle) + END SUBROUTINE mp_sendrecv_cv - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_sendrecv_cv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen_in, msglen_out, & - recv_tag, send_tag -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - msglen_in = SIZE(msgin) - msglen_out = SIZE(msgout) - send_tag = 0 ! cannot think of something better here, this might be dangerous - recv_tag = 0 ! cannot think of something better here, this might be dangerous - CALL mpi_sendrecv(msgin, msglen_in, MPI_COMPLEX, dest, send_tag, msgout, & - msglen_out, MPI_COMPLEX, source, recv_tag, comm%handle, MPI_STATUS_IGNORE, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_sendrecv @ "//routineN) - CALL add_perf(perf_id=7, & - msg_size=(msglen_in + msglen_out)*(2*real_4_size)/2) -#else - MARK_USED(dest) - MARK_USED(source) - MARK_USED(comm) - msgout = msgin -#endif - CALL timestop(handle) - END SUBROUTINE mp_sendrecv_cv + SUBROUTINE mp_isendrecv_c (msgin, dest, msgout, source, comm, send_request, & + recv_request, tag) + !! Non-blocking send and receive of a scalar + !! + !! Implementation + !! Calls mpi_isend and mpi_irecv. + + COMPLEX(kind=real_4) :: msgin + !! Scalar data to send + INTEGER, INTENT(IN) :: dest + !! Which process to send to + COMPLEX(kind=real_4) :: msgout + !! Receive data into this pointer + INTEGER, INTENT(IN) :: source + !! Process to receive from + TYPE(mp_comm_type), INTENT(IN) :: comm + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(out) :: send_request, recv_request + !! Request handle for the send + !! Request handle for the receive + INTEGER, INTENT(in), OPTIONAL :: tag + !! tag to differentiate requests + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isendrecv_c' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: my_tag +#endif - SUBROUTINE mp_isendrecv_c (msgin, dest, msgout, source, comm, send_request, & - recv_request, tag) - !! Non-blocking send and receive of a scalar - !! - !! Implementation - !! Calls mpi_isend and mpi_irecv. + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + my_tag = 0 + IF (PRESENT(tag)) my_tag = tag - COMPLEX(kind=real_4) :: msgin - !! Scalar data to send - INTEGER, INTENT(IN) :: dest - !! Which process to send to - COMPLEX(kind=real_4) :: msgout - !! Receive data into this pointer - INTEGER, INTENT(IN) :: source - !! Process to receive from - TYPE(mp_comm_type), INTENT(IN) :: comm - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(out) :: send_request, recv_request - !! Request handle for the send - !! Request handle for the receive - INTEGER, INTENT(in), OPTIONAL :: tag - !! tag to differentiate requests - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isendrecv_c' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: my_tag -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - my_tag = 0 - IF (PRESENT(tag)) my_tag = tag + CALL mpi_irecv(msgout, 1, MPI_COMPLEX, source, my_tag, & + comm%handle, recv_request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) + + CALL mpi_isend(msgin, 1, MPI_COMPLEX, dest, my_tag, & + comm%handle, send_request%handle, ierr) + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) + + CALL add_perf(perf_id=8, msg_size=2*(2*real_4_size)) +#else + MARK_USED(dest) + MARK_USED(source) + MARK_USED(comm) + MARK_USED(tag) + send_request = mp_request_null + recv_request = mp_request_null + msgout = msgin +#endif + CALL timestop(handle) + END SUBROUTINE mp_isendrecv_c + + SUBROUTINE mp_isendrecv_cv(msgin, dest, msgout, source, comm, send_request, & + recv_request, tag) + !! Non-blocking send and receive of a vector + !! + !! Implementation + !! Calls mpi_isend and mpi_irecv. + !! @note + !! arrays can be pointers or assumed shape, but they must be contiguous! - CALL mpi_irecv(msgout, 1, MPI_COMPLEX, source, my_tag, & - comm%handle, recv_request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) - - CALL mpi_isend(msgin, 1, MPI_COMPLEX, dest, my_tag, & - comm%handle, send_request%handle, ierr) - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) - - CALL add_perf(perf_id=8, msg_size=2*(2*real_4_size)) -#else - MARK_USED(dest) - MARK_USED(source) - MARK_USED(comm) - MARK_USED(tag) - send_request = mp_request_null - recv_request = mp_request_null - msgout = msgin -#endif - CALL timestop(handle) - END SUBROUTINE mp_isendrecv_c - - SUBROUTINE mp_isendrecv_cv(msgin, dest, msgout, source, comm, send_request, & - recv_request, tag) - !! Non-blocking send and receive of a vector - !! - !! Implementation - !! Calls mpi_isend and mpi_irecv. - !! @note - !! arrays can be pointers or assumed shape, but they must be contiguous! - - COMPLEX(kind=real_4), CONTIGUOUS, DIMENSION(:) :: msgin - !! Vector data to send - INTEGER, INTENT(IN) :: dest - !! Which process to send to - COMPLEX(kind=real_4), CONTIGUOUS, DIMENSION(:) :: msgout - !! Receive data into this pointer - INTEGER, INTENT(IN) :: source - !! Process to receive from - TYPE(mp_comm_type), INTENT(IN) :: comm - !! Message passing environment identifier - TYPE(mp_request_type), INTENT(out) :: send_request, recv_request - !! Request handle for the send - !! Request handle for the receive - INTEGER, INTENT(in), OPTIONAL :: tag - !! tag to differentiate requests - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isendrecv_cv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, my_tag - COMPLEX(kind=real_4) :: foo -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - my_tag = 0 - IF (PRESENT(tag)) my_tag = tag - - msglen = SIZE(msgout, 1) - IF (msglen > 0) THEN - CALL mpi_irecv(msgout, msglen, MPI_COMPLEX, source, my_tag, & - comm%handle, recv_request%handle, ierr) - ELSE - CALL mpi_irecv(foo, msglen, MPI_COMPLEX, source, my_tag, & - comm%handle, recv_request%handle, ierr) - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) - - msglen = SIZE(msgin, 1) - IF (msglen > 0) THEN - CALL mpi_isend(msgin, msglen, MPI_COMPLEX, dest, my_tag, & - comm%handle, send_request%handle, ierr) - ELSE - CALL mpi_isend(foo, msglen, MPI_COMPLEX, dest, my_tag, & - comm%handle, send_request%handle, ierr) - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) - - msglen = (msglen + SIZE(msgout, 1) + 1)/2 - CALL add_perf(perf_id=8, msg_size=msglen*(2*real_4_size)) -#else - MARK_USED(dest) - MARK_USED(source) - MARK_USED(comm) - MARK_USED(tag) - send_request = mp_request_null - recv_request = mp_request_null - msgout = msgin -#endif - CALL timestop(handle) - END SUBROUTINE mp_isendrecv_cv - - SUBROUTINE mp_isend_cv(msgin, dest, comm, request, tag) - !! Non-blocking send of vector data - !! @note see mp_isendrecv_cv - !! @endnote - !! @note - !! arrays can be pointers or assumed shape, but they must be contiguous! - - COMPLEX(kind=real_4), CONTIGUOUS, DIMENSION(:) :: msgin - INTEGER, INTENT(IN) :: dest - TYPE(mp_comm_type), INTENT(IN) :: comm - TYPE(mp_request_type), INTENT(out) :: request - INTEGER, INTENT(in), OPTIONAL :: tag - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isend_cv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, my_tag - COMPLEX(kind=real_4) :: foo(1) -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - my_tag = 0 - IF (PRESENT(tag)) my_tag = tag - - msglen = SIZE(msgin) - IF (msglen > 0) THEN - CALL mpi_isend(msgin, msglen, MPI_COMPLEX, dest, my_tag, & - comm%handle, request%handle, ierr) - ELSE - CALL mpi_isend(foo, msglen, MPI_COMPLEX, dest, my_tag, & - comm%handle, request%handle, ierr) - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) - - CALL add_perf(perf_id=11, msg_size=msglen*(2*real_4_size)) -#else - MARK_USED(msgin) - MARK_USED(dest) - MARK_USED(comm) - MARK_USED(request) - MARK_USED(tag) - ierr = 1 - request = mp_request_null - CALL mp_stop(ierr, "mp_isend called in non parallel case") -#endif - CALL timestop(handle) - END SUBROUTINE mp_isend_cv + COMPLEX(kind=real_4), CONTIGUOUS, DIMENSION(:) :: msgin + !! Vector data to send + INTEGER, INTENT(IN) :: dest + !! Which process to send to + COMPLEX(kind=real_4), CONTIGUOUS, DIMENSION(:) :: msgout + !! Receive data into this pointer + INTEGER, INTENT(IN) :: source + !! Process to receive from + TYPE(mp_comm_type), INTENT(IN) :: comm + !! Message passing environment identifier + TYPE(mp_request_type), INTENT(out) :: send_request, recv_request + !! Request handle for the send + !! Request handle for the receive + INTEGER, INTENT(in), OPTIONAL :: tag + !! tag to differentiate requests + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isendrecv_cv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, my_tag + COMPLEX(kind=real_4) :: foo +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + my_tag = 0 + IF (PRESENT(tag)) my_tag = tag + + msglen = SIZE(msgout, 1) + IF (msglen > 0) THEN + CALL mpi_irecv(msgout, msglen, MPI_COMPLEX, source, my_tag, & + comm%handle, recv_request%handle, ierr) + ELSE + CALL mpi_irecv(foo, msglen, MPI_COMPLEX, source, my_tag, & + comm%handle, recv_request%handle, ierr) + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) + + msglen = SIZE(msgin, 1) + IF (msglen > 0) THEN + CALL mpi_isend(msgin, msglen, MPI_COMPLEX, dest, my_tag, & + comm%handle, send_request%handle, ierr) + ELSE + CALL mpi_isend(foo, msglen, MPI_COMPLEX, dest, my_tag, & + comm%handle, send_request%handle, ierr) + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) + + msglen = (msglen + SIZE(msgout, 1) + 1)/2 + CALL add_perf(perf_id=8, msg_size=msglen*(2*real_4_size)) +#else + MARK_USED(dest) + MARK_USED(source) + MARK_USED(comm) + MARK_USED(tag) + send_request = mp_request_null + recv_request = mp_request_null + msgout = msgin +#endif + CALL timestop(handle) + END SUBROUTINE mp_isendrecv_cv + + SUBROUTINE mp_isend_cv(msgin, dest, comm, request, tag) + !! Non-blocking send of vector data + !! @note see mp_isendrecv_cv + !! @endnote + !! @note + !! arrays can be pointers or assumed shape, but they must be contiguous! + + COMPLEX(kind=real_4), CONTIGUOUS, DIMENSION(:) :: msgin + INTEGER, INTENT(IN) :: dest + TYPE(mp_comm_type), INTENT(IN) :: comm + TYPE(mp_request_type), INTENT(out) :: request + INTEGER, INTENT(in), OPTIONAL :: tag + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isend_cv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, my_tag + COMPLEX(kind=real_4) :: foo(1) +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + my_tag = 0 + IF (PRESENT(tag)) my_tag = tag + + msglen = SIZE(msgin) + IF (msglen > 0) THEN + CALL mpi_isend(msgin, msglen, MPI_COMPLEX, dest, my_tag, & + comm%handle, request%handle, ierr) + ELSE + CALL mpi_isend(foo, msglen, MPI_COMPLEX, dest, my_tag, & + comm%handle, request%handle, ierr) + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) + + CALL add_perf(perf_id=11, msg_size=msglen*(2*real_4_size)) +#else + MARK_USED(msgin) + MARK_USED(dest) + MARK_USED(comm) + MARK_USED(request) + MARK_USED(tag) + ierr = 1 + request = mp_request_null + CALL mp_stop(ierr, "mp_isend called in non parallel case") +#endif + CALL timestop(handle) + END SUBROUTINE mp_isend_cv + + SUBROUTINE mp_isend_cm2(msgin, dest, comm, request, tag) + !! Non-blocking send of matrix data + !! @note see mp_isendrecv_cv + !! @endnote + !! @note see mp_isend_cv + !! @endnote + !! @note + !! arrays can be pointers or assumed shape, but they must be contiguous! + + COMPLEX(kind=real_4), DIMENSION(:, :), CONTIGUOUS :: msgin + INTEGER, INTENT(IN) :: dest + TYPE(mp_comm_type), INTENT(IN) :: comm + TYPE(mp_request_type), INTENT(out) :: request + INTEGER, INTENT(in), OPTIONAL :: tag + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isend_cm2' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, my_tag + COMPLEX(kind=real_4) :: foo(1) +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + my_tag = 0 + IF (PRESENT(tag)) my_tag = tag - SUBROUTINE mp_isend_cm2(msgin, dest, comm, request, tag) - !! Non-blocking send of matrix data - !! @note see mp_isendrecv_cv - !! @endnote - !! @note see mp_isend_cv - !! @endnote - !! @note - !! arrays can be pointers or assumed shape, but they must be contiguous! - - COMPLEX(kind=real_4), DIMENSION(:, :), CONTIGUOUS :: msgin - INTEGER, INTENT(IN) :: dest - TYPE(mp_comm_type), INTENT(IN) :: comm - TYPE(mp_request_type), INTENT(out) :: request - INTEGER, INTENT(in), OPTIONAL :: tag - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_isend_cm2' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, my_tag - COMPLEX(kind=real_4) :: foo(1) -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - my_tag = 0 - IF (PRESENT(tag)) my_tag = tag - - msglen = SIZE(msgin, 1)*SIZE(msgin, 2) - IF (msglen > 0) THEN - CALL mpi_isend(msgin, msglen, MPI_COMPLEX, dest, my_tag, & - comm%handle, request%handle, ierr) - ELSE - CALL mpi_isend(foo, msglen, MPI_COMPLEX, dest, my_tag, & - comm%handle, request%handle, ierr) - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) - - CALL add_perf(perf_id=11, msg_size=msglen*(2*real_4_size)) -#else - MARK_USED(msgin) - MARK_USED(dest) - MARK_USED(comm) - MARK_USED(request) - MARK_USED(tag) - ierr = 1 - request = mp_request_null - CALL mp_stop(ierr, "mp_isend called in non parallel case") -#endif - CALL timestop(handle) - END SUBROUTINE mp_isend_cm2 - - SUBROUTINE mp_irecv_cv(msgout, source, comm, request, tag) - !! Non-blocking receive of vector data - !! @note see mp_isendrecv_cv - !! @endnote - !! @note - !! arrays can be pointers or assumed shape, but they must be contiguous! - - COMPLEX(kind=real_4), CONTIGUOUS, DIMENSION(:) :: msgout - INTEGER, INTENT(IN) :: source - TYPE(mp_comm_type), INTENT(IN) :: comm - TYPE(mp_request_type), INTENT(out) :: request - INTEGER, INTENT(in), OPTIONAL :: tag - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_irecv_cv' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, my_tag - COMPLEX(kind=real_4) :: foo(1) -#endif + msglen = SIZE(msgin, 1)*SIZE(msgin, 2) + IF (msglen > 0) THEN + CALL mpi_isend(msgin, msglen, MPI_COMPLEX, dest, my_tag, & + comm%handle, request%handle, ierr) + ELSE + CALL mpi_isend(foo, msglen, MPI_COMPLEX, dest, my_tag, & + comm%handle, request%handle, ierr) + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_isend @ "//routineN) + + CALL add_perf(perf_id=11, msg_size=msglen*(2*real_4_size)) +#else + MARK_USED(msgin) + MARK_USED(dest) + MARK_USED(comm) + MARK_USED(request) + MARK_USED(tag) + ierr = 1 + request = mp_request_null + CALL mp_stop(ierr, "mp_isend called in non parallel case") +#endif + CALL timestop(handle) + END SUBROUTINE mp_isend_cm2 + + SUBROUTINE mp_irecv_cv(msgout, source, comm, request, tag) + !! Non-blocking receive of vector data + !! @note see mp_isendrecv_cv + !! @endnote + !! @note + !! arrays can be pointers or assumed shape, but they must be contiguous! + + COMPLEX(kind=real_4), CONTIGUOUS, DIMENSION(:) :: msgout + INTEGER, INTENT(IN) :: source + TYPE(mp_comm_type), INTENT(IN) :: comm + TYPE(mp_request_type), INTENT(out) :: request + INTEGER, INTENT(in), OPTIONAL :: tag + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_irecv_cv' + + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, my_tag + COMPLEX(kind=real_4) :: foo(1) +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + my_tag = 0 + IF (PRESENT(tag)) my_tag = tag + + msglen = SIZE(msgout) + IF (msglen > 0) THEN + CALL mpi_irecv(msgout, msglen, MPI_COMPLEX, source, my_tag, & + comm%handle, request%handle, ierr) + ELSE + CALL mpi_irecv(foo, msglen, MPI_COMPLEX, source, my_tag, & + comm%handle, request%handle, ierr) + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) + + CALL add_perf(perf_id=12, msg_size=msglen*(2*real_4_size)) +#else + DBCSR_ABORT("mp_irecv called in non parallel case") + MARK_USED(msgout) + MARK_USED(source) + MARK_USED(comm) + MARK_USED(request) + MARK_USED(tag) + request = mp_request_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_irecv_cv - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - my_tag = 0 - IF (PRESENT(tag)) my_tag = tag - - msglen = SIZE(msgout) - IF (msglen > 0) THEN - CALL mpi_irecv(msgout, msglen, MPI_COMPLEX, source, my_tag, & - comm%handle, request%handle, ierr) - ELSE - CALL mpi_irecv(foo, msglen, MPI_COMPLEX, source, my_tag, & - comm%handle, request%handle, ierr) - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) + SUBROUTINE mp_irecv_cm2(msgout, source, comm, request, tag) + !! Non-blocking receive of matrix data + !! @note see mp_isendrecv_cv + !! @endnote + !! @note see mp_irecv_cv + !! @endnote + !! @note + !! arrays can be pointers or assumed shape, but they must be contiguous! + + COMPLEX(kind=real_4), DIMENSION(:, :), CONTIGUOUS :: msgout + INTEGER, INTENT(IN) :: source + TYPE(mp_comm_type), INTENT(IN) :: comm + TYPE(mp_request_type), INTENT(out) :: request + INTEGER, INTENT(in), OPTIONAL :: tag + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_irecv_cm2' - CALL add_perf(perf_id=12, msg_size=msglen*(2*real_4_size)) -#else - DBCSR_ABORT("mp_irecv called in non parallel case") - MARK_USED(msgout) - MARK_USED(source) - MARK_USED(comm) - MARK_USED(request) - MARK_USED(tag) - request = mp_request_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_irecv_cv + INTEGER :: handle, ierr +#if defined(__parallel) + INTEGER :: msglen, my_tag + COMPLEX(kind=real_4) :: foo(1) +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + my_tag = 0 + IF (PRESENT(tag)) my_tag = tag - SUBROUTINE mp_irecv_cm2(msgout, source, comm, request, tag) - !! Non-blocking receive of matrix data - !! @note see mp_isendrecv_cv - !! @endnote - !! @note see mp_irecv_cv - !! @endnote - !! @note - !! arrays can be pointers or assumed shape, but they must be contiguous! - - COMPLEX(kind=real_4), DIMENSION(:, :), CONTIGUOUS :: msgout - INTEGER, INTENT(IN) :: source - TYPE(mp_comm_type), INTENT(IN) :: comm - TYPE(mp_request_type), INTENT(out) :: request - INTEGER, INTENT(in), OPTIONAL :: tag - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_irecv_cm2' - - INTEGER :: handle, ierr -#if defined(__parallel) - INTEGER :: msglen, my_tag - COMPLEX(kind=real_4) :: foo(1) -#endif + msglen = SIZE(msgout, 1)*SIZE(msgout, 2) + IF (msglen > 0) THEN + CALL mpi_irecv(msgout, msglen, MPI_COMPLEX, source, my_tag, & + comm%handle, request%handle, ierr) + ELSE + CALL mpi_irecv(foo, msglen, MPI_COMPLEX, source, my_tag, & + comm%handle, request%handle, ierr) + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) + + CALL add_perf(perf_id=12, msg_size=msglen*(2*real_4_size)) +#else + MARK_USED(msgout) + MARK_USED(source) + MARK_USED(comm) + MARK_USED(request) + MARK_USED(tag) + request = mp_request_null + DBCSR_ABORT("mp_irecv called in non parallel case") +#endif + CALL timestop(handle) + END SUBROUTINE mp_irecv_cm2 - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - my_tag = 0 - IF (PRESENT(tag)) my_tag = tag - - msglen = SIZE(msgout, 1)*SIZE(msgout, 2) - IF (msglen > 0) THEN - CALL mpi_irecv(msgout, msglen, MPI_COMPLEX, source, my_tag, & - comm%handle, request%handle, ierr) - ELSE - CALL mpi_irecv(foo, msglen, MPI_COMPLEX, source, my_tag, & - comm%handle, request%handle, ierr) - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_irecv @ "//routineN) + SUBROUTINE mp_win_create_cv(base, comm, win) + !! Window initialization function for vector data + !! @note + !! arrays can be pointers or assumed shape, but they must be contiguous! + + COMPLEX(kind=real_4), CONTIGUOUS, DIMENSION(:) :: base + TYPE(mp_comm_type), INTENT(IN) :: comm + TYPE(mp_win_type), INTENT(OUT) :: win + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_win_create_cv' + + INTEGER :: ierr, handle +#if defined(__parallel) + INTEGER(kind=mpi_address_kind) :: len + COMPLEX(kind=real_4) :: foo(1) +#endif - CALL add_perf(perf_id=12, msg_size=msglen*(2*real_4_size)) -#else - MARK_USED(msgout) - MARK_USED(source) - MARK_USED(comm) - MARK_USED(request) - MARK_USED(tag) - request = mp_request_null - DBCSR_ABORT("mp_irecv called in non parallel case") -#endif - CALL timestop(handle) - END SUBROUTINE mp_irecv_cm2 - - SUBROUTINE mp_win_create_cv(base, comm, win) - !! Window initialization function for vector data - !! @note - !! arrays can be pointers or assumed shape, but they must be contiguous! - - COMPLEX(kind=real_4), CONTIGUOUS, DIMENSION(:) :: base - TYPE(mp_comm_type), INTENT(IN) :: comm - TYPE(mp_win_type), INTENT(OUT) :: win - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_win_create_cv' - - INTEGER :: ierr, handle -#if defined(__parallel) - INTEGER(kind=mpi_address_kind) :: len - COMPLEX(kind=real_4) :: foo(1) -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - - len = SIZE(base)*(2*real_4_size) - IF (len > 0) THEN - CALL mpi_win_create(base, len, (2*real_4_size), MPI_INFO_NULL, comm%handle, win%handle, ierr) - ELSE - CALL mpi_win_create(foo, len, (2*real_4_size), MPI_INFO_NULL, comm%handle, win%handle, ierr) - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_win_create @ "//routineN) -#else - MARK_USED(base) - MARK_USED(comm) - win = mp_win_null -#endif - CALL timestop(handle) - END SUBROUTINE mp_win_create_cv - - SUBROUTINE mp_rget_cv(base, source, win, win_data, myproc, disp, request, & - origin_datatype, target_datatype) - !! Single-sided get function for vector data - !! @note - !! arrays can be pointers or assumed shape, but they must be contiguous! - - COMPLEX(kind=real_4), CONTIGUOUS, DIMENSION(:) :: base - INTEGER, INTENT(IN) :: source - TYPE(mp_win_type), INTENT(IN) :: win - COMPLEX(kind=real_4), CONTIGUOUS, DIMENSION(:) :: win_data - INTEGER, INTENT(IN), OPTIONAL :: myproc, disp - TYPE(mp_request_type), INTENT(OUT) :: request - TYPE(mp_type_descriptor_type), INTENT(IN), OPTIONAL :: origin_datatype, target_datatype - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_rget_cv' - - INTEGER :: ierr, handle -#if defined(__parallel) - INTEGER :: len, & - origin_len, target_len - LOGICAL :: do_local_copy - INTEGER(kind=mpi_address_kind) :: disp_aint - MPI_DATA_TYPE :: handle_origin_datatype, handle_target_datatype -#endif - - ierr = 0 - CALL timeset(routineN, handle) - -#if defined(__parallel) - len = SIZE(base) - disp_aint = 0 - IF (PRESENT(disp)) THEN - disp_aint = INT(disp, KIND=mpi_address_kind) - END IF - handle_origin_datatype = MPI_COMPLEX - origin_len = len - IF (PRESENT(origin_datatype)) THEN - handle_origin_datatype = origin_datatype%type_handle - origin_len = 1 - END IF - handle_target_datatype = MPI_COMPLEX - target_len = len - IF (PRESENT(target_datatype)) THEN - handle_target_datatype = target_datatype%type_handle - target_len = 1 - END IF - IF (len > 0) THEN - do_local_copy = .FALSE. -#if !defined(__DBCSR_DISABLE_RMA_LOCAL_COPY) - IF (PRESENT(myproc) .AND. .NOT. PRESENT(origin_datatype) .AND. .NOT. PRESENT(target_datatype)) THEN - IF (myproc .EQ. source) do_local_copy = .TRUE. - END IF -#else - MARK_USED(myproc) -#endif - IF (do_local_copy) THEN -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(base,win_data,disp_aint,len) -#endif - base(:) = win_data(disp_aint + 1:disp_aint + len) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif - request = mp_request_null - ierr = 0 - ELSE - CALL mpi_rget(base, origin_len, handle_origin_datatype, source, disp_aint, & - target_len, handle_target_datatype, win%handle, request%handle, ierr) - END IF - ELSE - request = mp_request_null - ierr = 0 - END IF - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_rget @ "//routineN) - - CALL add_perf(perf_id=25, msg_size=SIZE(base)*(2*real_4_size)) -#else - MARK_USED(source) - MARK_USED(win) - MARK_USED(myproc) - MARK_USED(origin_datatype) - MARK_USED(target_datatype) - - request = mp_request_null - ! - IF (PRESENT(disp)) THEN - base(:) = win_data(disp + 1:disp + SIZE(base)) - ELSE - base(:) = win_data(:SIZE(base)) - END IF - -#endif + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + + len = SIZE(base)*(2*real_4_size) + IF (len > 0) THEN + CALL mpi_win_create(base, len, (2*real_4_size), MPI_INFO_NULL, comm%handle, win%handle, ierr) + ELSE + CALL mpi_win_create(foo, len, (2*real_4_size), MPI_INFO_NULL, comm%handle, win%handle, ierr) + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_win_create @ "//routineN) +#else + MARK_USED(base) + MARK_USED(comm) + win = mp_win_null +#endif + CALL timestop(handle) + END SUBROUTINE mp_win_create_cv + + SUBROUTINE mp_rget_cv(base, source, win, win_data, myproc, disp, request, & + origin_datatype, target_datatype) + !! Single-sided get function for vector data + !! @note + !! arrays can be pointers or assumed shape, but they must be contiguous! + + COMPLEX(kind=real_4), CONTIGUOUS, DIMENSION(:) :: base + INTEGER, INTENT(IN) :: source + TYPE(mp_win_type), INTENT(IN) :: win + COMPLEX(kind=real_4), CONTIGUOUS, DIMENSION(:) :: win_data + INTEGER, INTENT(IN), OPTIONAL :: myproc, disp + TYPE(mp_request_type), INTENT(OUT) :: request + TYPE(mp_type_descriptor_type), INTENT(IN), OPTIONAL :: origin_datatype, target_datatype + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_rget_cv' + + INTEGER :: ierr, handle +#if defined(__parallel) + INTEGER :: len, & + origin_len, target_len + LOGICAL :: do_local_copy + INTEGER(kind=mpi_address_kind) :: disp_aint + MPI_DATA_TYPE :: handle_origin_datatype, handle_target_datatype +#endif + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + len = SIZE(base) + disp_aint = 0 + IF (PRESENT(disp)) THEN + disp_aint = INT(disp, KIND=mpi_address_kind) + END IF + handle_origin_datatype = MPI_COMPLEX + origin_len = len + IF (PRESENT(origin_datatype)) THEN + handle_origin_datatype = origin_datatype%type_handle + origin_len = 1 + END IF + handle_target_datatype = MPI_COMPLEX + target_len = len + IF (PRESENT(target_datatype)) THEN + handle_target_datatype = target_datatype%type_handle + target_len = 1 + END IF + IF (len > 0) THEN + do_local_copy = .FALSE. +#if !defined(__DBCSR_DISABLE_RMA_LOCAL_COPY) + IF (PRESENT(myproc) .AND. .NOT. PRESENT(origin_datatype) .AND. .NOT. PRESENT(target_datatype)) THEN + IF (myproc .EQ. source) do_local_copy = .TRUE. + END IF +#else + MARK_USED(myproc) +#endif + IF (do_local_copy) THEN + base(:) = win_data(disp_aint + 1:disp_aint + len) + request = mp_request_null + ierr = 0 + ELSE + CALL mpi_rget(base, origin_len, handle_origin_datatype, source, disp_aint, & + target_len, handle_target_datatype, win%handle, request%handle, ierr) + END IF + ELSE + request = mp_request_null + ierr = 0 + END IF + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_rget @ "//routineN) + + CALL add_perf(perf_id=25, msg_size=SIZE(base)*(2*real_4_size)) +#else + MARK_USED(source) + MARK_USED(win) + MARK_USED(myproc) + MARK_USED(origin_datatype) + MARK_USED(target_datatype) + + request = mp_request_null + ! + IF (PRESENT(disp)) THEN + base(:) = win_data(disp + 1:disp + SIZE(base)) + ELSE + base(:) = win_data(:SIZE(base)) + END IF + +#endif + CALL timestop(handle) + END SUBROUTINE mp_rget_cv + +! ***************************************************************************** +! *************************************************************************** + FUNCTION mp_type_indexed_make_c (count, lengths, displs) & + RESULT(type_descriptor) + INTEGER, INTENT(IN) :: count + INTEGER, DIMENSION(1:count), INTENT(IN), TARGET :: lengths, displs + TYPE(mp_type_descriptor_type) :: type_descriptor + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_type_indexed_make_c' + + INTEGER :: ierr, handle + + ierr = 0 + CALL timeset(routineN, handle) + +#if defined(__parallel) + CALL mpi_type_indexed(count, lengths, displs, MPI_COMPLEX, & + type_descriptor%type_handle, ierr) + IF (ierr /= 0) & + DBCSR_ABORT("MPI_Type_Indexed @ "//routineN) + CALL mpi_type_commit(type_descriptor%type_handle, ierr) + IF (ierr /= 0) & + DBCSR_ABORT("MPI_Type_commit @ "//routineN) +#else + type_descriptor%type_handle = 5 +#endif + type_descriptor%length = count + NULLIFY (type_descriptor%subtype) + type_descriptor%vector_descriptor(1:2) = 1 + type_descriptor%has_indexing = .TRUE. + type_descriptor%index_descriptor%index => lengths + type_descriptor%index_descriptor%chunks => displs + CALL timestop(handle) - END SUBROUTINE mp_rget_cv - -! ***************************************************************************** -! *************************************************************************** - FUNCTION mp_type_indexed_make_c (count, lengths, displs) & - RESULT(type_descriptor) - INTEGER, INTENT(IN) :: count - INTEGER, DIMENSION(1:count), INTENT(IN), TARGET :: lengths, displs - TYPE(mp_type_descriptor_type) :: type_descriptor - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_type_indexed_make_c' - - INTEGER :: ierr, handle - - ierr = 0 - CALL timeset(routineN, handle) + + END FUNCTION mp_type_indexed_make_c + + SUBROUTINE mp_allocate_c (DATA, len, stat) + !! Allocates special parallel memory + + COMPLEX(kind=real_4), DIMENSION(:), POINTER, CONTIGUOUS :: DATA + !! pointer to integer array to allocate + INTEGER, INTENT(IN) :: len + !! number of integers to allocate + INTEGER, INTENT(OUT), OPTIONAL :: stat + !! allocation status result + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allocate_c' + + INTEGER :: ierr, handle -#if defined(__parallel) - CALL mpi_type_indexed(count, lengths, displs, MPI_COMPLEX, & - type_descriptor%type_handle, ierr) - IF (ierr /= 0) & - DBCSR_ABORT("MPI_Type_Indexed @ "//routineN) - CALL mpi_type_commit(type_descriptor%type_handle, ierr) - IF (ierr /= 0) & - DBCSR_ABORT("MPI_Type_commit @ "//routineN) + CALL timeset(routineN, handle) + + ierr = 0 +#if defined(__parallel) + NULLIFY (DATA) + CALL mp_alloc_mem(DATA, len, stat=ierr) + IF (ierr /= 0 .AND. .NOT. PRESENT(stat)) & + CALL mp_stop(ierr, "mpi_alloc_mem @ "//routineN) #else - type_descriptor%type_handle = 5 -#endif - type_descriptor%length = count - NULLIFY (type_descriptor%subtype) - type_descriptor%vector_descriptor(1:2) = 1 - type_descriptor%has_indexing = .TRUE. - type_descriptor%index_descriptor%index => lengths - type_descriptor%index_descriptor%chunks => displs - - CALL timestop(handle) + ALLOCATE (DATA(len), stat=ierr) + IF (ierr /= 0 .AND. .NOT. PRESENT(stat)) & + CALL mp_stop(ierr, "ALLOCATE @ "//routineN) +#endif + IF (PRESENT(stat)) stat = ierr + CALL timestop(handle) + END SUBROUTINE mp_allocate_c + + SUBROUTINE mp_deallocate_c (DATA, stat) + !! Deallocates special parallel memory - END FUNCTION mp_type_indexed_make_c - - SUBROUTINE mp_allocate_c (DATA, len, stat) - !! Allocates special parallel memory - - COMPLEX(kind=real_4), DIMENSION(:), POINTER, CONTIGUOUS :: DATA - !! pointer to integer array to allocate - INTEGER, INTENT(IN) :: len - !! number of integers to allocate - INTEGER, INTENT(OUT), OPTIONAL :: stat - !! allocation status result - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_allocate_c' - - INTEGER :: ierr, handle - - CALL timeset(routineN, handle) - - ierr = 0 -#if defined(__parallel) - NULLIFY (DATA) - CALL mp_alloc_mem(DATA, len, stat=ierr) - IF (ierr /= 0 .AND. .NOT. PRESENT(stat)) & - CALL mp_stop(ierr, "mpi_alloc_mem @ "//routineN) -#else - ALLOCATE (DATA(len), stat=ierr) - IF (ierr /= 0 .AND. .NOT. PRESENT(stat)) & - CALL mp_stop(ierr, "ALLOCATE @ "//routineN) -#endif - IF (PRESENT(stat)) stat = ierr - CALL timestop(handle) - END SUBROUTINE mp_allocate_c - - SUBROUTINE mp_deallocate_c (DATA, stat) - !! Deallocates special parallel memory - - COMPLEX(kind=real_4), DIMENSION(:), POINTER, CONTIGUOUS :: DATA - !! pointer to special memory to deallocate - INTEGER, INTENT(OUT), OPTIONAL :: stat - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_deallocate_c' - - INTEGER :: ierr, handle - - CALL timeset(routineN, handle) - - ierr = 0 -#if defined(__parallel) - CALL mp_free_mem(DATA, ierr) - IF (PRESENT(stat)) THEN - stat = ierr - ELSE - IF (ierr /= 0) CALL mp_stop(ierr, "mpi_free_mem @ "//routineN) - END IF - NULLIFY (DATA) -#else - DEALLOCATE (DATA) - IF (PRESENT(stat)) stat = 0 -#endif - CALL timestop(handle) - END SUBROUTINE mp_deallocate_c + COMPLEX(kind=real_4), DIMENSION(:), POINTER, CONTIGUOUS :: DATA + !! pointer to special memory to deallocate + INTEGER, INTENT(OUT), OPTIONAL :: stat + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_deallocate_c' + + INTEGER :: ierr, handle + + CALL timeset(routineN, handle) + + ierr = 0 +#if defined(__parallel) + CALL mp_free_mem(DATA, ierr) + IF (PRESENT(stat)) THEN + stat = ierr + ELSE + IF (ierr /= 0) CALL mp_stop(ierr, "mpi_free_mem @ "//routineN) + END IF + NULLIFY (DATA) +#else + DEALLOCATE (DATA) + IF (PRESENT(stat)) stat = 0 +#endif + CALL timestop(handle) + END SUBROUTINE mp_deallocate_c + + SUBROUTINE mp_file_write_at_cv(fh, offset, msg, msglen) + !! (parallel) Blocking individual file write using explicit offsets + !! (serial) Unformatted stream write + !! + !! MPI-I/O mapping mpi_file_write_at + !! + !! STREAM-I/O mapping WRITE + + COMPLEX(kind=real_4), INTENT(IN) :: msg(:) + !! data to be written to the file + TYPE(mp_file_type), INTENT(IN) :: fh + !! file handle (file storage unit) + INTEGER, INTENT(IN), OPTIONAL :: msglen + !! number of the elements of data + INTEGER(kind=file_offset), INTENT(IN) :: offset + !! file offset (position) + + INTEGER :: msg_len + + msg_len = SIZE(msg) + IF (PRESENT(msglen)) msg_len = msglen + +#if defined(__parallel) + BLOCK + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_cv' + INTEGER :: ierr + ierr = 0 + CALL MPI_FILE_WRITE_AT(fh%handle, offset, msg, msg_len, MPI_COMPLEX, MPI_STATUS_IGNORE, ierr) + IF (ierr .NE. 0) & + DBCSR_ABORT("mpi_file_write_at_cv @ "//routineN) + END BLOCK +#else + WRITE (UNIT=fh%handle, POS=offset + 1) msg(1:msg_len) +#endif + END SUBROUTINE mp_file_write_at_cv - SUBROUTINE mp_file_write_at_cv(fh, offset, msg, msglen) - !! (parallel) Blocking individual file write using explicit offsets - !! (serial) Unformatted stream write - !! - !! MPI-I/O mapping mpi_file_write_at - !! - !! STREAM-I/O mapping WRITE - - COMPLEX(kind=real_4), INTENT(IN) :: msg(:) - !! data to be written to the file - TYPE(mp_file_type), INTENT(IN) :: fh - !! file handle (file storage unit) - INTEGER, INTENT(IN), OPTIONAL :: msglen - !! number of the elements of data - INTEGER(kind=file_offset), INTENT(IN) :: offset - !! file offset (position) - - INTEGER :: msg_len - - msg_len = SIZE(msg) - IF (PRESENT(msglen)) msg_len = msglen - -#if defined(__parallel) - BLOCK - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_cv' - INTEGER :: ierr - ierr = 0 - CALL MPI_FILE_WRITE_AT(fh%handle, offset, msg, msg_len, MPI_COMPLEX, MPI_STATUS_IGNORE, ierr) - IF (ierr .NE. 0) & - DBCSR_ABORT("mpi_file_write_at_cv @ "//routineN) - END BLOCK -#else - WRITE (UNIT=fh%handle, POS=offset + 1) msg(1:msg_len) -#endif - END SUBROUTINE mp_file_write_at_cv - -! ***************************************************************************** -! ***************************************************************************** - SUBROUTINE mp_file_write_at_c (fh, offset, msg) - COMPLEX(kind=real_4), INTENT(IN) :: msg - TYPE(mp_file_type), INTENT(IN) :: fh - INTEGER(kind=file_offset), INTENT(IN) :: offset +! ***************************************************************************** +! ***************************************************************************** + SUBROUTINE mp_file_write_at_c (fh, offset, msg) + COMPLEX(kind=real_4), INTENT(IN) :: msg + TYPE(mp_file_type), INTENT(IN) :: fh + INTEGER(kind=file_offset), INTENT(IN) :: offset + +#if defined(__parallel) + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_c' + + INTEGER :: ierr + + ierr = 0 + CALL MPI_FILE_WRITE_AT(fh%handle, offset, msg, 1, MPI_COMPLEX, MPI_STATUS_IGNORE, ierr) + IF (ierr .NE. 0) & + DBCSR_ABORT("mpi_file_write_at_c @ "//routineN) +#else + WRITE (UNIT=fh%handle, POS=offset + 1) msg +#endif + END SUBROUTINE mp_file_write_at_c + + SUBROUTINE mp_file_write_at_all_cv(fh, offset, msg, msglen) + !! (parallel) Blocking collective file write using explicit offsets + !! (serial) Unformatted stream write + !! + !! MPI-I/O mapping mpi_file_write_at_all + !! + !! STREAM-I/O mapping WRITE + + COMPLEX(kind=real_4), INTENT(IN) :: msg(:) + TYPE(mp_file_type), INTENT(IN) :: fh + INTEGER, INTENT(IN), OPTIONAL :: msglen + INTEGER :: msg_len + INTEGER(kind=file_offset), INTENT(IN) :: offset + + msg_len = SIZE(msg) + IF (PRESENT(msglen)) msg_len = msglen +#if defined(__parallel) + BLOCK + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_all_cv' + INTEGER :: ierr + ierr = 0 -#if defined(__parallel) - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_c' - - INTEGER :: ierr - - ierr = 0 - CALL MPI_FILE_WRITE_AT(fh%handle, offset, msg, 1, MPI_COMPLEX, MPI_STATUS_IGNORE, ierr) - IF (ierr .NE. 0) & - DBCSR_ABORT("mpi_file_write_at_c @ "//routineN) -#else - WRITE (UNIT=fh%handle, POS=offset + 1) msg -#endif - END SUBROUTINE mp_file_write_at_c - - SUBROUTINE mp_file_write_at_all_cv(fh, offset, msg, msglen) - !! (parallel) Blocking collective file write using explicit offsets - !! (serial) Unformatted stream write - !! - !! MPI-I/O mapping mpi_file_write_at_all - !! - !! STREAM-I/O mapping WRITE - - COMPLEX(kind=real_4), INTENT(IN) :: msg(:) - TYPE(mp_file_type), INTENT(IN) :: fh - INTEGER, INTENT(IN), OPTIONAL :: msglen - INTEGER :: msg_len - INTEGER(kind=file_offset), INTENT(IN) :: offset - - msg_len = SIZE(msg) - IF (PRESENT(msglen)) msg_len = msglen -#if defined(__parallel) - BLOCK - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_all_cv' - INTEGER :: ierr - ierr = 0 - - CALL MPI_FILE_WRITE_AT_ALL(fh%handle, offset, msg, msg_len, MPI_COMPLEX, MPI_STATUS_IGNORE, ierr) - IF (ierr .NE. 0) & - DBCSR_ABORT("mpi_file_write_at_all_cv @ "//routineN) - END BLOCK -#else - WRITE (UNIT=fh%handle, POS=offset + 1) msg(1:msg_len) -#endif - END SUBROUTINE mp_file_write_at_all_cv + CALL MPI_FILE_WRITE_AT_ALL(fh%handle, offset, msg, msg_len, MPI_COMPLEX, MPI_STATUS_IGNORE, ierr) + IF (ierr .NE. 0) & + DBCSR_ABORT("mpi_file_write_at_all_cv @ "//routineN) + END BLOCK +#else + WRITE (UNIT=fh%handle, POS=offset + 1) msg(1:msg_len) +#endif + END SUBROUTINE mp_file_write_at_all_cv + +! ***************************************************************************** +! ***************************************************************************** + SUBROUTINE mp_file_write_at_all_c (fh, offset, msg) + COMPLEX(kind=real_4), INTENT(IN) :: msg + TYPE(mp_file_type), INTENT(IN) :: fh + INTEGER(kind=file_offset), INTENT(IN) :: offset + +#if defined(__parallel) + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_all_c' + + INTEGER :: ierr + + ierr = 0 + CALL MPI_FILE_WRITE_AT_ALL(fh%handle, offset, msg, 1, MPI_COMPLEX, MPI_STATUS_IGNORE, ierr) + IF (ierr .NE. 0) & + DBCSR_ABORT("mpi_file_write_at_all_c @ "//routineN) +#else + WRITE (UNIT=fh%handle, POS=offset + 1) msg +#endif + END SUBROUTINE mp_file_write_at_all_c + +! ***************************************************************************** +! ***************************************************************************** + SUBROUTINE mp_file_read_at_all_cv(fh, offset, msg, msglen) + !! (parallel) Blocking collective file read using explicit offsets + !! (serial) Unformatted stream read + !! + !! MPI-I/O mapping mpi_file_read_at_all + !! + !! STREAM-I/O mapping READ + + COMPLEX(kind=real_4), INTENT(OUT) :: msg(:) + TYPE(mp_file_type), INTENT(IN) :: fh + INTEGER, INTENT(IN), OPTIONAL :: msglen + INTEGER(kind=file_offset), INTENT(IN) :: offset -! ***************************************************************************** -! ***************************************************************************** - SUBROUTINE mp_file_write_at_all_c (fh, offset, msg) - COMPLEX(kind=real_4), INTENT(IN) :: msg - TYPE(mp_file_type), INTENT(IN) :: fh - INTEGER(kind=file_offset), INTENT(IN) :: offset - -#if defined(__parallel) - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_all_c' + INTEGER :: msg_len + + msg_len = SIZE(msg) + IF (PRESENT(msglen)) msg_len = msglen +#if defined(__parallel) + BLOCK + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_read_at_all_cv' + INTEGER :: ierr + ierr = 0 - INTEGER :: ierr - - ierr = 0 - CALL MPI_FILE_WRITE_AT_ALL(fh%handle, offset, msg, 1, MPI_COMPLEX, MPI_STATUS_IGNORE, ierr) - IF (ierr .NE. 0) & - DBCSR_ABORT("mpi_file_write_at_all_c @ "//routineN) -#else - WRITE (UNIT=fh%handle, POS=offset + 1) msg -#endif - END SUBROUTINE mp_file_write_at_all_c - -! ***************************************************************************** -! ***************************************************************************** - SUBROUTINE mp_file_read_at_all_cv(fh, offset, msg, msglen) - !! (parallel) Blocking collective file read using explicit offsets - !! (serial) Unformatted stream read - !! - !! MPI-I/O mapping mpi_file_read_at_all - !! - !! STREAM-I/O mapping READ + CALL MPI_FILE_READ_AT_ALL(fh%handle, offset, msg, msg_len, MPI_COMPLEX, MPI_STATUS_IGNORE, ierr) + IF (ierr .NE. 0) & + DBCSR_ABORT("mpi_file_read_at_all_cv @ "//routineN) + END BLOCK +#else + READ (UNIT=fh%handle, POS=offset + 1) msg(1:msg_len) +#endif + END SUBROUTINE mp_file_read_at_all_cv + +! ***************************************************************************** +! ***************************************************************************** + SUBROUTINE mp_file_read_at_all_c (fh, offset, msg) + COMPLEX(kind=real_4), INTENT(OUT) :: msg + TYPE(mp_file_type), INTENT(IN) :: fh + INTEGER(kind=file_offset), INTENT(IN) :: offset + +#if defined(__parallel) + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_read_at_all_c' + + INTEGER :: ierr - COMPLEX(kind=real_4), INTENT(OUT) :: msg(:) - TYPE(mp_file_type), INTENT(IN) :: fh - INTEGER, INTENT(IN), OPTIONAL :: msglen - INTEGER(kind=file_offset), INTENT(IN) :: offset - - INTEGER :: msg_len - - msg_len = SIZE(msg) - IF (PRESENT(msglen)) msg_len = msglen -#if defined(__parallel) - BLOCK - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_read_at_all_cv' - INTEGER :: ierr - ierr = 0 - - CALL MPI_FILE_READ_AT_ALL(fh%handle, offset, msg, msg_len, MPI_COMPLEX, MPI_STATUS_IGNORE, ierr) - IF (ierr .NE. 0) & - DBCSR_ABORT("mpi_file_read_at_all_cv @ "//routineN) - END BLOCK -#else - READ (UNIT=fh%handle, POS=offset + 1) msg(1:msg_len) -#endif - END SUBROUTINE mp_file_read_at_all_cv - -! ***************************************************************************** -! ***************************************************************************** - SUBROUTINE mp_file_read_at_all_c (fh, offset, msg) - COMPLEX(kind=real_4), INTENT(OUT) :: msg - TYPE(mp_file_type), INTENT(IN) :: fh - INTEGER(kind=file_offset), INTENT(IN) :: offset - -#if defined(__parallel) - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_read_at_all_c' - - INTEGER :: ierr - - ierr = 0 - CALL MPI_FILE_READ_AT_ALL(fh%handle, offset, msg, 1, MPI_COMPLEX, MPI_STATUS_IGNORE, ierr) - IF (ierr .NE. 0) & - DBCSR_ABORT("mpi_file_read_at_all_c @ "//routineN) -#else - READ (UNIT=fh%handle, POS=offset + 1) msg -#endif - END SUBROUTINE mp_file_read_at_all_c - -! ***************************************************************************** -! ***************************************************************************** - FUNCTION mp_type_make_c (ptr, & - vector_descriptor, index_descriptor) & - RESULT(type_descriptor) - COMPLEX(kind=real_4), DIMENSION(:), POINTER :: ptr - INTEGER, DIMENSION(2), INTENT(IN), OPTIONAL :: vector_descriptor - TYPE(mp_indexing_meta_type), INTENT(IN), OPTIONAL :: index_descriptor - TYPE(mp_type_descriptor_type) :: type_descriptor - - CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_type_make_c' - - INTEGER :: ierr - - ierr = 0 - NULLIFY (type_descriptor%subtype) - type_descriptor%length = SIZE(ptr) -#if defined(__parallel) - type_descriptor%type_handle = MPI_COMPLEX - CALL MPI_Get_address(ptr, type_descriptor%base, ierr) - IF (ierr /= 0) & - DBCSR_ABORT("MPI_Get_address @ "//routineN) -#else - type_descriptor%type_handle = 5 -#endif - type_descriptor%vector_descriptor(1:2) = 1 - type_descriptor%has_indexing = .FALSE. - type_descriptor%data_c => ptr - IF (PRESENT(vector_descriptor) .OR. PRESENT(index_descriptor)) THEN - DBCSR_ABORT(routineN//": Vectors and indices NYI") - END IF - END FUNCTION mp_type_make_c + ierr = 0 + CALL MPI_FILE_READ_AT_ALL(fh%handle, offset, msg, 1, MPI_COMPLEX, MPI_STATUS_IGNORE, ierr) + IF (ierr .NE. 0) & + DBCSR_ABORT("mpi_file_read_at_all_c @ "//routineN) +#else + READ (UNIT=fh%handle, POS=offset + 1) msg +#endif + END SUBROUTINE mp_file_read_at_all_c + +! ***************************************************************************** +! ***************************************************************************** + FUNCTION mp_type_make_c (ptr, & + vector_descriptor, index_descriptor) & + RESULT(type_descriptor) + COMPLEX(kind=real_4), DIMENSION(:), POINTER :: ptr + INTEGER, DIMENSION(2), INTENT(IN), OPTIONAL :: vector_descriptor + TYPE(mp_indexing_meta_type), INTENT(IN), OPTIONAL :: index_descriptor + TYPE(mp_type_descriptor_type) :: type_descriptor + + CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_type_make_c' + + INTEGER :: ierr + + ierr = 0 + NULLIFY (type_descriptor%subtype) + type_descriptor%length = SIZE(ptr) +#if defined(__parallel) + type_descriptor%type_handle = MPI_COMPLEX + CALL MPI_Get_address(ptr, type_descriptor%base, ierr) + IF (ierr /= 0) & + DBCSR_ABORT("MPI_Get_address @ "//routineN) +#else + type_descriptor%type_handle = 5 +#endif + type_descriptor%vector_descriptor(1:2) = 1 + type_descriptor%has_indexing = .FALSE. + type_descriptor%data_c => ptr + IF (PRESENT(vector_descriptor) .OR. PRESENT(index_descriptor)) THEN + DBCSR_ABORT(routineN//": Vectors and indices NYI") + END IF + END FUNCTION mp_type_make_c + +#if defined(__parallel) + SUBROUTINE mp_alloc_mem_c (DATA, len, stat) + !! Allocates an array, using MPI_ALLOC_MEM ... this is hackish + !! as the Fortran version returns an integer, which we take to be a C_PTR + + COMPLEX(kind=real_4), DIMENSION(:), POINTER, CONTIGUOUS :: DATA + !! data array to allocate + INTEGER, INTENT(IN) :: len + !! length (in data elements) of data array allocation + INTEGER, INTENT(OUT), OPTIONAL :: stat + !! allocation status result + + INTEGER :: size, ierr, length, & + mp_res + INTEGER(KIND=MPI_ADDRESS_KIND) :: mp_size + TYPE(C_PTR) :: mp_baseptr + MPI_INFO_TYPE :: mp_info + + length = MAX(len, 1) + CALL MPI_TYPE_SIZE(MPI_COMPLEX, size, ierr) + mp_size = INT(length, KIND=MPI_ADDRESS_KIND)*size + IF (mp_size .GT. mp_max_memory_size) THEN + DBCSR_ABORT("MPI cannot allocate more than 2 GiByte") + END IF + mp_info = MPI_INFO_NULL + CALL MPI_ALLOC_MEM(mp_size, mp_info, mp_baseptr, mp_res) + CALL C_F_POINTER(mp_baseptr, DATA, (/length/)) + IF (PRESENT(stat)) stat = mp_res + END SUBROUTINE mp_alloc_mem_c +#endif + +#if defined(__parallel) + SUBROUTINE mp_free_mem_c (DATA, stat) + !! Deallocates am array, ... this is hackish + !! as the Fortran version takes an integer, which we hope to get by reference -#if defined(__parallel) - SUBROUTINE mp_alloc_mem_c (DATA, len, stat) - !! Allocates an array, using MPI_ALLOC_MEM ... this is hackish - !! as the Fortran version returns an integer, which we take to be a C_PTR - - COMPLEX(kind=real_4), DIMENSION(:), POINTER, CONTIGUOUS :: DATA - !! data array to allocate - INTEGER, INTENT(IN) :: len - !! length (in data elements) of data array allocation - INTEGER, INTENT(OUT), OPTIONAL :: stat - !! allocation status result + COMPLEX(kind=real_4), DIMENSION(:), & + POINTER, CONTIGUOUS :: DATA + !! data array to allocate + INTEGER, INTENT(OUT), OPTIONAL :: stat + !! allocation status result + + INTEGER :: mp_res + CALL MPI_FREE_MEM(DATA, mp_res) + IF (PRESENT(stat)) stat = mp_res + END SUBROUTINE mp_free_mem_c +#endif - INTEGER :: size, ierr, length, & - mp_res - INTEGER(KIND=MPI_ADDRESS_KIND) :: mp_size - TYPE(C_PTR) :: mp_baseptr - MPI_INFO_TYPE :: mp_info - - length = MAX(len, 1) - CALL MPI_TYPE_SIZE(MPI_COMPLEX, size, ierr) - mp_size = INT(length, KIND=MPI_ADDRESS_KIND)*size - IF (mp_size .GT. mp_max_memory_size) THEN - DBCSR_ABORT("MPI cannot allocate more than 2 GiByte") - END IF - mp_info = MPI_INFO_NULL - CALL MPI_ALLOC_MEM(mp_size, mp_info, mp_baseptr, mp_res) - CALL C_F_POINTER(mp_baseptr, DATA, (/length/)) - IF (PRESENT(stat)) stat = mp_res - END SUBROUTINE mp_alloc_mem_c -#endif - -#if defined(__parallel) - SUBROUTINE mp_free_mem_c (DATA, stat) - !! Deallocates am array, ... this is hackish - !! as the Fortran version takes an integer, which we hope to get by reference - - COMPLEX(kind=real_4), DIMENSION(:), & - POINTER, CONTIGUOUS :: DATA - !! data array to allocate - INTEGER, INTENT(OUT), OPTIONAL :: stat - !! allocation status result - - INTEGER :: mp_res - CALL MPI_FREE_MEM(DATA, mp_res) - IF (PRESENT(stat)) stat = mp_res - END SUBROUTINE mp_free_mem_c -#endif - -# 5567 "/__w/dbcsr/dbcsr/src/mpi/dbcsr_mpiwrap.F" - -END MODULE dbcsr_mpiwrap +# 5561 "/__w/dbcsr/dbcsr/src/mpi/dbcsr_mpiwrap.F" + +END MODULE dbcsr_mpiwrap diff --git a/develop/sourcefile/dbcsr_operations.f.html b/develop/sourcefile/dbcsr_operations.f.html index b718506b841..944c05c61b0 100644 --- a/develop/sourcefile/dbcsr_operations.f.html +++ b/develop/sourcefile/dbcsr_operations.f.html @@ -248,7 +248,7 @@

    Source Code

    mp_sum #include "base/dbcsr_base_uses.f90" -!$ USE OMP_LIB, ONLY: omp_get_max_threads, omp_get_thread_num, omp_get_num_threads +!$ USE OMP_LIB, ONLY: omp_get_thread_num, omp_get_num_threads IMPLICIT NONE @@ -542,4306 +542,4287 @@

    Source Code

    CALL timeset(routineN, handle) SELECT CASE (dbcsr_get_data_type(matrix_a)) -#if defined(__DBCSR_DISABLE_WORKSHARE) - CASE (dbcsr_type_complex_4) - matrix_a%data_area%d%c_sp = (0.0, 0.0) - CASE (dbcsr_type_complex_8) - matrix_a%data_area%d%c_dp = (0.0_dp, 0.0_dp) - CASE (dbcsr_type_real_4) - matrix_a%data_area%d%r_sp = 0.0 - CASE (dbcsr_type_real_8) - matrix_a%data_area%d%r_dp = 0.0_dp -#else - CASE (dbcsr_type_complex_4) -!$OMP PARALLEL WORKSHARE DEFAULT(NONE), SHARED(matrix_a) - matrix_a%data_area%d%c_sp = (0.0, 0.0) -!$OMP END PARALLEL WORKSHARE - CASE (dbcsr_type_complex_8) -!$OMP PARALLEL WORKSHARE DEFAULT(NONE), SHARED(matrix_a) - matrix_a%data_area%d%c_dp = (0.0_dp, 0.0_dp) -!$OMP END PARALLEL WORKSHARE - CASE (dbcsr_type_real_4) -!$OMP PARALLEL WORKSHARE DEFAULT(NONE), SHARED(matrix_a) - matrix_a%data_area%d%r_sp = 0.0 -!$OMP END PARALLEL WORKSHARE - CASE (dbcsr_type_real_8) -!$OMP PARALLEL WORKSHARE DEFAULT(NONE), SHARED(matrix_a) - matrix_a%data_area%d%r_dp = 0.0_dp -!$OMP END PARALLEL WORKSHARE -#endif - END SELECT - CALL timestop(handle) - END SUBROUTINE dbcsr_zero - - SUBROUTINE dbcsr_scale_anytype(matrix_a, alpha_scalar, limits) - !! Scales a DBCSR matrix by alpha - !! - !! Limits - !! A 4-tuple describing (first_row, last_row, first_column, last_column). Set - !! to 0 to avoid limiting. + CASE (dbcsr_type_complex_4) + matrix_a%data_area%d%c_sp = (0.0, 0.0) + CASE (dbcsr_type_complex_8) + matrix_a%data_area%d%c_dp = (0.0_dp, 0.0_dp) + CASE (dbcsr_type_real_4) + matrix_a%data_area%d%r_sp = 0.0 + CASE (dbcsr_type_real_8) + matrix_a%data_area%d%r_dp = 0.0_dp + END SELECT + CALL timestop(handle) + END SUBROUTINE dbcsr_zero + + SUBROUTINE dbcsr_scale_anytype(matrix_a, alpha_scalar, limits) + !! Scales a DBCSR matrix by alpha + !! + !! Limits + !! A 4-tuple describing (first_row, last_row, first_column, last_column). Set + !! to 0 to avoid limiting. + + TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a + !! DBCSR matrix + TYPE(dbcsr_scalar_type), INTENT(IN) :: alpha_scalar + !! a scalar + INTEGER, DIMENSION(4), INTENT(IN), OPTIONAL :: limits + !! Scale only a subbox + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_scale_anytype' + INTEGER, PARAMETER :: first_col_i = 3, first_row_i = 1, & + last_col_i = 4, last_row_i = 2 + + INTEGER :: a_col, a_col_size, a_row, a_row_size, col_offset, handle, row_offset, & + scale_col_offset, scale_col_size, scale_row_offset, scale_row_size + INTEGER, DIMENSION(4) :: my_limits + LOGICAL :: do_scale, has_limits, tr + TYPE(dbcsr_data_obj) :: data_any + TYPE(dbcsr_iterator) :: iter + TYPE(dbcsr_scalar_type) :: one - TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a - !! DBCSR matrix - TYPE(dbcsr_scalar_type), INTENT(IN) :: alpha_scalar - !! a scalar - INTEGER, DIMENSION(4), INTENT(IN), OPTIONAL :: limits - !! Scale only a subbox - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_scale_anytype' - INTEGER, PARAMETER :: first_col_i = 3, first_row_i = 1, & - last_col_i = 4, last_row_i = 2 - - INTEGER :: a_col, a_col_size, a_row, a_row_size, col_offset, handle, row_offset, & - scale_col_offset, scale_col_size, scale_row_offset, scale_row_size - INTEGER, DIMENSION(4) :: my_limits - LOGICAL :: do_scale, has_limits, tr - TYPE(dbcsr_data_obj) :: data_any - TYPE(dbcsr_iterator) :: iter - TYPE(dbcsr_scalar_type) :: one - -! --------------------------------------------------------------------------- - - CALL timeset(routineN, handle) - - ! Limits are only honored if the argument is present and any are - ! non-zero. - IF (PRESENT(limits)) THEN - has_limits = ANY(limits(:) .NE. 0) - ELSE - has_limits = .FALSE. - END IF - my_limits(first_row_i) = 1 - my_limits(last_row_i) = dbcsr_nfullrows_total(matrix_a) - my_limits(first_col_i) = 1 - my_limits(last_col_i) = dbcsr_nfullcols_total(matrix_a) - IF (has_limits) THEN - IF (limits(last_col_i) .NE. 0) THEN - IF (debug_mod .AND. (limits(last_col_i) < 0 .OR. limits(last_col_i) > dbcsr_nfullcols_total(matrix_a))) & - DBCSR_ABORT("Specified last column is out of bounds.") - my_limits(last_col_i) = limits(last_col_i) - END IF - IF (limits(first_col_i) .NE. 0) THEN - IF (debug_mod .AND. (limits(first_col_i) < 0 .OR. limits(first_col_i) > dbcsr_nfullcols_total(matrix_a))) & - DBCSR_ABORT("Specified first column is out of bounds.") - my_limits(first_col_i) = limits(first_col_i) - END IF - IF (limits(last_row_i) .NE. 0) THEN - IF (debug_mod .AND. (limits(last_row_i) < 0 .OR. limits(last_row_i) > dbcsr_nfullrows_total(matrix_a))) & - DBCSR_ABORT("Specified last row is out of bounds.") - my_limits(last_row_i) = limits(last_row_i) - END IF - IF (limits(first_row_i) .NE. 0) THEN - IF (debug_mod .AND. (limits(first_row_i) < 0 .OR. limits(first_row_i) > dbcsr_nfullrows_total(matrix_a))) & - DBCSR_ABORT("Specified first row is out of bounds.") - my_limits(first_row_i) = limits(first_row_i) - END IF - END IF - ! - ! quick return if possible - one = dbcsr_scalar_one(dbcsr_scalar_get_type(alpha_scalar)) - do_scale = .NOT. dbcsr_scalar_are_equal(alpha_scalar, one) - ! - ! let's go - IF (do_scale) THEN -!$OMP PARALLEL DEFAULT (NONE) & -!$OMP PRIVATE (iter, data_any) & -!$OMP PRIVATE (a_row, a_col, tr, a_row_size, a_col_size, & -!$OMP row_offset, col_offset) & -!$OMP PRIVATE (scale_row_size, scale_col_size,& -!$OMP scale_row_offset, scale_col_offset) & -!$OMP SHARED (matrix_a, my_limits,alpha_scalar) - CALL dbcsr_data_init(data_any) - CALL dbcsr_data_new(data_any, dbcsr_type_1d_to_2d(dbcsr_get_data_type(matrix_a))) - CALL dbcsr_iterator_start(iter, matrix_a, read_only=.FALSE., & - contiguous_pointers=.FALSE., dynamic=.TRUE., & - dynamic_byrows=.TRUE., shared=.TRUE.) - iterations: DO WHILE (dbcsr_iterator_blocks_left(iter)) - CALL dbcsr_iterator_next_block(iter, a_row, a_col, data_any, tr, & - row_size=a_row_size, col_size=a_col_size, & - row_offset=row_offset, col_offset=col_offset) - IF (a_row_size .GT. 0 .AND. a_col_size .GT. 0) THEN - CALL frame_block_limit(a_row_size, row_offset, & - my_limits(first_row_i), my_limits(last_row_i), & - scale_row_size, scale_row_offset) - CALL frame_block_limit(a_col_size, col_offset, & - my_limits(first_col_i), my_limits(last_col_i), & - scale_col_size, scale_col_offset) - IF (tr) THEN - CALL swap(scale_row_size, scale_col_size) - CALL swap(scale_row_offset, scale_col_offset) - END IF - CALL dbcsr_block_scale(data_any, scale=alpha_scalar, & - row_size=scale_row_size, col_size=scale_col_size, & - lb=scale_row_offset, lb2=scale_col_offset) - END IF - END DO iterations - CALL dbcsr_iterator_stop(iter) - CALL dbcsr_data_clear_pointer(data_any) - CALL dbcsr_data_release(data_any) -!$OMP END PARALLEL - END IF - CALL timestop(handle) - END SUBROUTINE dbcsr_scale_anytype - - ELEMENTAL SUBROUTINE frame_block_limit(block_size, block_offset, & - first_limit, last_limit, & - frame_size, frame_offset) - !! Determines the effect of limits on a block - - INTEGER, INTENT(IN) :: block_size, block_offset, first_limit, & - last_limit - !! size of block - !! global offset of block - !! lower limit - !! upper limit - INTEGER, INTENT(OUT) :: frame_size, frame_offset - !! size of block region within the limits - !! starting position of the block region that is within the limits - - INTEGER :: f, l - - f = MAX(block_offset, first_limit) - l = MIN(block_offset + block_size - 1, last_limit) - frame_size = MAX(l - f + 1, 0) - frame_offset = MIN(f - block_offset + 1, block_size) - END SUBROUTINE frame_block_limit +! --------------------------------------------------------------------------- + + CALL timeset(routineN, handle) + + ! Limits are only honored if the argument is present and any are + ! non-zero. + IF (PRESENT(limits)) THEN + has_limits = ANY(limits(:) .NE. 0) + ELSE + has_limits = .FALSE. + END IF + my_limits(first_row_i) = 1 + my_limits(last_row_i) = dbcsr_nfullrows_total(matrix_a) + my_limits(first_col_i) = 1 + my_limits(last_col_i) = dbcsr_nfullcols_total(matrix_a) + IF (has_limits) THEN + IF (limits(last_col_i) .NE. 0) THEN + IF (debug_mod .AND. (limits(last_col_i) < 0 .OR. limits(last_col_i) > dbcsr_nfullcols_total(matrix_a))) & + DBCSR_ABORT("Specified last column is out of bounds.") + my_limits(last_col_i) = limits(last_col_i) + END IF + IF (limits(first_col_i) .NE. 0) THEN + IF (debug_mod .AND. (limits(first_col_i) < 0 .OR. limits(first_col_i) > dbcsr_nfullcols_total(matrix_a))) & + DBCSR_ABORT("Specified first column is out of bounds.") + my_limits(first_col_i) = limits(first_col_i) + END IF + IF (limits(last_row_i) .NE. 0) THEN + IF (debug_mod .AND. (limits(last_row_i) < 0 .OR. limits(last_row_i) > dbcsr_nfullrows_total(matrix_a))) & + DBCSR_ABORT("Specified last row is out of bounds.") + my_limits(last_row_i) = limits(last_row_i) + END IF + IF (limits(first_row_i) .NE. 0) THEN + IF (debug_mod .AND. (limits(first_row_i) < 0 .OR. limits(first_row_i) > dbcsr_nfullrows_total(matrix_a))) & + DBCSR_ABORT("Specified first row is out of bounds.") + my_limits(first_row_i) = limits(first_row_i) + END IF + END IF + ! + ! quick return if possible + one = dbcsr_scalar_one(dbcsr_scalar_get_type(alpha_scalar)) + do_scale = .NOT. dbcsr_scalar_are_equal(alpha_scalar, one) + ! + ! let's go + IF (do_scale) THEN +!$OMP PARALLEL DEFAULT (NONE) & +!$OMP PRIVATE (iter, data_any) & +!$OMP PRIVATE (a_row, a_col, tr, a_row_size, a_col_size, & +!$OMP row_offset, col_offset) & +!$OMP PRIVATE (scale_row_size, scale_col_size,& +!$OMP scale_row_offset, scale_col_offset) & +!$OMP SHARED (matrix_a, my_limits,alpha_scalar) + CALL dbcsr_data_init(data_any) + CALL dbcsr_data_new(data_any, dbcsr_type_1d_to_2d(dbcsr_get_data_type(matrix_a))) + CALL dbcsr_iterator_start(iter, matrix_a, read_only=.FALSE., & + contiguous_pointers=.FALSE., dynamic=.TRUE., & + dynamic_byrows=.TRUE., shared=.TRUE.) + iterations: DO WHILE (dbcsr_iterator_blocks_left(iter)) + CALL dbcsr_iterator_next_block(iter, a_row, a_col, data_any, tr, & + row_size=a_row_size, col_size=a_col_size, & + row_offset=row_offset, col_offset=col_offset) + IF (a_row_size .GT. 0 .AND. a_col_size .GT. 0) THEN + CALL frame_block_limit(a_row_size, row_offset, & + my_limits(first_row_i), my_limits(last_row_i), & + scale_row_size, scale_row_offset) + CALL frame_block_limit(a_col_size, col_offset, & + my_limits(first_col_i), my_limits(last_col_i), & + scale_col_size, scale_col_offset) + IF (tr) THEN + CALL swap(scale_row_size, scale_col_size) + CALL swap(scale_row_offset, scale_col_offset) + END IF + CALL dbcsr_block_scale(data_any, scale=alpha_scalar, & + row_size=scale_row_size, col_size=scale_col_size, & + lb=scale_row_offset, lb2=scale_col_offset) + END IF + END DO iterations + CALL dbcsr_iterator_stop(iter) + CALL dbcsr_data_clear_pointer(data_any) + CALL dbcsr_data_release(data_any) +!$OMP END PARALLEL + END IF + CALL timestop(handle) + END SUBROUTINE dbcsr_scale_anytype + + ELEMENTAL SUBROUTINE frame_block_limit(block_size, block_offset, & + first_limit, last_limit, & + frame_size, frame_offset) + !! Determines the effect of limits on a block + + INTEGER, INTENT(IN) :: block_size, block_offset, first_limit, & + last_limit + !! size of block + !! global offset of block + !! lower limit + !! upper limit + INTEGER, INTENT(OUT) :: frame_size, frame_offset + !! size of block region within the limits + !! starting position of the block region that is within the limits + + INTEGER :: f, l + + f = MAX(block_offset, first_limit) + l = MIN(block_offset + block_size - 1, last_limit) + frame_size = MAX(l - f + 1, 0) + frame_offset = MIN(f - block_offset + 1, block_size) + END SUBROUTINE frame_block_limit + + SUBROUTINE dbcsr_scale_by_vector_anytype(matrix_a, alpha, side) + !! Scales a DBCSR matrix by alpha + + TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a + !! DBCSR matrix + TYPE(dbcsr_data_obj), INTENT(IN), OPTIONAL :: alpha + !! the scaling vector + CHARACTER(LEN=*), INTENT(IN) :: side + !! apply the scaling from the side + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_scale_by_vector_anytype' + + INTEGER :: a_blk, a_col, a_col_size, a_nze, a_row, & + a_row_size, col_offset, data_type, & + handle, i, icol, irow, row_offset + LOGICAL :: right, tr + TYPE(dbcsr_data_obj) :: data_any + TYPE(dbcsr_iterator) :: iter - SUBROUTINE dbcsr_scale_by_vector_anytype(matrix_a, alpha, side) - !! Scales a DBCSR matrix by alpha - - TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a - !! DBCSR matrix - TYPE(dbcsr_data_obj), INTENT(IN), OPTIONAL :: alpha - !! the scaling vector - CHARACTER(LEN=*), INTENT(IN) :: side - !! apply the scaling from the side - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_scale_by_vector_anytype' - - INTEGER :: a_blk, a_col, a_col_size, a_nze, a_row, & - a_row_size, col_offset, data_type, & - handle, i, icol, irow, row_offset - LOGICAL :: right, tr - TYPE(dbcsr_data_obj) :: data_any - TYPE(dbcsr_iterator) :: iter - -! --------------------------------------------------------------------------- +! --------------------------------------------------------------------------- + + CALL timeset(routineN, handle) + + ! check that alpha and matrix have the same data type + IF (dbcsr_get_data_type(matrix_a) .NE. alpha%d%data_type) & + DBCSR_ABORT("wrong data type matrix_a") + + IF (ASSOCIATED(alpha%d%r2_sp) .OR. ASSOCIATED(alpha%d%r2_dp) & + .OR. ASSOCIATED(alpha%d%c2_sp) .OR. ASSOCIATED(alpha%d%c2_dp)) & + DBCSR_ABORT("alpha is not a vector") + ! + ! set vars + right = .TRUE. + SELECT CASE (side) + CASE ('right'); right = .TRUE. + CASE ('left'); right = .FALSE. + CASE DEFAULT + DBCSR_ABORT("wrong side="//side) + END SELECT - CALL timeset(routineN, handle) - - ! check that alpha and matrix have the same data type - IF (dbcsr_get_data_type(matrix_a) .NE. alpha%d%data_type) & - DBCSR_ABORT("wrong data type matrix_a") - - IF (ASSOCIATED(alpha%d%r2_sp) .OR. ASSOCIATED(alpha%d%r2_dp) & - .OR. ASSOCIATED(alpha%d%c2_sp) .OR. ASSOCIATED(alpha%d%c2_dp)) & - DBCSR_ABORT("alpha is not a vector") - ! - ! set vars - right = .TRUE. - SELECT CASE (side) - CASE ('right'); right = .TRUE. - CASE ('left'); right = .FALSE. - CASE DEFAULT - DBCSR_ABORT("wrong side="//side) - END SELECT - - ! check that alpha and matrix have matching sizes - IF (right .AND. dbcsr_nfullcols_total(matrix_a) /= dbcsr_data_get_size(alpha)) THEN - DBCSR_ABORT("vector size does not match matrix row size for RHS scaling") - ELSE IF ((.NOT. right) .AND. dbcsr_nfullrows_total(matrix_a) /= dbcsr_data_get_size(alpha)) THEN - DBCSR_ABORT("vector size does not match matrix col size for LHS scaling") - END IF - - ! - ! let's go - data_type = dbcsr_get_data_type(matrix_a) - CALL dbcsr_data_init(data_any) - CALL dbcsr_data_new(data_any, dbcsr_get_data_type(matrix_a)) - CALL dbcsr_iterator_start(iter, matrix_a) - DO WHILE (dbcsr_iterator_blocks_left(iter)) - CALL dbcsr_iterator_next_block(iter, a_row, a_col, data_any, tr, & - block_number=a_blk, & - row_size=a_row_size, col_size=a_col_size, & - row_offset=row_offset, col_offset=col_offset) - a_nze = a_row_size*a_col_size - IF (a_nze .EQ. 0) CYCLE ! Skip empty blocks - ! - ! let's scale - IF (right) THEN - SELECT CASE (data_type) - CASE (dbcsr_type_real_4) - DO i = 1, a_col_size - DO icol = (i - 1)*a_row_size + 1, (i - 1)*a_row_size + a_row_size - data_any%d%r_sp(icol) = data_any%d%r_sp(icol)*alpha%d%r_sp(col_offset + i - 1) - END DO - END DO - CASE (dbcsr_type_real_8) - DO i = 1, a_col_size - DO icol = (i - 1)*a_row_size + 1, (i - 1)*a_row_size + a_row_size - data_any%d%r_dp(icol) = data_any%d%r_dp(icol)*alpha%d%r_dp(col_offset + i - 1) - END DO - END DO - CASE (dbcsr_type_complex_4) - DO i = 1, a_col_size - DO icol = (i - 1)*a_row_size + 1, (i - 1)*a_row_size + a_row_size - data_any%d%c_sp(icol) = data_any%d%c_sp(icol)*alpha%d%c_sp(col_offset + i - 1) - END DO - END DO - CASE (dbcsr_type_complex_8) - DO i = 1, a_col_size - DO icol = (i - 1)*a_row_size + 1, (i - 1)*a_row_size + a_row_size - data_any%d%c_dp(icol) = data_any%d%c_dp(icol)*alpha%d%c_dp(col_offset + i - 1) - END DO - END DO - END SELECT - ELSE - SELECT CASE (data_type) - CASE (dbcsr_type_real_4) - DO i = 1, a_row_size - DO irow = i, i + a_col_size*a_row_size - 1, a_row_size - data_any%d%r_sp(irow) = data_any%d%r_sp(irow)*alpha%d%r_sp(row_offset + i - 1) - END DO - END DO - CASE (dbcsr_type_real_8) - DO i = 1, a_row_size - DO irow = i, i + a_col_size*a_row_size - 1, a_row_size - data_any%d%r_dp(irow) = data_any%d%r_dp(irow)*alpha%d%r_dp(row_offset + i - 1) - END DO - END DO - CASE (dbcsr_type_complex_4) - DO i = 1, a_row_size - DO irow = i, i + a_col_size*a_row_size - 1, a_row_size - data_any%d%c_sp(irow) = data_any%d%c_sp(irow)*alpha%d%c_sp(row_offset + i - 1) - END DO - END DO - CASE (dbcsr_type_complex_8) - DO i = 1, a_row_size - DO irow = i, i + a_col_size*a_row_size - 1, a_row_size - data_any%d%c_dp(irow) = data_any%d%c_dp(irow)*alpha%d%c_dp(row_offset + i - 1) - END DO - END DO - END SELECT - END IF - END DO - CALL dbcsr_iterator_stop(iter) - CALL dbcsr_data_clear_pointer(data_any) - CALL dbcsr_data_release(data_any) - CALL timestop(handle) - - END SUBROUTINE dbcsr_scale_by_vector_anytype - - SUBROUTINE dbcsr_add_anytype(matrix_a, matrix_b, alpha_scalar, beta_scalar, flop) - !! add and scale matrices - !! A = alpha*A + beta*B or - - TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a - !! DBCSR matrix - TYPE(dbcsr_type), INTENT(IN) :: matrix_b - !! DBCSR matrix - TYPE(dbcsr_scalar_type), INTENT(IN), OPTIONAL :: alpha_scalar, beta_scalar - INTEGER(KIND=int_8), INTENT(INOUT), OPTIONAL :: flop - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_add_anytype' - - INTEGER :: data_type_a, data_type_b, & - handle, size_work, iw - INTEGER(KIND=int_8) :: my_flop, local_matrix_size - LOGICAL :: do_scale - TYPE(dbcsr_iterator) :: iter - TYPE(dbcsr_scalar_type) :: my_beta_scalar - -! --------------------------------------------------------------------------- - - CALL timeset(routineN, handle) - IF (.NOT. dbcsr_valid_index(matrix_a)) & - DBCSR_ABORT("Invalid matrix") + ! check that alpha and matrix have matching sizes + IF (right .AND. dbcsr_nfullcols_total(matrix_a) /= dbcsr_data_get_size(alpha)) THEN + DBCSR_ABORT("vector size does not match matrix row size for RHS scaling") + ELSE IF ((.NOT. right) .AND. dbcsr_nfullrows_total(matrix_a) /= dbcsr_data_get_size(alpha)) THEN + DBCSR_ABORT("vector size does not match matrix col size for LHS scaling") + END IF + + ! + ! let's go + data_type = dbcsr_get_data_type(matrix_a) + CALL dbcsr_data_init(data_any) + CALL dbcsr_data_new(data_any, dbcsr_get_data_type(matrix_a)) + CALL dbcsr_iterator_start(iter, matrix_a) + DO WHILE (dbcsr_iterator_blocks_left(iter)) + CALL dbcsr_iterator_next_block(iter, a_row, a_col, data_any, tr, & + block_number=a_blk, & + row_size=a_row_size, col_size=a_col_size, & + row_offset=row_offset, col_offset=col_offset) + a_nze = a_row_size*a_col_size + IF (a_nze .EQ. 0) CYCLE ! Skip empty blocks + ! + ! let's scale + IF (right) THEN + SELECT CASE (data_type) + CASE (dbcsr_type_real_4) + DO i = 1, a_col_size + DO icol = (i - 1)*a_row_size + 1, (i - 1)*a_row_size + a_row_size + data_any%d%r_sp(icol) = data_any%d%r_sp(icol)*alpha%d%r_sp(col_offset + i - 1) + END DO + END DO + CASE (dbcsr_type_real_8) + DO i = 1, a_col_size + DO icol = (i - 1)*a_row_size + 1, (i - 1)*a_row_size + a_row_size + data_any%d%r_dp(icol) = data_any%d%r_dp(icol)*alpha%d%r_dp(col_offset + i - 1) + END DO + END DO + CASE (dbcsr_type_complex_4) + DO i = 1, a_col_size + DO icol = (i - 1)*a_row_size + 1, (i - 1)*a_row_size + a_row_size + data_any%d%c_sp(icol) = data_any%d%c_sp(icol)*alpha%d%c_sp(col_offset + i - 1) + END DO + END DO + CASE (dbcsr_type_complex_8) + DO i = 1, a_col_size + DO icol = (i - 1)*a_row_size + 1, (i - 1)*a_row_size + a_row_size + data_any%d%c_dp(icol) = data_any%d%c_dp(icol)*alpha%d%c_dp(col_offset + i - 1) + END DO + END DO + END SELECT + ELSE + SELECT CASE (data_type) + CASE (dbcsr_type_real_4) + DO i = 1, a_row_size + DO irow = i, i + a_col_size*a_row_size - 1, a_row_size + data_any%d%r_sp(irow) = data_any%d%r_sp(irow)*alpha%d%r_sp(row_offset + i - 1) + END DO + END DO + CASE (dbcsr_type_real_8) + DO i = 1, a_row_size + DO irow = i, i + a_col_size*a_row_size - 1, a_row_size + data_any%d%r_dp(irow) = data_any%d%r_dp(irow)*alpha%d%r_dp(row_offset + i - 1) + END DO + END DO + CASE (dbcsr_type_complex_4) + DO i = 1, a_row_size + DO irow = i, i + a_col_size*a_row_size - 1, a_row_size + data_any%d%c_sp(irow) = data_any%d%c_sp(irow)*alpha%d%c_sp(row_offset + i - 1) + END DO + END DO + CASE (dbcsr_type_complex_8) + DO i = 1, a_row_size + DO irow = i, i + a_col_size*a_row_size - 1, a_row_size + data_any%d%c_dp(irow) = data_any%d%c_dp(irow)*alpha%d%c_dp(row_offset + i - 1) + END DO + END DO + END SELECT + END IF + END DO + CALL dbcsr_iterator_stop(iter) + CALL dbcsr_data_clear_pointer(data_any) + CALL dbcsr_data_release(data_any) + CALL timestop(handle) + + END SUBROUTINE dbcsr_scale_by_vector_anytype + + SUBROUTINE dbcsr_add_anytype(matrix_a, matrix_b, alpha_scalar, beta_scalar, flop) + !! add and scale matrices + !! A = alpha*A + beta*B or + + TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a + !! DBCSR matrix + TYPE(dbcsr_type), INTENT(IN) :: matrix_b + !! DBCSR matrix + TYPE(dbcsr_scalar_type), INTENT(IN), OPTIONAL :: alpha_scalar, beta_scalar + INTEGER(KIND=int_8), INTENT(INOUT), OPTIONAL :: flop + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_add_anytype' + + INTEGER :: data_type_a, data_type_b, & + handle, size_work, iw + INTEGER(KIND=int_8) :: my_flop, local_matrix_size + LOGICAL :: do_scale + TYPE(dbcsr_iterator) :: iter + TYPE(dbcsr_scalar_type) :: my_beta_scalar + +! --------------------------------------------------------------------------- + + CALL timeset(routineN, handle) + IF (.NOT. dbcsr_valid_index(matrix_a)) & + DBCSR_ABORT("Invalid matrix") + + IF ((dbcsr_get_matrix_type(matrix_a) .EQ. dbcsr_type_symmetric .OR. & + dbcsr_get_matrix_type(matrix_a) .EQ. dbcsr_type_antisymmetric) .NEQV. & + (dbcsr_get_matrix_type(matrix_b) .EQ. dbcsr_type_symmetric .OR. & + dbcsr_get_matrix_type(matrix_b) .EQ. dbcsr_type_antisymmetric)) THEN + DBCSR_ABORT("Summing general with symmetric matrix NYI") + END IF + + data_type_a = dbcsr_get_data_type(matrix_a) + data_type_b = dbcsr_get_data_type(matrix_b) + ! + my_beta_scalar = dbcsr_scalar_one(data_type_b) + IF (PRESENT(beta_scalar)) my_beta_scalar = beta_scalar + ! + ! let's go + IF ((dbcsr_nblkrows_total(matrix_a) .NE. dbcsr_nblkrows_total(matrix_b)) .OR. & + (dbcsr_nblkcols_total(matrix_a) .NE. dbcsr_nblkcols_total(matrix_b)) .OR. & + (data_type_a .NE. data_type_b)) & + DBCSR_ABORT("matrices not consistent") - IF ((dbcsr_get_matrix_type(matrix_a) .EQ. dbcsr_type_symmetric .OR. & - dbcsr_get_matrix_type(matrix_a) .EQ. dbcsr_type_antisymmetric) .NEQV. & - (dbcsr_get_matrix_type(matrix_b) .EQ. dbcsr_type_symmetric .OR. & - dbcsr_get_matrix_type(matrix_b) .EQ. dbcsr_type_antisymmetric)) THEN - DBCSR_ABORT("Summing general with symmetric matrix NYI") - END IF - - data_type_a = dbcsr_get_data_type(matrix_a) - data_type_b = dbcsr_get_data_type(matrix_b) - ! - my_beta_scalar = dbcsr_scalar_one(data_type_b) - IF (PRESENT(beta_scalar)) my_beta_scalar = beta_scalar - ! - ! let's go - IF ((dbcsr_nblkrows_total(matrix_a) .NE. dbcsr_nblkrows_total(matrix_b)) .OR. & - (dbcsr_nblkcols_total(matrix_a) .NE. dbcsr_nblkcols_total(matrix_b)) .OR. & - (data_type_a .NE. data_type_b)) & - DBCSR_ABORT("matrices not consistent") - - IF (data_type_a .NE. my_beta_scalar%data_type) & - DBCSR_ABORT("beta type parameter not consistent with matrices type") - - do_scale = .NOT. dbcsr_scalar_are_equal(my_beta_scalar, dbcsr_scalar_one(data_type_b)) - - IF (PRESENT(alpha_scalar)) THEN - CALL dbcsr_scale(matrix_a, alpha_scalar=alpha_scalar) - END IF - - IF ((.NOT. dbcsr_scalar_are_equal(my_beta_scalar, & - dbcsr_scalar_zero(data_type_b))) .AND. & - dbcsr_get_num_blocks(matrix_b) .GT. 0) THEN - - ! Pre-size work arrays of matrix_a to avoid continuous reallocation. - ! Overestimate for symmetric matrix and multiple threads! - local_matrix_size = INT(dbcsr_nfullrows_local(matrix_a), KIND=int_8)* & - dbcsr_nfullcols_local(matrix_a) - size_work = MAX(0, INT(MIN(local_matrix_size - INT(dbcsr_get_nze(matrix_a), KIND=int_8), & - INT(dbcsr_get_nze(matrix_b), KIND=int_8)), KIND=int_4)) - my_flop = 0 -!$OMP PARALLEL DEFAULT (NONE) & -!$OMP PRIVATE (iter, iw) & -!$OMP SHARED (matrix_a, matrix_b, data_type_b, size_work) & -!$OMP SHARED (do_scale, my_beta_scalar) & -!$OMP REDUCTION (+ : my_flop) - CALL dbcsr_work_create(matrix_a, & - nblks_guess=matrix_b%nblks, & - sizedata_guess=size_work, & - work_mutable=.FALSE.) -!$OMP BARRIER - iw = 1 -!$ iw = omp_get_thread_num() + 1 - CALL dbcsr_iterator_start(iter, matrix_b, & - shared=.TRUE., read_only=.TRUE., contiguous_pointers=.FALSE., & - dynamic=.TRUE., dynamic_byrows=.TRUE.) - SELECT CASE (data_type_b) - CASE (dbcsr_type_real_4) - CALL dbcsr_add_anytype_s(matrix_a, matrix_b, iter, iw, do_scale, my_beta_scalar, my_flop) - CASE (dbcsr_type_real_8) - CALL dbcsr_add_anytype_d(matrix_a, matrix_b, iter, iw, do_scale, my_beta_scalar, my_flop) - CASE (dbcsr_type_complex_4) - CALL dbcsr_add_anytype_c(matrix_a, matrix_b, iter, iw, do_scale, my_beta_scalar, my_flop) - CASE (dbcsr_type_complex_8) - CALL dbcsr_add_anytype_z(matrix_a, matrix_b, iter, iw, do_scale, my_beta_scalar, my_flop) - CASE default - DBCSR_ABORT("Invalid data type") - END SELECT - CALL dbcsr_iterator_stop(iter) - - CALL dbcsr_finalize(matrix_a) -!$OMP END PARALLEL - IF (PRESENT(flop)) flop = flop + my_flop - END IF - CALL timestop(handle) - END SUBROUTINE dbcsr_add_anytype - - SUBROUTINE dbcsr_add_d(matrix_a, matrix_b, alpha_scalar, beta_scalar) - !! Interface for dbcsr_add - TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a - TYPE(dbcsr_type), INTENT(IN) :: matrix_b - REAL(real_8), INTENT(IN) :: alpha_scalar, beta_scalar - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_add_d' - INTEGER :: handle - - CALL timeset(routineN, handle) - IF (dbcsr_get_data_type(matrix_a) .EQ. dbcsr_type_real_8 .AND. & - dbcsr_get_data_type(matrix_b) .EQ. dbcsr_type_real_8) THEN - CALL dbcsr_add_anytype(matrix_a, matrix_b, & - alpha_scalar=dbcsr_scalar(alpha_scalar), & - beta_scalar=dbcsr_scalar(beta_scalar)) - ELSEIF (dbcsr_get_data_type(matrix_a) .EQ. dbcsr_type_real_4 .AND. & - dbcsr_get_data_type(matrix_b) .EQ. dbcsr_type_real_4) THEN - CALL dbcsr_add_anytype(matrix_a, matrix_b, & - alpha_scalar=dbcsr_scalar(REAL(alpha_scalar, real_4)), & - beta_scalar=dbcsr_scalar(REAL(beta_scalar, real_4))) - ELSEIF (dbcsr_get_data_type(matrix_a) .EQ. dbcsr_type_complex_4 .AND. & - dbcsr_get_data_type(matrix_b) .EQ. dbcsr_type_complex_4) THEN - CALL dbcsr_add_anytype(matrix_a, matrix_b, & - alpha_scalar=dbcsr_scalar(CMPLX(alpha_scalar, 0, real_4)), & - beta_scalar=dbcsr_scalar(CMPLX(beta_scalar, 0, real_4))) - ELSEIF (dbcsr_get_data_type(matrix_a) .EQ. dbcsr_type_complex_8 .AND. & - dbcsr_get_data_type(matrix_b) .EQ. dbcsr_type_complex_8) THEN - CALL dbcsr_add_anytype(matrix_a, matrix_b, & - alpha_scalar=dbcsr_scalar(CMPLX(alpha_scalar, 0, real_8)), & - beta_scalar=dbcsr_scalar(CMPLX(beta_scalar, 0, real_8))) - ELSE - DBCSR_ABORT("Invalid combination of data type, NYI") - END IF - CALL timestop(handle) - END SUBROUTINE dbcsr_add_d - - SUBROUTINE dbcsr_add_s(matrix_a, matrix_b, alpha_scalar, beta_scalar) - TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a - TYPE(dbcsr_type), INTENT(IN) :: matrix_b - REAL(real_4), INTENT(IN) :: alpha_scalar, beta_scalar - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_add_s' - INTEGER :: handle - - CALL timeset(routineN, handle) - IF (dbcsr_get_data_type(matrix_a) .EQ. dbcsr_type_real_4 .AND. & - dbcsr_get_data_type(matrix_b) .EQ. dbcsr_type_real_4) THEN - CALL dbcsr_add_anytype(matrix_a, matrix_b, & - alpha_scalar=dbcsr_scalar(alpha_scalar), & - beta_scalar=dbcsr_scalar(beta_scalar)) - ELSE - DBCSR_ABORT("Invalid combination of data type, NYI") - END IF - CALL timestop(handle) - END SUBROUTINE dbcsr_add_s - - SUBROUTINE dbcsr_add_z(matrix_a, matrix_b, alpha_scalar, beta_scalar) - TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a - TYPE(dbcsr_type), INTENT(IN) :: matrix_b - COMPLEX(real_8), INTENT(IN) :: alpha_scalar, beta_scalar - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_add_z' - INTEGER :: handle - - CALL timeset(routineN, handle) - IF (dbcsr_get_data_type(matrix_a) .EQ. dbcsr_type_complex_8 .AND. & - dbcsr_get_data_type(matrix_b) .EQ. dbcsr_type_complex_8) THEN - CALL dbcsr_add_anytype(matrix_a, matrix_b, & - alpha_scalar=dbcsr_scalar(alpha_scalar), & - beta_scalar=dbcsr_scalar(beta_scalar)) - ELSEIF (dbcsr_get_data_type(matrix_a) .EQ. dbcsr_type_complex_4 .AND. & - dbcsr_get_data_type(matrix_b) .EQ. dbcsr_type_complex_4) THEN - CALL dbcsr_add_anytype(matrix_a, matrix_b, & - alpha_scalar=dbcsr_scalar(CMPLX(alpha_scalar, KIND=real_4)), & - beta_scalar=dbcsr_scalar(CMPLX(beta_scalar, KIND=real_4))) - ELSE - DBCSR_ABORT("Invalid combination of data type, NYI") - END IF - CALL timestop(handle) - END SUBROUTINE dbcsr_add_z - - SUBROUTINE dbcsr_add_c(matrix_a, matrix_b, alpha_scalar, beta_scalar) - TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a - TYPE(dbcsr_type), INTENT(IN) :: matrix_b - COMPLEX(real_4), INTENT(IN) :: alpha_scalar, beta_scalar + IF (data_type_a .NE. my_beta_scalar%data_type) & + DBCSR_ABORT("beta type parameter not consistent with matrices type") + + do_scale = .NOT. dbcsr_scalar_are_equal(my_beta_scalar, dbcsr_scalar_one(data_type_b)) + + IF (PRESENT(alpha_scalar)) THEN + CALL dbcsr_scale(matrix_a, alpha_scalar=alpha_scalar) + END IF + + IF ((.NOT. dbcsr_scalar_are_equal(my_beta_scalar, & + dbcsr_scalar_zero(data_type_b))) .AND. & + dbcsr_get_num_blocks(matrix_b) .GT. 0) THEN + + ! Pre-size work arrays of matrix_a to avoid continuous reallocation. + ! Overestimate for symmetric matrix and multiple threads! + local_matrix_size = INT(dbcsr_nfullrows_local(matrix_a), KIND=int_8)* & + dbcsr_nfullcols_local(matrix_a) + size_work = MAX(0, INT(MIN(local_matrix_size - INT(dbcsr_get_nze(matrix_a), KIND=int_8), & + INT(dbcsr_get_nze(matrix_b), KIND=int_8)), KIND=int_4)) + my_flop = 0 +!$OMP PARALLEL DEFAULT (NONE) & +!$OMP PRIVATE (iter, iw) & +!$OMP SHARED (matrix_a, matrix_b, data_type_b, size_work) & +!$OMP SHARED (do_scale, my_beta_scalar) & +!$OMP REDUCTION (+ : my_flop) + CALL dbcsr_work_create(matrix_a, & + nblks_guess=matrix_b%nblks, & + sizedata_guess=size_work, & + work_mutable=.FALSE.) +!$OMP BARRIER + iw = 1 +!$ iw = omp_get_thread_num() + 1 + CALL dbcsr_iterator_start(iter, matrix_b, & + shared=.TRUE., read_only=.TRUE., contiguous_pointers=.FALSE., & + dynamic=.TRUE., dynamic_byrows=.TRUE.) + SELECT CASE (data_type_b) + CASE (dbcsr_type_real_4) + CALL dbcsr_add_anytype_s(matrix_a, matrix_b, iter, iw, do_scale, my_beta_scalar, my_flop) + CASE (dbcsr_type_real_8) + CALL dbcsr_add_anytype_d(matrix_a, matrix_b, iter, iw, do_scale, my_beta_scalar, my_flop) + CASE (dbcsr_type_complex_4) + CALL dbcsr_add_anytype_c(matrix_a, matrix_b, iter, iw, do_scale, my_beta_scalar, my_flop) + CASE (dbcsr_type_complex_8) + CALL dbcsr_add_anytype_z(matrix_a, matrix_b, iter, iw, do_scale, my_beta_scalar, my_flop) + CASE default + DBCSR_ABORT("Invalid data type") + END SELECT + CALL dbcsr_iterator_stop(iter) + + CALL dbcsr_finalize(matrix_a) +!$OMP END PARALLEL + IF (PRESENT(flop)) flop = flop + my_flop + END IF + CALL timestop(handle) + END SUBROUTINE dbcsr_add_anytype + + SUBROUTINE dbcsr_add_d(matrix_a, matrix_b, alpha_scalar, beta_scalar) + !! Interface for dbcsr_add + TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a + TYPE(dbcsr_type), INTENT(IN) :: matrix_b + REAL(real_8), INTENT(IN) :: alpha_scalar, beta_scalar + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_add_d' + INTEGER :: handle + + CALL timeset(routineN, handle) + IF (dbcsr_get_data_type(matrix_a) .EQ. dbcsr_type_real_8 .AND. & + dbcsr_get_data_type(matrix_b) .EQ. dbcsr_type_real_8) THEN + CALL dbcsr_add_anytype(matrix_a, matrix_b, & + alpha_scalar=dbcsr_scalar(alpha_scalar), & + beta_scalar=dbcsr_scalar(beta_scalar)) + ELSEIF (dbcsr_get_data_type(matrix_a) .EQ. dbcsr_type_real_4 .AND. & + dbcsr_get_data_type(matrix_b) .EQ. dbcsr_type_real_4) THEN + CALL dbcsr_add_anytype(matrix_a, matrix_b, & + alpha_scalar=dbcsr_scalar(REAL(alpha_scalar, real_4)), & + beta_scalar=dbcsr_scalar(REAL(beta_scalar, real_4))) + ELSEIF (dbcsr_get_data_type(matrix_a) .EQ. dbcsr_type_complex_4 .AND. & + dbcsr_get_data_type(matrix_b) .EQ. dbcsr_type_complex_4) THEN + CALL dbcsr_add_anytype(matrix_a, matrix_b, & + alpha_scalar=dbcsr_scalar(CMPLX(alpha_scalar, 0, real_4)), & + beta_scalar=dbcsr_scalar(CMPLX(beta_scalar, 0, real_4))) + ELSEIF (dbcsr_get_data_type(matrix_a) .EQ. dbcsr_type_complex_8 .AND. & + dbcsr_get_data_type(matrix_b) .EQ. dbcsr_type_complex_8) THEN + CALL dbcsr_add_anytype(matrix_a, matrix_b, & + alpha_scalar=dbcsr_scalar(CMPLX(alpha_scalar, 0, real_8)), & + beta_scalar=dbcsr_scalar(CMPLX(beta_scalar, 0, real_8))) + ELSE + DBCSR_ABORT("Invalid combination of data type, NYI") + END IF + CALL timestop(handle) + END SUBROUTINE dbcsr_add_d + + SUBROUTINE dbcsr_add_s(matrix_a, matrix_b, alpha_scalar, beta_scalar) + TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a + TYPE(dbcsr_type), INTENT(IN) :: matrix_b + REAL(real_4), INTENT(IN) :: alpha_scalar, beta_scalar + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_add_s' + INTEGER :: handle + + CALL timeset(routineN, handle) + IF (dbcsr_get_data_type(matrix_a) .EQ. dbcsr_type_real_4 .AND. & + dbcsr_get_data_type(matrix_b) .EQ. dbcsr_type_real_4) THEN + CALL dbcsr_add_anytype(matrix_a, matrix_b, & + alpha_scalar=dbcsr_scalar(alpha_scalar), & + beta_scalar=dbcsr_scalar(beta_scalar)) + ELSE + DBCSR_ABORT("Invalid combination of data type, NYI") + END IF + CALL timestop(handle) + END SUBROUTINE dbcsr_add_s + + SUBROUTINE dbcsr_add_z(matrix_a, matrix_b, alpha_scalar, beta_scalar) + TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a + TYPE(dbcsr_type), INTENT(IN) :: matrix_b + COMPLEX(real_8), INTENT(IN) :: alpha_scalar, beta_scalar + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_add_z' + INTEGER :: handle + + CALL timeset(routineN, handle) + IF (dbcsr_get_data_type(matrix_a) .EQ. dbcsr_type_complex_8 .AND. & + dbcsr_get_data_type(matrix_b) .EQ. dbcsr_type_complex_8) THEN + CALL dbcsr_add_anytype(matrix_a, matrix_b, & + alpha_scalar=dbcsr_scalar(alpha_scalar), & + beta_scalar=dbcsr_scalar(beta_scalar)) + ELSEIF (dbcsr_get_data_type(matrix_a) .EQ. dbcsr_type_complex_4 .AND. & + dbcsr_get_data_type(matrix_b) .EQ. dbcsr_type_complex_4) THEN + CALL dbcsr_add_anytype(matrix_a, matrix_b, & + alpha_scalar=dbcsr_scalar(CMPLX(alpha_scalar, KIND=real_4)), & + beta_scalar=dbcsr_scalar(CMPLX(beta_scalar, KIND=real_4))) + ELSE + DBCSR_ABORT("Invalid combination of data type, NYI") + END IF + CALL timestop(handle) + END SUBROUTINE dbcsr_add_z + + SUBROUTINE dbcsr_add_c(matrix_a, matrix_b, alpha_scalar, beta_scalar) + TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a + TYPE(dbcsr_type), INTENT(IN) :: matrix_b + COMPLEX(real_4), INTENT(IN) :: alpha_scalar, beta_scalar + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_add_c' + INTEGER :: handle + + CALL timeset(routineN, handle) + IF (dbcsr_get_data_type(matrix_a) .EQ. dbcsr_type_complex_4 .AND. & + dbcsr_get_data_type(matrix_b) .EQ. dbcsr_type_complex_4) THEN + CALL dbcsr_add_anytype(matrix_a, matrix_b, & + alpha_scalar=dbcsr_scalar(alpha_scalar), & + beta_scalar=dbcsr_scalar(beta_scalar)) + ELSE + DBCSR_ABORT("Invalid combination of data type, NYI") + END IF + CALL timestop(handle) + END SUBROUTINE dbcsr_add_c + + SUBROUTINE dbcsr_add_on_diag_ds(matrix, alpha) + TYPE(dbcsr_type), INTENT(INOUT) :: matrix + REAL(kind=real_8), INTENT(IN) :: alpha - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_add_c' - INTEGER :: handle - - CALL timeset(routineN, handle) - IF (dbcsr_get_data_type(matrix_a) .EQ. dbcsr_type_complex_4 .AND. & - dbcsr_get_data_type(matrix_b) .EQ. dbcsr_type_complex_4) THEN - CALL dbcsr_add_anytype(matrix_a, matrix_b, & - alpha_scalar=dbcsr_scalar(alpha_scalar), & - beta_scalar=dbcsr_scalar(beta_scalar)) - ELSE - DBCSR_ABORT("Invalid combination of data type, NYI") - END IF - CALL timestop(handle) - END SUBROUTINE dbcsr_add_c - - SUBROUTINE dbcsr_add_on_diag_ds(matrix, alpha) - TYPE(dbcsr_type), INTENT(INOUT) :: matrix - REAL(kind=real_8), INTENT(IN) :: alpha - - IF (dbcsr_get_data_type(matrix) == dbcsr_type_real_4) THEN - CALL dbcsr_add_on_diag_s(matrix, REAL(alpha, kind=real_4)) - ELSE - CALL dbcsr_add_on_diag_d(matrix, alpha) - END IF - END SUBROUTINE dbcsr_add_on_diag_ds - - SUBROUTINE dbcsr_function_of_elements(matrix_a, func, a0, a1, a2) - !! Computes various functions (defined by func) of matrix elements - !! @note sign(A,B) returns the value of A with the sign of B - !! dbcsr_func_inverse: 1/(a1*x+a0) - !! fails if the inversion produces infinite numbers - !! dbcsr_func_inverse_special: 1/(x+sign(a0,x)) - !! safe inverse: if a0>0 then the denominator is never zero - !! dbcsr_func_tanh: tanh(a1*x+a0) - !! dbcsr_func_dtanh: d(tanh(a1*x+a0)) / dx - !! dbcsr_func_ddtanh: d2(tanh(a1*x+a0)) / dx2 - !! dbcsr_func_artanh: artanh(a1*x+a0)=ln[(1+(a1*x+a0))/(1-(a1*x+a0))]/2 - !! fails if |a1*x+a0| >= 1 - !! dbcsr_func_sread_from_zero: if |x|<|a0| then x=sign(a0,x) - !! dbcsr_func_truncate: if |x|>|a0| then x=sign(a0,x) - !! dbcsr_func_sin: sin(a1*x+a0) - !! dbcsr_func_cos: cos(a1*x+a0) - !! dbcsr_func_dsin: d(sin(a1*x+a0)) / dx = a1*cos(a1*x+a0) - !! dbcsr_func_ddsin: d2(sin(a1*x+a0)) / dx2 = -a1*a1*sin(a1*x+a0) - !! dbcsr_func_asin: asin(a1*x+a0) - !! fails if |a1*x+a0| > 1 - - TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a - !! DBCSR matrix - INTEGER, INTENT(IN) :: func - REAL(kind=dp), INTENT(IN), OPTIONAL :: a0, a1, a2 - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_function_of_elements' - - INTEGER :: blk, col, col_size, data_type, handle, & - ielem, nze, row, row_size - LOGICAL :: tr_a - REAL(kind=dp) :: p0, p1, p2 - TYPE(dbcsr_data_obj) :: a_data - TYPE(dbcsr_iterator) :: iter - -! --------------------------------------------------------------------------- - - CALL timeset(routineN, handle) - - IF (PRESENT(a0)) THEN - p0 = a0 - ELSE - p0 = 0.0_dp - END IF - IF (PRESENT(a1)) THEN - p1 = a1 - ELSE - p1 = 1.0_dp - END IF - IF (PRESENT(a2)) THEN - p2 = a2 - ELSE - p2 = 0.0_dp - END IF - - data_type = dbcsr_get_data_type(matrix_a) - CALL dbcsr_data_init(a_data) - CALL dbcsr_data_new(a_data, data_type) - CALL dbcsr_iterator_start(iter, matrix_a) - DO WHILE (dbcsr_iterator_blocks_left(iter)) - CALL dbcsr_iterator_next_block(iter, row, col, a_data, tr_a, blk, & - row_size=row_size, col_size=col_size) - nze = row_size*col_size - SELECT CASE (data_type) - !CASE (dbcsr_type_real_4) - ! a_data%d%r_sp(1:nze) = 1.0_real_4/a_data%d%r_sp(1:nze) - ! IF(MAXVAL(ABS(a_data%d%r_sp)).GE.HUGE(0.0_real_4))& - ! DBCSR_ABORT("Division by zero") - CASE (dbcsr_type_real_8) - SELECT CASE (func) - CASE (dbcsr_func_spread_from_zero) - ! if |x|<|a0| then x=|a0|*sign(x) - DO ielem = 1, nze - IF (ABS(a_data%d%r_dp(ielem)) .LT. ABS(p0)) THEN - a_data%d%r_dp(ielem) = SIGN(p0, a_data%d%r_dp(ielem)) - END IF - END DO - CASE (dbcsr_func_truncate) - ! if |x|>|a0| then x=|a0|*sign(x) - DO ielem = 1, nze - IF (ABS(a_data%d%r_dp(ielem)) .GT. ABS(p0)) THEN - a_data%d%r_dp(ielem) = SIGN(p0, a_data%d%r_dp(ielem)) - END IF - END DO - CASE (dbcsr_func_inverse_special) - !IF (MINVAL(ABS(a_data%d%r_dp)).le.ABS(p2)) THEN - ! ! there is at least one near-zero element, - ! ! invert element-by-element - ! DO ielem=1,nze - ! IF (a_data%d%r_dp(ielem).le.ABS(p2)) THEN - ! a_data%d%r_dp(ielem) = 0.0_real_8 - ! ELSE - ! a_data%d%r_dp(ielem) = & - ! 1.0_real_8/(p1*a_data%d%r_dp(ielem)+p0) - ! ENDIF - ! ENDDO - !ELSE - ! a_data%d%r_dp(1:nze) = 1.0_real_8/(p1*a_data%d%r_dp(1:nze)+p0) - !ENDIF - a_data%d%r_dp(1:nze) = 1.0_real_8/(a_data%d%r_dp(1:nze) + SIGN(p0, a_data%d%r_dp(1:nze))) - CASE (dbcsr_func_inverse) - a_data%d%r_dp(1:nze) = 1.0_real_8/(p1*a_data%d%r_dp(1:nze) + p0) - IF (MAXVAL(ABS(a_data%d%r_dp)) .GE. HUGE(0.0_real_8)) & - DBCSR_ABORT("Division by zero") - CASE (dbcsr_func_tanh) - a_data%d%r_dp(1:nze) = TANH(p1*a_data%d%r_dp(1:nze) + p0) - CASE (dbcsr_func_dtanh) - a_data%d%r_dp(1:nze) = TANH(p1*a_data%d%r_dp(1:nze) + p0) - a_data%d%r_dp(1:nze) = a_data%d%r_dp(1:nze)**2 - a_data%d%r_dp(1:nze) = p1*(1.0_real_8 - a_data%d%r_dp(1:nze)) - CASE (dbcsr_func_ddtanh) - a_data%d%r_dp(1:nze) = TANH(p1*a_data%d%r_dp(1:nze) + p0) - a_data%d%r_dp(1:nze) = a_data%d%r_dp(1:nze)**3 - a_data%d%r_dp(1:nze) - a_data%d%r_dp(1:nze) = 2.0_real_8*(p1**2)*a_data%d%r_dp(1:nze) - CASE (dbcsr_func_artanh) - a_data%d%r_dp(1:nze) = p1*a_data%d%r_dp(1:nze) + p0 - IF (MAXVAL(ABS(a_data%d%r_dp)) .GE. 1.0_real_8) & - DBCSR_ABORT("ARTANH is undefined for |x|>=1") - a_data%d%r_dp(1:nze) = (1.0_real_8 + a_data%d%r_dp(1:nze)) & - /(1.0_real_8 - a_data%d%r_dp(1:nze)) - a_data%d%r_dp(1:nze) = 0.5_real_8*LOG(a_data%d%r_dp(1:nze)) - CASE (dbcsr_func_sin) - a_data%d%r_dp(1:nze) = SIN(p1*a_data%d%r_dp(1:nze) + p0) - CASE (dbcsr_func_cos) - a_data%d%r_dp(1:nze) = COS(p1*a_data%d%r_dp(1:nze) + p0) - CASE (dbcsr_func_dsin) - a_data%d%r_dp(1:nze) = p1*COS(p1*a_data%d%r_dp(1:nze) + p0) - CASE (dbcsr_func_ddsin) - a_data%d%r_dp(1:nze) = -p1*p1*SIN(p1*a_data%d%r_dp(1:nze) + p0) - CASE (dbcsr_func_asin) - a_data%d%r_dp(1:nze) = p1*a_data%d%r_dp(1:nze) + p0 - IF (MAXVAL(ABS(a_data%d%r_dp)) .GT. 1.0_real_8) & - DBCSR_ABORT("ASIN is undefined for |x|>1") - a_data%d%r_dp(1:nze) = ASIN(a_data%d%r_dp(1:nze)) - CASE DEFAULT - DBCSR_ABORT("Unknown function of matrix elements") - END SELECT - !CASE (dbcsr_type_complex_4) - !CASE (dbcsr_type_complex_8) - CASE DEFAULT - DBCSR_ABORT("Operation is implemented only for dp real values") - END SELECT - END DO - CALL dbcsr_iterator_stop(iter) - CALL dbcsr_data_clear_pointer(a_data) - CALL dbcsr_data_release(a_data) - CALL timestop(handle) - - END SUBROUTINE dbcsr_function_of_elements - - SUBROUTINE dbcsr_hadamard_product(matrix_a, matrix_b, matrix_c, & - b_assume_value) - !! Hadamard product - !! C = A . B (C needs to be different from A and B) - - TYPE(dbcsr_type), INTENT(IN) :: matrix_a, matrix_b - !! DBCSR matrix - !! DBCSR matrix - TYPE(dbcsr_type), INTENT(INOUT) :: matrix_c - !! DBCSR matrix - REAL(KIND=dp), INTENT(IN), OPTIONAL :: b_assume_value + IF (dbcsr_get_data_type(matrix) == dbcsr_type_real_4) THEN + CALL dbcsr_add_on_diag_s(matrix, REAL(alpha, kind=real_4)) + ELSE + CALL dbcsr_add_on_diag_d(matrix, alpha) + END IF + END SUBROUTINE dbcsr_add_on_diag_ds + + SUBROUTINE dbcsr_function_of_elements(matrix_a, func, a0, a1, a2) + !! Computes various functions (defined by func) of matrix elements + !! @note sign(A,B) returns the value of A with the sign of B + !! dbcsr_func_inverse: 1/(a1*x+a0) + !! fails if the inversion produces infinite numbers + !! dbcsr_func_inverse_special: 1/(x+sign(a0,x)) + !! safe inverse: if a0>0 then the denominator is never zero + !! dbcsr_func_tanh: tanh(a1*x+a0) + !! dbcsr_func_dtanh: d(tanh(a1*x+a0)) / dx + !! dbcsr_func_ddtanh: d2(tanh(a1*x+a0)) / dx2 + !! dbcsr_func_artanh: artanh(a1*x+a0)=ln[(1+(a1*x+a0))/(1-(a1*x+a0))]/2 + !! fails if |a1*x+a0| >= 1 + !! dbcsr_func_sread_from_zero: if |x|<|a0| then x=sign(a0,x) + !! dbcsr_func_truncate: if |x|>|a0| then x=sign(a0,x) + !! dbcsr_func_sin: sin(a1*x+a0) + !! dbcsr_func_cos: cos(a1*x+a0) + !! dbcsr_func_dsin: d(sin(a1*x+a0)) / dx = a1*cos(a1*x+a0) + !! dbcsr_func_ddsin: d2(sin(a1*x+a0)) / dx2 = -a1*a1*sin(a1*x+a0) + !! dbcsr_func_asin: asin(a1*x+a0) + !! fails if |a1*x+a0| > 1 + + TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a + !! DBCSR matrix + INTEGER, INTENT(IN) :: func + REAL(kind=dp), INTENT(IN), OPTIONAL :: a0, a1, a2 + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_function_of_elements' + + INTEGER :: blk, col, col_size, data_type, handle, & + ielem, nze, row, row_size + LOGICAL :: tr_a + REAL(kind=dp) :: p0, p1, p2 + TYPE(dbcsr_data_obj) :: a_data + TYPE(dbcsr_iterator) :: iter + +! --------------------------------------------------------------------------- + + CALL timeset(routineN, handle) + + IF (PRESENT(a0)) THEN + p0 = a0 + ELSE + p0 = 0.0_dp + END IF + IF (PRESENT(a1)) THEN + p1 = a1 + ELSE + p1 = 1.0_dp + END IF + IF (PRESENT(a2)) THEN + p2 = a2 + ELSE + p2 = 0.0_dp + END IF + + data_type = dbcsr_get_data_type(matrix_a) + CALL dbcsr_data_init(a_data) + CALL dbcsr_data_new(a_data, data_type) + CALL dbcsr_iterator_start(iter, matrix_a) + DO WHILE (dbcsr_iterator_blocks_left(iter)) + CALL dbcsr_iterator_next_block(iter, row, col, a_data, tr_a, blk, & + row_size=row_size, col_size=col_size) + nze = row_size*col_size + SELECT CASE (data_type) + !CASE (dbcsr_type_real_4) + ! a_data%d%r_sp(1:nze) = 1.0_real_4/a_data%d%r_sp(1:nze) + ! IF(MAXVAL(ABS(a_data%d%r_sp)).GE.HUGE(0.0_real_4))& + ! DBCSR_ABORT("Division by zero") + CASE (dbcsr_type_real_8) + SELECT CASE (func) + CASE (dbcsr_func_spread_from_zero) + ! if |x|<|a0| then x=|a0|*sign(x) + DO ielem = 1, nze + IF (ABS(a_data%d%r_dp(ielem)) .LT. ABS(p0)) THEN + a_data%d%r_dp(ielem) = SIGN(p0, a_data%d%r_dp(ielem)) + END IF + END DO + CASE (dbcsr_func_truncate) + ! if |x|>|a0| then x=|a0|*sign(x) + DO ielem = 1, nze + IF (ABS(a_data%d%r_dp(ielem)) .GT. ABS(p0)) THEN + a_data%d%r_dp(ielem) = SIGN(p0, a_data%d%r_dp(ielem)) + END IF + END DO + CASE (dbcsr_func_inverse_special) + !IF (MINVAL(ABS(a_data%d%r_dp)).le.ABS(p2)) THEN + ! ! there is at least one near-zero element, + ! ! invert element-by-element + ! DO ielem=1,nze + ! IF (a_data%d%r_dp(ielem).le.ABS(p2)) THEN + ! a_data%d%r_dp(ielem) = 0.0_real_8 + ! ELSE + ! a_data%d%r_dp(ielem) = & + ! 1.0_real_8/(p1*a_data%d%r_dp(ielem)+p0) + ! ENDIF + ! ENDDO + !ELSE + ! a_data%d%r_dp(1:nze) = 1.0_real_8/(p1*a_data%d%r_dp(1:nze)+p0) + !ENDIF + a_data%d%r_dp(1:nze) = 1.0_real_8/(a_data%d%r_dp(1:nze) + SIGN(p0, a_data%d%r_dp(1:nze))) + CASE (dbcsr_func_inverse) + a_data%d%r_dp(1:nze) = 1.0_real_8/(p1*a_data%d%r_dp(1:nze) + p0) + IF (MAXVAL(ABS(a_data%d%r_dp)) .GE. HUGE(0.0_real_8)) & + DBCSR_ABORT("Division by zero") + CASE (dbcsr_func_tanh) + a_data%d%r_dp(1:nze) = TANH(p1*a_data%d%r_dp(1:nze) + p0) + CASE (dbcsr_func_dtanh) + a_data%d%r_dp(1:nze) = TANH(p1*a_data%d%r_dp(1:nze) + p0) + a_data%d%r_dp(1:nze) = a_data%d%r_dp(1:nze)**2 + a_data%d%r_dp(1:nze) = p1*(1.0_real_8 - a_data%d%r_dp(1:nze)) + CASE (dbcsr_func_ddtanh) + a_data%d%r_dp(1:nze) = TANH(p1*a_data%d%r_dp(1:nze) + p0) + a_data%d%r_dp(1:nze) = a_data%d%r_dp(1:nze)**3 - a_data%d%r_dp(1:nze) + a_data%d%r_dp(1:nze) = 2.0_real_8*(p1**2)*a_data%d%r_dp(1:nze) + CASE (dbcsr_func_artanh) + a_data%d%r_dp(1:nze) = p1*a_data%d%r_dp(1:nze) + p0 + IF (MAXVAL(ABS(a_data%d%r_dp)) .GE. 1.0_real_8) & + DBCSR_ABORT("ARTANH is undefined for |x|>=1") + a_data%d%r_dp(1:nze) = (1.0_real_8 + a_data%d%r_dp(1:nze)) & + /(1.0_real_8 - a_data%d%r_dp(1:nze)) + a_data%d%r_dp(1:nze) = 0.5_real_8*LOG(a_data%d%r_dp(1:nze)) + CASE (dbcsr_func_sin) + a_data%d%r_dp(1:nze) = SIN(p1*a_data%d%r_dp(1:nze) + p0) + CASE (dbcsr_func_cos) + a_data%d%r_dp(1:nze) = COS(p1*a_data%d%r_dp(1:nze) + p0) + CASE (dbcsr_func_dsin) + a_data%d%r_dp(1:nze) = p1*COS(p1*a_data%d%r_dp(1:nze) + p0) + CASE (dbcsr_func_ddsin) + a_data%d%r_dp(1:nze) = -p1*p1*SIN(p1*a_data%d%r_dp(1:nze) + p0) + CASE (dbcsr_func_asin) + a_data%d%r_dp(1:nze) = p1*a_data%d%r_dp(1:nze) + p0 + IF (MAXVAL(ABS(a_data%d%r_dp)) .GT. 1.0_real_8) & + DBCSR_ABORT("ASIN is undefined for |x|>1") + a_data%d%r_dp(1:nze) = ASIN(a_data%d%r_dp(1:nze)) + CASE DEFAULT + DBCSR_ABORT("Unknown function of matrix elements") + END SELECT + !CASE (dbcsr_type_complex_4) + !CASE (dbcsr_type_complex_8) + CASE DEFAULT + DBCSR_ABORT("Operation is implemented only for dp real values") + END SELECT + END DO + CALL dbcsr_iterator_stop(iter) + CALL dbcsr_data_clear_pointer(a_data) + CALL dbcsr_data_release(a_data) + CALL timestop(handle) + + END SUBROUTINE dbcsr_function_of_elements + + SUBROUTINE dbcsr_hadamard_product(matrix_a, matrix_b, matrix_c, & + b_assume_value) + !! Hadamard product + !! C = A . B (C needs to be different from A and B) + + TYPE(dbcsr_type), INTENT(IN) :: matrix_a, matrix_b + !! DBCSR matrix + !! DBCSR matrix + TYPE(dbcsr_type), INTENT(INOUT) :: matrix_c + !! DBCSR matrix + REAL(KIND=dp), INTENT(IN), OPTIONAL :: b_assume_value + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_hadamard_product' + + INTEGER :: blk, col, col_size, data_type, handle, & + nze, row, row_size + LOGICAL :: assume_blocks_in_b, found, tr_a, tr_b + REAL(KIND=dp) :: assumed_b_value + TYPE(dbcsr_data_obj) :: a_data, b_data, c_data + TYPE(dbcsr_iterator) :: iter + +! --------------------------------------------------------------------------- + + IF (PRESENT(b_assume_value)) THEN + assume_blocks_in_b = .TRUE. + assumed_b_value = b_assume_value + ELSE + assume_blocks_in_b = .FALSE. + assumed_b_value = 0.0_dp + END IF - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_hadamard_product' - - INTEGER :: blk, col, col_size, data_type, handle, & - nze, row, row_size - LOGICAL :: assume_blocks_in_b, found, tr_a, tr_b - REAL(KIND=dp) :: assumed_b_value - TYPE(dbcsr_data_obj) :: a_data, b_data, c_data - TYPE(dbcsr_iterator) :: iter + CALL timeset(routineN, handle) + IF (dbcsr_get_data_type(matrix_a) .NE. dbcsr_get_data_type(matrix_b) .OR. & + dbcsr_get_data_type(matrix_a) .NE. dbcsr_get_data_type(matrix_c)) & + DBCSR_ABORT("data types not consistent, need to fix that") + + IF (dbcsr_nblkrows_total(matrix_a) .NE. dbcsr_nblkrows_total(matrix_b) .OR. & + dbcsr_nblkrows_total(matrix_c) .NE. dbcsr_nblkrows_total(matrix_a)) & + DBCSR_ABORT("matrices not consistent") -! --------------------------------------------------------------------------- - - IF (PRESENT(b_assume_value)) THEN - assume_blocks_in_b = .TRUE. - assumed_b_value = b_assume_value - ELSE - assume_blocks_in_b = .FALSE. - assumed_b_value = 0.0_dp - END IF - - CALL timeset(routineN, handle) - IF (dbcsr_get_data_type(matrix_a) .NE. dbcsr_get_data_type(matrix_b) .OR. & - dbcsr_get_data_type(matrix_a) .NE. dbcsr_get_data_type(matrix_c)) & - DBCSR_ABORT("data types not consistent, need to fix that") - - IF (dbcsr_nblkrows_total(matrix_a) .NE. dbcsr_nblkrows_total(matrix_b) .OR. & - dbcsr_nblkrows_total(matrix_c) .NE. dbcsr_nblkrows_total(matrix_a)) & - DBCSR_ABORT("matrices not consistent") - - data_type = dbcsr_get_data_type(matrix_a) - CALL dbcsr_data_init(c_data) - CALL dbcsr_data_new(c_data, data_type, & - data_size=dbcsr_max_row_size(matrix_a)*dbcsr_max_col_size(matrix_a)) - CALL dbcsr_zero(matrix_c) - CALL dbcsr_data_init(a_data) - CALL dbcsr_data_new(a_data, data_type) - CALL dbcsr_data_init(b_data) - CALL dbcsr_data_new(b_data, data_type) - CALL dbcsr_iterator_start(iter, matrix_a) - DO WHILE (dbcsr_iterator_blocks_left(iter)) - SELECT CASE (dbcsr_get_data_type(matrix_a)) - !CASE (dbcsr_type_real_4) - CASE (dbcsr_type_real_8) - CALL dbcsr_iterator_next_block(iter, row, col, a_data, tr_a, blk, & - row_size=row_size, col_size=col_size) - nze = row_size*col_size - CALL dbcsr_get_block_p(matrix_b, row, col, b_data, tr_b, found) - IF (tr_a .NEQV. tr_b) & - DBCSR_ABORT("tr not consistent, need to fix that") - IF (found) THEN - SELECT CASE (data_type) - CASE (dbcsr_type_real_4) - c_data%d%r_sp(1:nze) = a_data%d%r_sp(1:nze)*b_data%d%r_sp(1:nze) - CALL dbcsr_put_block(matrix_c, row, col, c_data%d%r_sp(1:nze), transposed=tr_a, & - summation=.FALSE.) - CASE (dbcsr_type_real_8) - c_data%d%r_dp(1:nze) = a_data%d%r_dp(1:nze)*b_data%d%r_dp(1:nze) - CALL dbcsr_put_block(matrix_c, row, col, c_data%d%r_dp(1:nze), transposed=tr_a, & - summation=.FALSE.) - CASE (dbcsr_type_complex_4) - c_data%d%c_sp(1:nze) = a_data%d%c_sp(1:nze)*b_data%d%c_sp(1:nze) - CALL dbcsr_put_block(matrix_c, row, col, c_data%d%c_sp(1:nze), transposed=tr_a, & - summation=.FALSE.) - CASE (dbcsr_type_complex_8) - c_data%d%c_dp(1:nze) = a_data%d%c_dp(1:nze)*b_data%d%c_dp(1:nze) - CALL dbcsr_put_block(matrix_c, row, col, c_data%d%c_dp(1:nze), transposed=tr_a, & - summation=.FALSE.) - END SELECT - ELSE - IF (assume_blocks_in_b) THEN ! this makes not too much sense, to delete ? - SELECT CASE (data_type) - CASE (dbcsr_type_real_4) - c_data%d%r_sp(1:nze) = a_data%d%r_sp(1:nze)*REAL(assumed_b_value, KIND=sp) - CALL dbcsr_put_block(matrix_c, row, col, c_data%d%r_sp(1:nze), transposed=tr_a, & - summation=.FALSE.) - CASE (dbcsr_type_real_8) - c_data%d%r_dp(1:nze) = a_data%d%r_dp(1:nze)*assumed_b_value - CALL dbcsr_put_block(matrix_c, row, col, c_data%d%r_dp(1:nze), transposed=tr_a, & - summation=.FALSE.) - CASE (dbcsr_type_complex_4) - c_data%d%c_sp(1:nze) = a_data%d%c_sp(1:nze)*REAL(assumed_b_value, KIND=sp) - CALL dbcsr_put_block(matrix_c, row, col, c_data%d%c_sp(1:nze), transposed=tr_a, & - summation=.FALSE.) - CASE (dbcsr_type_complex_8) - c_data%d%c_dp(1:nze) = a_data%d%c_dp(1:nze)*assumed_b_value - CALL dbcsr_put_block(matrix_c, row, col, c_data%d%c_dp(1:nze), transposed=tr_a, & - summation=.FALSE.) - END SELECT - END IF - END IF - !CASE (dbcsr_type_complex_4) - !CASE (dbcsr_type_complex_8) - CASE DEFAULT - DBCSR_ABORT("Only real double precision") - END SELECT - END DO - CALL dbcsr_iterator_stop(iter) - CALL dbcsr_finalize(matrix_c) - CALL dbcsr_data_clear_pointer(a_data) - CALL dbcsr_data_clear_pointer(b_data) - CALL dbcsr_data_release(c_data) - CALL dbcsr_data_release(a_data) - CALL dbcsr_data_release(b_data) - CALL timestop(handle) - END SUBROUTINE dbcsr_hadamard_product - - SUBROUTINE dbcsr_init_random(matrix, keep_sparsity, mini_seed) - !! ... TODO : unify with other version which is generic in the data_type - TYPE(dbcsr_type), INTENT(INOUT) :: matrix - LOGICAL, OPTIONAL :: keep_sparsity - INTEGER, INTENT(IN), OPTIONAL :: mini_seed - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_init_random' - - INTEGER :: col, col_size, handle, hold, iseed(4), & - mynode, ncol, nrow, row, row_size, & - stored_col, stored_row, my_mini_seed - INTEGER, DIMENSION(:), POINTER :: col_blk_size, row_blk_size - LOGICAL :: found, my_keep_sparsity, tr - REAL(real_8), ALLOCATABLE, DIMENSION(:) :: rnd - REAL(real_8), DIMENSION(:, :), POINTER :: buff, data_d - -! --------------------------------------------------------------------------- - - my_keep_sparsity = .FALSE. - IF (PRESENT(keep_sparsity)) my_keep_sparsity = keep_sparsity - - my_mini_seed = 1 - IF (PRESENT(mini_seed)) my_mini_seed = mini_seed - - CALL timeset(routineN, handle) - - row_blk_size => array_data(matrix%row_blk_size) - col_blk_size => array_data(matrix%col_blk_size) - mynode = dbcsr_mp_mynode(dbcsr_distribution_mp(dbcsr_distribution(matrix))) - CALL dbcsr_work_create(matrix, work_mutable=.TRUE.) - - ALLOCATE (rnd(MAXVAL(row_blk_size)*MAXVAL(col_blk_size))) - nrow = dbcsr_nblkrows_total(matrix) - ncol = dbcsr_nblkcols_total(matrix) - DO row = 1, nrow - DO col = 1, ncol - row_size = row_blk_size(row) - col_size = col_blk_size(col) - tr = .FALSE. - stored_row = row - stored_col = col - CALL dbcsr_get_stored_coordinates(matrix, stored_row, stored_col, hold) - IF (hold .EQ. mynode) THEN - CALL dbcsr_get_block_p(matrix, stored_row, stored_col, data_d, tr, found) - IF (found .OR. (.NOT. my_keep_sparsity)) THEN - ! set the seed for dlarnv, is here to guarantee same value of the random numbers - ! for all layouts (and block distributions) - CALL set_larnv_seed(row, nrow, col, ncol, my_mini_seed, iseed) - CALL dlarnv(1, iseed, row_size*col_size, rnd(1)) - END IF - IF (found) THEN - CALL dcopy(row_size*col_size, rnd, 1, data_d, 1) - ELSE - IF (.NOT. my_keep_sparsity) THEN - ALLOCATE (buff(row_size, col_size)) - CALL dcopy(row_size*col_size, rnd, 1, buff, 1) - CALL dbcsr_put_block(matrix, stored_row, stored_col, buff) - DEALLOCATE (buff) - END IF - END IF - END IF - END DO - END DO - DEALLOCATE (rnd) - - CALL dbcsr_finalize(matrix) - CALL timestop(handle) + data_type = dbcsr_get_data_type(matrix_a) + CALL dbcsr_data_init(c_data) + CALL dbcsr_data_new(c_data, data_type, & + data_size=dbcsr_max_row_size(matrix_a)*dbcsr_max_col_size(matrix_a)) + CALL dbcsr_zero(matrix_c) + CALL dbcsr_data_init(a_data) + CALL dbcsr_data_new(a_data, data_type) + CALL dbcsr_data_init(b_data) + CALL dbcsr_data_new(b_data, data_type) + CALL dbcsr_iterator_start(iter, matrix_a) + DO WHILE (dbcsr_iterator_blocks_left(iter)) + SELECT CASE (dbcsr_get_data_type(matrix_a)) + !CASE (dbcsr_type_real_4) + CASE (dbcsr_type_real_8) + CALL dbcsr_iterator_next_block(iter, row, col, a_data, tr_a, blk, & + row_size=row_size, col_size=col_size) + nze = row_size*col_size + CALL dbcsr_get_block_p(matrix_b, row, col, b_data, tr_b, found) + IF (tr_a .NEQV. tr_b) & + DBCSR_ABORT("tr not consistent, need to fix that") + IF (found) THEN + SELECT CASE (data_type) + CASE (dbcsr_type_real_4) + c_data%d%r_sp(1:nze) = a_data%d%r_sp(1:nze)*b_data%d%r_sp(1:nze) + CALL dbcsr_put_block(matrix_c, row, col, c_data%d%r_sp(1:nze), transposed=tr_a, & + summation=.FALSE.) + CASE (dbcsr_type_real_8) + c_data%d%r_dp(1:nze) = a_data%d%r_dp(1:nze)*b_data%d%r_dp(1:nze) + CALL dbcsr_put_block(matrix_c, row, col, c_data%d%r_dp(1:nze), transposed=tr_a, & + summation=.FALSE.) + CASE (dbcsr_type_complex_4) + c_data%d%c_sp(1:nze) = a_data%d%c_sp(1:nze)*b_data%d%c_sp(1:nze) + CALL dbcsr_put_block(matrix_c, row, col, c_data%d%c_sp(1:nze), transposed=tr_a, & + summation=.FALSE.) + CASE (dbcsr_type_complex_8) + c_data%d%c_dp(1:nze) = a_data%d%c_dp(1:nze)*b_data%d%c_dp(1:nze) + CALL dbcsr_put_block(matrix_c, row, col, c_data%d%c_dp(1:nze), transposed=tr_a, & + summation=.FALSE.) + END SELECT + ELSE + IF (assume_blocks_in_b) THEN ! this makes not too much sense, to delete ? + SELECT CASE (data_type) + CASE (dbcsr_type_real_4) + c_data%d%r_sp(1:nze) = a_data%d%r_sp(1:nze)*REAL(assumed_b_value, KIND=sp) + CALL dbcsr_put_block(matrix_c, row, col, c_data%d%r_sp(1:nze), transposed=tr_a, & + summation=.FALSE.) + CASE (dbcsr_type_real_8) + c_data%d%r_dp(1:nze) = a_data%d%r_dp(1:nze)*assumed_b_value + CALL dbcsr_put_block(matrix_c, row, col, c_data%d%r_dp(1:nze), transposed=tr_a, & + summation=.FALSE.) + CASE (dbcsr_type_complex_4) + c_data%d%c_sp(1:nze) = a_data%d%c_sp(1:nze)*REAL(assumed_b_value, KIND=sp) + CALL dbcsr_put_block(matrix_c, row, col, c_data%d%c_sp(1:nze), transposed=tr_a, & + summation=.FALSE.) + CASE (dbcsr_type_complex_8) + c_data%d%c_dp(1:nze) = a_data%d%c_dp(1:nze)*assumed_b_value + CALL dbcsr_put_block(matrix_c, row, col, c_data%d%c_dp(1:nze), transposed=tr_a, & + summation=.FALSE.) + END SELECT + END IF + END IF + !CASE (dbcsr_type_complex_4) + !CASE (dbcsr_type_complex_8) + CASE DEFAULT + DBCSR_ABORT("Only real double precision") + END SELECT + END DO + CALL dbcsr_iterator_stop(iter) + CALL dbcsr_finalize(matrix_c) + CALL dbcsr_data_clear_pointer(a_data) + CALL dbcsr_data_clear_pointer(b_data) + CALL dbcsr_data_release(c_data) + CALL dbcsr_data_release(a_data) + CALL dbcsr_data_release(b_data) + CALL timestop(handle) + END SUBROUTINE dbcsr_hadamard_product + + SUBROUTINE dbcsr_init_random(matrix, keep_sparsity, mini_seed) + !! ... TODO : unify with other version which is generic in the data_type + TYPE(dbcsr_type), INTENT(INOUT) :: matrix + LOGICAL, OPTIONAL :: keep_sparsity + INTEGER, INTENT(IN), OPTIONAL :: mini_seed + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_init_random' + + INTEGER :: col, col_size, handle, hold, iseed(4), & + mynode, ncol, nrow, row, row_size, & + stored_col, stored_row, my_mini_seed + INTEGER, DIMENSION(:), POINTER :: col_blk_size, row_blk_size + LOGICAL :: found, my_keep_sparsity, tr + REAL(real_8), ALLOCATABLE, DIMENSION(:) :: rnd + REAL(real_8), DIMENSION(:, :), POINTER :: buff, data_d + +! --------------------------------------------------------------------------- + + my_keep_sparsity = .FALSE. + IF (PRESENT(keep_sparsity)) my_keep_sparsity = keep_sparsity + + my_mini_seed = 1 + IF (PRESENT(mini_seed)) my_mini_seed = mini_seed + + CALL timeset(routineN, handle) + + row_blk_size => array_data(matrix%row_blk_size) + col_blk_size => array_data(matrix%col_blk_size) + mynode = dbcsr_mp_mynode(dbcsr_distribution_mp(dbcsr_distribution(matrix))) + CALL dbcsr_work_create(matrix, work_mutable=.TRUE.) + + ALLOCATE (rnd(MAXVAL(row_blk_size)*MAXVAL(col_blk_size))) + nrow = dbcsr_nblkrows_total(matrix) + ncol = dbcsr_nblkcols_total(matrix) + DO row = 1, nrow + DO col = 1, ncol + row_size = row_blk_size(row) + col_size = col_blk_size(col) + tr = .FALSE. + stored_row = row + stored_col = col + CALL dbcsr_get_stored_coordinates(matrix, stored_row, stored_col, hold) + IF (hold .EQ. mynode) THEN + CALL dbcsr_get_block_p(matrix, stored_row, stored_col, data_d, tr, found) + IF (found .OR. (.NOT. my_keep_sparsity)) THEN + ! set the seed for dlarnv, is here to guarantee same value of the random numbers + ! for all layouts (and block distributions) + CALL set_larnv_seed(row, nrow, col, ncol, my_mini_seed, iseed) + CALL dlarnv(1, iseed, row_size*col_size, rnd(1)) + END IF + IF (found) THEN + CALL dcopy(row_size*col_size, rnd, 1, data_d, 1) + ELSE + IF (.NOT. my_keep_sparsity) THEN + ALLOCATE (buff(row_size, col_size)) + CALL dcopy(row_size*col_size, rnd, 1, buff, 1) + CALL dbcsr_put_block(matrix, stored_row, stored_col, buff) + DEALLOCATE (buff) + END IF + END IF + END IF + END DO + END DO + DEALLOCATE (rnd) + + CALL dbcsr_finalize(matrix) + CALL timestop(handle) + + END SUBROUTINE dbcsr_init_random + + SUBROUTINE dbcsr_get_block_diag(matrix, diag) + !! get the diagonal of a dbcsr matrix + + TYPE(dbcsr_type), INTENT(IN) :: matrix + !! the matrix + TYPE(dbcsr_type), INTENT(INOUT) :: diag + !! the diagonal + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_get_block_diag' + + INTEGER :: blk, col, handle, row + LOGICAL :: tr + TYPE(dbcsr_data_obj) :: data_a + TYPE(dbcsr_iterator) :: iter + +! --------------------------------------------------------------------------- - END SUBROUTINE dbcsr_init_random - - SUBROUTINE dbcsr_get_block_diag(matrix, diag) - !! get the diagonal of a dbcsr matrix - - TYPE(dbcsr_type), INTENT(IN) :: matrix - !! the matrix - TYPE(dbcsr_type), INTENT(INOUT) :: diag - !! the diagonal - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_get_block_diag' - - INTEGER :: blk, col, handle, row - LOGICAL :: tr - TYPE(dbcsr_data_obj) :: data_a - TYPE(dbcsr_iterator) :: iter - -! --------------------------------------------------------------------------- - - CALL timeset(routineN, handle) - CALL dbcsr_create(diag, name='diag of '//TRIM(matrix%name), & - template=matrix) - - CALL dbcsr_data_init(data_a) - CALL dbcsr_data_new(data_a, dbcsr_get_data_type(matrix)) - CALL dbcsr_iterator_start(iter, matrix) - DO WHILE (dbcsr_iterator_blocks_left(iter)) - CALL dbcsr_iterator_next_block(iter, row, col, data_a, tr, blk) - IF (row .EQ. col) CALL dbcsr_put_block(diag, row, col, data_a, transposed=tr) - END DO - CALL dbcsr_iterator_stop(iter) - CALL dbcsr_data_clear_pointer(data_a) - CALL dbcsr_data_release(data_a) - CALL dbcsr_finalize(diag) - CALL timestop(handle) - END SUBROUTINE dbcsr_get_block_diag - - LOGICAL FUNCTION symmetry_consistent(matrix_type, data_type) - !! checks if matrix symmetry and data_type are consistent - !! \brief note: does not check the symmetry of the data itself - - CHARACTER, INTENT(IN) :: matrix_type - INTEGER, INTENT(IN) :: data_type + CALL timeset(routineN, handle) + CALL dbcsr_create(diag, name='diag of '//TRIM(matrix%name), & + template=matrix) + + CALL dbcsr_data_init(data_a) + CALL dbcsr_data_new(data_a, dbcsr_get_data_type(matrix)) + CALL dbcsr_iterator_start(iter, matrix) + DO WHILE (dbcsr_iterator_blocks_left(iter)) + CALL dbcsr_iterator_next_block(iter, row, col, data_a, tr, blk) + IF (row .EQ. col) CALL dbcsr_put_block(diag, row, col, data_a, transposed=tr) + END DO + CALL dbcsr_iterator_stop(iter) + CALL dbcsr_data_clear_pointer(data_a) + CALL dbcsr_data_release(data_a) + CALL dbcsr_finalize(diag) + CALL timestop(handle) + END SUBROUTINE dbcsr_get_block_diag + + LOGICAL FUNCTION symmetry_consistent(matrix_type, data_type) + !! checks if matrix symmetry and data_type are consistent + !! \brief note: does not check the symmetry of the data itself + + CHARACTER, INTENT(IN) :: matrix_type + INTEGER, INTENT(IN) :: data_type + + symmetry_consistent = .FALSE. + + SELECT CASE (data_type) + CASE (dbcsr_type_real_4, dbcsr_type_real_8) + SELECT CASE (matrix_type) + CASE (dbcsr_type_no_symmetry, dbcsr_type_symmetric, dbcsr_type_antisymmetric) + symmetry_consistent = .TRUE. + END SELECT + CASE (dbcsr_type_complex_4, dbcsr_type_complex_8) + SELECT CASE (matrix_type) + CASE (dbcsr_type_no_symmetry, dbcsr_type_hermitian, dbcsr_type_antihermitian) + symmetry_consistent = .TRUE. + END SELECT + CASE DEFAULT + DBCSR_ABORT("Invalid data type.") + END SELECT + + END FUNCTION symmetry_consistent - symmetry_consistent = .FALSE. - - SELECT CASE (data_type) - CASE (dbcsr_type_real_4, dbcsr_type_real_8) - SELECT CASE (matrix_type) - CASE (dbcsr_type_no_symmetry, dbcsr_type_symmetric, dbcsr_type_antisymmetric) - symmetry_consistent = .TRUE. - END SELECT - CASE (dbcsr_type_complex_4, dbcsr_type_complex_8) - SELECT CASE (matrix_type) - CASE (dbcsr_type_no_symmetry, dbcsr_type_hermitian, dbcsr_type_antihermitian) - symmetry_consistent = .TRUE. - END SELECT - CASE DEFAULT - DBCSR_ABORT("Invalid data type.") - END SELECT - - END FUNCTION symmetry_consistent - - LOGICAL FUNCTION symmetry_compatible(matrix_type_a, matrix_type_b) - !! checks if symmetries of two matrices are compatible for copying - !! \brief data from matrix_a(source) to matrix_b(target) - - CHARACTER, INTENT(IN) :: matrix_type_a, matrix_type_b - - symmetry_compatible = .FALSE. - - SELECT CASE (matrix_type_a) - CASE (dbcsr_type_no_symmetry) - SELECT CASE (matrix_type_b) - CASE (dbcsr_type_no_symmetry) - symmetry_compatible = .TRUE. - END SELECT - CASE (dbcsr_type_symmetric, dbcsr_type_hermitian) - SELECT CASE (matrix_type_b) - CASE (dbcsr_type_symmetric, dbcsr_type_hermitian) - symmetry_compatible = .TRUE. - END SELECT - CASE (dbcsr_type_antisymmetric, dbcsr_type_antihermitian) - SELECT CASE (matrix_type_b) - CASE (dbcsr_type_antisymmetric, dbcsr_type_antihermitian) - symmetry_compatible = .TRUE. - END SELECT - CASE DEFAULT - DBCSR_ABORT("Invalid matrix type.") - END SELECT - - END FUNCTION symmetry_compatible + LOGICAL FUNCTION symmetry_compatible(matrix_type_a, matrix_type_b) + !! checks if symmetries of two matrices are compatible for copying + !! \brief data from matrix_a(source) to matrix_b(target) + + CHARACTER, INTENT(IN) :: matrix_type_a, matrix_type_b + + symmetry_compatible = .FALSE. + + SELECT CASE (matrix_type_a) + CASE (dbcsr_type_no_symmetry) + SELECT CASE (matrix_type_b) + CASE (dbcsr_type_no_symmetry) + symmetry_compatible = .TRUE. + END SELECT + CASE (dbcsr_type_symmetric, dbcsr_type_hermitian) + SELECT CASE (matrix_type_b) + CASE (dbcsr_type_symmetric, dbcsr_type_hermitian) + symmetry_compatible = .TRUE. + END SELECT + CASE (dbcsr_type_antisymmetric, dbcsr_type_antihermitian) + SELECT CASE (matrix_type_b) + CASE (dbcsr_type_antisymmetric, dbcsr_type_antihermitian) + symmetry_compatible = .TRUE. + END SELECT + CASE DEFAULT + DBCSR_ABORT("Invalid matrix type.") + END SELECT + + END FUNCTION symmetry_compatible + + SUBROUTINE dbcsr_copy(matrix_b, matrix_a, name, keep_sparsity, & + shallow_data, keep_imaginary, matrix_type) + !! copy a matrix + + TYPE(dbcsr_type), INTENT(INOUT) :: matrix_b + !! target DBCSR matrix + TYPE(dbcsr_type), INTENT(IN) :: matrix_a + !! source DBCSR matrix + CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: name + !! name of the new matrix + LOGICAL, INTENT(IN), OPTIONAL :: keep_sparsity, shallow_data, & + keep_imaginary + !! keep the target matrix sparsity; default is False. + !! shallow data copy + !! when copy from complex to real,& the default is to keep only the real part; if this flag is set, the imaginary part is + !! used + CHARACTER, INTENT(IN), OPTIONAL :: matrix_type + !! 'N' for normal, 'T' for transposed, 'S' for symmetric, and 'A' for antisymmetric - SUBROUTINE dbcsr_copy(matrix_b, matrix_a, name, keep_sparsity, & - shallow_data, keep_imaginary, matrix_type) - !! copy a matrix - - TYPE(dbcsr_type), INTENT(INOUT) :: matrix_b - !! target DBCSR matrix - TYPE(dbcsr_type), INTENT(IN) :: matrix_a - !! source DBCSR matrix - CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: name - !! name of the new matrix - LOGICAL, INTENT(IN), OPTIONAL :: keep_sparsity, shallow_data, & - keep_imaginary - !! keep the target matrix sparsity; default is False. - !! shallow data copy - !! when copy from complex to real,& the default is to keep only the real part; if this flag is set, the imaginary part is - !! used - CHARACTER, INTENT(IN), OPTIONAL :: matrix_type - !! 'N' for normal, 'T' for transposed, 'S' for symmetric, and 'A' for antisymmetric - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_copy' - CHARACTER :: new_matrix_type, repl_type - INTEGER :: handle, new_type - LOGICAL :: keep_sparse, shallow - -! --------------------------------------------------------------------------- - - CALL timeset(routineN, handle) - IF (.NOT. symmetry_consistent(dbcsr_get_matrix_type(matrix_a), dbcsr_get_data_type(matrix_a))) & - DBCSR_ABORT("Source matrix symmetry not consistent with its data type.") - shallow = .FALSE.; IF (PRESENT(shallow_data)) shallow = shallow_data - keep_sparse = .FALSE. - IF (PRESENT(keep_sparsity)) keep_sparse = keep_sparsity - IF (keep_sparse .AND. .NOT. dbcsr_valid_index(matrix_b)) & - DBCSR_ABORT("Target matrix must be valid to keep its sparsity") - IF (keep_sparse .AND. shallow) & - DBCSR_WARN("Shallow copy not compatibly with sparsity retainment") - IF (keep_sparse) THEN - IF (PRESENT(name)) matrix_b%name = name - CALL dbcsr_copy_into_existing(matrix_b, matrix_a) - ELSE - IF (dbcsr_valid_index(matrix_b)) THEN - new_type = dbcsr_get_data_type(matrix_b) - repl_type = dbcsr_get_replication_type(matrix_b) + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_copy' + CHARACTER :: new_matrix_type, repl_type + INTEGER :: handle, new_type + LOGICAL :: keep_sparse, shallow + +! --------------------------------------------------------------------------- + + CALL timeset(routineN, handle) + IF (.NOT. symmetry_consistent(dbcsr_get_matrix_type(matrix_a), dbcsr_get_data_type(matrix_a))) & + DBCSR_ABORT("Source matrix symmetry not consistent with its data type.") + shallow = .FALSE.; IF (PRESENT(shallow_data)) shallow = shallow_data + keep_sparse = .FALSE. + IF (PRESENT(keep_sparsity)) keep_sparse = keep_sparsity + IF (keep_sparse .AND. .NOT. dbcsr_valid_index(matrix_b)) & + DBCSR_ABORT("Target matrix must be valid to keep its sparsity") + IF (keep_sparse .AND. shallow) & + DBCSR_WARN("Shallow copy not compatibly with sparsity retainment") + IF (keep_sparse) THEN + IF (PRESENT(name)) matrix_b%name = name + CALL dbcsr_copy_into_existing(matrix_b, matrix_a) + ELSE + IF (dbcsr_valid_index(matrix_b)) THEN + new_type = dbcsr_get_data_type(matrix_b) + repl_type = dbcsr_get_replication_type(matrix_b) + ELSE + new_type = dbcsr_get_data_type(matrix_a) + repl_type = dbcsr_get_replication_type(matrix_a) + END IF + new_matrix_type = dbcsr_get_matrix_type(matrix_a) + IF (PRESENT(matrix_type)) THEN + IF (.NOT. symmetry_compatible(dbcsr_get_matrix_type(matrix_a), matrix_type)) & + CALL dbcsr_abort(__LOCATION__, "Specified target matrix symmetry "//matrix_type// & + " not compatible with source matrix type "//dbcsr_get_matrix_type(matrix_a)) + new_matrix_type = matrix_type + END IF + IF (.NOT. symmetry_consistent(new_matrix_type, new_type)) & + CALL dbcsr_abort(__LOCATION__, "Target matrix symmetry "// & + new_matrix_type//" not consistent with its data type.") + IF (PRESENT(name)) THEN + CALL dbcsr_create(matrix_b, name=TRIM(name), & + template=matrix_a, & + matrix_type=new_matrix_type, & + data_type=new_type) ELSE - new_type = dbcsr_get_data_type(matrix_a) - repl_type = dbcsr_get_replication_type(matrix_a) - END IF - new_matrix_type = dbcsr_get_matrix_type(matrix_a) - IF (PRESENT(matrix_type)) THEN - IF (.NOT. symmetry_compatible(dbcsr_get_matrix_type(matrix_a), matrix_type)) & - CALL dbcsr_abort(__LOCATION__, "Specified target matrix symmetry "//matrix_type// & - " not compatible with source matrix type "//dbcsr_get_matrix_type(matrix_a)) - new_matrix_type = matrix_type - END IF - IF (.NOT. symmetry_consistent(new_matrix_type, new_type)) & - CALL dbcsr_abort(__LOCATION__, "Target matrix symmetry "// & - new_matrix_type//" not consistent with its data type.") - IF (PRESENT(name)) THEN - CALL dbcsr_create(matrix_b, name=TRIM(name), & - template=matrix_a, & - matrix_type=new_matrix_type, & - data_type=new_type) - ELSE - CALL dbcsr_create(matrix_b, & - data_type=new_type, & - matrix_type=new_matrix_type, & - template=matrix_a) - END IF - CALL ensure_array_size(matrix_b%index, ub=SIZE(matrix_a%index), & - memory_type=dbcsr_get_index_memory_type(matrix_b)) - ! - ! copy index and data - matrix_b%index(1:SIZE(matrix_a%index)) = matrix_a%index(:) - IF (.NOT. shallow) THEN - IF (matrix_a%nze > dbcsr_get_data_size(matrix_a)) & - DBCSR_ABORT("Source matrix sizes not consistent!") - CALL dbcsr_data_ensure_size(matrix_b%data_area, & - dbcsr_data_get_size_referenced(matrix_a%data_area)) - IF (dbcsr_get_data_type(matrix_a) .EQ. dbcsr_get_data_type(matrix_b)) & - THEN - CALL dbcsr_data_copyall(matrix_b%data_area, & - matrix_a%data_area) - ELSE - CALL dbcsr_data_convert(matrix_b%data_area, & - matrix_a%data_area, drop_real=keep_imaginary) - END IF - ELSE - IF (dbcsr_get_data_type(matrix_a) .NE. dbcsr_get_data_type(matrix_b)) & - DBCSR_ABORT("Shallow copy only possible when retaining data type.") - CALL dbcsr_switch_data_area(matrix_b, matrix_a%data_area) - END IF - ! - ! the row_p, col_i and blk_p ... - CALL dbcsr_repoint_index(matrix_b) - matrix_b%nze = matrix_a%nze - matrix_b%nblks = matrix_b%nblks - matrix_b%valid = .TRUE. - - matrix_b%sparsity_id = matrix_a%sparsity_id - END IF - CALL timestop(handle) - END SUBROUTINE dbcsr_copy - - SUBROUTINE dbcsr_copy_into_existing(matrix_b, matrix_a) - !! copy a matrix, retaining current sparsity - - TYPE(dbcsr_type), INTENT(INOUT) :: matrix_b - !! target DBCSR matrix - TYPE(dbcsr_type), INTENT(IN) :: matrix_a - !! source DBCSR matrix - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_copy_into_existing' - - INTEGER :: col_size, data_type, dst_col, dst_row, & - handle, rel, row_size, src_col, & - src_cs, src_row, src_rs - LOGICAL :: dst_tr, making_symmetric, neg_imag, & - neg_real, src_tr - TYPE(dbcsr_data_obj) :: dst_data, src_data - TYPE(dbcsr_iterator) :: dst_iter, src_iter - -! --------------------------------------------------------------------------- - - CALL timeset(routineN, handle) - IF (.NOT. dbcsr_valid_index(matrix_b)) & - DBCSR_ABORT("Matrix_b is not valid") - IF (dbcsr_get_data_type(matrix_b) .NE. dbcsr_get_data_type(matrix_a)) & - DBCSR_ABORT("Matrices have different data types.") - data_type = dbcsr_get_data_type(matrix_b) - neg_real = matrix_b%negate_real - neg_imag = matrix_b%negate_imaginary - making_symmetric = dbcsr_has_symmetry(matrix_b) & - .AND. .NOT. dbcsr_has_symmetry(matrix_a) - IF (making_symmetric) THEN - CALL dbcsr_copy_into_existing_sym(matrix_b, matrix_a) - CALL timestop(handle) - RETURN - END IF - CALL dbcsr_data_init(src_data) - CALL dbcsr_data_init(dst_data) - CALL dbcsr_data_new(src_data, data_type) - CALL dbcsr_data_new(dst_data, data_type) - CALL dbcsr_iterator_start(src_iter, matrix_a) - CALL dbcsr_iterator_start(dst_iter, matrix_b) - ! Iterate through the blocks of the source and destination - ! matrix. There are three possibilities: 1. copy the data for - ! blocks present in both; 2 skip source blocks not present in the - ! target; 3 zero blocks not present in the source. - IF (dbcsr_iterator_blocks_left(src_iter)) THEN - CALL dbcsr_iterator_next_block(src_iter, src_row, src_col, src_data, & - src_tr) - ELSE - src_row = 0; src_col = 0 - END IF - DO WHILE (dbcsr_iterator_blocks_left(dst_iter)) - CALL dbcsr_iterator_next_block(dst_iter, dst_row, dst_col, dst_data, & - dst_tr, row_size=row_size, col_size=col_size) - ! Now find the source position that is greater or equal to the - ! target one. I.e, skip blocks that the target doesn't have. - rel = pos_relation(dst_row, dst_col, src_row, src_col) - DO WHILE (rel .EQ. 1 .AND. dbcsr_iterator_blocks_left(src_iter)) - CALL dbcsr_iterator_next_block(src_iter, src_row, src_col, & - src_data, src_tr, row_size=src_rs, col_size=src_cs) - rel = pos_relation(dst_row, dst_col, src_row, src_col) - END DO - SELECT CASE (rel) - CASE (-1, 1) - ! Target lags source or ran out of source - CALL dbcsr_data_clear(dst_data) - CASE (0) - ! Copy the data - IF (dbcsr_data_get_size(src_data) .NE. dbcsr_data_get_size(dst_data)) & - DBCSR_ABORT("Block sizes not equal!") - IF (src_tr .EQV. dst_tr) THEN - CALL dbcsr_data_copyall(dst_data, src_data) - ELSE - CALL dbcsr_block_partial_copy(dst=dst_data, dst_tr=dst_tr, & - dst_rs=row_size, dst_cs=col_size, & - dst_r_lb=1, dst_c_lb=1, & - src=src_data, src_tr=src_tr, & - src_rs=src_rs, src_cs=src_cs, & - src_r_lb=1, src_c_lb=1, & - nrow=row_size, ncol=col_size) - IF (neg_real) THEN - CALL dbcsr_block_real_neg(dst_data, row_size, col_size) - END IF - IF (neg_imag) THEN - CALL dbcsr_block_conjg(dst_data, row_size, col_size) - END IF - END IF - CASE default - DBCSR_ABORT("Trouble syncing iterators") - END SELECT - END DO - CALL dbcsr_iterator_stop(src_iter) - CALL dbcsr_iterator_stop(dst_iter) - CALL dbcsr_data_clear_pointer(src_data) - CALL dbcsr_data_clear_pointer(dst_data) - CALL dbcsr_data_release(src_data) - CALL dbcsr_data_release(dst_data) - CALL timestop(handle) + CALL dbcsr_create(matrix_b, & + data_type=new_type, & + matrix_type=new_matrix_type, & + template=matrix_a) + END IF + CALL ensure_array_size(matrix_b%index, ub=SIZE(matrix_a%index), & + memory_type=dbcsr_get_index_memory_type(matrix_b)) + ! + ! copy index and data + matrix_b%index(1:SIZE(matrix_a%index)) = matrix_a%index(:) + IF (.NOT. shallow) THEN + IF (matrix_a%nze > dbcsr_get_data_size(matrix_a)) & + DBCSR_ABORT("Source matrix sizes not consistent!") + CALL dbcsr_data_ensure_size(matrix_b%data_area, & + dbcsr_data_get_size_referenced(matrix_a%data_area)) + IF (dbcsr_get_data_type(matrix_a) .EQ. dbcsr_get_data_type(matrix_b)) & + THEN + CALL dbcsr_data_copyall(matrix_b%data_area, & + matrix_a%data_area) + ELSE + CALL dbcsr_data_convert(matrix_b%data_area, & + matrix_a%data_area, drop_real=keep_imaginary) + END IF + ELSE + IF (dbcsr_get_data_type(matrix_a) .NE. dbcsr_get_data_type(matrix_b)) & + DBCSR_ABORT("Shallow copy only possible when retaining data type.") + CALL dbcsr_switch_data_area(matrix_b, matrix_a%data_area) + END IF + ! + ! the row_p, col_i and blk_p ... + CALL dbcsr_repoint_index(matrix_b) + matrix_b%nze = matrix_a%nze + matrix_b%nblks = matrix_b%nblks + matrix_b%valid = .TRUE. + + matrix_b%sparsity_id = matrix_a%sparsity_id + END IF + CALL timestop(handle) + END SUBROUTINE dbcsr_copy + + SUBROUTINE dbcsr_copy_into_existing(matrix_b, matrix_a) + !! copy a matrix, retaining current sparsity + + TYPE(dbcsr_type), INTENT(INOUT) :: matrix_b + !! target DBCSR matrix + TYPE(dbcsr_type), INTENT(IN) :: matrix_a + !! source DBCSR matrix + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_copy_into_existing' + + INTEGER :: col_size, data_type, dst_col, dst_row, & + handle, rel, row_size, src_col, & + src_cs, src_row, src_rs + LOGICAL :: dst_tr, making_symmetric, neg_imag, & + neg_real, src_tr + TYPE(dbcsr_data_obj) :: dst_data, src_data + TYPE(dbcsr_iterator) :: dst_iter, src_iter + +! --------------------------------------------------------------------------- + + CALL timeset(routineN, handle) + IF (.NOT. dbcsr_valid_index(matrix_b)) & + DBCSR_ABORT("Matrix_b is not valid") + IF (dbcsr_get_data_type(matrix_b) .NE. dbcsr_get_data_type(matrix_a)) & + DBCSR_ABORT("Matrices have different data types.") + data_type = dbcsr_get_data_type(matrix_b) + neg_real = matrix_b%negate_real + neg_imag = matrix_b%negate_imaginary + making_symmetric = dbcsr_has_symmetry(matrix_b) & + .AND. .NOT. dbcsr_has_symmetry(matrix_a) + IF (making_symmetric) THEN + CALL dbcsr_copy_into_existing_sym(matrix_b, matrix_a) + CALL timestop(handle) + RETURN + END IF + CALL dbcsr_data_init(src_data) + CALL dbcsr_data_init(dst_data) + CALL dbcsr_data_new(src_data, data_type) + CALL dbcsr_data_new(dst_data, data_type) + CALL dbcsr_iterator_start(src_iter, matrix_a) + CALL dbcsr_iterator_start(dst_iter, matrix_b) + ! Iterate through the blocks of the source and destination + ! matrix. There are three possibilities: 1. copy the data for + ! blocks present in both; 2 skip source blocks not present in the + ! target; 3 zero blocks not present in the source. + IF (dbcsr_iterator_blocks_left(src_iter)) THEN + CALL dbcsr_iterator_next_block(src_iter, src_row, src_col, src_data, & + src_tr) + ELSE + src_row = 0; src_col = 0 + END IF + DO WHILE (dbcsr_iterator_blocks_left(dst_iter)) + CALL dbcsr_iterator_next_block(dst_iter, dst_row, dst_col, dst_data, & + dst_tr, row_size=row_size, col_size=col_size) + ! Now find the source position that is greater or equal to the + ! target one. I.e, skip blocks that the target doesn't have. + rel = pos_relation(dst_row, dst_col, src_row, src_col) + DO WHILE (rel .EQ. 1 .AND. dbcsr_iterator_blocks_left(src_iter)) + CALL dbcsr_iterator_next_block(src_iter, src_row, src_col, & + src_data, src_tr, row_size=src_rs, col_size=src_cs) + rel = pos_relation(dst_row, dst_col, src_row, src_col) + END DO + SELECT CASE (rel) + CASE (-1, 1) + ! Target lags source or ran out of source + CALL dbcsr_data_clear(dst_data) + CASE (0) + ! Copy the data + IF (dbcsr_data_get_size(src_data) .NE. dbcsr_data_get_size(dst_data)) & + DBCSR_ABORT("Block sizes not equal!") + IF (src_tr .EQV. dst_tr) THEN + CALL dbcsr_data_copyall(dst_data, src_data) + ELSE + CALL dbcsr_block_partial_copy(dst=dst_data, dst_tr=dst_tr, & + dst_rs=row_size, dst_cs=col_size, & + dst_r_lb=1, dst_c_lb=1, & + src=src_data, src_tr=src_tr, & + src_rs=src_rs, src_cs=src_cs, & + src_r_lb=1, src_c_lb=1, & + nrow=row_size, ncol=col_size) + IF (neg_real) THEN + CALL dbcsr_block_real_neg(dst_data, row_size, col_size) + END IF + IF (neg_imag) THEN + CALL dbcsr_block_conjg(dst_data, row_size, col_size) + END IF + END IF + CASE default + DBCSR_ABORT("Trouble syncing iterators") + END SELECT + END DO + CALL dbcsr_iterator_stop(src_iter) + CALL dbcsr_iterator_stop(dst_iter) + CALL dbcsr_data_clear_pointer(src_data) + CALL dbcsr_data_clear_pointer(dst_data) + CALL dbcsr_data_release(src_data) + CALL dbcsr_data_release(dst_data) + CALL timestop(handle) + + END SUBROUTINE dbcsr_copy_into_existing + + SUBROUTINE dbcsr_copy_into_existing_sym(matrix_b, matrix_a) + !! copy a matrix, retaining current sparsity + + TYPE(dbcsr_type), INTENT(INOUT) :: matrix_b + !! target DBCSR matrix + TYPE(dbcsr_type), INTENT(IN) :: matrix_a + !! source DBCSR matrix + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_copy_into_existing_sym' + + INTEGER :: col_size, data_type, dst_col, dst_row, & + handle, row_size, src_col, src_cs, & + src_row, src_rs + LOGICAL :: dst_tr, found, neg_imag, neg_real, src_tr + TYPE(dbcsr_data_obj) :: dst_data, src_data + TYPE(dbcsr_iterator) :: dst_iter - END SUBROUTINE dbcsr_copy_into_existing +! --------------------------------------------------------------------------- - SUBROUTINE dbcsr_copy_into_existing_sym(matrix_b, matrix_a) - !! copy a matrix, retaining current sparsity - - TYPE(dbcsr_type), INTENT(INOUT) :: matrix_b - !! target DBCSR matrix - TYPE(dbcsr_type), INTENT(IN) :: matrix_a - !! source DBCSR matrix - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_copy_into_existing_sym' - - INTEGER :: col_size, data_type, dst_col, dst_row, & - handle, row_size, src_col, src_cs, & - src_row, src_rs - LOGICAL :: dst_tr, found, neg_imag, neg_real, src_tr - TYPE(dbcsr_data_obj) :: dst_data, src_data - TYPE(dbcsr_iterator) :: dst_iter - -! --------------------------------------------------------------------------- - - CALL timeset(routineN, handle) - IF (dbcsr_get_data_type(matrix_b) .NE. dbcsr_get_data_type(matrix_a)) & - DBCSR_ABORT("Matrices have different data types.") - data_type = dbcsr_get_data_type(matrix_b) - IF (.NOT. dbcsr_has_symmetry(matrix_b) .OR. dbcsr_has_symmetry(matrix_a)) & - DBCSR_ABORT("Must copy from non-symmetric to symmetric matrix.") - neg_real = matrix_b%negate_real - neg_imag = matrix_b%negate_imaginary - - CALL dbcsr_data_init(src_data) - CALL dbcsr_data_init(dst_data) - CALL dbcsr_data_new(src_data, data_type) - CALL dbcsr_data_new(dst_data, data_type) - CALL dbcsr_iterator_start(dst_iter, matrix_b) - ! Iterate through the blocks of the destination matrix. For each - ! one, try to find an appropriate source matrix block and copy it - ! into the destination matrix. - DO WHILE (dbcsr_iterator_blocks_left(dst_iter)) - CALL dbcsr_iterator_next_block(dst_iter, dst_row, dst_col, dst_data, & - dst_tr, row_size=row_size, col_size=col_size) - src_row = dst_row - src_col = dst_col - IF (checker_tr(dst_row, dst_col)) & - CALL swap(src_row, src_col) - CALL dbcsr_get_block_p(matrix_a, src_row, src_col, src_data, src_tr, & - found=found, row_size=src_rs, col_size=src_cs) - IF (.NOT. found) THEN - CALL dbcsr_data_clear(dst_data) - ELSE - IF (checker_tr(dst_row, dst_col)) THEN - src_tr = .NOT. src_tr - CALL swap(src_rs, src_cs) - END IF - CALL dbcsr_block_partial_copy(dst=dst_data, dst_tr=dst_tr, & - dst_rs=row_size, dst_cs=col_size, & - dst_r_lb=1, dst_c_lb=1, & - src=src_data, src_tr=src_tr, & - src_rs=src_rs, src_cs=src_cs, & - src_r_lb=1, src_c_lb=1, & - nrow=row_size, ncol=col_size) - IF (neg_real .AND. checker_tr(dst_row, dst_col)) THEN - CALL dbcsr_block_real_neg(dst_data, row_size, col_size) - END IF - IF (neg_imag .AND. checker_tr(dst_row, dst_col)) THEN - CALL dbcsr_block_conjg(dst_data, row_size, col_size) - END IF - END IF - END DO - CALL dbcsr_iterator_stop(dst_iter) - CALL dbcsr_data_clear_pointer(src_data) - CALL dbcsr_data_clear_pointer(dst_data) - CALL dbcsr_data_release(src_data) - CALL dbcsr_data_release(dst_data) - CALL timestop(handle) - - END SUBROUTINE dbcsr_copy_into_existing_sym - - ELEMENTAL FUNCTION pos_relation(row1, col1, row2, col2) RESULT(relation) - !! Determines the relation between two matrix positions. + CALL timeset(routineN, handle) + IF (dbcsr_get_data_type(matrix_b) .NE. dbcsr_get_data_type(matrix_a)) & + DBCSR_ABORT("Matrices have different data types.") + data_type = dbcsr_get_data_type(matrix_b) + IF (.NOT. dbcsr_has_symmetry(matrix_b) .OR. dbcsr_has_symmetry(matrix_a)) & + DBCSR_ABORT("Must copy from non-symmetric to symmetric matrix.") + neg_real = matrix_b%negate_real + neg_imag = matrix_b%negate_imaginary + + CALL dbcsr_data_init(src_data) + CALL dbcsr_data_init(dst_data) + CALL dbcsr_data_new(src_data, data_type) + CALL dbcsr_data_new(dst_data, data_type) + CALL dbcsr_iterator_start(dst_iter, matrix_b) + ! Iterate through the blocks of the destination matrix. For each + ! one, try to find an appropriate source matrix block and copy it + ! into the destination matrix. + DO WHILE (dbcsr_iterator_blocks_left(dst_iter)) + CALL dbcsr_iterator_next_block(dst_iter, dst_row, dst_col, dst_data, & + dst_tr, row_size=row_size, col_size=col_size) + src_row = dst_row + src_col = dst_col + IF (checker_tr(dst_row, dst_col)) & + CALL swap(src_row, src_col) + CALL dbcsr_get_block_p(matrix_a, src_row, src_col, src_data, src_tr, & + found=found, row_size=src_rs, col_size=src_cs) + IF (.NOT. found) THEN + CALL dbcsr_data_clear(dst_data) + ELSE + IF (checker_tr(dst_row, dst_col)) THEN + src_tr = .NOT. src_tr + CALL swap(src_rs, src_cs) + END IF + CALL dbcsr_block_partial_copy(dst=dst_data, dst_tr=dst_tr, & + dst_rs=row_size, dst_cs=col_size, & + dst_r_lb=1, dst_c_lb=1, & + src=src_data, src_tr=src_tr, & + src_rs=src_rs, src_cs=src_cs, & + src_r_lb=1, src_c_lb=1, & + nrow=row_size, ncol=col_size) + IF (neg_real .AND. checker_tr(dst_row, dst_col)) THEN + CALL dbcsr_block_real_neg(dst_data, row_size, col_size) + END IF + IF (neg_imag .AND. checker_tr(dst_row, dst_col)) THEN + CALL dbcsr_block_conjg(dst_data, row_size, col_size) + END IF + END IF + END DO + CALL dbcsr_iterator_stop(dst_iter) + CALL dbcsr_data_clear_pointer(src_data) + CALL dbcsr_data_clear_pointer(dst_data) + CALL dbcsr_data_release(src_data) + CALL dbcsr_data_release(dst_data) + CALL timestop(handle) + + END SUBROUTINE dbcsr_copy_into_existing_sym + + ELEMENTAL FUNCTION pos_relation(row1, col1, row2, col2) RESULT(relation) + !! Determines the relation between two matrix positions. + + INTEGER, INTENT(IN) :: row1, col1, row2, col2 + INTEGER :: relation + !! Relation between positions 1 and 2. 0: same -1: pos1 < pos2 1: pos1 > pos2 + + IF (row1 .LT. row2) THEN + relation = -1 + ELSEIF (row1 .GT. row2) THEN + relation = 1 + ELSE ! rows are equal, check column + IF (col1 .LT. col2) THEN + relation = -1 + ELSEIF (col1 .GT. col2) THEN + relation = 1 + ELSE + relation = 0 + END IF + END IF + END FUNCTION pos_relation - INTEGER, INTENT(IN) :: row1, col1, row2, col2 - INTEGER :: relation - !! Relation between positions 1 and 2. 0: same -1: pos1 < pos2 1: pos1 > pos2 - - IF (row1 .LT. row2) THEN - relation = -1 - ELSEIF (row1 .GT. row2) THEN - relation = 1 - ELSE ! rows are equal, check column - IF (col1 .LT. col2) THEN - relation = -1 - ELSEIF (col1 .GT. col2) THEN - relation = 1 - ELSE - relation = 0 - END IF - END IF - END FUNCTION pos_relation + SUBROUTINE dbcsr_copy_submatrix(matrix_b, matrix_a, name, & + block_row_bounds, block_column_bounds, & + shallow_data) + !! Copy a submatrix. + + TYPE(dbcsr_type), INTENT(INOUT) :: matrix_b + !! target DBCSR matrix + TYPE(dbcsr_type), INTENT(IN) :: matrix_a + !! source DBCSR matrix + CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: name + !! name of the new matrix + INTEGER, DIMENSION(2), INTENT(IN), OPTIONAL :: block_row_bounds, block_column_bounds + !! rows to extract (array of size 2 holding the lower and upper inclusive bounds) + !! columns to extract (array of size 2 holding the lower and upper inclusive bounds) + LOGICAL, INTENT(IN), OPTIONAL :: shallow_data + !! shallow data copy + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_copy_submatrix' - SUBROUTINE dbcsr_copy_submatrix(matrix_b, matrix_a, name, & - block_row_bounds, block_column_bounds, & - shallow_data) - !! Copy a submatrix. - - TYPE(dbcsr_type), INTENT(INOUT) :: matrix_b - !! target DBCSR matrix - TYPE(dbcsr_type), INTENT(IN) :: matrix_a - !! source DBCSR matrix - CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: name - !! name of the new matrix - INTEGER, DIMENSION(2), INTENT(IN), OPTIONAL :: block_row_bounds, block_column_bounds - !! rows to extract (array of size 2 holding the lower and upper inclusive bounds) - !! columns to extract (array of size 2 holding the lower and upper inclusive bounds) - LOGICAL, INTENT(IN), OPTIONAL :: shallow_data - !! shallow data copy - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_copy_submatrix' - - INTEGER :: blk_p, col, handle, nblocks, new_blk, & - old_blk, row - INTEGER, ALLOCATABLE, DIMENSION(:) :: blkp_list, col_list, row_list - LOGICAL :: shallow, tr - TYPE(dbcsr_data_obj) :: data_block - TYPE(dbcsr_iterator) :: iter - -! --------------------------------------------------------------------------- - - CALL timeset(routineN, handle) - IF (PRESENT(shallow_data)) THEN - shallow = shallow_data - ELSE - shallow = .FALSE. - END IF - ! Verify assumptions. - IF (PRESENT(block_row_bounds)) THEN - IF (SIZE(block_row_bounds) /= 2) & - DBCSR_ABORT("Size of bounds specifier must be 2") - END IF - IF (PRESENT(block_column_bounds)) THEN - IF (SIZE(block_column_bounds) /= 2) & - DBCSR_ABORT("Size of bounds specifier must be 2") - END IF - ! Setup target matrix - CALL dbcsr_create(matrix_b, name=name, template=matrix_a) - CALL dbcsr_finalize(matrix_b) - IF (.NOT. shallow) THEN - ! Non-shallow copy uses the standard iterator on the source and - ! block put on the target. -! -!$OMP PARALLEL DEFAULT (NONE) & -!$OMP PRIVATE (data_block, iter, row, col, tr) & -!$OMP SHARED (matrix_a, matrix_b,& -!$OMP block_row_bounds, block_column_bounds) - CALL dbcsr_work_create(matrix_b, work_mutable=.FALSE.) - CALL dbcsr_data_init(data_block) - CALL dbcsr_data_new(data_block, dbcsr_get_data_type(matrix_a)) - CALL dbcsr_iterator_start(iter, matrix_a, dynamic=.TRUE., & - dynamic_byrows=.TRUE.) - DO WHILE (dbcsr_iterator_blocks_left(iter)) - CALL dbcsr_iterator_next_block(iter, row, col, data_block, tr) - ! Only keep the block if they are within the specified bounds. - IF (PRESENT(block_row_bounds)) THEN - IF (row .LT. block_row_bounds(1)) CYCLE - IF (row .GT. block_row_bounds(2)) CYCLE - END IF - IF (PRESENT(block_column_bounds)) THEN - IF (col .LT. block_column_bounds(1)) CYCLE - IF (col .GT. block_column_bounds(2)) CYCLE - END IF - CALL dbcsr_put_block(matrix_b, row, col, data_block, transposed=tr) - END DO - CALL dbcsr_iterator_stop(iter) - CALL dbcsr_data_clear_pointer(data_block) - CALL dbcsr_data_release(data_block) - CALL dbcsr_finalize(matrix_b) -!$OMP END PARALLEL - ELSE - ! For the shallow copy the source matrix data is referenced. - CALL dbcsr_switch_data_area(matrix_b, matrix_a%data_area) - nblocks = dbcsr_get_num_blocks(matrix_a) ! High estimate. - ! Shallow copy goes through source's data blocks and inserts - ! the only the ones corresponding to the submatrix specifier - ! into the target. Block pointers must remain the same as in - ! the source. - ALLOCATE (row_list(nblocks), col_list(nblocks), blkp_list(nblocks)) - ! - CALL dbcsr_iterator_start(iter, matrix_a) - new_blk = 1 - DO WHILE (dbcsr_iterator_blocks_left(iter)) - CALL dbcsr_iterator_next_block(iter, row, col, & - blk=old_blk, blk_p=blk_p) - ! Only keep the block if they are within the specified bounds. - IF (PRESENT(block_row_bounds)) THEN - IF (row .LT. block_row_bounds(1)) CYCLE - IF (row .GT. block_row_bounds(2)) CYCLE - END IF - IF (PRESENT(block_column_bounds)) THEN - IF (col .LT. block_column_bounds(1)) CYCLE - IF (col .GT. block_column_bounds(2)) CYCLE - END IF - row_list(new_blk) = row - col_list(new_blk) = col - blkp_list(new_blk) = blk_p - new_blk = new_blk + 1 - END DO - new_blk = new_blk - 1 - CALL dbcsr_iterator_stop(iter) - CALL dbcsr_reserve_blocks(matrix_b, row_list(1:new_blk), & - col_list(1:new_blk), blkp_list(1:new_blk)) - END IF - ! - CALL timestop(handle) - END SUBROUTINE dbcsr_copy_submatrix - - SUBROUTINE dbcsr_crop_matrix(matrix_b, matrix_a, & - full_row_bounds, full_column_bounds, & - shallow_data) - !! Crop and copies a matrix. - - TYPE(dbcsr_type), INTENT(INOUT) :: matrix_b - !! target DBCSR matrix - TYPE(dbcsr_type), INTENT(IN) :: matrix_a - !! source DBCSR matrix - INTEGER, DIMENSION(2), INTENT(IN), OPTIONAL :: full_row_bounds, full_column_bounds - !! rows to extract (array of size 2 holding the lower and upper inclusive bounds) - !! columns to extract (array of size 2 holding the lower and upper inclusive bounds) - LOGICAL, INTENT(IN), OPTIONAL :: shallow_data - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_crop_matrix' - - INTEGER :: col, f_col_f, f_row_f, handle, l_col_l, & - l_row_l, row - INTEGER, DIMENSION(2) :: block_col_bounds, block_row_bounds - LOGICAL :: part_col, part_f_col, part_f_row, & - part_l_col, part_l_row, part_row, & - shallow, tr - TYPE(dbcsr_data_obj) :: data_block - TYPE(dbcsr_iterator) :: iter - -! --------------------------------------------------------------------------- - - CALL timeset(routineN, handle) - part_l_col = .FALSE. - part_f_col = .FALSE. - part_l_row = .FALSE. - part_f_row = .FALSE. - IF (PRESENT(shallow_data)) THEN - shallow = shallow_data - ELSE - shallow = .FALSE. - END IF - block_row_bounds = 0 - block_col_bounds = 0 - part_col = .FALSE. - part_row = .FALSE. - ! - ! If row bounds are present, they must be converted to block - ! addressing. - IF (PRESENT(full_row_bounds)) THEN - IF (SIZE(full_row_bounds) /= 2) & - DBCSR_ABORT("Size of bounds specifier must be 2") - IF (full_row_bounds(1) < 0) & - DBCSR_ABORT("Invalid first row bound.") - IF (full_row_bounds(2) > dbcsr_nfullrows_total(matrix_a)) & - DBCSR_ABORT("Invalid last row bound.") - IF (full_row_bounds(1) .EQ. 0) THEN - block_row_bounds(1) = 1 - ELSE - CALL find_block_of_element(full_row_bounds(1), block_row_bounds(1), & - dbcsr_nblkrows_total(matrix_a), & - dbcsr_row_block_offsets(matrix_a), & - hint=0) - part_f_row = array_get(dbcsr_row_block_offsets(matrix_a), block_row_bounds(1)) & - .NE. full_row_bounds(1) - END IF - f_row_f = -7 - IF (part_f_row) THEN - ! Block offset of last cleared row - f_row_f = full_row_bounds(1) - & - array_get(dbcsr_row_block_offsets(matrix_a), block_row_bounds(1)) - END IF - IF (full_row_bounds(2) .EQ. 0) THEN - block_row_bounds(2) = dbcsr_nblkrows_total(matrix_a) - ELSE - CALL find_block_of_element(full_row_bounds(2), block_row_bounds(2), & - dbcsr_nblkrows_total(matrix_a), & - dbcsr_row_block_offsets(matrix_a), & - hint=0) - part_l_row = array_get(dbcsr_row_block_offsets(matrix_a), block_row_bounds(2) + 1) - 1 & - .NE. full_row_bounds(2) - END IF - ! Block offset of first cleared row - l_row_l = -7 - IF (part_l_row) THEN - l_row_l = 2 + full_row_bounds(2) - & - array_get(dbcsr_row_block_offsets(matrix_a), block_row_bounds(2)) - END IF - part_row = part_f_row .OR. part_l_row - END IF - ! - ! If column bounds are present, they must be converted to block - ! addressing. - IF (PRESENT(full_column_bounds)) THEN - IF (SIZE(full_column_bounds) /= 2) & - DBCSR_ABORT("Size of bounds specifier must be 2") - IF (full_column_bounds(1) < 0) & - DBCSR_ABORT("Invalid first column bound.") - IF (full_column_bounds(2) > dbcsr_nfullcols_total(matrix_a)) & - DBCSR_ABORT("Invalid last column bound.") - IF (full_column_bounds(1) .EQ. 0) THEN - block_col_bounds(1) = 1 - ELSE - CALL find_block_of_element(full_column_bounds(1), block_col_bounds(1), & - dbcsr_nblkcols_total(matrix_a), & - dbcsr_col_block_offsets(matrix_a), & - hint=0) - part_f_col = array_get(dbcsr_col_block_offsets(matrix_a), block_col_bounds(1)) & - .NE. full_column_bounds(1) - END IF - f_col_f = -7 - IF (part_f_col) THEN - ! Block offset of last cleared column - f_col_f = full_column_bounds(1) - & - array_get(dbcsr_col_block_offsets(matrix_a), block_col_bounds(1)) - END IF - IF (full_column_bounds(2) .EQ. 0) THEN - block_col_bounds(2) = dbcsr_nblkcols_total(matrix_a) - ELSE - CALL find_block_of_element(full_column_bounds(2), block_col_bounds(2), & - dbcsr_nblkcols_total(matrix_a), & - dbcsr_col_block_offsets(matrix_a), & - hint=0) - part_l_col = array_get(dbcsr_col_block_offsets(matrix_a), block_col_bounds(2) + 1) - 1 & - .NE. full_column_bounds(2) - END IF - l_col_l = -7 - IF (part_l_col) THEN - ! Block offset of first cleared column - l_col_l = 2 + full_column_bounds(2) - & - array_get(dbcsr_col_block_offsets(matrix_a), block_col_bounds(2)) - END IF - part_col = part_f_col .OR. part_l_col - END IF - ! - ! First copy the blocks then perform the intra-block zeroing. - CALL dbcsr_copy_submatrix(matrix_b, matrix_a, & - block_row_bounds=block_row_bounds, & - block_column_bounds=block_col_bounds, & - shallow_data=shallow) - IF (part_row .OR. part_col) THEN -!$OMP PARALLEL DEFAULT (NONE) & -!$OMP PRIVATE (data_block, iter, row, col, tr) & -!$OMP SHARED (matrix_b,& -!$OMP part_row, part_f_row, part_l_row, f_row_f, l_row_l, & -!$OMP part_col, part_f_col, part_l_col, f_col_f, l_col_l,& -!$OMP block_row_bounds, block_col_bounds) - CALL dbcsr_data_init(data_block) - CALL dbcsr_data_new(data_block, dbcsr_type_1d_to_2d(dbcsr_get_data_type(matrix_b))) - CALL dbcsr_iterator_start(iter, matrix_b, & - dynamic=.TRUE., dynamic_byrows=.TRUE.) - DO WHILE (dbcsr_iterator_blocks_left(iter)) - CALL dbcsr_iterator_next_block(iter, row, col, data_block, tr) - IF (part_row) THEN - IF (row .LT. block_row_bounds(1)) CYCLE - IF (row .GT. block_row_bounds(2)) CYCLE - END IF - IF (part_col) THEN - IF (col .LT. block_col_bounds(1)) CYCLE - IF (col .GT. block_col_bounds(2)) CYCLE - END IF - IF (part_row) THEN - IF (part_f_row .AND. row .EQ. block_row_bounds(1)) THEN - CALL dbcsr_data_clear(data_block, ub=f_row_f, tr=tr) - END IF - IF (part_l_row .AND. row .EQ. block_row_bounds(2)) THEN - CALL dbcsr_data_clear(data_block, lb=l_row_l, tr=tr) - END IF - END IF - IF (part_col) THEN - IF (part_f_col .AND. col .EQ. block_col_bounds(1)) THEN - CALL dbcsr_data_clear(data_block, ub2=f_col_f, tr=tr) - END IF - IF (part_l_col .AND. col .EQ. block_col_bounds(2)) THEN - CALL dbcsr_data_clear(data_block, lb2=l_col_l, tr=tr) - END IF - END IF - END DO - CALL dbcsr_iterator_stop(iter) - CALL dbcsr_data_clear_pointer(data_block) - CALL dbcsr_data_release(data_block) - CALL dbcsr_finalize(matrix_b) -!$OMP END PARALLEL - END IF - ! - CALL timestop(handle) - END SUBROUTINE dbcsr_crop_matrix - - SUBROUTINE dbcsr_triu(matrix_a) - !! triu of a dbcsr matrix - - TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a - !! the matrix - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_triu' - INTEGER :: blk, blk_nze, col, col_size, handle, i, & - j, row, row_size - LOGICAL :: tr - REAL(dp), DIMENSION(:, :), POINTER :: DATA - TYPE(dbcsr_iterator) :: iter + INTEGER :: blk_p, col, handle, nblocks, new_blk, & + old_blk, row + INTEGER, ALLOCATABLE, DIMENSION(:) :: blkp_list, col_list, row_list + LOGICAL :: shallow, tr + TYPE(dbcsr_data_obj) :: data_block + TYPE(dbcsr_iterator) :: iter + +! --------------------------------------------------------------------------- + + CALL timeset(routineN, handle) + IF (PRESENT(shallow_data)) THEN + shallow = shallow_data + ELSE + shallow = .FALSE. + END IF + ! Verify assumptions. + IF (PRESENT(block_row_bounds)) THEN + IF (SIZE(block_row_bounds) /= 2) & + DBCSR_ABORT("Size of bounds specifier must be 2") + END IF + IF (PRESENT(block_column_bounds)) THEN + IF (SIZE(block_column_bounds) /= 2) & + DBCSR_ABORT("Size of bounds specifier must be 2") + END IF + ! Setup target matrix + CALL dbcsr_create(matrix_b, name=name, template=matrix_a) + CALL dbcsr_finalize(matrix_b) + IF (.NOT. shallow) THEN + ! Non-shallow copy uses the standard iterator on the source and + ! block put on the target. +! +!$OMP PARALLEL DEFAULT (NONE) & +!$OMP PRIVATE (data_block, iter, row, col, tr) & +!$OMP SHARED (matrix_a, matrix_b,& +!$OMP block_row_bounds, block_column_bounds) + CALL dbcsr_work_create(matrix_b, work_mutable=.FALSE.) + CALL dbcsr_data_init(data_block) + CALL dbcsr_data_new(data_block, dbcsr_get_data_type(matrix_a)) + CALL dbcsr_iterator_start(iter, matrix_a, dynamic=.TRUE., & + dynamic_byrows=.TRUE.) + DO WHILE (dbcsr_iterator_blocks_left(iter)) + CALL dbcsr_iterator_next_block(iter, row, col, data_block, tr) + ! Only keep the block if they are within the specified bounds. + IF (PRESENT(block_row_bounds)) THEN + IF (row .LT. block_row_bounds(1)) CYCLE + IF (row .GT. block_row_bounds(2)) CYCLE + END IF + IF (PRESENT(block_column_bounds)) THEN + IF (col .LT. block_column_bounds(1)) CYCLE + IF (col .GT. block_column_bounds(2)) CYCLE + END IF + CALL dbcsr_put_block(matrix_b, row, col, data_block, transposed=tr) + END DO + CALL dbcsr_iterator_stop(iter) + CALL dbcsr_data_clear_pointer(data_block) + CALL dbcsr_data_release(data_block) + CALL dbcsr_finalize(matrix_b) +!$OMP END PARALLEL + ELSE + ! For the shallow copy the source matrix data is referenced. + CALL dbcsr_switch_data_area(matrix_b, matrix_a%data_area) + nblocks = dbcsr_get_num_blocks(matrix_a) ! High estimate. + ! Shallow copy goes through source's data blocks and inserts + ! the only the ones corresponding to the submatrix specifier + ! into the target. Block pointers must remain the same as in + ! the source. + ALLOCATE (row_list(nblocks), col_list(nblocks), blkp_list(nblocks)) + ! + CALL dbcsr_iterator_start(iter, matrix_a) + new_blk = 1 + DO WHILE (dbcsr_iterator_blocks_left(iter)) + CALL dbcsr_iterator_next_block(iter, row, col, & + blk=old_blk, blk_p=blk_p) + ! Only keep the block if they are within the specified bounds. + IF (PRESENT(block_row_bounds)) THEN + IF (row .LT. block_row_bounds(1)) CYCLE + IF (row .GT. block_row_bounds(2)) CYCLE + END IF + IF (PRESENT(block_column_bounds)) THEN + IF (col .LT. block_column_bounds(1)) CYCLE + IF (col .GT. block_column_bounds(2)) CYCLE + END IF + row_list(new_blk) = row + col_list(new_blk) = col + blkp_list(new_blk) = blk_p + new_blk = new_blk + 1 + END DO + new_blk = new_blk - 1 + CALL dbcsr_iterator_stop(iter) + CALL dbcsr_reserve_blocks(matrix_b, row_list(1:new_blk), & + col_list(1:new_blk), blkp_list(1:new_blk)) + END IF + ! + CALL timestop(handle) + END SUBROUTINE dbcsr_copy_submatrix + + SUBROUTINE dbcsr_crop_matrix(matrix_b, matrix_a, & + full_row_bounds, full_column_bounds, & + shallow_data) + !! Crop and copies a matrix. + + TYPE(dbcsr_type), INTENT(INOUT) :: matrix_b + !! target DBCSR matrix + TYPE(dbcsr_type), INTENT(IN) :: matrix_a + !! source DBCSR matrix + INTEGER, DIMENSION(2), INTENT(IN), OPTIONAL :: full_row_bounds, full_column_bounds + !! rows to extract (array of size 2 holding the lower and upper inclusive bounds) + !! columns to extract (array of size 2 holding the lower and upper inclusive bounds) + LOGICAL, INTENT(IN), OPTIONAL :: shallow_data + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_crop_matrix' + + INTEGER :: col, f_col_f, f_row_f, handle, l_col_l, & + l_row_l, row + INTEGER, DIMENSION(2) :: block_col_bounds, block_row_bounds + LOGICAL :: part_col, part_f_col, part_f_row, & + part_l_col, part_l_row, part_row, & + shallow, tr + TYPE(dbcsr_data_obj) :: data_block + TYPE(dbcsr_iterator) :: iter + +! --------------------------------------------------------------------------- + + CALL timeset(routineN, handle) + part_l_col = .FALSE. + part_f_col = .FALSE. + part_l_row = .FALSE. + part_f_row = .FALSE. + IF (PRESENT(shallow_data)) THEN + shallow = shallow_data + ELSE + shallow = .FALSE. + END IF + block_row_bounds = 0 + block_col_bounds = 0 + part_col = .FALSE. + part_row = .FALSE. + ! + ! If row bounds are present, they must be converted to block + ! addressing. + IF (PRESENT(full_row_bounds)) THEN + IF (SIZE(full_row_bounds) /= 2) & + DBCSR_ABORT("Size of bounds specifier must be 2") + IF (full_row_bounds(1) < 0) & + DBCSR_ABORT("Invalid first row bound.") + IF (full_row_bounds(2) > dbcsr_nfullrows_total(matrix_a)) & + DBCSR_ABORT("Invalid last row bound.") + IF (full_row_bounds(1) .EQ. 0) THEN + block_row_bounds(1) = 1 + ELSE + CALL find_block_of_element(full_row_bounds(1), block_row_bounds(1), & + dbcsr_nblkrows_total(matrix_a), & + dbcsr_row_block_offsets(matrix_a), & + hint=0) + part_f_row = array_get(dbcsr_row_block_offsets(matrix_a), block_row_bounds(1)) & + .NE. full_row_bounds(1) + END IF + f_row_f = -7 + IF (part_f_row) THEN + ! Block offset of last cleared row + f_row_f = full_row_bounds(1) - & + array_get(dbcsr_row_block_offsets(matrix_a), block_row_bounds(1)) + END IF + IF (full_row_bounds(2) .EQ. 0) THEN + block_row_bounds(2) = dbcsr_nblkrows_total(matrix_a) + ELSE + CALL find_block_of_element(full_row_bounds(2), block_row_bounds(2), & + dbcsr_nblkrows_total(matrix_a), & + dbcsr_row_block_offsets(matrix_a), & + hint=0) + part_l_row = array_get(dbcsr_row_block_offsets(matrix_a), block_row_bounds(2) + 1) - 1 & + .NE. full_row_bounds(2) + END IF + ! Block offset of first cleared row + l_row_l = -7 + IF (part_l_row) THEN + l_row_l = 2 + full_row_bounds(2) - & + array_get(dbcsr_row_block_offsets(matrix_a), block_row_bounds(2)) + END IF + part_row = part_f_row .OR. part_l_row + END IF + ! + ! If column bounds are present, they must be converted to block + ! addressing. + IF (PRESENT(full_column_bounds)) THEN + IF (SIZE(full_column_bounds) /= 2) & + DBCSR_ABORT("Size of bounds specifier must be 2") + IF (full_column_bounds(1) < 0) & + DBCSR_ABORT("Invalid first column bound.") + IF (full_column_bounds(2) > dbcsr_nfullcols_total(matrix_a)) & + DBCSR_ABORT("Invalid last column bound.") + IF (full_column_bounds(1) .EQ. 0) THEN + block_col_bounds(1) = 1 + ELSE + CALL find_block_of_element(full_column_bounds(1), block_col_bounds(1), & + dbcsr_nblkcols_total(matrix_a), & + dbcsr_col_block_offsets(matrix_a), & + hint=0) + part_f_col = array_get(dbcsr_col_block_offsets(matrix_a), block_col_bounds(1)) & + .NE. full_column_bounds(1) + END IF + f_col_f = -7 + IF (part_f_col) THEN + ! Block offset of last cleared column + f_col_f = full_column_bounds(1) - & + array_get(dbcsr_col_block_offsets(matrix_a), block_col_bounds(1)) + END IF + IF (full_column_bounds(2) .EQ. 0) THEN + block_col_bounds(2) = dbcsr_nblkcols_total(matrix_a) + ELSE + CALL find_block_of_element(full_column_bounds(2), block_col_bounds(2), & + dbcsr_nblkcols_total(matrix_a), & + dbcsr_col_block_offsets(matrix_a), & + hint=0) + part_l_col = array_get(dbcsr_col_block_offsets(matrix_a), block_col_bounds(2) + 1) - 1 & + .NE. full_column_bounds(2) + END IF + l_col_l = -7 + IF (part_l_col) THEN + ! Block offset of first cleared column + l_col_l = 2 + full_column_bounds(2) - & + array_get(dbcsr_col_block_offsets(matrix_a), block_col_bounds(2)) + END IF + part_col = part_f_col .OR. part_l_col + END IF + ! + ! First copy the blocks then perform the intra-block zeroing. + CALL dbcsr_copy_submatrix(matrix_b, matrix_a, & + block_row_bounds=block_row_bounds, & + block_column_bounds=block_col_bounds, & + shallow_data=shallow) + IF (part_row .OR. part_col) THEN +!$OMP PARALLEL DEFAULT (NONE) & +!$OMP PRIVATE (data_block, iter, row, col, tr) & +!$OMP SHARED (matrix_b,& +!$OMP part_row, part_f_row, part_l_row, f_row_f, l_row_l, & +!$OMP part_col, part_f_col, part_l_col, f_col_f, l_col_l,& +!$OMP block_row_bounds, block_col_bounds) + CALL dbcsr_data_init(data_block) + CALL dbcsr_data_new(data_block, dbcsr_type_1d_to_2d(dbcsr_get_data_type(matrix_b))) + CALL dbcsr_iterator_start(iter, matrix_b, & + dynamic=.TRUE., dynamic_byrows=.TRUE.) + DO WHILE (dbcsr_iterator_blocks_left(iter)) + CALL dbcsr_iterator_next_block(iter, row, col, data_block, tr) + IF (part_row) THEN + IF (row .LT. block_row_bounds(1)) CYCLE + IF (row .GT. block_row_bounds(2)) CYCLE + END IF + IF (part_col) THEN + IF (col .LT. block_col_bounds(1)) CYCLE + IF (col .GT. block_col_bounds(2)) CYCLE + END IF + IF (part_row) THEN + IF (part_f_row .AND. row .EQ. block_row_bounds(1)) THEN + CALL dbcsr_data_clear(data_block, ub=f_row_f, tr=tr) + END IF + IF (part_l_row .AND. row .EQ. block_row_bounds(2)) THEN + CALL dbcsr_data_clear(data_block, lb=l_row_l, tr=tr) + END IF + END IF + IF (part_col) THEN + IF (part_f_col .AND. col .EQ. block_col_bounds(1)) THEN + CALL dbcsr_data_clear(data_block, ub2=f_col_f, tr=tr) + END IF + IF (part_l_col .AND. col .EQ. block_col_bounds(2)) THEN + CALL dbcsr_data_clear(data_block, lb2=l_col_l, tr=tr) + END IF + END IF + END DO + CALL dbcsr_iterator_stop(iter) + CALL dbcsr_data_clear_pointer(data_block) + CALL dbcsr_data_release(data_block) + CALL dbcsr_finalize(matrix_b) +!$OMP END PARALLEL + END IF + ! + CALL timestop(handle) + END SUBROUTINE dbcsr_crop_matrix + + SUBROUTINE dbcsr_triu(matrix_a) + !! triu of a dbcsr matrix + + TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a + !! the matrix + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_triu' + INTEGER :: blk, blk_nze, col, col_size, handle, i, & + j, row, row_size + LOGICAL :: tr + REAL(dp), DIMENSION(:, :), POINTER :: DATA + TYPE(dbcsr_iterator) :: iter + +! --------------------------------------------------------------------------- + + CALL timeset(routineN, handle) + CALL dbcsr_iterator_start(iter, matrix_a) + + DO WHILE (dbcsr_iterator_blocks_left(iter)) + CALL dbcsr_iterator_next_block(iter, row, col, DATA, tr, & + block_number=blk, row_size=row_size, col_size=col_size) + blk_nze = row_size*col_size + IF (row .GT. col) CALL dbcsr_remove_block(matrix_a, row, col, blk_nze, blk) + IF (row .EQ. col) THEN + DO j = 1, col_size + DO i = j + 1, row_size + DATA(i, j) = 0.0_dp + END DO + END DO + END IF + END DO -! --------------------------------------------------------------------------- + CALL dbcsr_iterator_stop(iter) - CALL timeset(routineN, handle) - CALL dbcsr_iterator_start(iter, matrix_a) - - DO WHILE (dbcsr_iterator_blocks_left(iter)) - CALL dbcsr_iterator_next_block(iter, row, col, DATA, tr, & - block_number=blk, row_size=row_size, col_size=col_size) - blk_nze = row_size*col_size - IF (row .GT. col) CALL dbcsr_remove_block(matrix_a, row, col, blk_nze, blk) - IF (row .EQ. col) THEN - DO j = 1, col_size - DO i = j + 1, row_size - DATA(i, j) = 0.0_dp - END DO - END DO - END IF - END DO + CALL dbcsr_finalize(matrix_a) + CALL timestop(handle) + END SUBROUTINE dbcsr_triu + + SUBROUTINE dbcsr_filter_anytype(matrix, eps, method, & + use_absolute, filter_diag) + !! filter a dbcsr matrix + + TYPE(dbcsr_type), INTENT(INOUT) :: matrix + !! the matrix + TYPE(dbcsr_scalar_type), INTENT(IN) :: eps + !! the threshold + INTEGER, INTENT(IN), OPTIONAL :: method + !! how the matrix is filtered + LOGICAL, INTENT(in), OPTIONAL :: use_absolute, filter_diag + !! NYI - CALL dbcsr_iterator_stop(iter) + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_filter_anytype' - CALL dbcsr_finalize(matrix_a) - CALL timestop(handle) - END SUBROUTINE dbcsr_triu - - SUBROUTINE dbcsr_filter_anytype(matrix, eps, method, & - use_absolute, filter_diag) - !! filter a dbcsr matrix - - TYPE(dbcsr_type), INTENT(INOUT) :: matrix - !! the matrix - TYPE(dbcsr_scalar_type), INTENT(IN) :: eps - !! the threshold - INTEGER, INTENT(IN), OPTIONAL :: method - !! how the matrix is filtered - LOGICAL, INTENT(in), OPTIONAL :: use_absolute, filter_diag - !! NYI - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_filter_anytype' - - COMPLEX(KIND=real_4), DIMENSION(:), POINTER :: data_c - COMPLEX(KIND=real_8), DIMENSION(:), POINTER :: data_z - INTEGER :: blk, blk_nze, col, col_size, handle, & - my_method, row, row_size, data_type - LOGICAL :: gt0, my_filter_diag, tr - REAL(KIND=real_4) :: nrm_s - REAL(KIND=real_4), DIMENSION(:), POINTER :: data_s - REAL(KIND=real_8) :: my_absolute, nrm_d - REAL(KIND=real_8), DIMENSION(:), POINTER :: data_d - TYPE(dbcsr_iterator) :: iter - - REAL(KIND=real_8), EXTERNAL :: DZNRM2 -#if defined (__ACCELERATE) - REAL(KIND=real_8), EXTERNAL :: SCNRM2 -#else - REAL(KIND=real_4), EXTERNAL :: SCNRM2 -#endif - -! --------------------------------------------------------------------------- - - CALL timeset(routineN, handle) - my_method = dbcsr_filter_frobenius - IF (PRESENT(method)) my_method = method - my_absolute = 1.0_dp - IF (PRESENT(use_absolute)) my_absolute = dbcsr_maxabs(matrix) - my_filter_diag = .TRUE. - IF (PRESENT(filter_diag)) my_filter_diag = filter_diag - - SELECT CASE (eps%data_type) - CASE (dbcsr_type_real_4) - gt0 = eps%r_sp .GT. 0.0_real_4 - CASE (dbcsr_type_real_8) - gt0 = eps%r_dp .GT. 0.0_real_8 - CASE (dbcsr_type_complex_4) - gt0 = ABS(eps%c_sp) .GT. 0.0_real_4 - CASE (dbcsr_type_complex_8) - gt0 = ABS(eps%c_dp) .GT. 0.0_real_8 - CASE default - gt0 = .FALSE. - END SELECT - - IF (gt0) THEN - data_type = dbcsr_get_data_type(matrix) - -!$OMP PARALLEL DEFAULT(NONE) PRIVATE(iter,row,col,data_s,data_d,data_c,data_z,tr, & -!$OMP blk,row_size,col_size,blk_nze,nrm_d,nrm_s) & -!$OMP SHARED(my_method,my_absolute,eps,matrix,data_type) - - CALL dbcsr_iterator_start(iter, matrix, contiguous_pointers=.TRUE.) - DO WHILE (dbcsr_iterator_blocks_left(iter)) - SELECT CASE (data_type) - - CASE (dbcsr_type_real_4) - CALL dbcsr_iterator_next_block(iter, row, col, data_s, tr, blk, & - row_size, col_size) - blk_nze = row_size*col_size - IF (blk_nze .EQ. 0) CYCLE ! Skip empty blocks - SELECT CASE (my_method) - CASE (dbcsr_filter_frobenius) - ! - ! Frobenius based - nrm_s = norm2(data_s) - IF (nrm_s .LT. my_absolute*eps%r_sp) & - CALL dbcsr_remove_block(matrix, row, col, blk_nze, blk) - CASE DEFAULT - DBCSR_ABORT("Only Frobenius based filtering") - END SELECT - - CASE (dbcsr_type_real_8) - CALL dbcsr_iterator_next_block(iter, row, col, data_d, tr, blk, & - row_size, col_size) - blk_nze = row_size*col_size - IF (blk_nze .EQ. 0) CYCLE ! Skip empty blocks - SELECT CASE (my_method) - CASE (dbcsr_filter_frobenius) - ! - ! Frobenius based - nrm_d = norm2(data_d) - IF (nrm_d .LT. my_absolute*eps%r_dp) & - CALL dbcsr_remove_block(matrix, row, col, blk_nze, blk) - CASE DEFAULT - DBCSR_ABORT("Only Frobenius based filtering") - END SELECT - - CASE (dbcsr_type_complex_4) - CALL dbcsr_iterator_next_block(iter, row, col, data_c, tr, blk, & - row_size, col_size) - blk_nze = row_size*col_size - IF (blk_nze .EQ. 0) CYCLE ! Skip empty blocks - SELECT CASE (my_method) - CASE (dbcsr_filter_frobenius) - ! - ! Frobenius based - nrm_d = SCNRM2(SIZE(data_c), data_c(1), 1) - IF (nrm_d .LT. my_absolute*eps%r_dp) & - CALL dbcsr_remove_block(matrix, row, col, blk_nze, blk) - CASE DEFAULT - DBCSR_ABORT("Only Frobenius based filtering") - END SELECT - - CASE (dbcsr_type_complex_8) - CALL dbcsr_iterator_next_block(iter, row, col, data_z, tr, blk, & - row_size, col_size) - blk_nze = row_size*col_size - IF (blk_nze .EQ. 0) CYCLE ! Skip empty blocks - SELECT CASE (my_method) - CASE (dbcsr_filter_frobenius) - ! - ! Frobenius based - nrm_d = DZNRM2(SIZE(data_z), data_z(1), 1) - IF (nrm_d .LT. my_absolute*eps%r_dp) & - CALL dbcsr_remove_block(matrix, row, col, blk_nze, blk) - CASE DEFAULT - DBCSR_ABORT("Only Frobenius based filtering") - END SELECT - - CASE DEFAULT - DBCSR_ABORT("Wrong data type") - END SELECT - END DO - CALL dbcsr_iterator_stop(iter) - CALL dbcsr_finalize(matrix, reshuffle=.TRUE.) -!$OMP END PARALLEL - - CALL dbcsr_index_compact(matrix) - - END IF - CALL timestop(handle) - END SUBROUTINE dbcsr_filter_anytype - - SUBROUTINE dbcsr_norm_scalar(matrix, which_norm, norm_scalar) - !! compute a norm of a dbcsr matrix - - TYPE(dbcsr_type), INTENT(INOUT) :: matrix - !! the matrix - INTEGER, INTENT(IN) :: which_norm - REAL(KIND=real_8), INTENT(OUT) :: norm_scalar - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_norm_scalar' + COMPLEX(KIND=real_4), DIMENSION(:), POINTER :: data_c + COMPLEX(KIND=real_8), DIMENSION(:), POINTER :: data_z + INTEGER :: blk, blk_nze, col, col_size, handle, & + my_method, row, row_size, data_type + LOGICAL :: gt0, my_filter_diag, tr + REAL(KIND=real_4) :: nrm_s + REAL(KIND=real_4), DIMENSION(:), POINTER :: data_s + REAL(KIND=real_8) :: my_absolute, nrm_d + REAL(KIND=real_8), DIMENSION(:), POINTER :: data_d + TYPE(dbcsr_iterator) :: iter + + REAL(KIND=real_8), EXTERNAL :: DZNRM2 +#if defined (__ACCELERATE) + REAL(KIND=real_8), EXTERNAL :: SCNRM2 +#else + REAL(KIND=real_4), EXTERNAL :: SCNRM2 +#endif + +! --------------------------------------------------------------------------- + + CALL timeset(routineN, handle) + my_method = dbcsr_filter_frobenius + IF (PRESENT(method)) my_method = method + my_absolute = 1.0_dp + IF (PRESENT(use_absolute)) my_absolute = dbcsr_maxabs(matrix) + my_filter_diag = .TRUE. + IF (PRESENT(filter_diag)) my_filter_diag = filter_diag + + SELECT CASE (eps%data_type) + CASE (dbcsr_type_real_4) + gt0 = eps%r_sp .GT. 0.0_real_4 + CASE (dbcsr_type_real_8) + gt0 = eps%r_dp .GT. 0.0_real_8 + CASE (dbcsr_type_complex_4) + gt0 = ABS(eps%c_sp) .GT. 0.0_real_4 + CASE (dbcsr_type_complex_8) + gt0 = ABS(eps%c_dp) .GT. 0.0_real_8 + CASE default + gt0 = .FALSE. + END SELECT + + IF (gt0) THEN + data_type = dbcsr_get_data_type(matrix) + +!$OMP PARALLEL DEFAULT(NONE) PRIVATE(iter,row,col,data_s,data_d,data_c,data_z,tr, & +!$OMP blk,row_size,col_size,blk_nze,nrm_d,nrm_s) & +!$OMP SHARED(my_method,my_absolute,eps,matrix,data_type) + + CALL dbcsr_iterator_start(iter, matrix, contiguous_pointers=.TRUE.) + DO WHILE (dbcsr_iterator_blocks_left(iter)) + SELECT CASE (data_type) + + CASE (dbcsr_type_real_4) + CALL dbcsr_iterator_next_block(iter, row, col, data_s, tr, blk, & + row_size, col_size) + blk_nze = row_size*col_size + IF (blk_nze .EQ. 0) CYCLE ! Skip empty blocks + SELECT CASE (my_method) + CASE (dbcsr_filter_frobenius) + ! + ! Frobenius based + nrm_s = norm2(data_s) + IF (nrm_s .LT. my_absolute*eps%r_sp) & + CALL dbcsr_remove_block(matrix, row, col, blk_nze, blk) + CASE DEFAULT + DBCSR_ABORT("Only Frobenius based filtering") + END SELECT + + CASE (dbcsr_type_real_8) + CALL dbcsr_iterator_next_block(iter, row, col, data_d, tr, blk, & + row_size, col_size) + blk_nze = row_size*col_size + IF (blk_nze .EQ. 0) CYCLE ! Skip empty blocks + SELECT CASE (my_method) + CASE (dbcsr_filter_frobenius) + ! + ! Frobenius based + nrm_d = norm2(data_d) + IF (nrm_d .LT. my_absolute*eps%r_dp) & + CALL dbcsr_remove_block(matrix, row, col, blk_nze, blk) + CASE DEFAULT + DBCSR_ABORT("Only Frobenius based filtering") + END SELECT + + CASE (dbcsr_type_complex_4) + CALL dbcsr_iterator_next_block(iter, row, col, data_c, tr, blk, & + row_size, col_size) + blk_nze = row_size*col_size + IF (blk_nze .EQ. 0) CYCLE ! Skip empty blocks + SELECT CASE (my_method) + CASE (dbcsr_filter_frobenius) + ! + ! Frobenius based + nrm_d = SCNRM2(SIZE(data_c), data_c(1), 1) + IF (nrm_d .LT. my_absolute*eps%r_dp) & + CALL dbcsr_remove_block(matrix, row, col, blk_nze, blk) + CASE DEFAULT + DBCSR_ABORT("Only Frobenius based filtering") + END SELECT + + CASE (dbcsr_type_complex_8) + CALL dbcsr_iterator_next_block(iter, row, col, data_z, tr, blk, & + row_size, col_size) + blk_nze = row_size*col_size + IF (blk_nze .EQ. 0) CYCLE ! Skip empty blocks + SELECT CASE (my_method) + CASE (dbcsr_filter_frobenius) + ! + ! Frobenius based + nrm_d = DZNRM2(SIZE(data_z), data_z(1), 1) + IF (nrm_d .LT. my_absolute*eps%r_dp) & + CALL dbcsr_remove_block(matrix, row, col, blk_nze, blk) + CASE DEFAULT + DBCSR_ABORT("Only Frobenius based filtering") + END SELECT + + CASE DEFAULT + DBCSR_ABORT("Wrong data type") + END SELECT + END DO + CALL dbcsr_iterator_stop(iter) + CALL dbcsr_finalize(matrix, reshuffle=.TRUE.) +!$OMP END PARALLEL + + CALL dbcsr_index_compact(matrix) + + END IF + CALL timestop(handle) + END SUBROUTINE dbcsr_filter_anytype + + SUBROUTINE dbcsr_norm_scalar(matrix, which_norm, norm_scalar) + !! compute a norm of a dbcsr matrix + + TYPE(dbcsr_type), INTENT(INOUT) :: matrix + !! the matrix + INTEGER, INTENT(IN) :: which_norm + REAL(KIND=real_8), INTENT(OUT) :: norm_scalar + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_norm_scalar' + + INTEGER :: handle + +! --------------------------------------------------------------------------- + + CALL timeset(routineN, handle) + + SELECT CASE (which_norm) + CASE (dbcsr_norm_frobenius) + norm_scalar = dbcsr_frobenius_norm(matrix) + CASE (dbcsr_norm_maxabsnorm) + norm_scalar = dbcsr_maxabs(matrix) + CASE (dbcsr_norm_gershgorin) + norm_scalar = dbcsr_gershgorin_norm(matrix) + CASE DEFAULT + DBCSR_ABORT("this norm is NYI") + END SELECT + CALL timestop(handle) + END SUBROUTINE - INTEGER :: handle - -! --------------------------------------------------------------------------- - - CALL timeset(routineN, handle) + SUBROUTINE dbcsr_norm_r8_vec(matrix, which_norm, norm_vector) + TYPE(dbcsr_type), INTENT(INOUT) :: matrix + INTEGER, INTENT(IN) :: which_norm + REAL(KIND=real_8), DIMENSION(:), INTENT(OUT), & + TARGET, CONTIGUOUS :: norm_vector - SELECT CASE (which_norm) - CASE (dbcsr_norm_frobenius) - norm_scalar = dbcsr_frobenius_norm(matrix) - CASE (dbcsr_norm_maxabsnorm) - norm_scalar = dbcsr_maxabs(matrix) - CASE (dbcsr_norm_gershgorin) - norm_scalar = dbcsr_gershgorin_norm(matrix) - CASE DEFAULT - DBCSR_ABORT("this norm is NYI") - END SELECT - CALL timestop(handle) - END SUBROUTINE + REAL(KIND=real_8), DIMENSION(:), POINTER, CONTIGUOUS :: v_p + TYPE(dbcsr_data_obj) :: norm_vector_a + + CALL dbcsr_data_init(norm_vector_a) + CALL dbcsr_data_new(norm_vector_a, dbcsr_type_real_8) + v_p => norm_vector + CALL dbcsr_data_set_pointer(norm_vector_a, v_p) + CALL dbcsr_norm_vec(matrix, which_norm, norm_vector_a) + CALL dbcsr_data_clear_pointer(norm_vector_a) + CALL dbcsr_data_release(norm_vector_a) + + END SUBROUTINE dbcsr_norm_r8_vec - SUBROUTINE dbcsr_norm_r8_vec(matrix, which_norm, norm_vector) - TYPE(dbcsr_type), INTENT(INOUT) :: matrix - INTEGER, INTENT(IN) :: which_norm - REAL(KIND=real_8), DIMENSION(:), INTENT(OUT), & - TARGET, CONTIGUOUS :: norm_vector - - REAL(KIND=real_8), DIMENSION(:), POINTER, CONTIGUOUS :: v_p - TYPE(dbcsr_data_obj) :: norm_vector_a - - CALL dbcsr_data_init(norm_vector_a) - CALL dbcsr_data_new(norm_vector_a, dbcsr_type_real_8) - v_p => norm_vector - CALL dbcsr_data_set_pointer(norm_vector_a, v_p) - CALL dbcsr_norm_vec(matrix, which_norm, norm_vector_a) - CALL dbcsr_data_clear_pointer(norm_vector_a) - CALL dbcsr_data_release(norm_vector_a) - - END SUBROUTINE dbcsr_norm_r8_vec - - SUBROUTINE dbcsr_norm_vec(matrix, which_norm, norm_vector) - !! compute the column norms of the dbcsr matrix - - TYPE(dbcsr_type), INTENT(INOUT) :: matrix - !! the matrix - INTEGER, INTENT(IN) :: which_norm - TYPE(dbcsr_data_obj), INTENT(INOUT) :: norm_vector - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_norm_vec' - - INTEGER :: blk, col, col_offset, i, j, row, & - row_offset, handle - LOGICAL :: tr - TYPE(dbcsr_data_obj) :: data_a - TYPE(dbcsr_iterator) :: iter - - CALL timeset(routineN, handle) - - SELECT CASE (which_norm) - CASE (dbcsr_norm_column) - IF (dbcsr_data_get_type(norm_vector) /= dbcsr_get_data_type(matrix)) & - DBCSR_ABORT("Mismatched vector/matrix data types") - IF (dbcsr_has_symmetry(matrix)) THEN - IF (dbcsr_data_get_size(norm_vector) < dbcsr_nfullrows_total(matrix)) & - DBCSR_ABORT("Passed vector too small") - END IF - IF (dbcsr_data_get_size(norm_vector) < dbcsr_nfullcols_total(matrix)) & - DBCSR_ABORT("Passed vector too small") - CALL dbcsr_data_init(data_a) - CALL dbcsr_data_new(data_a, dbcsr_type_1d_to_2d(dbcsr_get_data_type(matrix))) - CALL dbcsr_data_clear(norm_vector) - CALL dbcsr_iterator_start(iter, matrix) - DO WHILE (dbcsr_iterator_blocks_left(iter)) - CALL dbcsr_iterator_next_block(iter, row, col, data_a, tr, & - blk, row_offset=row_offset, col_offset=col_offset) - SELECT CASE (dbcsr_get_data_type(matrix)) - CASE (dbcsr_type_real_4) - IF (dbcsr_has_symmetry(matrix) .AND. row .NE. col) THEN - DO j = 1, SIZE(data_a%d%r2_sp, 2) - DO i = 1, SIZE(data_a%d%r2_sp, 1) - norm_vector%d%r_sp(col_offset + j - 1) & - = norm_vector%d%r_sp(col_offset + j - 1) & - + data_a%d%r2_sp(i, j)**2 - norm_vector%d%r_sp(row_offset + i - 1) & - = norm_vector%d%r_sp(row_offset + i - 1) & - + data_a%d%r2_sp(i, j)**2 - END DO - END DO - ELSE - DO j = 1, SIZE(data_a%d%r2_sp, 2) - DO i = 1, SIZE(data_a%d%r2_sp, 1) - norm_vector%d%r_sp(col_offset + j - 1) & - = norm_vector%d%r_sp(col_offset + j - 1) & - + data_a%d%r2_sp(i, j)*data_a%d%r2_sp(i, j) - END DO - END DO - END IF - CASE (dbcsr_type_real_8) - IF (dbcsr_has_symmetry(matrix) .AND. row .NE. col) THEN - DO j = 1, SIZE(data_a%d%r2_dp, 2) - DO i = 1, SIZE(data_a%d%r2_dp, 1) - norm_vector%d%r_dp(col_offset + j - 1) & - = norm_vector%d%r_dp(col_offset + j - 1) & - + data_a%d%r2_dp(i, j)**2 - norm_vector%d%r_dp(row_offset + i - 1) & - = norm_vector%d%r_dp(row_offset + i - 1) & - + data_a%d%r2_dp(i, j)**2 - END DO - END DO - ELSE - DO j = 1, SIZE(data_a%d%r2_dp, 2) - DO i = 1, SIZE(data_a%d%r2_dp, 1) - norm_vector%d%r_dp(col_offset + j - 1) & - = norm_vector%d%r_dp(col_offset + j - 1) & - + data_a%d%r2_dp(i, j)*data_a%d%r2_dp(i, j) - END DO - END DO - END IF - CASE DEFAULT - DBCSR_ABORT("Only real values") - END SELECT - END DO - CALL dbcsr_iterator_stop(iter) - CALL dbcsr_data_clear_pointer(data_a) - CALL dbcsr_data_release(data_a) - SELECT CASE (dbcsr_get_data_type(matrix)) - CASE (dbcsr_type_real_4) - CALL mp_sum(norm_vector%d%r_sp, & - dbcsr_mp_group(dbcsr_distribution_mp(matrix%dist))) - norm_vector%d%r_sp = SQRT(norm_vector%d%r_sp) - CASE (dbcsr_type_real_8) - CALL mp_sum(norm_vector%d%r_dp, & - dbcsr_mp_group(dbcsr_distribution_mp(matrix%dist))) - norm_vector%d%r_dp = SQRT(norm_vector%d%r_dp) - END SELECT - - CASE DEFAULT - DBCSR_ABORT("this norm is NYI") - END SELECT - CALL timestop(handle) - END SUBROUTINE dbcsr_norm_vec + SUBROUTINE dbcsr_norm_vec(matrix, which_norm, norm_vector) + !! compute the column norms of the dbcsr matrix + + TYPE(dbcsr_type), INTENT(INOUT) :: matrix + !! the matrix + INTEGER, INTENT(IN) :: which_norm + TYPE(dbcsr_data_obj), INTENT(INOUT) :: norm_vector + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_norm_vec' + + INTEGER :: blk, col, col_offset, i, j, row, & + row_offset, handle + LOGICAL :: tr + TYPE(dbcsr_data_obj) :: data_a + TYPE(dbcsr_iterator) :: iter + + CALL timeset(routineN, handle) + + SELECT CASE (which_norm) + CASE (dbcsr_norm_column) + IF (dbcsr_data_get_type(norm_vector) /= dbcsr_get_data_type(matrix)) & + DBCSR_ABORT("Mismatched vector/matrix data types") + IF (dbcsr_has_symmetry(matrix)) THEN + IF (dbcsr_data_get_size(norm_vector) < dbcsr_nfullrows_total(matrix)) & + DBCSR_ABORT("Passed vector too small") + END IF + IF (dbcsr_data_get_size(norm_vector) < dbcsr_nfullcols_total(matrix)) & + DBCSR_ABORT("Passed vector too small") + CALL dbcsr_data_init(data_a) + CALL dbcsr_data_new(data_a, dbcsr_type_1d_to_2d(dbcsr_get_data_type(matrix))) + CALL dbcsr_data_clear(norm_vector) + CALL dbcsr_iterator_start(iter, matrix) + DO WHILE (dbcsr_iterator_blocks_left(iter)) + CALL dbcsr_iterator_next_block(iter, row, col, data_a, tr, & + blk, row_offset=row_offset, col_offset=col_offset) + SELECT CASE (dbcsr_get_data_type(matrix)) + CASE (dbcsr_type_real_4) + IF (dbcsr_has_symmetry(matrix) .AND. row .NE. col) THEN + DO j = 1, SIZE(data_a%d%r2_sp, 2) + DO i = 1, SIZE(data_a%d%r2_sp, 1) + norm_vector%d%r_sp(col_offset + j - 1) & + = norm_vector%d%r_sp(col_offset + j - 1) & + + data_a%d%r2_sp(i, j)**2 + norm_vector%d%r_sp(row_offset + i - 1) & + = norm_vector%d%r_sp(row_offset + i - 1) & + + data_a%d%r2_sp(i, j)**2 + END DO + END DO + ELSE + DO j = 1, SIZE(data_a%d%r2_sp, 2) + DO i = 1, SIZE(data_a%d%r2_sp, 1) + norm_vector%d%r_sp(col_offset + j - 1) & + = norm_vector%d%r_sp(col_offset + j - 1) & + + data_a%d%r2_sp(i, j)*data_a%d%r2_sp(i, j) + END DO + END DO + END IF + CASE (dbcsr_type_real_8) + IF (dbcsr_has_symmetry(matrix) .AND. row .NE. col) THEN + DO j = 1, SIZE(data_a%d%r2_dp, 2) + DO i = 1, SIZE(data_a%d%r2_dp, 1) + norm_vector%d%r_dp(col_offset + j - 1) & + = norm_vector%d%r_dp(col_offset + j - 1) & + + data_a%d%r2_dp(i, j)**2 + norm_vector%d%r_dp(row_offset + i - 1) & + = norm_vector%d%r_dp(row_offset + i - 1) & + + data_a%d%r2_dp(i, j)**2 + END DO + END DO + ELSE + DO j = 1, SIZE(data_a%d%r2_dp, 2) + DO i = 1, SIZE(data_a%d%r2_dp, 1) + norm_vector%d%r_dp(col_offset + j - 1) & + = norm_vector%d%r_dp(col_offset + j - 1) & + + data_a%d%r2_dp(i, j)*data_a%d%r2_dp(i, j) + END DO + END DO + END IF + CASE DEFAULT + DBCSR_ABORT("Only real values") + END SELECT + END DO + CALL dbcsr_iterator_stop(iter) + CALL dbcsr_data_clear_pointer(data_a) + CALL dbcsr_data_release(data_a) + SELECT CASE (dbcsr_get_data_type(matrix)) + CASE (dbcsr_type_real_4) + CALL mp_sum(norm_vector%d%r_sp, & + dbcsr_mp_group(dbcsr_distribution_mp(matrix%dist))) + norm_vector%d%r_sp = SQRT(norm_vector%d%r_sp) + CASE (dbcsr_type_real_8) + CALL mp_sum(norm_vector%d%r_dp, & + dbcsr_mp_group(dbcsr_distribution_mp(matrix%dist))) + norm_vector%d%r_dp = SQRT(norm_vector%d%r_dp) + END SELECT + + CASE DEFAULT + DBCSR_ABORT("this norm is NYI") + END SELECT + CALL timestop(handle) + END SUBROUTINE dbcsr_norm_vec + + FUNCTION dbcsr_gershgorin_norm(matrix) RESULT(norm) + !! compute a norm of a dbcsr matrix + + TYPE(dbcsr_type), INTENT(INOUT) :: matrix + !! the matrix + REAL(KIND=real_8) :: norm + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_gershgorin_norm' + + COMPLEX(KIND=real_4), DIMENSION(:, :), POINTER :: data_c + COMPLEX(KIND=real_8), DIMENSION(:, :), POINTER :: data_z + INTEGER :: blk, col, col_offset, handle, i, j, nc, & + nr, row, row_offset + LOGICAL :: any_sym, tr + REAL(KIND=real_4), DIMENSION(:, :), POINTER :: data_r + REAL(KIND=real_8), DIMENSION(:, :), POINTER :: data_d + REAL(real_8), ALLOCATABLE, DIMENSION(:) :: buff_d + TYPE(dbcsr_iterator) :: iter - FUNCTION dbcsr_gershgorin_norm(matrix) RESULT(norm) - !! compute a norm of a dbcsr matrix - - TYPE(dbcsr_type), INTENT(INOUT) :: matrix - !! the matrix - REAL(KIND=real_8) :: norm - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_gershgorin_norm' - - COMPLEX(KIND=real_4), DIMENSION(:, :), POINTER :: data_c - COMPLEX(KIND=real_8), DIMENSION(:, :), POINTER :: data_z - INTEGER :: blk, col, col_offset, handle, i, j, nc, & - nr, row, row_offset - LOGICAL :: any_sym, tr - REAL(KIND=real_4), DIMENSION(:, :), POINTER :: data_r - REAL(KIND=real_8), DIMENSION(:, :), POINTER :: data_d - REAL(real_8), ALLOCATABLE, DIMENSION(:) :: buff_d - TYPE(dbcsr_iterator) :: iter - - CALL timeset(routineN, handle) - - nr = dbcsr_nfullrows_total(matrix) - nc = dbcsr_nfullcols_total(matrix) - - any_sym = dbcsr_get_matrix_type(matrix) .EQ. dbcsr_type_symmetric .OR. & - dbcsr_get_matrix_type(matrix) .EQ. dbcsr_type_antisymmetric - - IF (nr .NE. nc) & - DBCSR_ABORT("not a square matrix") - - norm = 0.0_dp - ALLOCATE (buff_d(nr)) - buff_d = 0.0_dp - CALL dbcsr_iterator_start(iter, matrix) - DO WHILE (dbcsr_iterator_blocks_left(iter)) - SELECT CASE (dbcsr_get_data_type(matrix)) - CASE (dbcsr_type_real_4) - CALL dbcsr_iterator_next_block(iter, row, col, data_r, tr, blk, & - row_offset=row_offset, col_offset=col_offset) - DO j = 1, SIZE(data_r, 2) - DO i = 1, SIZE(data_r, 1) - buff_d(row_offset + i - 1) = buff_d(row_offset + i - 1) + ABS(data_r(i, j)) - IF (any_sym .AND. row .NE. col) & - buff_d(col_offset + j - 1) = buff_d(col_offset + j - 1) + ABS(data_r(i, j)) - END DO - END DO - CASE (dbcsr_type_real_8) - CALL dbcsr_iterator_next_block(iter, row, col, data_d, tr, blk, & - row_offset=row_offset, col_offset=col_offset) - DO j = 1, SIZE(data_d, 2) - DO i = 1, SIZE(data_d, 1) - buff_d(row_offset + i - 1) = buff_d(row_offset + i - 1) + ABS(data_d(i, j)) - IF (any_sym .AND. row .NE. col) & - buff_d(col_offset + j - 1) = buff_d(col_offset + j - 1) + ABS(data_d(i, j)) - END DO - END DO - CASE (dbcsr_type_complex_4) - CALL dbcsr_iterator_next_block(iter, row, col, data_c, tr, blk, & - row_offset=row_offset, col_offset=col_offset) - DO j = 1, SIZE(data_c, 2) - DO i = 1, SIZE(data_c, 1) - buff_d(row_offset + i - 1) = buff_d(row_offset + i - 1) + ABS(data_c(i, j)) - IF (any_sym .AND. row .NE. col) & - DBCSR_ABORT("Only nonsymmetric matrix so far") - ! buff_d(col_offset+j-1) = buff_d(col_offset+j-1) + ABS(data_c(i,j)) - END DO - END DO - CASE (dbcsr_type_complex_8) - CALL dbcsr_iterator_next_block(iter, row, col, data_z, tr, blk, & - row_offset=row_offset, col_offset=col_offset) - DO j = 1, SIZE(data_z, 2) - DO i = 1, SIZE(data_z, 1) - buff_d(row_offset + i - 1) = buff_d(row_offset + i - 1) + ABS(data_z(i, j)) - IF (any_sym .AND. row .NE. col) & - DBCSR_ABORT("Only nonsymmetric matrix so far") - ! buff_d(col_offset+j-1) = buff_d(col_offset+j-1) + ABS(data_z(i,j)) - END DO - END DO - CASE DEFAULT - DBCSR_ABORT("Wrong data type") - END SELECT - END DO - CALL dbcsr_iterator_stop(iter) - CALL mp_sum(buff_d, dbcsr_mp_group(dbcsr_distribution_mp(matrix%dist))) - norm = MAXVAL(buff_d) - DEALLOCATE (buff_d) + CALL timeset(routineN, handle) + + nr = dbcsr_nfullrows_total(matrix) + nc = dbcsr_nfullcols_total(matrix) + + any_sym = dbcsr_get_matrix_type(matrix) .EQ. dbcsr_type_symmetric .OR. & + dbcsr_get_matrix_type(matrix) .EQ. dbcsr_type_antisymmetric + + IF (nr .NE. nc) & + DBCSR_ABORT("not a square matrix") + + norm = 0.0_dp + ALLOCATE (buff_d(nr)) + buff_d = 0.0_dp + CALL dbcsr_iterator_start(iter, matrix) + DO WHILE (dbcsr_iterator_blocks_left(iter)) + SELECT CASE (dbcsr_get_data_type(matrix)) + CASE (dbcsr_type_real_4) + CALL dbcsr_iterator_next_block(iter, row, col, data_r, tr, blk, & + row_offset=row_offset, col_offset=col_offset) + DO j = 1, SIZE(data_r, 2) + DO i = 1, SIZE(data_r, 1) + buff_d(row_offset + i - 1) = buff_d(row_offset + i - 1) + ABS(data_r(i, j)) + IF (any_sym .AND. row .NE. col) & + buff_d(col_offset + j - 1) = buff_d(col_offset + j - 1) + ABS(data_r(i, j)) + END DO + END DO + CASE (dbcsr_type_real_8) + CALL dbcsr_iterator_next_block(iter, row, col, data_d, tr, blk, & + row_offset=row_offset, col_offset=col_offset) + DO j = 1, SIZE(data_d, 2) + DO i = 1, SIZE(data_d, 1) + buff_d(row_offset + i - 1) = buff_d(row_offset + i - 1) + ABS(data_d(i, j)) + IF (any_sym .AND. row .NE. col) & + buff_d(col_offset + j - 1) = buff_d(col_offset + j - 1) + ABS(data_d(i, j)) + END DO + END DO + CASE (dbcsr_type_complex_4) + CALL dbcsr_iterator_next_block(iter, row, col, data_c, tr, blk, & + row_offset=row_offset, col_offset=col_offset) + DO j = 1, SIZE(data_c, 2) + DO i = 1, SIZE(data_c, 1) + buff_d(row_offset + i - 1) = buff_d(row_offset + i - 1) + ABS(data_c(i, j)) + IF (any_sym .AND. row .NE. col) & + DBCSR_ABORT("Only nonsymmetric matrix so far") + ! buff_d(col_offset+j-1) = buff_d(col_offset+j-1) + ABS(data_c(i,j)) + END DO + END DO + CASE (dbcsr_type_complex_8) + CALL dbcsr_iterator_next_block(iter, row, col, data_z, tr, blk, & + row_offset=row_offset, col_offset=col_offset) + DO j = 1, SIZE(data_z, 2) + DO i = 1, SIZE(data_z, 1) + buff_d(row_offset + i - 1) = buff_d(row_offset + i - 1) + ABS(data_z(i, j)) + IF (any_sym .AND. row .NE. col) & + DBCSR_ABORT("Only nonsymmetric matrix so far") + ! buff_d(col_offset+j-1) = buff_d(col_offset+j-1) + ABS(data_z(i,j)) + END DO + END DO + CASE DEFAULT + DBCSR_ABORT("Wrong data type") + END SELECT + END DO + CALL dbcsr_iterator_stop(iter) + CALL mp_sum(buff_d, dbcsr_mp_group(dbcsr_distribution_mp(matrix%dist))) + norm = MAXVAL(buff_d) + DEALLOCATE (buff_d) + + CALL timestop(handle) + + END FUNCTION dbcsr_gershgorin_norm + + FUNCTION dbcsr_maxabs(matrix) RESULT(norm) + !! compute a norm of a dbcsr matrix + + TYPE(dbcsr_type), INTENT(INOUT) :: matrix + !! the matrix + REAL(real_8) :: norm + + COMPLEX(KIND=real_4), DIMENSION(:, :), POINTER :: data_c + COMPLEX(KIND=real_8), DIMENSION(:, :), POINTER :: data_z + INTEGER :: blk, col, row + LOGICAL :: tr + REAL(KIND=real_4), DIMENSION(:, :), POINTER :: data_r + REAL(KIND=real_8), DIMENSION(:, :), POINTER :: data_d + TYPE(dbcsr_iterator) :: iter - CALL timestop(handle) +! --------------------------------------------------------------------------- - END FUNCTION dbcsr_gershgorin_norm - - FUNCTION dbcsr_maxabs(matrix) RESULT(norm) - !! compute a norm of a dbcsr matrix - - TYPE(dbcsr_type), INTENT(INOUT) :: matrix - !! the matrix - REAL(real_8) :: norm - - COMPLEX(KIND=real_4), DIMENSION(:, :), POINTER :: data_c - COMPLEX(KIND=real_8), DIMENSION(:, :), POINTER :: data_z - INTEGER :: blk, col, row - LOGICAL :: tr - REAL(KIND=real_4), DIMENSION(:, :), POINTER :: data_r - REAL(KIND=real_8), DIMENSION(:, :), POINTER :: data_d - TYPE(dbcsr_iterator) :: iter - -! --------------------------------------------------------------------------- - - norm = 0.0_dp - CALL dbcsr_iterator_start(iter, matrix) - DO WHILE (dbcsr_iterator_blocks_left(iter)) - SELECT CASE (dbcsr_get_data_type(matrix)) - CASE (dbcsr_type_real_4) - CALL dbcsr_iterator_next_block(iter, row, col, data_r, tr, blk) - norm = MAX(norm, REAL(MAXVAL(ABS(data_r)), dp)) - CASE (dbcsr_type_real_8) - CALL dbcsr_iterator_next_block(iter, row, col, data_d, tr, blk) - norm = MAX(norm, MAXVAL(ABS(data_d))) - CASE (dbcsr_type_complex_4) - CALL dbcsr_iterator_next_block(iter, row, col, data_c, tr, blk) - norm = MAX(norm, REAL(MAXVAL(ABS(data_c)), dp)) - CASE (dbcsr_type_complex_8) - CALL dbcsr_iterator_next_block(iter, row, col, data_z, tr, blk) - norm = MAX(norm, MAXVAL(ABS(data_z))) - CASE DEFAULT - DBCSR_ABORT("Wrong data type") - END SELECT - END DO - CALL dbcsr_iterator_stop(iter) - - CALL mp_max(norm, dbcsr_mp_group(dbcsr_distribution_mp(matrix%dist))) - - END FUNCTION dbcsr_maxabs + norm = 0.0_dp + CALL dbcsr_iterator_start(iter, matrix) + DO WHILE (dbcsr_iterator_blocks_left(iter)) + SELECT CASE (dbcsr_get_data_type(matrix)) + CASE (dbcsr_type_real_4) + CALL dbcsr_iterator_next_block(iter, row, col, data_r, tr, blk) + norm = MAX(norm, REAL(MAXVAL(ABS(data_r)), dp)) + CASE (dbcsr_type_real_8) + CALL dbcsr_iterator_next_block(iter, row, col, data_d, tr, blk) + norm = MAX(norm, MAXVAL(ABS(data_d))) + CASE (dbcsr_type_complex_4) + CALL dbcsr_iterator_next_block(iter, row, col, data_c, tr, blk) + norm = MAX(norm, REAL(MAXVAL(ABS(data_c)), dp)) + CASE (dbcsr_type_complex_8) + CALL dbcsr_iterator_next_block(iter, row, col, data_z, tr, blk) + norm = MAX(norm, MAXVAL(ABS(data_z))) + CASE DEFAULT + DBCSR_ABORT("Wrong data type") + END SELECT + END DO + CALL dbcsr_iterator_stop(iter) + + CALL mp_max(norm, dbcsr_mp_group(dbcsr_distribution_mp(matrix%dist))) + + END FUNCTION dbcsr_maxabs + + FUNCTION dbcsr_frobenius_norm(matrix, local) RESULT(norm) + !! compute a norm of a dbcsr matrix + + TYPE(dbcsr_type), INTENT(IN) :: matrix + !! the matrix + LOGICAL, INTENT(in), OPTIONAL :: local + REAL(KIND=real_8) :: norm + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_frobenius_norm' + + COMPLEX(KIND=real_4), DIMENSION(:, :), POINTER :: data_c + COMPLEX(KIND=real_8), DIMENSION(:, :), POINTER :: data_z + INTEGER :: blk, col, handle, row + LOGICAL :: any_sym, my_local, tr + REAL(KIND=real_4), DIMENSION(:, :), POINTER :: data_r + REAL(KIND=real_8), DIMENSION(:, :), POINTER :: data_d + REAL(real_8) :: fac + TYPE(dbcsr_iterator) :: iter - FUNCTION dbcsr_frobenius_norm(matrix, local) RESULT(norm) - !! compute a norm of a dbcsr matrix - - TYPE(dbcsr_type), INTENT(IN) :: matrix - !! the matrix - LOGICAL, INTENT(in), OPTIONAL :: local - REAL(KIND=real_8) :: norm - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_frobenius_norm' +! --------------------------------------------------------------------------- + + CALL timeset(routineN, handle) + + my_local = .FALSE. + IF (PRESENT(local)) my_local = local + + any_sym = dbcsr_get_matrix_type(matrix) .EQ. dbcsr_type_symmetric .OR. & + dbcsr_get_matrix_type(matrix) .EQ. dbcsr_type_antisymmetric - COMPLEX(KIND=real_4), DIMENSION(:, :), POINTER :: data_c - COMPLEX(KIND=real_8), DIMENSION(:, :), POINTER :: data_z - INTEGER :: blk, col, handle, row - LOGICAL :: any_sym, my_local, tr - REAL(KIND=real_4), DIMENSION(:, :), POINTER :: data_r - REAL(KIND=real_8), DIMENSION(:, :), POINTER :: data_d - REAL(real_8) :: fac - TYPE(dbcsr_iterator) :: iter - -! --------------------------------------------------------------------------- - - CALL timeset(routineN, handle) - - my_local = .FALSE. - IF (PRESENT(local)) my_local = local - - any_sym = dbcsr_get_matrix_type(matrix) .EQ. dbcsr_type_symmetric .OR. & - dbcsr_get_matrix_type(matrix) .EQ. dbcsr_type_antisymmetric - - norm = 0.0_dp - CALL dbcsr_iterator_start(iter, matrix) - DO WHILE (dbcsr_iterator_blocks_left(iter)) - SELECT CASE (dbcsr_get_data_type(matrix)) - CASE (dbcsr_type_real_4) - CALL dbcsr_iterator_next_block(iter, row, col, data_r, tr, blk) - fac = 1.0_dp - IF (any_sym .AND. row .NE. col) fac = 2.0_dp - norm = norm + fac*SUM(data_r**2) - CASE (dbcsr_type_real_8) - CALL dbcsr_iterator_next_block(iter, row, col, data_d, tr, blk) - fac = 1.0_dp - IF (any_sym .AND. row .NE. col) fac = 2.0_dp - norm = norm + fac*SUM(data_d**2) - CASE (dbcsr_type_complex_4) - CALL dbcsr_iterator_next_block(iter, row, col, data_c, tr, blk) - fac = 1.0_dp - IF (any_sym .AND. row .NE. col) & - DBCSR_ABORT("Only nonsymmetric matrix so far") - norm = norm + fac*REAL(SUM(CONJG(data_c)*data_c), KIND=real_8) - CASE (dbcsr_type_complex_8) - CALL dbcsr_iterator_next_block(iter, row, col, data_z, tr, blk) - fac = 1.0_dp - IF (any_sym .AND. row .NE. col) & - DBCSR_ABORT("Only nonsymmetric matrix so far") - norm = norm + fac*REAL(SUM(CONJG(data_z)*data_z), KIND=real_8) - CASE DEFAULT - DBCSR_ABORT("Wrong data type") - END SELECT - END DO - CALL dbcsr_iterator_stop(iter) - IF (.NOT. my_local) CALL mp_sum(norm, dbcsr_mp_group(dbcsr_distribution_mp(matrix%dist))) - norm = SQRT(norm) - - CALL timestop(handle) - - END FUNCTION dbcsr_frobenius_norm - - SUBROUTINE dbcsr_sum_replicated(matrix) - !! Sums blocks in a replicated dbcsr matrix, which has the same structure on all ranks. - - TYPE(dbcsr_type), INTENT(inout) :: matrix - !! dbcsr matrix to operate on - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_sum_replicated' - - INTEGER :: handle, index_checksum, mynode, & - numnodes - INTEGER, ALLOCATABLE, DIMENSION(:) :: all_checksums - TYPE(dbcsr_mp_obj) :: mp - TYPE(mp_comm_type) :: comm - -! --------------------------------------------------------------------------- - - CALL timeset(routineN, handle) - mp = dbcsr_distribution_mp(dbcsr_distribution(matrix)) - comm = dbcsr_mp_group(mp) - numnodes = dbcsr_mp_numnodes(mp) - mynode = dbcsr_mp_mynode(mp) - ! - ALLOCATE (all_checksums(numnodes)) - CALL dbcsr_index_checksum(matrix, index_checksum) - CALL mp_allgather(index_checksum, all_checksums, comm) - ! - IF (.NOT. ALL(all_checksums .EQ. index_checksum)) & - DBCSR_ABORT("Replicated matrices do not all have the same index structure.") - ! - SELECT CASE (dbcsr_data_get_type(matrix%data_area)) - CASE (dbcsr_type_real_4) - CALL mp_sum(matrix%data_area%d%r_sp, comm) - CASE (dbcsr_type_real_8) - CALL mp_sum(matrix%data_area%d%r_dp, comm) - CASE (dbcsr_type_complex_4) - CALL mp_sum(matrix%data_area%d%c_sp, comm) - CASE (dbcsr_type_complex_8) - CALL mp_sum(matrix%data_area%d%c_dp, comm) - CASE default - DBCSR_ABORT("Incorrect data type") - END SELECT - ! - CALL timestop(handle) - END SUBROUTINE dbcsr_sum_replicated - - FUNCTION dbcsr_block_in_limits(row, col, block_row_limits, block_column_limits) - !! check if a block is not in the limits - INTEGER, INTENT(in) :: row, col - INTEGER, DIMENSION(2), INTENT(in), OPTIONAL :: block_row_limits, block_column_limits - LOGICAL :: dbcsr_block_in_limits - - dbcsr_block_in_limits = .TRUE. - IF (PRESENT(block_row_limits)) THEN - IF (row .LT. block_row_limits(1)) dbcsr_block_in_limits = .FALSE. - IF (row .GT. block_row_limits(2)) dbcsr_block_in_limits = .FALSE. - END IF - IF (PRESENT(block_column_limits)) THEN - IF (col .LT. block_column_limits(1)) dbcsr_block_in_limits = .FALSE. - IF (col .GT. block_column_limits(2)) dbcsr_block_in_limits = .FALSE. - END IF - END FUNCTION dbcsr_block_in_limits - - SUBROUTINE dbcsr_get_info(matrix, nblkrows_total, nblkcols_total, & - nfullrows_total, nfullcols_total, & - nblkrows_local, nblkcols_local, & - nfullrows_local, nfullcols_local, & - my_prow, my_pcol, & - local_rows, local_cols, proc_row_dist, proc_col_dist, & - row_blk_size, col_blk_size, row_blk_offset, col_blk_offset, distribution, name, data_area, & - matrix_type, data_type, group) - !! Gets information about a matrix - - TYPE(dbcsr_type), INTENT(IN) :: matrix - !! matrix to query - INTEGER, INTENT(OUT), OPTIONAL :: nblkrows_total, nblkcols_total, nfullrows_total, & - nfullcols_total, nblkrows_local, nblkcols_local, nfullrows_local, nfullcols_local, & - my_prow, my_pcol - INTEGER, DIMENSION(:), OPTIONAL, POINTER :: local_rows, local_cols, proc_row_dist, & - proc_col_dist, row_blk_size, col_blk_size, row_blk_offset, col_blk_offset - TYPE(dbcsr_distribution_obj), INTENT(OUT), & - OPTIONAL :: distribution - !! the data distribution of the matrix - CHARACTER(len=*), INTENT(OUT), OPTIONAL :: name - !! matrix name - TYPE(dbcsr_data_obj), INTENT(OUT), OPTIONAL :: data_area - !! data_area - CHARACTER, OPTIONAL :: matrix_type - !! matrix type (regular, symmetric, see dbcsr_types.F for values) - INTEGER, OPTIONAL :: data_type - !! data type (single/double precision real/complex) - TYPE(mp_comm_type), INTENT(OUT), OPTIONAL :: group - -! --------------------------------------------------------------------------- - - !vw avoid massive printing of warnings - !DBCSR_WARN("Invalid matrix") - IF (PRESENT(nblkrows_total)) nblkrows_total = matrix%nblkrows_total - IF (PRESENT(nblkcols_total)) nblkcols_total = matrix%nblkcols_total - IF (PRESENT(nfullrows_total)) nfullrows_total = matrix%nfullrows_total - IF (PRESENT(nfullcols_total)) nfullcols_total = matrix%nfullcols_total - IF (PRESENT(nblkrows_local)) nblkrows_local = matrix%nblkrows_local - IF (PRESENT(nblkcols_local)) nblkcols_local = matrix%nblkcols_local - IF (PRESENT(nfullrows_local)) nfullrows_local = matrix%nfullrows_local - IF (PRESENT(nfullcols_local)) nfullcols_local = matrix%nfullcols_local - IF (PRESENT(row_blk_size)) row_blk_size => array_data(matrix%row_blk_size) - IF (PRESENT(col_blk_size)) col_blk_size => array_data(matrix%col_blk_size) - IF (PRESENT(row_blk_offset)) row_blk_offset => array_data(matrix%row_blk_offset) - IF (PRESENT(col_blk_offset)) col_blk_offset => array_data(matrix%col_blk_offset) - IF (PRESENT(distribution)) distribution = matrix%dist - IF (PRESENT(name)) name = matrix%name - IF (PRESENT(data_area)) data_area = matrix%data_area - IF (PRESENT(data_type)) data_type = matrix%data_type - IF (PRESENT(local_rows)) local_rows => dbcsr_distribution_local_rows(matrix%dist) - IF (PRESENT(local_cols)) local_cols => dbcsr_distribution_local_cols(matrix%dist) - IF (PRESENT(proc_row_dist)) proc_row_dist => dbcsr_distribution_row_dist(matrix%dist) - IF (PRESENT(proc_col_dist)) proc_col_dist => dbcsr_distribution_col_dist(matrix%dist) - IF (PRESENT(my_prow)) my_prow = dbcsr_mp_myprow(dbcsr_distribution_mp(matrix%dist)) - IF (PRESENT(my_pcol)) my_pcol = dbcsr_mp_mypcol(dbcsr_distribution_mp(matrix%dist)) - IF (PRESENT(matrix_type)) matrix_type = dbcsr_get_matrix_type(matrix) + norm = 0.0_dp + CALL dbcsr_iterator_start(iter, matrix) + DO WHILE (dbcsr_iterator_blocks_left(iter)) + SELECT CASE (dbcsr_get_data_type(matrix)) + CASE (dbcsr_type_real_4) + CALL dbcsr_iterator_next_block(iter, row, col, data_r, tr, blk) + fac = 1.0_dp + IF (any_sym .AND. row .NE. col) fac = 2.0_dp + norm = norm + fac*SUM(data_r**2) + CASE (dbcsr_type_real_8) + CALL dbcsr_iterator_next_block(iter, row, col, data_d, tr, blk) + fac = 1.0_dp + IF (any_sym .AND. row .NE. col) fac = 2.0_dp + norm = norm + fac*SUM(data_d**2) + CASE (dbcsr_type_complex_4) + CALL dbcsr_iterator_next_block(iter, row, col, data_c, tr, blk) + fac = 1.0_dp + IF (any_sym .AND. row .NE. col) & + DBCSR_ABORT("Only nonsymmetric matrix so far") + norm = norm + fac*REAL(SUM(CONJG(data_c)*data_c), KIND=real_8) + CASE (dbcsr_type_complex_8) + CALL dbcsr_iterator_next_block(iter, row, col, data_z, tr, blk) + fac = 1.0_dp + IF (any_sym .AND. row .NE. col) & + DBCSR_ABORT("Only nonsymmetric matrix so far") + norm = norm + fac*REAL(SUM(CONJG(data_z)*data_z), KIND=real_8) + CASE DEFAULT + DBCSR_ABORT("Wrong data type") + END SELECT + END DO + CALL dbcsr_iterator_stop(iter) + IF (.NOT. my_local) CALL mp_sum(norm, dbcsr_mp_group(dbcsr_distribution_mp(matrix%dist))) + norm = SQRT(norm) + + CALL timestop(handle) + + END FUNCTION dbcsr_frobenius_norm + + SUBROUTINE dbcsr_sum_replicated(matrix) + !! Sums blocks in a replicated dbcsr matrix, which has the same structure on all ranks. + + TYPE(dbcsr_type), INTENT(inout) :: matrix + !! dbcsr matrix to operate on + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_sum_replicated' + + INTEGER :: handle, index_checksum, mynode, & + numnodes + INTEGER, ALLOCATABLE, DIMENSION(:) :: all_checksums + TYPE(dbcsr_mp_obj) :: mp + TYPE(mp_comm_type) :: comm + +! --------------------------------------------------------------------------- + + CALL timeset(routineN, handle) + mp = dbcsr_distribution_mp(dbcsr_distribution(matrix)) + comm = dbcsr_mp_group(mp) + numnodes = dbcsr_mp_numnodes(mp) + mynode = dbcsr_mp_mynode(mp) + ! + ALLOCATE (all_checksums(numnodes)) + CALL dbcsr_index_checksum(matrix, index_checksum) + CALL mp_allgather(index_checksum, all_checksums, comm) + ! + IF (.NOT. ALL(all_checksums .EQ. index_checksum)) & + DBCSR_ABORT("Replicated matrices do not all have the same index structure.") + ! + SELECT CASE (dbcsr_data_get_type(matrix%data_area)) + CASE (dbcsr_type_real_4) + CALL mp_sum(matrix%data_area%d%r_sp, comm) + CASE (dbcsr_type_real_8) + CALL mp_sum(matrix%data_area%d%r_dp, comm) + CASE (dbcsr_type_complex_4) + CALL mp_sum(matrix%data_area%d%c_sp, comm) + CASE (dbcsr_type_complex_8) + CALL mp_sum(matrix%data_area%d%c_dp, comm) + CASE default + DBCSR_ABORT("Incorrect data type") + END SELECT + ! + CALL timestop(handle) + END SUBROUTINE dbcsr_sum_replicated + + FUNCTION dbcsr_block_in_limits(row, col, block_row_limits, block_column_limits) + !! check if a block is not in the limits + INTEGER, INTENT(in) :: row, col + INTEGER, DIMENSION(2), INTENT(in), OPTIONAL :: block_row_limits, block_column_limits + LOGICAL :: dbcsr_block_in_limits + + dbcsr_block_in_limits = .TRUE. + IF (PRESENT(block_row_limits)) THEN + IF (row .LT. block_row_limits(1)) dbcsr_block_in_limits = .FALSE. + IF (row .GT. block_row_limits(2)) dbcsr_block_in_limits = .FALSE. + END IF + IF (PRESENT(block_column_limits)) THEN + IF (col .LT. block_column_limits(1)) dbcsr_block_in_limits = .FALSE. + IF (col .GT. block_column_limits(2)) dbcsr_block_in_limits = .FALSE. + END IF + END FUNCTION dbcsr_block_in_limits + + SUBROUTINE dbcsr_get_info(matrix, nblkrows_total, nblkcols_total, & + nfullrows_total, nfullcols_total, & + nblkrows_local, nblkcols_local, & + nfullrows_local, nfullcols_local, & + my_prow, my_pcol, & + local_rows, local_cols, proc_row_dist, proc_col_dist, & + row_blk_size, col_blk_size, row_blk_offset, col_blk_offset, distribution, name, data_area, & + matrix_type, data_type, group) + !! Gets information about a matrix + + TYPE(dbcsr_type), INTENT(IN) :: matrix + !! matrix to query + INTEGER, INTENT(OUT), OPTIONAL :: nblkrows_total, nblkcols_total, nfullrows_total, & + nfullcols_total, nblkrows_local, nblkcols_local, nfullrows_local, nfullcols_local, & + my_prow, my_pcol + INTEGER, DIMENSION(:), OPTIONAL, POINTER :: local_rows, local_cols, proc_row_dist, & + proc_col_dist, row_blk_size, col_blk_size, row_blk_offset, col_blk_offset + TYPE(dbcsr_distribution_obj), INTENT(OUT), & + OPTIONAL :: distribution + !! the data distribution of the matrix + CHARACTER(len=*), INTENT(OUT), OPTIONAL :: name + !! matrix name + TYPE(dbcsr_data_obj), INTENT(OUT), OPTIONAL :: data_area + !! data_area + CHARACTER, OPTIONAL :: matrix_type + !! matrix type (regular, symmetric, see dbcsr_types.F for values) + INTEGER, OPTIONAL :: data_type + !! data type (single/double precision real/complex) + TYPE(mp_comm_type), INTENT(OUT), OPTIONAL :: group + +! --------------------------------------------------------------------------- + + !vw avoid massive printing of warnings + !DBCSR_WARN("Invalid matrix") + IF (PRESENT(nblkrows_total)) nblkrows_total = matrix%nblkrows_total + IF (PRESENT(nblkcols_total)) nblkcols_total = matrix%nblkcols_total + IF (PRESENT(nfullrows_total)) nfullrows_total = matrix%nfullrows_total + IF (PRESENT(nfullcols_total)) nfullcols_total = matrix%nfullcols_total + IF (PRESENT(nblkrows_local)) nblkrows_local = matrix%nblkrows_local + IF (PRESENT(nblkcols_local)) nblkcols_local = matrix%nblkcols_local + IF (PRESENT(nfullrows_local)) nfullrows_local = matrix%nfullrows_local + IF (PRESENT(nfullcols_local)) nfullcols_local = matrix%nfullcols_local + IF (PRESENT(row_blk_size)) row_blk_size => array_data(matrix%row_blk_size) + IF (PRESENT(col_blk_size)) col_blk_size => array_data(matrix%col_blk_size) + IF (PRESENT(row_blk_offset)) row_blk_offset => array_data(matrix%row_blk_offset) + IF (PRESENT(col_blk_offset)) col_blk_offset => array_data(matrix%col_blk_offset) + IF (PRESENT(distribution)) distribution = matrix%dist + IF (PRESENT(name)) name = matrix%name + IF (PRESENT(data_area)) data_area = matrix%data_area + IF (PRESENT(data_type)) data_type = matrix%data_type + IF (PRESENT(local_rows)) local_rows => dbcsr_distribution_local_rows(matrix%dist) + IF (PRESENT(local_cols)) local_cols => dbcsr_distribution_local_cols(matrix%dist) + IF (PRESENT(proc_row_dist)) proc_row_dist => dbcsr_distribution_row_dist(matrix%dist) + IF (PRESENT(proc_col_dist)) proc_col_dist => dbcsr_distribution_col_dist(matrix%dist) + IF (PRESENT(my_prow)) my_prow = dbcsr_mp_myprow(dbcsr_distribution_mp(matrix%dist)) + IF (PRESENT(my_pcol)) my_pcol = dbcsr_mp_mypcol(dbcsr_distribution_mp(matrix%dist)) + IF (PRESENT(matrix_type)) matrix_type = dbcsr_get_matrix_type(matrix) + + IF (PRESENT(group)) group = dbcsr_mp_group(matrix%dist%d%mp_env) ! a shortcut + !IF (PRESENT(matrix_type)) THEN + ! matrix_type = dbcsr_get_matrix_type(matrix) + ! IF (matrix_type .EQ. dbcsr_type_invalid) & + ! DBCSR_ABORT("Incorrect symmetry") + !ENDIF + END SUBROUTINE dbcsr_get_info + + FUNCTION dbcsr_may_be_dense(matrix, occ_thresh) RESULT(may_be_dense) + !! Returns whether the matrix could be represented in a dense form + + TYPE(dbcsr_type), INTENT(IN) :: matrix + !! matrix + REAL(real_8), INTENT(in) :: occ_thresh + LOGICAL :: may_be_dense + !! use the mutable and not append-only working structures + + REAL(real_8) :: occ - IF (PRESENT(group)) group = dbcsr_mp_group(matrix%dist%d%mp_env) ! a shortcut - !IF (PRESENT(matrix_type)) THEN - ! matrix_type = dbcsr_get_matrix_type(matrix) - ! IF (matrix_type .EQ. dbcsr_type_invalid) & - ! DBCSR_ABORT("Incorrect symmetry") - !ENDIF - END SUBROUTINE dbcsr_get_info +! --------------------------------------------------------------------------- + + occ = dbcsr_get_occupation(matrix) + may_be_dense = .NOT. (occ .LT. occ_thresh) + ! make sure every proc sees the same + CALL mp_sum(may_be_dense, dbcsr_mp_group(dbcsr_distribution_mp(matrix%dist))) + END FUNCTION dbcsr_may_be_dense - FUNCTION dbcsr_may_be_dense(matrix, occ_thresh) RESULT(may_be_dense) - !! Returns whether the matrix could be represented in a dense form + FUNCTION dbcsr_get_occupation(matrix) RESULT(occupation) + !! Returns the occupation of the matrix TYPE(dbcsr_type), INTENT(IN) :: matrix - !! matrix - REAL(real_8), INTENT(in) :: occ_thresh - LOGICAL :: may_be_dense - !! use the mutable and not append-only working structures - - REAL(real_8) :: occ + !! matrix from which to get the occupation + REAL(KIND=real_8) :: occupation + + INTEGER :: nfullcols, nfullrows + INTEGER(KIND=int_8) :: nze_global + INTEGER, DIMENSION(:), POINTER :: row_blk_size -! --------------------------------------------------------------------------- - - occ = dbcsr_get_occupation(matrix) - may_be_dense = .NOT. (occ .LT. occ_thresh) - ! make sure every proc sees the same - CALL mp_sum(may_be_dense, dbcsr_mp_group(dbcsr_distribution_mp(matrix%dist))) - END FUNCTION dbcsr_may_be_dense + nze_global = matrix%nze + CALL mp_sum(nze_global, dbcsr_mp_group(dbcsr_distribution_mp(matrix%dist))) + + nfullrows = dbcsr_nfullrows_total(matrix) + nfullcols = dbcsr_nfullcols_total(matrix) + + row_blk_size => array_data(matrix%row_blk_size) - FUNCTION dbcsr_get_occupation(matrix) RESULT(occupation) - !! Returns the occupation of the matrix - - TYPE(dbcsr_type), INTENT(IN) :: matrix - !! matrix from which to get the occupation - REAL(KIND=real_8) :: occupation - - INTEGER :: nfullcols, nfullrows - INTEGER(KIND=int_8) :: nze_global - INTEGER, DIMENSION(:), POINTER :: row_blk_size - - nze_global = matrix%nze - CALL mp_sum(nze_global, dbcsr_mp_group(dbcsr_distribution_mp(matrix%dist))) - - nfullrows = dbcsr_nfullrows_total(matrix) - nfullcols = dbcsr_nfullcols_total(matrix) - - row_blk_size => array_data(matrix%row_blk_size) - - IF (nfullrows .NE. 0 .AND. nfullcols .NE. 0) THEN - IF (dbcsr_has_symmetry(matrix)) THEN - IF (2*nze_global .EQ. & - (INT(nfullrows, KIND=int_8)*INT(nfullrows + 1, KIND=int_8) + SUM(row_blk_size*(row_blk_size - 1)))) THEN - occupation = 1.0_real_8 - ELSE - occupation = 2.0_real_8*REAL(nze_global, real_8)/ & - (REAL(nfullrows, real_8)*REAL(nfullrows + 1, real_8) + & - SUM(REAL(row_blk_size, real_8)*REAL(row_blk_size - 1, real_8))) - END IF - ELSE - IF (nze_global .EQ. INT(nfullrows, KIND=int_8)*INT(nfullcols, KIND=int_8)) THEN - occupation = 1.0_real_8 - ELSE - occupation = REAL(nze_global, real_8)/(REAL(nfullrows, real_8)*REAL(nfullcols, real_8)) - END IF - END IF - ELSE - occupation = 0.0_real_8 - END IF - END FUNCTION dbcsr_get_occupation + IF (nfullrows .NE. 0 .AND. nfullcols .NE. 0) THEN + IF (dbcsr_has_symmetry(matrix)) THEN + IF (2*nze_global .EQ. & + (INT(nfullrows, KIND=int_8)*INT(nfullrows + 1, KIND=int_8) + SUM(row_blk_size*(row_blk_size - 1)))) THEN + occupation = 1.0_real_8 + ELSE + occupation = 2.0_real_8*REAL(nze_global, real_8)/ & + (REAL(nfullrows, real_8)*REAL(nfullrows + 1, real_8) + & + SUM(REAL(row_blk_size, real_8)*REAL(row_blk_size - 1, real_8))) + END IF + ELSE + IF (nze_global .EQ. INT(nfullrows, KIND=int_8)*INT(nfullcols, KIND=int_8)) THEN + occupation = 1.0_real_8 + ELSE + occupation = REAL(nze_global, real_8)/(REAL(nfullrows, real_8)*REAL(nfullcols, real_8)) + END IF + END IF + ELSE + occupation = 0.0_real_8 + END IF + END FUNCTION dbcsr_get_occupation + + SUBROUTINE dbcsr_clear(matrix) + !! Clear a matrix (remove all blocks) + TYPE(dbcsr_type), INTENT(INOUT) :: matrix + TYPE(dbcsr_type) :: matrix_tmp + + CALL dbcsr_create(matrix_tmp, matrix) + CALL dbcsr_release(matrix) + matrix = matrix_tmp + + END SUBROUTINE + + SUBROUTINE dbcsr_trace_sd(matrix_a, trace) + !! Trace of DBCSR matrices + + TYPE(dbcsr_type), INTENT(IN) :: matrix_a + !! DBCSR matrices + REAL(kind=real_8), INTENT(INOUT) :: trace + !! the trace of the product of the matrices - SUBROUTINE dbcsr_clear(matrix) - !! Clear a matrix (remove all blocks) - TYPE(dbcsr_type), INTENT(INOUT) :: matrix - TYPE(dbcsr_type) :: matrix_tmp + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_trace_sd' + + INTEGER :: handle + REAL(kind=real_4) :: trace_4 - CALL dbcsr_create(matrix_tmp, matrix) - CALL dbcsr_release(matrix) - matrix = matrix_tmp - - END SUBROUTINE - - SUBROUTINE dbcsr_trace_sd(matrix_a, trace) - !! Trace of DBCSR matrices - - TYPE(dbcsr_type), INTENT(IN) :: matrix_a - !! DBCSR matrices - REAL(kind=real_8), INTENT(INOUT) :: trace - !! the trace of the product of the matrices - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_trace_sd' - - INTEGER :: handle - REAL(kind=real_4) :: trace_4 - - CALL timeset(routineN, handle) - IF (dbcsr_get_data_type(matrix_a) .EQ. dbcsr_type_real_8) THEN - CALL dbcsr_trace_d(matrix_a, trace) - ELSEIF (dbcsr_get_data_type(matrix_a) .EQ. dbcsr_type_real_4) THEN - trace_4 = 0.0_real_4 - CALL dbcsr_trace_s(matrix_a, trace_4) - trace = REAL(trace_4, real_8) - ELSE - DBCSR_ABORT("Invalid combination of data type, NYI") - END IF - CALL timestop(handle) - END SUBROUTINE dbcsr_trace_sd - - SUBROUTINE dbcsr_dot_sd(matrix_a, matrix_b, trace) - !! Dot product of DBCSR matrices - !! \result the dot product of the matrices - - TYPE(dbcsr_type), INTENT(IN) :: matrix_a, matrix_b - !! DBCSR matrices - !! DBCSR matrices - REAL(kind=real_8), INTENT(INOUT) :: trace - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_dot_sd' - - INTEGER :: handle - REAL(kind=real_4) :: trace_4 - - CALL timeset(routineN, handle) - IF (dbcsr_get_data_type(matrix_a) .EQ. dbcsr_type_real_8 .AND. & - dbcsr_get_data_type(matrix_b) .EQ. dbcsr_type_real_8) THEN - CALL dbcsr_dot_d(matrix_a, matrix_b, trace) - ELSEIF (dbcsr_get_data_type(matrix_a) .EQ. dbcsr_type_real_4 .AND. & - dbcsr_get_data_type(matrix_b) .EQ. dbcsr_type_real_4) THEN - trace_4 = 0.0_real_4 - CALL dbcsr_dot_s(matrix_a, matrix_b, trace_4) - trace = REAL(trace_4, real_8) - ELSE - DBCSR_ABORT("Invalid combination of data type, NYI") - END IF - CALL timestop(handle) - END SUBROUTINE dbcsr_dot_sd - -# 1 "/__w/dbcsr/dbcsr/src/ops/../data/dbcsr.fypp" 1 -# 9 "/__w/dbcsr/dbcsr/src/ops/../data/dbcsr.fypp" - -# 11 "/__w/dbcsr/dbcsr/src/ops/../data/dbcsr.fypp" - -# 169 "/__w/dbcsr/dbcsr/src/ops/../data/dbcsr.fypp" -# 2638 "/__w/dbcsr/dbcsr/src/ops/dbcsr_operations.F" 2 -# 2639 "/__w/dbcsr/dbcsr/src/ops/dbcsr_operations.F" - SUBROUTINE dbcsr_trace_d (matrix_a, trace) - !! traces a DBCSR matrix + CALL timeset(routineN, handle) + IF (dbcsr_get_data_type(matrix_a) .EQ. dbcsr_type_real_8) THEN + CALL dbcsr_trace_d(matrix_a, trace) + ELSEIF (dbcsr_get_data_type(matrix_a) .EQ. dbcsr_type_real_4) THEN + trace_4 = 0.0_real_4 + CALL dbcsr_trace_s(matrix_a, trace_4) + trace = REAL(trace_4, real_8) + ELSE + DBCSR_ABORT("Invalid combination of data type, NYI") + END IF + CALL timestop(handle) + END SUBROUTINE dbcsr_trace_sd + + SUBROUTINE dbcsr_dot_sd(matrix_a, matrix_b, trace) + !! Dot product of DBCSR matrices + !! \result the dot product of the matrices + + TYPE(dbcsr_type), INTENT(IN) :: matrix_a, matrix_b + !! DBCSR matrices + !! DBCSR matrices + REAL(kind=real_8), INTENT(INOUT) :: trace + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_dot_sd' + + INTEGER :: handle + REAL(kind=real_4) :: trace_4 + + CALL timeset(routineN, handle) + IF (dbcsr_get_data_type(matrix_a) .EQ. dbcsr_type_real_8 .AND. & + dbcsr_get_data_type(matrix_b) .EQ. dbcsr_type_real_8) THEN + CALL dbcsr_dot_d(matrix_a, matrix_b, trace) + ELSEIF (dbcsr_get_data_type(matrix_a) .EQ. dbcsr_type_real_4 .AND. & + dbcsr_get_data_type(matrix_b) .EQ. dbcsr_type_real_4) THEN + trace_4 = 0.0_real_4 + CALL dbcsr_dot_s(matrix_a, matrix_b, trace_4) + trace = REAL(trace_4, real_8) + ELSE + DBCSR_ABORT("Invalid combination of data type, NYI") + END IF + CALL timestop(handle) + END SUBROUTINE dbcsr_dot_sd + +# 1 "/__w/dbcsr/dbcsr/src/ops/../data/dbcsr.fypp" 1 +# 9 "/__w/dbcsr/dbcsr/src/ops/../data/dbcsr.fypp" + +# 11 "/__w/dbcsr/dbcsr/src/ops/../data/dbcsr.fypp" + +# 169 "/__w/dbcsr/dbcsr/src/ops/../data/dbcsr.fypp" +# 2619 "/__w/dbcsr/dbcsr/src/ops/dbcsr_operations.F" 2 +# 2620 "/__w/dbcsr/dbcsr/src/ops/dbcsr_operations.F" + SUBROUTINE dbcsr_trace_d (matrix_a, trace) + !! traces a DBCSR matrix + + TYPE(dbcsr_type), INTENT(IN) :: matrix_a + !! DBCSR matrix + REAL(kind=real_8), INTENT(INOUT) :: trace + !! the trace of the matrix + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_trace_d' + + INTEGER :: a_blk, a_col, a_col_size, & + a_nze, a_row, a_row_size, i, & + mynode, error_handle + INTEGER, DIMENSION(:), POINTER :: col_blk_size, row_blk_size, & + row_dist, col_dist + REAL(kind=real_8), DIMENSION(:), POINTER :: a_data, data_p + INTEGER, DIMENSION(:, :), POINTER :: pgrid + TYPE(dbcsr_distribution_obj) :: dist + +! --------------------------------------------------------------------------- + CALL timeset(routineN, error_handle) - TYPE(dbcsr_type), INTENT(IN) :: matrix_a - !! DBCSR matrix - REAL(kind=real_8), INTENT(INOUT) :: trace - !! the trace of the matrix - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_trace_d' - - INTEGER :: a_blk, a_col, a_col_size, & - a_nze, a_row, a_row_size, i, & - mynode, error_handle - INTEGER, DIMENSION(:), POINTER :: col_blk_size, row_blk_size, & - row_dist, col_dist - REAL(kind=real_8), DIMENSION(:), POINTER :: a_data, data_p - INTEGER, DIMENSION(:, :), POINTER :: pgrid - TYPE(dbcsr_distribution_obj) :: dist - -! --------------------------------------------------------------------------- - CALL timeset(routineN, error_handle) - - row_blk_size => array_data(matrix_a%row_blk_size) - col_blk_size => array_data(matrix_a%col_blk_size) - IF (dbcsr_get_data_type(matrix_a) /= dbcsr_type_real_8) & - DBCSR_ABORT("Incompatible data types") - CALL dbcsr_get_data(matrix_a%data_area, data_p) - dist = dbcsr_distribution(matrix_a) - mynode = dbcsr_mp_mynode(dbcsr_distribution_mp(dist)) - pgrid => dbcsr_mp_pgrid(dbcsr_distribution_mp(dist)) - row_dist => dbcsr_distribution_row_dist(dist) - col_dist => dbcsr_distribution_col_dist(dist) - ! - ! let's go - trace = REAL(0.0, real_8) - DO a_row = 1, matrix_a%nblkrows_total - a_row_size = row_blk_size(a_row) - DO a_blk = matrix_a%row_p(a_row) + 1, matrix_a%row_p(a_row + 1) - IF (a_blk .EQ. 0) CYCLE - a_col = matrix_a%col_i(a_blk) - IF (a_col .ne. a_row) CYCLE - ! We must skip non-local blocks in a replicated matrix. - IF (matrix_a%replication_type .NE. dbcsr_repl_full) THEN - IF (mynode .NE. checker_square_proc(a_row, a_col, pgrid, row_dist, col_dist)) & - CYCLE - END IF - a_col_size = col_blk_size(a_col) - IF (a_row_size .NE. a_col_size) & - DBCSR_ABORT("is that a square matrix?") - a_nze = a_row_size**2 - a_data => pointer_view(data_p, ABS(matrix_a%blk_p(a_blk)), & - ABS(matrix_a%blk_p(a_blk)) + a_nze - 1) - !data_a => matrix_a%data(ABS(matrix_a%blk_p(a_blk)):ABS(matrix_a%blk_p(a_blk))+a_nze-1) - ! - ! let's trace the block - DO i = 1, a_row_size - trace = trace + a_data((i - 1)*a_row_size + i) - END DO - END DO ! a_col - END DO ! a_row - ! - ! summe - CALL mp_sum(trace, dbcsr_mp_group(dbcsr_distribution_mp(matrix_a%dist))) - - CALL timestop(error_handle) - END SUBROUTINE dbcsr_trace_d + row_blk_size => array_data(matrix_a%row_blk_size) + col_blk_size => array_data(matrix_a%col_blk_size) + IF (dbcsr_get_data_type(matrix_a) /= dbcsr_type_real_8) & + DBCSR_ABORT("Incompatible data types") + CALL dbcsr_get_data(matrix_a%data_area, data_p) + dist = dbcsr_distribution(matrix_a) + mynode = dbcsr_mp_mynode(dbcsr_distribution_mp(dist)) + pgrid => dbcsr_mp_pgrid(dbcsr_distribution_mp(dist)) + row_dist => dbcsr_distribution_row_dist(dist) + col_dist => dbcsr_distribution_col_dist(dist) + ! + ! let's go + trace = REAL(0.0, real_8) + DO a_row = 1, matrix_a%nblkrows_total + a_row_size = row_blk_size(a_row) + DO a_blk = matrix_a%row_p(a_row) + 1, matrix_a%row_p(a_row + 1) + IF (a_blk .EQ. 0) CYCLE + a_col = matrix_a%col_i(a_blk) + IF (a_col .ne. a_row) CYCLE + ! We must skip non-local blocks in a replicated matrix. + IF (matrix_a%replication_type .NE. dbcsr_repl_full) THEN + IF (mynode .NE. checker_square_proc(a_row, a_col, pgrid, row_dist, col_dist)) & + CYCLE + END IF + a_col_size = col_blk_size(a_col) + IF (a_row_size .NE. a_col_size) & + DBCSR_ABORT("is that a square matrix?") + a_nze = a_row_size**2 + a_data => pointer_view(data_p, ABS(matrix_a%blk_p(a_blk)), & + ABS(matrix_a%blk_p(a_blk)) + a_nze - 1) + !data_a => matrix_a%data(ABS(matrix_a%blk_p(a_blk)):ABS(matrix_a%blk_p(a_blk))+a_nze-1) + ! + ! let's trace the block + DO i = 1, a_row_size + trace = trace + a_data((i - 1)*a_row_size + i) + END DO + END DO ! a_col + END DO ! a_row + ! + ! summe + CALL mp_sum(trace, dbcsr_mp_group(dbcsr_distribution_mp(matrix_a%dist))) + + CALL timestop(error_handle) + END SUBROUTINE dbcsr_trace_d + + SUBROUTINE dbcsr_dot_d (matrix_a, matrix_b, trace) + !! Dot product of DBCSR matrices + + TYPE(dbcsr_type), INTENT(IN) :: matrix_a, matrix_b + !! DBCSR matrices + !! DBCSR matrices + REAL(kind=real_8), INTENT(INOUT) :: trace + !! the trace of the product of the matrices + + INTEGER :: a_blk, a_col, a_col_size, a_row_size, b_blk, b_col_size, & + b_frst_blk, b_last_blk, b_row_size, nze, row, a_beg, a_end, b_beg, b_end + CHARACTER :: matrix_a_type, matrix_b_type + INTEGER, DIMENSION(:), POINTER :: a_col_blk_size, & + a_row_blk_size, & + b_col_blk_size, b_row_blk_size + REAL(kind=real_8) :: sym_fac, fac + LOGICAL :: found, matrix_a_symm, matrix_b_symm + REAL(kind=real_8), DIMENSION(:), POINTER :: a_data, b_data - SUBROUTINE dbcsr_dot_d (matrix_a, matrix_b, trace) - !! Dot product of DBCSR matrices - - TYPE(dbcsr_type), INTENT(IN) :: matrix_a, matrix_b - !! DBCSR matrices - !! DBCSR matrices - REAL(kind=real_8), INTENT(INOUT) :: trace - !! the trace of the product of the matrices - - INTEGER :: a_blk, a_col, a_col_size, a_row_size, b_blk, b_col_size, & - b_frst_blk, b_last_blk, b_row_size, nze, row, a_beg, a_end, b_beg, b_end - CHARACTER :: matrix_a_type, matrix_b_type - INTEGER, DIMENSION(:), POINTER :: a_col_blk_size, & - a_row_blk_size, & - b_col_blk_size, b_row_blk_size - REAL(kind=real_8) :: sym_fac, fac - LOGICAL :: found, matrix_a_symm, matrix_b_symm - REAL(kind=real_8), DIMENSION(:), POINTER :: a_data, b_data - -! --------------------------------------------------------------------------- - - IF (matrix_a%replication_type .NE. dbcsr_repl_none & - .OR. matrix_b%replication_type .NE. dbcsr_repl_none) & - DBCSR_ABORT("Trace of product of replicated matrices not yet possible.") - - sym_fac = REAL(1.0, real_8) - matrix_a_type = dbcsr_get_matrix_type(matrix_a) - matrix_b_type = dbcsr_get_matrix_type(matrix_b) - matrix_a_symm = matrix_a_type == dbcsr_type_symmetric .OR. matrix_a_type == dbcsr_type_antisymmetric - matrix_b_symm = matrix_b_type == dbcsr_type_symmetric .OR. matrix_b_type == dbcsr_type_antisymmetric - - IF (matrix_a_symm .AND. matrix_b_symm) sym_fac = REAL(2.0, real_8) - - ! tracing a symmetric with a general matrix is not implemented, as it would require communication of blocks - IF (matrix_a_symm .NEQV. matrix_b_symm) & - DBCSR_ABORT("Tracing general with symmetric matrix NYI") - - a_row_blk_size => array_data(matrix_a%row_blk_size) - a_col_blk_size => array_data(matrix_a%col_blk_size) - b_row_blk_size => array_data(matrix_b%row_blk_size) - b_col_blk_size => array_data(matrix_b%col_blk_size) - - CALL dbcsr_get_data(matrix_a%data_area, a_data) - CALL dbcsr_get_data(matrix_b%data_area, b_data) - - ! let's go - trace = REAL(0.0, real_8) - IF (matrix_a%nblkrows_total .NE. matrix_b%nblkrows_total) & - DBCSR_ABORT("this combination of transpose is NYI") - DO row = 1, matrix_a%nblkrows_total - a_row_size = a_row_blk_size(row) - b_row_size = b_row_blk_size(row) - IF (a_row_size .NE. b_row_size) DBCSR_ABORT("matrices not consistent") - b_blk = matrix_b%row_p(row) + 1 - b_frst_blk = matrix_b%row_p(row) + 1 - b_last_blk = matrix_b%row_p(row + 1) - DO a_blk = matrix_a%row_p(row) + 1, matrix_a%row_p(row + 1) - IF (matrix_a%blk_p(a_blk) .EQ. 0) CYCLE ! Deleted block - a_col = matrix_a%col_i(a_blk) - a_col_size = a_col_blk_size(a_col) - ! - ! find the b_blk we assume here that the columns are ordered ! - CALL dbcsr_find_column(a_col, b_frst_blk, b_last_blk, matrix_b%col_i, & - matrix_b%blk_p, b_blk, found) - IF (found) THEN - b_col_size = b_col_blk_size(a_col) - IF (a_col_size .NE. b_col_size) DBCSR_ABORT("matrices not consistent") - ! - nze = a_row_size*a_col_size - ! - IF (nze .GT. 0) THEN - ! - ! let's trace the blocks - a_beg = ABS(matrix_a%blk_p(a_blk)) - a_end = a_beg + nze - 1 - b_beg = ABS(matrix_b%blk_p(b_blk)) - b_end = b_beg + nze - 1 - fac = REAL(1.0, real_8) - IF (row .NE. a_col) fac = sym_fac - - trace = trace + fac*SUM(a_data(a_beg:a_end)*b_data(b_beg:b_end)) - - END IF - END IF - END DO ! a_col - END DO ! a_row - ! - ! sum - CALL mp_sum(trace, dbcsr_mp_group(dbcsr_distribution_mp(matrix_a%dist))) - - END SUBROUTINE dbcsr_dot_d - - SUBROUTINE dbcsr_scale_d (matrix_a, alpha_scalar, last_column) - !! Interface for matrix scaling by a scalar - TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a - REAL(kind=real_8), INTENT(IN) :: alpha_scalar - INTEGER, INTENT(IN), OPTIONAL :: last_column +! --------------------------------------------------------------------------- + + IF (matrix_a%replication_type .NE. dbcsr_repl_none & + .OR. matrix_b%replication_type .NE. dbcsr_repl_none) & + DBCSR_ABORT("Trace of product of replicated matrices not yet possible.") + + sym_fac = REAL(1.0, real_8) + matrix_a_type = dbcsr_get_matrix_type(matrix_a) + matrix_b_type = dbcsr_get_matrix_type(matrix_b) + matrix_a_symm = matrix_a_type == dbcsr_type_symmetric .OR. matrix_a_type == dbcsr_type_antisymmetric + matrix_b_symm = matrix_b_type == dbcsr_type_symmetric .OR. matrix_b_type == dbcsr_type_antisymmetric + + IF (matrix_a_symm .AND. matrix_b_symm) sym_fac = REAL(2.0, real_8) + + ! tracing a symmetric with a general matrix is not implemented, as it would require communication of blocks + IF (matrix_a_symm .NEQV. matrix_b_symm) & + DBCSR_ABORT("Tracing general with symmetric matrix NYI") + + a_row_blk_size => array_data(matrix_a%row_blk_size) + a_col_blk_size => array_data(matrix_a%col_blk_size) + b_row_blk_size => array_data(matrix_b%row_blk_size) + b_col_blk_size => array_data(matrix_b%col_blk_size) + + CALL dbcsr_get_data(matrix_a%data_area, a_data) + CALL dbcsr_get_data(matrix_b%data_area, b_data) + + ! let's go + trace = REAL(0.0, real_8) + IF (matrix_a%nblkrows_total .NE. matrix_b%nblkrows_total) & + DBCSR_ABORT("this combination of transpose is NYI") + DO row = 1, matrix_a%nblkrows_total + a_row_size = a_row_blk_size(row) + b_row_size = b_row_blk_size(row) + IF (a_row_size .NE. b_row_size) DBCSR_ABORT("matrices not consistent") + b_blk = matrix_b%row_p(row) + 1 + b_frst_blk = matrix_b%row_p(row) + 1 + b_last_blk = matrix_b%row_p(row + 1) + DO a_blk = matrix_a%row_p(row) + 1, matrix_a%row_p(row + 1) + IF (matrix_a%blk_p(a_blk) .EQ. 0) CYCLE ! Deleted block + a_col = matrix_a%col_i(a_blk) + a_col_size = a_col_blk_size(a_col) + ! + ! find the b_blk we assume here that the columns are ordered ! + CALL dbcsr_find_column(a_col, b_frst_blk, b_last_blk, matrix_b%col_i, & + matrix_b%blk_p, b_blk, found) + IF (found) THEN + b_col_size = b_col_blk_size(a_col) + IF (a_col_size .NE. b_col_size) DBCSR_ABORT("matrices not consistent") + ! + nze = a_row_size*a_col_size + ! + IF (nze .GT. 0) THEN + ! + ! let's trace the blocks + a_beg = ABS(matrix_a%blk_p(a_blk)) + a_end = a_beg + nze - 1 + b_beg = ABS(matrix_b%blk_p(b_blk)) + b_end = b_beg + nze - 1 + fac = REAL(1.0, real_8) + IF (row .NE. a_col) fac = sym_fac + + trace = trace + fac*SUM(a_data(a_beg:a_end)*b_data(b_beg:b_end)) + + END IF + END IF + END DO ! a_col + END DO ! a_row + ! + ! sum + CALL mp_sum(trace, dbcsr_mp_group(dbcsr_distribution_mp(matrix_a%dist))) + + END SUBROUTINE dbcsr_dot_d + + SUBROUTINE dbcsr_scale_d (matrix_a, alpha_scalar, last_column) + !! Interface for matrix scaling by a scalar + TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a + REAL(kind=real_8), INTENT(IN) :: alpha_scalar + INTEGER, INTENT(IN), OPTIONAL :: last_column + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_scale_d' + + INTEGER :: error_handler + TYPE(dbcsr_scalar_type) :: sc + + sc = dbcsr_scalar(alpha_scalar) + CALL dbcsr_scalar_fill_all(sc) + sc%data_type = dbcsr_get_data_type(matrix_a) + CALL timeset(routineN, error_handler) + IF (PRESENT(last_column)) THEN + CALL dbcsr_scale_anytype(matrix_a, & + alpha_scalar=sc, & + limits=(/0, 0, 0, last_column/)) + ELSE + CALL dbcsr_scale_anytype(matrix_a, alpha_scalar=sc) + END IF + CALL timestop(error_handler) + END SUBROUTINE dbcsr_scale_d - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_scale_d' - - INTEGER :: error_handler - TYPE(dbcsr_scalar_type) :: sc - - sc = dbcsr_scalar(alpha_scalar) - CALL dbcsr_scalar_fill_all(sc) - sc%data_type = dbcsr_get_data_type(matrix_a) - CALL timeset(routineN, error_handler) - IF (PRESENT(last_column)) THEN - CALL dbcsr_scale_anytype(matrix_a, & - alpha_scalar=sc, & - limits=(/0, 0, 0, last_column/)) - ELSE - CALL dbcsr_scale_anytype(matrix_a, alpha_scalar=sc) - END IF - CALL timestop(error_handler) - END SUBROUTINE dbcsr_scale_d - - SUBROUTINE dbcsr_scale_by_vector_d (matrix_a, alpha, side) - !! Interface for matrix scaling by a vector - TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a - REAL(kind=real_8), DIMENSION(:), INTENT(IN), TARGET, CONTIGUOUS :: alpha - CHARACTER(LEN=*), INTENT(IN) :: side - REAL(kind=real_8), DIMENSION(:), POINTER, CONTIGUOUS :: tmp_p - TYPE(dbcsr_data_obj) :: enc_alpha_vec - - CALL dbcsr_data_init(enc_alpha_vec) - CALL dbcsr_data_new(enc_alpha_vec, dbcsr_type_real_8) - tmp_p => alpha - CALL dbcsr_data_set_pointer(enc_alpha_vec, tmp_p) - CALL dbcsr_scale_by_vector_anytype(matrix_a, enc_alpha_vec, side) - CALL dbcsr_data_clear_pointer(enc_alpha_vec) - CALL dbcsr_data_release(enc_alpha_vec) - END SUBROUTINE dbcsr_scale_by_vector_d - - SUBROUTINE dbcsr_set_d (matrix, alpha) - !! Interface for dbcsr_set - TYPE(dbcsr_type), INTENT(INOUT) :: matrix - REAL(kind=real_8), INTENT(IN) :: alpha - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_set' - - INTEGER :: col, handle, row - TYPE(dbcsr_iterator) :: iter - REAL(kind=real_8), DIMENSION(:, :), POINTER :: block - LOGICAL :: tr - - CALL timeset(routineN, handle) - - IF (alpha == 0.0_real_8) THEN - CALL dbcsr_zero(matrix) - ELSE - IF (dbcsr_get_data_type(matrix) /= dbcsr_type_real_8) & - DBCSR_ABORT("Incompatible data types") - - !TODO: could be speedup by direct assignment to data_area, similar to dbcsr_zero() - CALL dbcsr_iterator_start(iter, matrix) - DO WHILE (dbcsr_iterator_blocks_left(iter)) - CALL dbcsr_iterator_next_block(iter, row, col, block, tr) - block(:, :) = alpha - END DO - CALL dbcsr_iterator_stop(iter) - END IF + SUBROUTINE dbcsr_scale_by_vector_d (matrix_a, alpha, side) + !! Interface for matrix scaling by a vector + TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a + REAL(kind=real_8), DIMENSION(:), INTENT(IN), TARGET, CONTIGUOUS :: alpha + CHARACTER(LEN=*), INTENT(IN) :: side + REAL(kind=real_8), DIMENSION(:), POINTER, CONTIGUOUS :: tmp_p + TYPE(dbcsr_data_obj) :: enc_alpha_vec + + CALL dbcsr_data_init(enc_alpha_vec) + CALL dbcsr_data_new(enc_alpha_vec, dbcsr_type_real_8) + tmp_p => alpha + CALL dbcsr_data_set_pointer(enc_alpha_vec, tmp_p) + CALL dbcsr_scale_by_vector_anytype(matrix_a, enc_alpha_vec, side) + CALL dbcsr_data_clear_pointer(enc_alpha_vec) + CALL dbcsr_data_release(enc_alpha_vec) + END SUBROUTINE dbcsr_scale_by_vector_d + + SUBROUTINE dbcsr_set_d (matrix, alpha) + !! Interface for dbcsr_set + TYPE(dbcsr_type), INTENT(INOUT) :: matrix + REAL(kind=real_8), INTENT(IN) :: alpha + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_set' + + INTEGER :: col, handle, row + TYPE(dbcsr_iterator) :: iter + REAL(kind=real_8), DIMENSION(:, :), POINTER :: block + LOGICAL :: tr + + CALL timeset(routineN, handle) + + IF (alpha == 0.0_real_8) THEN + CALL dbcsr_zero(matrix) + ELSE + IF (dbcsr_get_data_type(matrix) /= dbcsr_type_real_8) & + DBCSR_ABORT("Incompatible data types") + + !TODO: could be speedup by direct assignment to data_area, similar to dbcsr_zero() + CALL dbcsr_iterator_start(iter, matrix) + DO WHILE (dbcsr_iterator_blocks_left(iter)) + CALL dbcsr_iterator_next_block(iter, row, col, block, tr) + block(:, :) = alpha + END DO + CALL dbcsr_iterator_stop(iter) + END IF + + CALL timestop(handle) + END SUBROUTINE dbcsr_set_d + + SUBROUTINE dbcsr_filter_d (matrix, eps, method, use_absolute, & + filter_diag) + TYPE(dbcsr_type), INTENT(INOUT) :: matrix + REAL(kind=real_8), INTENT(IN) :: eps + INTEGER, INTENT(IN), OPTIONAL :: method + LOGICAL, INTENT(in), OPTIONAL :: use_absolute, filter_diag + CALL dbcsr_filter_anytype(matrix, dbcsr_scalar(eps), method, & + use_absolute, filter_diag) + END SUBROUTINE dbcsr_filter_d + + SUBROUTINE dbcsr_set_diag_d (matrix, diag) + TYPE(dbcsr_type), INTENT(INOUT) :: matrix + REAL(kind=real_8), DIMENSION(:), INTENT(IN) :: diag + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_set_diag' - CALL timestop(handle) - END SUBROUTINE dbcsr_set_d - - SUBROUTINE dbcsr_filter_d (matrix, eps, method, use_absolute, & - filter_diag) - TYPE(dbcsr_type), INTENT(INOUT) :: matrix - REAL(kind=real_8), INTENT(IN) :: eps - INTEGER, INTENT(IN), OPTIONAL :: method - LOGICAL, INTENT(in), OPTIONAL :: use_absolute, filter_diag - CALL dbcsr_filter_anytype(matrix, dbcsr_scalar(eps), method, & - use_absolute, filter_diag) - END SUBROUTINE dbcsr_filter_d + INTEGER :: icol, irow, row_offset, handle, i + LOGICAL :: tr + TYPE(dbcsr_iterator) :: iter + REAL(kind=real_8), DIMENSION(:, :), POINTER :: block + + CALL timeset(routineN, handle) + + IF (dbcsr_get_data_type(matrix) /= dbcsr_type_real_8) & + DBCSR_ABORT("Incompatible data types") + + IF (dbcsr_nfullrows_total(matrix) /= SIZE(diag)) & + DBCSR_ABORT("Diagonal has wrong size") - SUBROUTINE dbcsr_set_diag_d (matrix, diag) - TYPE(dbcsr_type), INTENT(INOUT) :: matrix - REAL(kind=real_8), DIMENSION(:), INTENT(IN) :: diag - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_set_diag' - - INTEGER :: icol, irow, row_offset, handle, i - LOGICAL :: tr - TYPE(dbcsr_iterator) :: iter - REAL(kind=real_8), DIMENSION(:, :), POINTER :: block + IF (.NOT. array_equality(matrix%row_blk_offset, matrix%col_blk_offset)) & + DBCSR_ABORT("matrix not quadratic") + + CALL dbcsr_iterator_start(iter, matrix) + DO WHILE (dbcsr_iterator_blocks_left(iter)) + CALL dbcsr_iterator_next_block(iter, irow, icol, block, tr, row_offset=row_offset) + IF (irow /= icol) CYCLE + + IF (sIZE(block, 1) /= sIZE(block, 2)) & + DBCSR_ABORT("Diagonal block non-squared") - CALL timeset(routineN, handle) - - IF (dbcsr_get_data_type(matrix) /= dbcsr_type_real_8) & - DBCSR_ABORT("Incompatible data types") - - IF (dbcsr_nfullrows_total(matrix) /= SIZE(diag)) & - DBCSR_ABORT("Diagonal has wrong size") - - IF (.NOT. array_equality(matrix%row_blk_offset, matrix%col_blk_offset)) & - DBCSR_ABORT("matrix not quadratic") - - CALL dbcsr_iterator_start(iter, matrix) - DO WHILE (dbcsr_iterator_blocks_left(iter)) - CALL dbcsr_iterator_next_block(iter, irow, icol, block, tr, row_offset=row_offset) - IF (irow /= icol) CYCLE - - IF (sIZE(block, 1) /= sIZE(block, 2)) & - DBCSR_ABORT("Diagonal block non-squared") - - DO i = 1, sIZE(block, 1) - block(i, i) = diag(row_offset + i - 1) - END DO - END DO - CALL dbcsr_iterator_stop(iter) + DO i = 1, sIZE(block, 1) + block(i, i) = diag(row_offset + i - 1) + END DO + END DO + CALL dbcsr_iterator_stop(iter) + + CALL timestop(handle) + END SUBROUTINE dbcsr_set_diag_d + + SUBROUTINE dbcsr_get_diag_d (matrix, diag) + TYPE(dbcsr_type), INTENT(IN) :: matrix + REAL(kind=real_8), DIMENSION(:), INTENT(OUT) :: diag + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_get_diag' + + INTEGER :: icol, irow, row_offset, handle, i + LOGICAL :: tr + TYPE(dbcsr_iterator) :: iter + REAL(kind=real_8), DIMENSION(:, :), POINTER :: block + + CALL timeset(routineN, handle) + + IF (dbcsr_get_data_type(matrix) /= dbcsr_type_real_8) & + DBCSR_ABORT("Incompatible data types") - CALL timestop(handle) - END SUBROUTINE dbcsr_set_diag_d + IF (dbcsr_nfullrows_total(matrix) /= SIZE(diag)) & + DBCSR_ABORT("Diagonal has wrong size") - SUBROUTINE dbcsr_get_diag_d (matrix, diag) - TYPE(dbcsr_type), INTENT(IN) :: matrix - REAL(kind=real_8), DIMENSION(:), INTENT(OUT) :: diag - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_get_diag' - - INTEGER :: icol, irow, row_offset, handle, i - LOGICAL :: tr - TYPE(dbcsr_iterator) :: iter - REAL(kind=real_8), DIMENSION(:, :), POINTER :: block - - CALL timeset(routineN, handle) + IF (.NOT. array_equality(matrix%row_blk_offset, matrix%col_blk_offset)) & + DBCSR_ABORT("matrix not quadratic") + + diag(:) = 0.0_real_8 + + CALL dbcsr_iterator_start(iter, matrix) + DO WHILE (dbcsr_iterator_blocks_left(iter)) + CALL dbcsr_iterator_next_block(iter, irow, icol, block, tr, row_offset=row_offset) + IF (irow /= icol) CYCLE + + IF (sIZE(block, 1) /= sIZE(block, 2)) & + DBCSR_ABORT("Diagonal block non-squared") - IF (dbcsr_get_data_type(matrix) /= dbcsr_type_real_8) & - DBCSR_ABORT("Incompatible data types") - - IF (dbcsr_nfullrows_total(matrix) /= SIZE(diag)) & - DBCSR_ABORT("Diagonal has wrong size") + DO i = 1, sIZE(block, 1) + diag(row_offset + i - 1) = block(i, i) + END DO + END DO + CALL dbcsr_iterator_stop(iter) - IF (.NOT. array_equality(matrix%row_blk_offset, matrix%col_blk_offset)) & - DBCSR_ABORT("matrix not quadratic") + CALL timestop(handle) + END SUBROUTINE dbcsr_get_diag_d - diag(:) = 0.0_real_8 - - CALL dbcsr_iterator_start(iter, matrix) - DO WHILE (dbcsr_iterator_blocks_left(iter)) - CALL dbcsr_iterator_next_block(iter, irow, icol, block, tr, row_offset=row_offset) - IF (irow /= icol) CYCLE - - IF (sIZE(block, 1) /= sIZE(block, 2)) & - DBCSR_ABORT("Diagonal block non-squared") + SUBROUTINE dbcsr_add_on_diag_d (matrix, alpha) + !! add a constant to the diagonal of a matrix + + TYPE(dbcsr_type), INTENT(INOUT) :: matrix + !! DBCSR matrix + REAL(kind=real_8), INTENT(IN) :: alpha + !! scalar + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_add_on_diag' - DO i = 1, sIZE(block, 1) - diag(row_offset + i - 1) = block(i, i) - END DO - END DO - CALL dbcsr_iterator_stop(iter) + INTEGER :: handle, mynode, node, irow, i, row_size + LOGICAL :: found, tr + REAL(kind=real_8), DIMENSION(:, :), POINTER :: block + + CALL timeset(routineN, handle) - CALL timestop(handle) - END SUBROUTINE dbcsr_get_diag_d + IF (dbcsr_get_data_type(matrix) /= dbcsr_type_real_8) & + DBCSR_ABORT("Incompatible data types") - SUBROUTINE dbcsr_add_on_diag_d (matrix, alpha) - !! add a constant to the diagonal of a matrix + IF (.NOT. array_equality(matrix%row_blk_offset, matrix%col_blk_offset)) & + DBCSR_ABORT("matrix not quadratic") - TYPE(dbcsr_type), INTENT(INOUT) :: matrix - !! DBCSR matrix - REAL(kind=real_8), INTENT(IN) :: alpha - !! scalar - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_add_on_diag' - - INTEGER :: handle, mynode, node, irow, i, row_size - LOGICAL :: found, tr - REAL(kind=real_8), DIMENSION(:, :), POINTER :: block - - CALL timeset(routineN, handle) - - IF (dbcsr_get_data_type(matrix) /= dbcsr_type_real_8) & - DBCSR_ABORT("Incompatible data types") - - IF (.NOT. array_equality(matrix%row_blk_offset, matrix%col_blk_offset)) & - DBCSR_ABORT("matrix not quadratic") - - mynode = dbcsr_mp_mynode(dbcsr_distribution_mp(dbcsr_distribution(matrix))) - - CALL dbcsr_work_create(matrix, work_mutable=.TRUE.) - - DO irow = 1, dbcsr_nblkrows_total(matrix) - CALL dbcsr_get_stored_coordinates(matrix, irow, irow, node) - IF (node /= mynode) CYCLE - - CALL dbcsr_get_block_p(matrix, irow, irow, block, tr, found, row_size=row_size) - IF (.NOT. found) THEN - ALLOCATE (block(row_size, row_size)) - block(:, :) = 0.0_real_8 - END IF - - DO i = 1, row_size - block(i, i) = block(i, i) + alpha - END DO - - IF (.NOT. found) THEN - CALL dbcsr_put_block(matrix, irow, irow, block) - DEALLOCATE (block) - END IF - END DO - - CALL dbcsr_finalize(matrix) - CALL timestop(handle) - END SUBROUTINE dbcsr_add_on_diag_d - - SUBROUTINE dbcsr_update_contiguous_blocks_d (matrix_a, matrix_b, first_lb_a, first_lb_b, nze, & - do_scale, my_beta_scalar, found, iw) - !! Low level function to sum contiguous chunks of blocks of the matrices (matrix_a = matrix_a + beta*matrix_b) - - TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a - !! DBCSR matrix - TYPE(dbcsr_type), INTENT(IN) :: matrix_b - !! DBCSR matrix - TYPE(dbcsr_scalar_type), INTENT(IN) :: my_beta_scalar - INTEGER, INTENT(IN) :: first_lb_a, first_lb_b, nze, iw - LOGICAL, INTENT(IN) :: found, do_scale - - INTEGER :: ub_a, ub_b - - ub_a = first_lb_a + nze - 1 - ub_b = first_lb_b + nze - 1 - - IF (found) THEN - IF (do_scale) THEN - CALL daxpy(nze, my_beta_scalar%r_dp, & - matrix_b%data_area%d%r_dp (first_lb_b:ub_b), 1, & - matrix_a%data_area%d%r_dp (first_lb_a:ub_a), 1) - ELSE - matrix_a%data_area%d%r_dp (first_lb_a:ub_a) = & - matrix_a%data_area%d%r_dp (first_lb_a:ub_a) + & - matrix_b%data_area%d%r_dp (first_lb_b:ub_b) - END IF - ELSE - IF (do_scale) THEN - matrix_a%wms(iw)%data_area%d%r_dp (first_lb_a:ub_a) = & - my_beta_scalar%r_dp* & - matrix_b%data_area%d%r_dp (first_lb_b:ub_b) - ELSE - matrix_a%wms(iw)%data_area%d%r_dp (first_lb_a:ub_a) = & - matrix_b%data_area%d%r_dp (first_lb_b:ub_b) - END IF - END IF - END SUBROUTINE dbcsr_update_contiguous_blocks_d - - SUBROUTINE dbcsr_add_anytype_d (matrix_a, matrix_b, iter, iw, do_scale, & - my_beta_scalar, my_flop) - !! Low level function to sum two matrices (matrix_a = matrix_a + beta*matrix_b - - TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a - !! DBCSR matrix - TYPE(dbcsr_type), INTENT(IN) :: matrix_b - !! DBCSR matrix - TYPE(dbcsr_iterator), INTENT(INOUT) :: iter - INTEGER, INTENT(IN) :: iw - LOGICAL, INTENT(IN) :: do_scale - TYPE(dbcsr_scalar_type), INTENT(IN) :: my_beta_scalar - INTEGER(KIND=int_8), INTENT(INOUT) :: my_flop - - INTEGER :: row, col, row_size, col_size, & - nze, tot_nze, blk, & - lb_a, first_lb_a, lb_a_val, & - lb_b, first_lb_b - INTEGER, DIMENSION(2) :: lb_row_blk - LOGICAL :: was_found, found, tr - - ! some start values - lb_row_blk(:) = 0 - first_lb_a = matrix_a%wms(iw)%datasize + 1 - first_lb_b = 0 - tot_nze = 0 - ! - DO WHILE (dbcsr_iterator_blocks_left(iter)) - CALL dbcsr_iterator_next_block(iter, row, col, blk, tr, lb_b, row_size, col_size) - nze = row_size*col_size - IF (nze .LE. 0) CYCLE - IF (lb_row_blk(1) .LT. row) THEN - lb_row_blk(1) = row - lb_row_blk(2) = matrix_a%row_p(row) + 1 - END IF - ! get b-block index - lb_b = ABS(lb_b) - CALL dbcsr_find_column(col, lb_row_blk(2), matrix_a%row_p(row + 1), matrix_a%col_i, matrix_a%blk_p, blk, found) - lb_row_blk(2) = blk + 1 - ! get index of a-block lb_a whether found (from matrix_a) or not (from workspace array) - IF (found) THEN - my_flop = my_flop + nze*2 - lb_a = ABS(matrix_a%blk_p(blk)) - ELSE - lb_a = matrix_a%wms(iw)%datasize + 1 - lb_a_val = lb_a - IF (tr) lb_a_val = -lb_a - matrix_a%wms(iw)%lastblk = matrix_a%wms(iw)%lastblk + 1 - matrix_a%wms(iw)%row_i(matrix_a%wms(iw)%lastblk) = row - matrix_a%wms(iw)%col_i(matrix_a%wms(iw)%lastblk) = col - matrix_a%wms(iw)%blk_p(matrix_a%wms(iw)%lastblk) = lb_a_val - matrix_a%wms(iw)%datasize = matrix_a%wms(iw)%datasize + nze - END IF - ! at the first iteration we skip this and go directly to initialization after - IF (first_lb_b .NE. 0) THEN - ! if found status is the same as before then probably we are in contiguous blocks - IF ((found .EQV. was_found) .AND. & - (first_lb_b + tot_nze .EQ. lb_b) .AND. & - (first_lb_a + tot_nze) .EQ. lb_a) THEN - tot_nze = tot_nze + nze - CYCLE - END IF - ! save block chunk - CALL dbcsr_update_contiguous_blocks_d (matrix_a, matrix_b, first_lb_a, first_lb_b, tot_nze, & - do_scale, my_beta_scalar, was_found, iw) - END IF - ! - first_lb_a = lb_a - first_lb_b = lb_b - tot_nze = nze - was_found = found - END DO - - ! save the last block or chunk of blocks - IF (first_lb_b .NE. 0) THEN - call dbcsr_update_contiguous_blocks_d (matrix_a, matrix_b, first_lb_a, first_lb_b, tot_nze, & - do_scale, my_beta_scalar, was_found, iw) - END IF - - END SUBROUTINE dbcsr_add_anytype_d -# 2639 "/__w/dbcsr/dbcsr/src/ops/dbcsr_operations.F" - SUBROUTINE dbcsr_trace_s (matrix_a, trace) - !! traces a DBCSR matrix + mynode = dbcsr_mp_mynode(dbcsr_distribution_mp(dbcsr_distribution(matrix))) + + CALL dbcsr_work_create(matrix, work_mutable=.TRUE.) + + DO irow = 1, dbcsr_nblkrows_total(matrix) + CALL dbcsr_get_stored_coordinates(matrix, irow, irow, node) + IF (node /= mynode) CYCLE + + CALL dbcsr_get_block_p(matrix, irow, irow, block, tr, found, row_size=row_size) + IF (.NOT. found) THEN + ALLOCATE (block(row_size, row_size)) + block(:, :) = 0.0_real_8 + END IF + + DO i = 1, row_size + block(i, i) = block(i, i) + alpha + END DO + + IF (.NOT. found) THEN + CALL dbcsr_put_block(matrix, irow, irow, block) + DEALLOCATE (block) + END IF + END DO + + CALL dbcsr_finalize(matrix) + CALL timestop(handle) + END SUBROUTINE dbcsr_add_on_diag_d + + SUBROUTINE dbcsr_update_contiguous_blocks_d (matrix_a, matrix_b, first_lb_a, first_lb_b, nze, & + do_scale, my_beta_scalar, found, iw) + !! Low level function to sum contiguous chunks of blocks of the matrices (matrix_a = matrix_a + beta*matrix_b) + + TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a + !! DBCSR matrix + TYPE(dbcsr_type), INTENT(IN) :: matrix_b + !! DBCSR matrix + TYPE(dbcsr_scalar_type), INTENT(IN) :: my_beta_scalar + INTEGER, INTENT(IN) :: first_lb_a, first_lb_b, nze, iw + LOGICAL, INTENT(IN) :: found, do_scale + + INTEGER :: ub_a, ub_b + + ub_a = first_lb_a + nze - 1 + ub_b = first_lb_b + nze - 1 + + IF (found) THEN + IF (do_scale) THEN + CALL daxpy(nze, my_beta_scalar%r_dp, & + matrix_b%data_area%d%r_dp (first_lb_b:ub_b), 1, & + matrix_a%data_area%d%r_dp (first_lb_a:ub_a), 1) + ELSE + matrix_a%data_area%d%r_dp (first_lb_a:ub_a) = & + matrix_a%data_area%d%r_dp (first_lb_a:ub_a) + & + matrix_b%data_area%d%r_dp (first_lb_b:ub_b) + END IF + ELSE + IF (do_scale) THEN + matrix_a%wms(iw)%data_area%d%r_dp (first_lb_a:ub_a) = & + my_beta_scalar%r_dp* & + matrix_b%data_area%d%r_dp (first_lb_b:ub_b) + ELSE + matrix_a%wms(iw)%data_area%d%r_dp (first_lb_a:ub_a) = & + matrix_b%data_area%d%r_dp (first_lb_b:ub_b) + END IF + END IF + END SUBROUTINE dbcsr_update_contiguous_blocks_d + + SUBROUTINE dbcsr_add_anytype_d (matrix_a, matrix_b, iter, iw, do_scale, & + my_beta_scalar, my_flop) + !! Low level function to sum two matrices (matrix_a = matrix_a + beta*matrix_b + + TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a + !! DBCSR matrix + TYPE(dbcsr_type), INTENT(IN) :: matrix_b + !! DBCSR matrix + TYPE(dbcsr_iterator), INTENT(INOUT) :: iter + INTEGER, INTENT(IN) :: iw + LOGICAL, INTENT(IN) :: do_scale + TYPE(dbcsr_scalar_type), INTENT(IN) :: my_beta_scalar + INTEGER(KIND=int_8), INTENT(INOUT) :: my_flop + + INTEGER :: row, col, row_size, col_size, & + nze, tot_nze, blk, & + lb_a, first_lb_a, lb_a_val, & + lb_b, first_lb_b + INTEGER, DIMENSION(2) :: lb_row_blk + LOGICAL :: was_found, found, tr + + ! some start values + lb_row_blk(:) = 0 + first_lb_a = matrix_a%wms(iw)%datasize + 1 + first_lb_b = 0 + tot_nze = 0 + ! + DO WHILE (dbcsr_iterator_blocks_left(iter)) + CALL dbcsr_iterator_next_block(iter, row, col, blk, tr, lb_b, row_size, col_size) + nze = row_size*col_size + IF (nze .LE. 0) CYCLE + IF (lb_row_blk(1) .LT. row) THEN + lb_row_blk(1) = row + lb_row_blk(2) = matrix_a%row_p(row) + 1 + END IF + ! get b-block index + lb_b = ABS(lb_b) + CALL dbcsr_find_column(col, lb_row_blk(2), matrix_a%row_p(row + 1), matrix_a%col_i, matrix_a%blk_p, blk, found) + lb_row_blk(2) = blk + 1 + ! get index of a-block lb_a whether found (from matrix_a) or not (from workspace array) + IF (found) THEN + my_flop = my_flop + nze*2 + lb_a = ABS(matrix_a%blk_p(blk)) + ELSE + lb_a = matrix_a%wms(iw)%datasize + 1 + lb_a_val = lb_a + IF (tr) lb_a_val = -lb_a + matrix_a%wms(iw)%lastblk = matrix_a%wms(iw)%lastblk + 1 + matrix_a%wms(iw)%row_i(matrix_a%wms(iw)%lastblk) = row + matrix_a%wms(iw)%col_i(matrix_a%wms(iw)%lastblk) = col + matrix_a%wms(iw)%blk_p(matrix_a%wms(iw)%lastblk) = lb_a_val + matrix_a%wms(iw)%datasize = matrix_a%wms(iw)%datasize + nze + END IF + ! at the first iteration we skip this and go directly to initialization after + IF (first_lb_b .NE. 0) THEN + ! if found status is the same as before then probably we are in contiguous blocks + IF ((found .EQV. was_found) .AND. & + (first_lb_b + tot_nze .EQ. lb_b) .AND. & + (first_lb_a + tot_nze) .EQ. lb_a) THEN + tot_nze = tot_nze + nze + CYCLE + END IF + ! save block chunk + CALL dbcsr_update_contiguous_blocks_d (matrix_a, matrix_b, first_lb_a, first_lb_b, tot_nze, & + do_scale, my_beta_scalar, was_found, iw) + END IF + ! + first_lb_a = lb_a + first_lb_b = lb_b + tot_nze = nze + was_found = found + END DO + + ! save the last block or chunk of blocks + IF (first_lb_b .NE. 0) THEN + call dbcsr_update_contiguous_blocks_d (matrix_a, matrix_b, first_lb_a, first_lb_b, tot_nze, & + do_scale, my_beta_scalar, was_found, iw) + END IF + + END SUBROUTINE dbcsr_add_anytype_d +# 2620 "/__w/dbcsr/dbcsr/src/ops/dbcsr_operations.F" + SUBROUTINE dbcsr_trace_s (matrix_a, trace) + !! traces a DBCSR matrix + + TYPE(dbcsr_type), INTENT(IN) :: matrix_a + !! DBCSR matrix + REAL(kind=real_4), INTENT(INOUT) :: trace + !! the trace of the matrix + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_trace_s' + + INTEGER :: a_blk, a_col, a_col_size, & + a_nze, a_row, a_row_size, i, & + mynode, error_handle + INTEGER, DIMENSION(:), POINTER :: col_blk_size, row_blk_size, & + row_dist, col_dist + REAL(kind=real_4), DIMENSION(:), POINTER :: a_data, data_p + INTEGER, DIMENSION(:, :), POINTER :: pgrid + TYPE(dbcsr_distribution_obj) :: dist + +! --------------------------------------------------------------------------- + CALL timeset(routineN, error_handle) - TYPE(dbcsr_type), INTENT(IN) :: matrix_a - !! DBCSR matrix - REAL(kind=real_4), INTENT(INOUT) :: trace - !! the trace of the matrix - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_trace_s' - - INTEGER :: a_blk, a_col, a_col_size, & - a_nze, a_row, a_row_size, i, & - mynode, error_handle - INTEGER, DIMENSION(:), POINTER :: col_blk_size, row_blk_size, & - row_dist, col_dist - REAL(kind=real_4), DIMENSION(:), POINTER :: a_data, data_p - INTEGER, DIMENSION(:, :), POINTER :: pgrid - TYPE(dbcsr_distribution_obj) :: dist - -! --------------------------------------------------------------------------- - CALL timeset(routineN, error_handle) - - row_blk_size => array_data(matrix_a%row_blk_size) - col_blk_size => array_data(matrix_a%col_blk_size) - IF (dbcsr_get_data_type(matrix_a) /= dbcsr_type_real_4) & - DBCSR_ABORT("Incompatible data types") - CALL dbcsr_get_data(matrix_a%data_area, data_p) - dist = dbcsr_distribution(matrix_a) - mynode = dbcsr_mp_mynode(dbcsr_distribution_mp(dist)) - pgrid => dbcsr_mp_pgrid(dbcsr_distribution_mp(dist)) - row_dist => dbcsr_distribution_row_dist(dist) - col_dist => dbcsr_distribution_col_dist(dist) - ! - ! let's go - trace = REAL(0.0, real_4) - DO a_row = 1, matrix_a%nblkrows_total - a_row_size = row_blk_size(a_row) - DO a_blk = matrix_a%row_p(a_row) + 1, matrix_a%row_p(a_row + 1) - IF (a_blk .EQ. 0) CYCLE - a_col = matrix_a%col_i(a_blk) - IF (a_col .ne. a_row) CYCLE - ! We must skip non-local blocks in a replicated matrix. - IF (matrix_a%replication_type .NE. dbcsr_repl_full) THEN - IF (mynode .NE. checker_square_proc(a_row, a_col, pgrid, row_dist, col_dist)) & - CYCLE - END IF - a_col_size = col_blk_size(a_col) - IF (a_row_size .NE. a_col_size) & - DBCSR_ABORT("is that a square matrix?") - a_nze = a_row_size**2 - a_data => pointer_view(data_p, ABS(matrix_a%blk_p(a_blk)), & - ABS(matrix_a%blk_p(a_blk)) + a_nze - 1) - !data_a => matrix_a%data(ABS(matrix_a%blk_p(a_blk)):ABS(matrix_a%blk_p(a_blk))+a_nze-1) - ! - ! let's trace the block - DO i = 1, a_row_size - trace = trace + a_data((i - 1)*a_row_size + i) - END DO - END DO ! a_col - END DO ! a_row - ! - ! summe - CALL mp_sum(trace, dbcsr_mp_group(dbcsr_distribution_mp(matrix_a%dist))) - - CALL timestop(error_handle) - END SUBROUTINE dbcsr_trace_s + row_blk_size => array_data(matrix_a%row_blk_size) + col_blk_size => array_data(matrix_a%col_blk_size) + IF (dbcsr_get_data_type(matrix_a) /= dbcsr_type_real_4) & + DBCSR_ABORT("Incompatible data types") + CALL dbcsr_get_data(matrix_a%data_area, data_p) + dist = dbcsr_distribution(matrix_a) + mynode = dbcsr_mp_mynode(dbcsr_distribution_mp(dist)) + pgrid => dbcsr_mp_pgrid(dbcsr_distribution_mp(dist)) + row_dist => dbcsr_distribution_row_dist(dist) + col_dist => dbcsr_distribution_col_dist(dist) + ! + ! let's go + trace = REAL(0.0, real_4) + DO a_row = 1, matrix_a%nblkrows_total + a_row_size = row_blk_size(a_row) + DO a_blk = matrix_a%row_p(a_row) + 1, matrix_a%row_p(a_row + 1) + IF (a_blk .EQ. 0) CYCLE + a_col = matrix_a%col_i(a_blk) + IF (a_col .ne. a_row) CYCLE + ! We must skip non-local blocks in a replicated matrix. + IF (matrix_a%replication_type .NE. dbcsr_repl_full) THEN + IF (mynode .NE. checker_square_proc(a_row, a_col, pgrid, row_dist, col_dist)) & + CYCLE + END IF + a_col_size = col_blk_size(a_col) + IF (a_row_size .NE. a_col_size) & + DBCSR_ABORT("is that a square matrix?") + a_nze = a_row_size**2 + a_data => pointer_view(data_p, ABS(matrix_a%blk_p(a_blk)), & + ABS(matrix_a%blk_p(a_blk)) + a_nze - 1) + !data_a => matrix_a%data(ABS(matrix_a%blk_p(a_blk)):ABS(matrix_a%blk_p(a_blk))+a_nze-1) + ! + ! let's trace the block + DO i = 1, a_row_size + trace = trace + a_data((i - 1)*a_row_size + i) + END DO + END DO ! a_col + END DO ! a_row + ! + ! summe + CALL mp_sum(trace, dbcsr_mp_group(dbcsr_distribution_mp(matrix_a%dist))) + + CALL timestop(error_handle) + END SUBROUTINE dbcsr_trace_s + + SUBROUTINE dbcsr_dot_s (matrix_a, matrix_b, trace) + !! Dot product of DBCSR matrices + + TYPE(dbcsr_type), INTENT(IN) :: matrix_a, matrix_b + !! DBCSR matrices + !! DBCSR matrices + REAL(kind=real_4), INTENT(INOUT) :: trace + !! the trace of the product of the matrices + + INTEGER :: a_blk, a_col, a_col_size, a_row_size, b_blk, b_col_size, & + b_frst_blk, b_last_blk, b_row_size, nze, row, a_beg, a_end, b_beg, b_end + CHARACTER :: matrix_a_type, matrix_b_type + INTEGER, DIMENSION(:), POINTER :: a_col_blk_size, & + a_row_blk_size, & + b_col_blk_size, b_row_blk_size + REAL(kind=real_4) :: sym_fac, fac + LOGICAL :: found, matrix_a_symm, matrix_b_symm + REAL(kind=real_4), DIMENSION(:), POINTER :: a_data, b_data - SUBROUTINE dbcsr_dot_s (matrix_a, matrix_b, trace) - !! Dot product of DBCSR matrices - - TYPE(dbcsr_type), INTENT(IN) :: matrix_a, matrix_b - !! DBCSR matrices - !! DBCSR matrices - REAL(kind=real_4), INTENT(INOUT) :: trace - !! the trace of the product of the matrices - - INTEGER :: a_blk, a_col, a_col_size, a_row_size, b_blk, b_col_size, & - b_frst_blk, b_last_blk, b_row_size, nze, row, a_beg, a_end, b_beg, b_end - CHARACTER :: matrix_a_type, matrix_b_type - INTEGER, DIMENSION(:), POINTER :: a_col_blk_size, & - a_row_blk_size, & - b_col_blk_size, b_row_blk_size - REAL(kind=real_4) :: sym_fac, fac - LOGICAL :: found, matrix_a_symm, matrix_b_symm - REAL(kind=real_4), DIMENSION(:), POINTER :: a_data, b_data - -! --------------------------------------------------------------------------- - - IF (matrix_a%replication_type .NE. dbcsr_repl_none & - .OR. matrix_b%replication_type .NE. dbcsr_repl_none) & - DBCSR_ABORT("Trace of product of replicated matrices not yet possible.") - - sym_fac = REAL(1.0, real_4) - matrix_a_type = dbcsr_get_matrix_type(matrix_a) - matrix_b_type = dbcsr_get_matrix_type(matrix_b) - matrix_a_symm = matrix_a_type == dbcsr_type_symmetric .OR. matrix_a_type == dbcsr_type_antisymmetric - matrix_b_symm = matrix_b_type == dbcsr_type_symmetric .OR. matrix_b_type == dbcsr_type_antisymmetric - - IF (matrix_a_symm .AND. matrix_b_symm) sym_fac = REAL(2.0, real_4) - - ! tracing a symmetric with a general matrix is not implemented, as it would require communication of blocks - IF (matrix_a_symm .NEQV. matrix_b_symm) & - DBCSR_ABORT("Tracing general with symmetric matrix NYI") - - a_row_blk_size => array_data(matrix_a%row_blk_size) - a_col_blk_size => array_data(matrix_a%col_blk_size) - b_row_blk_size => array_data(matrix_b%row_blk_size) - b_col_blk_size => array_data(matrix_b%col_blk_size) - - CALL dbcsr_get_data(matrix_a%data_area, a_data) - CALL dbcsr_get_data(matrix_b%data_area, b_data) - - ! let's go - trace = REAL(0.0, real_4) - IF (matrix_a%nblkrows_total .NE. matrix_b%nblkrows_total) & - DBCSR_ABORT("this combination of transpose is NYI") - DO row = 1, matrix_a%nblkrows_total - a_row_size = a_row_blk_size(row) - b_row_size = b_row_blk_size(row) - IF (a_row_size .NE. b_row_size) DBCSR_ABORT("matrices not consistent") - b_blk = matrix_b%row_p(row) + 1 - b_frst_blk = matrix_b%row_p(row) + 1 - b_last_blk = matrix_b%row_p(row + 1) - DO a_blk = matrix_a%row_p(row) + 1, matrix_a%row_p(row + 1) - IF (matrix_a%blk_p(a_blk) .EQ. 0) CYCLE ! Deleted block - a_col = matrix_a%col_i(a_blk) - a_col_size = a_col_blk_size(a_col) - ! - ! find the b_blk we assume here that the columns are ordered ! - CALL dbcsr_find_column(a_col, b_frst_blk, b_last_blk, matrix_b%col_i, & - matrix_b%blk_p, b_blk, found) - IF (found) THEN - b_col_size = b_col_blk_size(a_col) - IF (a_col_size .NE. b_col_size) DBCSR_ABORT("matrices not consistent") - ! - nze = a_row_size*a_col_size - ! - IF (nze .GT. 0) THEN - ! - ! let's trace the blocks - a_beg = ABS(matrix_a%blk_p(a_blk)) - a_end = a_beg + nze - 1 - b_beg = ABS(matrix_b%blk_p(b_blk)) - b_end = b_beg + nze - 1 - fac = REAL(1.0, real_4) - IF (row .NE. a_col) fac = sym_fac - - trace = trace + fac*SUM(a_data(a_beg:a_end)*b_data(b_beg:b_end)) - - END IF - END IF - END DO ! a_col - END DO ! a_row - ! - ! sum - CALL mp_sum(trace, dbcsr_mp_group(dbcsr_distribution_mp(matrix_a%dist))) - - END SUBROUTINE dbcsr_dot_s - - SUBROUTINE dbcsr_scale_s (matrix_a, alpha_scalar, last_column) - !! Interface for matrix scaling by a scalar - TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a - REAL(kind=real_4), INTENT(IN) :: alpha_scalar - INTEGER, INTENT(IN), OPTIONAL :: last_column +! --------------------------------------------------------------------------- + + IF (matrix_a%replication_type .NE. dbcsr_repl_none & + .OR. matrix_b%replication_type .NE. dbcsr_repl_none) & + DBCSR_ABORT("Trace of product of replicated matrices not yet possible.") + + sym_fac = REAL(1.0, real_4) + matrix_a_type = dbcsr_get_matrix_type(matrix_a) + matrix_b_type = dbcsr_get_matrix_type(matrix_b) + matrix_a_symm = matrix_a_type == dbcsr_type_symmetric .OR. matrix_a_type == dbcsr_type_antisymmetric + matrix_b_symm = matrix_b_type == dbcsr_type_symmetric .OR. matrix_b_type == dbcsr_type_antisymmetric + + IF (matrix_a_symm .AND. matrix_b_symm) sym_fac = REAL(2.0, real_4) + + ! tracing a symmetric with a general matrix is not implemented, as it would require communication of blocks + IF (matrix_a_symm .NEQV. matrix_b_symm) & + DBCSR_ABORT("Tracing general with symmetric matrix NYI") + + a_row_blk_size => array_data(matrix_a%row_blk_size) + a_col_blk_size => array_data(matrix_a%col_blk_size) + b_row_blk_size => array_data(matrix_b%row_blk_size) + b_col_blk_size => array_data(matrix_b%col_blk_size) + + CALL dbcsr_get_data(matrix_a%data_area, a_data) + CALL dbcsr_get_data(matrix_b%data_area, b_data) + + ! let's go + trace = REAL(0.0, real_4) + IF (matrix_a%nblkrows_total .NE. matrix_b%nblkrows_total) & + DBCSR_ABORT("this combination of transpose is NYI") + DO row = 1, matrix_a%nblkrows_total + a_row_size = a_row_blk_size(row) + b_row_size = b_row_blk_size(row) + IF (a_row_size .NE. b_row_size) DBCSR_ABORT("matrices not consistent") + b_blk = matrix_b%row_p(row) + 1 + b_frst_blk = matrix_b%row_p(row) + 1 + b_last_blk = matrix_b%row_p(row + 1) + DO a_blk = matrix_a%row_p(row) + 1, matrix_a%row_p(row + 1) + IF (matrix_a%blk_p(a_blk) .EQ. 0) CYCLE ! Deleted block + a_col = matrix_a%col_i(a_blk) + a_col_size = a_col_blk_size(a_col) + ! + ! find the b_blk we assume here that the columns are ordered ! + CALL dbcsr_find_column(a_col, b_frst_blk, b_last_blk, matrix_b%col_i, & + matrix_b%blk_p, b_blk, found) + IF (found) THEN + b_col_size = b_col_blk_size(a_col) + IF (a_col_size .NE. b_col_size) DBCSR_ABORT("matrices not consistent") + ! + nze = a_row_size*a_col_size + ! + IF (nze .GT. 0) THEN + ! + ! let's trace the blocks + a_beg = ABS(matrix_a%blk_p(a_blk)) + a_end = a_beg + nze - 1 + b_beg = ABS(matrix_b%blk_p(b_blk)) + b_end = b_beg + nze - 1 + fac = REAL(1.0, real_4) + IF (row .NE. a_col) fac = sym_fac + + trace = trace + fac*SUM(a_data(a_beg:a_end)*b_data(b_beg:b_end)) + + END IF + END IF + END DO ! a_col + END DO ! a_row + ! + ! sum + CALL mp_sum(trace, dbcsr_mp_group(dbcsr_distribution_mp(matrix_a%dist))) + + END SUBROUTINE dbcsr_dot_s + + SUBROUTINE dbcsr_scale_s (matrix_a, alpha_scalar, last_column) + !! Interface for matrix scaling by a scalar + TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a + REAL(kind=real_4), INTENT(IN) :: alpha_scalar + INTEGER, INTENT(IN), OPTIONAL :: last_column + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_scale_s' + + INTEGER :: error_handler + TYPE(dbcsr_scalar_type) :: sc + + sc = dbcsr_scalar(alpha_scalar) + CALL dbcsr_scalar_fill_all(sc) + sc%data_type = dbcsr_get_data_type(matrix_a) + CALL timeset(routineN, error_handler) + IF (PRESENT(last_column)) THEN + CALL dbcsr_scale_anytype(matrix_a, & + alpha_scalar=sc, & + limits=(/0, 0, 0, last_column/)) + ELSE + CALL dbcsr_scale_anytype(matrix_a, alpha_scalar=sc) + END IF + CALL timestop(error_handler) + END SUBROUTINE dbcsr_scale_s - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_scale_s' - - INTEGER :: error_handler - TYPE(dbcsr_scalar_type) :: sc - - sc = dbcsr_scalar(alpha_scalar) - CALL dbcsr_scalar_fill_all(sc) - sc%data_type = dbcsr_get_data_type(matrix_a) - CALL timeset(routineN, error_handler) - IF (PRESENT(last_column)) THEN - CALL dbcsr_scale_anytype(matrix_a, & - alpha_scalar=sc, & - limits=(/0, 0, 0, last_column/)) - ELSE - CALL dbcsr_scale_anytype(matrix_a, alpha_scalar=sc) - END IF - CALL timestop(error_handler) - END SUBROUTINE dbcsr_scale_s - - SUBROUTINE dbcsr_scale_by_vector_s (matrix_a, alpha, side) - !! Interface for matrix scaling by a vector - TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a - REAL(kind=real_4), DIMENSION(:), INTENT(IN), TARGET, CONTIGUOUS :: alpha - CHARACTER(LEN=*), INTENT(IN) :: side - REAL(kind=real_4), DIMENSION(:), POINTER, CONTIGUOUS :: tmp_p - TYPE(dbcsr_data_obj) :: enc_alpha_vec - - CALL dbcsr_data_init(enc_alpha_vec) - CALL dbcsr_data_new(enc_alpha_vec, dbcsr_type_real_4) - tmp_p => alpha - CALL dbcsr_data_set_pointer(enc_alpha_vec, tmp_p) - CALL dbcsr_scale_by_vector_anytype(matrix_a, enc_alpha_vec, side) - CALL dbcsr_data_clear_pointer(enc_alpha_vec) - CALL dbcsr_data_release(enc_alpha_vec) - END SUBROUTINE dbcsr_scale_by_vector_s - - SUBROUTINE dbcsr_set_s (matrix, alpha) - !! Interface for dbcsr_set - TYPE(dbcsr_type), INTENT(INOUT) :: matrix - REAL(kind=real_4), INTENT(IN) :: alpha - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_set' - - INTEGER :: col, handle, row - TYPE(dbcsr_iterator) :: iter - REAL(kind=real_4), DIMENSION(:, :), POINTER :: block - LOGICAL :: tr - - CALL timeset(routineN, handle) - - IF (alpha == 0.0_real_4) THEN - CALL dbcsr_zero(matrix) - ELSE - IF (dbcsr_get_data_type(matrix) /= dbcsr_type_real_4) & - DBCSR_ABORT("Incompatible data types") - - !TODO: could be speedup by direct assignment to data_area, similar to dbcsr_zero() - CALL dbcsr_iterator_start(iter, matrix) - DO WHILE (dbcsr_iterator_blocks_left(iter)) - CALL dbcsr_iterator_next_block(iter, row, col, block, tr) - block(:, :) = alpha - END DO - CALL dbcsr_iterator_stop(iter) - END IF + SUBROUTINE dbcsr_scale_by_vector_s (matrix_a, alpha, side) + !! Interface for matrix scaling by a vector + TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a + REAL(kind=real_4), DIMENSION(:), INTENT(IN), TARGET, CONTIGUOUS :: alpha + CHARACTER(LEN=*), INTENT(IN) :: side + REAL(kind=real_4), DIMENSION(:), POINTER, CONTIGUOUS :: tmp_p + TYPE(dbcsr_data_obj) :: enc_alpha_vec + + CALL dbcsr_data_init(enc_alpha_vec) + CALL dbcsr_data_new(enc_alpha_vec, dbcsr_type_real_4) + tmp_p => alpha + CALL dbcsr_data_set_pointer(enc_alpha_vec, tmp_p) + CALL dbcsr_scale_by_vector_anytype(matrix_a, enc_alpha_vec, side) + CALL dbcsr_data_clear_pointer(enc_alpha_vec) + CALL dbcsr_data_release(enc_alpha_vec) + END SUBROUTINE dbcsr_scale_by_vector_s + + SUBROUTINE dbcsr_set_s (matrix, alpha) + !! Interface for dbcsr_set + TYPE(dbcsr_type), INTENT(INOUT) :: matrix + REAL(kind=real_4), INTENT(IN) :: alpha + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_set' + + INTEGER :: col, handle, row + TYPE(dbcsr_iterator) :: iter + REAL(kind=real_4), DIMENSION(:, :), POINTER :: block + LOGICAL :: tr + + CALL timeset(routineN, handle) + + IF (alpha == 0.0_real_4) THEN + CALL dbcsr_zero(matrix) + ELSE + IF (dbcsr_get_data_type(matrix) /= dbcsr_type_real_4) & + DBCSR_ABORT("Incompatible data types") + + !TODO: could be speedup by direct assignment to data_area, similar to dbcsr_zero() + CALL dbcsr_iterator_start(iter, matrix) + DO WHILE (dbcsr_iterator_blocks_left(iter)) + CALL dbcsr_iterator_next_block(iter, row, col, block, tr) + block(:, :) = alpha + END DO + CALL dbcsr_iterator_stop(iter) + END IF + + CALL timestop(handle) + END SUBROUTINE dbcsr_set_s + + SUBROUTINE dbcsr_filter_s (matrix, eps, method, use_absolute, & + filter_diag) + TYPE(dbcsr_type), INTENT(INOUT) :: matrix + REAL(kind=real_4), INTENT(IN) :: eps + INTEGER, INTENT(IN), OPTIONAL :: method + LOGICAL, INTENT(in), OPTIONAL :: use_absolute, filter_diag + CALL dbcsr_filter_anytype(matrix, dbcsr_scalar(eps), method, & + use_absolute, filter_diag) + END SUBROUTINE dbcsr_filter_s + + SUBROUTINE dbcsr_set_diag_s (matrix, diag) + TYPE(dbcsr_type), INTENT(INOUT) :: matrix + REAL(kind=real_4), DIMENSION(:), INTENT(IN) :: diag + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_set_diag' - CALL timestop(handle) - END SUBROUTINE dbcsr_set_s - - SUBROUTINE dbcsr_filter_s (matrix, eps, method, use_absolute, & - filter_diag) - TYPE(dbcsr_type), INTENT(INOUT) :: matrix - REAL(kind=real_4), INTENT(IN) :: eps - INTEGER, INTENT(IN), OPTIONAL :: method - LOGICAL, INTENT(in), OPTIONAL :: use_absolute, filter_diag - CALL dbcsr_filter_anytype(matrix, dbcsr_scalar(eps), method, & - use_absolute, filter_diag) - END SUBROUTINE dbcsr_filter_s + INTEGER :: icol, irow, row_offset, handle, i + LOGICAL :: tr + TYPE(dbcsr_iterator) :: iter + REAL(kind=real_4), DIMENSION(:, :), POINTER :: block + + CALL timeset(routineN, handle) + + IF (dbcsr_get_data_type(matrix) /= dbcsr_type_real_4) & + DBCSR_ABORT("Incompatible data types") + + IF (dbcsr_nfullrows_total(matrix) /= SIZE(diag)) & + DBCSR_ABORT("Diagonal has wrong size") - SUBROUTINE dbcsr_set_diag_s (matrix, diag) - TYPE(dbcsr_type), INTENT(INOUT) :: matrix - REAL(kind=real_4), DIMENSION(:), INTENT(IN) :: diag - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_set_diag' - - INTEGER :: icol, irow, row_offset, handle, i - LOGICAL :: tr - TYPE(dbcsr_iterator) :: iter - REAL(kind=real_4), DIMENSION(:, :), POINTER :: block + IF (.NOT. array_equality(matrix%row_blk_offset, matrix%col_blk_offset)) & + DBCSR_ABORT("matrix not quadratic") + + CALL dbcsr_iterator_start(iter, matrix) + DO WHILE (dbcsr_iterator_blocks_left(iter)) + CALL dbcsr_iterator_next_block(iter, irow, icol, block, tr, row_offset=row_offset) + IF (irow /= icol) CYCLE + + IF (sIZE(block, 1) /= sIZE(block, 2)) & + DBCSR_ABORT("Diagonal block non-squared") - CALL timeset(routineN, handle) - - IF (dbcsr_get_data_type(matrix) /= dbcsr_type_real_4) & - DBCSR_ABORT("Incompatible data types") - - IF (dbcsr_nfullrows_total(matrix) /= SIZE(diag)) & - DBCSR_ABORT("Diagonal has wrong size") - - IF (.NOT. array_equality(matrix%row_blk_offset, matrix%col_blk_offset)) & - DBCSR_ABORT("matrix not quadratic") - - CALL dbcsr_iterator_start(iter, matrix) - DO WHILE (dbcsr_iterator_blocks_left(iter)) - CALL dbcsr_iterator_next_block(iter, irow, icol, block, tr, row_offset=row_offset) - IF (irow /= icol) CYCLE - - IF (sIZE(block, 1) /= sIZE(block, 2)) & - DBCSR_ABORT("Diagonal block non-squared") - - DO i = 1, sIZE(block, 1) - block(i, i) = diag(row_offset + i - 1) - END DO - END DO - CALL dbcsr_iterator_stop(iter) + DO i = 1, sIZE(block, 1) + block(i, i) = diag(row_offset + i - 1) + END DO + END DO + CALL dbcsr_iterator_stop(iter) + + CALL timestop(handle) + END SUBROUTINE dbcsr_set_diag_s + + SUBROUTINE dbcsr_get_diag_s (matrix, diag) + TYPE(dbcsr_type), INTENT(IN) :: matrix + REAL(kind=real_4), DIMENSION(:), INTENT(OUT) :: diag + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_get_diag' + + INTEGER :: icol, irow, row_offset, handle, i + LOGICAL :: tr + TYPE(dbcsr_iterator) :: iter + REAL(kind=real_4), DIMENSION(:, :), POINTER :: block + + CALL timeset(routineN, handle) + + IF (dbcsr_get_data_type(matrix) /= dbcsr_type_real_4) & + DBCSR_ABORT("Incompatible data types") - CALL timestop(handle) - END SUBROUTINE dbcsr_set_diag_s + IF (dbcsr_nfullrows_total(matrix) /= SIZE(diag)) & + DBCSR_ABORT("Diagonal has wrong size") - SUBROUTINE dbcsr_get_diag_s (matrix, diag) - TYPE(dbcsr_type), INTENT(IN) :: matrix - REAL(kind=real_4), DIMENSION(:), INTENT(OUT) :: diag - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_get_diag' - - INTEGER :: icol, irow, row_offset, handle, i - LOGICAL :: tr - TYPE(dbcsr_iterator) :: iter - REAL(kind=real_4), DIMENSION(:, :), POINTER :: block - - CALL timeset(routineN, handle) + IF (.NOT. array_equality(matrix%row_blk_offset, matrix%col_blk_offset)) & + DBCSR_ABORT("matrix not quadratic") + + diag(:) = 0.0_real_4 + + CALL dbcsr_iterator_start(iter, matrix) + DO WHILE (dbcsr_iterator_blocks_left(iter)) + CALL dbcsr_iterator_next_block(iter, irow, icol, block, tr, row_offset=row_offset) + IF (irow /= icol) CYCLE + + IF (sIZE(block, 1) /= sIZE(block, 2)) & + DBCSR_ABORT("Diagonal block non-squared") - IF (dbcsr_get_data_type(matrix) /= dbcsr_type_real_4) & - DBCSR_ABORT("Incompatible data types") - - IF (dbcsr_nfullrows_total(matrix) /= SIZE(diag)) & - DBCSR_ABORT("Diagonal has wrong size") + DO i = 1, sIZE(block, 1) + diag(row_offset + i - 1) = block(i, i) + END DO + END DO + CALL dbcsr_iterator_stop(iter) - IF (.NOT. array_equality(matrix%row_blk_offset, matrix%col_blk_offset)) & - DBCSR_ABORT("matrix not quadratic") + CALL timestop(handle) + END SUBROUTINE dbcsr_get_diag_s - diag(:) = 0.0_real_4 - - CALL dbcsr_iterator_start(iter, matrix) - DO WHILE (dbcsr_iterator_blocks_left(iter)) - CALL dbcsr_iterator_next_block(iter, irow, icol, block, tr, row_offset=row_offset) - IF (irow /= icol) CYCLE - - IF (sIZE(block, 1) /= sIZE(block, 2)) & - DBCSR_ABORT("Diagonal block non-squared") + SUBROUTINE dbcsr_add_on_diag_s (matrix, alpha) + !! add a constant to the diagonal of a matrix + + TYPE(dbcsr_type), INTENT(INOUT) :: matrix + !! DBCSR matrix + REAL(kind=real_4), INTENT(IN) :: alpha + !! scalar + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_add_on_diag' - DO i = 1, sIZE(block, 1) - diag(row_offset + i - 1) = block(i, i) - END DO - END DO - CALL dbcsr_iterator_stop(iter) + INTEGER :: handle, mynode, node, irow, i, row_size + LOGICAL :: found, tr + REAL(kind=real_4), DIMENSION(:, :), POINTER :: block + + CALL timeset(routineN, handle) - CALL timestop(handle) - END SUBROUTINE dbcsr_get_diag_s + IF (dbcsr_get_data_type(matrix) /= dbcsr_type_real_4) & + DBCSR_ABORT("Incompatible data types") - SUBROUTINE dbcsr_add_on_diag_s (matrix, alpha) - !! add a constant to the diagonal of a matrix + IF (.NOT. array_equality(matrix%row_blk_offset, matrix%col_blk_offset)) & + DBCSR_ABORT("matrix not quadratic") - TYPE(dbcsr_type), INTENT(INOUT) :: matrix - !! DBCSR matrix - REAL(kind=real_4), INTENT(IN) :: alpha - !! scalar - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_add_on_diag' - - INTEGER :: handle, mynode, node, irow, i, row_size - LOGICAL :: found, tr - REAL(kind=real_4), DIMENSION(:, :), POINTER :: block - - CALL timeset(routineN, handle) - - IF (dbcsr_get_data_type(matrix) /= dbcsr_type_real_4) & - DBCSR_ABORT("Incompatible data types") - - IF (.NOT. array_equality(matrix%row_blk_offset, matrix%col_blk_offset)) & - DBCSR_ABORT("matrix not quadratic") - - mynode = dbcsr_mp_mynode(dbcsr_distribution_mp(dbcsr_distribution(matrix))) - - CALL dbcsr_work_create(matrix, work_mutable=.TRUE.) - - DO irow = 1, dbcsr_nblkrows_total(matrix) - CALL dbcsr_get_stored_coordinates(matrix, irow, irow, node) - IF (node /= mynode) CYCLE - - CALL dbcsr_get_block_p(matrix, irow, irow, block, tr, found, row_size=row_size) - IF (.NOT. found) THEN - ALLOCATE (block(row_size, row_size)) - block(:, :) = 0.0_real_4 - END IF - - DO i = 1, row_size - block(i, i) = block(i, i) + alpha - END DO - - IF (.NOT. found) THEN - CALL dbcsr_put_block(matrix, irow, irow, block) - DEALLOCATE (block) - END IF - END DO - - CALL dbcsr_finalize(matrix) - CALL timestop(handle) - END SUBROUTINE dbcsr_add_on_diag_s - - SUBROUTINE dbcsr_update_contiguous_blocks_s (matrix_a, matrix_b, first_lb_a, first_lb_b, nze, & - do_scale, my_beta_scalar, found, iw) - !! Low level function to sum contiguous chunks of blocks of the matrices (matrix_a = matrix_a + beta*matrix_b) - - TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a - !! DBCSR matrix - TYPE(dbcsr_type), INTENT(IN) :: matrix_b - !! DBCSR matrix - TYPE(dbcsr_scalar_type), INTENT(IN) :: my_beta_scalar - INTEGER, INTENT(IN) :: first_lb_a, first_lb_b, nze, iw - LOGICAL, INTENT(IN) :: found, do_scale - - INTEGER :: ub_a, ub_b - - ub_a = first_lb_a + nze - 1 - ub_b = first_lb_b + nze - 1 - - IF (found) THEN - IF (do_scale) THEN - CALL saxpy(nze, my_beta_scalar%r_sp, & - matrix_b%data_area%d%r_sp (first_lb_b:ub_b), 1, & - matrix_a%data_area%d%r_sp (first_lb_a:ub_a), 1) - ELSE - matrix_a%data_area%d%r_sp (first_lb_a:ub_a) = & - matrix_a%data_area%d%r_sp (first_lb_a:ub_a) + & - matrix_b%data_area%d%r_sp (first_lb_b:ub_b) - END IF - ELSE - IF (do_scale) THEN - matrix_a%wms(iw)%data_area%d%r_sp (first_lb_a:ub_a) = & - my_beta_scalar%r_sp* & - matrix_b%data_area%d%r_sp (first_lb_b:ub_b) - ELSE - matrix_a%wms(iw)%data_area%d%r_sp (first_lb_a:ub_a) = & - matrix_b%data_area%d%r_sp (first_lb_b:ub_b) - END IF - END IF - END SUBROUTINE dbcsr_update_contiguous_blocks_s - - SUBROUTINE dbcsr_add_anytype_s (matrix_a, matrix_b, iter, iw, do_scale, & - my_beta_scalar, my_flop) - !! Low level function to sum two matrices (matrix_a = matrix_a + beta*matrix_b - - TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a - !! DBCSR matrix - TYPE(dbcsr_type), INTENT(IN) :: matrix_b - !! DBCSR matrix - TYPE(dbcsr_iterator), INTENT(INOUT) :: iter - INTEGER, INTENT(IN) :: iw - LOGICAL, INTENT(IN) :: do_scale - TYPE(dbcsr_scalar_type), INTENT(IN) :: my_beta_scalar - INTEGER(KIND=int_8), INTENT(INOUT) :: my_flop - - INTEGER :: row, col, row_size, col_size, & - nze, tot_nze, blk, & - lb_a, first_lb_a, lb_a_val, & - lb_b, first_lb_b - INTEGER, DIMENSION(2) :: lb_row_blk - LOGICAL :: was_found, found, tr - - ! some start values - lb_row_blk(:) = 0 - first_lb_a = matrix_a%wms(iw)%datasize + 1 - first_lb_b = 0 - tot_nze = 0 - ! - DO WHILE (dbcsr_iterator_blocks_left(iter)) - CALL dbcsr_iterator_next_block(iter, row, col, blk, tr, lb_b, row_size, col_size) - nze = row_size*col_size - IF (nze .LE. 0) CYCLE - IF (lb_row_blk(1) .LT. row) THEN - lb_row_blk(1) = row - lb_row_blk(2) = matrix_a%row_p(row) + 1 - END IF - ! get b-block index - lb_b = ABS(lb_b) - CALL dbcsr_find_column(col, lb_row_blk(2), matrix_a%row_p(row + 1), matrix_a%col_i, matrix_a%blk_p, blk, found) - lb_row_blk(2) = blk + 1 - ! get index of a-block lb_a whether found (from matrix_a) or not (from workspace array) - IF (found) THEN - my_flop = my_flop + nze*2 - lb_a = ABS(matrix_a%blk_p(blk)) - ELSE - lb_a = matrix_a%wms(iw)%datasize + 1 - lb_a_val = lb_a - IF (tr) lb_a_val = -lb_a - matrix_a%wms(iw)%lastblk = matrix_a%wms(iw)%lastblk + 1 - matrix_a%wms(iw)%row_i(matrix_a%wms(iw)%lastblk) = row - matrix_a%wms(iw)%col_i(matrix_a%wms(iw)%lastblk) = col - matrix_a%wms(iw)%blk_p(matrix_a%wms(iw)%lastblk) = lb_a_val - matrix_a%wms(iw)%datasize = matrix_a%wms(iw)%datasize + nze - END IF - ! at the first iteration we skip this and go directly to initialization after - IF (first_lb_b .NE. 0) THEN - ! if found status is the same as before then probably we are in contiguous blocks - IF ((found .EQV. was_found) .AND. & - (first_lb_b + tot_nze .EQ. lb_b) .AND. & - (first_lb_a + tot_nze) .EQ. lb_a) THEN - tot_nze = tot_nze + nze - CYCLE - END IF - ! save block chunk - CALL dbcsr_update_contiguous_blocks_s (matrix_a, matrix_b, first_lb_a, first_lb_b, tot_nze, & - do_scale, my_beta_scalar, was_found, iw) - END IF - ! - first_lb_a = lb_a - first_lb_b = lb_b - tot_nze = nze - was_found = found - END DO - - ! save the last block or chunk of blocks - IF (first_lb_b .NE. 0) THEN - call dbcsr_update_contiguous_blocks_s (matrix_a, matrix_b, first_lb_a, first_lb_b, tot_nze, & - do_scale, my_beta_scalar, was_found, iw) - END IF - - END SUBROUTINE dbcsr_add_anytype_s -# 2639 "/__w/dbcsr/dbcsr/src/ops/dbcsr_operations.F" - SUBROUTINE dbcsr_trace_z (matrix_a, trace) - !! traces a DBCSR matrix + mynode = dbcsr_mp_mynode(dbcsr_distribution_mp(dbcsr_distribution(matrix))) + + CALL dbcsr_work_create(matrix, work_mutable=.TRUE.) + + DO irow = 1, dbcsr_nblkrows_total(matrix) + CALL dbcsr_get_stored_coordinates(matrix, irow, irow, node) + IF (node /= mynode) CYCLE + + CALL dbcsr_get_block_p(matrix, irow, irow, block, tr, found, row_size=row_size) + IF (.NOT. found) THEN + ALLOCATE (block(row_size, row_size)) + block(:, :) = 0.0_real_4 + END IF + + DO i = 1, row_size + block(i, i) = block(i, i) + alpha + END DO + + IF (.NOT. found) THEN + CALL dbcsr_put_block(matrix, irow, irow, block) + DEALLOCATE (block) + END IF + END DO + + CALL dbcsr_finalize(matrix) + CALL timestop(handle) + END SUBROUTINE dbcsr_add_on_diag_s + + SUBROUTINE dbcsr_update_contiguous_blocks_s (matrix_a, matrix_b, first_lb_a, first_lb_b, nze, & + do_scale, my_beta_scalar, found, iw) + !! Low level function to sum contiguous chunks of blocks of the matrices (matrix_a = matrix_a + beta*matrix_b) + + TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a + !! DBCSR matrix + TYPE(dbcsr_type), INTENT(IN) :: matrix_b + !! DBCSR matrix + TYPE(dbcsr_scalar_type), INTENT(IN) :: my_beta_scalar + INTEGER, INTENT(IN) :: first_lb_a, first_lb_b, nze, iw + LOGICAL, INTENT(IN) :: found, do_scale + + INTEGER :: ub_a, ub_b + + ub_a = first_lb_a + nze - 1 + ub_b = first_lb_b + nze - 1 + + IF (found) THEN + IF (do_scale) THEN + CALL saxpy(nze, my_beta_scalar%r_sp, & + matrix_b%data_area%d%r_sp (first_lb_b:ub_b), 1, & + matrix_a%data_area%d%r_sp (first_lb_a:ub_a), 1) + ELSE + matrix_a%data_area%d%r_sp (first_lb_a:ub_a) = & + matrix_a%data_area%d%r_sp (first_lb_a:ub_a) + & + matrix_b%data_area%d%r_sp (first_lb_b:ub_b) + END IF + ELSE + IF (do_scale) THEN + matrix_a%wms(iw)%data_area%d%r_sp (first_lb_a:ub_a) = & + my_beta_scalar%r_sp* & + matrix_b%data_area%d%r_sp (first_lb_b:ub_b) + ELSE + matrix_a%wms(iw)%data_area%d%r_sp (first_lb_a:ub_a) = & + matrix_b%data_area%d%r_sp (first_lb_b:ub_b) + END IF + END IF + END SUBROUTINE dbcsr_update_contiguous_blocks_s + + SUBROUTINE dbcsr_add_anytype_s (matrix_a, matrix_b, iter, iw, do_scale, & + my_beta_scalar, my_flop) + !! Low level function to sum two matrices (matrix_a = matrix_a + beta*matrix_b + + TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a + !! DBCSR matrix + TYPE(dbcsr_type), INTENT(IN) :: matrix_b + !! DBCSR matrix + TYPE(dbcsr_iterator), INTENT(INOUT) :: iter + INTEGER, INTENT(IN) :: iw + LOGICAL, INTENT(IN) :: do_scale + TYPE(dbcsr_scalar_type), INTENT(IN) :: my_beta_scalar + INTEGER(KIND=int_8), INTENT(INOUT) :: my_flop + + INTEGER :: row, col, row_size, col_size, & + nze, tot_nze, blk, & + lb_a, first_lb_a, lb_a_val, & + lb_b, first_lb_b + INTEGER, DIMENSION(2) :: lb_row_blk + LOGICAL :: was_found, found, tr + + ! some start values + lb_row_blk(:) = 0 + first_lb_a = matrix_a%wms(iw)%datasize + 1 + first_lb_b = 0 + tot_nze = 0 + ! + DO WHILE (dbcsr_iterator_blocks_left(iter)) + CALL dbcsr_iterator_next_block(iter, row, col, blk, tr, lb_b, row_size, col_size) + nze = row_size*col_size + IF (nze .LE. 0) CYCLE + IF (lb_row_blk(1) .LT. row) THEN + lb_row_blk(1) = row + lb_row_blk(2) = matrix_a%row_p(row) + 1 + END IF + ! get b-block index + lb_b = ABS(lb_b) + CALL dbcsr_find_column(col, lb_row_blk(2), matrix_a%row_p(row + 1), matrix_a%col_i, matrix_a%blk_p, blk, found) + lb_row_blk(2) = blk + 1 + ! get index of a-block lb_a whether found (from matrix_a) or not (from workspace array) + IF (found) THEN + my_flop = my_flop + nze*2 + lb_a = ABS(matrix_a%blk_p(blk)) + ELSE + lb_a = matrix_a%wms(iw)%datasize + 1 + lb_a_val = lb_a + IF (tr) lb_a_val = -lb_a + matrix_a%wms(iw)%lastblk = matrix_a%wms(iw)%lastblk + 1 + matrix_a%wms(iw)%row_i(matrix_a%wms(iw)%lastblk) = row + matrix_a%wms(iw)%col_i(matrix_a%wms(iw)%lastblk) = col + matrix_a%wms(iw)%blk_p(matrix_a%wms(iw)%lastblk) = lb_a_val + matrix_a%wms(iw)%datasize = matrix_a%wms(iw)%datasize + nze + END IF + ! at the first iteration we skip this and go directly to initialization after + IF (first_lb_b .NE. 0) THEN + ! if found status is the same as before then probably we are in contiguous blocks + IF ((found .EQV. was_found) .AND. & + (first_lb_b + tot_nze .EQ. lb_b) .AND. & + (first_lb_a + tot_nze) .EQ. lb_a) THEN + tot_nze = tot_nze + nze + CYCLE + END IF + ! save block chunk + CALL dbcsr_update_contiguous_blocks_s (matrix_a, matrix_b, first_lb_a, first_lb_b, tot_nze, & + do_scale, my_beta_scalar, was_found, iw) + END IF + ! + first_lb_a = lb_a + first_lb_b = lb_b + tot_nze = nze + was_found = found + END DO + + ! save the last block or chunk of blocks + IF (first_lb_b .NE. 0) THEN + call dbcsr_update_contiguous_blocks_s (matrix_a, matrix_b, first_lb_a, first_lb_b, tot_nze, & + do_scale, my_beta_scalar, was_found, iw) + END IF + + END SUBROUTINE dbcsr_add_anytype_s +# 2620 "/__w/dbcsr/dbcsr/src/ops/dbcsr_operations.F" + SUBROUTINE dbcsr_trace_z (matrix_a, trace) + !! traces a DBCSR matrix + + TYPE(dbcsr_type), INTENT(IN) :: matrix_a + !! DBCSR matrix + COMPLEX(kind=real_8), INTENT(INOUT) :: trace + !! the trace of the matrix + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_trace_z' + + INTEGER :: a_blk, a_col, a_col_size, & + a_nze, a_row, a_row_size, i, & + mynode, error_handle + INTEGER, DIMENSION(:), POINTER :: col_blk_size, row_blk_size, & + row_dist, col_dist + COMPLEX(kind=real_8), DIMENSION(:), POINTER :: a_data, data_p + INTEGER, DIMENSION(:, :), POINTER :: pgrid + TYPE(dbcsr_distribution_obj) :: dist + +! --------------------------------------------------------------------------- + CALL timeset(routineN, error_handle) - TYPE(dbcsr_type), INTENT(IN) :: matrix_a - !! DBCSR matrix - COMPLEX(kind=real_8), INTENT(INOUT) :: trace - !! the trace of the matrix - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_trace_z' - - INTEGER :: a_blk, a_col, a_col_size, & - a_nze, a_row, a_row_size, i, & - mynode, error_handle - INTEGER, DIMENSION(:), POINTER :: col_blk_size, row_blk_size, & - row_dist, col_dist - COMPLEX(kind=real_8), DIMENSION(:), POINTER :: a_data, data_p - INTEGER, DIMENSION(:, :), POINTER :: pgrid - TYPE(dbcsr_distribution_obj) :: dist - -! --------------------------------------------------------------------------- - CALL timeset(routineN, error_handle) - - row_blk_size => array_data(matrix_a%row_blk_size) - col_blk_size => array_data(matrix_a%col_blk_size) - IF (dbcsr_get_data_type(matrix_a) /= dbcsr_type_complex_8) & - DBCSR_ABORT("Incompatible data types") - CALL dbcsr_get_data(matrix_a%data_area, data_p) - dist = dbcsr_distribution(matrix_a) - mynode = dbcsr_mp_mynode(dbcsr_distribution_mp(dist)) - pgrid => dbcsr_mp_pgrid(dbcsr_distribution_mp(dist)) - row_dist => dbcsr_distribution_row_dist(dist) - col_dist => dbcsr_distribution_col_dist(dist) - ! - ! let's go - trace = REAL(0.0, real_8) - DO a_row = 1, matrix_a%nblkrows_total - a_row_size = row_blk_size(a_row) - DO a_blk = matrix_a%row_p(a_row) + 1, matrix_a%row_p(a_row + 1) - IF (a_blk .EQ. 0) CYCLE - a_col = matrix_a%col_i(a_blk) - IF (a_col .ne. a_row) CYCLE - ! We must skip non-local blocks in a replicated matrix. - IF (matrix_a%replication_type .NE. dbcsr_repl_full) THEN - IF (mynode .NE. checker_square_proc(a_row, a_col, pgrid, row_dist, col_dist)) & - CYCLE - END IF - a_col_size = col_blk_size(a_col) - IF (a_row_size .NE. a_col_size) & - DBCSR_ABORT("is that a square matrix?") - a_nze = a_row_size**2 - a_data => pointer_view(data_p, ABS(matrix_a%blk_p(a_blk)), & - ABS(matrix_a%blk_p(a_blk)) + a_nze - 1) - !data_a => matrix_a%data(ABS(matrix_a%blk_p(a_blk)):ABS(matrix_a%blk_p(a_blk))+a_nze-1) - ! - ! let's trace the block - DO i = 1, a_row_size - trace = trace + a_data((i - 1)*a_row_size + i) - END DO - END DO ! a_col - END DO ! a_row - ! - ! summe - CALL mp_sum(trace, dbcsr_mp_group(dbcsr_distribution_mp(matrix_a%dist))) - - CALL timestop(error_handle) - END SUBROUTINE dbcsr_trace_z + row_blk_size => array_data(matrix_a%row_blk_size) + col_blk_size => array_data(matrix_a%col_blk_size) + IF (dbcsr_get_data_type(matrix_a) /= dbcsr_type_complex_8) & + DBCSR_ABORT("Incompatible data types") + CALL dbcsr_get_data(matrix_a%data_area, data_p) + dist = dbcsr_distribution(matrix_a) + mynode = dbcsr_mp_mynode(dbcsr_distribution_mp(dist)) + pgrid => dbcsr_mp_pgrid(dbcsr_distribution_mp(dist)) + row_dist => dbcsr_distribution_row_dist(dist) + col_dist => dbcsr_distribution_col_dist(dist) + ! + ! let's go + trace = REAL(0.0, real_8) + DO a_row = 1, matrix_a%nblkrows_total + a_row_size = row_blk_size(a_row) + DO a_blk = matrix_a%row_p(a_row) + 1, matrix_a%row_p(a_row + 1) + IF (a_blk .EQ. 0) CYCLE + a_col = matrix_a%col_i(a_blk) + IF (a_col .ne. a_row) CYCLE + ! We must skip non-local blocks in a replicated matrix. + IF (matrix_a%replication_type .NE. dbcsr_repl_full) THEN + IF (mynode .NE. checker_square_proc(a_row, a_col, pgrid, row_dist, col_dist)) & + CYCLE + END IF + a_col_size = col_blk_size(a_col) + IF (a_row_size .NE. a_col_size) & + DBCSR_ABORT("is that a square matrix?") + a_nze = a_row_size**2 + a_data => pointer_view(data_p, ABS(matrix_a%blk_p(a_blk)), & + ABS(matrix_a%blk_p(a_blk)) + a_nze - 1) + !data_a => matrix_a%data(ABS(matrix_a%blk_p(a_blk)):ABS(matrix_a%blk_p(a_blk))+a_nze-1) + ! + ! let's trace the block + DO i = 1, a_row_size + trace = trace + a_data((i - 1)*a_row_size + i) + END DO + END DO ! a_col + END DO ! a_row + ! + ! summe + CALL mp_sum(trace, dbcsr_mp_group(dbcsr_distribution_mp(matrix_a%dist))) + + CALL timestop(error_handle) + END SUBROUTINE dbcsr_trace_z + + SUBROUTINE dbcsr_dot_z (matrix_a, matrix_b, trace) + !! Dot product of DBCSR matrices + + TYPE(dbcsr_type), INTENT(IN) :: matrix_a, matrix_b + !! DBCSR matrices + !! DBCSR matrices + COMPLEX(kind=real_8), INTENT(INOUT) :: trace + !! the trace of the product of the matrices + + INTEGER :: a_blk, a_col, a_col_size, a_row_size, b_blk, b_col_size, & + b_frst_blk, b_last_blk, b_row_size, nze, row, a_beg, a_end, b_beg, b_end + CHARACTER :: matrix_a_type, matrix_b_type + INTEGER, DIMENSION(:), POINTER :: a_col_blk_size, & + a_row_blk_size, & + b_col_blk_size, b_row_blk_size + COMPLEX(kind=real_8) :: sym_fac, fac + LOGICAL :: found, matrix_a_symm, matrix_b_symm + COMPLEX(kind=real_8), DIMENSION(:), POINTER :: a_data, b_data - SUBROUTINE dbcsr_dot_z (matrix_a, matrix_b, trace) - !! Dot product of DBCSR matrices - - TYPE(dbcsr_type), INTENT(IN) :: matrix_a, matrix_b - !! DBCSR matrices - !! DBCSR matrices - COMPLEX(kind=real_8), INTENT(INOUT) :: trace - !! the trace of the product of the matrices - - INTEGER :: a_blk, a_col, a_col_size, a_row_size, b_blk, b_col_size, & - b_frst_blk, b_last_blk, b_row_size, nze, row, a_beg, a_end, b_beg, b_end - CHARACTER :: matrix_a_type, matrix_b_type - INTEGER, DIMENSION(:), POINTER :: a_col_blk_size, & - a_row_blk_size, & - b_col_blk_size, b_row_blk_size - COMPLEX(kind=real_8) :: sym_fac, fac - LOGICAL :: found, matrix_a_symm, matrix_b_symm - COMPLEX(kind=real_8), DIMENSION(:), POINTER :: a_data, b_data - -! --------------------------------------------------------------------------- - - IF (matrix_a%replication_type .NE. dbcsr_repl_none & - .OR. matrix_b%replication_type .NE. dbcsr_repl_none) & - DBCSR_ABORT("Trace of product of replicated matrices not yet possible.") - - sym_fac = REAL(1.0, real_8) - matrix_a_type = dbcsr_get_matrix_type(matrix_a) - matrix_b_type = dbcsr_get_matrix_type(matrix_b) - matrix_a_symm = matrix_a_type == dbcsr_type_symmetric .OR. matrix_a_type == dbcsr_type_antisymmetric - matrix_b_symm = matrix_b_type == dbcsr_type_symmetric .OR. matrix_b_type == dbcsr_type_antisymmetric - - IF (matrix_a_symm .AND. matrix_b_symm) sym_fac = REAL(2.0, real_8) - - ! tracing a symmetric with a general matrix is not implemented, as it would require communication of blocks - IF (matrix_a_symm .NEQV. matrix_b_symm) & - DBCSR_ABORT("Tracing general with symmetric matrix NYI") - - a_row_blk_size => array_data(matrix_a%row_blk_size) - a_col_blk_size => array_data(matrix_a%col_blk_size) - b_row_blk_size => array_data(matrix_b%row_blk_size) - b_col_blk_size => array_data(matrix_b%col_blk_size) - - CALL dbcsr_get_data(matrix_a%data_area, a_data) - CALL dbcsr_get_data(matrix_b%data_area, b_data) - - ! let's go - trace = REAL(0.0, real_8) - IF (matrix_a%nblkrows_total .NE. matrix_b%nblkrows_total) & - DBCSR_ABORT("this combination of transpose is NYI") - DO row = 1, matrix_a%nblkrows_total - a_row_size = a_row_blk_size(row) - b_row_size = b_row_blk_size(row) - IF (a_row_size .NE. b_row_size) DBCSR_ABORT("matrices not consistent") - b_blk = matrix_b%row_p(row) + 1 - b_frst_blk = matrix_b%row_p(row) + 1 - b_last_blk = matrix_b%row_p(row + 1) - DO a_blk = matrix_a%row_p(row) + 1, matrix_a%row_p(row + 1) - IF (matrix_a%blk_p(a_blk) .EQ. 0) CYCLE ! Deleted block - a_col = matrix_a%col_i(a_blk) - a_col_size = a_col_blk_size(a_col) - ! - ! find the b_blk we assume here that the columns are ordered ! - CALL dbcsr_find_column(a_col, b_frst_blk, b_last_blk, matrix_b%col_i, & - matrix_b%blk_p, b_blk, found) - IF (found) THEN - b_col_size = b_col_blk_size(a_col) - IF (a_col_size .NE. b_col_size) DBCSR_ABORT("matrices not consistent") - ! - nze = a_row_size*a_col_size - ! - IF (nze .GT. 0) THEN - ! - ! let's trace the blocks - a_beg = ABS(matrix_a%blk_p(a_blk)) - a_end = a_beg + nze - 1 - b_beg = ABS(matrix_b%blk_p(b_blk)) - b_end = b_beg + nze - 1 - fac = REAL(1.0, real_8) - IF (row .NE. a_col) fac = sym_fac - - trace = trace + fac*SUM(a_data(a_beg:a_end)*b_data(b_beg:b_end)) - - END IF - END IF - END DO ! a_col - END DO ! a_row - ! - ! sum - CALL mp_sum(trace, dbcsr_mp_group(dbcsr_distribution_mp(matrix_a%dist))) - - END SUBROUTINE dbcsr_dot_z - - SUBROUTINE dbcsr_scale_z (matrix_a, alpha_scalar, last_column) - !! Interface for matrix scaling by a scalar - TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a - COMPLEX(kind=real_8), INTENT(IN) :: alpha_scalar - INTEGER, INTENT(IN), OPTIONAL :: last_column +! --------------------------------------------------------------------------- + + IF (matrix_a%replication_type .NE. dbcsr_repl_none & + .OR. matrix_b%replication_type .NE. dbcsr_repl_none) & + DBCSR_ABORT("Trace of product of replicated matrices not yet possible.") + + sym_fac = REAL(1.0, real_8) + matrix_a_type = dbcsr_get_matrix_type(matrix_a) + matrix_b_type = dbcsr_get_matrix_type(matrix_b) + matrix_a_symm = matrix_a_type == dbcsr_type_symmetric .OR. matrix_a_type == dbcsr_type_antisymmetric + matrix_b_symm = matrix_b_type == dbcsr_type_symmetric .OR. matrix_b_type == dbcsr_type_antisymmetric + + IF (matrix_a_symm .AND. matrix_b_symm) sym_fac = REAL(2.0, real_8) + + ! tracing a symmetric with a general matrix is not implemented, as it would require communication of blocks + IF (matrix_a_symm .NEQV. matrix_b_symm) & + DBCSR_ABORT("Tracing general with symmetric matrix NYI") + + a_row_blk_size => array_data(matrix_a%row_blk_size) + a_col_blk_size => array_data(matrix_a%col_blk_size) + b_row_blk_size => array_data(matrix_b%row_blk_size) + b_col_blk_size => array_data(matrix_b%col_blk_size) + + CALL dbcsr_get_data(matrix_a%data_area, a_data) + CALL dbcsr_get_data(matrix_b%data_area, b_data) + + ! let's go + trace = REAL(0.0, real_8) + IF (matrix_a%nblkrows_total .NE. matrix_b%nblkrows_total) & + DBCSR_ABORT("this combination of transpose is NYI") + DO row = 1, matrix_a%nblkrows_total + a_row_size = a_row_blk_size(row) + b_row_size = b_row_blk_size(row) + IF (a_row_size .NE. b_row_size) DBCSR_ABORT("matrices not consistent") + b_blk = matrix_b%row_p(row) + 1 + b_frst_blk = matrix_b%row_p(row) + 1 + b_last_blk = matrix_b%row_p(row + 1) + DO a_blk = matrix_a%row_p(row) + 1, matrix_a%row_p(row + 1) + IF (matrix_a%blk_p(a_blk) .EQ. 0) CYCLE ! Deleted block + a_col = matrix_a%col_i(a_blk) + a_col_size = a_col_blk_size(a_col) + ! + ! find the b_blk we assume here that the columns are ordered ! + CALL dbcsr_find_column(a_col, b_frst_blk, b_last_blk, matrix_b%col_i, & + matrix_b%blk_p, b_blk, found) + IF (found) THEN + b_col_size = b_col_blk_size(a_col) + IF (a_col_size .NE. b_col_size) DBCSR_ABORT("matrices not consistent") + ! + nze = a_row_size*a_col_size + ! + IF (nze .GT. 0) THEN + ! + ! let's trace the blocks + a_beg = ABS(matrix_a%blk_p(a_blk)) + a_end = a_beg + nze - 1 + b_beg = ABS(matrix_b%blk_p(b_blk)) + b_end = b_beg + nze - 1 + fac = REAL(1.0, real_8) + IF (row .NE. a_col) fac = sym_fac + + trace = trace + fac*SUM(a_data(a_beg:a_end)*b_data(b_beg:b_end)) + + END IF + END IF + END DO ! a_col + END DO ! a_row + ! + ! sum + CALL mp_sum(trace, dbcsr_mp_group(dbcsr_distribution_mp(matrix_a%dist))) + + END SUBROUTINE dbcsr_dot_z + + SUBROUTINE dbcsr_scale_z (matrix_a, alpha_scalar, last_column) + !! Interface for matrix scaling by a scalar + TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a + COMPLEX(kind=real_8), INTENT(IN) :: alpha_scalar + INTEGER, INTENT(IN), OPTIONAL :: last_column + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_scale_z' + + INTEGER :: error_handler + TYPE(dbcsr_scalar_type) :: sc + + sc = dbcsr_scalar(alpha_scalar) + CALL dbcsr_scalar_fill_all(sc) + sc%data_type = dbcsr_get_data_type(matrix_a) + CALL timeset(routineN, error_handler) + IF (PRESENT(last_column)) THEN + CALL dbcsr_scale_anytype(matrix_a, & + alpha_scalar=sc, & + limits=(/0, 0, 0, last_column/)) + ELSE + CALL dbcsr_scale_anytype(matrix_a, alpha_scalar=sc) + END IF + CALL timestop(error_handler) + END SUBROUTINE dbcsr_scale_z - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_scale_z' - - INTEGER :: error_handler - TYPE(dbcsr_scalar_type) :: sc - - sc = dbcsr_scalar(alpha_scalar) - CALL dbcsr_scalar_fill_all(sc) - sc%data_type = dbcsr_get_data_type(matrix_a) - CALL timeset(routineN, error_handler) - IF (PRESENT(last_column)) THEN - CALL dbcsr_scale_anytype(matrix_a, & - alpha_scalar=sc, & - limits=(/0, 0, 0, last_column/)) - ELSE - CALL dbcsr_scale_anytype(matrix_a, alpha_scalar=sc) - END IF - CALL timestop(error_handler) - END SUBROUTINE dbcsr_scale_z - - SUBROUTINE dbcsr_scale_by_vector_z (matrix_a, alpha, side) - !! Interface for matrix scaling by a vector - TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a - COMPLEX(kind=real_8), DIMENSION(:), INTENT(IN), TARGET, CONTIGUOUS :: alpha - CHARACTER(LEN=*), INTENT(IN) :: side - COMPLEX(kind=real_8), DIMENSION(:), POINTER, CONTIGUOUS :: tmp_p - TYPE(dbcsr_data_obj) :: enc_alpha_vec - - CALL dbcsr_data_init(enc_alpha_vec) - CALL dbcsr_data_new(enc_alpha_vec, dbcsr_type_complex_8) - tmp_p => alpha - CALL dbcsr_data_set_pointer(enc_alpha_vec, tmp_p) - CALL dbcsr_scale_by_vector_anytype(matrix_a, enc_alpha_vec, side) - CALL dbcsr_data_clear_pointer(enc_alpha_vec) - CALL dbcsr_data_release(enc_alpha_vec) - END SUBROUTINE dbcsr_scale_by_vector_z - - SUBROUTINE dbcsr_set_z (matrix, alpha) - !! Interface for dbcsr_set - TYPE(dbcsr_type), INTENT(INOUT) :: matrix - COMPLEX(kind=real_8), INTENT(IN) :: alpha - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_set' - - INTEGER :: col, handle, row - TYPE(dbcsr_iterator) :: iter - COMPLEX(kind=real_8), DIMENSION(:, :), POINTER :: block - LOGICAL :: tr - - CALL timeset(routineN, handle) - - IF (alpha == CMPLX(0.0, 0.0, real_8)) THEN - CALL dbcsr_zero(matrix) - ELSE - IF (dbcsr_get_data_type(matrix) /= dbcsr_type_complex_8) & - DBCSR_ABORT("Incompatible data types") - - !TODO: could be speedup by direct assignment to data_area, similar to dbcsr_zero() - CALL dbcsr_iterator_start(iter, matrix) - DO WHILE (dbcsr_iterator_blocks_left(iter)) - CALL dbcsr_iterator_next_block(iter, row, col, block, tr) - block(:, :) = alpha - END DO - CALL dbcsr_iterator_stop(iter) - END IF + SUBROUTINE dbcsr_scale_by_vector_z (matrix_a, alpha, side) + !! Interface for matrix scaling by a vector + TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a + COMPLEX(kind=real_8), DIMENSION(:), INTENT(IN), TARGET, CONTIGUOUS :: alpha + CHARACTER(LEN=*), INTENT(IN) :: side + COMPLEX(kind=real_8), DIMENSION(:), POINTER, CONTIGUOUS :: tmp_p + TYPE(dbcsr_data_obj) :: enc_alpha_vec + + CALL dbcsr_data_init(enc_alpha_vec) + CALL dbcsr_data_new(enc_alpha_vec, dbcsr_type_complex_8) + tmp_p => alpha + CALL dbcsr_data_set_pointer(enc_alpha_vec, tmp_p) + CALL dbcsr_scale_by_vector_anytype(matrix_a, enc_alpha_vec, side) + CALL dbcsr_data_clear_pointer(enc_alpha_vec) + CALL dbcsr_data_release(enc_alpha_vec) + END SUBROUTINE dbcsr_scale_by_vector_z + + SUBROUTINE dbcsr_set_z (matrix, alpha) + !! Interface for dbcsr_set + TYPE(dbcsr_type), INTENT(INOUT) :: matrix + COMPLEX(kind=real_8), INTENT(IN) :: alpha + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_set' + + INTEGER :: col, handle, row + TYPE(dbcsr_iterator) :: iter + COMPLEX(kind=real_8), DIMENSION(:, :), POINTER :: block + LOGICAL :: tr + + CALL timeset(routineN, handle) + + IF (alpha == CMPLX(0.0, 0.0, real_8)) THEN + CALL dbcsr_zero(matrix) + ELSE + IF (dbcsr_get_data_type(matrix) /= dbcsr_type_complex_8) & + DBCSR_ABORT("Incompatible data types") + + !TODO: could be speedup by direct assignment to data_area, similar to dbcsr_zero() + CALL dbcsr_iterator_start(iter, matrix) + DO WHILE (dbcsr_iterator_blocks_left(iter)) + CALL dbcsr_iterator_next_block(iter, row, col, block, tr) + block(:, :) = alpha + END DO + CALL dbcsr_iterator_stop(iter) + END IF + + CALL timestop(handle) + END SUBROUTINE dbcsr_set_z + + SUBROUTINE dbcsr_filter_z (matrix, eps, method, use_absolute, & + filter_diag) + TYPE(dbcsr_type), INTENT(INOUT) :: matrix + COMPLEX(kind=real_8), INTENT(IN) :: eps + INTEGER, INTENT(IN), OPTIONAL :: method + LOGICAL, INTENT(in), OPTIONAL :: use_absolute, filter_diag + CALL dbcsr_filter_anytype(matrix, dbcsr_scalar(eps), method, & + use_absolute, filter_diag) + END SUBROUTINE dbcsr_filter_z + + SUBROUTINE dbcsr_set_diag_z (matrix, diag) + TYPE(dbcsr_type), INTENT(INOUT) :: matrix + COMPLEX(kind=real_8), DIMENSION(:), INTENT(IN) :: diag + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_set_diag' - CALL timestop(handle) - END SUBROUTINE dbcsr_set_z - - SUBROUTINE dbcsr_filter_z (matrix, eps, method, use_absolute, & - filter_diag) - TYPE(dbcsr_type), INTENT(INOUT) :: matrix - COMPLEX(kind=real_8), INTENT(IN) :: eps - INTEGER, INTENT(IN), OPTIONAL :: method - LOGICAL, INTENT(in), OPTIONAL :: use_absolute, filter_diag - CALL dbcsr_filter_anytype(matrix, dbcsr_scalar(eps), method, & - use_absolute, filter_diag) - END SUBROUTINE dbcsr_filter_z + INTEGER :: icol, irow, row_offset, handle, i + LOGICAL :: tr + TYPE(dbcsr_iterator) :: iter + COMPLEX(kind=real_8), DIMENSION(:, :), POINTER :: block + + CALL timeset(routineN, handle) + + IF (dbcsr_get_data_type(matrix) /= dbcsr_type_complex_8) & + DBCSR_ABORT("Incompatible data types") + + IF (dbcsr_nfullrows_total(matrix) /= SIZE(diag)) & + DBCSR_ABORT("Diagonal has wrong size") - SUBROUTINE dbcsr_set_diag_z (matrix, diag) - TYPE(dbcsr_type), INTENT(INOUT) :: matrix - COMPLEX(kind=real_8), DIMENSION(:), INTENT(IN) :: diag - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_set_diag' - - INTEGER :: icol, irow, row_offset, handle, i - LOGICAL :: tr - TYPE(dbcsr_iterator) :: iter - COMPLEX(kind=real_8), DIMENSION(:, :), POINTER :: block + IF (.NOT. array_equality(matrix%row_blk_offset, matrix%col_blk_offset)) & + DBCSR_ABORT("matrix not quadratic") + + CALL dbcsr_iterator_start(iter, matrix) + DO WHILE (dbcsr_iterator_blocks_left(iter)) + CALL dbcsr_iterator_next_block(iter, irow, icol, block, tr, row_offset=row_offset) + IF (irow /= icol) CYCLE + + IF (sIZE(block, 1) /= sIZE(block, 2)) & + DBCSR_ABORT("Diagonal block non-squared") - CALL timeset(routineN, handle) - - IF (dbcsr_get_data_type(matrix) /= dbcsr_type_complex_8) & - DBCSR_ABORT("Incompatible data types") - - IF (dbcsr_nfullrows_total(matrix) /= SIZE(diag)) & - DBCSR_ABORT("Diagonal has wrong size") - - IF (.NOT. array_equality(matrix%row_blk_offset, matrix%col_blk_offset)) & - DBCSR_ABORT("matrix not quadratic") - - CALL dbcsr_iterator_start(iter, matrix) - DO WHILE (dbcsr_iterator_blocks_left(iter)) - CALL dbcsr_iterator_next_block(iter, irow, icol, block, tr, row_offset=row_offset) - IF (irow /= icol) CYCLE - - IF (sIZE(block, 1) /= sIZE(block, 2)) & - DBCSR_ABORT("Diagonal block non-squared") - - DO i = 1, sIZE(block, 1) - block(i, i) = diag(row_offset + i - 1) - END DO - END DO - CALL dbcsr_iterator_stop(iter) + DO i = 1, sIZE(block, 1) + block(i, i) = diag(row_offset + i - 1) + END DO + END DO + CALL dbcsr_iterator_stop(iter) + + CALL timestop(handle) + END SUBROUTINE dbcsr_set_diag_z + + SUBROUTINE dbcsr_get_diag_z (matrix, diag) + TYPE(dbcsr_type), INTENT(IN) :: matrix + COMPLEX(kind=real_8), DIMENSION(:), INTENT(OUT) :: diag + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_get_diag' + + INTEGER :: icol, irow, row_offset, handle, i + LOGICAL :: tr + TYPE(dbcsr_iterator) :: iter + COMPLEX(kind=real_8), DIMENSION(:, :), POINTER :: block + + CALL timeset(routineN, handle) + + IF (dbcsr_get_data_type(matrix) /= dbcsr_type_complex_8) & + DBCSR_ABORT("Incompatible data types") - CALL timestop(handle) - END SUBROUTINE dbcsr_set_diag_z + IF (dbcsr_nfullrows_total(matrix) /= SIZE(diag)) & + DBCSR_ABORT("Diagonal has wrong size") - SUBROUTINE dbcsr_get_diag_z (matrix, diag) - TYPE(dbcsr_type), INTENT(IN) :: matrix - COMPLEX(kind=real_8), DIMENSION(:), INTENT(OUT) :: diag - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_get_diag' - - INTEGER :: icol, irow, row_offset, handle, i - LOGICAL :: tr - TYPE(dbcsr_iterator) :: iter - COMPLEX(kind=real_8), DIMENSION(:, :), POINTER :: block - - CALL timeset(routineN, handle) + IF (.NOT. array_equality(matrix%row_blk_offset, matrix%col_blk_offset)) & + DBCSR_ABORT("matrix not quadratic") + + diag(:) = CMPLX(0.0, 0.0, real_8) + + CALL dbcsr_iterator_start(iter, matrix) + DO WHILE (dbcsr_iterator_blocks_left(iter)) + CALL dbcsr_iterator_next_block(iter, irow, icol, block, tr, row_offset=row_offset) + IF (irow /= icol) CYCLE + + IF (sIZE(block, 1) /= sIZE(block, 2)) & + DBCSR_ABORT("Diagonal block non-squared") - IF (dbcsr_get_data_type(matrix) /= dbcsr_type_complex_8) & - DBCSR_ABORT("Incompatible data types") - - IF (dbcsr_nfullrows_total(matrix) /= SIZE(diag)) & - DBCSR_ABORT("Diagonal has wrong size") + DO i = 1, sIZE(block, 1) + diag(row_offset + i - 1) = block(i, i) + END DO + END DO + CALL dbcsr_iterator_stop(iter) - IF (.NOT. array_equality(matrix%row_blk_offset, matrix%col_blk_offset)) & - DBCSR_ABORT("matrix not quadratic") + CALL timestop(handle) + END SUBROUTINE dbcsr_get_diag_z - diag(:) = CMPLX(0.0, 0.0, real_8) - - CALL dbcsr_iterator_start(iter, matrix) - DO WHILE (dbcsr_iterator_blocks_left(iter)) - CALL dbcsr_iterator_next_block(iter, irow, icol, block, tr, row_offset=row_offset) - IF (irow /= icol) CYCLE - - IF (sIZE(block, 1) /= sIZE(block, 2)) & - DBCSR_ABORT("Diagonal block non-squared") + SUBROUTINE dbcsr_add_on_diag_z (matrix, alpha) + !! add a constant to the diagonal of a matrix + + TYPE(dbcsr_type), INTENT(INOUT) :: matrix + !! DBCSR matrix + COMPLEX(kind=real_8), INTENT(IN) :: alpha + !! scalar + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_add_on_diag' - DO i = 1, sIZE(block, 1) - diag(row_offset + i - 1) = block(i, i) - END DO - END DO - CALL dbcsr_iterator_stop(iter) + INTEGER :: handle, mynode, node, irow, i, row_size + LOGICAL :: found, tr + COMPLEX(kind=real_8), DIMENSION(:, :), POINTER :: block + + CALL timeset(routineN, handle) - CALL timestop(handle) - END SUBROUTINE dbcsr_get_diag_z + IF (dbcsr_get_data_type(matrix) /= dbcsr_type_complex_8) & + DBCSR_ABORT("Incompatible data types") - SUBROUTINE dbcsr_add_on_diag_z (matrix, alpha) - !! add a constant to the diagonal of a matrix + IF (.NOT. array_equality(matrix%row_blk_offset, matrix%col_blk_offset)) & + DBCSR_ABORT("matrix not quadratic") - TYPE(dbcsr_type), INTENT(INOUT) :: matrix - !! DBCSR matrix - COMPLEX(kind=real_8), INTENT(IN) :: alpha - !! scalar - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_add_on_diag' - - INTEGER :: handle, mynode, node, irow, i, row_size - LOGICAL :: found, tr - COMPLEX(kind=real_8), DIMENSION(:, :), POINTER :: block - - CALL timeset(routineN, handle) - - IF (dbcsr_get_data_type(matrix) /= dbcsr_type_complex_8) & - DBCSR_ABORT("Incompatible data types") - - IF (.NOT. array_equality(matrix%row_blk_offset, matrix%col_blk_offset)) & - DBCSR_ABORT("matrix not quadratic") - - mynode = dbcsr_mp_mynode(dbcsr_distribution_mp(dbcsr_distribution(matrix))) - - CALL dbcsr_work_create(matrix, work_mutable=.TRUE.) - - DO irow = 1, dbcsr_nblkrows_total(matrix) - CALL dbcsr_get_stored_coordinates(matrix, irow, irow, node) - IF (node /= mynode) CYCLE - - CALL dbcsr_get_block_p(matrix, irow, irow, block, tr, found, row_size=row_size) - IF (.NOT. found) THEN - ALLOCATE (block(row_size, row_size)) - block(:, :) = CMPLX(0.0, 0.0, real_8) - END IF - - DO i = 1, row_size - block(i, i) = block(i, i) + alpha - END DO - - IF (.NOT. found) THEN - CALL dbcsr_put_block(matrix, irow, irow, block) - DEALLOCATE (block) - END IF - END DO - - CALL dbcsr_finalize(matrix) - CALL timestop(handle) - END SUBROUTINE dbcsr_add_on_diag_z - - SUBROUTINE dbcsr_update_contiguous_blocks_z (matrix_a, matrix_b, first_lb_a, first_lb_b, nze, & - do_scale, my_beta_scalar, found, iw) - !! Low level function to sum contiguous chunks of blocks of the matrices (matrix_a = matrix_a + beta*matrix_b) - - TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a - !! DBCSR matrix - TYPE(dbcsr_type), INTENT(IN) :: matrix_b - !! DBCSR matrix - TYPE(dbcsr_scalar_type), INTENT(IN) :: my_beta_scalar - INTEGER, INTENT(IN) :: first_lb_a, first_lb_b, nze, iw - LOGICAL, INTENT(IN) :: found, do_scale - - INTEGER :: ub_a, ub_b - - ub_a = first_lb_a + nze - 1 - ub_b = first_lb_b + nze - 1 - - IF (found) THEN - IF (do_scale) THEN - CALL zaxpy(nze, my_beta_scalar%c_dp, & - matrix_b%data_area%d%c_dp (first_lb_b:ub_b), 1, & - matrix_a%data_area%d%c_dp (first_lb_a:ub_a), 1) - ELSE - matrix_a%data_area%d%c_dp (first_lb_a:ub_a) = & - matrix_a%data_area%d%c_dp (first_lb_a:ub_a) + & - matrix_b%data_area%d%c_dp (first_lb_b:ub_b) - END IF - ELSE - IF (do_scale) THEN - matrix_a%wms(iw)%data_area%d%c_dp (first_lb_a:ub_a) = & - my_beta_scalar%c_dp* & - matrix_b%data_area%d%c_dp (first_lb_b:ub_b) - ELSE - matrix_a%wms(iw)%data_area%d%c_dp (first_lb_a:ub_a) = & - matrix_b%data_area%d%c_dp (first_lb_b:ub_b) - END IF - END IF - END SUBROUTINE dbcsr_update_contiguous_blocks_z - - SUBROUTINE dbcsr_add_anytype_z (matrix_a, matrix_b, iter, iw, do_scale, & - my_beta_scalar, my_flop) - !! Low level function to sum two matrices (matrix_a = matrix_a + beta*matrix_b - - TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a - !! DBCSR matrix - TYPE(dbcsr_type), INTENT(IN) :: matrix_b - !! DBCSR matrix - TYPE(dbcsr_iterator), INTENT(INOUT) :: iter - INTEGER, INTENT(IN) :: iw - LOGICAL, INTENT(IN) :: do_scale - TYPE(dbcsr_scalar_type), INTENT(IN) :: my_beta_scalar - INTEGER(KIND=int_8), INTENT(INOUT) :: my_flop - - INTEGER :: row, col, row_size, col_size, & - nze, tot_nze, blk, & - lb_a, first_lb_a, lb_a_val, & - lb_b, first_lb_b - INTEGER, DIMENSION(2) :: lb_row_blk - LOGICAL :: was_found, found, tr - - ! some start values - lb_row_blk(:) = 0 - first_lb_a = matrix_a%wms(iw)%datasize + 1 - first_lb_b = 0 - tot_nze = 0 - ! - DO WHILE (dbcsr_iterator_blocks_left(iter)) - CALL dbcsr_iterator_next_block(iter, row, col, blk, tr, lb_b, row_size, col_size) - nze = row_size*col_size - IF (nze .LE. 0) CYCLE - IF (lb_row_blk(1) .LT. row) THEN - lb_row_blk(1) = row - lb_row_blk(2) = matrix_a%row_p(row) + 1 - END IF - ! get b-block index - lb_b = ABS(lb_b) - CALL dbcsr_find_column(col, lb_row_blk(2), matrix_a%row_p(row + 1), matrix_a%col_i, matrix_a%blk_p, blk, found) - lb_row_blk(2) = blk + 1 - ! get index of a-block lb_a whether found (from matrix_a) or not (from workspace array) - IF (found) THEN - my_flop = my_flop + nze*2 - lb_a = ABS(matrix_a%blk_p(blk)) - ELSE - lb_a = matrix_a%wms(iw)%datasize + 1 - lb_a_val = lb_a - IF (tr) lb_a_val = -lb_a - matrix_a%wms(iw)%lastblk = matrix_a%wms(iw)%lastblk + 1 - matrix_a%wms(iw)%row_i(matrix_a%wms(iw)%lastblk) = row - matrix_a%wms(iw)%col_i(matrix_a%wms(iw)%lastblk) = col - matrix_a%wms(iw)%blk_p(matrix_a%wms(iw)%lastblk) = lb_a_val - matrix_a%wms(iw)%datasize = matrix_a%wms(iw)%datasize + nze - END IF - ! at the first iteration we skip this and go directly to initialization after - IF (first_lb_b .NE. 0) THEN - ! if found status is the same as before then probably we are in contiguous blocks - IF ((found .EQV. was_found) .AND. & - (first_lb_b + tot_nze .EQ. lb_b) .AND. & - (first_lb_a + tot_nze) .EQ. lb_a) THEN - tot_nze = tot_nze + nze - CYCLE - END IF - ! save block chunk - CALL dbcsr_update_contiguous_blocks_z (matrix_a, matrix_b, first_lb_a, first_lb_b, tot_nze, & - do_scale, my_beta_scalar, was_found, iw) - END IF - ! - first_lb_a = lb_a - first_lb_b = lb_b - tot_nze = nze - was_found = found - END DO - - ! save the last block or chunk of blocks - IF (first_lb_b .NE. 0) THEN - call dbcsr_update_contiguous_blocks_z (matrix_a, matrix_b, first_lb_a, first_lb_b, tot_nze, & - do_scale, my_beta_scalar, was_found, iw) - END IF - - END SUBROUTINE dbcsr_add_anytype_z -# 2639 "/__w/dbcsr/dbcsr/src/ops/dbcsr_operations.F" - SUBROUTINE dbcsr_trace_c (matrix_a, trace) - !! traces a DBCSR matrix + mynode = dbcsr_mp_mynode(dbcsr_distribution_mp(dbcsr_distribution(matrix))) + + CALL dbcsr_work_create(matrix, work_mutable=.TRUE.) + + DO irow = 1, dbcsr_nblkrows_total(matrix) + CALL dbcsr_get_stored_coordinates(matrix, irow, irow, node) + IF (node /= mynode) CYCLE + + CALL dbcsr_get_block_p(matrix, irow, irow, block, tr, found, row_size=row_size) + IF (.NOT. found) THEN + ALLOCATE (block(row_size, row_size)) + block(:, :) = CMPLX(0.0, 0.0, real_8) + END IF + + DO i = 1, row_size + block(i, i) = block(i, i) + alpha + END DO + + IF (.NOT. found) THEN + CALL dbcsr_put_block(matrix, irow, irow, block) + DEALLOCATE (block) + END IF + END DO + + CALL dbcsr_finalize(matrix) + CALL timestop(handle) + END SUBROUTINE dbcsr_add_on_diag_z + + SUBROUTINE dbcsr_update_contiguous_blocks_z (matrix_a, matrix_b, first_lb_a, first_lb_b, nze, & + do_scale, my_beta_scalar, found, iw) + !! Low level function to sum contiguous chunks of blocks of the matrices (matrix_a = matrix_a + beta*matrix_b) + + TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a + !! DBCSR matrix + TYPE(dbcsr_type), INTENT(IN) :: matrix_b + !! DBCSR matrix + TYPE(dbcsr_scalar_type), INTENT(IN) :: my_beta_scalar + INTEGER, INTENT(IN) :: first_lb_a, first_lb_b, nze, iw + LOGICAL, INTENT(IN) :: found, do_scale + + INTEGER :: ub_a, ub_b + + ub_a = first_lb_a + nze - 1 + ub_b = first_lb_b + nze - 1 + + IF (found) THEN + IF (do_scale) THEN + CALL zaxpy(nze, my_beta_scalar%c_dp, & + matrix_b%data_area%d%c_dp (first_lb_b:ub_b), 1, & + matrix_a%data_area%d%c_dp (first_lb_a:ub_a), 1) + ELSE + matrix_a%data_area%d%c_dp (first_lb_a:ub_a) = & + matrix_a%data_area%d%c_dp (first_lb_a:ub_a) + & + matrix_b%data_area%d%c_dp (first_lb_b:ub_b) + END IF + ELSE + IF (do_scale) THEN + matrix_a%wms(iw)%data_area%d%c_dp (first_lb_a:ub_a) = & + my_beta_scalar%c_dp* & + matrix_b%data_area%d%c_dp (first_lb_b:ub_b) + ELSE + matrix_a%wms(iw)%data_area%d%c_dp (first_lb_a:ub_a) = & + matrix_b%data_area%d%c_dp (first_lb_b:ub_b) + END IF + END IF + END SUBROUTINE dbcsr_update_contiguous_blocks_z + + SUBROUTINE dbcsr_add_anytype_z (matrix_a, matrix_b, iter, iw, do_scale, & + my_beta_scalar, my_flop) + !! Low level function to sum two matrices (matrix_a = matrix_a + beta*matrix_b + + TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a + !! DBCSR matrix + TYPE(dbcsr_type), INTENT(IN) :: matrix_b + !! DBCSR matrix + TYPE(dbcsr_iterator), INTENT(INOUT) :: iter + INTEGER, INTENT(IN) :: iw + LOGICAL, INTENT(IN) :: do_scale + TYPE(dbcsr_scalar_type), INTENT(IN) :: my_beta_scalar + INTEGER(KIND=int_8), INTENT(INOUT) :: my_flop + + INTEGER :: row, col, row_size, col_size, & + nze, tot_nze, blk, & + lb_a, first_lb_a, lb_a_val, & + lb_b, first_lb_b + INTEGER, DIMENSION(2) :: lb_row_blk + LOGICAL :: was_found, found, tr + + ! some start values + lb_row_blk(:) = 0 + first_lb_a = matrix_a%wms(iw)%datasize + 1 + first_lb_b = 0 + tot_nze = 0 + ! + DO WHILE (dbcsr_iterator_blocks_left(iter)) + CALL dbcsr_iterator_next_block(iter, row, col, blk, tr, lb_b, row_size, col_size) + nze = row_size*col_size + IF (nze .LE. 0) CYCLE + IF (lb_row_blk(1) .LT. row) THEN + lb_row_blk(1) = row + lb_row_blk(2) = matrix_a%row_p(row) + 1 + END IF + ! get b-block index + lb_b = ABS(lb_b) + CALL dbcsr_find_column(col, lb_row_blk(2), matrix_a%row_p(row + 1), matrix_a%col_i, matrix_a%blk_p, blk, found) + lb_row_blk(2) = blk + 1 + ! get index of a-block lb_a whether found (from matrix_a) or not (from workspace array) + IF (found) THEN + my_flop = my_flop + nze*2 + lb_a = ABS(matrix_a%blk_p(blk)) + ELSE + lb_a = matrix_a%wms(iw)%datasize + 1 + lb_a_val = lb_a + IF (tr) lb_a_val = -lb_a + matrix_a%wms(iw)%lastblk = matrix_a%wms(iw)%lastblk + 1 + matrix_a%wms(iw)%row_i(matrix_a%wms(iw)%lastblk) = row + matrix_a%wms(iw)%col_i(matrix_a%wms(iw)%lastblk) = col + matrix_a%wms(iw)%blk_p(matrix_a%wms(iw)%lastblk) = lb_a_val + matrix_a%wms(iw)%datasize = matrix_a%wms(iw)%datasize + nze + END IF + ! at the first iteration we skip this and go directly to initialization after + IF (first_lb_b .NE. 0) THEN + ! if found status is the same as before then probably we are in contiguous blocks + IF ((found .EQV. was_found) .AND. & + (first_lb_b + tot_nze .EQ. lb_b) .AND. & + (first_lb_a + tot_nze) .EQ. lb_a) THEN + tot_nze = tot_nze + nze + CYCLE + END IF + ! save block chunk + CALL dbcsr_update_contiguous_blocks_z (matrix_a, matrix_b, first_lb_a, first_lb_b, tot_nze, & + do_scale, my_beta_scalar, was_found, iw) + END IF + ! + first_lb_a = lb_a + first_lb_b = lb_b + tot_nze = nze + was_found = found + END DO + + ! save the last block or chunk of blocks + IF (first_lb_b .NE. 0) THEN + call dbcsr_update_contiguous_blocks_z (matrix_a, matrix_b, first_lb_a, first_lb_b, tot_nze, & + do_scale, my_beta_scalar, was_found, iw) + END IF + + END SUBROUTINE dbcsr_add_anytype_z +# 2620 "/__w/dbcsr/dbcsr/src/ops/dbcsr_operations.F" + SUBROUTINE dbcsr_trace_c (matrix_a, trace) + !! traces a DBCSR matrix + + TYPE(dbcsr_type), INTENT(IN) :: matrix_a + !! DBCSR matrix + COMPLEX(kind=real_4), INTENT(INOUT) :: trace + !! the trace of the matrix + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_trace_c' + + INTEGER :: a_blk, a_col, a_col_size, & + a_nze, a_row, a_row_size, i, & + mynode, error_handle + INTEGER, DIMENSION(:), POINTER :: col_blk_size, row_blk_size, & + row_dist, col_dist + COMPLEX(kind=real_4), DIMENSION(:), POINTER :: a_data, data_p + INTEGER, DIMENSION(:, :), POINTER :: pgrid + TYPE(dbcsr_distribution_obj) :: dist + +! --------------------------------------------------------------------------- + CALL timeset(routineN, error_handle) - TYPE(dbcsr_type), INTENT(IN) :: matrix_a - !! DBCSR matrix - COMPLEX(kind=real_4), INTENT(INOUT) :: trace - !! the trace of the matrix - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_trace_c' - - INTEGER :: a_blk, a_col, a_col_size, & - a_nze, a_row, a_row_size, i, & - mynode, error_handle - INTEGER, DIMENSION(:), POINTER :: col_blk_size, row_blk_size, & - row_dist, col_dist - COMPLEX(kind=real_4), DIMENSION(:), POINTER :: a_data, data_p - INTEGER, DIMENSION(:, :), POINTER :: pgrid - TYPE(dbcsr_distribution_obj) :: dist - -! --------------------------------------------------------------------------- - CALL timeset(routineN, error_handle) - - row_blk_size => array_data(matrix_a%row_blk_size) - col_blk_size => array_data(matrix_a%col_blk_size) - IF (dbcsr_get_data_type(matrix_a) /= dbcsr_type_complex_4) & - DBCSR_ABORT("Incompatible data types") - CALL dbcsr_get_data(matrix_a%data_area, data_p) - dist = dbcsr_distribution(matrix_a) - mynode = dbcsr_mp_mynode(dbcsr_distribution_mp(dist)) - pgrid => dbcsr_mp_pgrid(dbcsr_distribution_mp(dist)) - row_dist => dbcsr_distribution_row_dist(dist) - col_dist => dbcsr_distribution_col_dist(dist) - ! - ! let's go - trace = REAL(0.0, real_4) - DO a_row = 1, matrix_a%nblkrows_total - a_row_size = row_blk_size(a_row) - DO a_blk = matrix_a%row_p(a_row) + 1, matrix_a%row_p(a_row + 1) - IF (a_blk .EQ. 0) CYCLE - a_col = matrix_a%col_i(a_blk) - IF (a_col .ne. a_row) CYCLE - ! We must skip non-local blocks in a replicated matrix. - IF (matrix_a%replication_type .NE. dbcsr_repl_full) THEN - IF (mynode .NE. checker_square_proc(a_row, a_col, pgrid, row_dist, col_dist)) & - CYCLE - END IF - a_col_size = col_blk_size(a_col) - IF (a_row_size .NE. a_col_size) & - DBCSR_ABORT("is that a square matrix?") - a_nze = a_row_size**2 - a_data => pointer_view(data_p, ABS(matrix_a%blk_p(a_blk)), & - ABS(matrix_a%blk_p(a_blk)) + a_nze - 1) - !data_a => matrix_a%data(ABS(matrix_a%blk_p(a_blk)):ABS(matrix_a%blk_p(a_blk))+a_nze-1) - ! - ! let's trace the block - DO i = 1, a_row_size - trace = trace + a_data((i - 1)*a_row_size + i) - END DO - END DO ! a_col - END DO ! a_row - ! - ! summe - CALL mp_sum(trace, dbcsr_mp_group(dbcsr_distribution_mp(matrix_a%dist))) - - CALL timestop(error_handle) - END SUBROUTINE dbcsr_trace_c + row_blk_size => array_data(matrix_a%row_blk_size) + col_blk_size => array_data(matrix_a%col_blk_size) + IF (dbcsr_get_data_type(matrix_a) /= dbcsr_type_complex_4) & + DBCSR_ABORT("Incompatible data types") + CALL dbcsr_get_data(matrix_a%data_area, data_p) + dist = dbcsr_distribution(matrix_a) + mynode = dbcsr_mp_mynode(dbcsr_distribution_mp(dist)) + pgrid => dbcsr_mp_pgrid(dbcsr_distribution_mp(dist)) + row_dist => dbcsr_distribution_row_dist(dist) + col_dist => dbcsr_distribution_col_dist(dist) + ! + ! let's go + trace = REAL(0.0, real_4) + DO a_row = 1, matrix_a%nblkrows_total + a_row_size = row_blk_size(a_row) + DO a_blk = matrix_a%row_p(a_row) + 1, matrix_a%row_p(a_row + 1) + IF (a_blk .EQ. 0) CYCLE + a_col = matrix_a%col_i(a_blk) + IF (a_col .ne. a_row) CYCLE + ! We must skip non-local blocks in a replicated matrix. + IF (matrix_a%replication_type .NE. dbcsr_repl_full) THEN + IF (mynode .NE. checker_square_proc(a_row, a_col, pgrid, row_dist, col_dist)) & + CYCLE + END IF + a_col_size = col_blk_size(a_col) + IF (a_row_size .NE. a_col_size) & + DBCSR_ABORT("is that a square matrix?") + a_nze = a_row_size**2 + a_data => pointer_view(data_p, ABS(matrix_a%blk_p(a_blk)), & + ABS(matrix_a%blk_p(a_blk)) + a_nze - 1) + !data_a => matrix_a%data(ABS(matrix_a%blk_p(a_blk)):ABS(matrix_a%blk_p(a_blk))+a_nze-1) + ! + ! let's trace the block + DO i = 1, a_row_size + trace = trace + a_data((i - 1)*a_row_size + i) + END DO + END DO ! a_col + END DO ! a_row + ! + ! summe + CALL mp_sum(trace, dbcsr_mp_group(dbcsr_distribution_mp(matrix_a%dist))) + + CALL timestop(error_handle) + END SUBROUTINE dbcsr_trace_c + + SUBROUTINE dbcsr_dot_c (matrix_a, matrix_b, trace) + !! Dot product of DBCSR matrices + + TYPE(dbcsr_type), INTENT(IN) :: matrix_a, matrix_b + !! DBCSR matrices + !! DBCSR matrices + COMPLEX(kind=real_4), INTENT(INOUT) :: trace + !! the trace of the product of the matrices + + INTEGER :: a_blk, a_col, a_col_size, a_row_size, b_blk, b_col_size, & + b_frst_blk, b_last_blk, b_row_size, nze, row, a_beg, a_end, b_beg, b_end + CHARACTER :: matrix_a_type, matrix_b_type + INTEGER, DIMENSION(:), POINTER :: a_col_blk_size, & + a_row_blk_size, & + b_col_blk_size, b_row_blk_size + COMPLEX(kind=real_4) :: sym_fac, fac + LOGICAL :: found, matrix_a_symm, matrix_b_symm + COMPLEX(kind=real_4), DIMENSION(:), POINTER :: a_data, b_data - SUBROUTINE dbcsr_dot_c (matrix_a, matrix_b, trace) - !! Dot product of DBCSR matrices - - TYPE(dbcsr_type), INTENT(IN) :: matrix_a, matrix_b - !! DBCSR matrices - !! DBCSR matrices - COMPLEX(kind=real_4), INTENT(INOUT) :: trace - !! the trace of the product of the matrices - - INTEGER :: a_blk, a_col, a_col_size, a_row_size, b_blk, b_col_size, & - b_frst_blk, b_last_blk, b_row_size, nze, row, a_beg, a_end, b_beg, b_end - CHARACTER :: matrix_a_type, matrix_b_type - INTEGER, DIMENSION(:), POINTER :: a_col_blk_size, & - a_row_blk_size, & - b_col_blk_size, b_row_blk_size - COMPLEX(kind=real_4) :: sym_fac, fac - LOGICAL :: found, matrix_a_symm, matrix_b_symm - COMPLEX(kind=real_4), DIMENSION(:), POINTER :: a_data, b_data - -! --------------------------------------------------------------------------- - - IF (matrix_a%replication_type .NE. dbcsr_repl_none & - .OR. matrix_b%replication_type .NE. dbcsr_repl_none) & - DBCSR_ABORT("Trace of product of replicated matrices not yet possible.") - - sym_fac = REAL(1.0, real_4) - matrix_a_type = dbcsr_get_matrix_type(matrix_a) - matrix_b_type = dbcsr_get_matrix_type(matrix_b) - matrix_a_symm = matrix_a_type == dbcsr_type_symmetric .OR. matrix_a_type == dbcsr_type_antisymmetric - matrix_b_symm = matrix_b_type == dbcsr_type_symmetric .OR. matrix_b_type == dbcsr_type_antisymmetric - - IF (matrix_a_symm .AND. matrix_b_symm) sym_fac = REAL(2.0, real_4) - - ! tracing a symmetric with a general matrix is not implemented, as it would require communication of blocks - IF (matrix_a_symm .NEQV. matrix_b_symm) & - DBCSR_ABORT("Tracing general with symmetric matrix NYI") - - a_row_blk_size => array_data(matrix_a%row_blk_size) - a_col_blk_size => array_data(matrix_a%col_blk_size) - b_row_blk_size => array_data(matrix_b%row_blk_size) - b_col_blk_size => array_data(matrix_b%col_blk_size) - - CALL dbcsr_get_data(matrix_a%data_area, a_data) - CALL dbcsr_get_data(matrix_b%data_area, b_data) - - ! let's go - trace = REAL(0.0, real_4) - IF (matrix_a%nblkrows_total .NE. matrix_b%nblkrows_total) & - DBCSR_ABORT("this combination of transpose is NYI") - DO row = 1, matrix_a%nblkrows_total - a_row_size = a_row_blk_size(row) - b_row_size = b_row_blk_size(row) - IF (a_row_size .NE. b_row_size) DBCSR_ABORT("matrices not consistent") - b_blk = matrix_b%row_p(row) + 1 - b_frst_blk = matrix_b%row_p(row) + 1 - b_last_blk = matrix_b%row_p(row + 1) - DO a_blk = matrix_a%row_p(row) + 1, matrix_a%row_p(row + 1) - IF (matrix_a%blk_p(a_blk) .EQ. 0) CYCLE ! Deleted block - a_col = matrix_a%col_i(a_blk) - a_col_size = a_col_blk_size(a_col) - ! - ! find the b_blk we assume here that the columns are ordered ! - CALL dbcsr_find_column(a_col, b_frst_blk, b_last_blk, matrix_b%col_i, & - matrix_b%blk_p, b_blk, found) - IF (found) THEN - b_col_size = b_col_blk_size(a_col) - IF (a_col_size .NE. b_col_size) DBCSR_ABORT("matrices not consistent") - ! - nze = a_row_size*a_col_size - ! - IF (nze .GT. 0) THEN - ! - ! let's trace the blocks - a_beg = ABS(matrix_a%blk_p(a_blk)) - a_end = a_beg + nze - 1 - b_beg = ABS(matrix_b%blk_p(b_blk)) - b_end = b_beg + nze - 1 - fac = REAL(1.0, real_4) - IF (row .NE. a_col) fac = sym_fac - - trace = trace + fac*SUM(a_data(a_beg:a_end)*b_data(b_beg:b_end)) - - END IF - END IF - END DO ! a_col - END DO ! a_row - ! - ! sum - CALL mp_sum(trace, dbcsr_mp_group(dbcsr_distribution_mp(matrix_a%dist))) - - END SUBROUTINE dbcsr_dot_c - - SUBROUTINE dbcsr_scale_c (matrix_a, alpha_scalar, last_column) - !! Interface for matrix scaling by a scalar - TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a - COMPLEX(kind=real_4), INTENT(IN) :: alpha_scalar - INTEGER, INTENT(IN), OPTIONAL :: last_column +! --------------------------------------------------------------------------- + + IF (matrix_a%replication_type .NE. dbcsr_repl_none & + .OR. matrix_b%replication_type .NE. dbcsr_repl_none) & + DBCSR_ABORT("Trace of product of replicated matrices not yet possible.") + + sym_fac = REAL(1.0, real_4) + matrix_a_type = dbcsr_get_matrix_type(matrix_a) + matrix_b_type = dbcsr_get_matrix_type(matrix_b) + matrix_a_symm = matrix_a_type == dbcsr_type_symmetric .OR. matrix_a_type == dbcsr_type_antisymmetric + matrix_b_symm = matrix_b_type == dbcsr_type_symmetric .OR. matrix_b_type == dbcsr_type_antisymmetric + + IF (matrix_a_symm .AND. matrix_b_symm) sym_fac = REAL(2.0, real_4) + + ! tracing a symmetric with a general matrix is not implemented, as it would require communication of blocks + IF (matrix_a_symm .NEQV. matrix_b_symm) & + DBCSR_ABORT("Tracing general with symmetric matrix NYI") + + a_row_blk_size => array_data(matrix_a%row_blk_size) + a_col_blk_size => array_data(matrix_a%col_blk_size) + b_row_blk_size => array_data(matrix_b%row_blk_size) + b_col_blk_size => array_data(matrix_b%col_blk_size) + + CALL dbcsr_get_data(matrix_a%data_area, a_data) + CALL dbcsr_get_data(matrix_b%data_area, b_data) + + ! let's go + trace = REAL(0.0, real_4) + IF (matrix_a%nblkrows_total .NE. matrix_b%nblkrows_total) & + DBCSR_ABORT("this combination of transpose is NYI") + DO row = 1, matrix_a%nblkrows_total + a_row_size = a_row_blk_size(row) + b_row_size = b_row_blk_size(row) + IF (a_row_size .NE. b_row_size) DBCSR_ABORT("matrices not consistent") + b_blk = matrix_b%row_p(row) + 1 + b_frst_blk = matrix_b%row_p(row) + 1 + b_last_blk = matrix_b%row_p(row + 1) + DO a_blk = matrix_a%row_p(row) + 1, matrix_a%row_p(row + 1) + IF (matrix_a%blk_p(a_blk) .EQ. 0) CYCLE ! Deleted block + a_col = matrix_a%col_i(a_blk) + a_col_size = a_col_blk_size(a_col) + ! + ! find the b_blk we assume here that the columns are ordered ! + CALL dbcsr_find_column(a_col, b_frst_blk, b_last_blk, matrix_b%col_i, & + matrix_b%blk_p, b_blk, found) + IF (found) THEN + b_col_size = b_col_blk_size(a_col) + IF (a_col_size .NE. b_col_size) DBCSR_ABORT("matrices not consistent") + ! + nze = a_row_size*a_col_size + ! + IF (nze .GT. 0) THEN + ! + ! let's trace the blocks + a_beg = ABS(matrix_a%blk_p(a_blk)) + a_end = a_beg + nze - 1 + b_beg = ABS(matrix_b%blk_p(b_blk)) + b_end = b_beg + nze - 1 + fac = REAL(1.0, real_4) + IF (row .NE. a_col) fac = sym_fac + + trace = trace + fac*SUM(a_data(a_beg:a_end)*b_data(b_beg:b_end)) + + END IF + END IF + END DO ! a_col + END DO ! a_row + ! + ! sum + CALL mp_sum(trace, dbcsr_mp_group(dbcsr_distribution_mp(matrix_a%dist))) + + END SUBROUTINE dbcsr_dot_c + + SUBROUTINE dbcsr_scale_c (matrix_a, alpha_scalar, last_column) + !! Interface for matrix scaling by a scalar + TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a + COMPLEX(kind=real_4), INTENT(IN) :: alpha_scalar + INTEGER, INTENT(IN), OPTIONAL :: last_column + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_scale_c' + + INTEGER :: error_handler + TYPE(dbcsr_scalar_type) :: sc + + sc = dbcsr_scalar(alpha_scalar) + CALL dbcsr_scalar_fill_all(sc) + sc%data_type = dbcsr_get_data_type(matrix_a) + CALL timeset(routineN, error_handler) + IF (PRESENT(last_column)) THEN + CALL dbcsr_scale_anytype(matrix_a, & + alpha_scalar=sc, & + limits=(/0, 0, 0, last_column/)) + ELSE + CALL dbcsr_scale_anytype(matrix_a, alpha_scalar=sc) + END IF + CALL timestop(error_handler) + END SUBROUTINE dbcsr_scale_c - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_scale_c' - - INTEGER :: error_handler - TYPE(dbcsr_scalar_type) :: sc - - sc = dbcsr_scalar(alpha_scalar) - CALL dbcsr_scalar_fill_all(sc) - sc%data_type = dbcsr_get_data_type(matrix_a) - CALL timeset(routineN, error_handler) - IF (PRESENT(last_column)) THEN - CALL dbcsr_scale_anytype(matrix_a, & - alpha_scalar=sc, & - limits=(/0, 0, 0, last_column/)) - ELSE - CALL dbcsr_scale_anytype(matrix_a, alpha_scalar=sc) - END IF - CALL timestop(error_handler) - END SUBROUTINE dbcsr_scale_c - - SUBROUTINE dbcsr_scale_by_vector_c (matrix_a, alpha, side) - !! Interface for matrix scaling by a vector - TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a - COMPLEX(kind=real_4), DIMENSION(:), INTENT(IN), TARGET, CONTIGUOUS :: alpha - CHARACTER(LEN=*), INTENT(IN) :: side - COMPLEX(kind=real_4), DIMENSION(:), POINTER, CONTIGUOUS :: tmp_p - TYPE(dbcsr_data_obj) :: enc_alpha_vec - - CALL dbcsr_data_init(enc_alpha_vec) - CALL dbcsr_data_new(enc_alpha_vec, dbcsr_type_complex_4) - tmp_p => alpha - CALL dbcsr_data_set_pointer(enc_alpha_vec, tmp_p) - CALL dbcsr_scale_by_vector_anytype(matrix_a, enc_alpha_vec, side) - CALL dbcsr_data_clear_pointer(enc_alpha_vec) - CALL dbcsr_data_release(enc_alpha_vec) - END SUBROUTINE dbcsr_scale_by_vector_c - - SUBROUTINE dbcsr_set_c (matrix, alpha) - !! Interface for dbcsr_set - TYPE(dbcsr_type), INTENT(INOUT) :: matrix - COMPLEX(kind=real_4), INTENT(IN) :: alpha - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_set' - - INTEGER :: col, handle, row - TYPE(dbcsr_iterator) :: iter - COMPLEX(kind=real_4), DIMENSION(:, :), POINTER :: block - LOGICAL :: tr - - CALL timeset(routineN, handle) - - IF (alpha == CMPLX(0.0, 0.0, real_4)) THEN - CALL dbcsr_zero(matrix) - ELSE - IF (dbcsr_get_data_type(matrix) /= dbcsr_type_complex_4) & - DBCSR_ABORT("Incompatible data types") - - !TODO: could be speedup by direct assignment to data_area, similar to dbcsr_zero() - CALL dbcsr_iterator_start(iter, matrix) - DO WHILE (dbcsr_iterator_blocks_left(iter)) - CALL dbcsr_iterator_next_block(iter, row, col, block, tr) - block(:, :) = alpha - END DO - CALL dbcsr_iterator_stop(iter) - END IF + SUBROUTINE dbcsr_scale_by_vector_c (matrix_a, alpha, side) + !! Interface for matrix scaling by a vector + TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a + COMPLEX(kind=real_4), DIMENSION(:), INTENT(IN), TARGET, CONTIGUOUS :: alpha + CHARACTER(LEN=*), INTENT(IN) :: side + COMPLEX(kind=real_4), DIMENSION(:), POINTER, CONTIGUOUS :: tmp_p + TYPE(dbcsr_data_obj) :: enc_alpha_vec + + CALL dbcsr_data_init(enc_alpha_vec) + CALL dbcsr_data_new(enc_alpha_vec, dbcsr_type_complex_4) + tmp_p => alpha + CALL dbcsr_data_set_pointer(enc_alpha_vec, tmp_p) + CALL dbcsr_scale_by_vector_anytype(matrix_a, enc_alpha_vec, side) + CALL dbcsr_data_clear_pointer(enc_alpha_vec) + CALL dbcsr_data_release(enc_alpha_vec) + END SUBROUTINE dbcsr_scale_by_vector_c + + SUBROUTINE dbcsr_set_c (matrix, alpha) + !! Interface for dbcsr_set + TYPE(dbcsr_type), INTENT(INOUT) :: matrix + COMPLEX(kind=real_4), INTENT(IN) :: alpha + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_set' + + INTEGER :: col, handle, row + TYPE(dbcsr_iterator) :: iter + COMPLEX(kind=real_4), DIMENSION(:, :), POINTER :: block + LOGICAL :: tr + + CALL timeset(routineN, handle) + + IF (alpha == CMPLX(0.0, 0.0, real_4)) THEN + CALL dbcsr_zero(matrix) + ELSE + IF (dbcsr_get_data_type(matrix) /= dbcsr_type_complex_4) & + DBCSR_ABORT("Incompatible data types") + + !TODO: could be speedup by direct assignment to data_area, similar to dbcsr_zero() + CALL dbcsr_iterator_start(iter, matrix) + DO WHILE (dbcsr_iterator_blocks_left(iter)) + CALL dbcsr_iterator_next_block(iter, row, col, block, tr) + block(:, :) = alpha + END DO + CALL dbcsr_iterator_stop(iter) + END IF + + CALL timestop(handle) + END SUBROUTINE dbcsr_set_c + + SUBROUTINE dbcsr_filter_c (matrix, eps, method, use_absolute, & + filter_diag) + TYPE(dbcsr_type), INTENT(INOUT) :: matrix + COMPLEX(kind=real_4), INTENT(IN) :: eps + INTEGER, INTENT(IN), OPTIONAL :: method + LOGICAL, INTENT(in), OPTIONAL :: use_absolute, filter_diag + CALL dbcsr_filter_anytype(matrix, dbcsr_scalar(eps), method, & + use_absolute, filter_diag) + END SUBROUTINE dbcsr_filter_c + + SUBROUTINE dbcsr_set_diag_c (matrix, diag) + TYPE(dbcsr_type), INTENT(INOUT) :: matrix + COMPLEX(kind=real_4), DIMENSION(:), INTENT(IN) :: diag + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_set_diag' - CALL timestop(handle) - END SUBROUTINE dbcsr_set_c - - SUBROUTINE dbcsr_filter_c (matrix, eps, method, use_absolute, & - filter_diag) - TYPE(dbcsr_type), INTENT(INOUT) :: matrix - COMPLEX(kind=real_4), INTENT(IN) :: eps - INTEGER, INTENT(IN), OPTIONAL :: method - LOGICAL, INTENT(in), OPTIONAL :: use_absolute, filter_diag - CALL dbcsr_filter_anytype(matrix, dbcsr_scalar(eps), method, & - use_absolute, filter_diag) - END SUBROUTINE dbcsr_filter_c + INTEGER :: icol, irow, row_offset, handle, i + LOGICAL :: tr + TYPE(dbcsr_iterator) :: iter + COMPLEX(kind=real_4), DIMENSION(:, :), POINTER :: block + + CALL timeset(routineN, handle) + + IF (dbcsr_get_data_type(matrix) /= dbcsr_type_complex_4) & + DBCSR_ABORT("Incompatible data types") + + IF (dbcsr_nfullrows_total(matrix) /= SIZE(diag)) & + DBCSR_ABORT("Diagonal has wrong size") - SUBROUTINE dbcsr_set_diag_c (matrix, diag) - TYPE(dbcsr_type), INTENT(INOUT) :: matrix - COMPLEX(kind=real_4), DIMENSION(:), INTENT(IN) :: diag - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_set_diag' - - INTEGER :: icol, irow, row_offset, handle, i - LOGICAL :: tr - TYPE(dbcsr_iterator) :: iter - COMPLEX(kind=real_4), DIMENSION(:, :), POINTER :: block + IF (.NOT. array_equality(matrix%row_blk_offset, matrix%col_blk_offset)) & + DBCSR_ABORT("matrix not quadratic") + + CALL dbcsr_iterator_start(iter, matrix) + DO WHILE (dbcsr_iterator_blocks_left(iter)) + CALL dbcsr_iterator_next_block(iter, irow, icol, block, tr, row_offset=row_offset) + IF (irow /= icol) CYCLE + + IF (sIZE(block, 1) /= sIZE(block, 2)) & + DBCSR_ABORT("Diagonal block non-squared") - CALL timeset(routineN, handle) - - IF (dbcsr_get_data_type(matrix) /= dbcsr_type_complex_4) & - DBCSR_ABORT("Incompatible data types") - - IF (dbcsr_nfullrows_total(matrix) /= SIZE(diag)) & - DBCSR_ABORT("Diagonal has wrong size") - - IF (.NOT. array_equality(matrix%row_blk_offset, matrix%col_blk_offset)) & - DBCSR_ABORT("matrix not quadratic") - - CALL dbcsr_iterator_start(iter, matrix) - DO WHILE (dbcsr_iterator_blocks_left(iter)) - CALL dbcsr_iterator_next_block(iter, irow, icol, block, tr, row_offset=row_offset) - IF (irow /= icol) CYCLE - - IF (sIZE(block, 1) /= sIZE(block, 2)) & - DBCSR_ABORT("Diagonal block non-squared") - - DO i = 1, sIZE(block, 1) - block(i, i) = diag(row_offset + i - 1) - END DO - END DO - CALL dbcsr_iterator_stop(iter) + DO i = 1, sIZE(block, 1) + block(i, i) = diag(row_offset + i - 1) + END DO + END DO + CALL dbcsr_iterator_stop(iter) + + CALL timestop(handle) + END SUBROUTINE dbcsr_set_diag_c + + SUBROUTINE dbcsr_get_diag_c (matrix, diag) + TYPE(dbcsr_type), INTENT(IN) :: matrix + COMPLEX(kind=real_4), DIMENSION(:), INTENT(OUT) :: diag + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_get_diag' + + INTEGER :: icol, irow, row_offset, handle, i + LOGICAL :: tr + TYPE(dbcsr_iterator) :: iter + COMPLEX(kind=real_4), DIMENSION(:, :), POINTER :: block + + CALL timeset(routineN, handle) + + IF (dbcsr_get_data_type(matrix) /= dbcsr_type_complex_4) & + DBCSR_ABORT("Incompatible data types") - CALL timestop(handle) - END SUBROUTINE dbcsr_set_diag_c + IF (dbcsr_nfullrows_total(matrix) /= SIZE(diag)) & + DBCSR_ABORT("Diagonal has wrong size") - SUBROUTINE dbcsr_get_diag_c (matrix, diag) - TYPE(dbcsr_type), INTENT(IN) :: matrix - COMPLEX(kind=real_4), DIMENSION(:), INTENT(OUT) :: diag - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_get_diag' - - INTEGER :: icol, irow, row_offset, handle, i - LOGICAL :: tr - TYPE(dbcsr_iterator) :: iter - COMPLEX(kind=real_4), DIMENSION(:, :), POINTER :: block - - CALL timeset(routineN, handle) + IF (.NOT. array_equality(matrix%row_blk_offset, matrix%col_blk_offset)) & + DBCSR_ABORT("matrix not quadratic") + + diag(:) = CMPLX(0.0, 0.0, real_4) + + CALL dbcsr_iterator_start(iter, matrix) + DO WHILE (dbcsr_iterator_blocks_left(iter)) + CALL dbcsr_iterator_next_block(iter, irow, icol, block, tr, row_offset=row_offset) + IF (irow /= icol) CYCLE + + IF (sIZE(block, 1) /= sIZE(block, 2)) & + DBCSR_ABORT("Diagonal block non-squared") - IF (dbcsr_get_data_type(matrix) /= dbcsr_type_complex_4) & - DBCSR_ABORT("Incompatible data types") - - IF (dbcsr_nfullrows_total(matrix) /= SIZE(diag)) & - DBCSR_ABORT("Diagonal has wrong size") + DO i = 1, sIZE(block, 1) + diag(row_offset + i - 1) = block(i, i) + END DO + END DO + CALL dbcsr_iterator_stop(iter) - IF (.NOT. array_equality(matrix%row_blk_offset, matrix%col_blk_offset)) & - DBCSR_ABORT("matrix not quadratic") + CALL timestop(handle) + END SUBROUTINE dbcsr_get_diag_c - diag(:) = CMPLX(0.0, 0.0, real_4) - - CALL dbcsr_iterator_start(iter, matrix) - DO WHILE (dbcsr_iterator_blocks_left(iter)) - CALL dbcsr_iterator_next_block(iter, irow, icol, block, tr, row_offset=row_offset) - IF (irow /= icol) CYCLE - - IF (sIZE(block, 1) /= sIZE(block, 2)) & - DBCSR_ABORT("Diagonal block non-squared") + SUBROUTINE dbcsr_add_on_diag_c (matrix, alpha) + !! add a constant to the diagonal of a matrix + + TYPE(dbcsr_type), INTENT(INOUT) :: matrix + !! DBCSR matrix + COMPLEX(kind=real_4), INTENT(IN) :: alpha + !! scalar + + CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_add_on_diag' - DO i = 1, sIZE(block, 1) - diag(row_offset + i - 1) = block(i, i) - END DO - END DO - CALL dbcsr_iterator_stop(iter) + INTEGER :: handle, mynode, node, irow, i, row_size + LOGICAL :: found, tr + COMPLEX(kind=real_4), DIMENSION(:, :), POINTER :: block + + CALL timeset(routineN, handle) - CALL timestop(handle) - END SUBROUTINE dbcsr_get_diag_c + IF (dbcsr_get_data_type(matrix) /= dbcsr_type_complex_4) & + DBCSR_ABORT("Incompatible data types") - SUBROUTINE dbcsr_add_on_diag_c (matrix, alpha) - !! add a constant to the diagonal of a matrix + IF (.NOT. array_equality(matrix%row_blk_offset, matrix%col_blk_offset)) & + DBCSR_ABORT("matrix not quadratic") - TYPE(dbcsr_type), INTENT(INOUT) :: matrix - !! DBCSR matrix - COMPLEX(kind=real_4), INTENT(IN) :: alpha - !! scalar - - CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_add_on_diag' - - INTEGER :: handle, mynode, node, irow, i, row_size - LOGICAL :: found, tr - COMPLEX(kind=real_4), DIMENSION(:, :), POINTER :: block - - CALL timeset(routineN, handle) - - IF (dbcsr_get_data_type(matrix) /= dbcsr_type_complex_4) & - DBCSR_ABORT("Incompatible data types") - - IF (.NOT. array_equality(matrix%row_blk_offset, matrix%col_blk_offset)) & - DBCSR_ABORT("matrix not quadratic") - - mynode = dbcsr_mp_mynode(dbcsr_distribution_mp(dbcsr_distribution(matrix))) - - CALL dbcsr_work_create(matrix, work_mutable=.TRUE.) - - DO irow = 1, dbcsr_nblkrows_total(matrix) - CALL dbcsr_get_stored_coordinates(matrix, irow, irow, node) - IF (node /= mynode) CYCLE - - CALL dbcsr_get_block_p(matrix, irow, irow, block, tr, found, row_size=row_size) - IF (.NOT. found) THEN - ALLOCATE (block(row_size, row_size)) - block(:, :) = CMPLX(0.0, 0.0, real_4) - END IF - - DO i = 1, row_size - block(i, i) = block(i, i) + alpha - END DO - - IF (.NOT. found) THEN - CALL dbcsr_put_block(matrix, irow, irow, block) - DEALLOCATE (block) - END IF - END DO - - CALL dbcsr_finalize(matrix) - CALL timestop(handle) - END SUBROUTINE dbcsr_add_on_diag_c - - SUBROUTINE dbcsr_update_contiguous_blocks_c (matrix_a, matrix_b, first_lb_a, first_lb_b, nze, & - do_scale, my_beta_scalar, found, iw) - !! Low level function to sum contiguous chunks of blocks of the matrices (matrix_a = matrix_a + beta*matrix_b) - - TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a - !! DBCSR matrix - TYPE(dbcsr_type), INTENT(IN) :: matrix_b - !! DBCSR matrix - TYPE(dbcsr_scalar_type), INTENT(IN) :: my_beta_scalar - INTEGER, INTENT(IN) :: first_lb_a, first_lb_b, nze, iw - LOGICAL, INTENT(IN) :: found, do_scale - - INTEGER :: ub_a, ub_b - - ub_a = first_lb_a + nze - 1 - ub_b = first_lb_b + nze - 1 - - IF (found) THEN - IF (do_scale) THEN - CALL caxpy(nze, my_beta_scalar%c_sp, & - matrix_b%data_area%d%c_sp (first_lb_b:ub_b), 1, & - matrix_a%data_area%d%c_sp (first_lb_a:ub_a), 1) - ELSE - matrix_a%data_area%d%c_sp (first_lb_a:ub_a) = & - matrix_a%data_area%d%c_sp (first_lb_a:ub_a) + & - matrix_b%data_area%d%c_sp (first_lb_b:ub_b) - END IF - ELSE - IF (do_scale) THEN - matrix_a%wms(iw)%data_area%d%c_sp (first_lb_a:ub_a) = & - my_beta_scalar%c_sp* & - matrix_b%data_area%d%c_sp (first_lb_b:ub_b) - ELSE - matrix_a%wms(iw)%data_area%d%c_sp (first_lb_a:ub_a) = & - matrix_b%data_area%d%c_sp (first_lb_b:ub_b) - END IF - END IF - END SUBROUTINE dbcsr_update_contiguous_blocks_c - - SUBROUTINE dbcsr_add_anytype_c (matrix_a, matrix_b, iter, iw, do_scale, & - my_beta_scalar, my_flop) - !! Low level function to sum two matrices (matrix_a = matrix_a + beta*matrix_b - - TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a - !! DBCSR matrix - TYPE(dbcsr_type), INTENT(IN) :: matrix_b - !! DBCSR matrix - TYPE(dbcsr_iterator), INTENT(INOUT) :: iter - INTEGER, INTENT(IN) :: iw - LOGICAL, INTENT(IN) :: do_scale - TYPE(dbcsr_scalar_type), INTENT(IN) :: my_beta_scalar - INTEGER(KIND=int_8), INTENT(INOUT) :: my_flop - - INTEGER :: row, col, row_size, col_size, & - nze, tot_nze, blk, & - lb_a, first_lb_a, lb_a_val, & - lb_b, first_lb_b - INTEGER, DIMENSION(2) :: lb_row_blk - LOGICAL :: was_found, found, tr - - ! some start values - lb_row_blk(:) = 0 - first_lb_a = matrix_a%wms(iw)%datasize + 1 - first_lb_b = 0 - tot_nze = 0 - ! - DO WHILE (dbcsr_iterator_blocks_left(iter)) - CALL dbcsr_iterator_next_block(iter, row, col, blk, tr, lb_b, row_size, col_size) - nze = row_size*col_size - IF (nze .LE. 0) CYCLE - IF (lb_row_blk(1) .LT. row) THEN - lb_row_blk(1) = row - lb_row_blk(2) = matrix_a%row_p(row) + 1 - END IF - ! get b-block index - lb_b = ABS(lb_b) - CALL dbcsr_find_column(col, lb_row_blk(2), matrix_a%row_p(row + 1), matrix_a%col_i, matrix_a%blk_p, blk, found) - lb_row_blk(2) = blk + 1 - ! get index of a-block lb_a whether found (from matrix_a) or not (from workspace array) - IF (found) THEN - my_flop = my_flop + nze*2 - lb_a = ABS(matrix_a%blk_p(blk)) - ELSE - lb_a = matrix_a%wms(iw)%datasize + 1 - lb_a_val = lb_a - IF (tr) lb_a_val = -lb_a - matrix_a%wms(iw)%lastblk = matrix_a%wms(iw)%lastblk + 1 - matrix_a%wms(iw)%row_i(matrix_a%wms(iw)%lastblk) = row - matrix_a%wms(iw)%col_i(matrix_a%wms(iw)%lastblk) = col - matrix_a%wms(iw)%blk_p(matrix_a%wms(iw)%lastblk) = lb_a_val - matrix_a%wms(iw)%datasize = matrix_a%wms(iw)%datasize + nze - END IF - ! at the first iteration we skip this and go directly to initialization after - IF (first_lb_b .NE. 0) THEN - ! if found status is the same as before then probably we are in contiguous blocks - IF ((found .EQV. was_found) .AND. & - (first_lb_b + tot_nze .EQ. lb_b) .AND. & - (first_lb_a + tot_nze) .EQ. lb_a) THEN - tot_nze = tot_nze + nze - CYCLE - END IF - ! save block chunk - CALL dbcsr_update_contiguous_blocks_c (matrix_a, matrix_b, first_lb_a, first_lb_b, tot_nze, & - do_scale, my_beta_scalar, was_found, iw) - END IF - ! - first_lb_a = lb_a - first_lb_b = lb_b - tot_nze = nze - was_found = found - END DO - - ! save the last block or chunk of blocks - IF (first_lb_b .NE. 0) THEN - call dbcsr_update_contiguous_blocks_c (matrix_a, matrix_b, first_lb_a, first_lb_b, tot_nze, & - do_scale, my_beta_scalar, was_found, iw) - END IF - - END SUBROUTINE dbcsr_add_anytype_c -# 3132 "/__w/dbcsr/dbcsr/src/ops/dbcsr_operations.F" - -END MODULE dbcsr_operations + mynode = dbcsr_mp_mynode(dbcsr_distribution_mp(dbcsr_distribution(matrix))) + + CALL dbcsr_work_create(matrix, work_mutable=.TRUE.) + + DO irow = 1, dbcsr_nblkrows_total(matrix) + CALL dbcsr_get_stored_coordinates(matrix, irow, irow, node) + IF (node /= mynode) CYCLE + + CALL dbcsr_get_block_p(matrix, irow, irow, block, tr, found, row_size=row_size) + IF (.NOT. found) THEN + ALLOCATE (block(row_size, row_size)) + block(:, :) = CMPLX(0.0, 0.0, real_4) + END IF + + DO i = 1, row_size + block(i, i) = block(i, i) + alpha + END DO + + IF (.NOT. found) THEN + CALL dbcsr_put_block(matrix, irow, irow, block) + DEALLOCATE (block) + END IF + END DO + + CALL dbcsr_finalize(matrix) + CALL timestop(handle) + END SUBROUTINE dbcsr_add_on_diag_c + + SUBROUTINE dbcsr_update_contiguous_blocks_c (matrix_a, matrix_b, first_lb_a, first_lb_b, nze, & + do_scale, my_beta_scalar, found, iw) + !! Low level function to sum contiguous chunks of blocks of the matrices (matrix_a = matrix_a + beta*matrix_b) + + TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a + !! DBCSR matrix + TYPE(dbcsr_type), INTENT(IN) :: matrix_b + !! DBCSR matrix + TYPE(dbcsr_scalar_type), INTENT(IN) :: my_beta_scalar + INTEGER, INTENT(IN) :: first_lb_a, first_lb_b, nze, iw + LOGICAL, INTENT(IN) :: found, do_scale + + INTEGER :: ub_a, ub_b + + ub_a = first_lb_a + nze - 1 + ub_b = first_lb_b + nze - 1 + + IF (found) THEN + IF (do_scale) THEN + CALL caxpy(nze, my_beta_scalar%c_sp, & + matrix_b%data_area%d%c_sp (first_lb_b:ub_b), 1, & + matrix_a%data_area%d%c_sp (first_lb_a:ub_a), 1) + ELSE + matrix_a%data_area%d%c_sp (first_lb_a:ub_a) = & + matrix_a%data_area%d%c_sp (first_lb_a:ub_a) + & + matrix_b%data_area%d%c_sp (first_lb_b:ub_b) + END IF + ELSE + IF (do_scale) THEN + matrix_a%wms(iw)%data_area%d%c_sp (first_lb_a:ub_a) = & + my_beta_scalar%c_sp* & + matrix_b%data_area%d%c_sp (first_lb_b:ub_b) + ELSE + matrix_a%wms(iw)%data_area%d%c_sp (first_lb_a:ub_a) = & + matrix_b%data_area%d%c_sp (first_lb_b:ub_b) + END IF + END IF + END SUBROUTINE dbcsr_update_contiguous_blocks_c + + SUBROUTINE dbcsr_add_anytype_c (matrix_a, matrix_b, iter, iw, do_scale, & + my_beta_scalar, my_flop) + !! Low level function to sum two matrices (matrix_a = matrix_a + beta*matrix_b + + TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a + !! DBCSR matrix + TYPE(dbcsr_type), INTENT(IN) :: matrix_b + !! DBCSR matrix + TYPE(dbcsr_iterator), INTENT(INOUT) :: iter + INTEGER, INTENT(IN) :: iw + LOGICAL, INTENT(IN) :: do_scale + TYPE(dbcsr_scalar_type), INTENT(IN) :: my_beta_scalar + INTEGER(KIND=int_8), INTENT(INOUT) :: my_flop + + INTEGER :: row, col, row_size, col_size, & + nze, tot_nze, blk, & + lb_a, first_lb_a, lb_a_val, & + lb_b, first_lb_b + INTEGER, DIMENSION(2) :: lb_row_blk + LOGICAL :: was_found, found, tr + + ! some start values + lb_row_blk(:) = 0 + first_lb_a = matrix_a%wms(iw)%datasize + 1 + first_lb_b = 0 + tot_nze = 0 + ! + DO WHILE (dbcsr_iterator_blocks_left(iter)) + CALL dbcsr_iterator_next_block(iter, row, col, blk, tr, lb_b, row_size, col_size) + nze = row_size*col_size + IF (nze .LE. 0) CYCLE + IF (lb_row_blk(1) .LT. row) THEN + lb_row_blk(1) = row + lb_row_blk(2) = matrix_a%row_p(row) + 1 + END IF + ! get b-block index + lb_b = ABS(lb_b) + CALL dbcsr_find_column(col, lb_row_blk(2), matrix_a%row_p(row + 1), matrix_a%col_i, matrix_a%blk_p, blk, found) + lb_row_blk(2) = blk + 1 + ! get index of a-block lb_a whether found (from matrix_a) or not (from workspace array) + IF (found) THEN + my_flop = my_flop + nze*2 + lb_a = ABS(matrix_a%blk_p(blk)) + ELSE + lb_a = matrix_a%wms(iw)%datasize + 1 + lb_a_val = lb_a + IF (tr) lb_a_val = -lb_a + matrix_a%wms(iw)%lastblk = matrix_a%wms(iw)%lastblk + 1 + matrix_a%wms(iw)%row_i(matrix_a%wms(iw)%lastblk) = row + matrix_a%wms(iw)%col_i(matrix_a%wms(iw)%lastblk) = col + matrix_a%wms(iw)%blk_p(matrix_a%wms(iw)%lastblk) = lb_a_val + matrix_a%wms(iw)%datasize = matrix_a%wms(iw)%datasize + nze + END IF + ! at the first iteration we skip this and go directly to initialization after + IF (first_lb_b .NE. 0) THEN + ! if found status is the same as before then probably we are in contiguous blocks + IF ((found .EQV. was_found) .AND. & + (first_lb_b + tot_nze .EQ. lb_b) .AND. & + (first_lb_a + tot_nze) .EQ. lb_a) THEN + tot_nze = tot_nze + nze + CYCLE + END IF + ! save block chunk + CALL dbcsr_update_contiguous_blocks_c (matrix_a, matrix_b, first_lb_a, first_lb_b, tot_nze, & + do_scale, my_beta_scalar, was_found, iw) + END IF + ! + first_lb_a = lb_a + first_lb_b = lb_b + tot_nze = nze + was_found = found + END DO + + ! save the last block or chunk of blocks + IF (first_lb_b .NE. 0) THEN + call dbcsr_update_contiguous_blocks_c (matrix_a, matrix_b, first_lb_a, first_lb_b, tot_nze, & + do_scale, my_beta_scalar, was_found, iw) + END IF + + END SUBROUTINE dbcsr_add_anytype_c +# 3113 "/__w/dbcsr/dbcsr/src/ops/dbcsr_operations.F" + +END MODULE dbcsr_operations diff --git a/develop/sourcefile/dbcsr_ptr_util.f.html b/develop/sourcefile/dbcsr_ptr_util.f.html index d0cb97bd750..ec93af34935 100644 --- a/develop/sourcefile/dbcsr_ptr_util.f.html +++ b/develop/sourcefile/dbcsr_ptr_util.f.html @@ -182,678 +182,678 @@

    Source Code

    mp_deallocate #include "base/dbcsr_base_uses.f90" -!$ USE OMP_LIB, ONLY: omp_get_max_threads, omp_get_thread_num, omp_get_num_threads + IMPLICIT NONE - IMPLICIT NONE + PRIVATE - PRIVATE + CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'dbcsr_ptr_util' - CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'dbcsr_ptr_util' + LOGICAL, PARAMETER :: careful_mod = .FALSE. - LOGICAL, PARAMETER :: careful_mod = .FALSE. - - PUBLIC :: ensure_array_size - PUBLIC :: memory_allocate, memory_deallocate - PUBLIC :: memory_zero - PUBLIC :: pointer_view - PUBLIC :: pointer_rank_remap2 - PUBLIC :: memory_copy - - INTERFACE ensure_array_size - MODULE PROCEDURE ensure_array_size_i, ensure_array_size_l - MODULE PROCEDURE ensure_array_size_s, ensure_array_size_d, & - ensure_array_size_c, ensure_array_size_z - END INTERFACE - - INTERFACE pointer_view - MODULE PROCEDURE pointer_view_s, pointer_view_d, & - pointer_view_c, pointer_view_z - MODULE PROCEDURE pointer_view_i, pointer_view_l - MODULE PROCEDURE pointer_view_a - END INTERFACE - - INTERFACE pointer_rank_remap2 - MODULE PROCEDURE pointer_s_rank_remap2, pointer_d_rank_remap2, & - pointer_c_rank_remap2, pointer_z_rank_remap2, & - pointer_l_rank_remap2, pointer_i_rank_remap2 - END INTERFACE - - INTERFACE memory_copy - MODULE PROCEDURE mem_copy_i, mem_copy_l, & - mem_copy_s, mem_copy_d, & - mem_copy_c, mem_copy_z - END INTERFACE - - INTERFACE memory_zero - MODULE PROCEDURE mem_zero_i, mem_zero_l - MODULE PROCEDURE mem_zero_s, mem_zero_d, mem_zero_c, mem_zero_z - END INTERFACE - - INTERFACE memory_allocate - MODULE PROCEDURE mem_alloc_i, mem_alloc_l, mem_alloc_s, mem_alloc_d, mem_alloc_c, mem_alloc_z - MODULE PROCEDURE mem_alloc_i_2d, mem_alloc_l_2d, mem_alloc_s_2d, mem_alloc_d_2d, mem_alloc_c_2d, mem_alloc_z_2d - END INTERFACE - - INTERFACE memory_deallocate - MODULE PROCEDURE mem_dealloc_i, mem_dealloc_l, mem_dealloc_s, mem_dealloc_d, mem_dealloc_c, mem_dealloc_z - MODULE PROCEDURE mem_dealloc_i_2d, mem_dealloc_l_2d, mem_dealloc_s_2d, mem_dealloc_d_2d, mem_dealloc_c_2d, mem_dealloc_z_2d - END INTERFACE + PUBLIC :: ensure_array_size + PUBLIC :: memory_allocate, memory_deallocate + PUBLIC :: memory_zero + PUBLIC :: pointer_view + PUBLIC :: pointer_rank_remap2 + PUBLIC :: memory_copy + + INTERFACE ensure_array_size + MODULE PROCEDURE ensure_array_size_i, ensure_array_size_l + MODULE PROCEDURE ensure_array_size_s, ensure_array_size_d, & + ensure_array_size_c, ensure_array_size_z + END INTERFACE + + INTERFACE pointer_view + MODULE PROCEDURE pointer_view_s, pointer_view_d, & + pointer_view_c, pointer_view_z + MODULE PROCEDURE pointer_view_i, pointer_view_l + MODULE PROCEDURE pointer_view_a + END INTERFACE + + INTERFACE pointer_rank_remap2 + MODULE PROCEDURE pointer_s_rank_remap2, pointer_d_rank_remap2, & + pointer_c_rank_remap2, pointer_z_rank_remap2, & + pointer_l_rank_remap2, pointer_i_rank_remap2 + END INTERFACE + + INTERFACE memory_copy + MODULE PROCEDURE mem_copy_i, mem_copy_l, & + mem_copy_s, mem_copy_d, & + mem_copy_c, mem_copy_z + END INTERFACE + + INTERFACE memory_zero + MODULE PROCEDURE mem_zero_i, mem_zero_l + MODULE PROCEDURE mem_zero_s, mem_zero_d, mem_zero_c, mem_zero_z + END INTERFACE + + INTERFACE memory_allocate + MODULE PROCEDURE mem_alloc_i, mem_alloc_l, mem_alloc_s, mem_alloc_d, mem_alloc_c, mem_alloc_z + MODULE PROCEDURE mem_alloc_i_2d, mem_alloc_l_2d, mem_alloc_s_2d, mem_alloc_d_2d, mem_alloc_c_2d, mem_alloc_z_2d + END INTERFACE + + INTERFACE memory_deallocate + MODULE PROCEDURE mem_dealloc_i, mem_dealloc_l, mem_dealloc_s, mem_dealloc_d, mem_dealloc_c, mem_dealloc_z + MODULE PROCEDURE mem_dealloc_i_2d, mem_dealloc_l_2d, mem_dealloc_s_2d, mem_dealloc_d_2d, mem_dealloc_c_2d, mem_dealloc_z_2d + END INTERFACE + +CONTAINS -CONTAINS - - FUNCTION pointer_view_a(new_area, area, offset, len) RESULT(narea2) - !! Repoints a pointer into a part of a data area - - TYPE(dbcsr_data_obj), INTENT(INOUT) :: new_area - !! repoints this encapsulated pointer - TYPE(dbcsr_data_obj), INTENT(IN) :: area - !! area to point into - INTEGER, INTENT(IN) :: offset - !! point to this offset in area - INTEGER, INTENT(IN), OPTIONAL :: len - !! length of data area to point to - TYPE(dbcsr_data_obj) :: narea2 - !! copy of new_area - - IF (area%d%data_type /= new_area%d%data_type) & - DBCSR_ABORT("Incompatible data types.") - IF (PRESENT(len)) THEN - SELECT CASE (area%d%data_type) - CASE (dbcsr_type_real_4) - new_area%d%r_sp => area%d%r_sp(offset:offset + len - 1) - CASE (dbcsr_type_real_8) - new_area%d%r_dp => area%d%r_dp(offset:offset + len - 1) - CASE (dbcsr_type_complex_4) - new_area%d%c_sp => area%d%c_sp(offset:offset + len - 1) - CASE (dbcsr_type_complex_8) - new_area%d%c_dp => area%d%c_dp(offset:offset + len - 1) - CASE default - DBCSR_ABORT("Invalid data type.") - END SELECT - ELSE - SELECT CASE (area%d%data_type) - CASE (dbcsr_type_real_4) - new_area%d%r_sp => area%d%r_sp(offset:) - CASE (dbcsr_type_real_8) - new_area%d%r_dp => area%d%r_dp(offset:) - CASE (dbcsr_type_complex_4) - new_area%d%c_sp => area%d%c_sp(offset:) - CASE (dbcsr_type_complex_8) - new_area%d%c_dp => area%d%c_dp(offset:) - CASE default - DBCSR_ABORT("Invalid data type.") - END SELECT - END IF - narea2 = new_area - END FUNCTION pointer_view_a - -# 1 "/__w/dbcsr/dbcsr/src/data/dbcsr.fypp" 1 -# 9 "/__w/dbcsr/dbcsr/src/data/dbcsr.fypp" + FUNCTION pointer_view_a(new_area, area, offset, len) RESULT(narea2) + !! Repoints a pointer into a part of a data area + + TYPE(dbcsr_data_obj), INTENT(INOUT) :: new_area + !! repoints this encapsulated pointer + TYPE(dbcsr_data_obj), INTENT(IN) :: area + !! area to point into + INTEGER, INTENT(IN) :: offset + !! point to this offset in area + INTEGER, INTENT(IN), OPTIONAL :: len + !! length of data area to point to + TYPE(dbcsr_data_obj) :: narea2 + !! copy of new_area + + IF (area%d%data_type /= new_area%d%data_type) & + DBCSR_ABORT("Incompatible data types.") + IF (PRESENT(len)) THEN + SELECT CASE (area%d%data_type) + CASE (dbcsr_type_real_4) + new_area%d%r_sp => area%d%r_sp(offset:offset + len - 1) + CASE (dbcsr_type_real_8) + new_area%d%r_dp => area%d%r_dp(offset:offset + len - 1) + CASE (dbcsr_type_complex_4) + new_area%d%c_sp => area%d%c_sp(offset:offset + len - 1) + CASE (dbcsr_type_complex_8) + new_area%d%c_dp => area%d%c_dp(offset:offset + len - 1) + CASE default + DBCSR_ABORT("Invalid data type.") + END SELECT + ELSE + SELECT CASE (area%d%data_type) + CASE (dbcsr_type_real_4) + new_area%d%r_sp => area%d%r_sp(offset:) + CASE (dbcsr_type_real_8) + new_area%d%r_dp => area%d%r_dp(offset:) + CASE (dbcsr_type_complex_4) + new_area%d%c_sp => area%d%c_sp(offset:) + CASE (dbcsr_type_complex_8) + new_area%d%c_dp => area%d%c_dp(offset:) + CASE default + DBCSR_ABORT("Invalid data type.") + END SELECT + END IF + narea2 = new_area + END FUNCTION pointer_view_a + +# 1 "/__w/dbcsr/dbcsr/src/data/dbcsr.fypp" 1 +# 9 "/__w/dbcsr/dbcsr/src/data/dbcsr.fypp" + +# 11 "/__w/dbcsr/dbcsr/src/data/dbcsr.fypp" -# 11 "/__w/dbcsr/dbcsr/src/data/dbcsr.fypp" - -# 169 "/__w/dbcsr/dbcsr/src/data/dbcsr.fypp" -# 137 "/__w/dbcsr/dbcsr/src/data/dbcsr_ptr_util.F" 2 -# 138 "/__w/dbcsr/dbcsr/src/data/dbcsr_ptr_util.F" - FUNCTION pointer_view_d (original, lb, ub) RESULT(view) - !! Returns a pointer with different bounds. - - REAL(kind=real_8), DIMENSION(:), POINTER :: original, view - !! original data pointer - !! new pointer - INTEGER, INTENT(IN) :: lb, ub - !! lower and upper bound for the new pointer view - !! lower and upper bound for the new pointer view - view => original(lb:ub) - END FUNCTION pointer_view_d - - SUBROUTINE ensure_array_size_d (array, array_resize, lb, ub, factor, & - nocopy, memory_type, zero_pad) - !! Ensures that an array is appropriately large. - - REAL(kind=real_8), DIMENSION(:), POINTER, CONTIGUOUS :: array - !! array to verify and possibly resize - REAL(kind=real_8), DIMENSION(:), POINTER, OPTIONAL :: array_resize - INTEGER, INTENT(IN), OPTIONAL :: lb - !! desired array lower bound - INTEGER, INTENT(IN) :: ub - !! desired array upper bound - REAL(KIND=dp), INTENT(IN), OPTIONAL :: factor - !! factor by which to exaggerate enlargements - LOGICAL, INTENT(IN), OPTIONAL :: nocopy, zero_pad - !! copy array on enlargement; default is to copy - !! zero new allocations; default is to write nothing - TYPE(dbcsr_memtype_type), INTENT(IN), OPTIONAL :: memory_type - !! use special memory - - CHARACTER(len=*), PARAMETER :: routineN = 'ensure_array_size_d', & - routineP = moduleN//':'//routineN - - INTEGER :: lb_new, lb_orig, & - ub_new, ub_orig, old_size, & - size_increase - TYPE(dbcsr_memtype_type) :: mem_type - LOGICAL :: dbg, docopy, & - pad - REAL(kind=real_8), DIMENSION(:), POINTER, CONTIGUOUS :: newarray - -! --------------------------------------------------------------------------- - !CALL timeset(routineN, error_handler) - dbg = .FALSE. +# 169 "/__w/dbcsr/dbcsr/src/data/dbcsr.fypp" +# 135 "/__w/dbcsr/dbcsr/src/data/dbcsr_ptr_util.F" 2 +# 136 "/__w/dbcsr/dbcsr/src/data/dbcsr_ptr_util.F" + FUNCTION pointer_view_d (original, lb, ub) RESULT(view) + !! Returns a pointer with different bounds. + + REAL(kind=real_8), DIMENSION(:), POINTER :: original, view + !! original data pointer + !! new pointer + INTEGER, INTENT(IN) :: lb, ub + !! lower and upper bound for the new pointer view + !! lower and upper bound for the new pointer view + view => original(lb:ub) + END FUNCTION pointer_view_d + + SUBROUTINE ensure_array_size_d (array, array_resize, lb, ub, factor, & + nocopy, memory_type, zero_pad) + !! Ensures that an array is appropriately large. + + REAL(kind=real_8), DIMENSION(:), POINTER, CONTIGUOUS :: array + !! array to verify and possibly resize + REAL(kind=real_8), DIMENSION(:), POINTER, OPTIONAL :: array_resize + INTEGER, INTENT(IN), OPTIONAL :: lb + !! desired array lower bound + INTEGER, INTENT(IN) :: ub + !! desired array upper bound + REAL(KIND=dp), INTENT(IN), OPTIONAL :: factor + !! factor by which to exaggerate enlargements + LOGICAL, INTENT(IN), OPTIONAL :: nocopy, zero_pad + !! copy array on enlargement; default is to copy + !! zero new allocations; default is to write nothing + TYPE(dbcsr_memtype_type), INTENT(IN), OPTIONAL :: memory_type + !! use special memory + + CHARACTER(len=*), PARAMETER :: routineN = 'ensure_array_size_d', & + routineP = moduleN//':'//routineN + + INTEGER :: lb_new, lb_orig, & + ub_new, ub_orig, old_size, & + size_increase + TYPE(dbcsr_memtype_type) :: mem_type + LOGICAL :: dbg, docopy, & + pad + REAL(kind=real_8), DIMENSION(:), POINTER, CONTIGUOUS :: newarray + +! --------------------------------------------------------------------------- + !CALL timeset(routineN, error_handler) + dbg = .FALSE. + + IF (PRESENT(array_resize)) NULLIFY (array_resize) - IF (PRESENT(array_resize)) NULLIFY (array_resize) - - IF (PRESENT(nocopy)) THEN - docopy = .NOT. nocopy - ELSE - docopy = .TRUE. - END IF - IF (PRESENT(memory_type)) THEN - mem_type = memory_type - ELSE - mem_type = dbcsr_memtype_default - END IF - lb_new = 1 - IF (PRESENT(lb)) lb_new = lb - pad = .FALSE. - IF (PRESENT(zero_pad)) pad = zero_pad - ! Creates a new array if it doesn't yet exist. - IF (.NOT. ASSOCIATED(array)) THEN - IF (lb_new /= 1) & - DBCSR_ABORT("Arrays must start at 1") - CALL mem_alloc_d (array, ub, mem_type=mem_type) - IF (pad .AND. ub .GT. 0) CALL mem_zero_d (array, ub) - !CALL timestop(error_handler) - RETURN - END IF - lb_orig = LBOUND(array, 1) - ub_orig = UBOUND(array, 1) - old_size = ub_orig - lb_orig + 1 - ! The existing array is big enough. - IF (lb_orig .LE. lb_new .AND. ub_orig .GE. ub) THEN - !CALL timestop(error_handler) - RETURN - END IF - ! A reallocation must be performed - IF (dbg) WRITE (*, *) routineP//' Current bounds are', lb_orig, ':', ub_orig, & - '; special?' !,mem_type - !CALL timeset(routineN,timing_handle) - IF (lb_orig .GT. lb_new) THEN - IF (PRESENT(factor)) THEN - size_increase = lb_orig - lb_new - size_increase = MAX(NINT(size_increase*factor), & - NINT(old_size*(factor - 1)), 0) - lb_new = MIN(lb_orig, lb_new - size_increase) - ELSE - lb_new = lb_orig - END IF - END IF - IF (ub_orig .LT. ub) THEN - IF (PRESENT(factor)) THEN - size_increase = ub - ub_orig - size_increase = MAX(NINT(size_increase*factor), & - NINT(old_size*(factor - 1)), 0) - ub_new = MAX(ub_orig, ub + size_increase) - ELSE - ub_new = ub - END IF - ELSE - ub_new = ub - END IF - IF (dbg) WRITE (*, *) routineP//' Resizing to bounds', lb_new, ':', ub_new - ! - ! Deallocates the old array if it's not needed to copy the old data. - IF (.NOT. docopy) THEN - IF (PRESENT(array_resize)) THEN - array_resize => array - NULLIFY (array) - ELSE - CALL mem_dealloc_d (array, mem_type=mem_type) - END IF - END IF - ! - ! Allocates the new array - IF (lb_new /= 1) & - DBCSR_ABORT("Arrays must start at 1") - CALL mem_alloc_d (newarray, ub_new - lb_new + 1, mem_type) - ! - ! Now copy and/or zero pad. - IF (docopy) THEN - IF (dbg .AND. (lb_new .GT. lb_orig .OR. ub_new .LT. ub_orig)) & - DBCSR_ABORT("Old extent exceeds the new one.") - IF (ub_orig - lb_orig + 1 .gt. 0) THEN - !newarray(lb_orig:ub_orig) = array(lb_orig:ub_orig) - CALL mem_copy_d (newarray(lb_orig:ub_orig), & - array(lb_orig:ub_orig), ub_orig - lb_orig + 1) - END IF - IF (pad) THEN - !newarray(lb_new:lb_orig-1) = 0 - CALL mem_zero_d (newarray(lb_new:lb_orig - 1), (lb_orig - 1) - lb_new + 1) - !newarray(ub_orig+1:ub_new) = 0 - CALL mem_zero_d (newarray(ub_orig + 1:ub_new), ub_new - (ub_orig + 1) + 1) - END IF - IF (PRESENT(array_resize)) THEN - array_resize => array - NULLIFY (array) - ELSE - CALL mem_dealloc_d (array, mem_type=mem_type) - END IF - ELSEIF (pad) THEN - !newarray(:) = 0.0_real_8 - CALL mem_zero_d (newarray, SIZE(newarray)) - END IF - array => newarray - IF (dbg) WRITE (*, *) routineP//' New array size', SIZE(array) - !CALL timestop(error_handler) - END SUBROUTINE ensure_array_size_d - - SUBROUTINE mem_copy_d (dst, src, n) - !! Copies memory area - - INTEGER, INTENT(IN) :: n - !! length of copy - REAL(kind=real_8), DIMENSION(1:n), INTENT(OUT) :: dst - !! destination memory - REAL(kind=real_8), DIMENSION(1:n), INTENT(IN) :: src - !! source memory -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(dst,src) -#endif - dst(:) = src(:) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif - END SUBROUTINE mem_copy_d - - SUBROUTINE mem_zero_d (dst, n) - !! Zeros memory area - - INTEGER, INTENT(IN) :: n - !! length of elements to zero - REAL(kind=real_8), DIMENSION(1:n), INTENT(OUT) :: dst - !! destination memory -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(dst) -#endif - dst(:) = 0.0_real_8 -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif - END SUBROUTINE mem_zero_d - - SUBROUTINE mem_alloc_d (mem, n, mem_type) - !! Allocates memory - - REAL(kind=real_8), DIMENSION(:), POINTER, CONTIGUOUS :: mem - !! memory to allocate - INTEGER, INTENT(IN) :: n - !! length of elements to allocate - TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type - !! memory type - CHARACTER(len=*), PARAMETER :: routineN = 'mem_alloc_d' - INTEGER :: error_handle -! --------------------------------------------------------------------------- - - IF (careful_mod) & - CALL timeset(routineN, error_handle) - - IF (mem_type%acc_hostalloc .AND. n > 1) THEN - CALL acc_hostmem_allocate(mem, n, mem_type%acc_stream) - ELSE IF (mem_type%mpi .AND. dbcsr_cfg%use_mpi_allocator%val) THEN - CALL mp_allocate(mem, n) - ELSE - ALLOCATE (mem(n)) - END IF - - IF (careful_mod) & - CALL timestop(error_handle) - END SUBROUTINE mem_alloc_d - - SUBROUTINE mem_alloc_d_2d(mem, sizes, mem_type) - !! Allocates memory - - REAL(kind=real_8), DIMENSION(:, :), POINTER :: mem - !! memory to allocate - INTEGER, DIMENSION(2), INTENT(IN) :: sizes - !! length of elements to allocate - TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type - !! memory type - CHARACTER(len=*), PARAMETER :: routineN = 'mem_alloc_d_2d' - INTEGER :: error_handle -! --------------------------------------------------------------------------- - - IF (careful_mod) & - CALL timeset(routineN, error_handle) + IF (PRESENT(nocopy)) THEN + docopy = .NOT. nocopy + ELSE + docopy = .TRUE. + END IF + IF (PRESENT(memory_type)) THEN + mem_type = memory_type + ELSE + mem_type = dbcsr_memtype_default + END IF + lb_new = 1 + IF (PRESENT(lb)) lb_new = lb + pad = .FALSE. + IF (PRESENT(zero_pad)) pad = zero_pad + ! Creates a new array if it doesn't yet exist. + IF (.NOT. ASSOCIATED(array)) THEN + IF (lb_new /= 1) & + DBCSR_ABORT("Arrays must start at 1") + CALL mem_alloc_d (array, ub, mem_type=mem_type) + IF (pad .AND. ub .GT. 0) CALL mem_zero_d (array, ub) + !CALL timestop(error_handler) + RETURN + END IF + lb_orig = LBOUND(array, 1) + ub_orig = UBOUND(array, 1) + old_size = ub_orig - lb_orig + 1 + ! The existing array is big enough. + IF (lb_orig .LE. lb_new .AND. ub_orig .GE. ub) THEN + !CALL timestop(error_handler) + RETURN + END IF + ! A reallocation must be performed + IF (dbg) WRITE (*, *) routineP//' Current bounds are', lb_orig, ':', ub_orig, & + '; special?' !,mem_type + !CALL timeset(routineN,timing_handle) + IF (lb_orig .GT. lb_new) THEN + IF (PRESENT(factor)) THEN + size_increase = lb_orig - lb_new + size_increase = MAX(NINT(size_increase*factor), & + NINT(old_size*(factor - 1)), 0) + lb_new = MIN(lb_orig, lb_new - size_increase) + ELSE + lb_new = lb_orig + END IF + END IF + IF (ub_orig .LT. ub) THEN + IF (PRESENT(factor)) THEN + size_increase = ub - ub_orig + size_increase = MAX(NINT(size_increase*factor), & + NINT(old_size*(factor - 1)), 0) + ub_new = MAX(ub_orig, ub + size_increase) + ELSE + ub_new = ub + END IF + ELSE + ub_new = ub + END IF + IF (dbg) WRITE (*, *) routineP//' Resizing to bounds', lb_new, ':', ub_new + ! + ! Deallocates the old array if it's not needed to copy the old data. + IF (.NOT. docopy) THEN + IF (PRESENT(array_resize)) THEN + array_resize => array + NULLIFY (array) + ELSE + CALL mem_dealloc_d (array, mem_type=mem_type) + END IF + END IF + ! + ! Allocates the new array + IF (lb_new /= 1) & + DBCSR_ABORT("Arrays must start at 1") + CALL mem_alloc_d (newarray, ub_new - lb_new + 1, mem_type) + ! + ! Now copy and/or zero pad. + IF (docopy) THEN + IF (dbg .AND. (lb_new .GT. lb_orig .OR. ub_new .LT. ub_orig)) & + DBCSR_ABORT("Old extent exceeds the new one.") + IF (ub_orig - lb_orig + 1 .gt. 0) THEN + !newarray(lb_orig:ub_orig) = array(lb_orig:ub_orig) + CALL mem_copy_d (newarray(lb_orig:ub_orig), & + array(lb_orig:ub_orig), ub_orig - lb_orig + 1) + END IF + IF (pad) THEN + !newarray(lb_new:lb_orig-1) = 0 + CALL mem_zero_d (newarray(lb_new:lb_orig - 1), (lb_orig - 1) - lb_new + 1) + !newarray(ub_orig+1:ub_new) = 0 + CALL mem_zero_d (newarray(ub_orig + 1:ub_new), ub_new - (ub_orig + 1) + 1) + END IF + IF (PRESENT(array_resize)) THEN + array_resize => array + NULLIFY (array) + ELSE + CALL mem_dealloc_d (array, mem_type=mem_type) + END IF + ELSEIF (pad) THEN + !newarray(:) = 0.0_real_8 + CALL mem_zero_d (newarray, SIZE(newarray)) + END IF + array => newarray + IF (dbg) WRITE (*, *) routineP//' New array size', SIZE(array) + !CALL timestop(error_handler) + END SUBROUTINE ensure_array_size_d + + SUBROUTINE mem_copy_d (dst, src, n) + !! Copies memory area + + INTEGER, INTENT(IN) :: n + !! length of copy + REAL(kind=real_8), DIMENSION(1:n), INTENT(OUT) :: dst + !! destination memory + REAL(kind=real_8), DIMENSION(1:n), INTENT(IN) :: src + !! source memory + dst(:) = src(:) + END SUBROUTINE mem_copy_d + + SUBROUTINE mem_zero_d (dst, n) + !! Zeros memory area + + INTEGER, INTENT(IN) :: n + !! length of elements to zero + REAL(kind=real_8), DIMENSION(1:n), INTENT(OUT) :: dst + !! destination memory + dst(:) = 0.0_real_8 + END SUBROUTINE mem_zero_d + + SUBROUTINE mem_alloc_d (mem, n, mem_type) + !! Allocates memory + + REAL(kind=real_8), DIMENSION(:), POINTER, CONTIGUOUS :: mem + !! memory to allocate + INTEGER, INTENT(IN) :: n + !! length of elements to allocate + TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type + !! memory type + CHARACTER(len=*), PARAMETER :: routineN = 'mem_alloc_d' + INTEGER :: error_handle +! --------------------------------------------------------------------------- + + IF (careful_mod) & + CALL timeset(routineN, error_handle) + + IF (mem_type%acc_hostalloc .AND. n > 1) THEN + CALL acc_hostmem_allocate(mem, n, mem_type%acc_stream) + ELSE IF (mem_type%mpi .AND. dbcsr_cfg%use_mpi_allocator%val) THEN + CALL mp_allocate(mem, n) + ELSE + ALLOCATE (mem(n)) + END IF + + IF (careful_mod) & + CALL timestop(error_handle) + END SUBROUTINE mem_alloc_d + + SUBROUTINE mem_alloc_d_2d(mem, sizes, mem_type) + !! Allocates memory + + REAL(kind=real_8), DIMENSION(:, :), POINTER :: mem + !! memory to allocate + INTEGER, DIMENSION(2), INTENT(IN) :: sizes + !! length of elements to allocate + TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type + !! memory type + CHARACTER(len=*), PARAMETER :: routineN = 'mem_alloc_d_2d' + INTEGER :: error_handle +! --------------------------------------------------------------------------- + + IF (careful_mod) & + CALL timeset(routineN, error_handle) + + IF (mem_type%acc_hostalloc) THEN + DBCSR_ABORT("Accelerator hostalloc not supported for 2D arrays.") + !CALL acc_hostmem_allocate(mem, n, mem_type%acc_stream) + ELSE IF (mem_type%mpi) THEN + DBCSR_ABORT("MPI allocate not supported for 2D arrays.") + !CALL mp_allocate(mem, n) + ELSE + ALLOCATE (mem(sizes(1), sizes(2))) + END IF + + IF (careful_mod) & + CALL timestop(error_handle) + END SUBROUTINE mem_alloc_d_2d - IF (mem_type%acc_hostalloc) THEN - DBCSR_ABORT("Accelerator hostalloc not supported for 2D arrays.") - !CALL acc_hostmem_allocate(mem, n, mem_type%acc_stream) - ELSE IF (mem_type%mpi) THEN - DBCSR_ABORT("MPI allocate not supported for 2D arrays.") - !CALL mp_allocate(mem, n) - ELSE - ALLOCATE (mem(sizes(1), sizes(2))) - END IF - - IF (careful_mod) & - CALL timestop(error_handle) - END SUBROUTINE mem_alloc_d_2d + SUBROUTINE mem_dealloc_d (mem, mem_type) + !! Deallocates memory + + REAL(kind=real_8), DIMENSION(:), POINTER, CONTIGUOUS :: mem + !! memory to allocate + TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type + !! memory type + CHARACTER(len=*), PARAMETER :: routineN = 'mem_dealloc_d' + INTEGER :: error_handle +! --------------------------------------------------------------------------- + + IF (careful_mod) & + CALL timeset(routineN, error_handle) - SUBROUTINE mem_dealloc_d (mem, mem_type) - !! Deallocates memory - - REAL(kind=real_8), DIMENSION(:), POINTER, CONTIGUOUS :: mem - !! memory to allocate - TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type - !! memory type - CHARACTER(len=*), PARAMETER :: routineN = 'mem_dealloc_d' - INTEGER :: error_handle -! --------------------------------------------------------------------------- - - IF (careful_mod) & - CALL timeset(routineN, error_handle) - - IF (mem_type%acc_hostalloc .AND. SIZE(mem) > 1) THEN - CALL acc_hostmem_deallocate(mem, mem_type%acc_stream) - ELSE IF (mem_type%mpi .AND. dbcsr_cfg%use_mpi_allocator%val) THEN - CALL mp_deallocate(mem) - ELSE - DEALLOCATE (mem) - END IF - - IF (careful_mod) & - CALL timestop(error_handle) - END SUBROUTINE mem_dealloc_d + IF (mem_type%acc_hostalloc .AND. SIZE(mem) > 1) THEN + CALL acc_hostmem_deallocate(mem, mem_type%acc_stream) + ELSE IF (mem_type%mpi .AND. dbcsr_cfg%use_mpi_allocator%val) THEN + CALL mp_deallocate(mem) + ELSE + DEALLOCATE (mem) + END IF + + IF (careful_mod) & + CALL timestop(error_handle) + END SUBROUTINE mem_dealloc_d + + SUBROUTINE mem_dealloc_d_2d(mem, mem_type) + !! Deallocates memory + + REAL(kind=real_8), DIMENSION(:, :), POINTER :: mem + !! memory to allocate + TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type + !! memory type + CHARACTER(len=*), PARAMETER :: routineN = 'mem_dealloc_d' + INTEGER :: error_handle +! --------------------------------------------------------------------------- + + IF (careful_mod) & + CALL timeset(routineN, error_handle) - SUBROUTINE mem_dealloc_d_2d(mem, mem_type) - !! Deallocates memory - - REAL(kind=real_8), DIMENSION(:, :), POINTER :: mem - !! memory to allocate - TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type - !! memory type - CHARACTER(len=*), PARAMETER :: routineN = 'mem_dealloc_d' - INTEGER :: error_handle -! --------------------------------------------------------------------------- - - IF (careful_mod) & - CALL timeset(routineN, error_handle) + IF (mem_type%acc_hostalloc) THEN + DBCSR_ABORT("Accelerator host deallocate not supported for 2D arrays.") + !CALL acc_hostmem_deallocate(mem, mem_type%acc_stream) + ELSE IF (mem_type%mpi) THEN + DBCSR_ABORT("MPI deallocate not supported for 2D arrays.") + !CALL mp_deallocate(mem) + ELSE + DEALLOCATE (mem) + END IF + + IF (careful_mod) & + CALL timestop(error_handle) + END SUBROUTINE mem_dealloc_d_2d - IF (mem_type%acc_hostalloc) THEN - DBCSR_ABORT("Accelerator host deallocate not supported for 2D arrays.") - !CALL acc_hostmem_deallocate(mem, mem_type%acc_stream) - ELSE IF (mem_type%mpi) THEN - DBCSR_ABORT("MPI deallocate not supported for 2D arrays.") - !CALL mp_deallocate(mem) - ELSE - DEALLOCATE (mem) - END IF + SUBROUTINE pointer_d_rank_remap2(r2p, d1, d2, r1p) + !! Sets a rank-2 pointer to rank-1 data using Fortran 2003 pointer + !! rank remapping. + + INTEGER, INTENT(IN) :: d1, d2 + REAL(kind=real_8), DIMENSION(:, :), & + POINTER :: r2p + REAL(kind=real_8), DIMENSION(:), & + POINTER :: r1p - IF (careful_mod) & - CALL timestop(error_handle) - END SUBROUTINE mem_dealloc_d_2d - - SUBROUTINE pointer_d_rank_remap2(r2p, d1, d2, r1p) - !! Sets a rank-2 pointer to rank-1 data using Fortran 2003 pointer - !! rank remapping. - - INTEGER, INTENT(IN) :: d1, d2 - REAL(kind=real_8), DIMENSION(:, :), & - POINTER :: r2p - REAL(kind=real_8), DIMENSION(:), & - POINTER :: r1p - - r2p(1:d1, 1:d2) => r1p(1:d1*d2) - END SUBROUTINE pointer_d_rank_remap2 -# 138 "/__w/dbcsr/dbcsr/src/data/dbcsr_ptr_util.F" - FUNCTION pointer_view_s (original, lb, ub) RESULT(view) - !! Returns a pointer with different bounds. - - REAL(kind=real_4), DIMENSION(:), POINTER :: original, view - !! original data pointer - !! new pointer - INTEGER, INTENT(IN) :: lb, ub - !! lower and upper bound for the new pointer view - !! lower and upper bound for the new pointer view - view => original(lb:ub) - END FUNCTION pointer_view_s - - SUBROUTINE ensure_array_size_s (array, array_resize, lb, ub, factor, & - nocopy, memory_type, zero_pad) - !! Ensures that an array is appropriately large. - - REAL(kind=real_4), DIMENSION(:), POINTER, CONTIGUOUS :: array - !! array to verify and possibly resize - REAL(kind=real_4), DIMENSION(:), POINTER, OPTIONAL :: array_resize - INTEGER, INTENT(IN), OPTIONAL :: lb - !! desired array lower bound - INTEGER, INTENT(IN) :: ub - !! desired array upper bound - REAL(KIND=dp), INTENT(IN), OPTIONAL :: factor - !! factor by which to exaggerate enlargements - LOGICAL, INTENT(IN), OPTIONAL :: nocopy, zero_pad - !! copy array on enlargement; default is to copy - !! zero new allocations; default is to write nothing - TYPE(dbcsr_memtype_type), INTENT(IN), OPTIONAL :: memory_type - !! use special memory - - CHARACTER(len=*), PARAMETER :: routineN = 'ensure_array_size_s', & - routineP = moduleN//':'//routineN + r2p(1:d1, 1:d2) => r1p(1:d1*d2) + END SUBROUTINE pointer_d_rank_remap2 +# 136 "/__w/dbcsr/dbcsr/src/data/dbcsr_ptr_util.F" + FUNCTION pointer_view_s (original, lb, ub) RESULT(view) + !! Returns a pointer with different bounds. + + REAL(kind=real_4), DIMENSION(:), POINTER :: original, view + !! original data pointer + !! new pointer + INTEGER, INTENT(IN) :: lb, ub + !! lower and upper bound for the new pointer view + !! lower and upper bound for the new pointer view + view => original(lb:ub) + END FUNCTION pointer_view_s + + SUBROUTINE ensure_array_size_s (array, array_resize, lb, ub, factor, & + nocopy, memory_type, zero_pad) + !! Ensures that an array is appropriately large. + + REAL(kind=real_4), DIMENSION(:), POINTER, CONTIGUOUS :: array + !! array to verify and possibly resize + REAL(kind=real_4), DIMENSION(:), POINTER, OPTIONAL :: array_resize + INTEGER, INTENT(IN), OPTIONAL :: lb + !! desired array lower bound + INTEGER, INTENT(IN) :: ub + !! desired array upper bound + REAL(KIND=dp), INTENT(IN), OPTIONAL :: factor + !! factor by which to exaggerate enlargements + LOGICAL, INTENT(IN), OPTIONAL :: nocopy, zero_pad + !! copy array on enlargement; default is to copy + !! zero new allocations; default is to write nothing + TYPE(dbcsr_memtype_type), INTENT(IN), OPTIONAL :: memory_type + !! use special memory + + CHARACTER(len=*), PARAMETER :: routineN = 'ensure_array_size_s', & + routineP = moduleN//':'//routineN + + INTEGER :: lb_new, lb_orig, & + ub_new, ub_orig, old_size, & + size_increase + TYPE(dbcsr_memtype_type) :: mem_type + LOGICAL :: dbg, docopy, & + pad + REAL(kind=real_4), DIMENSION(:), POINTER, CONTIGUOUS :: newarray + +! --------------------------------------------------------------------------- + !CALL timeset(routineN, error_handler) + dbg = .FALSE. + + IF (PRESENT(array_resize)) NULLIFY (array_resize) - INTEGER :: lb_new, lb_orig, & - ub_new, ub_orig, old_size, & - size_increase - TYPE(dbcsr_memtype_type) :: mem_type - LOGICAL :: dbg, docopy, & - pad - REAL(kind=real_4), DIMENSION(:), POINTER, CONTIGUOUS :: newarray - -! --------------------------------------------------------------------------- - !CALL timeset(routineN, error_handler) - dbg = .FALSE. - - IF (PRESENT(array_resize)) NULLIFY (array_resize) - - IF (PRESENT(nocopy)) THEN - docopy = .NOT. nocopy - ELSE - docopy = .TRUE. - END IF - IF (PRESENT(memory_type)) THEN - mem_type = memory_type - ELSE - mem_type = dbcsr_memtype_default - END IF - lb_new = 1 - IF (PRESENT(lb)) lb_new = lb - pad = .FALSE. - IF (PRESENT(zero_pad)) pad = zero_pad - ! Creates a new array if it doesn't yet exist. - IF (.NOT. ASSOCIATED(array)) THEN - IF (lb_new /= 1) & - DBCSR_ABORT("Arrays must start at 1") - CALL mem_alloc_s (array, ub, mem_type=mem_type) - IF (pad .AND. ub .GT. 0) CALL mem_zero_s (array, ub) - !CALL timestop(error_handler) - RETURN - END IF - lb_orig = LBOUND(array, 1) - ub_orig = UBOUND(array, 1) - old_size = ub_orig - lb_orig + 1 - ! The existing array is big enough. - IF (lb_orig .LE. lb_new .AND. ub_orig .GE. ub) THEN - !CALL timestop(error_handler) - RETURN + IF (PRESENT(nocopy)) THEN + docopy = .NOT. nocopy + ELSE + docopy = .TRUE. + END IF + IF (PRESENT(memory_type)) THEN + mem_type = memory_type + ELSE + mem_type = dbcsr_memtype_default + END IF + lb_new = 1 + IF (PRESENT(lb)) lb_new = lb + pad = .FALSE. + IF (PRESENT(zero_pad)) pad = zero_pad + ! Creates a new array if it doesn't yet exist. + IF (.NOT. ASSOCIATED(array)) THEN + IF (lb_new /= 1) & + DBCSR_ABORT("Arrays must start at 1") + CALL mem_alloc_s (array, ub, mem_type=mem_type) + IF (pad .AND. ub .GT. 0) CALL mem_zero_s (array, ub) + !CALL timestop(error_handler) + RETURN + END IF + lb_orig = LBOUND(array, 1) + ub_orig = UBOUND(array, 1) + old_size = ub_orig - lb_orig + 1 + ! The existing array is big enough. + IF (lb_orig .LE. lb_new .AND. ub_orig .GE. ub) THEN + !CALL timestop(error_handler) + RETURN + END IF + ! A reallocation must be performed + IF (dbg) WRITE (*, *) routineP//' Current bounds are', lb_orig, ':', ub_orig, & + '; special?' !,mem_type + !CALL timeset(routineN,timing_handle) + IF (lb_orig .GT. lb_new) THEN + IF (PRESENT(factor)) THEN + size_increase = lb_orig - lb_new + size_increase = MAX(NINT(size_increase*factor), & + NINT(old_size*(factor - 1)), 0) + lb_new = MIN(lb_orig, lb_new - size_increase) + ELSE + lb_new = lb_orig + END IF END IF - ! A reallocation must be performed - IF (dbg) WRITE (*, *) routineP//' Current bounds are', lb_orig, ':', ub_orig, & - '; special?' !,mem_type - !CALL timeset(routineN,timing_handle) - IF (lb_orig .GT. lb_new) THEN - IF (PRESENT(factor)) THEN - size_increase = lb_orig - lb_new - size_increase = MAX(NINT(size_increase*factor), & - NINT(old_size*(factor - 1)), 0) - lb_new = MIN(lb_orig, lb_new - size_increase) - ELSE - lb_new = lb_orig - END IF - END IF - IF (ub_orig .LT. ub) THEN - IF (PRESENT(factor)) THEN - size_increase = ub - ub_orig - size_increase = MAX(NINT(size_increase*factor), & - NINT(old_size*(factor - 1)), 0) - ub_new = MAX(ub_orig, ub + size_increase) - ELSE - ub_new = ub - END IF - ELSE - ub_new = ub - END IF - IF (dbg) WRITE (*, *) routineP//' Resizing to bounds', lb_new, ':', ub_new - ! - ! Deallocates the old array if it's not needed to copy the old data. - IF (.NOT. docopy) THEN - IF (PRESENT(array_resize)) THEN - array_resize => array - NULLIFY (array) - ELSE - CALL mem_dealloc_s (array, mem_type=mem_type) - END IF - END IF - ! - ! Allocates the new array - IF (lb_new /= 1) & - DBCSR_ABORT("Arrays must start at 1") - CALL mem_alloc_s (newarray, ub_new - lb_new + 1, mem_type) - ! - ! Now copy and/or zero pad. - IF (docopy) THEN - IF (dbg .AND. (lb_new .GT. lb_orig .OR. ub_new .LT. ub_orig)) & - DBCSR_ABORT("Old extent exceeds the new one.") - IF (ub_orig - lb_orig + 1 .gt. 0) THEN - !newarray(lb_orig:ub_orig) = array(lb_orig:ub_orig) - CALL mem_copy_s (newarray(lb_orig:ub_orig), & - array(lb_orig:ub_orig), ub_orig - lb_orig + 1) - END IF - IF (pad) THEN - !newarray(lb_new:lb_orig-1) = 0 - CALL mem_zero_s (newarray(lb_new:lb_orig - 1), (lb_orig - 1) - lb_new + 1) - !newarray(ub_orig+1:ub_new) = 0 - CALL mem_zero_s (newarray(ub_orig + 1:ub_new), ub_new - (ub_orig + 1) + 1) - END IF - IF (PRESENT(array_resize)) THEN - array_resize => array - NULLIFY (array) - ELSE - CALL mem_dealloc_s (array, mem_type=mem_type) - END IF - ELSEIF (pad) THEN - !newarray(:) = 0.0_real_4 - CALL mem_zero_s (newarray, SIZE(newarray)) - END IF - array => newarray - IF (dbg) WRITE (*, *) routineP//' New array size', SIZE(array) - !CALL timestop(error_handler) - END SUBROUTINE ensure_array_size_s - - SUBROUTINE mem_copy_s (dst, src, n) - !! Copies memory area - - INTEGER, INTENT(IN) :: n - !! length of copy - REAL(kind=real_4), DIMENSION(1:n), INTENT(OUT) :: dst - !! destination memory - REAL(kind=real_4), DIMENSION(1:n), INTENT(IN) :: src - !! source memory -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(dst,src) -#endif - dst(:) = src(:) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif - END SUBROUTINE mem_copy_s - - SUBROUTINE mem_zero_s (dst, n) - !! Zeros memory area + IF (ub_orig .LT. ub) THEN + IF (PRESENT(factor)) THEN + size_increase = ub - ub_orig + size_increase = MAX(NINT(size_increase*factor), & + NINT(old_size*(factor - 1)), 0) + ub_new = MAX(ub_orig, ub + size_increase) + ELSE + ub_new = ub + END IF + ELSE + ub_new = ub + END IF + IF (dbg) WRITE (*, *) routineP//' Resizing to bounds', lb_new, ':', ub_new + ! + ! Deallocates the old array if it's not needed to copy the old data. + IF (.NOT. docopy) THEN + IF (PRESENT(array_resize)) THEN + array_resize => array + NULLIFY (array) + ELSE + CALL mem_dealloc_s (array, mem_type=mem_type) + END IF + END IF + ! + ! Allocates the new array + IF (lb_new /= 1) & + DBCSR_ABORT("Arrays must start at 1") + CALL mem_alloc_s (newarray, ub_new - lb_new + 1, mem_type) + ! + ! Now copy and/or zero pad. + IF (docopy) THEN + IF (dbg .AND. (lb_new .GT. lb_orig .OR. ub_new .LT. ub_orig)) & + DBCSR_ABORT("Old extent exceeds the new one.") + IF (ub_orig - lb_orig + 1 .gt. 0) THEN + !newarray(lb_orig:ub_orig) = array(lb_orig:ub_orig) + CALL mem_copy_s (newarray(lb_orig:ub_orig), & + array(lb_orig:ub_orig), ub_orig - lb_orig + 1) + END IF + IF (pad) THEN + !newarray(lb_new:lb_orig-1) = 0 + CALL mem_zero_s (newarray(lb_new:lb_orig - 1), (lb_orig - 1) - lb_new + 1) + !newarray(ub_orig+1:ub_new) = 0 + CALL mem_zero_s (newarray(ub_orig + 1:ub_new), ub_new - (ub_orig + 1) + 1) + END IF + IF (PRESENT(array_resize)) THEN + array_resize => array + NULLIFY (array) + ELSE + CALL mem_dealloc_s (array, mem_type=mem_type) + END IF + ELSEIF (pad) THEN + !newarray(:) = 0.0_real_4 + CALL mem_zero_s (newarray, SIZE(newarray)) + END IF + array => newarray + IF (dbg) WRITE (*, *) routineP//' New array size', SIZE(array) + !CALL timestop(error_handler) + END SUBROUTINE ensure_array_size_s + + SUBROUTINE mem_copy_s (dst, src, n) + !! Copies memory area + + INTEGER, INTENT(IN) :: n + !! length of copy + REAL(kind=real_4), DIMENSION(1:n), INTENT(OUT) :: dst + !! destination memory + REAL(kind=real_4), DIMENSION(1:n), INTENT(IN) :: src + !! source memory + dst(:) = src(:) + END SUBROUTINE mem_copy_s + + SUBROUTINE mem_zero_s (dst, n) + !! Zeros memory area + + INTEGER, INTENT(IN) :: n + !! length of elements to zero + REAL(kind=real_4), DIMENSION(1:n), INTENT(OUT) :: dst + !! destination memory + dst(:) = 0.0_real_4 + END SUBROUTINE mem_zero_s + + SUBROUTINE mem_alloc_s (mem, n, mem_type) + !! Allocates memory + + REAL(kind=real_4), DIMENSION(:), POINTER, CONTIGUOUS :: mem + !! memory to allocate + INTEGER, INTENT(IN) :: n + !! length of elements to allocate + TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type + !! memory type + CHARACTER(len=*), PARAMETER :: routineN = 'mem_alloc_s' + INTEGER :: error_handle +! --------------------------------------------------------------------------- - INTEGER, INTENT(IN) :: n - !! length of elements to zero - REAL(kind=real_4), DIMENSION(1:n), INTENT(OUT) :: dst - !! destination memory -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(dst) -#endif - dst(:) = 0.0_real_4 -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif - END SUBROUTINE mem_zero_s - - SUBROUTINE mem_alloc_s (mem, n, mem_type) - !! Allocates memory - - REAL(kind=real_4), DIMENSION(:), POINTER, CONTIGUOUS :: mem - !! memory to allocate - INTEGER, INTENT(IN) :: n - !! length of elements to allocate - TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type - !! memory type - CHARACTER(len=*), PARAMETER :: routineN = 'mem_alloc_s' - INTEGER :: error_handle -! --------------------------------------------------------------------------- - - IF (careful_mod) & - CALL timeset(routineN, error_handle) - - IF (mem_type%acc_hostalloc .AND. n > 1) THEN - CALL acc_hostmem_allocate(mem, n, mem_type%acc_stream) - ELSE IF (mem_type%mpi .AND. dbcsr_cfg%use_mpi_allocator%val) THEN - CALL mp_allocate(mem, n) - ELSE - ALLOCATE (mem(n)) - END IF - - IF (careful_mod) & - CALL timestop(error_handle) - END SUBROUTINE mem_alloc_s + IF (careful_mod) & + CALL timeset(routineN, error_handle) + + IF (mem_type%acc_hostalloc .AND. n > 1) THEN + CALL acc_hostmem_allocate(mem, n, mem_type%acc_stream) + ELSE IF (mem_type%mpi .AND. dbcsr_cfg%use_mpi_allocator%val) THEN + CALL mp_allocate(mem, n) + ELSE + ALLOCATE (mem(n)) + END IF + + IF (careful_mod) & + CALL timestop(error_handle) + END SUBROUTINE mem_alloc_s + + SUBROUTINE mem_alloc_s_2d(mem, sizes, mem_type) + !! Allocates memory + + REAL(kind=real_4), DIMENSION(:, :), POINTER :: mem + !! memory to allocate + INTEGER, DIMENSION(2), INTENT(IN) :: sizes + !! length of elements to allocate + TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type + !! memory type + CHARACTER(len=*), PARAMETER :: routineN = 'mem_alloc_s_2d' + INTEGER :: error_handle +! --------------------------------------------------------------------------- + + IF (careful_mod) & + CALL timeset(routineN, error_handle) + + IF (mem_type%acc_hostalloc) THEN + DBCSR_ABORT("Accelerator hostalloc not supported for 2D arrays.") + !CALL acc_hostmem_allocate(mem, n, mem_type%acc_stream) + ELSE IF (mem_type%mpi) THEN + DBCSR_ABORT("MPI allocate not supported for 2D arrays.") + !CALL mp_allocate(mem, n) + ELSE + ALLOCATE (mem(sizes(1), sizes(2))) + END IF - SUBROUTINE mem_alloc_s_2d(mem, sizes, mem_type) - !! Allocates memory - - REAL(kind=real_4), DIMENSION(:, :), POINTER :: mem - !! memory to allocate - INTEGER, DIMENSION(2), INTENT(IN) :: sizes - !! length of elements to allocate - TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type - !! memory type - CHARACTER(len=*), PARAMETER :: routineN = 'mem_alloc_s_2d' - INTEGER :: error_handle -! --------------------------------------------------------------------------- - - IF (careful_mod) & - CALL timeset(routineN, error_handle) - - IF (mem_type%acc_hostalloc) THEN - DBCSR_ABORT("Accelerator hostalloc not supported for 2D arrays.") - !CALL acc_hostmem_allocate(mem, n, mem_type%acc_stream) - ELSE IF (mem_type%mpi) THEN - DBCSR_ABORT("MPI allocate not supported for 2D arrays.") - !CALL mp_allocate(mem, n) + IF (careful_mod) & + CALL timestop(error_handle) + END SUBROUTINE mem_alloc_s_2d + + SUBROUTINE mem_dealloc_s (mem, mem_type) + !! Deallocates memory + + REAL(kind=real_4), DIMENSION(:), POINTER, CONTIGUOUS :: mem + !! memory to allocate + TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type + !! memory type + CHARACTER(len=*), PARAMETER :: routineN = 'mem_dealloc_s' + INTEGER :: error_handle +! --------------------------------------------------------------------------- + + IF (careful_mod) & + CALL timeset(routineN, error_handle) + + IF (mem_type%acc_hostalloc .AND. SIZE(mem) > 1) THEN + CALL acc_hostmem_deallocate(mem, mem_type%acc_stream) + ELSE IF (mem_type%mpi .AND. dbcsr_cfg%use_mpi_allocator%val) THEN + CALL mp_deallocate(mem) ELSE - ALLOCATE (mem(sizes(1), sizes(2))) + DEALLOCATE (mem) END IF IF (careful_mod) & CALL timestop(error_handle) - END SUBROUTINE mem_alloc_s_2d + END SUBROUTINE mem_dealloc_s - SUBROUTINE mem_dealloc_s (mem, mem_type) + SUBROUTINE mem_dealloc_s_2d(mem, mem_type) !! Deallocates memory - REAL(kind=real_4), DIMENSION(:), POINTER, CONTIGUOUS :: mem + REAL(kind=real_4), DIMENSION(:, :), POINTER :: mem !! memory to allocate TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type !! memory type @@ -864,1305 +864,1231 @@

    Source Code

    IF (careful_mod) & CALL timeset(routineN, error_handle) - IF (mem_type%acc_hostalloc .AND. SIZE(mem) > 1) THEN - CALL acc_hostmem_deallocate(mem, mem_type%acc_stream) - ELSE IF (mem_type%mpi .AND. dbcsr_cfg%use_mpi_allocator%val) THEN - CALL mp_deallocate(mem) - ELSE - DEALLOCATE (mem) - END IF - - IF (careful_mod) & - CALL timestop(error_handle) - END SUBROUTINE mem_dealloc_s - - SUBROUTINE mem_dealloc_s_2d(mem, mem_type) - !! Deallocates memory - - REAL(kind=real_4), DIMENSION(:, :), POINTER :: mem - !! memory to allocate - TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type - !! memory type - CHARACTER(len=*), PARAMETER :: routineN = 'mem_dealloc_s' - INTEGER :: error_handle -! --------------------------------------------------------------------------- - - IF (careful_mod) & - CALL timeset(routineN, error_handle) - - IF (mem_type%acc_hostalloc) THEN - DBCSR_ABORT("Accelerator host deallocate not supported for 2D arrays.") - !CALL acc_hostmem_deallocate(mem, mem_type%acc_stream) - ELSE IF (mem_type%mpi) THEN - DBCSR_ABORT("MPI deallocate not supported for 2D arrays.") - !CALL mp_deallocate(mem) - ELSE - DEALLOCATE (mem) - END IF - - IF (careful_mod) & - CALL timestop(error_handle) - END SUBROUTINE mem_dealloc_s_2d - - SUBROUTINE pointer_s_rank_remap2(r2p, d1, d2, r1p) - !! Sets a rank-2 pointer to rank-1 data using Fortran 2003 pointer - !! rank remapping. - - INTEGER, INTENT(IN) :: d1, d2 - REAL(kind=real_4), DIMENSION(:, :), & - POINTER :: r2p - REAL(kind=real_4), DIMENSION(:), & - POINTER :: r1p - - r2p(1:d1, 1:d2) => r1p(1:d1*d2) - END SUBROUTINE pointer_s_rank_remap2 -# 138 "/__w/dbcsr/dbcsr/src/data/dbcsr_ptr_util.F" - FUNCTION pointer_view_z (original, lb, ub) RESULT(view) - !! Returns a pointer with different bounds. - - COMPLEX(kind=real_8), DIMENSION(:), POINTER :: original, view - !! original data pointer - !! new pointer - INTEGER, INTENT(IN) :: lb, ub - !! lower and upper bound for the new pointer view - !! lower and upper bound for the new pointer view - view => original(lb:ub) - END FUNCTION pointer_view_z - - SUBROUTINE ensure_array_size_z (array, array_resize, lb, ub, factor, & - nocopy, memory_type, zero_pad) - !! Ensures that an array is appropriately large. + IF (mem_type%acc_hostalloc) THEN + DBCSR_ABORT("Accelerator host deallocate not supported for 2D arrays.") + !CALL acc_hostmem_deallocate(mem, mem_type%acc_stream) + ELSE IF (mem_type%mpi) THEN + DBCSR_ABORT("MPI deallocate not supported for 2D arrays.") + !CALL mp_deallocate(mem) + ELSE + DEALLOCATE (mem) + END IF + + IF (careful_mod) & + CALL timestop(error_handle) + END SUBROUTINE mem_dealloc_s_2d + + SUBROUTINE pointer_s_rank_remap2(r2p, d1, d2, r1p) + !! Sets a rank-2 pointer to rank-1 data using Fortran 2003 pointer + !! rank remapping. + + INTEGER, INTENT(IN) :: d1, d2 + REAL(kind=real_4), DIMENSION(:, :), & + POINTER :: r2p + REAL(kind=real_4), DIMENSION(:), & + POINTER :: r1p + + r2p(1:d1, 1:d2) => r1p(1:d1*d2) + END SUBROUTINE pointer_s_rank_remap2 +# 136 "/__w/dbcsr/dbcsr/src/data/dbcsr_ptr_util.F" + FUNCTION pointer_view_z (original, lb, ub) RESULT(view) + !! Returns a pointer with different bounds. + + COMPLEX(kind=real_8), DIMENSION(:), POINTER :: original, view + !! original data pointer + !! new pointer + INTEGER, INTENT(IN) :: lb, ub + !! lower and upper bound for the new pointer view + !! lower and upper bound for the new pointer view + view => original(lb:ub) + END FUNCTION pointer_view_z + + SUBROUTINE ensure_array_size_z (array, array_resize, lb, ub, factor, & + nocopy, memory_type, zero_pad) + !! Ensures that an array is appropriately large. + + COMPLEX(kind=real_8), DIMENSION(:), POINTER, CONTIGUOUS :: array + !! array to verify and possibly resize + COMPLEX(kind=real_8), DIMENSION(:), POINTER, OPTIONAL :: array_resize + INTEGER, INTENT(IN), OPTIONAL :: lb + !! desired array lower bound + INTEGER, INTENT(IN) :: ub + !! desired array upper bound + REAL(KIND=dp), INTENT(IN), OPTIONAL :: factor + !! factor by which to exaggerate enlargements + LOGICAL, INTENT(IN), OPTIONAL :: nocopy, zero_pad + !! copy array on enlargement; default is to copy + !! zero new allocations; default is to write nothing + TYPE(dbcsr_memtype_type), INTENT(IN), OPTIONAL :: memory_type + !! use special memory + + CHARACTER(len=*), PARAMETER :: routineN = 'ensure_array_size_z', & + routineP = moduleN//':'//routineN + + INTEGER :: lb_new, lb_orig, & + ub_new, ub_orig, old_size, & + size_increase + TYPE(dbcsr_memtype_type) :: mem_type + LOGICAL :: dbg, docopy, & + pad + COMPLEX(kind=real_8), DIMENSION(:), POINTER, CONTIGUOUS :: newarray - COMPLEX(kind=real_8), DIMENSION(:), POINTER, CONTIGUOUS :: array - !! array to verify and possibly resize - COMPLEX(kind=real_8), DIMENSION(:), POINTER, OPTIONAL :: array_resize - INTEGER, INTENT(IN), OPTIONAL :: lb - !! desired array lower bound - INTEGER, INTENT(IN) :: ub - !! desired array upper bound - REAL(KIND=dp), INTENT(IN), OPTIONAL :: factor - !! factor by which to exaggerate enlargements - LOGICAL, INTENT(IN), OPTIONAL :: nocopy, zero_pad - !! copy array on enlargement; default is to copy - !! zero new allocations; default is to write nothing - TYPE(dbcsr_memtype_type), INTENT(IN), OPTIONAL :: memory_type - !! use special memory - - CHARACTER(len=*), PARAMETER :: routineN = 'ensure_array_size_z', & - routineP = moduleN//':'//routineN - - INTEGER :: lb_new, lb_orig, & - ub_new, ub_orig, old_size, & - size_increase - TYPE(dbcsr_memtype_type) :: mem_type - LOGICAL :: dbg, docopy, & - pad - COMPLEX(kind=real_8), DIMENSION(:), POINTER, CONTIGUOUS :: newarray - -! --------------------------------------------------------------------------- - !CALL timeset(routineN, error_handler) - dbg = .FALSE. - - IF (PRESENT(array_resize)) NULLIFY (array_resize) - - IF (PRESENT(nocopy)) THEN - docopy = .NOT. nocopy - ELSE - docopy = .TRUE. - END IF - IF (PRESENT(memory_type)) THEN - mem_type = memory_type - ELSE - mem_type = dbcsr_memtype_default - END IF - lb_new = 1 - IF (PRESENT(lb)) lb_new = lb - pad = .FALSE. - IF (PRESENT(zero_pad)) pad = zero_pad - ! Creates a new array if it doesn't yet exist. - IF (.NOT. ASSOCIATED(array)) THEN - IF (lb_new /= 1) & - DBCSR_ABORT("Arrays must start at 1") - CALL mem_alloc_z (array, ub, mem_type=mem_type) - IF (pad .AND. ub .GT. 0) CALL mem_zero_z (array, ub) - !CALL timestop(error_handler) - RETURN - END IF - lb_orig = LBOUND(array, 1) - ub_orig = UBOUND(array, 1) - old_size = ub_orig - lb_orig + 1 - ! The existing array is big enough. - IF (lb_orig .LE. lb_new .AND. ub_orig .GE. ub) THEN - !CALL timestop(error_handler) - RETURN - END IF - ! A reallocation must be performed - IF (dbg) WRITE (*, *) routineP//' Current bounds are', lb_orig, ':', ub_orig, & - '; special?' !,mem_type - !CALL timeset(routineN,timing_handle) - IF (lb_orig .GT. lb_new) THEN - IF (PRESENT(factor)) THEN - size_increase = lb_orig - lb_new - size_increase = MAX(NINT(size_increase*factor), & - NINT(old_size*(factor - 1)), 0) - lb_new = MIN(lb_orig, lb_new - size_increase) - ELSE - lb_new = lb_orig - END IF - END IF - IF (ub_orig .LT. ub) THEN - IF (PRESENT(factor)) THEN - size_increase = ub - ub_orig - size_increase = MAX(NINT(size_increase*factor), & - NINT(old_size*(factor - 1)), 0) - ub_new = MAX(ub_orig, ub + size_increase) - ELSE - ub_new = ub - END IF - ELSE - ub_new = ub - END IF - IF (dbg) WRITE (*, *) routineP//' Resizing to bounds', lb_new, ':', ub_new - ! - ! Deallocates the old array if it's not needed to copy the old data. - IF (.NOT. docopy) THEN - IF (PRESENT(array_resize)) THEN - array_resize => array - NULLIFY (array) - ELSE - CALL mem_dealloc_z (array, mem_type=mem_type) - END IF - END IF - ! - ! Allocates the new array - IF (lb_new /= 1) & - DBCSR_ABORT("Arrays must start at 1") - CALL mem_alloc_z (newarray, ub_new - lb_new + 1, mem_type) - ! - ! Now copy and/or zero pad. - IF (docopy) THEN - IF (dbg .AND. (lb_new .GT. lb_orig .OR. ub_new .LT. ub_orig)) & - DBCSR_ABORT("Old extent exceeds the new one.") - IF (ub_orig - lb_orig + 1 .gt. 0) THEN - !newarray(lb_orig:ub_orig) = array(lb_orig:ub_orig) - CALL mem_copy_z (newarray(lb_orig:ub_orig), & - array(lb_orig:ub_orig), ub_orig - lb_orig + 1) - END IF - IF (pad) THEN - !newarray(lb_new:lb_orig-1) = 0 - CALL mem_zero_z (newarray(lb_new:lb_orig - 1), (lb_orig - 1) - lb_new + 1) - !newarray(ub_orig+1:ub_new) = 0 - CALL mem_zero_z (newarray(ub_orig + 1:ub_new), ub_new - (ub_orig + 1) + 1) - END IF - IF (PRESENT(array_resize)) THEN - array_resize => array - NULLIFY (array) - ELSE - CALL mem_dealloc_z (array, mem_type=mem_type) - END IF - ELSEIF (pad) THEN - !newarray(:) = CMPLX(0.0, 0.0, real_8) - CALL mem_zero_z (newarray, SIZE(newarray)) - END IF - array => newarray - IF (dbg) WRITE (*, *) routineP//' New array size', SIZE(array) - !CALL timestop(error_handler) - END SUBROUTINE ensure_array_size_z - - SUBROUTINE mem_copy_z (dst, src, n) - !! Copies memory area - - INTEGER, INTENT(IN) :: n - !! length of copy - COMPLEX(kind=real_8), DIMENSION(1:n), INTENT(OUT) :: dst - !! destination memory - COMPLEX(kind=real_8), DIMENSION(1:n), INTENT(IN) :: src - !! source memory -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(dst,src) -#endif - dst(:) = src(:) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif - END SUBROUTINE mem_copy_z - - SUBROUTINE mem_zero_z (dst, n) - !! Zeros memory area - - INTEGER, INTENT(IN) :: n - !! length of elements to zero - COMPLEX(kind=real_8), DIMENSION(1:n), INTENT(OUT) :: dst - !! destination memory -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(dst) -#endif - dst(:) = CMPLX(0.0, 0.0, real_8) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif - END SUBROUTINE mem_zero_z - - SUBROUTINE mem_alloc_z (mem, n, mem_type) - !! Allocates memory +! --------------------------------------------------------------------------- + !CALL timeset(routineN, error_handler) + dbg = .FALSE. + + IF (PRESENT(array_resize)) NULLIFY (array_resize) + + IF (PRESENT(nocopy)) THEN + docopy = .NOT. nocopy + ELSE + docopy = .TRUE. + END IF + IF (PRESENT(memory_type)) THEN + mem_type = memory_type + ELSE + mem_type = dbcsr_memtype_default + END IF + lb_new = 1 + IF (PRESENT(lb)) lb_new = lb + pad = .FALSE. + IF (PRESENT(zero_pad)) pad = zero_pad + ! Creates a new array if it doesn't yet exist. + IF (.NOT. ASSOCIATED(array)) THEN + IF (lb_new /= 1) & + DBCSR_ABORT("Arrays must start at 1") + CALL mem_alloc_z (array, ub, mem_type=mem_type) + IF (pad .AND. ub .GT. 0) CALL mem_zero_z (array, ub) + !CALL timestop(error_handler) + RETURN + END IF + lb_orig = LBOUND(array, 1) + ub_orig = UBOUND(array, 1) + old_size = ub_orig - lb_orig + 1 + ! The existing array is big enough. + IF (lb_orig .LE. lb_new .AND. ub_orig .GE. ub) THEN + !CALL timestop(error_handler) + RETURN + END IF + ! A reallocation must be performed + IF (dbg) WRITE (*, *) routineP//' Current bounds are', lb_orig, ':', ub_orig, & + '; special?' !,mem_type + !CALL timeset(routineN,timing_handle) + IF (lb_orig .GT. lb_new) THEN + IF (PRESENT(factor)) THEN + size_increase = lb_orig - lb_new + size_increase = MAX(NINT(size_increase*factor), & + NINT(old_size*(factor - 1)), 0) + lb_new = MIN(lb_orig, lb_new - size_increase) + ELSE + lb_new = lb_orig + END IF + END IF + IF (ub_orig .LT. ub) THEN + IF (PRESENT(factor)) THEN + size_increase = ub - ub_orig + size_increase = MAX(NINT(size_increase*factor), & + NINT(old_size*(factor - 1)), 0) + ub_new = MAX(ub_orig, ub + size_increase) + ELSE + ub_new = ub + END IF + ELSE + ub_new = ub + END IF + IF (dbg) WRITE (*, *) routineP//' Resizing to bounds', lb_new, ':', ub_new + ! + ! Deallocates the old array if it's not needed to copy the old data. + IF (.NOT. docopy) THEN + IF (PRESENT(array_resize)) THEN + array_resize => array + NULLIFY (array) + ELSE + CALL mem_dealloc_z (array, mem_type=mem_type) + END IF + END IF + ! + ! Allocates the new array + IF (lb_new /= 1) & + DBCSR_ABORT("Arrays must start at 1") + CALL mem_alloc_z (newarray, ub_new - lb_new + 1, mem_type) + ! + ! Now copy and/or zero pad. + IF (docopy) THEN + IF (dbg .AND. (lb_new .GT. lb_orig .OR. ub_new .LT. ub_orig)) & + DBCSR_ABORT("Old extent exceeds the new one.") + IF (ub_orig - lb_orig + 1 .gt. 0) THEN + !newarray(lb_orig:ub_orig) = array(lb_orig:ub_orig) + CALL mem_copy_z (newarray(lb_orig:ub_orig), & + array(lb_orig:ub_orig), ub_orig - lb_orig + 1) + END IF + IF (pad) THEN + !newarray(lb_new:lb_orig-1) = 0 + CALL mem_zero_z (newarray(lb_new:lb_orig - 1), (lb_orig - 1) - lb_new + 1) + !newarray(ub_orig+1:ub_new) = 0 + CALL mem_zero_z (newarray(ub_orig + 1:ub_new), ub_new - (ub_orig + 1) + 1) + END IF + IF (PRESENT(array_resize)) THEN + array_resize => array + NULLIFY (array) + ELSE + CALL mem_dealloc_z (array, mem_type=mem_type) + END IF + ELSEIF (pad) THEN + !newarray(:) = CMPLX(0.0, 0.0, real_8) + CALL mem_zero_z (newarray, SIZE(newarray)) + END IF + array => newarray + IF (dbg) WRITE (*, *) routineP//' New array size', SIZE(array) + !CALL timestop(error_handler) + END SUBROUTINE ensure_array_size_z + + SUBROUTINE mem_copy_z (dst, src, n) + !! Copies memory area + + INTEGER, INTENT(IN) :: n + !! length of copy + COMPLEX(kind=real_8), DIMENSION(1:n), INTENT(OUT) :: dst + !! destination memory + COMPLEX(kind=real_8), DIMENSION(1:n), INTENT(IN) :: src + !! source memory + dst(:) = src(:) + END SUBROUTINE mem_copy_z + + SUBROUTINE mem_zero_z (dst, n) + !! Zeros memory area + + INTEGER, INTENT(IN) :: n + !! length of elements to zero + COMPLEX(kind=real_8), DIMENSION(1:n), INTENT(OUT) :: dst + !! destination memory + dst(:) = CMPLX(0.0, 0.0, real_8) + END SUBROUTINE mem_zero_z + + SUBROUTINE mem_alloc_z (mem, n, mem_type) + !! Allocates memory + + COMPLEX(kind=real_8), DIMENSION(:), POINTER, CONTIGUOUS :: mem + !! memory to allocate + INTEGER, INTENT(IN) :: n + !! length of elements to allocate + TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type + !! memory type + CHARACTER(len=*), PARAMETER :: routineN = 'mem_alloc_z' + INTEGER :: error_handle +! --------------------------------------------------------------------------- + + IF (careful_mod) & + CALL timeset(routineN, error_handle) + + IF (mem_type%acc_hostalloc .AND. n > 1) THEN + CALL acc_hostmem_allocate(mem, n, mem_type%acc_stream) + ELSE IF (mem_type%mpi .AND. dbcsr_cfg%use_mpi_allocator%val) THEN + CALL mp_allocate(mem, n) + ELSE + ALLOCATE (mem(n)) + END IF + + IF (careful_mod) & + CALL timestop(error_handle) + END SUBROUTINE mem_alloc_z + + SUBROUTINE mem_alloc_z_2d(mem, sizes, mem_type) + !! Allocates memory + + COMPLEX(kind=real_8), DIMENSION(:, :), POINTER :: mem + !! memory to allocate + INTEGER, DIMENSION(2), INTENT(IN) :: sizes + !! length of elements to allocate + TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type + !! memory type + CHARACTER(len=*), PARAMETER :: routineN = 'mem_alloc_z_2d' + INTEGER :: error_handle +! --------------------------------------------------------------------------- - COMPLEX(kind=real_8), DIMENSION(:), POINTER, CONTIGUOUS :: mem - !! memory to allocate - INTEGER, INTENT(IN) :: n - !! length of elements to allocate - TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type - !! memory type - CHARACTER(len=*), PARAMETER :: routineN = 'mem_alloc_z' - INTEGER :: error_handle -! --------------------------------------------------------------------------- - - IF (careful_mod) & - CALL timeset(routineN, error_handle) + IF (careful_mod) & + CALL timeset(routineN, error_handle) + + IF (mem_type%acc_hostalloc) THEN + DBCSR_ABORT("Accelerator hostalloc not supported for 2D arrays.") + !CALL acc_hostmem_allocate(mem, n, mem_type%acc_stream) + ELSE IF (mem_type%mpi) THEN + DBCSR_ABORT("MPI allocate not supported for 2D arrays.") + !CALL mp_allocate(mem, n) + ELSE + ALLOCATE (mem(sizes(1), sizes(2))) + END IF - IF (mem_type%acc_hostalloc .AND. n > 1) THEN - CALL acc_hostmem_allocate(mem, n, mem_type%acc_stream) - ELSE IF (mem_type%mpi .AND. dbcsr_cfg%use_mpi_allocator%val) THEN - CALL mp_allocate(mem, n) - ELSE - ALLOCATE (mem(n)) - END IF - - IF (careful_mod) & - CALL timestop(error_handle) - END SUBROUTINE mem_alloc_z - - SUBROUTINE mem_alloc_z_2d(mem, sizes, mem_type) - !! Allocates memory + IF (careful_mod) & + CALL timestop(error_handle) + END SUBROUTINE mem_alloc_z_2d + + SUBROUTINE mem_dealloc_z (mem, mem_type) + !! Deallocates memory + + COMPLEX(kind=real_8), DIMENSION(:), POINTER, CONTIGUOUS :: mem + !! memory to allocate + TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type + !! memory type + CHARACTER(len=*), PARAMETER :: routineN = 'mem_dealloc_z' + INTEGER :: error_handle +! --------------------------------------------------------------------------- - COMPLEX(kind=real_8), DIMENSION(:, :), POINTER :: mem - !! memory to allocate - INTEGER, DIMENSION(2), INTENT(IN) :: sizes - !! length of elements to allocate - TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type - !! memory type - CHARACTER(len=*), PARAMETER :: routineN = 'mem_alloc_z_2d' - INTEGER :: error_handle -! --------------------------------------------------------------------------- - - IF (careful_mod) & - CALL timeset(routineN, error_handle) - - IF (mem_type%acc_hostalloc) THEN - DBCSR_ABORT("Accelerator hostalloc not supported for 2D arrays.") - !CALL acc_hostmem_allocate(mem, n, mem_type%acc_stream) - ELSE IF (mem_type%mpi) THEN - DBCSR_ABORT("MPI allocate not supported for 2D arrays.") - !CALL mp_allocate(mem, n) - ELSE - ALLOCATE (mem(sizes(1), sizes(2))) - END IF - - IF (careful_mod) & - CALL timestop(error_handle) - END SUBROUTINE mem_alloc_z_2d - - SUBROUTINE mem_dealloc_z (mem, mem_type) - !! Deallocates memory - - COMPLEX(kind=real_8), DIMENSION(:), POINTER, CONTIGUOUS :: mem - !! memory to allocate - TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type - !! memory type - CHARACTER(len=*), PARAMETER :: routineN = 'mem_dealloc_z' - INTEGER :: error_handle -! --------------------------------------------------------------------------- - - IF (careful_mod) & - CALL timeset(routineN, error_handle) - - IF (mem_type%acc_hostalloc .AND. SIZE(mem) > 1) THEN - CALL acc_hostmem_deallocate(mem, mem_type%acc_stream) - ELSE IF (mem_type%mpi .AND. dbcsr_cfg%use_mpi_allocator%val) THEN - CALL mp_deallocate(mem) - ELSE - DEALLOCATE (mem) - END IF - - IF (careful_mod) & - CALL timestop(error_handle) - END SUBROUTINE mem_dealloc_z + IF (careful_mod) & + CALL timeset(routineN, error_handle) + + IF (mem_type%acc_hostalloc .AND. SIZE(mem) > 1) THEN + CALL acc_hostmem_deallocate(mem, mem_type%acc_stream) + ELSE IF (mem_type%mpi .AND. dbcsr_cfg%use_mpi_allocator%val) THEN + CALL mp_deallocate(mem) + ELSE + DEALLOCATE (mem) + END IF + + IF (careful_mod) & + CALL timestop(error_handle) + END SUBROUTINE mem_dealloc_z + + SUBROUTINE mem_dealloc_z_2d(mem, mem_type) + !! Deallocates memory + + COMPLEX(kind=real_8), DIMENSION(:, :), POINTER :: mem + !! memory to allocate + TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type + !! memory type + CHARACTER(len=*), PARAMETER :: routineN = 'mem_dealloc_z' + INTEGER :: error_handle +! --------------------------------------------------------------------------- + + IF (careful_mod) & + CALL timeset(routineN, error_handle) + + IF (mem_type%acc_hostalloc) THEN + DBCSR_ABORT("Accelerator host deallocate not supported for 2D arrays.") + !CALL acc_hostmem_deallocate(mem, mem_type%acc_stream) + ELSE IF (mem_type%mpi) THEN + DBCSR_ABORT("MPI deallocate not supported for 2D arrays.") + !CALL mp_deallocate(mem) + ELSE + DEALLOCATE (mem) + END IF + + IF (careful_mod) & + CALL timestop(error_handle) + END SUBROUTINE mem_dealloc_z_2d + + SUBROUTINE pointer_z_rank_remap2(r2p, d1, d2, r1p) + !! Sets a rank-2 pointer to rank-1 data using Fortran 2003 pointer + !! rank remapping. + + INTEGER, INTENT(IN) :: d1, d2 + COMPLEX(kind=real_8), DIMENSION(:, :), & + POINTER :: r2p + COMPLEX(kind=real_8), DIMENSION(:), & + POINTER :: r1p - SUBROUTINE mem_dealloc_z_2d(mem, mem_type) - !! Deallocates memory - - COMPLEX(kind=real_8), DIMENSION(:, :), POINTER :: mem - !! memory to allocate - TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type - !! memory type - CHARACTER(len=*), PARAMETER :: routineN = 'mem_dealloc_z' - INTEGER :: error_handle -! --------------------------------------------------------------------------- - - IF (careful_mod) & - CALL timeset(routineN, error_handle) - - IF (mem_type%acc_hostalloc) THEN - DBCSR_ABORT("Accelerator host deallocate not supported for 2D arrays.") - !CALL acc_hostmem_deallocate(mem, mem_type%acc_stream) - ELSE IF (mem_type%mpi) THEN - DBCSR_ABORT("MPI deallocate not supported for 2D arrays.") - !CALL mp_deallocate(mem) - ELSE - DEALLOCATE (mem) - END IF - - IF (careful_mod) & - CALL timestop(error_handle) - END SUBROUTINE mem_dealloc_z_2d - - SUBROUTINE pointer_z_rank_remap2(r2p, d1, d2, r1p) - !! Sets a rank-2 pointer to rank-1 data using Fortran 2003 pointer - !! rank remapping. - - INTEGER, INTENT(IN) :: d1, d2 - COMPLEX(kind=real_8), DIMENSION(:, :), & - POINTER :: r2p - COMPLEX(kind=real_8), DIMENSION(:), & - POINTER :: r1p - - r2p(1:d1, 1:d2) => r1p(1:d1*d2) - END SUBROUTINE pointer_z_rank_remap2 -# 138 "/__w/dbcsr/dbcsr/src/data/dbcsr_ptr_util.F" - FUNCTION pointer_view_c (original, lb, ub) RESULT(view) - !! Returns a pointer with different bounds. - - COMPLEX(kind=real_4), DIMENSION(:), POINTER :: original, view - !! original data pointer - !! new pointer - INTEGER, INTENT(IN) :: lb, ub - !! lower and upper bound for the new pointer view - !! lower and upper bound for the new pointer view - view => original(lb:ub) - END FUNCTION pointer_view_c - - SUBROUTINE ensure_array_size_c (array, array_resize, lb, ub, factor, & - nocopy, memory_type, zero_pad) - !! Ensures that an array is appropriately large. - - COMPLEX(kind=real_4), DIMENSION(:), POINTER, CONTIGUOUS :: array - !! array to verify and possibly resize - COMPLEX(kind=real_4), DIMENSION(:), POINTER, OPTIONAL :: array_resize - INTEGER, INTENT(IN), OPTIONAL :: lb - !! desired array lower bound - INTEGER, INTENT(IN) :: ub - !! desired array upper bound - REAL(KIND=dp), INTENT(IN), OPTIONAL :: factor - !! factor by which to exaggerate enlargements - LOGICAL, INTENT(IN), OPTIONAL :: nocopy, zero_pad - !! copy array on enlargement; default is to copy - !! zero new allocations; default is to write nothing - TYPE(dbcsr_memtype_type), INTENT(IN), OPTIONAL :: memory_type - !! use special memory - - CHARACTER(len=*), PARAMETER :: routineN = 'ensure_array_size_c', & - routineP = moduleN//':'//routineN - - INTEGER :: lb_new, lb_orig, & - ub_new, ub_orig, old_size, & - size_increase - TYPE(dbcsr_memtype_type) :: mem_type - LOGICAL :: dbg, docopy, & - pad - COMPLEX(kind=real_4), DIMENSION(:), POINTER, CONTIGUOUS :: newarray - -! --------------------------------------------------------------------------- - !CALL timeset(routineN, error_handler) - dbg = .FALSE. - - IF (PRESENT(array_resize)) NULLIFY (array_resize) - - IF (PRESENT(nocopy)) THEN - docopy = .NOT. nocopy - ELSE - docopy = .TRUE. - END IF - IF (PRESENT(memory_type)) THEN - mem_type = memory_type - ELSE - mem_type = dbcsr_memtype_default - END IF - lb_new = 1 - IF (PRESENT(lb)) lb_new = lb - pad = .FALSE. - IF (PRESENT(zero_pad)) pad = zero_pad - ! Creates a new array if it doesn't yet exist. - IF (.NOT. ASSOCIATED(array)) THEN - IF (lb_new /= 1) & - DBCSR_ABORT("Arrays must start at 1") - CALL mem_alloc_c (array, ub, mem_type=mem_type) - IF (pad .AND. ub .GT. 0) CALL mem_zero_c (array, ub) - !CALL timestop(error_handler) - RETURN - END IF - lb_orig = LBOUND(array, 1) - ub_orig = UBOUND(array, 1) - old_size = ub_orig - lb_orig + 1 - ! The existing array is big enough. - IF (lb_orig .LE. lb_new .AND. ub_orig .GE. ub) THEN - !CALL timestop(error_handler) - RETURN - END IF - ! A reallocation must be performed - IF (dbg) WRITE (*, *) routineP//' Current bounds are', lb_orig, ':', ub_orig, & - '; special?' !,mem_type - !CALL timeset(routineN,timing_handle) - IF (lb_orig .GT. lb_new) THEN - IF (PRESENT(factor)) THEN - size_increase = lb_orig - lb_new - size_increase = MAX(NINT(size_increase*factor), & - NINT(old_size*(factor - 1)), 0) - lb_new = MIN(lb_orig, lb_new - size_increase) - ELSE - lb_new = lb_orig - END IF - END IF - IF (ub_orig .LT. ub) THEN - IF (PRESENT(factor)) THEN - size_increase = ub - ub_orig - size_increase = MAX(NINT(size_increase*factor), & - NINT(old_size*(factor - 1)), 0) - ub_new = MAX(ub_orig, ub + size_increase) - ELSE - ub_new = ub - END IF - ELSE - ub_new = ub - END IF - IF (dbg) WRITE (*, *) routineP//' Resizing to bounds', lb_new, ':', ub_new - ! - ! Deallocates the old array if it's not needed to copy the old data. - IF (.NOT. docopy) THEN - IF (PRESENT(array_resize)) THEN - array_resize => array - NULLIFY (array) - ELSE - CALL mem_dealloc_c (array, mem_type=mem_type) - END IF - END IF - ! - ! Allocates the new array - IF (lb_new /= 1) & - DBCSR_ABORT("Arrays must start at 1") - CALL mem_alloc_c (newarray, ub_new - lb_new + 1, mem_type) - ! - ! Now copy and/or zero pad. - IF (docopy) THEN - IF (dbg .AND. (lb_new .GT. lb_orig .OR. ub_new .LT. ub_orig)) & - DBCSR_ABORT("Old extent exceeds the new one.") - IF (ub_orig - lb_orig + 1 .gt. 0) THEN - !newarray(lb_orig:ub_orig) = array(lb_orig:ub_orig) - CALL mem_copy_c (newarray(lb_orig:ub_orig), & - array(lb_orig:ub_orig), ub_orig - lb_orig + 1) - END IF - IF (pad) THEN - !newarray(lb_new:lb_orig-1) = 0 - CALL mem_zero_c (newarray(lb_new:lb_orig - 1), (lb_orig - 1) - lb_new + 1) - !newarray(ub_orig+1:ub_new) = 0 - CALL mem_zero_c (newarray(ub_orig + 1:ub_new), ub_new - (ub_orig + 1) + 1) - END IF - IF (PRESENT(array_resize)) THEN - array_resize => array - NULLIFY (array) - ELSE - CALL mem_dealloc_c (array, mem_type=mem_type) - END IF - ELSEIF (pad) THEN - !newarray(:) = CMPLX(0.0, 0.0, real_4) - CALL mem_zero_c (newarray, SIZE(newarray)) - END IF - array => newarray - IF (dbg) WRITE (*, *) routineP//' New array size', SIZE(array) - !CALL timestop(error_handler) - END SUBROUTINE ensure_array_size_c + r2p(1:d1, 1:d2) => r1p(1:d1*d2) + END SUBROUTINE pointer_z_rank_remap2 +# 136 "/__w/dbcsr/dbcsr/src/data/dbcsr_ptr_util.F" + FUNCTION pointer_view_c (original, lb, ub) RESULT(view) + !! Returns a pointer with different bounds. + + COMPLEX(kind=real_4), DIMENSION(:), POINTER :: original, view + !! original data pointer + !! new pointer + INTEGER, INTENT(IN) :: lb, ub + !! lower and upper bound for the new pointer view + !! lower and upper bound for the new pointer view + view => original(lb:ub) + END FUNCTION pointer_view_c + + SUBROUTINE ensure_array_size_c (array, array_resize, lb, ub, factor, & + nocopy, memory_type, zero_pad) + !! Ensures that an array is appropriately large. + + COMPLEX(kind=real_4), DIMENSION(:), POINTER, CONTIGUOUS :: array + !! array to verify and possibly resize + COMPLEX(kind=real_4), DIMENSION(:), POINTER, OPTIONAL :: array_resize + INTEGER, INTENT(IN), OPTIONAL :: lb + !! desired array lower bound + INTEGER, INTENT(IN) :: ub + !! desired array upper bound + REAL(KIND=dp), INTENT(IN), OPTIONAL :: factor + !! factor by which to exaggerate enlargements + LOGICAL, INTENT(IN), OPTIONAL :: nocopy, zero_pad + !! copy array on enlargement; default is to copy + !! zero new allocations; default is to write nothing + TYPE(dbcsr_memtype_type), INTENT(IN), OPTIONAL :: memory_type + !! use special memory + + CHARACTER(len=*), PARAMETER :: routineN = 'ensure_array_size_c', & + routineP = moduleN//':'//routineN + + INTEGER :: lb_new, lb_orig, & + ub_new, ub_orig, old_size, & + size_increase + TYPE(dbcsr_memtype_type) :: mem_type + LOGICAL :: dbg, docopy, & + pad + COMPLEX(kind=real_4), DIMENSION(:), POINTER, CONTIGUOUS :: newarray + +! --------------------------------------------------------------------------- + !CALL timeset(routineN, error_handler) + dbg = .FALSE. + + IF (PRESENT(array_resize)) NULLIFY (array_resize) + + IF (PRESENT(nocopy)) THEN + docopy = .NOT. nocopy + ELSE + docopy = .TRUE. + END IF + IF (PRESENT(memory_type)) THEN + mem_type = memory_type + ELSE + mem_type = dbcsr_memtype_default + END IF + lb_new = 1 + IF (PRESENT(lb)) lb_new = lb + pad = .FALSE. + IF (PRESENT(zero_pad)) pad = zero_pad + ! Creates a new array if it doesn't yet exist. + IF (.NOT. ASSOCIATED(array)) THEN + IF (lb_new /= 1) & + DBCSR_ABORT("Arrays must start at 1") + CALL mem_alloc_c (array, ub, mem_type=mem_type) + IF (pad .AND. ub .GT. 0) CALL mem_zero_c (array, ub) + !CALL timestop(error_handler) + RETURN + END IF + lb_orig = LBOUND(array, 1) + ub_orig = UBOUND(array, 1) + old_size = ub_orig - lb_orig + 1 + ! The existing array is big enough. + IF (lb_orig .LE. lb_new .AND. ub_orig .GE. ub) THEN + !CALL timestop(error_handler) + RETURN + END IF + ! A reallocation must be performed + IF (dbg) WRITE (*, *) routineP//' Current bounds are', lb_orig, ':', ub_orig, & + '; special?' !,mem_type + !CALL timeset(routineN,timing_handle) + IF (lb_orig .GT. lb_new) THEN + IF (PRESENT(factor)) THEN + size_increase = lb_orig - lb_new + size_increase = MAX(NINT(size_increase*factor), & + NINT(old_size*(factor - 1)), 0) + lb_new = MIN(lb_orig, lb_new - size_increase) + ELSE + lb_new = lb_orig + END IF + END IF + IF (ub_orig .LT. ub) THEN + IF (PRESENT(factor)) THEN + size_increase = ub - ub_orig + size_increase = MAX(NINT(size_increase*factor), & + NINT(old_size*(factor - 1)), 0) + ub_new = MAX(ub_orig, ub + size_increase) + ELSE + ub_new = ub + END IF + ELSE + ub_new = ub + END IF + IF (dbg) WRITE (*, *) routineP//' Resizing to bounds', lb_new, ':', ub_new + ! + ! Deallocates the old array if it's not needed to copy the old data. + IF (.NOT. docopy) THEN + IF (PRESENT(array_resize)) THEN + array_resize => array + NULLIFY (array) + ELSE + CALL mem_dealloc_c (array, mem_type=mem_type) + END IF + END IF + ! + ! Allocates the new array + IF (lb_new /= 1) & + DBCSR_ABORT("Arrays must start at 1") + CALL mem_alloc_c (newarray, ub_new - lb_new + 1, mem_type) + ! + ! Now copy and/or zero pad. + IF (docopy) THEN + IF (dbg .AND. (lb_new .GT. lb_orig .OR. ub_new .LT. ub_orig)) & + DBCSR_ABORT("Old extent exceeds the new one.") + IF (ub_orig - lb_orig + 1 .gt. 0) THEN + !newarray(lb_orig:ub_orig) = array(lb_orig:ub_orig) + CALL mem_copy_c (newarray(lb_orig:ub_orig), & + array(lb_orig:ub_orig), ub_orig - lb_orig + 1) + END IF + IF (pad) THEN + !newarray(lb_new:lb_orig-1) = 0 + CALL mem_zero_c (newarray(lb_new:lb_orig - 1), (lb_orig - 1) - lb_new + 1) + !newarray(ub_orig+1:ub_new) = 0 + CALL mem_zero_c (newarray(ub_orig + 1:ub_new), ub_new - (ub_orig + 1) + 1) + END IF + IF (PRESENT(array_resize)) THEN + array_resize => array + NULLIFY (array) + ELSE + CALL mem_dealloc_c (array, mem_type=mem_type) + END IF + ELSEIF (pad) THEN + !newarray(:) = CMPLX(0.0, 0.0, real_4) + CALL mem_zero_c (newarray, SIZE(newarray)) + END IF + array => newarray + IF (dbg) WRITE (*, *) routineP//' New array size', SIZE(array) + !CALL timestop(error_handler) + END SUBROUTINE ensure_array_size_c + + SUBROUTINE mem_copy_c (dst, src, n) + !! Copies memory area + + INTEGER, INTENT(IN) :: n + !! length of copy + COMPLEX(kind=real_4), DIMENSION(1:n), INTENT(OUT) :: dst + !! destination memory + COMPLEX(kind=real_4), DIMENSION(1:n), INTENT(IN) :: src + !! source memory + dst(:) = src(:) + END SUBROUTINE mem_copy_c + + SUBROUTINE mem_zero_c (dst, n) + !! Zeros memory area + + INTEGER, INTENT(IN) :: n + !! length of elements to zero + COMPLEX(kind=real_4), DIMENSION(1:n), INTENT(OUT) :: dst + !! destination memory + dst(:) = CMPLX(0.0, 0.0, real_4) + END SUBROUTINE mem_zero_c + + SUBROUTINE mem_alloc_c (mem, n, mem_type) + !! Allocates memory + + COMPLEX(kind=real_4), DIMENSION(:), POINTER, CONTIGUOUS :: mem + !! memory to allocate + INTEGER, INTENT(IN) :: n + !! length of elements to allocate + TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type + !! memory type + CHARACTER(len=*), PARAMETER :: routineN = 'mem_alloc_c' + INTEGER :: error_handle +! --------------------------------------------------------------------------- + + IF (careful_mod) & + CALL timeset(routineN, error_handle) - SUBROUTINE mem_copy_c (dst, src, n) - !! Copies memory area - - INTEGER, INTENT(IN) :: n - !! length of copy - COMPLEX(kind=real_4), DIMENSION(1:n), INTENT(OUT) :: dst - !! destination memory - COMPLEX(kind=real_4), DIMENSION(1:n), INTENT(IN) :: src - !! source memory -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(dst,src) -#endif - dst(:) = src(:) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif - END SUBROUTINE mem_copy_c - - SUBROUTINE mem_zero_c (dst, n) - !! Zeros memory area - - INTEGER, INTENT(IN) :: n - !! length of elements to zero - COMPLEX(kind=real_4), DIMENSION(1:n), INTENT(OUT) :: dst - !! destination memory -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(dst) -#endif - dst(:) = CMPLX(0.0, 0.0, real_4) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif - END SUBROUTINE mem_zero_c - - SUBROUTINE mem_alloc_c (mem, n, mem_type) - !! Allocates memory - - COMPLEX(kind=real_4), DIMENSION(:), POINTER, CONTIGUOUS :: mem - !! memory to allocate - INTEGER, INTENT(IN) :: n - !! length of elements to allocate - TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type - !! memory type - CHARACTER(len=*), PARAMETER :: routineN = 'mem_alloc_c' - INTEGER :: error_handle -! --------------------------------------------------------------------------- - - IF (careful_mod) & - CALL timeset(routineN, error_handle) - - IF (mem_type%acc_hostalloc .AND. n > 1) THEN - CALL acc_hostmem_allocate(mem, n, mem_type%acc_stream) - ELSE IF (mem_type%mpi .AND. dbcsr_cfg%use_mpi_allocator%val) THEN - CALL mp_allocate(mem, n) - ELSE - ALLOCATE (mem(n)) - END IF - - IF (careful_mod) & - CALL timestop(error_handle) - END SUBROUTINE mem_alloc_c - - SUBROUTINE mem_alloc_c_2d(mem, sizes, mem_type) - !! Allocates memory - - COMPLEX(kind=real_4), DIMENSION(:, :), POINTER :: mem - !! memory to allocate - INTEGER, DIMENSION(2), INTENT(IN) :: sizes - !! length of elements to allocate - TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type - !! memory type - CHARACTER(len=*), PARAMETER :: routineN = 'mem_alloc_c_2d' - INTEGER :: error_handle -! --------------------------------------------------------------------------- - - IF (careful_mod) & - CALL timeset(routineN, error_handle) - - IF (mem_type%acc_hostalloc) THEN - DBCSR_ABORT("Accelerator hostalloc not supported for 2D arrays.") - !CALL acc_hostmem_allocate(mem, n, mem_type%acc_stream) - ELSE IF (mem_type%mpi) THEN - DBCSR_ABORT("MPI allocate not supported for 2D arrays.") - !CALL mp_allocate(mem, n) - ELSE - ALLOCATE (mem(sizes(1), sizes(2))) - END IF - - IF (careful_mod) & - CALL timestop(error_handle) - END SUBROUTINE mem_alloc_c_2d + IF (mem_type%acc_hostalloc .AND. n > 1) THEN + CALL acc_hostmem_allocate(mem, n, mem_type%acc_stream) + ELSE IF (mem_type%mpi .AND. dbcsr_cfg%use_mpi_allocator%val) THEN + CALL mp_allocate(mem, n) + ELSE + ALLOCATE (mem(n)) + END IF + + IF (careful_mod) & + CALL timestop(error_handle) + END SUBROUTINE mem_alloc_c + + SUBROUTINE mem_alloc_c_2d(mem, sizes, mem_type) + !! Allocates memory + + COMPLEX(kind=real_4), DIMENSION(:, :), POINTER :: mem + !! memory to allocate + INTEGER, DIMENSION(2), INTENT(IN) :: sizes + !! length of elements to allocate + TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type + !! memory type + CHARACTER(len=*), PARAMETER :: routineN = 'mem_alloc_c_2d' + INTEGER :: error_handle +! --------------------------------------------------------------------------- + + IF (careful_mod) & + CALL timeset(routineN, error_handle) + + IF (mem_type%acc_hostalloc) THEN + DBCSR_ABORT("Accelerator hostalloc not supported for 2D arrays.") + !CALL acc_hostmem_allocate(mem, n, mem_type%acc_stream) + ELSE IF (mem_type%mpi) THEN + DBCSR_ABORT("MPI allocate not supported for 2D arrays.") + !CALL mp_allocate(mem, n) + ELSE + ALLOCATE (mem(sizes(1), sizes(2))) + END IF + + IF (careful_mod) & + CALL timestop(error_handle) + END SUBROUTINE mem_alloc_c_2d + + SUBROUTINE mem_dealloc_c (mem, mem_type) + !! Deallocates memory + + COMPLEX(kind=real_4), DIMENSION(:), POINTER, CONTIGUOUS :: mem + !! memory to allocate + TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type + !! memory type + CHARACTER(len=*), PARAMETER :: routineN = 'mem_dealloc_c' + INTEGER :: error_handle +! --------------------------------------------------------------------------- + + IF (careful_mod) & + CALL timeset(routineN, error_handle) + + IF (mem_type%acc_hostalloc .AND. SIZE(mem) > 1) THEN + CALL acc_hostmem_deallocate(mem, mem_type%acc_stream) + ELSE IF (mem_type%mpi .AND. dbcsr_cfg%use_mpi_allocator%val) THEN + CALL mp_deallocate(mem) + ELSE + DEALLOCATE (mem) + END IF + + IF (careful_mod) & + CALL timestop(error_handle) + END SUBROUTINE mem_dealloc_c + + SUBROUTINE mem_dealloc_c_2d(mem, mem_type) + !! Deallocates memory + + COMPLEX(kind=real_4), DIMENSION(:, :), POINTER :: mem + !! memory to allocate + TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type + !! memory type + CHARACTER(len=*), PARAMETER :: routineN = 'mem_dealloc_c' + INTEGER :: error_handle +! --------------------------------------------------------------------------- + + IF (careful_mod) & + CALL timeset(routineN, error_handle) + + IF (mem_type%acc_hostalloc) THEN + DBCSR_ABORT("Accelerator host deallocate not supported for 2D arrays.") + !CALL acc_hostmem_deallocate(mem, mem_type%acc_stream) + ELSE IF (mem_type%mpi) THEN + DBCSR_ABORT("MPI deallocate not supported for 2D arrays.") + !CALL mp_deallocate(mem) + ELSE + DEALLOCATE (mem) + END IF - SUBROUTINE mem_dealloc_c (mem, mem_type) - !! Deallocates memory - - COMPLEX(kind=real_4), DIMENSION(:), POINTER, CONTIGUOUS :: mem - !! memory to allocate - TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type - !! memory type - CHARACTER(len=*), PARAMETER :: routineN = 'mem_dealloc_c' - INTEGER :: error_handle -! --------------------------------------------------------------------------- - - IF (careful_mod) & - CALL timeset(routineN, error_handle) + IF (careful_mod) & + CALL timestop(error_handle) + END SUBROUTINE mem_dealloc_c_2d + + SUBROUTINE pointer_c_rank_remap2(r2p, d1, d2, r1p) + !! Sets a rank-2 pointer to rank-1 data using Fortran 2003 pointer + !! rank remapping. + + INTEGER, INTENT(IN) :: d1, d2 + COMPLEX(kind=real_4), DIMENSION(:, :), & + POINTER :: r2p + COMPLEX(kind=real_4), DIMENSION(:), & + POINTER :: r1p - IF (mem_type%acc_hostalloc .AND. SIZE(mem) > 1) THEN - CALL acc_hostmem_deallocate(mem, mem_type%acc_stream) - ELSE IF (mem_type%mpi .AND. dbcsr_cfg%use_mpi_allocator%val) THEN - CALL mp_deallocate(mem) - ELSE - DEALLOCATE (mem) - END IF - - IF (careful_mod) & - CALL timestop(error_handle) - END SUBROUTINE mem_dealloc_c - - SUBROUTINE mem_dealloc_c_2d(mem, mem_type) - !! Deallocates memory + r2p(1:d1, 1:d2) => r1p(1:d1*d2) + END SUBROUTINE pointer_c_rank_remap2 +# 136 "/__w/dbcsr/dbcsr/src/data/dbcsr_ptr_util.F" + FUNCTION pointer_view_i (original, lb, ub) RESULT(view) + !! Returns a pointer with different bounds. + + INTEGER(kind=int_4), DIMENSION(:), POINTER :: original, view + !! original data pointer + !! new pointer + INTEGER, INTENT(IN) :: lb, ub + !! lower and upper bound for the new pointer view + !! lower and upper bound for the new pointer view + view => original(lb:ub) + END FUNCTION pointer_view_i - COMPLEX(kind=real_4), DIMENSION(:, :), POINTER :: mem - !! memory to allocate - TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type - !! memory type - CHARACTER(len=*), PARAMETER :: routineN = 'mem_dealloc_c' - INTEGER :: error_handle -! --------------------------------------------------------------------------- - - IF (careful_mod) & - CALL timeset(routineN, error_handle) - - IF (mem_type%acc_hostalloc) THEN - DBCSR_ABORT("Accelerator host deallocate not supported for 2D arrays.") - !CALL acc_hostmem_deallocate(mem, mem_type%acc_stream) - ELSE IF (mem_type%mpi) THEN - DBCSR_ABORT("MPI deallocate not supported for 2D arrays.") - !CALL mp_deallocate(mem) - ELSE - DEALLOCATE (mem) - END IF - - IF (careful_mod) & - CALL timestop(error_handle) - END SUBROUTINE mem_dealloc_c_2d - - SUBROUTINE pointer_c_rank_remap2(r2p, d1, d2, r1p) - !! Sets a rank-2 pointer to rank-1 data using Fortran 2003 pointer - !! rank remapping. - - INTEGER, INTENT(IN) :: d1, d2 - COMPLEX(kind=real_4), DIMENSION(:, :), & - POINTER :: r2p - COMPLEX(kind=real_4), DIMENSION(:), & - POINTER :: r1p - - r2p(1:d1, 1:d2) => r1p(1:d1*d2) - END SUBROUTINE pointer_c_rank_remap2 -# 138 "/__w/dbcsr/dbcsr/src/data/dbcsr_ptr_util.F" - FUNCTION pointer_view_i (original, lb, ub) RESULT(view) - !! Returns a pointer with different bounds. - - INTEGER(kind=int_4), DIMENSION(:), POINTER :: original, view - !! original data pointer - !! new pointer - INTEGER, INTENT(IN) :: lb, ub - !! lower and upper bound for the new pointer view - !! lower and upper bound for the new pointer view - view => original(lb:ub) - END FUNCTION pointer_view_i - - SUBROUTINE ensure_array_size_i (array, array_resize, lb, ub, factor, & - nocopy, memory_type, zero_pad) - !! Ensures that an array is appropriately large. - - INTEGER(kind=int_4), DIMENSION(:), POINTER, CONTIGUOUS :: array - !! array to verify and possibly resize - INTEGER(kind=int_4), DIMENSION(:), POINTER, OPTIONAL :: array_resize - INTEGER, INTENT(IN), OPTIONAL :: lb - !! desired array lower bound - INTEGER, INTENT(IN) :: ub - !! desired array upper bound - REAL(KIND=dp), INTENT(IN), OPTIONAL :: factor - !! factor by which to exaggerate enlargements - LOGICAL, INTENT(IN), OPTIONAL :: nocopy, zero_pad - !! copy array on enlargement; default is to copy - !! zero new allocations; default is to write nothing - TYPE(dbcsr_memtype_type), INTENT(IN), OPTIONAL :: memory_type - !! use special memory - - CHARACTER(len=*), PARAMETER :: routineN = 'ensure_array_size_i', & - routineP = moduleN//':'//routineN - - INTEGER :: lb_new, lb_orig, & - ub_new, ub_orig, old_size, & - size_increase - TYPE(dbcsr_memtype_type) :: mem_type - LOGICAL :: dbg, docopy, & - pad - INTEGER(kind=int_4), DIMENSION(:), POINTER, CONTIGUOUS :: newarray - -! --------------------------------------------------------------------------- - !CALL timeset(routineN, error_handler) - dbg = .FALSE. - - IF (PRESENT(array_resize)) NULLIFY (array_resize) - - IF (PRESENT(nocopy)) THEN - docopy = .NOT. nocopy - ELSE - docopy = .TRUE. - END IF - IF (PRESENT(memory_type)) THEN - mem_type = memory_type - ELSE - mem_type = dbcsr_memtype_default - END IF - lb_new = 1 - IF (PRESENT(lb)) lb_new = lb - pad = .FALSE. - IF (PRESENT(zero_pad)) pad = zero_pad - ! Creates a new array if it doesn't yet exist. - IF (.NOT. ASSOCIATED(array)) THEN - IF (lb_new /= 1) & - DBCSR_ABORT("Arrays must start at 1") - CALL mem_alloc_i (array, ub, mem_type=mem_type) - IF (pad .AND. ub .GT. 0) CALL mem_zero_i (array, ub) - !CALL timestop(error_handler) - RETURN - END IF - lb_orig = LBOUND(array, 1) - ub_orig = UBOUND(array, 1) - old_size = ub_orig - lb_orig + 1 - ! The existing array is big enough. - IF (lb_orig .LE. lb_new .AND. ub_orig .GE. ub) THEN - !CALL timestop(error_handler) - RETURN - END IF - ! A reallocation must be performed - IF (dbg) WRITE (*, *) routineP//' Current bounds are', lb_orig, ':', ub_orig, & - '; special?' !,mem_type - !CALL timeset(routineN,timing_handle) - IF (lb_orig .GT. lb_new) THEN - IF (PRESENT(factor)) THEN - size_increase = lb_orig - lb_new - size_increase = MAX(NINT(size_increase*factor), & - NINT(old_size*(factor - 1)), 0) - lb_new = MIN(lb_orig, lb_new - size_increase) - ELSE - lb_new = lb_orig - END IF - END IF - IF (ub_orig .LT. ub) THEN - IF (PRESENT(factor)) THEN - size_increase = ub - ub_orig - size_increase = MAX(NINT(size_increase*factor), & - NINT(old_size*(factor - 1)), 0) - ub_new = MAX(ub_orig, ub + size_increase) - ELSE - ub_new = ub - END IF - ELSE - ub_new = ub - END IF - IF (dbg) WRITE (*, *) routineP//' Resizing to bounds', lb_new, ':', ub_new - ! - ! Deallocates the old array if it's not needed to copy the old data. - IF (.NOT. docopy) THEN - IF (PRESENT(array_resize)) THEN - array_resize => array - NULLIFY (array) - ELSE - CALL mem_dealloc_i (array, mem_type=mem_type) - END IF - END IF - ! - ! Allocates the new array - IF (lb_new /= 1) & - DBCSR_ABORT("Arrays must start at 1") - CALL mem_alloc_i (newarray, ub_new - lb_new + 1, mem_type) - ! - ! Now copy and/or zero pad. - IF (docopy) THEN - IF (dbg .AND. (lb_new .GT. lb_orig .OR. ub_new .LT. ub_orig)) & - DBCSR_ABORT("Old extent exceeds the new one.") - IF (ub_orig - lb_orig + 1 .gt. 0) THEN - !newarray(lb_orig:ub_orig) = array(lb_orig:ub_orig) - CALL mem_copy_i (newarray(lb_orig:ub_orig), & - array(lb_orig:ub_orig), ub_orig - lb_orig + 1) - END IF - IF (pad) THEN - !newarray(lb_new:lb_orig-1) = 0 - CALL mem_zero_i (newarray(lb_new:lb_orig - 1), (lb_orig - 1) - lb_new + 1) - !newarray(ub_orig+1:ub_new) = 0 - CALL mem_zero_i (newarray(ub_orig + 1:ub_new), ub_new - (ub_orig + 1) + 1) - END IF - IF (PRESENT(array_resize)) THEN - array_resize => array - NULLIFY (array) - ELSE - CALL mem_dealloc_i (array, mem_type=mem_type) - END IF - ELSEIF (pad) THEN - !newarray(:) = 0 - CALL mem_zero_i (newarray, SIZE(newarray)) + SUBROUTINE ensure_array_size_i (array, array_resize, lb, ub, factor, & + nocopy, memory_type, zero_pad) + !! Ensures that an array is appropriately large. + + INTEGER(kind=int_4), DIMENSION(:), POINTER, CONTIGUOUS :: array + !! array to verify and possibly resize + INTEGER(kind=int_4), DIMENSION(:), POINTER, OPTIONAL :: array_resize + INTEGER, INTENT(IN), OPTIONAL :: lb + !! desired array lower bound + INTEGER, INTENT(IN) :: ub + !! desired array upper bound + REAL(KIND=dp), INTENT(IN), OPTIONAL :: factor + !! factor by which to exaggerate enlargements + LOGICAL, INTENT(IN), OPTIONAL :: nocopy, zero_pad + !! copy array on enlargement; default is to copy + !! zero new allocations; default is to write nothing + TYPE(dbcsr_memtype_type), INTENT(IN), OPTIONAL :: memory_type + !! use special memory + + CHARACTER(len=*), PARAMETER :: routineN = 'ensure_array_size_i', & + routineP = moduleN//':'//routineN + + INTEGER :: lb_new, lb_orig, & + ub_new, ub_orig, old_size, & + size_increase + TYPE(dbcsr_memtype_type) :: mem_type + LOGICAL :: dbg, docopy, & + pad + INTEGER(kind=int_4), DIMENSION(:), POINTER, CONTIGUOUS :: newarray + +! --------------------------------------------------------------------------- + !CALL timeset(routineN, error_handler) + dbg = .FALSE. + + IF (PRESENT(array_resize)) NULLIFY (array_resize) + + IF (PRESENT(nocopy)) THEN + docopy = .NOT. nocopy + ELSE + docopy = .TRUE. + END IF + IF (PRESENT(memory_type)) THEN + mem_type = memory_type + ELSE + mem_type = dbcsr_memtype_default + END IF + lb_new = 1 + IF (PRESENT(lb)) lb_new = lb + pad = .FALSE. + IF (PRESENT(zero_pad)) pad = zero_pad + ! Creates a new array if it doesn't yet exist. + IF (.NOT. ASSOCIATED(array)) THEN + IF (lb_new /= 1) & + DBCSR_ABORT("Arrays must start at 1") + CALL mem_alloc_i (array, ub, mem_type=mem_type) + IF (pad .AND. ub .GT. 0) CALL mem_zero_i (array, ub) + !CALL timestop(error_handler) + RETURN + END IF + lb_orig = LBOUND(array, 1) + ub_orig = UBOUND(array, 1) + old_size = ub_orig - lb_orig + 1 + ! The existing array is big enough. + IF (lb_orig .LE. lb_new .AND. ub_orig .GE. ub) THEN + !CALL timestop(error_handler) + RETURN + END IF + ! A reallocation must be performed + IF (dbg) WRITE (*, *) routineP//' Current bounds are', lb_orig, ':', ub_orig, & + '; special?' !,mem_type + !CALL timeset(routineN,timing_handle) + IF (lb_orig .GT. lb_new) THEN + IF (PRESENT(factor)) THEN + size_increase = lb_orig - lb_new + size_increase = MAX(NINT(size_increase*factor), & + NINT(old_size*(factor - 1)), 0) + lb_new = MIN(lb_orig, lb_new - size_increase) + ELSE + lb_new = lb_orig + END IF + END IF + IF (ub_orig .LT. ub) THEN + IF (PRESENT(factor)) THEN + size_increase = ub - ub_orig + size_increase = MAX(NINT(size_increase*factor), & + NINT(old_size*(factor - 1)), 0) + ub_new = MAX(ub_orig, ub + size_increase) + ELSE + ub_new = ub + END IF + ELSE + ub_new = ub + END IF + IF (dbg) WRITE (*, *) routineP//' Resizing to bounds', lb_new, ':', ub_new + ! + ! Deallocates the old array if it's not needed to copy the old data. + IF (.NOT. docopy) THEN + IF (PRESENT(array_resize)) THEN + array_resize => array + NULLIFY (array) + ELSE + CALL mem_dealloc_i (array, mem_type=mem_type) + END IF + END IF + ! + ! Allocates the new array + IF (lb_new /= 1) & + DBCSR_ABORT("Arrays must start at 1") + CALL mem_alloc_i (newarray, ub_new - lb_new + 1, mem_type) + ! + ! Now copy and/or zero pad. + IF (docopy) THEN + IF (dbg .AND. (lb_new .GT. lb_orig .OR. ub_new .LT. ub_orig)) & + DBCSR_ABORT("Old extent exceeds the new one.") + IF (ub_orig - lb_orig + 1 .gt. 0) THEN + !newarray(lb_orig:ub_orig) = array(lb_orig:ub_orig) + CALL mem_copy_i (newarray(lb_orig:ub_orig), & + array(lb_orig:ub_orig), ub_orig - lb_orig + 1) + END IF + IF (pad) THEN + !newarray(lb_new:lb_orig-1) = 0 + CALL mem_zero_i (newarray(lb_new:lb_orig - 1), (lb_orig - 1) - lb_new + 1) + !newarray(ub_orig+1:ub_new) = 0 + CALL mem_zero_i (newarray(ub_orig + 1:ub_new), ub_new - (ub_orig + 1) + 1) + END IF + IF (PRESENT(array_resize)) THEN + array_resize => array + NULLIFY (array) + ELSE + CALL mem_dealloc_i (array, mem_type=mem_type) + END IF + ELSEIF (pad) THEN + !newarray(:) = 0 + CALL mem_zero_i (newarray, SIZE(newarray)) + END IF + array => newarray + IF (dbg) WRITE (*, *) routineP//' New array size', SIZE(array) + !CALL timestop(error_handler) + END SUBROUTINE ensure_array_size_i + + SUBROUTINE mem_copy_i (dst, src, n) + !! Copies memory area + + INTEGER, INTENT(IN) :: n + !! length of copy + INTEGER(kind=int_4), DIMENSION(1:n), INTENT(OUT) :: dst + !! destination memory + INTEGER(kind=int_4), DIMENSION(1:n), INTENT(IN) :: src + !! source memory + dst(:) = src(:) + END SUBROUTINE mem_copy_i + + SUBROUTINE mem_zero_i (dst, n) + !! Zeros memory area + + INTEGER, INTENT(IN) :: n + !! length of elements to zero + INTEGER(kind=int_4), DIMENSION(1:n), INTENT(OUT) :: dst + !! destination memory + dst(:) = 0 + END SUBROUTINE mem_zero_i + + SUBROUTINE mem_alloc_i (mem, n, mem_type) + !! Allocates memory + + INTEGER(kind=int_4), DIMENSION(:), POINTER, CONTIGUOUS :: mem + !! memory to allocate + INTEGER, INTENT(IN) :: n + !! length of elements to allocate + TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type + !! memory type + CHARACTER(len=*), PARAMETER :: routineN = 'mem_alloc_i' + INTEGER :: error_handle +! --------------------------------------------------------------------------- + + IF (careful_mod) & + CALL timeset(routineN, error_handle) + + IF (mem_type%acc_hostalloc .AND. n > 1) THEN + CALL acc_hostmem_allocate(mem, n, mem_type%acc_stream) + ELSE IF (mem_type%mpi .AND. dbcsr_cfg%use_mpi_allocator%val) THEN + CALL mp_allocate(mem, n) + ELSE + ALLOCATE (mem(n)) END IF - array => newarray - IF (dbg) WRITE (*, *) routineP//' New array size', SIZE(array) - !CALL timestop(error_handler) - END SUBROUTINE ensure_array_size_i + + IF (careful_mod) & + CALL timestop(error_handle) + END SUBROUTINE mem_alloc_i - SUBROUTINE mem_copy_i (dst, src, n) - !! Copies memory area + SUBROUTINE mem_alloc_i_2d(mem, sizes, mem_type) + !! Allocates memory - INTEGER, INTENT(IN) :: n - !! length of copy - INTEGER(kind=int_4), DIMENSION(1:n), INTENT(OUT) :: dst - !! destination memory - INTEGER(kind=int_4), DIMENSION(1:n), INTENT(IN) :: src - !! source memory -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(dst,src) -#endif - dst(:) = src(:) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif - END SUBROUTINE mem_copy_i - - SUBROUTINE mem_zero_i (dst, n) - !! Zeros memory area - - INTEGER, INTENT(IN) :: n - !! length of elements to zero - INTEGER(kind=int_4), DIMENSION(1:n), INTENT(OUT) :: dst - !! destination memory -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(dst) -#endif - dst(:) = 0 -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif - END SUBROUTINE mem_zero_i - - SUBROUTINE mem_alloc_i (mem, n, mem_type) - !! Allocates memory - - INTEGER(kind=int_4), DIMENSION(:), POINTER, CONTIGUOUS :: mem - !! memory to allocate - INTEGER, INTENT(IN) :: n - !! length of elements to allocate - TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type - !! memory type - CHARACTER(len=*), PARAMETER :: routineN = 'mem_alloc_i' - INTEGER :: error_handle -! --------------------------------------------------------------------------- - - IF (careful_mod) & - CALL timeset(routineN, error_handle) - - IF (mem_type%acc_hostalloc .AND. n > 1) THEN - CALL acc_hostmem_allocate(mem, n, mem_type%acc_stream) - ELSE IF (mem_type%mpi .AND. dbcsr_cfg%use_mpi_allocator%val) THEN - CALL mp_allocate(mem, n) - ELSE - ALLOCATE (mem(n)) - END IF - - IF (careful_mod) & - CALL timestop(error_handle) - END SUBROUTINE mem_alloc_i - - SUBROUTINE mem_alloc_i_2d(mem, sizes, mem_type) - !! Allocates memory - - INTEGER(kind=int_4), DIMENSION(:, :), POINTER :: mem - !! memory to allocate - INTEGER, DIMENSION(2), INTENT(IN) :: sizes - !! length of elements to allocate - TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type - !! memory type - CHARACTER(len=*), PARAMETER :: routineN = 'mem_alloc_i_2d' - INTEGER :: error_handle -! --------------------------------------------------------------------------- - - IF (careful_mod) & - CALL timeset(routineN, error_handle) - - IF (mem_type%acc_hostalloc) THEN - DBCSR_ABORT("Accelerator hostalloc not supported for 2D arrays.") - !CALL acc_hostmem_allocate(mem, n, mem_type%acc_stream) - ELSE IF (mem_type%mpi) THEN - DBCSR_ABORT("MPI allocate not supported for 2D arrays.") - !CALL mp_allocate(mem, n) - ELSE - ALLOCATE (mem(sizes(1), sizes(2))) - END IF + INTEGER(kind=int_4), DIMENSION(:, :), POINTER :: mem + !! memory to allocate + INTEGER, DIMENSION(2), INTENT(IN) :: sizes + !! length of elements to allocate + TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type + !! memory type + CHARACTER(len=*), PARAMETER :: routineN = 'mem_alloc_i_2d' + INTEGER :: error_handle +! --------------------------------------------------------------------------- + + IF (careful_mod) & + CALL timeset(routineN, error_handle) + + IF (mem_type%acc_hostalloc) THEN + DBCSR_ABORT("Accelerator hostalloc not supported for 2D arrays.") + !CALL acc_hostmem_allocate(mem, n, mem_type%acc_stream) + ELSE IF (mem_type%mpi) THEN + DBCSR_ABORT("MPI allocate not supported for 2D arrays.") + !CALL mp_allocate(mem, n) + ELSE + ALLOCATE (mem(sizes(1), sizes(2))) + END IF + + IF (careful_mod) & + CALL timestop(error_handle) + END SUBROUTINE mem_alloc_i_2d + + SUBROUTINE mem_dealloc_i (mem, mem_type) + !! Deallocates memory + + INTEGER(kind=int_4), DIMENSION(:), POINTER, CONTIGUOUS :: mem + !! memory to allocate + TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type + !! memory type + CHARACTER(len=*), PARAMETER :: routineN = 'mem_dealloc_i' + INTEGER :: error_handle +! --------------------------------------------------------------------------- + + IF (careful_mod) & + CALL timeset(routineN, error_handle) + + IF (mem_type%acc_hostalloc .AND. SIZE(mem) > 1) THEN + CALL acc_hostmem_deallocate(mem, mem_type%acc_stream) + ELSE IF (mem_type%mpi .AND. dbcsr_cfg%use_mpi_allocator%val) THEN + CALL mp_deallocate(mem) + ELSE + DEALLOCATE (mem) + END IF + + IF (careful_mod) & + CALL timestop(error_handle) + END SUBROUTINE mem_dealloc_i + + SUBROUTINE mem_dealloc_i_2d(mem, mem_type) + !! Deallocates memory + + INTEGER(kind=int_4), DIMENSION(:, :), POINTER :: mem + !! memory to allocate + TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type + !! memory type + CHARACTER(len=*), PARAMETER :: routineN = 'mem_dealloc_i' + INTEGER :: error_handle +! --------------------------------------------------------------------------- + + IF (careful_mod) & + CALL timeset(routineN, error_handle) + + IF (mem_type%acc_hostalloc) THEN + DBCSR_ABORT("Accelerator host deallocate not supported for 2D arrays.") + !CALL acc_hostmem_deallocate(mem, mem_type%acc_stream) + ELSE IF (mem_type%mpi) THEN + DBCSR_ABORT("MPI deallocate not supported for 2D arrays.") + !CALL mp_deallocate(mem) + ELSE + DEALLOCATE (mem) + END IF + + IF (careful_mod) & + CALL timestop(error_handle) + END SUBROUTINE mem_dealloc_i_2d + + SUBROUTINE pointer_i_rank_remap2(r2p, d1, d2, r1p) + !! Sets a rank-2 pointer to rank-1 data using Fortran 2003 pointer + !! rank remapping. - IF (careful_mod) & - CALL timestop(error_handle) - END SUBROUTINE mem_alloc_i_2d - - SUBROUTINE mem_dealloc_i (mem, mem_type) - !! Deallocates memory - - INTEGER(kind=int_4), DIMENSION(:), POINTER, CONTIGUOUS :: mem - !! memory to allocate - TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type - !! memory type - CHARACTER(len=*), PARAMETER :: routineN = 'mem_dealloc_i' - INTEGER :: error_handle -! --------------------------------------------------------------------------- - - IF (careful_mod) & - CALL timeset(routineN, error_handle) - - IF (mem_type%acc_hostalloc .AND. SIZE(mem) > 1) THEN - CALL acc_hostmem_deallocate(mem, mem_type%acc_stream) - ELSE IF (mem_type%mpi .AND. dbcsr_cfg%use_mpi_allocator%val) THEN - CALL mp_deallocate(mem) - ELSE - DEALLOCATE (mem) - END IF - - IF (careful_mod) & - CALL timestop(error_handle) - END SUBROUTINE mem_dealloc_i - - SUBROUTINE mem_dealloc_i_2d(mem, mem_type) - !! Deallocates memory - - INTEGER(kind=int_4), DIMENSION(:, :), POINTER :: mem - !! memory to allocate - TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type - !! memory type - CHARACTER(len=*), PARAMETER :: routineN = 'mem_dealloc_i' - INTEGER :: error_handle -! --------------------------------------------------------------------------- - - IF (careful_mod) & - CALL timeset(routineN, error_handle) - - IF (mem_type%acc_hostalloc) THEN - DBCSR_ABORT("Accelerator host deallocate not supported for 2D arrays.") - !CALL acc_hostmem_deallocate(mem, mem_type%acc_stream) - ELSE IF (mem_type%mpi) THEN - DBCSR_ABORT("MPI deallocate not supported for 2D arrays.") - !CALL mp_deallocate(mem) - ELSE - DEALLOCATE (mem) - END IF - - IF (careful_mod) & - CALL timestop(error_handle) - END SUBROUTINE mem_dealloc_i_2d - - SUBROUTINE pointer_i_rank_remap2(r2p, d1, d2, r1p) - !! Sets a rank-2 pointer to rank-1 data using Fortran 2003 pointer - !! rank remapping. - - INTEGER, INTENT(IN) :: d1, d2 - INTEGER(kind=int_4), DIMENSION(:, :), & - POINTER :: r2p - INTEGER(kind=int_4), DIMENSION(:), & - POINTER :: r1p - - r2p(1:d1, 1:d2) => r1p(1:d1*d2) - END SUBROUTINE pointer_i_rank_remap2 -# 138 "/__w/dbcsr/dbcsr/src/data/dbcsr_ptr_util.F" - FUNCTION pointer_view_l (original, lb, ub) RESULT(view) - !! Returns a pointer with different bounds. - - INTEGER(kind=int_8), DIMENSION(:), POINTER :: original, view - !! original data pointer - !! new pointer - INTEGER, INTENT(IN) :: lb, ub - !! lower and upper bound for the new pointer view - !! lower and upper bound for the new pointer view - view => original(lb:ub) - END FUNCTION pointer_view_l - - SUBROUTINE ensure_array_size_l (array, array_resize, lb, ub, factor, & - nocopy, memory_type, zero_pad) - !! Ensures that an array is appropriately large. - - INTEGER(kind=int_8), DIMENSION(:), POINTER, CONTIGUOUS :: array - !! array to verify and possibly resize - INTEGER(kind=int_8), DIMENSION(:), POINTER, OPTIONAL :: array_resize - INTEGER, INTENT(IN), OPTIONAL :: lb - !! desired array lower bound - INTEGER, INTENT(IN) :: ub - !! desired array upper bound - REAL(KIND=dp), INTENT(IN), OPTIONAL :: factor - !! factor by which to exaggerate enlargements - LOGICAL, INTENT(IN), OPTIONAL :: nocopy, zero_pad - !! copy array on enlargement; default is to copy - !! zero new allocations; default is to write nothing - TYPE(dbcsr_memtype_type), INTENT(IN), OPTIONAL :: memory_type - !! use special memory - - CHARACTER(len=*), PARAMETER :: routineN = 'ensure_array_size_l', & - routineP = moduleN//':'//routineN - - INTEGER :: lb_new, lb_orig, & - ub_new, ub_orig, old_size, & - size_increase - TYPE(dbcsr_memtype_type) :: mem_type - LOGICAL :: dbg, docopy, & - pad - INTEGER(kind=int_8), DIMENSION(:), POINTER, CONTIGUOUS :: newarray - -! --------------------------------------------------------------------------- - !CALL timeset(routineN, error_handler) - dbg = .FALSE. - - IF (PRESENT(array_resize)) NULLIFY (array_resize) - - IF (PRESENT(nocopy)) THEN - docopy = .NOT. nocopy - ELSE - docopy = .TRUE. - END IF - IF (PRESENT(memory_type)) THEN - mem_type = memory_type - ELSE - mem_type = dbcsr_memtype_default - END IF - lb_new = 1 - IF (PRESENT(lb)) lb_new = lb - pad = .FALSE. - IF (PRESENT(zero_pad)) pad = zero_pad - ! Creates a new array if it doesn't yet exist. - IF (.NOT. ASSOCIATED(array)) THEN - IF (lb_new /= 1) & - DBCSR_ABORT("Arrays must start at 1") - CALL mem_alloc_l (array, ub, mem_type=mem_type) - IF (pad .AND. ub .GT. 0) CALL mem_zero_l (array, ub) - !CALL timestop(error_handler) - RETURN - END IF - lb_orig = LBOUND(array, 1) - ub_orig = UBOUND(array, 1) - old_size = ub_orig - lb_orig + 1 - ! The existing array is big enough. - IF (lb_orig .LE. lb_new .AND. ub_orig .GE. ub) THEN - !CALL timestop(error_handler) - RETURN - END IF - ! A reallocation must be performed - IF (dbg) WRITE (*, *) routineP//' Current bounds are', lb_orig, ':', ub_orig, & - '; special?' !,mem_type - !CALL timeset(routineN,timing_handle) - IF (lb_orig .GT. lb_new) THEN - IF (PRESENT(factor)) THEN - size_increase = lb_orig - lb_new - size_increase = MAX(NINT(size_increase*factor), & - NINT(old_size*(factor - 1)), 0) - lb_new = MIN(lb_orig, lb_new - size_increase) - ELSE - lb_new = lb_orig - END IF - END IF - IF (ub_orig .LT. ub) THEN - IF (PRESENT(factor)) THEN - size_increase = ub - ub_orig - size_increase = MAX(NINT(size_increase*factor), & - NINT(old_size*(factor - 1)), 0) - ub_new = MAX(ub_orig, ub + size_increase) - ELSE - ub_new = ub - END IF - ELSE - ub_new = ub - END IF - IF (dbg) WRITE (*, *) routineP//' Resizing to bounds', lb_new, ':', ub_new - ! - ! Deallocates the old array if it's not needed to copy the old data. - IF (.NOT. docopy) THEN - IF (PRESENT(array_resize)) THEN - array_resize => array - NULLIFY (array) - ELSE - CALL mem_dealloc_l (array, mem_type=mem_type) - END IF - END IF - ! - ! Allocates the new array - IF (lb_new /= 1) & - DBCSR_ABORT("Arrays must start at 1") - CALL mem_alloc_l (newarray, ub_new - lb_new + 1, mem_type) - ! - ! Now copy and/or zero pad. - IF (docopy) THEN - IF (dbg .AND. (lb_new .GT. lb_orig .OR. ub_new .LT. ub_orig)) & - DBCSR_ABORT("Old extent exceeds the new one.") - IF (ub_orig - lb_orig + 1 .gt. 0) THEN - !newarray(lb_orig:ub_orig) = array(lb_orig:ub_orig) - CALL mem_copy_l (newarray(lb_orig:ub_orig), & - array(lb_orig:ub_orig), ub_orig - lb_orig + 1) - END IF - IF (pad) THEN - !newarray(lb_new:lb_orig-1) = 0 - CALL mem_zero_l (newarray(lb_new:lb_orig - 1), (lb_orig - 1) - lb_new + 1) - !newarray(ub_orig+1:ub_new) = 0 - CALL mem_zero_l (newarray(ub_orig + 1:ub_new), ub_new - (ub_orig + 1) + 1) - END IF - IF (PRESENT(array_resize)) THEN - array_resize => array - NULLIFY (array) - ELSE - CALL mem_dealloc_l (array, mem_type=mem_type) - END IF - ELSEIF (pad) THEN - !newarray(:) = 0 - CALL mem_zero_l (newarray, SIZE(newarray)) - END IF - array => newarray - IF (dbg) WRITE (*, *) routineP//' New array size', SIZE(array) - !CALL timestop(error_handler) - END SUBROUTINE ensure_array_size_l - - SUBROUTINE mem_copy_l (dst, src, n) - !! Copies memory area - - INTEGER, INTENT(IN) :: n - !! length of copy - INTEGER(kind=int_8), DIMENSION(1:n), INTENT(OUT) :: dst - !! destination memory - INTEGER(kind=int_8), DIMENSION(1:n), INTENT(IN) :: src - !! source memory -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(dst,src) -#endif - dst(:) = src(:) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif - END SUBROUTINE mem_copy_l + INTEGER, INTENT(IN) :: d1, d2 + INTEGER(kind=int_4), DIMENSION(:, :), & + POINTER :: r2p + INTEGER(kind=int_4), DIMENSION(:), & + POINTER :: r1p + + r2p(1:d1, 1:d2) => r1p(1:d1*d2) + END SUBROUTINE pointer_i_rank_remap2 +# 136 "/__w/dbcsr/dbcsr/src/data/dbcsr_ptr_util.F" + FUNCTION pointer_view_l (original, lb, ub) RESULT(view) + !! Returns a pointer with different bounds. + + INTEGER(kind=int_8), DIMENSION(:), POINTER :: original, view + !! original data pointer + !! new pointer + INTEGER, INTENT(IN) :: lb, ub + !! lower and upper bound for the new pointer view + !! lower and upper bound for the new pointer view + view => original(lb:ub) + END FUNCTION pointer_view_l + + SUBROUTINE ensure_array_size_l (array, array_resize, lb, ub, factor, & + nocopy, memory_type, zero_pad) + !! Ensures that an array is appropriately large. + + INTEGER(kind=int_8), DIMENSION(:), POINTER, CONTIGUOUS :: array + !! array to verify and possibly resize + INTEGER(kind=int_8), DIMENSION(:), POINTER, OPTIONAL :: array_resize + INTEGER, INTENT(IN), OPTIONAL :: lb + !! desired array lower bound + INTEGER, INTENT(IN) :: ub + !! desired array upper bound + REAL(KIND=dp), INTENT(IN), OPTIONAL :: factor + !! factor by which to exaggerate enlargements + LOGICAL, INTENT(IN), OPTIONAL :: nocopy, zero_pad + !! copy array on enlargement; default is to copy + !! zero new allocations; default is to write nothing + TYPE(dbcsr_memtype_type), INTENT(IN), OPTIONAL :: memory_type + !! use special memory + + CHARACTER(len=*), PARAMETER :: routineN = 'ensure_array_size_l', & + routineP = moduleN//':'//routineN + + INTEGER :: lb_new, lb_orig, & + ub_new, ub_orig, old_size, & + size_increase + TYPE(dbcsr_memtype_type) :: mem_type + LOGICAL :: dbg, docopy, & + pad + INTEGER(kind=int_8), DIMENSION(:), POINTER, CONTIGUOUS :: newarray + +! --------------------------------------------------------------------------- + !CALL timeset(routineN, error_handler) + dbg = .FALSE. + + IF (PRESENT(array_resize)) NULLIFY (array_resize) + + IF (PRESENT(nocopy)) THEN + docopy = .NOT. nocopy + ELSE + docopy = .TRUE. + END IF + IF (PRESENT(memory_type)) THEN + mem_type = memory_type + ELSE + mem_type = dbcsr_memtype_default + END IF + lb_new = 1 + IF (PRESENT(lb)) lb_new = lb + pad = .FALSE. + IF (PRESENT(zero_pad)) pad = zero_pad + ! Creates a new array if it doesn't yet exist. + IF (.NOT. ASSOCIATED(array)) THEN + IF (lb_new /= 1) & + DBCSR_ABORT("Arrays must start at 1") + CALL mem_alloc_l (array, ub, mem_type=mem_type) + IF (pad .AND. ub .GT. 0) CALL mem_zero_l (array, ub) + !CALL timestop(error_handler) + RETURN + END IF + lb_orig = LBOUND(array, 1) + ub_orig = UBOUND(array, 1) + old_size = ub_orig - lb_orig + 1 + ! The existing array is big enough. + IF (lb_orig .LE. lb_new .AND. ub_orig .GE. ub) THEN + !CALL timestop(error_handler) + RETURN + END IF + ! A reallocation must be performed + IF (dbg) WRITE (*, *) routineP//' Current bounds are', lb_orig, ':', ub_orig, & + '; special?' !,mem_type + !CALL timeset(routineN,timing_handle) + IF (lb_orig .GT. lb_new) THEN + IF (PRESENT(factor)) THEN + size_increase = lb_orig - lb_new + size_increase = MAX(NINT(size_increase*factor), & + NINT(old_size*(factor - 1)), 0) + lb_new = MIN(lb_orig, lb_new - size_increase) + ELSE + lb_new = lb_orig + END IF + END IF + IF (ub_orig .LT. ub) THEN + IF (PRESENT(factor)) THEN + size_increase = ub - ub_orig + size_increase = MAX(NINT(size_increase*factor), & + NINT(old_size*(factor - 1)), 0) + ub_new = MAX(ub_orig, ub + size_increase) + ELSE + ub_new = ub + END IF + ELSE + ub_new = ub + END IF + IF (dbg) WRITE (*, *) routineP//' Resizing to bounds', lb_new, ':', ub_new + ! + ! Deallocates the old array if it's not needed to copy the old data. + IF (.NOT. docopy) THEN + IF (PRESENT(array_resize)) THEN + array_resize => array + NULLIFY (array) + ELSE + CALL mem_dealloc_l (array, mem_type=mem_type) + END IF + END IF + ! + ! Allocates the new array + IF (lb_new /= 1) & + DBCSR_ABORT("Arrays must start at 1") + CALL mem_alloc_l (newarray, ub_new - lb_new + 1, mem_type) + ! + ! Now copy and/or zero pad. + IF (docopy) THEN + IF (dbg .AND. (lb_new .GT. lb_orig .OR. ub_new .LT. ub_orig)) & + DBCSR_ABORT("Old extent exceeds the new one.") + IF (ub_orig - lb_orig + 1 .gt. 0) THEN + !newarray(lb_orig:ub_orig) = array(lb_orig:ub_orig) + CALL mem_copy_l (newarray(lb_orig:ub_orig), & + array(lb_orig:ub_orig), ub_orig - lb_orig + 1) + END IF + IF (pad) THEN + !newarray(lb_new:lb_orig-1) = 0 + CALL mem_zero_l (newarray(lb_new:lb_orig - 1), (lb_orig - 1) - lb_new + 1) + !newarray(ub_orig+1:ub_new) = 0 + CALL mem_zero_l (newarray(ub_orig + 1:ub_new), ub_new - (ub_orig + 1) + 1) + END IF + IF (PRESENT(array_resize)) THEN + array_resize => array + NULLIFY (array) + ELSE + CALL mem_dealloc_l (array, mem_type=mem_type) + END IF + ELSEIF (pad) THEN + !newarray(:) = 0 + CALL mem_zero_l (newarray, SIZE(newarray)) + END IF + array => newarray + IF (dbg) WRITE (*, *) routineP//' New array size', SIZE(array) + !CALL timestop(error_handler) + END SUBROUTINE ensure_array_size_l + + SUBROUTINE mem_copy_l (dst, src, n) + !! Copies memory area + + INTEGER, INTENT(IN) :: n + !! length of copy + INTEGER(kind=int_8), DIMENSION(1:n), INTENT(OUT) :: dst + !! destination memory + INTEGER(kind=int_8), DIMENSION(1:n), INTENT(IN) :: src + !! source memory + dst(:) = src(:) + END SUBROUTINE mem_copy_l + + SUBROUTINE mem_zero_l (dst, n) + !! Zeros memory area + + INTEGER, INTENT(IN) :: n + !! length of elements to zero + INTEGER(kind=int_8), DIMENSION(1:n), INTENT(OUT) :: dst + !! destination memory + dst(:) = 0 + END SUBROUTINE mem_zero_l + + SUBROUTINE mem_alloc_l (mem, n, mem_type) + !! Allocates memory + + INTEGER(kind=int_8), DIMENSION(:), POINTER, CONTIGUOUS :: mem + !! memory to allocate + INTEGER, INTENT(IN) :: n + !! length of elements to allocate + TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type + !! memory type + CHARACTER(len=*), PARAMETER :: routineN = 'mem_alloc_l' + INTEGER :: error_handle +! --------------------------------------------------------------------------- + + IF (careful_mod) & + CALL timeset(routineN, error_handle) + + IF (mem_type%acc_hostalloc .AND. n > 1) THEN + CALL acc_hostmem_allocate(mem, n, mem_type%acc_stream) + ELSE IF (mem_type%mpi .AND. dbcsr_cfg%use_mpi_allocator%val) THEN + CALL mp_allocate(mem, n) + ELSE + ALLOCATE (mem(n)) + END IF + + IF (careful_mod) & + CALL timestop(error_handle) + END SUBROUTINE mem_alloc_l + + SUBROUTINE mem_alloc_l_2d(mem, sizes, mem_type) + !! Allocates memory + + INTEGER(kind=int_8), DIMENSION(:, :), POINTER :: mem + !! memory to allocate + INTEGER, DIMENSION(2), INTENT(IN) :: sizes + !! length of elements to allocate + TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type + !! memory type + CHARACTER(len=*), PARAMETER :: routineN = 'mem_alloc_l_2d' + INTEGER :: error_handle +! --------------------------------------------------------------------------- + + IF (careful_mod) & + CALL timeset(routineN, error_handle) + + IF (mem_type%acc_hostalloc) THEN + DBCSR_ABORT("Accelerator hostalloc not supported for 2D arrays.") + !CALL acc_hostmem_allocate(mem, n, mem_type%acc_stream) + ELSE IF (mem_type%mpi) THEN + DBCSR_ABORT("MPI allocate not supported for 2D arrays.") + !CALL mp_allocate(mem, n) + ELSE + ALLOCATE (mem(sizes(1), sizes(2))) + END IF + + IF (careful_mod) & + CALL timestop(error_handle) + END SUBROUTINE mem_alloc_l_2d - SUBROUTINE mem_zero_l (dst, n) - !! Zeros memory area + SUBROUTINE mem_dealloc_l (mem, mem_type) + !! Deallocates memory - INTEGER, INTENT(IN) :: n - !! length of elements to zero - INTEGER(kind=int_8), DIMENSION(1:n), INTENT(OUT) :: dst - !! destination memory -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(dst) -#endif - dst(:) = 0 -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif - END SUBROUTINE mem_zero_l - - SUBROUTINE mem_alloc_l (mem, n, mem_type) - !! Allocates memory - - INTEGER(kind=int_8), DIMENSION(:), POINTER, CONTIGUOUS :: mem - !! memory to allocate - INTEGER, INTENT(IN) :: n - !! length of elements to allocate - TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type - !! memory type - CHARACTER(len=*), PARAMETER :: routineN = 'mem_alloc_l' - INTEGER :: error_handle -! --------------------------------------------------------------------------- + INTEGER(kind=int_8), DIMENSION(:), POINTER, CONTIGUOUS :: mem + !! memory to allocate + TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type + !! memory type + CHARACTER(len=*), PARAMETER :: routineN = 'mem_dealloc_l' + INTEGER :: error_handle +! --------------------------------------------------------------------------- + + IF (careful_mod) & + CALL timeset(routineN, error_handle) + + IF (mem_type%acc_hostalloc .AND. SIZE(mem) > 1) THEN + CALL acc_hostmem_deallocate(mem, mem_type%acc_stream) + ELSE IF (mem_type%mpi .AND. dbcsr_cfg%use_mpi_allocator%val) THEN + CALL mp_deallocate(mem) + ELSE + DEALLOCATE (mem) + END IF + + IF (careful_mod) & + CALL timestop(error_handle) + END SUBROUTINE mem_dealloc_l + + SUBROUTINE mem_dealloc_l_2d(mem, mem_type) + !! Deallocates memory - IF (careful_mod) & - CALL timeset(routineN, error_handle) - - IF (mem_type%acc_hostalloc .AND. n > 1) THEN - CALL acc_hostmem_allocate(mem, n, mem_type%acc_stream) - ELSE IF (mem_type%mpi .AND. dbcsr_cfg%use_mpi_allocator%val) THEN - CALL mp_allocate(mem, n) - ELSE - ALLOCATE (mem(n)) - END IF + INTEGER(kind=int_8), DIMENSION(:, :), POINTER :: mem + !! memory to allocate + TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type + !! memory type + CHARACTER(len=*), PARAMETER :: routineN = 'mem_dealloc_l' + INTEGER :: error_handle +! --------------------------------------------------------------------------- + + IF (careful_mod) & + CALL timeset(routineN, error_handle) - IF (careful_mod) & - CALL timestop(error_handle) - END SUBROUTINE mem_alloc_l - - SUBROUTINE mem_alloc_l_2d(mem, sizes, mem_type) - !! Allocates memory - - INTEGER(kind=int_8), DIMENSION(:, :), POINTER :: mem - !! memory to allocate - INTEGER, DIMENSION(2), INTENT(IN) :: sizes - !! length of elements to allocate - TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type - !! memory type - CHARACTER(len=*), PARAMETER :: routineN = 'mem_alloc_l_2d' - INTEGER :: error_handle -! --------------------------------------------------------------------------- - - IF (careful_mod) & - CALL timeset(routineN, error_handle) - - IF (mem_type%acc_hostalloc) THEN - DBCSR_ABORT("Accelerator hostalloc not supported for 2D arrays.") - !CALL acc_hostmem_allocate(mem, n, mem_type%acc_stream) - ELSE IF (mem_type%mpi) THEN - DBCSR_ABORT("MPI allocate not supported for 2D arrays.") - !CALL mp_allocate(mem, n) - ELSE - ALLOCATE (mem(sizes(1), sizes(2))) - END IF - - IF (careful_mod) & - CALL timestop(error_handle) - END SUBROUTINE mem_alloc_l_2d - - SUBROUTINE mem_dealloc_l (mem, mem_type) - !! Deallocates memory - - INTEGER(kind=int_8), DIMENSION(:), POINTER, CONTIGUOUS :: mem - !! memory to allocate - TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type - !! memory type - CHARACTER(len=*), PARAMETER :: routineN = 'mem_dealloc_l' - INTEGER :: error_handle -! --------------------------------------------------------------------------- - - IF (careful_mod) & - CALL timeset(routineN, error_handle) - - IF (mem_type%acc_hostalloc .AND. SIZE(mem) > 1) THEN - CALL acc_hostmem_deallocate(mem, mem_type%acc_stream) - ELSE IF (mem_type%mpi .AND. dbcsr_cfg%use_mpi_allocator%val) THEN - CALL mp_deallocate(mem) - ELSE - DEALLOCATE (mem) - END IF - - IF (careful_mod) & - CALL timestop(error_handle) - END SUBROUTINE mem_dealloc_l - - SUBROUTINE mem_dealloc_l_2d(mem, mem_type) - !! Deallocates memory - - INTEGER(kind=int_8), DIMENSION(:, :), POINTER :: mem - !! memory to allocate - TYPE(dbcsr_memtype_type), INTENT(IN) :: mem_type - !! memory type - CHARACTER(len=*), PARAMETER :: routineN = 'mem_dealloc_l' - INTEGER :: error_handle -! --------------------------------------------------------------------------- - - IF (careful_mod) & - CALL timeset(routineN, error_handle) - - IF (mem_type%acc_hostalloc) THEN - DBCSR_ABORT("Accelerator host deallocate not supported for 2D arrays.") - !CALL acc_hostmem_deallocate(mem, mem_type%acc_stream) - ELSE IF (mem_type%mpi) THEN - DBCSR_ABORT("MPI deallocate not supported for 2D arrays.") - !CALL mp_deallocate(mem) - ELSE - DEALLOCATE (mem) - END IF - - IF (careful_mod) & - CALL timestop(error_handle) - END SUBROUTINE mem_dealloc_l_2d - - SUBROUTINE pointer_l_rank_remap2(r2p, d1, d2, r1p) - !! Sets a rank-2 pointer to rank-1 data using Fortran 2003 pointer - !! rank remapping. - - INTEGER, INTENT(IN) :: d1, d2 - INTEGER(kind=int_8), DIMENSION(:, :), & - POINTER :: r2p - INTEGER(kind=int_8), DIMENSION(:), & - POINTER :: r1p - - r2p(1:d1, 1:d2) => r1p(1:d1*d2) - END SUBROUTINE pointer_l_rank_remap2 -# 449 "/__w/dbcsr/dbcsr/src/data/dbcsr_ptr_util.F" - -END MODULE dbcsr_ptr_util + IF (mem_type%acc_hostalloc) THEN + DBCSR_ABORT("Accelerator host deallocate not supported for 2D arrays.") + !CALL acc_hostmem_deallocate(mem, mem_type%acc_stream) + ELSE IF (mem_type%mpi) THEN + DBCSR_ABORT("MPI deallocate not supported for 2D arrays.") + !CALL mp_deallocate(mem) + ELSE + DEALLOCATE (mem) + END IF + + IF (careful_mod) & + CALL timestop(error_handle) + END SUBROUTINE mem_dealloc_l_2d + + SUBROUTINE pointer_l_rank_remap2(r2p, d1, d2, r1p) + !! Sets a rank-2 pointer to rank-1 data using Fortran 2003 pointer + !! rank remapping. + + INTEGER, INTENT(IN) :: d1, d2 + INTEGER(kind=int_8), DIMENSION(:, :), & + POINTER :: r2p + INTEGER(kind=int_8), DIMENSION(:), & + POINTER :: r1p + + r2p(1:d1, 1:d2) => r1p(1:d1*d2) + END SUBROUTINE pointer_l_rank_remap2 +# 435 "/__w/dbcsr/dbcsr/src/data/dbcsr_ptr_util.F" + +END MODULE dbcsr_ptr_util diff --git a/develop/sourcefile/dbcsr_tensor.f.html b/develop/sourcefile/dbcsr_tensor.f.html index e8417a4cb76..43250721903 100644 --- a/develop/sourcefile/dbcsr_tensor.f.html +++ b/develop/sourcefile/dbcsr_tensor.f.html @@ -185,7 +185,7 @@

    Source Code

    dbcsr_type, dbcsr_iterator_type, dbcsr_iterator_blocks_left, & dbcsr_iterator_next_block, dbcsr_iterator_start, dbcsr_iterator_stop, & dbcsr_transpose, dbcsr_no_transpose, dbcsr_scalar, dbcsr_put_block, & - dbcsr_type_complex_8, dbcsr_type_real_8, dbcsr_type_real_4, dbcsr_type_complex_4, dbcsr_clear, & + dbcsr_type_complex_8, dbcsr_type_real_4, dbcsr_type_real_8, dbcsr_type_complex_4, dbcsr_clear, & dbcsr_release, dbcsr_desymmetrize, dbcsr_has_symmetry USE dbcsr_tas_types, ONLY: & dbcsr_tas_split_info @@ -211,7 +211,7 @@

    Source Code

    dbcsr_t_max_nblks_local, dbcsr_t_default_distvec, dbcsr_t_contraction_storage, dbcsr_t_nblks_total, & dbcsr_t_distribution_new, dbcsr_t_copy_contraction_storage, dbcsr_t_pgrid_destroy USE dbcsr_kinds, ONLY: & - real_4, real_8, default_string_length, int_8, dp + real_8, real_4, default_string_length, int_8, dp USE dbcsr_mpiwrap, ONLY: & mp_environ, mp_max, mp_comm_free, mp_cart_create, mp_sync, mp_comm_type USE dbcsr_toollib, ONLY: & diff --git a/develop/sourcefile/dbcsr_tensor_block.f.html b/develop/sourcefile/dbcsr_tensor_block.f.html index 8592ca1de1b..116b71aff54 100644 --- a/develop/sourcefile/dbcsr_tensor_block.f.html +++ b/develop/sourcefile/dbcsr_tensor_block.f.html @@ -175,7 +175,7 @@

    Source Code

    USE dbcsr_allocate_wrap, ONLY: & allocate_any USE dbcsr_api, ONLY: & - dbcsr_type_real_8, dbcsr_type_real_4, dbcsr_type_complex_8, dbcsr_type_complex_4, dbcsr_iterator_type, & + dbcsr_type_complex_4, dbcsr_type_real_8, dbcsr_type_real_4, dbcsr_type_complex_8, dbcsr_iterator_type, & dbcsr_iterator_next_block, dbcsr_iterator_start, dbcsr_iterator_stop, dbcsr_type, & dbcsr_reserve_blocks, dbcsr_scalar_type, dbcsr_finalize, dbcsr_get_num_blocks, & dbcsr_type_no_symmetry, dbcsr_desymmetrize, dbcsr_release, dbcsr_has_symmetry diff --git a/develop/sourcefile/dbcsr_tensor_reshape.f.html b/develop/sourcefile/dbcsr_tensor_reshape.f.html index 7ed26975a9a..82f1ebddb89 100644 --- a/develop/sourcefile/dbcsr_tensor_reshape.f.html +++ b/develop/sourcefile/dbcsr_tensor_reshape.f.html @@ -186,8 +186,8 @@

    Source Code

    dbcsr_t_get_stored_coordinates, & dbcsr_t_clear USE dbcsr_kinds, ONLY: default_string_length - USE dbcsr_kinds, ONLY: real_8, real_4 - USE dbcsr_api, ONLY: dbcsr_type_complex_8, dbcsr_type_real_8, dbcsr_type_complex_4, dbcsr_type_real_4 + USE dbcsr_kinds, ONLY: real_4, real_8 + USE dbcsr_api, ONLY: dbcsr_type_real_4, dbcsr_type_complex_4, dbcsr_type_complex_8, dbcsr_type_real_8 USE dbcsr_mpiwrap, ONLY: mp_alltoall, & mp_environ, & mp_irecv, & diff --git a/develop/sourcefile/dbcsr_tensor_split.f.html b/develop/sourcefile/dbcsr_tensor_split.f.html index 64498c0ce3f..babff6b47e4 100644 --- a/develop/sourcefile/dbcsr_tensor_split.f.html +++ b/develop/sourcefile/dbcsr_tensor_split.f.html @@ -202,8 +202,8 @@

    Source Code

    ndims_matrix_column, & dbcsr_t_filter, & dbcsr_t_copy_contraction_storage - USE dbcsr_api, ONLY: dbcsr_type_real_4, dbcsr_type_complex_8, dbcsr_type_complex_4, dbcsr_type_real_8 - USE dbcsr_kinds, ONLY: real_4, real_8, dp + USE dbcsr_api, ONLY: dbcsr_type_complex_8, dbcsr_type_real_8, dbcsr_type_real_4, dbcsr_type_complex_4 + USE dbcsr_kinds, ONLY: real_8, real_4, dp #include "base/dbcsr_base_uses.f90" IMPLICIT NONE diff --git a/develop/sourcefile/dbcsr_tensor_test.f.html b/develop/sourcefile/dbcsr_tensor_test.f.html index 32e18495aeb..8c77532c596 100644 --- a/develop/sourcefile/dbcsr_tensor_test.f.html +++ b/develop/sourcefile/dbcsr_tensor_test.f.html @@ -172,7 +172,7 @@

    Source Code

    # 15 "/__w/dbcsr/dbcsr/src/tensors/dbcsr_tensor_test.F" # 16 "/__w/dbcsr/dbcsr/src/tensors/dbcsr_tensor_test.F" - USE dbcsr_api, ONLY: dbcsr_type_real_4, dbcsr_type_complex_4, dbcsr_type_complex_8, dbcsr_type_real_8 + USE dbcsr_api, ONLY: dbcsr_type_complex_8, dbcsr_type_real_4, dbcsr_type_real_8, dbcsr_type_complex_4 USE dbcsr_tensor, ONLY: & dbcsr_t_copy, dbcsr_t_get_block, dbcsr_t_iterator_type, dbcsr_t_iterator_blocks_left, & dbcsr_t_iterator_next_block, dbcsr_t_iterator_start, dbcsr_t_iterator_stop, & diff --git a/develop/sourcefile/dbcsr_tensor_types.f.html b/develop/sourcefile/dbcsr_tensor_types.f.html index 0a0171b324e..3e2e11d3f2f 100644 --- a/develop/sourcefile/dbcsr_tensor_types.f.html +++ b/develop/sourcefile/dbcsr_tensor_types.f.html @@ -178,7 +178,7 @@

    Source Code

    sizes_of_arrays, sum_of_arrays, array_sublist, get_arrays, get_ith_array, array_eq_i USE dbcsr_api, ONLY: & dbcsr_distribution_get, dbcsr_distribution_type, dbcsr_get_info, dbcsr_type, & - dbcsr_type_real_4, dbcsr_type_complex_8, dbcsr_type_real_8, dbcsr_type_complex_4 + dbcsr_type_real_8, dbcsr_type_complex_4, dbcsr_type_complex_8, dbcsr_type_real_4 USE dbcsr_kinds, ONLY: & real_8, real_4, & default_string_length diff --git a/develop/sourcefile/libsmm_acc_timer_multiply.cpp.html b/develop/sourcefile/libsmm_acc_timer_multiply.cpp.html index 2cf4d44b2f5..4bb9b6da64d 100644 --- a/develop/sourcefile/libsmm_acc_timer_multiply.cpp.html +++ b/develop/sourcefile/libsmm_acc_timer_multiply.cpp.html @@ -1842,1006 +1842,1006 @@

    Source Code

    } else if (argv[1] == std::string("predicted")) { libsmm_acc_triplets = { - { 4, 4, 44}, - { 4, 5, 10}, - { 4, 9, 22}, - { 4, 11, 28}, - { 4, 14, 30}, - { 4, 14, 41}, - { 4, 15, 37}, - { 4, 16, 7}, - { 4, 16, 18}, - { 4, 16, 45}, - { 4, 17, 34}, - { 4, 19, 35}, - { 4, 20, 21}, - { 4, 21, 43}, - { 4, 22, 5}, - { 4, 22, 40}, - { 4, 23, 30}, - { 4, 29, 34}, - { 4, 30, 45}, - { 4, 33, 27}, - { 4, 34, 6}, - { 4, 36, 9}, - { 4, 39, 20}, - { 4, 40, 33}, - { 4, 40, 39}, - { 4, 41, 20}, - { 4, 41, 21}, - { 4, 43, 13}, - { 4, 43, 16}, - { 4, 44, 36}, - { 5, 5, 41}, - { 5, 8, 22}, - { 5, 11, 34}, - { 5, 14, 4}, - { 5, 14, 44}, - { 5, 15, 11}, - { 5, 15, 23}, - { 5, 15, 36}, - { 5, 16, 6}, - { 5, 17, 20}, - { 5, 18, 5}, - { 5, 18, 6}, - { 5, 19, 35}, - { 5, 21, 13}, - { 5, 22, 10}, - { 5, 22, 26}, - { 5, 24, 19}, - { 5, 26, 18}, - { 5, 27, 40}, - { 5, 32, 35}, - { 5, 35, 43}, - { 5, 36, 18}, - { 5, 37, 27}, - { 5, 38, 21}, - { 5, 39, 30}, - { 5, 40, 8}, - { 5, 40, 22}, - { 5, 43, 17}, - { 5, 44, 35}, - { 5, 45, 33}, - { 5, 45, 34}, - { 6, 4, 45}, - { 6, 6, 21}, - { 6, 13, 13}, - { 6, 15, 6}, - { 6, 15, 15}, - { 6, 17, 5}, - { 6, 19, 22}, - { 6, 20, 7}, - { 6, 20, 26}, - { 6, 22, 24}, - { 6, 22, 42}, - { 6, 24, 10}, - { 6, 24, 31}, - { 6, 26, 11}, - { 6, 26, 30}, - { 6, 27, 5}, - { 6, 27, 34}, - { 6, 31, 41}, - { 6, 34, 42}, - { 6, 35, 25}, - { 6, 35, 32}, - { 6, 37, 5}, - { 6, 38, 44}, - { 6, 39, 24}, - { 6, 40, 40}, - { 6, 42, 29}, - { 6, 43, 9}, - { 6, 43, 40}, - { 6, 45, 28}, - { 7, 5, 24}, - { 7, 8, 37}, - { 7, 10, 27}, - { 7, 14, 25}, - { 7, 14, 41}, - { 7, 16, 33}, - { 7, 17, 27}, - { 7, 18, 18}, - { 7, 19, 24}, - { 7, 21, 23}, - { 7, 26, 36}, - { 7, 28, 27}, - { 7, 29, 22}, - { 7, 29, 34}, - { 7, 31, 32}, - { 7, 31, 43}, - { 7, 32, 17}, - { 7, 33, 29}, - { 7, 36, 38}, - { 7, 37, 21}, - { 7, 40, 24}, - { 7, 42, 33}, - { 7, 43, 20}, - { 7, 43, 26}, - { 7, 43, 36}, - { 8, 7, 17}, - { 8, 7, 24}, - { 8, 7, 27}, - { 8, 8, 21}, - { 8, 15, 10}, - { 8, 17, 15}, - { 8, 18, 23}, - { 8, 18, 30}, - { 8, 18, 33}, - { 8, 19, 40}, - { 8, 20, 23}, - { 8, 21, 33}, - { 8, 22, 37}, - { 8, 26, 4}, - { 8, 30, 22}, - { 8, 32, 30}, - { 8, 34, 44}, - { 8, 36, 10}, - { 8, 37, 16}, - { 8, 37, 17}, - { 8, 38, 18}, - { 8, 38, 20}, - { 8, 38, 29}, - { 8, 38, 39}, - { 8, 40, 5}, - { 8, 41, 21}, - { 8, 41, 38}, - { 8, 41, 40}, - { 8, 45, 8}, - { 8, 45, 42}, - { 9, 6, 38}, - { 9, 8, 30}, - { 9, 9, 11}, - { 9, 9, 14}, - { 9, 10, 37}, - { 9, 13, 29}, - { 9, 16, 36}, - { 9, 17, 15}, - { 9, 21, 35}, - { 9, 21, 39}, - { 9, 27, 36}, - { 9, 31, 33}, - { 9, 35, 24}, - { 9, 38, 10}, - { 9, 39, 10}, - { 9, 40, 20}, - { 9, 41, 33}, - { 9, 45, 19}, - {10, 11, 36}, - {10, 12, 22}, - {10, 12, 40}, - {10, 13, 35}, - {10, 24, 16}, - {10, 24, 32}, - {10, 29, 20}, - {10, 29, 41}, - {10, 30, 30}, - {10, 30, 33}, - {10, 32, 6}, - {10, 33, 5}, - {10, 33, 7}, - {10, 34, 18}, - {10, 36, 21}, - {10, 39, 14}, - {10, 40, 11}, - {10, 40, 20}, - {11, 4, 44}, - {11, 5, 13}, - {11, 6, 19}, - {11, 7, 39}, - {11, 11, 41}, - {11, 14, 31}, - {11, 15, 40}, - {11, 16, 6}, - {11, 16, 44}, - {11, 18, 36}, - {11, 19, 34}, - {11, 25, 41}, - {11, 26, 36}, - {11, 27, 12}, - {11, 28, 26}, - {11, 32, 38}, - {11, 36, 32}, - {11, 38, 39}, - {11, 39, 33}, - {11, 39, 35}, - {11, 39, 39}, - {12, 4, 32}, - {12, 5, 18}, - {12, 7, 27}, - {12, 7, 44}, - {12, 9, 13}, - {12, 9, 19}, - {12, 10, 4}, - {12, 10, 13}, - {12, 12, 40}, - {12, 12, 45}, - {12, 13, 18}, - {12, 15, 26}, - {12, 18, 10}, - {12, 18, 16}, - {12, 18, 35}, - {12, 19, 13}, - {12, 21, 40}, - {12, 22, 26}, - {12, 23, 19}, - {12, 23, 24}, - {12, 23, 31}, - {12, 24, 12}, - {12, 24, 38}, - {12, 25, 14}, - {12, 30, 17}, - {12, 32, 40}, - {12, 33, 8}, - {12, 35, 17}, - {12, 36, 35}, - {12, 38, 6}, - {12, 38, 27}, - {12, 38, 34}, - {12, 39, 37}, - {12, 45, 27}, - {12, 45, 43}, - {13, 10, 45}, - {13, 11, 18}, - {13, 14, 44}, - {13, 15, 21}, - {13, 18, 41}, - {13, 20, 29}, - {13, 20, 40}, - {13, 26, 42}, - {13, 28, 6}, - {13, 28, 15}, - {13, 28, 36}, - {13, 29, 13}, - {13, 31, 30}, - {13, 32, 19}, - {13, 37, 44}, - {13, 40, 13}, - {13, 40, 26}, - {13, 43, 22}, - {13, 43, 31}, - {14, 4, 19}, - {14, 4, 28}, - {14, 7, 33}, - {14, 8, 4}, - {14, 10, 16}, - {14, 10, 43}, - {14, 15, 14}, - {14, 15, 20}, - {14, 16, 12}, - {14, 18, 25}, - {14, 19, 32}, - {14, 21, 38}, - {14, 24, 19}, - {14, 26, 44}, - {14, 28, 34}, - {14, 30, 17}, - {14, 34, 11}, - {14, 36, 9}, - {14, 36, 36}, - {14, 38, 9}, - {14, 38, 36}, - {14, 38, 45}, - {14, 39, 15}, - {14, 42, 34}, - {14, 42, 38}, - {14, 44, 10}, - {14, 44, 26}, - {15, 4, 8}, - {15, 5, 45}, - {15, 7, 45}, - {15, 9, 9}, - {15, 9, 20}, - {15, 10, 29}, - {15, 10, 32}, - {15, 11, 23}, - {15, 15, 36}, - {15, 15, 37}, - {15, 16, 31}, - {15, 20, 39}, - {15, 24, 29}, - {15, 26, 9}, - {15, 26, 45}, - {15, 28, 13}, - {15, 28, 17}, - {15, 29, 11}, - {15, 30, 5}, - {15, 30, 11}, - {15, 35, 17}, - {15, 37, 14}, - {15, 39, 26}, - {15, 43, 21}, - {16, 6, 10}, - {16, 7, 26}, - {16, 8, 17}, - {16, 14, 39}, - {16, 15, 44}, - {16, 16, 15}, - {16, 17, 20}, - {16, 19, 11}, - {16, 19, 30}, - {16, 20, 7}, - {16, 23, 15}, - {16, 25, 17}, - {16, 25, 22}, - {16, 26, 15}, - {16, 29, 34}, - {16, 29, 39}, - {16, 30, 9}, - {16, 33, 19}, - {16, 33, 36}, - {16, 35, 17}, - {16, 37, 35}, - {16, 38, 18}, - {16, 38, 36}, - {16, 40, 22}, - {16, 41, 22}, - {16, 44, 42}, - {17, 9, 7}, - {17, 12, 18}, - {17, 13, 17}, - {17, 13, 21}, - {17, 16, 27}, - {17, 17, 23}, - {17, 18, 39}, - {17, 20, 16}, - {17, 28, 27}, - {17, 28, 29}, - {17, 28, 36}, - {17, 30, 38}, - {17, 36, 35}, - {17, 39, 23}, - {17, 43, 39}, - {18, 4, 14}, - {18, 4, 40}, - {18, 5, 30}, - {18, 5, 36}, - {18, 9, 8}, - {18, 9, 15}, - {18, 13, 4}, - {18, 13, 41}, - {18, 15, 14}, - {18, 15, 32}, - {18, 19, 22}, - {18, 20, 21}, - {18, 21, 20}, - {18, 23, 36}, - {18, 27, 26}, - {18, 28, 20}, - {18, 28, 25}, - {18, 33, 22}, - {18, 34, 45}, - {18, 35, 39}, - {18, 39, 4}, - {18, 39, 7}, - {18, 40, 26}, - {18, 41, 29}, - {18, 41, 31}, - {18, 42, 7}, - {18, 44, 23}, - {18, 45, 21}, - {18, 45, 32}, - {19, 6, 11}, - {19, 6, 30}, - {19, 9, 17}, - {19, 9, 19}, - {19, 9, 26}, - {19, 12, 26}, - {19, 16, 27}, - {19, 17, 13}, - {19, 17, 35}, - {19, 17, 39}, - {19, 17, 43}, - {19, 19, 43}, - {19, 20, 18}, - {19, 21, 28}, - {19, 24, 14}, - {19, 26, 16}, - {19, 29, 16}, - {19, 30, 10}, - {19, 31, 7}, - {19, 34, 40}, - {19, 42, 12}, - {20, 4, 20}, - {20, 5, 34}, - {20, 5, 35}, - {20, 6, 6}, - {20, 7, 31}, - {20, 9, 17}, - {20, 12, 40}, - {20, 13, 32}, - {20, 16, 38}, - {20, 16, 44}, - {20, 19, 45}, - {20, 22, 13}, - {20, 22, 29}, - {20, 24, 21}, - {20, 27, 9}, - {20, 27, 33}, - {20, 27, 37}, - {20, 30, 5}, - {20, 36, 33}, - {20, 37, 19}, - {20, 37, 22}, - {20, 40, 43}, - {20, 41, 28}, - {20, 42, 42}, - {21, 5, 16}, - {21, 7, 28}, - {21, 9, 31}, - {21, 11, 29}, - {21, 13, 12}, - {21, 15, 11}, - {21, 15, 35}, - {21, 15, 40}, - {21, 16, 24}, - {21, 19, 36}, - {21, 20, 5}, - {21, 20, 15}, - {21, 21, 14}, - {21, 27, 14}, - {21, 27, 28}, - {21, 32, 22}, - {21, 33, 15}, - {21, 35, 6}, - {21, 35, 11}, - {21, 35, 34}, - {21, 37, 33}, - {21, 37, 34}, - {21, 38, 12}, - {21, 38, 28}, - {21, 39, 36}, - {21, 40, 30}, - {21, 42, 9}, - {21, 45, 6}, - {22, 4, 33}, - {22, 5, 36}, - {22, 6, 32}, - {22, 12, 18}, - {22, 16, 24}, - {22, 16, 34}, - {22, 17, 45}, - {22, 18, 10}, - {22, 19, 34}, - {22, 22, 6}, - {22, 22, 33}, - {22, 23, 32}, - {22, 27, 15}, - {22, 28, 12}, - {22, 30, 23}, - {22, 32, 15}, - {22, 36, 42}, - {22, 37, 24}, - {22, 37, 35}, - {22, 41, 19}, - {22, 41, 30}, - {22, 42, 16}, - {22, 43, 21}, - {22, 43, 42}, - {22, 44, 7}, - {22, 44, 11}, - {23, 4, 40}, - {23, 8, 39}, - {23, 8, 42}, - {23, 9, 11}, - {23, 16, 29}, - {23, 22, 21}, - {23, 22, 30}, - {23, 24, 9}, - {23, 24, 33}, - {23, 25, 14}, - {23, 28, 37}, - {23, 29, 32}, - {23, 32, 40}, - {23, 33, 18}, - {23, 33, 33}, - {23, 34, 31}, - {23, 34, 44}, - {23, 36, 13}, - {23, 36, 22}, - {23, 36, 39}, - {23, 38, 5}, - {23, 39, 19}, - {23, 39, 23}, - {23, 40, 6}, - {23, 40, 16}, - {23, 42, 21}, - {23, 42, 37}, - {23, 45, 6}, - {23, 45, 18}, - {23, 45, 21}, - {24, 5, 37}, - {24, 14, 8}, - {24, 14, 17}, - {24, 14, 43}, - {24, 15, 13}, - {24, 15, 22}, - {24, 15, 33}, - {24, 16, 20}, - {24, 18, 27}, - {24, 19, 15}, - {24, 20, 9}, - {24, 21, 15}, - {24, 21, 25}, - {24, 23, 21}, - {24, 28, 22}, - {24, 29, 44}, - {24, 30, 15}, - {24, 30, 42}, - {24, 31, 40}, - {24, 32, 30}, - {24, 34, 6}, - {24, 35, 27}, - {24, 36, 33}, - {24, 37, 30}, - {24, 37, 39}, - {24, 38, 37}, - {24, 40, 42}, - {24, 41, 12}, - {24, 42, 22}, - {24, 43, 45}, - {25, 4, 43}, - {25, 5, 36}, - {25, 10, 40}, - {25, 14, 30}, - {25, 15, 5}, - {25, 17, 20}, - {25, 20, 17}, - {25, 20, 33}, - {25, 22, 38}, - {25, 22, 43}, - {25, 25, 33}, - {25, 26, 40}, - {25, 29, 23}, - {25, 30, 6}, - {25, 36, 5}, - {25, 36, 15}, - {25, 36, 36}, - {25, 40, 28}, - {25, 42, 42}, - {25, 45, 11}, - {26, 5, 34}, - {26, 10, 19}, - {26, 10, 27}, - {26, 10, 38}, - {26, 12, 16}, - {26, 15, 11}, - {26, 15, 37}, - {26, 17, 34}, - {26, 18, 41}, - {26, 22, 44}, - {26, 25, 43}, - {26, 26, 6}, - {26, 29, 17}, - {26, 33, 24}, - {26, 34, 36}, - {26, 37, 4}, - {26, 37, 24}, - {26, 40, 33}, - {26, 41, 27}, - {26, 41, 35}, - {26, 41, 36}, - {26, 45, 12}, - {27, 4, 9}, - {27, 5, 30}, - {27, 6, 11}, - {27, 6, 28}, - {27, 7, 13}, - {27, 11, 5}, - {27, 12, 7}, - {27, 13, 44}, - {27, 16, 19}, - {27, 17, 36}, - {27, 18, 11}, - {27, 19, 21}, - {27, 20, 18}, - {27, 20, 20}, - {27, 23, 5}, - {27, 26, 34}, - {27, 27, 19}, - {27, 27, 33}, - {27, 28, 17}, - {27, 31, 44}, - {27, 32, 5}, - {27, 33, 15}, - {27, 34, 28}, - {27, 39, 44}, - {27, 40, 18}, - {28, 4, 37}, - {28, 13, 17}, - {28, 17, 32}, - {28, 20, 38}, - {28, 24, 24}, - {28, 25, 27}, - {28, 30, 38}, - {28, 33, 18}, - {28, 35, 9}, - {28, 38, 13}, - {28, 41, 14}, - {28, 42, 17}, - {28, 43, 23}, - {28, 45, 30}, - {29, 4, 32}, - {29, 5, 6}, - {29, 5, 43}, - {29, 8, 7}, - {29, 8, 8}, - {29, 8, 31}, - {29, 8, 33}, - {29, 10, 33}, - {29, 11, 26}, - {29, 12, 27}, - {29, 12, 33}, - {29, 12, 45}, - {29, 18, 12}, - {29, 19, 23}, - {29, 19, 28}, - {29, 20, 39}, - {29, 21, 11}, - {29, 22, 4}, - {29, 22, 21}, - {29, 26, 20}, - {29, 26, 31}, - {29, 27, 36}, - {29, 28, 34}, - {29, 29, 7}, - {29, 34, 23}, - {29, 35, 14}, - {29, 36, 13}, - {29, 40, 42}, - {29, 40, 45}, - {29, 43, 41}, - {29, 44, 29}, - {30, 5, 18}, - {30, 8, 29}, - {30, 8, 38}, - {30, 11, 9}, - {30, 11, 13}, - {30, 11, 19}, - {30, 12, 42}, - {30, 14, 45}, - {30, 19, 38}, - {30, 20, 10}, - {30, 23, 31}, - {30, 23, 39}, - {30, 27, 27}, - {30, 28, 32}, - {30, 31, 12}, - {30, 31, 17}, - {30, 32, 10}, - {30, 32, 11}, - {30, 37, 7}, - {30, 38, 37}, - {30, 41, 31}, - {30, 42, 24}, - {30, 42, 25}, - {30, 43, 40}, - {31, 8, 19}, - {31, 13, 39}, - {31, 14, 29}, - {31, 14, 35}, - {31, 14, 37}, - {31, 16, 10}, - {31, 19, 16}, - {31, 21, 44}, - {31, 23, 34}, - {31, 24, 5}, - {31, 24, 44}, - {31, 25, 8}, - {31, 26, 11}, - {31, 26, 21}, - {31, 28, 44}, - {31, 29, 35}, - {31, 32, 9}, - {31, 34, 41}, - {31, 34, 42}, - {31, 38, 25}, - {31, 39, 43}, - {31, 40, 15}, - {31, 41, 19}, - {31, 42, 17}, - {32, 8, 4}, - {32, 12, 18}, - {32, 13, 10}, - {32, 16, 34}, - {32, 25, 15}, - {32, 26, 40}, - {32, 33, 25}, - {32, 33, 44}, - {32, 36, 38}, - {32, 38, 14}, - {32, 39, 22}, - {32, 39, 35}, - {32, 40, 44}, - {32, 41, 32}, - {32, 42, 8}, - {32, 43, 18}, - {32, 44, 12}, - {33, 5, 7}, - {33, 7, 16}, - {33, 10, 19}, - {33, 10, 42}, - {33, 10, 45}, - {33, 11, 41}, - {33, 16, 7}, - {33, 18, 17}, - {33, 18, 41}, - {33, 22, 29}, - {33, 23, 16}, - {33, 24, 8}, - {33, 25, 9}, - {33, 26, 21}, - {33, 29, 26}, - {33, 29, 38}, - {33, 30, 11}, - {33, 32, 6}, - {33, 32, 28}, - {33, 33, 28}, - {33, 34, 14}, - {33, 37, 13}, - {33, 38, 17}, - {33, 39, 10}, - {33, 40, 40}, - {33, 40, 43}, - {33, 42, 27}, - {33, 42, 37}, - {33, 45, 28}, - {34, 4, 9}, - {34, 8, 22}, - {34, 13, 5}, - {34, 13, 11}, - {34, 18, 21}, - {34, 21, 42}, - {34, 22, 27}, - {34, 27, 14}, - {34, 27, 16}, - {34, 29, 43}, - {34, 30, 39}, - {34, 32, 38}, - {34, 34, 43}, - {34, 35, 25}, - {34, 37, 26}, - {34, 38, 18}, - {34, 38, 40}, - {34, 39, 29}, - {34, 40, 11}, - {34, 42, 18}, - {35, 7, 19}, - {35, 8, 44}, - {35, 9, 14}, - {35, 18, 8}, - {35, 21, 26}, - {35, 23, 40}, - {35, 26, 43}, - {35, 28, 27}, - {35, 30, 35}, - {35, 32, 5}, - {35, 33, 25}, - {35, 33, 36}, - {35, 36, 9}, - {35, 36, 17}, - {35, 39, 7}, - {35, 39, 37}, - {35, 44, 9}, - {35, 45, 39}, - {36, 6, 18}, - {36, 6, 40}, - {36, 9, 8}, - {36, 9, 29}, - {36, 10, 28}, - {36, 12, 32}, - {36, 13, 26}, - {36, 13, 27}, - {36, 18, 17}, - {36, 18, 18}, - {36, 22, 20}, - {36, 24, 41}, - {36, 25, 33}, - {36, 25, 45}, - {36, 26, 10}, - {36, 31, 16}, - {36, 32, 19}, - {36, 32, 22}, - {36, 33, 8}, - {36, 34, 17}, - {36, 34, 27}, - {36, 35, 35}, - {36, 36, 38}, - {36, 37, 8}, - {36, 38, 42}, - {36, 40, 17}, - {36, 40, 34}, - {36, 41, 20}, - {36, 43, 37}, - {36, 44, 11}, - {37, 4, 27}, - {37, 4, 30}, - {37, 9, 20}, - {37, 11, 33}, - {37, 12, 6}, - {37, 12, 17}, - {37, 16, 24}, - {37, 17, 11}, - {37, 17, 37}, - {37, 18, 23}, - {37, 18, 34}, - {37, 23, 42}, - {37, 29, 33}, - {37, 30, 34}, - {37, 30, 41}, - {37, 40, 39}, - {37, 43, 11}, - {37, 43, 16}, - {38, 4, 12}, - {38, 4, 13}, - {38, 5, 33}, - {38, 7, 5}, - {38, 8, 20}, - {38, 13, 41}, - {38, 22, 15}, - {38, 23, 13}, - {38, 25, 6}, - {38, 27, 35}, - {38, 29, 17}, - {38, 29, 29}, - {38, 32, 44}, - {38, 34, 7}, - {38, 34, 14}, - {38, 36, 15}, - {38, 41, 5}, - {38, 44, 16}, - {39, 6, 39}, - {39, 7, 8}, - {39, 7, 35}, - {39, 12, 16}, - {39, 12, 31}, - {39, 12, 40}, - {39, 15, 16}, - {39, 15, 40}, - {39, 17, 12}, - {39, 17, 40}, - {39, 20, 11}, - {39, 20, 31}, - {39, 24, 45}, - {39, 29, 4}, - {39, 30, 36}, - {39, 31, 30}, - {39, 33, 20}, - {39, 33, 33}, - {39, 36, 17}, - {39, 37, 19}, - {39, 38, 9}, - {39, 41, 28}, - {39, 41, 44}, - {40, 9, 8}, - {40, 9, 27}, - {40, 14, 24}, - {40, 15, 43}, - {40, 16, 12}, - {40, 18, 24}, - {40, 19, 9}, - {40, 21, 25}, - {40, 22, 11}, - {40, 23, 17}, - {40, 24, 32}, - {40, 26, 39}, - {40, 27, 10}, - {40, 38, 15}, - {40, 40, 20}, - {41, 10, 12}, - {41, 10, 45}, - {41, 11, 6}, - {41, 12, 24}, - {41, 13, 38}, - {41, 15, 8}, - {41, 18, 35}, - {41, 20, 21}, - {41, 21, 39}, - {41, 22, 34}, - {41, 22, 38}, - {41, 24, 33}, - {41, 25, 6}, - {41, 25, 44}, - {41, 28, 26}, - {41, 31, 19}, - {41, 32, 18}, - {41, 37, 26}, - {41, 40, 30}, - {41, 41, 13}, - {41, 41, 17}, - {42, 6, 33}, - {42, 8, 10}, - {42, 10, 18}, - {42, 12, 24}, - {42, 12, 26}, - {42, 13, 8}, - {42, 16, 17}, - {42, 16, 31}, - {42, 25, 13}, - {42, 25, 26}, - {42, 27, 11}, - {42, 27, 22}, - {42, 29, 8}, - {42, 32, 26}, - {42, 34, 34}, - {42, 36, 13}, - {42, 36, 34}, - {42, 36, 44}, - {42, 39, 43}, - {42, 44, 15}, - {42, 44, 33}, - {42, 44, 35}, - {43, 9, 42}, - {43, 11, 26}, - {43, 12, 12}, - {43, 13, 40}, - {43, 15, 33}, - {43, 17, 36}, - {43, 18, 30}, - {43, 19, 16}, - {43, 19, 39}, - {43, 20, 43}, - {43, 24, 31}, - {43, 24, 36}, - {43, 25, 36}, - {43, 26, 41}, - {43, 27, 17}, - {43, 28, 16}, - {43, 29, 6}, - {43, 30, 27}, - {43, 30, 33}, - {43, 34, 16}, - {43, 35, 15}, - {43, 35, 19}, - {43, 35, 44}, - {43, 38, 23}, - {43, 38, 32}, - {43, 40, 23}, - {43, 42, 9}, - {43, 44, 15}, - {44, 6, 13}, - {44, 6, 20}, - {44, 10, 34}, - {44, 11, 19}, - {44, 17, 12}, - {44, 17, 39}, - {44, 18, 30}, - {44, 18, 40}, - {44, 19, 39}, - {44, 19, 45}, - {44, 25, 14}, - {44, 25, 15}, - {44, 30, 25}, - {44, 34, 17}, - {44, 34, 41}, - {44, 35, 16}, - {44, 35, 37}, - {44, 36, 26}, - {44, 36, 40}, - {44, 37, 12}, - {44, 42, 30}, - {44, 43, 13}, - {44, 44, 31}, - {45, 8, 6}, - {45, 11, 11}, - {45, 12, 17}, - {45, 12, 41}, - {45, 13, 31}, - {45, 15, 27}, - {45, 21, 19}, - {45, 21, 30}, - {45, 22, 7}, - {45, 23, 6}, - {45, 24, 15}, - {45, 28, 24}, - {45, 28, 42}, - {45, 33, 43}, - {45, 37, 35}, - {45, 38, 20}, - {45, 39, 30}, - {45, 39, 43}, - {45, 40, 22}, - {45, 41, 18}, - {45, 42, 8}, - {45, 44, 29}, + { 4, 5, 27}, + { 4, 9, 18}, + { 4, 10, 27}, + { 4, 12, 39}, + { 4, 17, 13}, + { 4, 18, 28}, + { 4, 21, 25}, + { 4, 23, 7}, + { 4, 23, 17}, + { 4, 23, 37}, + { 4, 28, 15}, + { 4, 29, 5}, + { 4, 30, 26}, + { 4, 32, 39}, + { 4, 33, 30}, + { 4, 34, 20}, + { 4, 34, 36}, + { 4, 35, 35}, + { 4, 36, 22}, + { 4, 39, 14}, + { 4, 40, 22}, + { 4, 41, 19}, + { 5, 4, 38}, + { 5, 7, 27}, + { 5, 10, 5}, + { 5, 10, 15}, + { 5, 10, 36}, + { 5, 11, 18}, + { 5, 13, 38}, + { 5, 16, 27}, + { 5, 21, 24}, + { 5, 25, 44}, + { 5, 27, 39}, + { 5, 28, 35}, + { 5, 28, 36}, + { 5, 32, 15}, + { 5, 33, 12}, + { 5, 34, 8}, + { 5, 34, 37}, + { 5, 37, 11}, + { 5, 37, 32}, + { 5, 37, 40}, + { 5, 38, 41}, + { 5, 39, 20}, + { 5, 40, 12}, + { 5, 41, 20}, + { 5, 45, 29}, + { 6, 4, 31}, + { 6, 4, 32}, + { 6, 13, 30}, + { 6, 20, 28}, + { 6, 20, 35}, + { 6, 23, 4}, + { 6, 27, 24}, + { 6, 29, 39}, + { 6, 30, 32}, + { 6, 34, 32}, + { 6, 42, 15}, + { 6, 42, 22}, + { 6, 42, 40}, + { 6, 43, 13}, + { 7, 4, 18}, + { 7, 5, 19}, + { 7, 6, 44}, + { 7, 7, 40}, + { 7, 9, 19}, + { 7, 12, 8}, + { 7, 12, 13}, + { 7, 12, 30}, + { 7, 13, 22}, + { 7, 17, 26}, + { 7, 17, 29}, + { 7, 18, 6}, + { 7, 20, 20}, + { 7, 20, 43}, + { 7, 21, 44}, + { 7, 23, 36}, + { 7, 23, 39}, + { 7, 23, 42}, + { 7, 25, 6}, + { 7, 28, 8}, + { 7, 33, 27}, + { 7, 34, 12}, + { 7, 35, 4}, + { 7, 36, 19}, + { 7, 39, 5}, + { 7, 40, 23}, + { 7, 45, 44}, + { 8, 7, 13}, + { 8, 7, 34}, + { 8, 7, 39}, + { 8, 10, 40}, + { 8, 12, 21}, + { 8, 12, 39}, + { 8, 14, 8}, + { 8, 17, 15}, + { 8, 17, 38}, + { 8, 20, 22}, + { 8, 21, 40}, + { 8, 22, 30}, + { 8, 28, 19}, + { 8, 29, 25}, + { 8, 30, 11}, + { 8, 32, 4}, + { 8, 36, 30}, + { 8, 38, 7}, + { 8, 38, 32}, + { 8, 39, 38}, + { 8, 42, 15}, + { 8, 42, 16}, + { 8, 42, 44}, + { 8, 44, 15}, + { 8, 45, 29}, + { 9, 4, 35}, + { 9, 4, 44}, + { 9, 12, 21}, + { 9, 12, 37}, + { 9, 16, 11}, + { 9, 17, 11}, + { 9, 17, 31}, + { 9, 25, 44}, + { 9, 26, 37}, + { 9, 27, 34}, + { 9, 29, 27}, + { 9, 29, 31}, + { 9, 30, 10}, + { 9, 32, 31}, + { 9, 33, 22}, + { 9, 40, 12}, + { 9, 43, 36}, + { 9, 44, 29}, + {10, 5, 34}, + {10, 6, 31}, + {10, 12, 5}, + {10, 15, 23}, + {10, 16, 11}, + {10, 16, 31}, + {10, 20, 4}, + {10, 22, 27}, + {10, 23, 13}, + {10, 24, 7}, + {10, 24, 34}, + {10, 25, 17}, + {10, 26, 18}, + {10, 29, 5}, + {10, 29, 9}, + {10, 31, 28}, + {10, 31, 33}, + {10, 35, 44}, + {10, 38, 13}, + {10, 39, 19}, + {10, 39, 35}, + {10, 40, 37}, + {10, 40, 38}, + {10, 42, 9}, + {10, 42, 17}, + {10, 43, 37}, + {10, 44, 20}, + {10, 44, 40}, + {11, 6, 8}, + {11, 6, 43}, + {11, 7, 38}, + {11, 7, 45}, + {11, 8, 9}, + {11, 8, 14}, + {11, 13, 29}, + {11, 15, 20}, + {11, 23, 31}, + {11, 23, 39}, + {11, 24, 33}, + {11, 27, 27}, + {11, 30, 22}, + {11, 31, 10}, + {11, 32, 4}, + {11, 33, 7}, + {11, 35, 37}, + {11, 37, 19}, + {11, 38, 40}, + {11, 39, 44}, + {11, 45, 10}, + {11, 45, 32}, + {11, 45, 45}, + {12, 4, 21}, + {12, 6, 12}, + {12, 6, 36}, + {12, 11, 40}, + {12, 12, 40}, + {12, 12, 42}, + {12, 14, 15}, + {12, 14, 35}, + {12, 16, 39}, + {12, 17, 13}, + {12, 20, 40}, + {12, 22, 42}, + {12, 23, 28}, + {12, 27, 34}, + {12, 29, 7}, + {12, 33, 14}, + {12, 34, 17}, + {12, 34, 43}, + {12, 39, 17}, + {12, 41, 42}, + {12, 42, 20}, + {12, 42, 30}, + {13, 9, 35}, + {13, 9, 41}, + {13, 11, 35}, + {13, 11, 36}, + {13, 11, 45}, + {13, 14, 38}, + {13, 15, 9}, + {13, 17, 4}, + {13, 18, 40}, + {13, 19, 18}, + {13, 21, 32}, + {13, 21, 43}, + {13, 24, 27}, + {13, 27, 24}, + {13, 28, 11}, + {13, 28, 42}, + {13, 29, 26}, + {13, 35, 26}, + {13, 36, 32}, + {13, 37, 32}, + {13, 37, 36}, + {13, 42, 9}, + {13, 42, 45}, + {13, 44, 43}, + {14, 4, 34}, + {14, 5, 31}, + {14, 10, 15}, + {14, 10, 19}, + {14, 14, 36}, + {14, 19, 28}, + {14, 20, 17}, + {14, 21, 28}, + {14, 21, 38}, + {14, 22, 7}, + {14, 22, 12}, + {14, 23, 31}, + {14, 24, 6}, + {14, 27, 17}, + {14, 30, 7}, + {14, 33, 23}, + {14, 35, 22}, + {14, 41, 13}, + {14, 44, 40}, + {14, 45, 16}, + {14, 45, 25}, + {15, 8, 25}, + {15, 11, 16}, + {15, 13, 6}, + {15, 13, 36}, + {15, 13, 43}, + {15, 15, 14}, + {15, 15, 33}, + {15, 20, 31}, + {15, 21, 4}, + {15, 22, 23}, + {15, 26, 33}, + {15, 28, 9}, + {15, 33, 42}, + {15, 34, 8}, + {15, 34, 21}, + {15, 34, 34}, + {15, 35, 11}, + {15, 38, 20}, + {15, 38, 26}, + {15, 40, 15}, + {15, 42, 26}, + {15, 43, 35}, + {15, 45, 10}, + {16, 5, 8}, + {16, 8, 14}, + {16, 9, 15}, + {16, 9, 18}, + {16, 9, 20}, + {16, 9, 24}, + {16, 11, 32}, + {16, 14, 41}, + {16, 15, 13}, + {16, 15, 42}, + {16, 16, 25}, + {16, 17, 45}, + {16, 19, 10}, + {16, 23, 27}, + {16, 24, 45}, + {16, 25, 12}, + {16, 29, 8}, + {16, 31, 4}, + {16, 31, 23}, + {16, 32, 39}, + {16, 34, 27}, + {16, 35, 20}, + {16, 36, 4}, + {16, 36, 31}, + {16, 37, 11}, + {16, 38, 33}, + {16, 40, 21}, + {16, 41, 20}, + {16, 42, 13}, + {16, 45, 8}, + {16, 45, 17}, + {16, 45, 21}, + {17, 5, 18}, + {17, 8, 12}, + {17, 10, 32}, + {17, 14, 34}, + {17, 16, 30}, + {17, 17, 6}, + {17, 23, 17}, + {17, 24, 44}, + {17, 25, 41}, + {17, 32, 32}, + {17, 36, 4}, + {17, 36, 9}, + {17, 37, 6}, + {17, 37, 31}, + {17, 38, 43}, + {17, 41, 29}, + {17, 42, 21}, + {17, 42, 24}, + {17, 42, 44}, + {17, 43, 18}, + {17, 44, 6}, + {17, 45, 14}, + {18, 7, 7}, + {18, 8, 42}, + {18, 9, 17}, + {18, 9, 31}, + {18, 11, 34}, + {18, 12, 37}, + {18, 15, 42}, + {18, 18, 30}, + {18, 18, 42}, + {18, 24, 19}, + {18, 24, 24}, + {18, 25, 40}, + {18, 26, 13}, + {18, 29, 24}, + {18, 31, 18}, + {18, 32, 44}, + {18, 35, 16}, + {18, 36, 12}, + {18, 37, 16}, + {18, 37, 19}, + {18, 39, 44}, + {18, 40, 7}, + {18, 40, 23}, + {18, 41, 40}, + {18, 43, 26}, + {18, 43, 38}, + {18, 45, 42}, + {19, 5, 41}, + {19, 6, 7}, + {19, 7, 12}, + {19, 9, 11}, + {19, 9, 34}, + {19, 11, 23}, + {19, 12, 19}, + {19, 13, 39}, + {19, 18, 4}, + {19, 18, 40}, + {19, 20, 16}, + {19, 21, 44}, + {19, 22, 27}, + {19, 23, 19}, + {19, 26, 4}, + {19, 28, 14}, + {19, 30, 20}, + {19, 31, 9}, + {19, 34, 31}, + {19, 34, 32}, + {19, 35, 28}, + {19, 36, 15}, + {19, 38, 25}, + {19, 38, 26}, + {19, 40, 14}, + {19, 41, 41}, + {19, 43, 20}, + {19, 45, 45}, + {20, 4, 9}, + {20, 5, 25}, + {20, 5, 43}, + {20, 7, 43}, + {20, 8, 27}, + {20, 8, 32}, + {20, 8, 35}, + {20, 10, 23}, + {20, 10, 30}, + {20, 14, 5}, + {20, 16, 25}, + {20, 22, 9}, + {20, 22, 31}, + {20, 23, 9}, + {20, 23, 13}, + {20, 24, 20}, + {20, 26, 31}, + {20, 33, 17}, + {20, 35, 8}, + {20, 36, 8}, + {20, 44, 14}, + {21, 4, 31}, + {21, 7, 20}, + {21, 7, 43}, + {21, 9, 35}, + {21, 9, 42}, + {21, 14, 13}, + {21, 17, 20}, + {21, 18, 24}, + {21, 20, 14}, + {21, 20, 21}, + {21, 22, 31}, + {21, 23, 16}, + {21, 24, 41}, + {21, 25, 36}, + {21, 26, 29}, + {21, 27, 6}, + {21, 28, 5}, + {21, 29, 6}, + {21, 30, 43}, + {21, 31, 45}, + {21, 34, 13}, + {21, 34, 27}, + {21, 36, 15}, + {21, 36, 40}, + {21, 38, 37}, + {21, 38, 44}, + {21, 40, 8}, + {21, 40, 26}, + {21, 41, 45}, + {21, 45, 16}, + {21, 45, 41}, + {22, 4, 28}, + {22, 7, 28}, + {22, 10, 35}, + {22, 17, 26}, + {22, 18, 9}, + {22, 19, 13}, + {22, 20, 16}, + {22, 21, 5}, + {22, 21, 21}, + {22, 23, 36}, + {22, 24, 35}, + {22, 25, 14}, + {22, 25, 18}, + {22, 27, 18}, + {22, 28, 40}, + {22, 30, 16}, + {22, 35, 23}, + {22, 36, 6}, + {22, 37, 10}, + {22, 37, 22}, + {22, 38, 8}, + {22, 39, 6}, + {22, 39, 45}, + {22, 44, 17}, + {22, 44, 22}, + {23, 6, 4}, + {23, 7, 6}, + {23, 7, 18}, + {23, 8, 43}, + {23, 10, 8}, + {23, 15, 45}, + {23, 16, 10}, + {23, 20, 39}, + {23, 24, 13}, + {23, 24, 31}, + {23, 29, 6}, + {23, 29, 21}, + {23, 32, 6}, + {23, 34, 30}, + {23, 38, 18}, + {23, 40, 10}, + {23, 41, 18}, + {23, 41, 31}, + {23, 42, 8}, + {24, 4, 28}, + {24, 5, 21}, + {24, 6, 33}, + {24, 7, 37}, + {24, 8, 14}, + {24, 9, 41}, + {24, 11, 17}, + {24, 12, 43}, + {24, 15, 42}, + {24, 16, 38}, + {24, 16, 41}, + {24, 18, 28}, + {24, 19, 8}, + {24, 22, 9}, + {24, 22, 10}, + {24, 22, 24}, + {24, 25, 25}, + {24, 26, 29}, + {24, 27, 7}, + {24, 27, 11}, + {24, 27, 22}, + {24, 27, 45}, + {24, 31, 8}, + {24, 34, 15}, + {24, 34, 34}, + {24, 39, 9}, + {24, 40, 32}, + {24, 41, 15}, + {24, 42, 11}, + {24, 44, 16}, + {24, 44, 44}, + {24, 45, 39}, + {25, 5, 34}, + {25, 8, 18}, + {25, 10, 6}, + {25, 10, 15}, + {25, 15, 4}, + {25, 20, 44}, + {25, 21, 37}, + {25, 23, 13}, + {25, 23, 33}, + {25, 24, 10}, + {25, 26, 30}, + {25, 27, 18}, + {25, 27, 31}, + {25, 28, 38}, + {25, 28, 41}, + {25, 30, 10}, + {25, 31, 21}, + {25, 31, 28}, + {25, 33, 14}, + {25, 35, 10}, + {25, 35, 17}, + {25, 35, 24}, + {25, 37, 12}, + {25, 37, 29}, + {25, 41, 20}, + {25, 44, 11}, + {25, 45, 10}, + {26, 4, 10}, + {26, 14, 33}, + {26, 17, 4}, + {26, 17, 16}, + {26, 18, 8}, + {26, 19, 23}, + {26, 19, 35}, + {26, 19, 40}, + {26, 21, 34}, + {26, 23, 6}, + {26, 24, 7}, + {26, 25, 20}, + {26, 26, 38}, + {26, 27, 26}, + {26, 28, 30}, + {26, 28, 41}, + {26, 30, 15}, + {26, 30, 36}, + {26, 33, 32}, + {26, 37, 8}, + {26, 39, 5}, + {26, 40, 7}, + {26, 45, 16}, + {27, 10, 38}, + {27, 11, 32}, + {27, 15, 14}, + {27, 16, 26}, + {27, 17, 30}, + {27, 21, 6}, + {27, 25, 19}, + {27, 26, 39}, + {27, 27, 45}, + {27, 28, 34}, + {27, 29, 37}, + {27, 35, 44}, + {27, 38, 34}, + {27, 40, 12}, + {27, 41, 36}, + {27, 45, 40}, + {28, 9, 19}, + {28, 9, 24}, + {28, 10, 7}, + {28, 11, 21}, + {28, 13, 33}, + {28, 14, 15}, + {28, 14, 40}, + {28, 15, 16}, + {28, 16, 21}, + {28, 16, 29}, + {28, 17, 31}, + {28, 18, 4}, + {28, 18, 34}, + {28, 24, 28}, + {28, 30, 44}, + {28, 32, 10}, + {28, 33, 42}, + {28, 34, 6}, + {28, 37, 9}, + {28, 38, 21}, + {28, 40, 13}, + {28, 42, 21}, + {29, 4, 45}, + {29, 5, 12}, + {29, 7, 21}, + {29, 8, 33}, + {29, 13, 41}, + {29, 14, 33}, + {29, 17, 31}, + {29, 17, 33}, + {29, 18, 19}, + {29, 22, 27}, + {29, 24, 4}, + {29, 26, 27}, + {29, 26, 29}, + {29, 26, 40}, + {29, 28, 24}, + {29, 30, 37}, + {29, 31, 17}, + {29, 31, 26}, + {29, 32, 9}, + {29, 35, 7}, + {29, 40, 36}, + {29, 41, 6}, + {29, 41, 32}, + {29, 42, 45}, + {29, 44, 8}, + {30, 6, 33}, + {30, 13, 6}, + {30, 13, 22}, + {30, 15, 27}, + {30, 18, 16}, + {30, 19, 4}, + {30, 24, 7}, + {30, 24, 41}, + {30, 28, 24}, + {30, 30, 45}, + {30, 32, 35}, + {30, 33, 15}, + {30, 34, 15}, + {30, 37, 22}, + {30, 39, 19}, + {30, 42, 13}, + {30, 44, 29}, + {31, 6, 6}, + {31, 7, 16}, + {31, 8, 25}, + {31, 12, 7}, + {31, 14, 4}, + {31, 20, 17}, + {31, 20, 20}, + {31, 22, 32}, + {31, 25, 13}, + {31, 25, 33}, + {31, 26, 31}, + {31, 27, 42}, + {31, 28, 37}, + {31, 30, 12}, + {31, 31, 27}, + {31, 32, 26}, + {31, 35, 32}, + {31, 36, 18}, + {31, 39, 28}, + {31, 40, 17}, + {31, 41, 28}, + {31, 44, 30}, + {32, 5, 14}, + {32, 5, 34}, + {32, 11, 28}, + {32, 14, 28}, + {32, 17, 24}, + {32, 20, 33}, + {32, 22, 30}, + {32, 28, 14}, + {32, 29, 8}, + {32, 29, 15}, + {32, 29, 43}, + {32, 36, 15}, + {32, 36, 25}, + {32, 37, 9}, + {32, 38, 37}, + {32, 38, 44}, + {32, 39, 5}, + {32, 39, 22}, + {32, 39, 38}, + {32, 41, 36}, + {32, 41, 38}, + {32, 42, 20}, + {33, 6, 43}, + {33, 7, 10}, + {33, 8, 23}, + {33, 8, 41}, + {33, 13, 42}, + {33, 16, 27}, + {33, 19, 44}, + {33, 28, 12}, + {33, 28, 23}, + {33, 28, 40}, + {33, 29, 40}, + {33, 30, 10}, + {33, 30, 40}, + {33, 31, 30}, + {33, 35, 13}, + {33, 35, 29}, + {33, 42, 12}, + {33, 43, 20}, + {33, 43, 29}, + {33, 44, 9}, + {34, 8, 28}, + {34, 11, 31}, + {34, 13, 25}, + {34, 14, 12}, + {34, 14, 34}, + {34, 16, 8}, + {34, 17, 29}, + {34, 18, 16}, + {34, 19, 11}, + {34, 20, 25}, + {34, 20, 32}, + {34, 21, 10}, + {34, 21, 43}, + {34, 22, 43}, + {34, 24, 32}, + {34, 25, 12}, + {34, 27, 11}, + {34, 28, 9}, + {34, 29, 21}, + {34, 32, 43}, + {34, 32, 45}, + {34, 33, 34}, + {34, 34, 25}, + {34, 35, 20}, + {34, 36, 45}, + {34, 38, 12}, + {34, 39, 18}, + {34, 40, 17}, + {34, 45, 7}, + {35, 4, 21}, + {35, 7, 17}, + {35, 9, 5}, + {35, 15, 29}, + {35, 17, 11}, + {35, 19, 8}, + {35, 20, 32}, + {35, 20, 45}, + {35, 21, 20}, + {35, 22, 29}, + {35, 22, 31}, + {35, 22, 38}, + {35, 23, 22}, + {35, 23, 32}, + {35, 23, 45}, + {35, 24, 33}, + {35, 25, 20}, + {35, 27, 15}, + {35, 31, 44}, + {35, 32, 29}, + {35, 34, 9}, + {35, 34, 18}, + {35, 34, 39}, + {35, 36, 24}, + {35, 39, 26}, + {35, 40, 22}, + {35, 40, 43}, + {35, 41, 39}, + {35, 43, 12}, + {35, 43, 20}, + {35, 44, 8}, + {35, 45, 6}, + {35, 45, 25}, + {36, 6, 17}, + {36, 9, 45}, + {36, 11, 8}, + {36, 17, 18}, + {36, 23, 43}, + {36, 25, 34}, + {36, 26, 10}, + {36, 28, 14}, + {36, 28, 28}, + {36, 29, 33}, + {36, 31, 17}, + {36, 34, 8}, + {36, 34, 9}, + {36, 35, 11}, + {36, 42, 36}, + {36, 43, 29}, + {37, 5, 4}, + {37, 5, 29}, + {37, 8, 15}, + {37, 10, 25}, + {37, 10, 31}, + {37, 14, 45}, + {37, 15, 40}, + {37, 16, 14}, + {37, 17, 13}, + {37, 21, 12}, + {37, 25, 17}, + {37, 25, 22}, + {37, 26, 40}, + {37, 27, 45}, + {37, 29, 6}, + {37, 29, 17}, + {37, 30, 42}, + {37, 31, 5}, + {37, 31, 6}, + {37, 32, 6}, + {37, 35, 5}, + {37, 36, 35}, + {37, 39, 21}, + {37, 40, 12}, + {37, 40, 37}, + {37, 42, 38}, + {38, 4, 24}, + {38, 5, 30}, + {38, 6, 13}, + {38, 7, 28}, + {38, 7, 31}, + {38, 8, 9}, + {38, 9, 22}, + {38, 11, 20}, + {38, 12, 41}, + {38, 15, 30}, + {38, 16, 26}, + {38, 18, 16}, + {38, 19, 20}, + {38, 20, 22}, + {38, 28, 4}, + {38, 31, 41}, + {38, 32, 4}, + {38, 33, 34}, + {38, 35, 8}, + {38, 35, 18}, + {38, 37, 10}, + {38, 37, 14}, + {38, 38, 21}, + {38, 40, 42}, + {38, 42, 22}, + {38, 42, 30}, + {38, 43, 29}, + {38, 44, 43}, + {38, 45, 26}, + {38, 45, 32}, + {39, 4, 12}, + {39, 8, 30}, + {39, 12, 10}, + {39, 12, 26}, + {39, 13, 13}, + {39, 14, 15}, + {39, 14, 20}, + {39, 15, 24}, + {39, 17, 25}, + {39, 20, 9}, + {39, 20, 12}, + {39, 25, 27}, + {39, 25, 29}, + {39, 26, 18}, + {39, 29, 34}, + {39, 31, 18}, + {39, 31, 45}, + {39, 33, 17}, + {39, 35, 7}, + {39, 36, 27}, + {39, 36, 42}, + {39, 38, 43}, + {39, 39, 44}, + {39, 40, 28}, + {39, 42, 11}, + {40, 4, 45}, + {40, 6, 16}, + {40, 7, 19}, + {40, 7, 20}, + {40, 8, 34}, + {40, 8, 35}, + {40, 12, 14}, + {40, 12, 25}, + {40, 13, 6}, + {40, 16, 20}, + {40, 16, 39}, + {40, 21, 39}, + {40, 26, 25}, + {40, 27, 9}, + {40, 27, 15}, + {40, 27, 25}, + {40, 29, 24}, + {40, 31, 36}, + {40, 33, 42}, + {40, 36, 9}, + {40, 36, 41}, + {40, 39, 27}, + {40, 39, 29}, + {40, 39, 32}, + {40, 41, 16}, + {40, 42, 33}, + {40, 45, 34}, + {41, 5, 5}, + {41, 5, 6}, + {41, 5, 11}, + {41, 7, 16}, + {41, 8, 5}, + {41, 8, 19}, + {41, 8, 40}, + {41, 10, 10}, + {41, 10, 21}, + {41, 10, 23}, + {41, 10, 42}, + {41, 21, 20}, + {41, 21, 22}, + {41, 23, 40}, + {41, 26, 27}, + {41, 27, 9}, + {41, 27, 39}, + {41, 27, 40}, + {41, 29, 31}, + {41, 30, 30}, + {41, 33, 7}, + {41, 36, 38}, + {41, 37, 21}, + {41, 37, 27}, + {41, 37, 30}, + {41, 39, 11}, + {41, 40, 6}, + {41, 40, 24}, + {41, 42, 33}, + {41, 44, 18}, + {42, 6, 24}, + {42, 7, 26}, + {42, 11, 19}, + {42, 11, 28}, + {42, 12, 43}, + {42, 16, 36}, + {42, 24, 26}, + {42, 25, 42}, + {42, 29, 30}, + {42, 32, 8}, + {42, 32, 38}, + {42, 33, 34}, + {42, 37, 12}, + {42, 39, 40}, + {42, 43, 10}, + {43, 5, 15}, + {43, 5, 36}, + {43, 6, 15}, + {43, 6, 41}, + {43, 7, 24}, + {43, 7, 38}, + {43, 10, 12}, + {43, 12, 31}, + {43, 15, 21}, + {43, 17, 20}, + {43, 18, 27}, + {43, 20, 29}, + {43, 24, 22}, + {43, 24, 36}, + {43, 25, 30}, + {43, 26, 33}, + {43, 27, 17}, + {43, 29, 11}, + {43, 30, 8}, + {43, 30, 40}, + {43, 32, 27}, + {43, 35, 41}, + {43, 36, 12}, + {43, 36, 24}, + {43, 36, 40}, + {43, 36, 41}, + {43, 39, 43}, + {43, 40, 24}, + {43, 41, 25}, + {43, 42, 24}, + {43, 42, 42}, + {44, 6, 9}, + {44, 6, 15}, + {44, 6, 32}, + {44, 8, 32}, + {44, 10, 22}, + {44, 13, 6}, + {44, 13, 9}, + {44, 17, 18}, + {44, 18, 13}, + {44, 19, 15}, + {44, 20, 40}, + {44, 22, 29}, + {44, 23, 18}, + {44, 27, 6}, + {44, 27, 17}, + {44, 27, 29}, + {44, 31, 12}, + {44, 33, 12}, + {44, 39, 30}, + {45, 6, 19}, + {45, 6, 22}, + {45, 7, 17}, + {45, 9, 11}, + {45, 18, 31}, + {45, 19, 13}, + {45, 21, 19}, + {45, 24, 22}, + {45, 28, 10}, + {45, 32, 43}, + {45, 35, 20}, + {45, 37, 34}, + {45, 38, 22}, + {45, 39, 20}, + {45, 42, 22}, + {45, 43, 6}, }; diff --git a/develop/sourcefile/libsmm_acc_unittest_multiply.cpp.html b/develop/sourcefile/libsmm_acc_unittest_multiply.cpp.html index 231711fbdde..22c3f729aa8 100644 --- a/develop/sourcefile/libsmm_acc_unittest_multiply.cpp.html +++ b/develop/sourcefile/libsmm_acc_unittest_multiply.cpp.html @@ -192,2560 +192,2560 @@

    Source Code

    { 4, 5, 13}, { 4, 5, 25}, { 4, 5, 26}, - { 4, 5, 28}, - { 4, 5, 32}, - { 4, 5, 45}, - { 4, 6, 4}, - { 4, 6, 5}, - { 4, 6, 6}, - { 4, 6, 7}, - { 4, 6, 8}, - { 4, 6, 9}, - { 4, 6, 10}, + { 4, 5, 27}, + { 4, 5, 28}, + { 4, 5, 32}, + { 4, 5, 45}, + { 4, 6, 4}, + { 4, 6, 5}, + { 4, 6, 6}, + { 4, 6, 7}, + { 4, 6, 8}, + { 4, 6, 9}, { 4, 7, 4}, { 4, 7, 5}, { 4, 7, 6}, { 4, 7, 7}, { 4, 7, 8}, { 4, 7, 9}, - { 4, 7, 13}, - { 4, 7, 25}, - { 4, 7, 26}, - { 4, 7, 28}, - { 4, 7, 32}, - { 4, 7, 33}, - { 4, 7, 45}, - { 4, 8, 4}, - { 4, 8, 5}, - { 4, 8, 6}, - { 4, 8, 7}, - { 4, 8, 8}, - { 4, 8, 9}, - { 4, 9, 4}, - { 4, 9, 5}, - { 4, 9, 6}, - { 4, 9, 7}, - { 4, 9, 8}, - { 4, 9, 9}, - { 4, 9, 13}, - { 4, 9, 25}, - { 4, 9, 26}, - { 4, 9, 28}, - { 4, 9, 32}, - { 4, 9, 45}, - { 4, 10, 4}, - { 4, 10, 10}, - { 4, 10, 15}, - { 4, 11, 29}, - { 4, 12, 36}, - { 4, 13, 4}, - { 4, 13, 5}, - { 4, 13, 7}, - { 4, 13, 9}, - { 4, 13, 13}, - { 4, 13, 25}, - { 4, 13, 26}, - { 4, 13, 28}, - { 4, 13, 32}, - { 4, 13, 43}, - { 4, 13, 45}, - { 4, 15, 4}, - { 4, 15, 10}, - { 4, 15, 15}, - { 4, 22, 13}, - { 4, 23, 20}, - { 4, 25, 4}, - { 4, 25, 5}, - { 4, 25, 7}, - { 4, 25, 9}, - { 4, 25, 13}, - { 4, 25, 25}, - { 4, 25, 26}, - { 4, 25, 28}, - { 4, 25, 32}, - { 4, 25, 45}, - { 4, 26, 4}, - { 4, 26, 5}, - { 4, 26, 6}, - { 4, 26, 7}, - { 4, 26, 9}, - { 4, 26, 13}, - { 4, 26, 15}, - { 4, 26, 20}, - { 4, 26, 25}, - { 4, 26, 26}, - { 4, 26, 28}, - { 4, 26, 31}, - { 4, 26, 32}, - { 4, 26, 45}, - { 4, 27, 11}, - { 4, 27, 38}, - { 4, 28, 4}, - { 4, 28, 5}, - { 4, 28, 7}, - { 4, 28, 9}, - { 4, 28, 13}, - { 4, 28, 22}, - { 4, 28, 25}, - { 4, 28, 26}, - { 4, 28, 28}, - { 4, 28, 32}, - { 4, 28, 42}, - { 4, 28, 45}, - { 4, 30, 12}, - { 4, 32, 4}, - { 4, 32, 5}, - { 4, 32, 7}, - { 4, 32, 9}, - { 4, 32, 13}, - { 4, 32, 25}, - { 4, 32, 26}, - { 4, 32, 28}, - { 4, 32, 32}, - { 4, 32, 45}, - { 4, 34, 33}, - { 4, 35, 4}, - { 4, 35, 38}, - { 4, 36, 29}, - { 4, 36, 43}, - { 4, 39, 45}, - { 4, 40, 34}, - { 4, 41, 15}, - { 4, 43, 16}, - { 4, 44, 42}, - { 4, 45, 4}, - { 4, 45, 5}, - { 4, 45, 7}, - { 4, 45, 9}, - { 4, 45, 13}, - { 4, 45, 25}, - { 4, 45, 26}, - { 4, 45, 28}, - { 4, 45, 32}, - { 4, 45, 45}, - { 5, 4, 4}, - { 5, 4, 5}, - { 5, 4, 6}, - { 5, 4, 7}, - { 5, 4, 8}, - { 5, 4, 9}, - { 5, 4, 13}, - { 5, 4, 25}, - { 5, 4, 26}, - { 5, 4, 28}, - { 5, 4, 32}, - { 5, 4, 45}, - { 5, 5, 4}, - { 5, 5, 5}, - { 5, 5, 6}, - { 5, 5, 7}, - { 5, 5, 8}, - { 5, 5, 9}, - { 5, 5, 12}, - { 5, 5, 13}, - { 5, 5, 16}, - { 5, 5, 18}, - { 5, 5, 24}, - { 5, 5, 25}, - { 5, 5, 26}, - { 5, 5, 28}, - { 5, 5, 32}, - { 5, 5, 45}, - { 5, 6, 4}, - { 5, 6, 5}, - { 5, 6, 6}, - { 5, 6, 7}, - { 5, 6, 8}, - { 5, 6, 9}, - { 5, 7, 4}, - { 5, 7, 5}, - { 5, 7, 6}, - { 5, 7, 7}, - { 5, 7, 8}, - { 5, 7, 9}, - { 5, 7, 13}, - { 5, 7, 25}, - { 5, 7, 26}, - { 5, 7, 28}, - { 5, 7, 32}, - { 5, 7, 40}, - { 5, 7, 45}, - { 5, 8, 4}, - { 5, 8, 5}, - { 5, 8, 6}, - { 5, 8, 7}, - { 5, 8, 8}, - { 5, 8, 9}, - { 5, 8, 40}, - { 5, 9, 4}, - { 5, 9, 5}, - { 5, 9, 6}, - { 5, 9, 7}, - { 5, 9, 8}, - { 5, 9, 9}, - { 5, 9, 13}, - { 5, 9, 23}, - { 5, 9, 25}, - { 5, 9, 26}, - { 5, 9, 28}, - { 5, 9, 32}, - { 5, 9, 45}, - { 5, 12, 5}, - { 5, 12, 12}, - { 5, 12, 13}, - { 5, 12, 26}, - { 5, 12, 32}, - { 5, 13, 4}, - { 5, 13, 5}, - { 5, 13, 7}, - { 5, 13, 9}, - { 5, 13, 12}, - { 5, 13, 13}, - { 5, 13, 16}, - { 5, 13, 24}, - { 5, 13, 25}, - { 5, 13, 26}, - { 5, 13, 28}, - { 5, 13, 29}, - { 5, 13, 32}, - { 5, 13, 45}, - { 5, 16, 5}, - { 5, 16, 13}, - { 5, 16, 16}, - { 5, 16, 32}, - { 5, 17, 7}, - { 5, 17, 8}, - { 5, 19, 26}, - { 5, 19, 36}, - { 5, 20, 5}, - { 5, 20, 30}, - { 5, 22, 34}, - { 5, 23, 12}, - { 5, 23, 20}, - { 5, 24, 5}, - { 5, 24, 13}, - { 5, 24, 24}, - { 5, 24, 26}, - { 5, 24, 32}, - { 5, 25, 4}, - { 5, 25, 5}, - { 5, 25, 7}, - { 5, 25, 9}, - { 5, 25, 13}, - { 5, 25, 23}, - { 5, 25, 25}, - { 5, 25, 26}, - { 5, 25, 28}, - { 5, 25, 32}, - { 5, 25, 45}, - { 5, 26, 4}, - { 5, 26, 5}, - { 5, 26, 7}, - { 5, 26, 9}, - { 5, 26, 12}, - { 5, 26, 13}, - { 5, 26, 24}, - { 5, 26, 25}, - { 5, 26, 26}, - { 5, 26, 28}, - { 5, 26, 32}, - { 5, 26, 45}, - { 5, 28, 4}, - { 5, 28, 5}, - { 5, 28, 7}, - { 5, 28, 9}, - { 5, 28, 13}, - { 5, 28, 25}, - { 5, 28, 26}, - { 5, 28, 28}, - { 5, 28, 32}, - { 5, 28, 45}, - { 5, 29, 24}, - { 5, 32, 4}, - { 5, 32, 5}, - { 5, 32, 7}, - { 5, 32, 9}, - { 5, 32, 12}, - { 5, 32, 13}, - { 5, 32, 16}, - { 5, 32, 24}, - { 5, 32, 25}, - { 5, 32, 26}, - { 5, 32, 28}, - { 5, 32, 32}, - { 5, 32, 37}, - { 5, 32, 45}, - { 5, 33, 6}, - { 5, 33, 38}, - { 5, 35, 38}, - { 5, 37, 29}, - { 5, 38, 44}, - { 5, 39, 8}, - { 5, 39, 25}, - { 5, 40, 17}, - { 5, 45, 4}, - { 5, 45, 5}, - { 5, 45, 7}, - { 5, 45, 9}, - { 5, 45, 13}, - { 5, 45, 25}, - { 5, 45, 26}, - { 5, 45, 28}, - { 5, 45, 32}, - { 5, 45, 45}, - { 6, 4, 4}, - { 6, 4, 5}, - { 6, 4, 6}, - { 6, 4, 7}, - { 6, 4, 8}, - { 6, 4, 9}, - { 6, 5, 4}, - { 6, 5, 5}, - { 6, 5, 6}, - { 6, 5, 7}, - { 6, 5, 8}, - { 6, 5, 9}, - { 6, 6, 4}, - { 6, 6, 5}, - { 6, 6, 6}, - { 6, 6, 7}, - { 6, 6, 8}, - { 6, 6, 9}, - { 6, 7, 4}, - { 6, 7, 5}, - { 6, 7, 6}, - { 6, 7, 7}, - { 6, 7, 8}, - { 6, 7, 9}, - { 6, 8, 4}, - { 6, 8, 5}, - { 6, 8, 6}, - { 6, 8, 7}, - { 6, 8, 8}, - { 6, 8, 9}, - { 6, 9, 4}, - { 6, 9, 5}, - { 6, 9, 6}, - { 6, 9, 7}, - { 6, 9, 8}, - { 6, 9, 9}, - { 6, 12, 37}, - { 6, 13, 26}, - { 6, 17, 26}, - { 6, 17, 30}, - { 6, 18, 31}, - { 6, 20, 33}, - { 6, 20, 37}, - { 6, 21, 7}, - { 6, 23, 39}, - { 6, 26, 28}, - { 6, 27, 22}, - { 6, 28, 37}, - { 6, 30, 45}, - { 6, 32, 13}, - { 6, 33, 12}, - { 6, 33, 30}, - { 6, 33, 40}, - { 6, 37, 13}, - { 6, 42, 5}, - { 7, 4, 4}, - { 7, 4, 5}, - { 7, 4, 6}, - { 7, 4, 7}, - { 7, 4, 8}, - { 7, 4, 9}, - { 7, 4, 13}, - { 7, 4, 25}, - { 7, 4, 26}, - { 7, 4, 28}, - { 7, 4, 32}, - { 7, 4, 45}, - { 7, 5, 4}, - { 7, 5, 5}, - { 7, 5, 6}, - { 7, 5, 7}, - { 7, 5, 8}, - { 7, 5, 9}, - { 7, 5, 13}, - { 7, 5, 25}, - { 7, 5, 26}, - { 7, 5, 28}, - { 7, 5, 32}, - { 7, 5, 45}, - { 7, 6, 4}, - { 7, 6, 5}, - { 7, 6, 6}, - { 7, 6, 7}, - { 7, 6, 8}, - { 7, 6, 9}, - { 7, 6, 34}, - { 7, 7, 4}, - { 7, 7, 5}, - { 7, 7, 6}, - { 7, 7, 7}, - { 7, 7, 8}, - { 7, 7, 9}, - { 7, 7, 13}, - { 7, 7, 25}, - { 7, 7, 26}, - { 7, 7, 28}, - { 7, 7, 32}, - { 7, 7, 45}, - { 7, 8, 4}, - { 7, 8, 5}, - { 7, 8, 6}, - { 7, 8, 7}, - { 7, 8, 8}, - { 7, 8, 9}, - { 7, 9, 4}, - { 7, 9, 5}, - { 7, 9, 6}, - { 7, 9, 7}, - { 7, 9, 8}, - { 7, 9, 9}, - { 7, 9, 13}, - { 7, 9, 25}, - { 7, 9, 26}, - { 7, 9, 28}, - { 7, 9, 32}, - { 7, 9, 45}, - { 7, 10, 44}, - { 7, 13, 4}, - { 7, 13, 5}, - { 7, 13, 7}, - { 7, 13, 9}, - { 7, 13, 13}, - { 7, 13, 25}, - { 7, 13, 26}, - { 7, 13, 28}, - { 7, 13, 32}, - { 7, 13, 34}, - { 7, 13, 45}, - { 7, 14, 21}, - { 7, 18, 4}, - { 7, 18, 35}, - { 7, 18, 38}, - { 7, 18, 40}, - { 7, 19, 39}, - { 7, 22, 18}, - { 7, 22, 23}, - { 7, 23, 4}, - { 7, 23, 9}, - { 7, 25, 4}, - { 7, 25, 5}, - { 7, 25, 7}, - { 7, 25, 9}, - { 7, 25, 13}, - { 7, 25, 25}, - { 7, 25, 26}, - { 7, 25, 28}, - { 7, 25, 32}, - { 7, 25, 45}, - { 7, 26, 4}, - { 7, 26, 5}, - { 7, 26, 6}, - { 7, 26, 7}, - { 7, 26, 9}, - { 7, 26, 13}, - { 7, 26, 25}, - { 7, 26, 26}, - { 7, 26, 28}, - { 7, 26, 32}, - { 7, 26, 45}, - { 7, 27, 10}, - { 7, 28, 4}, - { 7, 28, 5}, - { 7, 28, 7}, - { 7, 28, 9}, - { 7, 28, 13}, - { 7, 28, 25}, - { 7, 28, 26}, - { 7, 28, 28}, - { 7, 28, 32}, - { 7, 28, 45}, - { 7, 30, 34}, - { 7, 32, 4}, - { 7, 32, 5}, - { 7, 32, 7}, - { 7, 32, 9}, - { 7, 32, 13}, - { 7, 32, 25}, - { 7, 32, 26}, - { 7, 32, 28}, - { 7, 32, 32}, - { 7, 32, 43}, - { 7, 32, 45}, - { 7, 33, 21}, - { 7, 33, 32}, - { 7, 35, 18}, - { 7, 36, 37}, - { 7, 37, 30}, - { 7, 37, 34}, - { 7, 38, 15}, - { 7, 40, 11}, - { 7, 41, 4}, - { 7, 42, 42}, - { 7, 45, 4}, - { 7, 45, 5}, - { 7, 45, 7}, - { 7, 45, 9}, - { 7, 45, 13}, - { 7, 45, 25}, - { 7, 45, 26}, - { 7, 45, 28}, - { 7, 45, 32}, - { 7, 45, 45}, - { 8, 4, 4}, - { 8, 4, 5}, - { 8, 4, 6}, - { 8, 4, 7}, - { 8, 4, 8}, - { 8, 4, 9}, - { 8, 5, 4}, - { 8, 5, 5}, - { 8, 5, 6}, - { 8, 5, 7}, - { 8, 5, 8}, - { 8, 5, 9}, - { 8, 6, 4}, - { 8, 6, 5}, - { 8, 6, 6}, - { 8, 6, 7}, - { 8, 6, 8}, - { 8, 6, 9}, - { 8, 6, 36}, - { 8, 7, 4}, - { 8, 7, 5}, - { 8, 7, 6}, - { 8, 7, 7}, - { 8, 7, 8}, - { 8, 7, 9}, - { 8, 7, 24}, - { 8, 8, 4}, - { 8, 8, 5}, - { 8, 8, 6}, - { 8, 8, 7}, - { 8, 8, 8}, - { 8, 8, 9}, - { 8, 8, 26}, - { 8, 9, 4}, - { 8, 9, 5}, - { 8, 9, 6}, - { 8, 9, 7}, - { 8, 9, 8}, - { 8, 9, 9}, - { 8, 9, 39}, - { 8, 13, 16}, - { 8, 13, 36}, - { 8, 15, 8}, - { 8, 16, 6}, - { 8, 16, 8}, - { 8, 16, 26}, - { 8, 17, 23}, - { 8, 17, 27}, - { 8, 17, 41}, - { 8, 24, 34}, - { 8, 27, 20}, - { 8, 28, 37}, - { 8, 29, 16}, - { 8, 31, 26}, - { 8, 33, 10}, - { 8, 43, 38}, - { 8, 44, 14}, - { 9, 4, 4}, - { 9, 4, 5}, - { 9, 4, 6}, - { 9, 4, 7}, - { 9, 4, 8}, - { 9, 4, 9}, - { 9, 4, 13}, - { 9, 4, 23}, - { 9, 4, 25}, - { 9, 4, 26}, - { 9, 4, 28}, - { 9, 4, 32}, - { 9, 4, 45}, - { 9, 5, 4}, - { 9, 5, 5}, - { 9, 5, 6}, - { 9, 5, 7}, - { 9, 5, 8}, - { 9, 5, 9}, - { 9, 5, 13}, - { 9, 5, 25}, - { 9, 5, 26}, - { 9, 5, 28}, - { 9, 5, 32}, - { 9, 5, 45}, - { 9, 6, 4}, - { 9, 6, 5}, - { 9, 6, 6}, - { 9, 6, 7}, - { 9, 6, 8}, - { 9, 6, 9}, - { 9, 7, 4}, - { 9, 7, 5}, - { 9, 7, 6}, - { 9, 7, 7}, - { 9, 7, 8}, - { 9, 7, 9}, - { 9, 7, 13}, - { 9, 7, 23}, - { 9, 7, 25}, - { 9, 7, 26}, - { 9, 7, 28}, - { 9, 7, 32}, - { 9, 7, 45}, - { 9, 8, 4}, - { 9, 8, 5}, - { 9, 8, 6}, - { 9, 8, 7}, - { 9, 8, 8}, - { 9, 8, 9}, - { 9, 8, 34}, - { 9, 9, 4}, - { 9, 9, 5}, - { 9, 9, 6}, - { 9, 9, 7}, - { 9, 9, 8}, - { 9, 9, 9}, - { 9, 9, 10}, - { 9, 9, 12}, - { 9, 9, 13}, - { 9, 9, 22}, - { 9, 9, 25}, - { 9, 9, 26}, - { 9, 9, 28}, - { 9, 9, 32}, - { 9, 9, 45}, - { 9, 10, 9}, - { 9, 10, 10}, - { 9, 10, 12}, - { 9, 10, 32}, - { 9, 12, 9}, - { 9, 12, 10}, - { 9, 12, 12}, - { 9, 12, 29}, - { 9, 12, 32}, - { 9, 13, 4}, - { 9, 13, 5}, - { 9, 13, 7}, - { 9, 13, 9}, - { 9, 13, 13}, - { 9, 13, 25}, - { 9, 13, 26}, - { 9, 13, 28}, - { 9, 13, 29}, - { 9, 13, 32}, - { 9, 13, 45}, - { 9, 18, 38}, - { 9, 18, 45}, - { 9, 21, 7}, - { 9, 21, 13}, - { 9, 22, 9}, - { 9, 22, 22}, - { 9, 22, 32}, - { 9, 22, 33}, - { 9, 24, 23}, - { 9, 25, 4}, - { 9, 25, 5}, - { 9, 25, 7}, - { 9, 25, 9}, - { 9, 25, 13}, - { 9, 25, 21}, - { 9, 25, 25}, - { 9, 25, 26}, - { 9, 25, 28}, - { 9, 25, 32}, - { 9, 25, 45}, - { 9, 26, 4}, - { 9, 26, 5}, - { 9, 26, 6}, - { 9, 26, 7}, - { 9, 26, 9}, - { 9, 26, 13}, - { 9, 26, 25}, - { 9, 26, 26}, - { 9, 26, 28}, - { 9, 26, 32}, - { 9, 26, 45}, - { 9, 28, 4}, - { 9, 28, 5}, - { 9, 28, 7}, - { 9, 28, 9}, - { 9, 28, 13}, - { 9, 28, 25}, - { 9, 28, 26}, - { 9, 28, 27}, - { 9, 28, 28}, - { 9, 28, 32}, - { 9, 28, 45}, - { 9, 29, 15}, - { 9, 29, 41}, - { 9, 30, 37}, - { 9, 31, 20}, - { 9, 31, 31}, - { 9, 32, 4}, - { 9, 32, 5}, - { 9, 32, 7}, - { 9, 32, 9}, - { 9, 32, 10}, - { 9, 32, 12}, - { 9, 32, 13}, - { 9, 32, 22}, - { 9, 32, 25}, - { 9, 32, 26}, - { 9, 32, 28}, - { 9, 32, 32}, - { 9, 32, 45}, - { 9, 36, 17}, - { 9, 38, 24}, - { 9, 39, 35}, - { 9, 41, 45}, - { 9, 45, 4}, - { 9, 45, 5}, - { 9, 45, 7}, - { 9, 45, 9}, - { 9, 45, 13}, - { 9, 45, 25}, - { 9, 45, 26}, - { 9, 45, 28}, - { 9, 45, 32}, - { 9, 45, 45}, - {10, 4, 4}, - {10, 4, 10}, - {10, 4, 15}, - {10, 4, 37}, - {10, 5, 18}, - {10, 6, 38}, - {10, 7, 45}, - {10, 9, 9}, - {10, 9, 10}, - {10, 9, 12}, - {10, 9, 30}, - {10, 9, 32}, - {10, 10, 4}, - {10, 10, 9}, - {10, 10, 10}, - {10, 10, 11}, - {10, 10, 12}, - {10, 10, 15}, - {10, 10, 32}, - {10, 12, 9}, - {10, 12, 10}, - {10, 12, 12}, - {10, 12, 29}, - {10, 12, 32}, - {10, 13, 8}, - {10, 13, 29}, - {10, 15, 4}, - {10, 15, 10}, - {10, 15, 15}, - {10, 16, 18}, - {10, 16, 44}, - {10, 18, 24}, - {10, 18, 27}, - {10, 18, 28}, - {10, 20, 18}, - {10, 22, 14}, - {10, 23, 6}, - {10, 23, 37}, - {10, 24, 16}, - {10, 26, 9}, - {10, 29, 45}, - {10, 32, 9}, - {10, 32, 10}, - {10, 32, 12}, - {10, 32, 32}, - {10, 32, 43}, - {10, 35, 25}, - {10, 35, 40}, - {10, 35, 45}, - {10, 37, 41}, - {10, 42, 20}, - {10, 43, 9}, - {10, 44, 25}, - {10, 45, 21}, - {10, 45, 22}, - {11, 7, 26}, - {11, 8, 37}, - {11, 9, 7}, - {11, 9, 44}, - {11, 11, 11}, - {11, 11, 12}, - {11, 11, 20}, - {11, 11, 25}, - {11, 11, 32}, - {11, 12, 9}, - {11, 12, 11}, - {11, 12, 12}, - {11, 12, 20}, - {11, 12, 25}, - {11, 12, 32}, - {11, 13, 17}, - {11, 13, 29}, - {11, 13, 35}, - {11, 14, 25}, - {11, 15, 6}, - {11, 16, 33}, - {11, 19, 39}, - {11, 20, 11}, - {11, 20, 12}, - {11, 20, 20}, - {11, 20, 25}, - {11, 20, 32}, - {11, 21, 7}, - {11, 24, 20}, - {11, 24, 35}, - {11, 25, 11}, - {11, 25, 12}, - {11, 25, 20}, - {11, 25, 25}, - {11, 25, 32}, - {11, 26, 45}, - {11, 29, 16}, - {11, 29, 17}, - {11, 29, 44}, - {11, 30, 18}, - {11, 30, 19}, - {11, 32, 4}, - {11, 32, 11}, - {11, 32, 12}, - {11, 32, 20}, - {11, 32, 25}, - {11, 32, 32}, - {11, 34, 10}, - {11, 41, 43}, - {12, 5, 5}, - {12, 5, 12}, - {12, 5, 13}, - {12, 5, 23}, - {12, 5, 26}, - {12, 5, 32}, - {12, 6, 34}, - {12, 6, 44}, - {12, 9, 9}, - {12, 9, 10}, - {12, 9, 12}, - {12, 9, 18}, - {12, 9, 32}, - {12, 10, 9}, - {12, 10, 10}, - {12, 10, 12}, - {12, 10, 32}, - {12, 11, 11}, - {12, 11, 12}, - {12, 11, 20}, - {12, 11, 22}, - {12, 11, 25}, - {12, 11, 32}, - {12, 12, 4}, - {12, 12, 5}, - {12, 12, 9}, - {12, 12, 10}, - {12, 12, 11}, - {12, 12, 12}, - {12, 12, 13}, - {12, 12, 16}, - {12, 12, 20}, - {12, 12, 25}, - {12, 12, 26}, - {12, 12, 29}, - {12, 12, 32}, - {12, 13, 5}, - {12, 13, 12}, - {12, 13, 13}, - {12, 13, 26}, - {12, 13, 32}, - {12, 14, 13}, - {12, 16, 12}, - {12, 16, 13}, - {12, 16, 16}, - {12, 16, 32}, - {12, 17, 25}, - {12, 19, 33}, - {12, 19, 38}, - {12, 19, 39}, - {12, 20, 11}, - {12, 20, 12}, - {12, 20, 20}, - {12, 20, 25}, - {12, 20, 32}, - {12, 20, 42}, - {12, 22, 19}, - {12, 25, 11}, - {12, 25, 12}, - {12, 25, 20}, - {12, 25, 25}, - {12, 25, 32}, - {12, 26, 5}, - {12, 26, 12}, - {12, 26, 13}, - {12, 26, 26}, - {12, 26, 32}, - {12, 28, 4}, - {12, 29, 4}, - {12, 29, 18}, - {12, 29, 20}, - {12, 29, 36}, - {12, 32, 5}, - {12, 32, 9}, - {12, 32, 10}, - {12, 32, 11}, - {12, 32, 12}, - {12, 32, 13}, - {12, 32, 16}, - {12, 32, 20}, - {12, 32, 25}, - {12, 32, 26}, - {12, 32, 32}, - {12, 33, 13}, - {12, 37, 11}, - {12, 37, 33}, - {12, 39, 30}, - {12, 39, 35}, - {12, 41, 17}, - {12, 42, 29}, - {12, 45, 4}, - {13, 4, 4}, - {13, 4, 5}, - {13, 4, 7}, - {13, 4, 9}, - {13, 4, 13}, - {13, 4, 25}, - {13, 4, 26}, - {13, 4, 28}, - {13, 4, 32}, - {13, 4, 45}, - {13, 5, 4}, - {13, 5, 5}, - {13, 5, 7}, - {13, 5, 9}, - {13, 5, 12}, - {13, 5, 13}, - {13, 5, 16}, - {13, 5, 17}, - {13, 5, 24}, - {13, 5, 25}, - {13, 5, 26}, - {13, 5, 28}, - {13, 5, 32}, - {13, 5, 45}, - {13, 7, 4}, - {13, 7, 5}, - {13, 7, 7}, - {13, 7, 9}, - {13, 7, 13}, - {13, 7, 25}, - {13, 7, 26}, - {13, 7, 28}, - {13, 7, 32}, - {13, 7, 45}, - {13, 9, 4}, - {13, 9, 5}, - {13, 9, 7}, - {13, 9, 9}, - {13, 9, 10}, - {13, 9, 13}, - {13, 9, 25}, - {13, 9, 26}, - {13, 9, 28}, - {13, 9, 32}, - {13, 9, 45}, - {13, 12, 5}, - {13, 12, 11}, - {13, 12, 12}, - {13, 12, 13}, - {13, 12, 26}, - {13, 12, 32}, - {13, 13, 4}, - {13, 13, 5}, - {13, 13, 7}, - {13, 13, 9}, - {13, 13, 12}, - {13, 13, 13}, - {13, 13, 14}, - {13, 13, 16}, - {13, 13, 24}, - {13, 13, 25}, - {13, 13, 26}, - {13, 13, 28}, - {13, 13, 32}, - {13, 13, 45}, - {13, 14, 13}, - {13, 14, 14}, - {13, 14, 18}, - {13, 14, 25}, - {13, 14, 26}, - {13, 14, 32}, - {13, 16, 5}, - {13, 16, 13}, - {13, 16, 16}, - {13, 16, 32}, - {13, 17, 9}, - {13, 20, 12}, - {13, 24, 5}, - {13, 24, 13}, - {13, 24, 24}, - {13, 24, 26}, - {13, 24, 32}, - {13, 25, 4}, - {13, 25, 5}, - {13, 25, 7}, - {13, 25, 9}, - {13, 25, 13}, - {13, 25, 14}, - {13, 25, 25}, - {13, 25, 26}, - {13, 25, 28}, - {13, 25, 32}, - {13, 25, 45}, - {13, 26, 4}, - {13, 26, 5}, - {13, 26, 7}, - {13, 26, 9}, - {13, 26, 12}, - {13, 26, 13}, - {13, 26, 14}, - {13, 26, 19}, - {13, 26, 24}, - {13, 26, 25}, - {13, 26, 26}, - {13, 26, 28}, - {13, 26, 32}, - {13, 26, 45}, - {13, 27, 10}, - {13, 28, 4}, - {13, 28, 5}, - {13, 28, 7}, - {13, 28, 9}, - {13, 28, 13}, - {13, 28, 25}, - {13, 28, 26}, - {13, 28, 28}, - {13, 28, 32}, - {13, 28, 45}, - {13, 30, 8}, - {13, 31, 12}, - {13, 32, 4}, - {13, 32, 5}, - {13, 32, 7}, - {13, 32, 9}, - {13, 32, 12}, - {13, 32, 13}, - {13, 32, 14}, - {13, 32, 16}, - {13, 32, 24}, - {13, 32, 25}, - {13, 32, 26}, - {13, 32, 28}, - {13, 32, 32}, - {13, 32, 45}, - {13, 33, 33}, - {13, 37, 44}, - {13, 39, 23}, - {13, 40, 14}, - {13, 41, 29}, - {13, 42, 38}, - {13, 44, 15}, - {13, 45, 4}, - {13, 45, 5}, - {13, 45, 7}, - {13, 45, 9}, - {13, 45, 13}, - {13, 45, 25}, - {13, 45, 26}, - {13, 45, 28}, - {13, 45, 32}, - {13, 45, 45}, - {14, 9, 6}, - {14, 9, 38}, - {14, 12, 4}, - {14, 13, 13}, - {14, 13, 14}, - {14, 13, 25}, - {14, 13, 26}, - {14, 13, 32}, - {14, 13, 35}, - {14, 14, 13}, - {14, 14, 14}, - {14, 14, 16}, - {14, 14, 25}, - {14, 14, 26}, - {14, 14, 29}, - {14, 14, 32}, - {14, 16, 14}, - {14, 16, 16}, - {14, 16, 29}, - {14, 16, 43}, - {14, 19, 11}, - {14, 19, 39}, - {14, 20, 12}, - {14, 21, 16}, - {14, 21, 41}, - {14, 23, 30}, - {14, 24, 40}, - {14, 25, 13}, - {14, 25, 14}, - {14, 25, 25}, - {14, 25, 26}, - {14, 25, 32}, - {14, 25, 33}, - {14, 26, 13}, - {14, 26, 14}, - {14, 26, 16}, - {14, 26, 25}, - {14, 26, 26}, - {14, 26, 32}, - {14, 29, 14}, - {14, 29, 16}, - {14, 29, 29}, - {14, 29, 32}, - {14, 30, 22}, - {14, 31, 35}, - {14, 32, 13}, - {14, 32, 14}, - {14, 32, 25}, - {14, 32, 26}, - {14, 32, 29}, - {14, 32, 30}, - {14, 32, 32}, - {14, 34, 29}, - {14, 34, 30}, - {14, 34, 36}, - {14, 34, 40}, - {14, 35, 32}, - {14, 36, 26}, - {14, 40, 38}, - {14, 43, 18}, - {14, 44, 17}, - {14, 44, 22}, - {15, 4, 4}, - {15, 4, 10}, - {15, 4, 15}, - {15, 4, 16}, - {15, 4, 45}, - {15, 5, 41}, - {15, 8, 17}, - {15, 10, 4}, - {15, 10, 10}, - {15, 10, 15}, - {15, 10, 22}, - {15, 11, 30}, - {15, 13, 37}, - {15, 14, 39}, - {15, 15, 4}, - {15, 15, 10}, - {15, 15, 15}, - {15, 15, 37}, - {15, 16, 33}, - {15, 18, 15}, - {15, 18, 38}, - {15, 19, 34}, - {15, 20, 27}, - {15, 21, 42}, - {15, 25, 18}, - {15, 26, 14}, - {15, 27, 45}, - {15, 28, 11}, - {15, 28, 14}, - {15, 30, 15}, - {15, 30, 42}, - {15, 32, 18}, - {15, 37, 32}, - {15, 38, 43}, - {15, 42, 10}, - {15, 44, 14}, - {15, 45, 42}, - {16, 5, 5}, - {16, 5, 13}, - {16, 5, 16}, - {16, 5, 32}, - {16, 6, 15}, - {16, 7, 43}, - {16, 12, 12}, - {16, 12, 16}, - {16, 12, 32}, - {16, 13, 5}, - {16, 13, 13}, - {16, 13, 16}, - {16, 13, 32}, - {16, 14, 8}, - {16, 14, 14}, - {16, 14, 16}, - {16, 14, 29}, - {16, 15, 6}, - {16, 15, 41}, - {16, 16, 5}, - {16, 16, 12}, - {16, 16, 13}, - {16, 16, 14}, - {16, 16, 16}, - {16, 16, 29}, - {16, 16, 32}, - {16, 17, 9}, - {16, 17, 25}, - {16, 27, 4}, - {16, 29, 13}, - {16, 29, 14}, - {16, 29, 16}, - {16, 29, 29}, - {16, 31, 6}, + { 4, 7, 10}, + { 4, 7, 12}, + { 4, 7, 13}, + { 4, 7, 19}, + { 4, 7, 25}, + { 4, 7, 26}, + { 4, 7, 28}, + { 4, 7, 32}, + { 4, 7, 45}, + { 4, 8, 4}, + { 4, 8, 5}, + { 4, 8, 6}, + { 4, 8, 7}, + { 4, 8, 8}, + { 4, 8, 9}, + { 4, 9, 4}, + { 4, 9, 5}, + { 4, 9, 6}, + { 4, 9, 7}, + { 4, 9, 8}, + { 4, 9, 9}, + { 4, 9, 13}, + { 4, 9, 16}, + { 4, 9, 25}, + { 4, 9, 26}, + { 4, 9, 28}, + { 4, 9, 32}, + { 4, 9, 35}, + { 4, 9, 45}, + { 4, 10, 4}, + { 4, 10, 10}, + { 4, 10, 15}, + { 4, 11, 23}, + { 4, 12, 9}, + { 4, 13, 4}, + { 4, 13, 5}, + { 4, 13, 7}, + { 4, 13, 9}, + { 4, 13, 13}, + { 4, 13, 25}, + { 4, 13, 26}, + { 4, 13, 28}, + { 4, 13, 32}, + { 4, 13, 45}, + { 4, 15, 4}, + { 4, 15, 10}, + { 4, 15, 15}, + { 4, 15, 19}, + { 4, 17, 4}, + { 4, 17, 7}, + { 4, 17, 17}, + { 4, 20, 43}, + { 4, 25, 4}, + { 4, 25, 5}, + { 4, 25, 7}, + { 4, 25, 9}, + { 4, 25, 12}, + { 4, 25, 13}, + { 4, 25, 19}, + { 4, 25, 25}, + { 4, 25, 26}, + { 4, 25, 28}, + { 4, 25, 32}, + { 4, 25, 45}, + { 4, 26, 4}, + { 4, 26, 5}, + { 4, 26, 7}, + { 4, 26, 9}, + { 4, 26, 13}, + { 4, 26, 25}, + { 4, 26, 26}, + { 4, 26, 28}, + { 4, 26, 32}, + { 4, 26, 44}, + { 4, 26, 45}, + { 4, 27, 30}, + { 4, 28, 4}, + { 4, 28, 5}, + { 4, 28, 7}, + { 4, 28, 9}, + { 4, 28, 13}, + { 4, 28, 25}, + { 4, 28, 26}, + { 4, 28, 28}, + { 4, 28, 32}, + { 4, 28, 45}, + { 4, 32, 4}, + { 4, 32, 5}, + { 4, 32, 7}, + { 4, 32, 9}, + { 4, 32, 13}, + { 4, 32, 25}, + { 4, 32, 26}, + { 4, 32, 28}, + { 4, 32, 32}, + { 4, 32, 45}, + { 4, 34, 32}, + { 4, 41, 6}, + { 4, 45, 4}, + { 4, 45, 5}, + { 4, 45, 7}, + { 4, 45, 9}, + { 4, 45, 13}, + { 4, 45, 25}, + { 4, 45, 26}, + { 4, 45, 28}, + { 4, 45, 32}, + { 4, 45, 45}, + { 5, 4, 4}, + { 5, 4, 5}, + { 5, 4, 6}, + { 5, 4, 7}, + { 5, 4, 8}, + { 5, 4, 9}, + { 5, 4, 13}, + { 5, 4, 25}, + { 5, 4, 26}, + { 5, 4, 28}, + { 5, 4, 32}, + { 5, 4, 45}, + { 5, 5, 4}, + { 5, 5, 5}, + { 5, 5, 6}, + { 5, 5, 7}, + { 5, 5, 8}, + { 5, 5, 9}, + { 5, 5, 12}, + { 5, 5, 13}, + { 5, 5, 16}, + { 5, 5, 24}, + { 5, 5, 25}, + { 5, 5, 26}, + { 5, 5, 28}, + { 5, 5, 32}, + { 5, 5, 45}, + { 5, 6, 4}, + { 5, 6, 5}, + { 5, 6, 6}, + { 5, 6, 7}, + { 5, 6, 8}, + { 5, 6, 9}, + { 5, 7, 4}, + { 5, 7, 5}, + { 5, 7, 6}, + { 5, 7, 7}, + { 5, 7, 8}, + { 5, 7, 9}, + { 5, 7, 13}, + { 5, 7, 25}, + { 5, 7, 26}, + { 5, 7, 28}, + { 5, 7, 32}, + { 5, 7, 45}, + { 5, 8, 4}, + { 5, 8, 5}, + { 5, 8, 6}, + { 5, 8, 7}, + { 5, 8, 8}, + { 5, 8, 9}, + { 5, 9, 4}, + { 5, 9, 5}, + { 5, 9, 6}, + { 5, 9, 7}, + { 5, 9, 8}, + { 5, 9, 9}, + { 5, 9, 13}, + { 5, 9, 25}, + { 5, 9, 26}, + { 5, 9, 28}, + { 5, 9, 32}, + { 5, 9, 45}, + { 5, 10, 44}, + { 5, 11, 30}, + { 5, 12, 5}, + { 5, 12, 12}, + { 5, 12, 13}, + { 5, 12, 26}, + { 5, 12, 32}, + { 5, 12, 44}, + { 5, 13, 4}, + { 5, 13, 5}, + { 5, 13, 7}, + { 5, 13, 9}, + { 5, 13, 12}, + { 5, 13, 13}, + { 5, 13, 16}, + { 5, 13, 24}, + { 5, 13, 25}, + { 5, 13, 26}, + { 5, 13, 28}, + { 5, 13, 32}, + { 5, 13, 45}, + { 5, 15, 43}, + { 5, 16, 5}, + { 5, 16, 13}, + { 5, 16, 16}, + { 5, 16, 32}, + { 5, 18, 28}, + { 5, 18, 44}, + { 5, 22, 21}, + { 5, 23, 27}, + { 5, 23, 28}, + { 5, 24, 5}, + { 5, 24, 13}, + { 5, 24, 24}, + { 5, 24, 26}, + { 5, 24, 32}, + { 5, 24, 39}, + { 5, 24, 44}, + { 5, 25, 4}, + { 5, 25, 5}, + { 5, 25, 7}, + { 5, 25, 9}, + { 5, 25, 13}, + { 5, 25, 25}, + { 5, 25, 26}, + { 5, 25, 28}, + { 5, 25, 32}, + { 5, 25, 45}, + { 5, 26, 4}, + { 5, 26, 5}, + { 5, 26, 7}, + { 5, 26, 9}, + { 5, 26, 12}, + { 5, 26, 13}, + { 5, 26, 24}, + { 5, 26, 25}, + { 5, 26, 26}, + { 5, 26, 28}, + { 5, 26, 32}, + { 5, 26, 45}, + { 5, 27, 39}, + { 5, 28, 4}, + { 5, 28, 5}, + { 5, 28, 7}, + { 5, 28, 9}, + { 5, 28, 13}, + { 5, 28, 25}, + { 5, 28, 26}, + { 5, 28, 28}, + { 5, 28, 32}, + { 5, 28, 45}, + { 5, 32, 4}, + { 5, 32, 5}, + { 5, 32, 7}, + { 5, 32, 9}, + { 5, 32, 12}, + { 5, 32, 13}, + { 5, 32, 16}, + { 5, 32, 24}, + { 5, 32, 25}, + { 5, 32, 26}, + { 5, 32, 28}, + { 5, 32, 32}, + { 5, 32, 45}, + { 5, 35, 28}, + { 5, 40, 7}, + { 5, 42, 7}, + { 5, 45, 4}, + { 5, 45, 5}, + { 5, 45, 7}, + { 5, 45, 9}, + { 5, 45, 13}, + { 5, 45, 25}, + { 5, 45, 26}, + { 5, 45, 28}, + { 5, 45, 32}, + { 5, 45, 45}, + { 6, 4, 4}, + { 6, 4, 5}, + { 6, 4, 6}, + { 6, 4, 7}, + { 6, 4, 8}, + { 6, 4, 9}, + { 6, 5, 4}, + { 6, 5, 5}, + { 6, 5, 6}, + { 6, 5, 7}, + { 6, 5, 8}, + { 6, 5, 9}, + { 6, 6, 4}, + { 6, 6, 5}, + { 6, 6, 6}, + { 6, 6, 7}, + { 6, 6, 8}, + { 6, 6, 9}, + { 6, 7, 4}, + { 6, 7, 5}, + { 6, 7, 6}, + { 6, 7, 7}, + { 6, 7, 8}, + { 6, 7, 9}, + { 6, 7, 42}, + { 6, 8, 4}, + { 6, 8, 5}, + { 6, 8, 6}, + { 6, 8, 7}, + { 6, 8, 8}, + { 6, 8, 9}, + { 6, 9, 4}, + { 6, 9, 5}, + { 6, 9, 6}, + { 6, 9, 7}, + { 6, 9, 8}, + { 6, 9, 9}, + { 6, 12, 8}, + { 6, 14, 7}, + { 6, 15, 24}, + { 6, 15, 40}, + { 6, 16, 32}, + { 6, 17, 33}, + { 6, 18, 16}, + { 6, 20, 14}, + { 6, 21, 33}, + { 6, 24, 19}, + { 6, 27, 34}, + { 6, 28, 8}, + { 6, 28, 36}, + { 6, 29, 24}, + { 6, 30, 7}, + { 6, 31, 23}, + { 6, 33, 20}, + { 6, 35, 28}, + { 6, 36, 26}, + { 6, 38, 10}, + { 6, 38, 31}, + { 6, 41, 5}, + { 6, 42, 25}, + { 7, 4, 4}, + { 7, 4, 5}, + { 7, 4, 6}, + { 7, 4, 7}, + { 7, 4, 8}, + { 7, 4, 9}, + { 7, 4, 13}, + { 7, 4, 25}, + { 7, 4, 26}, + { 7, 4, 28}, + { 7, 4, 32}, + { 7, 4, 45}, + { 7, 5, 4}, + { 7, 5, 5}, + { 7, 5, 6}, + { 7, 5, 7}, + { 7, 5, 8}, + { 7, 5, 9}, + { 7, 5, 13}, + { 7, 5, 24}, + { 7, 5, 25}, + { 7, 5, 26}, + { 7, 5, 28}, + { 7, 5, 32}, + { 7, 5, 45}, + { 7, 6, 4}, + { 7, 6, 5}, + { 7, 6, 6}, + { 7, 6, 7}, + { 7, 6, 8}, + { 7, 6, 9}, + { 7, 7, 4}, + { 7, 7, 5}, + { 7, 7, 6}, + { 7, 7, 7}, + { 7, 7, 8}, + { 7, 7, 9}, + { 7, 7, 13}, + { 7, 7, 25}, + { 7, 7, 26}, + { 7, 7, 28}, + { 7, 7, 32}, + { 7, 7, 45}, + { 7, 8, 4}, + { 7, 8, 5}, + { 7, 8, 6}, + { 7, 8, 7}, + { 7, 8, 8}, + { 7, 8, 9}, + { 7, 9, 4}, + { 7, 9, 5}, + { 7, 9, 6}, + { 7, 9, 7}, + { 7, 9, 8}, + { 7, 9, 9}, + { 7, 9, 13}, + { 7, 9, 25}, + { 7, 9, 26}, + { 7, 9, 28}, + { 7, 9, 32}, + { 7, 9, 45}, + { 7, 11, 5}, + { 7, 13, 4}, + { 7, 13, 5}, + { 7, 13, 7}, + { 7, 13, 9}, + { 7, 13, 13}, + { 7, 13, 25}, + { 7, 13, 26}, + { 7, 13, 28}, + { 7, 13, 32}, + { 7, 13, 40}, + { 7, 13, 45}, + { 7, 15, 11}, + { 7, 15, 30}, + { 7, 16, 10}, + { 7, 17, 7}, + { 7, 18, 9}, + { 7, 19, 8}, + { 7, 19, 14}, + { 7, 24, 32}, + { 7, 25, 4}, + { 7, 25, 5}, + { 7, 25, 7}, + { 7, 25, 9}, + { 7, 25, 13}, + { 7, 25, 25}, + { 7, 25, 26}, + { 7, 25, 28}, + { 7, 25, 32}, + { 7, 25, 45}, + { 7, 26, 4}, + { 7, 26, 5}, + { 7, 26, 7}, + { 7, 26, 9}, + { 7, 26, 13}, + { 7, 26, 25}, + { 7, 26, 26}, + { 7, 26, 28}, + { 7, 26, 32}, + { 7, 26, 45}, + { 7, 28, 4}, + { 7, 28, 5}, + { 7, 28, 7}, + { 7, 28, 9}, + { 7, 28, 13}, + { 7, 28, 25}, + { 7, 28, 26}, + { 7, 28, 28}, + { 7, 28, 32}, + { 7, 28, 45}, + { 7, 29, 32}, + { 7, 30, 39}, + { 7, 31, 41}, + { 7, 32, 4}, + { 7, 32, 5}, + { 7, 32, 7}, + { 7, 32, 9}, + { 7, 32, 13}, + { 7, 32, 25}, + { 7, 32, 26}, + { 7, 32, 28}, + { 7, 32, 32}, + { 7, 32, 45}, + { 7, 33, 4}, + { 7, 34, 8}, + { 7, 36, 27}, + { 7, 36, 32}, + { 7, 40, 41}, + { 7, 44, 44}, + { 7, 45, 4}, + { 7, 45, 5}, + { 7, 45, 7}, + { 7, 45, 9}, + { 7, 45, 13}, + { 7, 45, 25}, + { 7, 45, 26}, + { 7, 45, 28}, + { 7, 45, 32}, + { 7, 45, 45}, + { 8, 4, 4}, + { 8, 4, 5}, + { 8, 4, 6}, + { 8, 4, 7}, + { 8, 4, 8}, + { 8, 4, 9}, + { 8, 4, 14}, + { 8, 5, 4}, + { 8, 5, 5}, + { 8, 5, 6}, + { 8, 5, 7}, + { 8, 5, 8}, + { 8, 5, 9}, + { 8, 6, 4}, + { 8, 6, 5}, + { 8, 6, 6}, + { 8, 6, 7}, + { 8, 6, 8}, + { 8, 6, 9}, + { 8, 7, 4}, + { 8, 7, 5}, + { 8, 7, 6}, + { 8, 7, 7}, + { 8, 7, 8}, + { 8, 7, 9}, + { 8, 7, 22}, + { 8, 8, 4}, + { 8, 8, 5}, + { 8, 8, 6}, + { 8, 8, 7}, + { 8, 8, 8}, + { 8, 8, 9}, + { 8, 8, 38}, + { 8, 9, 4}, + { 8, 9, 5}, + { 8, 9, 6}, + { 8, 9, 7}, + { 8, 9, 8}, + { 8, 9, 9}, + { 8, 9, 10}, + { 8, 10, 22}, + { 8, 11, 33}, + { 8, 13, 29}, + { 8, 14, 36}, + { 8, 16, 12}, + { 8, 17, 40}, + { 8, 23, 31}, + { 8, 23, 42}, + { 8, 25, 23}, + { 8, 26, 16}, + { 8, 28, 20}, + { 8, 30, 39}, + { 8, 34, 8}, + { 8, 35, 20}, + { 8, 36, 19}, + { 8, 37, 22}, + { 8, 37, 32}, + { 8, 39, 31}, + { 8, 39, 38}, + { 8, 40, 12}, + { 8, 44, 4}, + { 9, 4, 4}, + { 9, 4, 5}, + { 9, 4, 6}, + { 9, 4, 7}, + { 9, 4, 8}, + { 9, 4, 9}, + { 9, 4, 13}, + { 9, 4, 25}, + { 9, 4, 26}, + { 9, 4, 28}, + { 9, 4, 32}, + { 9, 4, 45}, + { 9, 5, 4}, + { 9, 5, 5}, + { 9, 5, 6}, + { 9, 5, 7}, + { 9, 5, 8}, + { 9, 5, 9}, + { 9, 5, 13}, + { 9, 5, 25}, + { 9, 5, 26}, + { 9, 5, 28}, + { 9, 5, 32}, + { 9, 5, 45}, + { 9, 6, 4}, + { 9, 6, 5}, + { 9, 6, 6}, + { 9, 6, 7}, + { 9, 6, 8}, + { 9, 6, 9}, + { 9, 6, 30}, + { 9, 7, 4}, + { 9, 7, 5}, + { 9, 7, 6}, + { 9, 7, 7}, + { 9, 7, 8}, + { 9, 7, 9}, + { 9, 7, 13}, + { 9, 7, 16}, + { 9, 7, 25}, + { 9, 7, 26}, + { 9, 7, 28}, + { 9, 7, 32}, + { 9, 7, 45}, + { 9, 8, 4}, + { 9, 8, 5}, + { 9, 8, 6}, + { 9, 8, 7}, + { 9, 8, 8}, + { 9, 8, 9}, + { 9, 9, 4}, + { 9, 9, 5}, + { 9, 9, 6}, + { 9, 9, 7}, + { 9, 9, 8}, + { 9, 9, 9}, + { 9, 9, 10}, + { 9, 9, 12}, + { 9, 9, 13}, + { 9, 9, 22}, + { 9, 9, 25}, + { 9, 9, 26}, + { 9, 9, 28}, + { 9, 9, 32}, + { 9, 9, 45}, + { 9, 10, 9}, + { 9, 10, 10}, + { 9, 10, 12}, + { 9, 10, 32}, + { 9, 11, 25}, + { 9, 11, 28}, + { 9, 12, 9}, + { 9, 12, 10}, + { 9, 12, 12}, + { 9, 12, 32}, + { 9, 13, 4}, + { 9, 13, 5}, + { 9, 13, 7}, + { 9, 13, 9}, + { 9, 13, 13}, + { 9, 13, 25}, + { 9, 13, 26}, + { 9, 13, 28}, + { 9, 13, 32}, + { 9, 13, 45}, + { 9, 16, 18}, + { 9, 18, 21}, + { 9, 18, 33}, + { 9, 20, 11}, + { 9, 22, 8}, + { 9, 22, 9}, + { 9, 22, 22}, + { 9, 22, 32}, + { 9, 24, 14}, + { 9, 25, 4}, + { 9, 25, 5}, + { 9, 25, 7}, + { 9, 25, 9}, + { 9, 25, 13}, + { 9, 25, 25}, + { 9, 25, 26}, + { 9, 25, 28}, + { 9, 25, 32}, + { 9, 25, 45}, + { 9, 26, 4}, + { 9, 26, 5}, + { 9, 26, 7}, + { 9, 26, 9}, + { 9, 26, 13}, + { 9, 26, 25}, + { 9, 26, 26}, + { 9, 26, 28}, + { 9, 26, 32}, + { 9, 26, 45}, + { 9, 28, 4}, + { 9, 28, 5}, + { 9, 28, 7}, + { 9, 28, 9}, + { 9, 28, 13}, + { 9, 28, 25}, + { 9, 28, 26}, + { 9, 28, 28}, + { 9, 28, 32}, + { 9, 28, 45}, + { 9, 32, 4}, + { 9, 32, 5}, + { 9, 32, 7}, + { 9, 32, 9}, + { 9, 32, 10}, + { 9, 32, 12}, + { 9, 32, 13}, + { 9, 32, 22}, + { 9, 32, 25}, + { 9, 32, 26}, + { 9, 32, 28}, + { 9, 32, 32}, + { 9, 32, 45}, + { 9, 34, 34}, + { 9, 36, 9}, + { 9, 36, 21}, + { 9, 37, 31}, + { 9, 38, 41}, + { 9, 39, 30}, + { 9, 41, 29}, + { 9, 41, 30}, + { 9, 41, 35}, + { 9, 42, 29}, + { 9, 43, 22}, + { 9, 44, 15}, + { 9, 44, 25}, + { 9, 45, 4}, + { 9, 45, 5}, + { 9, 45, 7}, + { 9, 45, 9}, + { 9, 45, 13}, + { 9, 45, 25}, + { 9, 45, 26}, + { 9, 45, 28}, + { 9, 45, 32}, + { 9, 45, 45}, + {10, 4, 4}, + {10, 4, 10}, + {10, 4, 15}, + {10, 6, 34}, + {10, 6, 38}, + {10, 9, 9}, + {10, 9, 10}, + {10, 9, 12}, + {10, 9, 32}, + {10, 9, 43}, + {10, 10, 4}, + {10, 10, 9}, + {10, 10, 10}, + {10, 10, 11}, + {10, 10, 12}, + {10, 10, 15}, + {10, 10, 32}, + {10, 12, 9}, + {10, 12, 10}, + {10, 12, 12}, + {10, 12, 28}, + {10, 12, 30}, + {10, 12, 32}, + {10, 13, 29}, + {10, 15, 4}, + {10, 15, 10}, + {10, 15, 15}, + {10, 16, 31}, + {10, 18, 17}, + {10, 19, 36}, + {10, 20, 26}, + {10, 24, 19}, + {10, 24, 35}, + {10, 27, 12}, + {10, 30, 23}, + {10, 31, 41}, + {10, 32, 6}, + {10, 32, 9}, + {10, 32, 10}, + {10, 32, 12}, + {10, 32, 25}, + {10, 32, 32}, + {10, 32, 36}, + {10, 32, 38}, + {10, 36, 31}, + {10, 36, 39}, + {10, 37, 17}, + {10, 40, 28}, + {10, 41, 23}, + {10, 41, 27}, + {10, 42, 22}, + {10, 43, 23}, + {10, 44, 25}, + {11, 5, 12}, + {11, 5, 18}, + {11, 7, 37}, + {11, 11, 11}, + {11, 11, 12}, + {11, 11, 20}, + {11, 11, 25}, + {11, 11, 32}, + {11, 12, 11}, + {11, 12, 12}, + {11, 12, 20}, + {11, 12, 25}, + {11, 12, 32}, + {11, 13, 27}, + {11, 15, 32}, + {11, 17, 8}, + {11, 17, 20}, + {11, 17, 28}, + {11, 19, 6}, + {11, 19, 45}, + {11, 20, 11}, + {11, 20, 12}, + {11, 20, 20}, + {11, 20, 25}, + {11, 20, 32}, + {11, 22, 17}, + {11, 22, 24}, + {11, 23, 38}, + {11, 24, 13}, + {11, 25, 11}, + {11, 25, 12}, + {11, 25, 20}, + {11, 25, 25}, + {11, 25, 32}, + {11, 28, 39}, + {11, 32, 11}, + {11, 32, 12}, + {11, 32, 20}, + {11, 32, 25}, + {11, 32, 32}, + {11, 33, 38}, + {11, 37, 14}, + {11, 37, 36}, + {11, 39, 11}, + {11, 39, 24}, + {11, 40, 42}, + {11, 42, 5}, + {11, 42, 45}, + {11, 43, 37}, + {12, 4, 24}, + {12, 5, 5}, + {12, 5, 12}, + {12, 5, 13}, + {12, 5, 26}, + {12, 5, 32}, + {12, 6, 36}, + {12, 7, 12}, + {12, 7, 40}, + {12, 9, 9}, + {12, 9, 10}, + {12, 9, 12}, + {12, 9, 32}, + {12, 10, 9}, + {12, 10, 10}, + {12, 10, 12}, + {12, 10, 32}, + {12, 11, 11}, + {12, 11, 12}, + {12, 11, 20}, + {12, 11, 23}, + {12, 11, 25}, + {12, 11, 32}, + {12, 12, 5}, + {12, 12, 9}, + {12, 12, 10}, + {12, 12, 11}, + {12, 12, 12}, + {12, 12, 13}, + {12, 12, 16}, + {12, 12, 20}, + {12, 12, 25}, + {12, 12, 26}, + {12, 12, 32}, + {12, 13, 5}, + {12, 13, 11}, + {12, 13, 12}, + {12, 13, 13}, + {12, 13, 26}, + {12, 13, 32}, + {12, 14, 7}, + {12, 14, 14}, + {12, 15, 17}, + {12, 16, 12}, + {12, 16, 16}, + {12, 16, 32}, + {12, 17, 43}, + {12, 19, 30}, + {12, 20, 11}, + {12, 20, 12}, + {12, 20, 20}, + {12, 20, 25}, + {12, 20, 32}, + {12, 22, 13}, + {12, 24, 5}, + {12, 25, 11}, + {12, 25, 12}, + {12, 25, 20}, + {12, 25, 25}, + {12, 25, 32}, + {12, 26, 5}, + {12, 26, 12}, + {12, 26, 13}, + {12, 26, 26}, + {12, 26, 32}, + {12, 30, 43}, + {12, 32, 5}, + {12, 32, 9}, + {12, 32, 10}, + {12, 32, 11}, + {12, 32, 12}, + {12, 32, 13}, + {12, 32, 16}, + {12, 32, 20}, + {12, 32, 25}, + {12, 32, 26}, + {12, 32, 32}, + {12, 32, 42}, + {12, 33, 39}, + {12, 35, 36}, + {12, 38, 43}, + {12, 40, 5}, + {12, 40, 9}, + {12, 43, 5}, + {12, 43, 10}, + {12, 43, 14}, + {12, 44, 9}, + {12, 44, 45}, + {13, 4, 4}, + {13, 4, 5}, + {13, 4, 7}, + {13, 4, 9}, + {13, 4, 13}, + {13, 4, 25}, + {13, 4, 26}, + {13, 4, 28}, + {13, 4, 32}, + {13, 4, 45}, + {13, 5, 4}, + {13, 5, 5}, + {13, 5, 7}, + {13, 5, 9}, + {13, 5, 12}, + {13, 5, 13}, + {13, 5, 16}, + {13, 5, 24}, + {13, 5, 25}, + {13, 5, 26}, + {13, 5, 28}, + {13, 5, 32}, + {13, 5, 36}, + {13, 5, 45}, + {13, 7, 4}, + {13, 7, 5}, + {13, 7, 7}, + {13, 7, 9}, + {13, 7, 13}, + {13, 7, 14}, + {13, 7, 25}, + {13, 7, 26}, + {13, 7, 28}, + {13, 7, 32}, + {13, 7, 45}, + {13, 9, 4}, + {13, 9, 5}, + {13, 9, 7}, + {13, 9, 9}, + {13, 9, 13}, + {13, 9, 25}, + {13, 9, 26}, + {13, 9, 27}, + {13, 9, 28}, + {13, 9, 32}, + {13, 9, 34}, + {13, 9, 45}, + {13, 12, 5}, + {13, 12, 12}, + {13, 12, 13}, + {13, 12, 26}, + {13, 12, 32}, + {13, 12, 42}, + {13, 13, 4}, + {13, 13, 5}, + {13, 13, 7}, + {13, 13, 9}, + {13, 13, 12}, + {13, 13, 13}, + {13, 13, 14}, + {13, 13, 16}, + {13, 13, 23}, + {13, 13, 24}, + {13, 13, 25}, + {13, 13, 26}, + {13, 13, 28}, + {13, 13, 32}, + {13, 13, 45}, + {13, 14, 13}, + {13, 14, 14}, + {13, 14, 25}, + {13, 14, 26}, + {13, 14, 32}, + {13, 14, 34}, + {13, 16, 5}, + {13, 16, 11}, + {13, 16, 13}, + {13, 16, 16}, + {13, 16, 26}, + {13, 16, 32}, + {13, 20, 38}, + {13, 24, 5}, + {13, 24, 13}, + {13, 24, 24}, + {13, 24, 26}, + {13, 24, 32}, + {13, 25, 4}, + {13, 25, 5}, + {13, 25, 7}, + {13, 25, 9}, + {13, 25, 13}, + {13, 25, 14}, + {13, 25, 23}, + {13, 25, 25}, + {13, 25, 26}, + {13, 25, 28}, + {13, 25, 32}, + {13, 25, 41}, + {13, 25, 45}, + {13, 26, 4}, + {13, 26, 5}, + {13, 26, 7}, + {13, 26, 9}, + {13, 26, 12}, + {13, 26, 13}, + {13, 26, 14}, + {13, 26, 19}, + {13, 26, 24}, + {13, 26, 25}, + {13, 26, 26}, + {13, 26, 28}, + {13, 26, 32}, + {13, 26, 43}, + {13, 26, 45}, + {13, 27, 8}, + {13, 28, 4}, + {13, 28, 5}, + {13, 28, 7}, + {13, 28, 9}, + {13, 28, 13}, + {13, 28, 20}, + {13, 28, 25}, + {13, 28, 26}, + {13, 28, 28}, + {13, 28, 32}, + {13, 28, 45}, + {13, 30, 13}, + {13, 31, 19}, + {13, 32, 4}, + {13, 32, 5}, + {13, 32, 7}, + {13, 32, 9}, + {13, 32, 12}, + {13, 32, 13}, + {13, 32, 14}, + {13, 32, 16}, + {13, 32, 24}, + {13, 32, 25}, + {13, 32, 26}, + {13, 32, 28}, + {13, 32, 32}, + {13, 32, 39}, + {13, 32, 45}, + {13, 33, 40}, + {13, 35, 26}, + {13, 37, 7}, + {13, 39, 27}, + {13, 41, 34}, + {13, 43, 34}, + {13, 44, 25}, + {13, 45, 4}, + {13, 45, 5}, + {13, 45, 7}, + {13, 45, 9}, + {13, 45, 13}, + {13, 45, 25}, + {13, 45, 26}, + {13, 45, 28}, + {13, 45, 32}, + {13, 45, 45}, + {14, 4, 5}, + {14, 5, 7}, + {14, 5, 43}, + {14, 6, 32}, + {14, 7, 43}, + {14, 10, 22}, + {14, 13, 4}, + {14, 13, 13}, + {14, 13, 14}, + {14, 13, 25}, + {14, 13, 26}, + {14, 13, 32}, + {14, 14, 13}, + {14, 14, 14}, + {14, 14, 16}, + {14, 14, 19}, + {14, 14, 25}, + {14, 14, 26}, + {14, 14, 29}, + {14, 14, 32}, + {14, 16, 8}, + {14, 16, 14}, + {14, 16, 16}, + {14, 16, 29}, + {14, 18, 45}, + {14, 22, 35}, + {14, 23, 10}, + {14, 24, 31}, + {14, 24, 33}, + {14, 25, 13}, + {14, 25, 14}, + {14, 25, 25}, + {14, 25, 26}, + {14, 25, 30}, + {14, 25, 32}, + {14, 26, 9}, + {14, 26, 13}, + {14, 26, 14}, + {14, 26, 25}, + {14, 26, 26}, + {14, 26, 32}, + {14, 28, 22}, + {14, 29, 14}, + {14, 29, 16}, + {14, 29, 29}, + {14, 29, 32}, + {14, 32, 13}, + {14, 32, 14}, + {14, 32, 25}, + {14, 32, 26}, + {14, 32, 29}, + {14, 32, 32}, + {14, 32, 44}, + {14, 33, 32}, + {14, 34, 43}, + {14, 35, 33}, + {14, 36, 28}, + {14, 37, 17}, + {14, 37, 41}, + {14, 38, 33}, + {14, 38, 36}, + {14, 40, 25}, + {14, 41, 23}, + {14, 42, 15}, + {14, 44, 18}, + {14, 44, 44}, + {14, 45, 14}, + {14, 45, 15}, + {14, 45, 22}, + {15, 4, 4}, + {15, 4, 10}, + {15, 4, 15}, + {15, 5, 40}, + {15, 9, 35}, + {15, 9, 37}, + {15, 10, 4}, + {15, 10, 10}, + {15, 10, 15}, + {15, 14, 23}, + {15, 15, 4}, + {15, 15, 9}, + {15, 15, 10}, + {15, 15, 15}, + {15, 17, 24}, + {15, 18, 37}, + {15, 20, 33}, + {15, 21, 9}, + {15, 22, 28}, + {15, 26, 26}, + {15, 26, 27}, + {15, 28, 16}, + {15, 30, 13}, + {15, 30, 27}, + {15, 30, 32}, + {15, 32, 38}, + {15, 32, 39}, + {15, 33, 42}, + {15, 40, 44}, + {15, 42, 41}, + {15, 43, 28}, + {15, 43, 43}, + {15, 45, 9}, + {15, 45, 27}, + {16, 4, 33}, + {16, 4, 44}, + {16, 5, 5}, + {16, 5, 13}, + {16, 5, 16}, + {16, 5, 32}, + {16, 6, 13}, + {16, 8, 17}, + {16, 8, 34}, + {16, 9, 22}, + {16, 11, 37}, + {16, 12, 12}, + {16, 12, 16}, + {16, 12, 32}, + {16, 13, 5}, + {16, 13, 13}, + {16, 13, 16}, + {16, 13, 32}, + {16, 13, 42}, + {16, 14, 14}, + {16, 14, 16}, + {16, 14, 29}, + {16, 15, 31}, + {16, 16, 5}, + {16, 16, 12}, + {16, 16, 13}, + {16, 16, 14}, + {16, 16, 16}, + {16, 16, 29}, + {16, 16, 32}, + {16, 16, 43}, + {16, 18, 17}, + {16, 20, 14}, + {16, 24, 32}, + {16, 25, 30}, + {16, 28, 36}, + {16, 29, 14}, + {16, 29, 16}, + {16, 29, 29}, + {16, 31, 14}, + {16, 31, 38}, {16, 32, 5}, - {16, 32, 11}, - {16, 32, 12}, - {16, 32, 13}, - {16, 32, 14}, - {16, 32, 16}, - {16, 32, 32}, - {16, 34, 9}, - {16, 34, 13}, - {16, 37, 43}, - {16, 39, 38}, - {16, 40, 13}, - {16, 40, 17}, - {16, 40, 20}, - {16, 42, 27}, - {16, 43, 6}, - {17, 5, 28}, - {17, 6, 37}, - {17, 7, 38}, - {17, 8, 4}, - {17, 9, 4}, - {17, 12, 24}, - {17, 15, 15}, - {17, 17, 17}, - {17, 17, 43}, - {17, 18, 23}, - {17, 20, 4}, - {17, 20, 18}, - {17, 21, 35}, - {17, 22, 18}, - {17, 23, 39}, - {17, 29, 7}, - {17, 29, 13}, - {17, 29, 16}, - {17, 29, 45}, - {17, 30, 23}, - {17, 38, 43}, - {17, 39, 11}, - {17, 39, 31}, - {17, 41, 5}, - {17, 42, 19}, - {17, 42, 32}, - {17, 44, 27}, - {18, 8, 35}, - {18, 13, 20}, - {18, 13, 38}, - {18, 17, 25}, - {18, 18, 18}, - {18, 25, 14}, - {18, 26, 20}, - {18, 28, 9}, - {18, 30, 9}, - {18, 30, 39}, - {18, 33, 41}, - {18, 34, 7}, - {18, 34, 8}, - {18, 34, 10}, - {18, 36, 15}, - {18, 38, 16}, - {18, 41, 9}, - {18, 41, 19}, - {18, 43, 15}, - {18, 43, 30}, - {18, 44, 22}, - {18, 44, 42}, - {18, 45, 5}, - {19, 4, 27}, - {19, 4, 31}, - {19, 5, 5}, - {19, 5, 15}, - {19, 7, 27}, - {19, 11, 18}, - {19, 12, 31}, - {19, 13, 27}, - {19, 13, 31}, - {19, 15, 43}, - {19, 17, 22}, - {19, 19, 7}, - {19, 19, 19}, - {19, 21, 5}, - {19, 23, 20}, - {19, 29, 13}, - {19, 31, 11}, - {19, 39, 18}, - {19, 40, 6}, - {19, 43, 18}, - {19, 45, 36}, - {20, 5, 16}, - {20, 8, 19}, - {20, 8, 22}, - {20, 11, 11}, - {20, 11, 12}, - {20, 11, 20}, - {20, 11, 25}, - {20, 11, 32}, - {20, 12, 11}, - {20, 12, 12}, - {20, 12, 20}, - {20, 12, 24}, - {20, 12, 25}, - {20, 12, 32}, - {20, 12, 39}, - {20, 14, 37}, - {20, 15, 7}, - {20, 16, 30}, - {20, 18, 22}, - {20, 20, 11}, - {20, 20, 12}, - {20, 20, 20}, - {20, 20, 25}, - {20, 20, 32}, - {20, 21, 18}, - {20, 23, 32}, - {20, 25, 11}, - {20, 25, 12}, - {20, 25, 20}, - {20, 25, 25}, - {20, 25, 32}, - {20, 29, 7}, - {20, 31, 17}, - {20, 32, 8}, - {20, 32, 11}, - {20, 32, 12}, - {20, 32, 18}, - {20, 32, 20}, - {20, 32, 25}, - {20, 32, 32}, - {20, 34, 25}, - {20, 35, 29}, - {20, 36, 18}, - {20, 37, 9}, - {20, 44, 35}, - {20, 45, 5}, - {21, 5, 14}, - {21, 6, 42}, - {21, 8, 6}, - {21, 11, 20}, - {21, 13, 29}, - {21, 14, 11}, - {21, 14, 18}, - {21, 15, 21}, - {21, 20, 43}, - {21, 21, 21}, - {21, 23, 29}, - {21, 26, 30}, - {21, 27, 17}, - {21, 30, 5}, - {21, 32, 29}, - {21, 32, 44}, - {21, 34, 28}, - {21, 37, 19}, - {21, 37, 37}, - {21, 38, 45}, - {21, 39, 23}, - {21, 43, 12}, - {21, 44, 29}, - {21, 45, 6}, - {22, 5, 40}, - {22, 6, 10}, - {22, 9, 9}, - {22, 9, 22}, - {22, 9, 32}, - {22, 10, 7}, - {22, 15, 4}, - {22, 17, 6}, - {22, 18, 24}, - {22, 20, 45}, - {22, 22, 9}, - {22, 22, 22}, - {22, 22, 32}, - {22, 24, 42}, - {22, 25, 13}, - {22, 25, 29}, - {22, 26, 33}, - {22, 30, 11}, - {22, 30, 20}, - {22, 30, 35}, - {22, 32, 9}, - {22, 32, 13}, - {22, 32, 16}, - {22, 32, 22}, - {22, 32, 32}, - {22, 32, 39}, - {22, 33, 4}, - {22, 33, 10}, - {22, 33, 22}, - {22, 33, 30}, - {22, 34, 19}, - {22, 35, 45}, - {22, 40, 43}, - {22, 42, 11}, - {22, 42, 21}, - {23, 6, 6}, - {23, 11, 4}, - {23, 13, 38}, - {23, 18, 32}, - {23, 20, 12}, - {23, 23, 23}, - {23, 24, 6}, - {23, 25, 24}, - {23, 25, 42}, - {23, 27, 18}, - {23, 27, 27}, - {23, 29, 18}, - {23, 30, 24}, - {23, 31, 15}, - {23, 31, 31}, - {23, 31, 37}, - {23, 32, 9}, - {23, 35, 39}, - {23, 36, 17}, - {23, 36, 39}, - {23, 38, 23}, - {23, 40, 12}, - {23, 41, 6}, - {23, 45, 9}, - {24, 5, 5}, - {24, 5, 13}, - {24, 5, 21}, - {24, 5, 24}, - {24, 5, 26}, - {24, 5, 32}, - {24, 5, 40}, - {24, 6, 8}, - {24, 6, 35}, - {24, 7, 34}, - {24, 8, 23}, - {24, 8, 24}, - {24, 9, 37}, - {24, 10, 16}, - {24, 12, 8}, - {24, 13, 5}, - {24, 13, 13}, - {24, 13, 23}, - {24, 13, 24}, - {24, 13, 26}, - {24, 13, 32}, - {24, 16, 6}, - {24, 16, 19}, - {24, 18, 10}, - {24, 19, 36}, - {24, 20, 4}, - {24, 23, 28}, - {24, 24, 5}, - {24, 24, 13}, - {24, 24, 24}, - {24, 24, 26}, - {24, 24, 32}, - {24, 24, 43}, - {24, 25, 31}, - {24, 25, 39}, - {24, 26, 5}, - {24, 26, 13}, - {24, 26, 24}, - {24, 26, 26}, - {24, 26, 32}, - {24, 26, 38}, - {24, 30, 23}, - {24, 31, 45}, - {24, 32, 5}, - {24, 32, 11}, - {24, 32, 13}, - {24, 32, 24}, - {24, 32, 26}, - {24, 32, 32}, - {24, 35, 9}, - {24, 35, 19}, - {24, 36, 6}, - {24, 39, 19}, - {24, 40, 14}, - {24, 42, 6}, - {24, 42, 11}, - {24, 42, 19}, - {24, 43, 11}, - {24, 43, 31}, - {25, 4, 4}, - {25, 4, 5}, - {25, 4, 7}, - {25, 4, 9}, - {25, 4, 13}, - {25, 4, 15}, - {25, 4, 25}, - {25, 4, 26}, - {25, 4, 28}, - {25, 4, 32}, - {25, 4, 45}, - {25, 5, 4}, - {25, 5, 5}, - {25, 5, 7}, - {25, 5, 9}, - {25, 5, 13}, - {25, 5, 25}, - {25, 5, 26}, - {25, 5, 28}, - {25, 5, 32}, - {25, 5, 44}, - {25, 5, 45}, - {25, 7, 4}, - {25, 7, 5}, - {25, 7, 7}, - {25, 7, 9}, - {25, 7, 13}, - {25, 7, 19}, - {25, 7, 25}, - {25, 7, 26}, - {25, 7, 28}, - {25, 7, 32}, - {25, 7, 45}, - {25, 8, 37}, - {25, 9, 4}, - {25, 9, 5}, - {25, 9, 7}, - {25, 9, 9}, - {25, 9, 13}, - {25, 9, 25}, - {25, 9, 26}, - {25, 9, 28}, - {25, 9, 29}, - {25, 9, 32}, - {25, 9, 45}, - {25, 10, 26}, - {25, 10, 40}, - {25, 11, 11}, - {25, 11, 12}, - {25, 11, 20}, - {25, 11, 25}, - {25, 11, 32}, - {25, 12, 10}, - {25, 12, 11}, - {25, 12, 12}, - {25, 12, 20}, - {25, 12, 25}, - {25, 12, 32}, - {25, 12, 33}, - {25, 13, 4}, - {25, 13, 5}, - {25, 13, 7}, - {25, 13, 9}, - {25, 13, 13}, - {25, 13, 14}, - {25, 13, 25}, - {25, 13, 26}, - {25, 13, 28}, - {25, 13, 32}, - {25, 13, 45}, - {25, 14, 13}, - {25, 14, 14}, - {25, 14, 25}, - {25, 14, 26}, - {25, 14, 32}, - {25, 15, 44}, - {25, 17, 39}, - {25, 19, 8}, - {25, 20, 11}, - {25, 20, 12}, - {25, 20, 20}, - {25, 20, 25}, - {25, 20, 32}, - {25, 20, 43}, - {25, 21, 7}, - {25, 23, 30}, - {25, 24, 28}, - {25, 25, 4}, - {25, 25, 5}, - {25, 25, 7}, - {25, 25, 9}, - {25, 25, 11}, - {25, 25, 12}, - {25, 25, 13}, - {25, 25, 14}, - {25, 25, 15}, - {25, 25, 20}, - {25, 25, 25}, - {25, 25, 26}, - {25, 25, 28}, - {25, 25, 32}, - {25, 25, 45}, - {25, 26, 4}, - {25, 26, 5}, - {25, 26, 7}, - {25, 26, 9}, - {25, 26, 13}, - {25, 26, 14}, - {25, 26, 25}, - {25, 26, 26}, - {25, 26, 28}, - {25, 26, 32}, - {25, 26, 45}, - {25, 28, 4}, - {25, 28, 5}, - {25, 28, 7}, - {25, 28, 9}, - {25, 28, 13}, - {25, 28, 25}, - {25, 28, 26}, - {25, 28, 28}, - {25, 28, 32}, - {25, 28, 45}, - {25, 32, 4}, - {25, 32, 5}, - {25, 32, 7}, - {25, 32, 9}, - {25, 32, 11}, - {25, 32, 12}, - {25, 32, 13}, - {25, 32, 14}, - {25, 32, 20}, - {25, 32, 25}, - {25, 32, 26}, - {25, 32, 28}, - {25, 32, 32}, - {25, 32, 45}, - {25, 35, 31}, - {25, 37, 30}, - {25, 37, 32}, - {25, 42, 14}, - {25, 42, 26}, - {25, 45, 4}, - {25, 45, 5}, - {25, 45, 7}, - {25, 45, 9}, - {25, 45, 11}, - {25, 45, 13}, - {25, 45, 25}, - {25, 45, 26}, - {25, 45, 28}, - {25, 45, 32}, - {25, 45, 45}, - {26, 4, 4}, - {26, 4, 5}, - {26, 4, 7}, - {26, 4, 9}, - {26, 4, 13}, - {26, 4, 25}, - {26, 4, 26}, - {26, 4, 28}, - {26, 4, 32}, - {26, 4, 45}, - {26, 5, 4}, - {26, 5, 5}, - {26, 5, 7}, - {26, 5, 9}, - {26, 5, 12}, - {26, 5, 13}, - {26, 5, 24}, - {26, 5, 25}, - {26, 5, 26}, - {26, 5, 28}, - {26, 5, 32}, - {26, 5, 45}, - {26, 6, 25}, - {26, 7, 4}, - {26, 7, 5}, - {26, 7, 7}, - {26, 7, 9}, - {26, 7, 13}, - {26, 7, 25}, - {26, 7, 26}, - {26, 7, 28}, - {26, 7, 32}, - {26, 7, 45}, - {26, 9, 4}, - {26, 9, 5}, - {26, 9, 7}, - {26, 9, 9}, - {26, 9, 13}, - {26, 9, 20}, - {26, 9, 25}, - {26, 9, 26}, - {26, 9, 28}, - {26, 9, 32}, - {26, 9, 45}, - {26, 10, 21}, - {26, 10, 27}, - {26, 12, 5}, - {26, 12, 12}, - {26, 12, 13}, - {26, 12, 14}, - {26, 12, 26}, - {26, 12, 32}, - {26, 13, 4}, - {26, 13, 5}, - {26, 13, 7}, - {26, 13, 9}, - {26, 13, 12}, - {26, 13, 13}, - {26, 13, 14}, - {26, 13, 24}, - {26, 13, 25}, - {26, 13, 26}, - {26, 13, 28}, - {26, 13, 32}, - {26, 13, 45}, - {26, 14, 13}, - {26, 14, 14}, - {26, 14, 25}, - {26, 14, 26}, - {26, 14, 32}, - {26, 17, 8}, - {26, 17, 20}, - {26, 18, 32}, - {26, 19, 34}, - {26, 20, 33}, - {26, 21, 45}, - {26, 23, 35}, - {26, 24, 5}, - {26, 24, 13}, - {26, 24, 24}, - {26, 24, 26}, - {26, 24, 32}, - {26, 25, 4}, - {26, 25, 5}, - {26, 25, 7}, - {26, 25, 9}, - {26, 25, 13}, - {26, 25, 14}, - {26, 25, 15}, - {26, 25, 25}, - {26, 25, 26}, - {26, 25, 28}, - {26, 25, 32}, - {26, 25, 45}, - {26, 26, 4}, - {26, 26, 5}, - {26, 26, 7}, - {26, 26, 9}, - {26, 26, 12}, - {26, 26, 13}, - {26, 26, 14}, - {26, 26, 24}, - {26, 26, 25}, - {26, 26, 26}, - {26, 26, 28}, - {26, 26, 32}, - {26, 26, 41}, - {26, 26, 45}, - {26, 28, 4}, - {26, 28, 5}, - {26, 28, 7}, - {26, 28, 9}, - {26, 28, 13}, - {26, 28, 25}, - {26, 28, 26}, - {26, 28, 28}, - {26, 28, 32}, - {26, 28, 41}, - {26, 28, 45}, - {26, 30, 28}, - {26, 32, 4}, - {26, 32, 5}, - {26, 32, 7}, - {26, 32, 9}, - {26, 32, 12}, - {26, 32, 13}, - {26, 32, 14}, - {26, 32, 24}, - {26, 32, 25}, - {26, 32, 26}, - {26, 32, 28}, - {26, 32, 32}, - {26, 32, 45}, - {26, 33, 5}, - {26, 36, 43}, - {26, 39, 9}, - {26, 39, 27}, - {26, 40, 22}, - {26, 41, 30}, - {26, 42, 44}, - {26, 44, 12}, - {26, 44, 39}, - {26, 45, 4}, - {26, 45, 5}, - {26, 45, 7}, - {26, 45, 9}, - {26, 45, 13}, - {26, 45, 25}, - {26, 45, 26}, - {26, 45, 28}, - {26, 45, 32}, - {26, 45, 45}, - {27, 4, 23}, - {27, 9, 6}, - {27, 9, 35}, - {27, 9, 38}, - {27, 13, 30}, - {27, 20, 45}, - {27, 21, 45}, - {27, 22, 23}, - {27, 23, 28}, - {27, 23, 29}, - {27, 24, 7}, - {27, 24, 26}, - {27, 24, 31}, - {27, 25, 36}, - {27, 27, 27}, - {27, 28, 45}, - {27, 30, 36}, - {27, 33, 15}, - {27, 33, 25}, - {27, 33, 29}, - {27, 34, 40}, - {27, 37, 15}, - {27, 37, 20}, - {27, 38, 17}, - {27, 39, 4}, - {27, 40, 41}, - {27, 41, 8}, - {27, 43, 43}, - {28, 4, 4}, - {28, 4, 5}, - {28, 4, 7}, - {28, 4, 8}, - {28, 4, 9}, - {28, 4, 13}, - {28, 4, 25}, - {28, 4, 26}, - {28, 4, 28}, - {28, 4, 32}, - {28, 4, 45}, - {28, 5, 4}, - {28, 5, 5}, - {28, 5, 7}, - {28, 5, 9}, - {28, 5, 13}, - {28, 5, 25}, - {28, 5, 26}, - {28, 5, 28}, - {28, 5, 32}, - {28, 5, 45}, - {28, 7, 4}, - {28, 7, 5}, - {28, 7, 7}, - {28, 7, 9}, - {28, 7, 13}, - {28, 7, 25}, - {28, 7, 26}, - {28, 7, 28}, - {28, 7, 32}, - {28, 7, 45}, - {28, 8, 4}, - {28, 9, 4}, - {28, 9, 5}, - {28, 9, 7}, - {28, 9, 9}, - {28, 9, 13}, - {28, 9, 25}, - {28, 9, 26}, - {28, 9, 28}, - {28, 9, 32}, - {28, 9, 45}, - {28, 10, 11}, - {28, 12, 35}, - {28, 13, 4}, - {28, 13, 5}, - {28, 13, 7}, - {28, 13, 9}, - {28, 13, 13}, - {28, 13, 25}, - {28, 13, 26}, - {28, 13, 28}, - {28, 13, 32}, - {28, 13, 45}, - {28, 17, 26}, - {28, 18, 16}, - {28, 18, 31}, - {28, 19, 37}, - {28, 20, 13}, - {28, 21, 31}, - {28, 22, 20}, - {28, 22, 28}, - {28, 24, 45}, - {28, 25, 4}, - {28, 25, 5}, - {28, 25, 7}, - {28, 25, 9}, - {28, 25, 13}, - {28, 25, 25}, - {28, 25, 26}, - {28, 25, 28}, - {28, 25, 32}, - {28, 25, 45}, - {28, 26, 4}, - {28, 26, 5}, - {28, 26, 7}, - {28, 26, 9}, - {28, 26, 13}, - {28, 26, 25}, - {28, 26, 26}, - {28, 26, 28}, - {28, 26, 32}, - {28, 26, 45}, - {28, 28, 4}, - {28, 28, 5}, - {28, 28, 7}, - {28, 28, 9}, - {28, 28, 13}, - {28, 28, 25}, - {28, 28, 26}, - {28, 28, 28}, - {28, 28, 29}, - {28, 28, 32}, - {28, 28, 40}, - {28, 28, 45}, - {28, 29, 41}, - {28, 31, 16}, - {28, 32, 4}, - {28, 32, 5}, - {28, 32, 7}, - {28, 32, 9}, - {28, 32, 13}, - {28, 32, 25}, - {28, 32, 26}, - {28, 32, 28}, - {28, 32, 32}, - {28, 32, 37}, - {28, 32, 45}, - {28, 34, 21}, - {28, 35, 18}, - {28, 35, 33}, - {28, 40, 18}, - {28, 40, 42}, - {28, 41, 17}, - {28, 41, 42}, - {28, 42, 18}, - {28, 43, 32}, - {28, 44, 20}, - {28, 45, 4}, - {28, 45, 5}, - {28, 45, 7}, - {28, 45, 9}, - {28, 45, 10}, - {28, 45, 13}, - {28, 45, 23}, - {28, 45, 25}, - {28, 45, 26}, - {28, 45, 28}, - {28, 45, 32}, - {28, 45, 45}, - {29, 6, 30}, - {29, 14, 14}, - {29, 14, 16}, - {29, 14, 29}, - {29, 14, 32}, - {29, 15, 24}, - {29, 16, 14}, - {29, 16, 16}, - {29, 16, 29}, - {29, 17, 23}, - {29, 18, 12}, - {29, 19, 39}, - {29, 24, 15}, - {29, 26, 44}, - {29, 29, 9}, - {29, 29, 14}, - {29, 29, 16}, - {29, 29, 29}, - {29, 29, 32}, - {29, 32, 14}, - {29, 32, 16}, - {29, 32, 24}, - {29, 32, 29}, - {29, 32, 32}, - {29, 34, 7}, - {29, 36, 9}, - {29, 37, 37}, - {29, 38, 7}, - {29, 39, 8}, - {29, 41, 13}, - {29, 44, 28}, - {30, 5, 24}, - {30, 6, 43}, - {30, 7, 12}, - {30, 10, 35}, - {30, 11, 31}, - {30, 11, 37}, - {30, 12, 21}, - {30, 16, 8}, - {30, 21, 40}, - {30, 24, 29}, - {30, 25, 13}, - {30, 27, 4}, - {30, 28, 8}, - {30, 30, 17}, - {30, 30, 30}, - {30, 31, 36}, - {30, 33, 29}, - {30, 33, 41}, - {30, 34, 14}, - {30, 34, 30}, - {30, 37, 16}, - {30, 43, 14}, - {31, 5, 14}, - {31, 11, 14}, - {31, 13, 37}, - {31, 13, 38}, - {31, 17, 14}, - {31, 19, 25}, - {31, 19, 30}, - {31, 20, 24}, - {31, 23, 38}, - {31, 23, 43}, - {31, 25, 38}, - {31, 26, 19}, - {31, 27, 20}, - {31, 28, 13}, - {31, 29, 16}, - {31, 30, 20}, - {31, 31, 31}, - {31, 32, 18}, - {31, 33, 44}, - {31, 36, 10}, - {31, 38, 4}, - {31, 38, 12}, - {31, 38, 33}, - {31, 39, 34}, - {31, 40, 17}, - {31, 40, 42}, - {31, 43, 15}, - {31, 44, 36}, - {32, 4, 4}, - {32, 4, 5}, - {32, 4, 7}, - {32, 4, 9}, - {32, 4, 13}, - {32, 4, 25}, - {32, 4, 26}, - {32, 4, 28}, - {32, 4, 32}, - {32, 4, 45}, - {32, 5, 4}, - {32, 5, 5}, - {32, 5, 7}, - {32, 5, 9}, - {32, 5, 12}, - {32, 5, 13}, - {32, 5, 15}, - {32, 5, 16}, - {32, 5, 24}, - {32, 5, 25}, - {32, 5, 26}, - {32, 5, 28}, - {32, 5, 32}, - {32, 5, 45}, - {32, 7, 4}, - {32, 7, 5}, - {32, 7, 7}, - {32, 7, 9}, - {32, 7, 13}, - {32, 7, 25}, - {32, 7, 26}, - {32, 7, 28}, - {32, 7, 32}, - {32, 7, 39}, - {32, 7, 45}, - {32, 8, 5}, - {32, 9, 4}, - {32, 9, 5}, - {32, 9, 7}, - {32, 9, 9}, - {32, 9, 10}, - {32, 9, 12}, - {32, 9, 13}, - {32, 9, 22}, - {32, 9, 25}, - {32, 9, 26}, - {32, 9, 28}, - {32, 9, 32}, - {32, 9, 45}, - {32, 10, 9}, - {32, 10, 10}, - {32, 10, 12}, - {32, 10, 32}, - {32, 11, 11}, - {32, 11, 12}, - {32, 11, 20}, - {32, 11, 25}, - {32, 11, 32}, - {32, 11, 36}, - {32, 12, 5}, - {32, 12, 9}, - {32, 12, 10}, - {32, 12, 11}, - {32, 12, 12}, - {32, 12, 13}, - {32, 12, 14}, - {32, 12, 16}, - {32, 12, 20}, - {32, 12, 25}, - {32, 12, 26}, - {32, 12, 32}, - {32, 12, 39}, - {32, 12, 45}, - {32, 13, 4}, - {32, 13, 5}, - {32, 13, 7}, - {32, 13, 9}, - {32, 13, 12}, - {32, 13, 13}, - {32, 13, 14}, - {32, 13, 16}, - {32, 13, 24}, - {32, 13, 25}, - {32, 13, 26}, - {32, 13, 28}, - {32, 13, 32}, - {32, 13, 45}, - {32, 14, 13}, - {32, 14, 14}, - {32, 14, 25}, - {32, 14, 26}, - {32, 14, 29}, - {32, 14, 32}, - {32, 14, 34}, - {32, 15, 16}, - {32, 15, 33}, - {32, 15, 39}, - {32, 15, 45}, - {32, 16, 5}, - {32, 16, 12}, - {32, 16, 13}, - {32, 16, 16}, - {32, 16, 32}, - {32, 17, 39}, - {32, 19, 36}, - {32, 20, 11}, - {32, 20, 12}, - {32, 20, 13}, - {32, 20, 20}, - {32, 20, 25}, - {32, 20, 32}, - {32, 22, 4}, - {32, 22, 9}, - {32, 22, 22}, - {32, 22, 32}, - {32, 22, 37}, - {32, 24, 5}, - {32, 24, 13}, - {32, 24, 15}, - {32, 24, 24}, - {32, 24, 26}, - {32, 24, 32}, - {32, 24, 39}, - {32, 25, 4}, - {32, 25, 5}, - {32, 25, 7}, - {32, 25, 9}, - {32, 25, 11}, - {32, 25, 12}, - {32, 25, 13}, - {32, 25, 14}, - {32, 25, 20}, - {32, 25, 25}, - {32, 25, 26}, - {32, 25, 28}, - {32, 25, 32}, - {32, 25, 45}, - {32, 26, 4}, - {32, 26, 5}, - {32, 26, 7}, - {32, 26, 9}, - {32, 26, 12}, - {32, 26, 13}, - {32, 26, 14}, - {32, 26, 24}, - {32, 26, 25}, - {32, 26, 26}, - {32, 26, 28}, - {32, 26, 32}, - {32, 26, 35}, - {32, 26, 45}, - {32, 28, 4}, - {32, 28, 5}, - {32, 28, 7}, - {32, 28, 9}, - {32, 28, 13}, - {32, 28, 25}, - {32, 28, 26}, - {32, 28, 28}, - {32, 28, 32}, - {32, 28, 45}, - {32, 29, 14}, - {32, 29, 29}, - {32, 29, 32}, - {32, 32, 4}, - {32, 32, 5}, - {32, 32, 7}, - {32, 32, 9}, - {32, 32, 10}, - {32, 32, 11}, - {32, 32, 12}, - {32, 32, 13}, - {32, 32, 14}, - {32, 32, 16}, - {32, 32, 20}, - {32, 32, 22}, - {32, 32, 24}, - {32, 32, 25}, - {32, 32, 26}, - {32, 32, 28}, - {32, 32, 29}, - {32, 32, 32}, - {32, 32, 45}, - {32, 39, 20}, - {32, 39, 29}, - {32, 40, 7}, - {32, 41, 14}, - {32, 43, 18}, - {32, 44, 12}, - {32, 45, 4}, - {32, 45, 5}, - {32, 45, 7}, - {32, 45, 9}, - {32, 45, 13}, - {32, 45, 25}, - {32, 45, 26}, - {32, 45, 28}, - {32, 45, 32}, - {32, 45, 45}, - {33, 4, 39}, - {33, 4, 42}, - {33, 7, 16}, - {33, 7, 32}, - {33, 10, 29}, - {33, 12, 12}, - {33, 12, 26}, - {33, 16, 6}, - {33, 16, 26}, - {33, 18, 15}, - {33, 20, 39}, - {33, 21, 35}, - {33, 26, 8}, - {33, 29, 8}, - {33, 30, 36}, - {33, 31, 44}, - {33, 33, 14}, - {33, 33, 22}, - {33, 34, 16}, - {33, 35, 22}, - {34, 4, 12}, - {34, 6, 13}, - {34, 6, 17}, - {34, 6, 22}, - {34, 7, 8}, - {34, 7, 20}, - {34, 9, 16}, - {34, 10, 45}, - {34, 11, 39}, - {34, 15, 11}, - {34, 15, 44}, - {34, 16, 28}, - {34, 17, 8}, - {34, 18, 43}, - {34, 19, 28}, - {34, 20, 24}, - {34, 23, 25}, - {34, 28, 8}, - {34, 28, 9}, - {34, 29, 36}, - {34, 30, 33}, - {34, 30, 37}, - {34, 32, 39}, - {34, 33, 29}, - {34, 34, 15}, - {34, 37, 27}, - {34, 37, 41}, - {34, 38, 42}, - {34, 39, 8}, - {34, 40, 45}, - {34, 41, 11}, - {34, 45, 40}, - {35, 5, 29}, - {35, 10, 22}, - {35, 11, 15}, - {35, 11, 36}, - {35, 12, 23}, - {35, 17, 10}, - {35, 17, 28}, - {35, 18, 33}, - {35, 22, 9}, - {35, 22, 28}, - {35, 27, 45}, - {35, 29, 21}, - {35, 32, 4}, - {35, 33, 28}, - {35, 33, 42}, - {35, 34, 22}, - {35, 36, 40}, - {35, 38, 18}, - {36, 15, 24}, - {36, 15, 34}, - {36, 21, 37}, - {36, 28, 4}, - {36, 29, 23}, - {36, 31, 11}, - {36, 31, 27}, - {36, 32, 8}, - {36, 33, 25}, - {36, 34, 13}, - {36, 34, 16}, - {36, 37, 35}, - {36, 38, 36}, - {36, 41, 12}, - {36, 41, 13}, - {36, 43, 39}, - {37, 5, 21}, - {37, 6, 22}, - {37, 9, 44}, - {37, 10, 15}, - {37, 10, 20}, - {37, 10, 29}, - {37, 15, 27}, - {37, 18, 44}, - {37, 20, 37}, - {37, 23, 16}, - {37, 23, 24}, - {37, 24, 26}, - {37, 26, 32}, - {37, 26, 34}, - {37, 27, 19}, - {37, 28, 36}, - {37, 29, 12}, - {37, 29, 23}, - {37, 31, 28}, - {37, 34, 20}, - {37, 34, 39}, - {37, 35, 19}, - {37, 36, 13}, - {37, 37, 32}, - {37, 38, 43}, - {37, 41, 38}, - {37, 44, 5}, - {38, 5, 34}, - {38, 10, 14}, - {38, 12, 8}, - {38, 13, 11}, - {38, 14, 15}, - {38, 17, 10}, - {38, 17, 28}, - {38, 19, 4}, - {38, 20, 32}, - {38, 23, 10}, - {38, 24, 5}, - {38, 24, 42}, - {38, 25, 43}, - {38, 32, 27}, - {38, 38, 13}, - {38, 39, 13}, - {38, 43, 25}, - {38, 44, 8}, - {39, 6, 26}, - {39, 13, 42}, - {39, 21, 37}, - {39, 22, 14}, - {39, 26, 39}, - {39, 27, 38}, - {39, 29, 26}, - {39, 32, 39}, - {39, 37, 43}, - {39, 42, 10}, - {39, 42, 39}, - {39, 43, 26}, - {40, 4, 28}, - {40, 5, 21}, - {40, 6, 33}, - {40, 9, 35}, - {40, 10, 44}, - {40, 12, 6}, - {40, 13, 32}, - {40, 15, 30}, - {40, 16, 12}, - {40, 16, 15}, - {40, 17, 30}, - {40, 17, 34}, - {40, 18, 23}, - {40, 20, 26}, - {40, 21, 12}, - {40, 22, 6}, - {40, 22, 10}, - {40, 22, 24}, - {40, 24, 13}, - {40, 24, 21}, - {40, 25, 4}, - {40, 28, 34}, - {40, 29, 28}, - {40, 30, 36}, - {40, 30, 43}, - {40, 31, 4}, - {40, 31, 13}, - {40, 34, 5}, - {40, 34, 41}, - {40, 35, 27}, - {40, 36, 4}, - {40, 37, 25}, - {40, 38, 9}, - {40, 39, 4}, - {40, 41, 24}, - {40, 43, 16}, - {40, 43, 32}, - {41, 4, 16}, - {41, 4, 26}, - {41, 5, 12}, - {41, 5, 17}, - {41, 7, 16}, - {41, 9, 6}, - {41, 10, 23}, - {41, 11, 34}, - {41, 12, 6}, - {41, 12, 7}, - {41, 14, 42}, - {41, 16, 4}, - {41, 21, 7}, - {41, 25, 15}, - {41, 26, 41}, - {41, 27, 20}, - {41, 27, 37}, - {41, 30, 6}, - {41, 31, 7}, - {41, 32, 7}, - {41, 34, 43}, - {41, 35, 14}, - {41, 35, 15}, - {41, 35, 40}, - {41, 36, 15}, - {41, 36, 45}, - {41, 37, 11}, - {41, 39, 14}, - {41, 40, 35}, - {41, 44, 14}, - {41, 45, 29}, - {42, 6, 41}, - {42, 7, 15}, - {42, 7, 32}, - {42, 9, 33}, - {42, 10, 37}, - {42, 12, 7}, - {42, 13, 10}, - {42, 16, 32}, - {42, 17, 15}, - {42, 18, 15}, - {42, 21, 41}, - {42, 23, 6}, - {42, 23, 37}, - {42, 24, 26}, - {42, 33, 33}, - {42, 36, 5}, - {42, 37, 6}, - {42, 42, 33}, - {42, 43, 21}, - {42, 45, 32}, - {43, 4, 10}, - {43, 5, 14}, - {43, 9, 18}, - {43, 10, 15}, - {43, 13, 25}, - {43, 15, 25}, - {43, 15, 39}, - {43, 16, 36}, - {43, 19, 29}, - {43, 21, 8}, - {43, 21, 18}, - {43, 21, 33}, - {43, 22, 33}, - {43, 25, 5}, - {43, 26, 29}, - {43, 27, 7}, - {43, 28, 16}, - {43, 29, 9}, - {43, 29, 14}, - {43, 30, 6}, - {43, 30, 8}, - {43, 31, 13}, - {43, 32, 14}, - {43, 34, 5}, - {43, 34, 26}, - {43, 35, 27}, - {43, 35, 35}, - {43, 41, 17}, - {43, 42, 16}, - {43, 44, 44}, - {44, 6, 43}, - {44, 9, 5}, - {44, 9, 15}, - {44, 11, 13}, - {44, 13, 23}, - {44, 20, 32}, - {44, 24, 34}, - {44, 25, 32}, - {44, 29, 11}, - {44, 30, 30}, - {44, 35, 7}, - {44, 35, 44}, - {44, 42, 12}, - {44, 42, 20}, - {44, 42, 32}, - {45, 4, 4}, - {45, 4, 5}, - {45, 4, 7}, - {45, 4, 9}, - {45, 4, 13}, - {45, 4, 25}, - {45, 4, 26}, - {45, 4, 28}, - {45, 4, 32}, - {45, 4, 45}, - {45, 5, 4}, - {45, 5, 5}, - {45, 5, 7}, - {45, 5, 9}, - {45, 5, 13}, - {45, 5, 25}, - {45, 5, 26}, - {45, 5, 28}, - {45, 5, 32}, - {45, 5, 45}, - {45, 6, 10}, - {45, 6, 17}, - {45, 6, 37}, - {45, 7, 4}, - {45, 7, 5}, - {45, 7, 7}, - {45, 7, 9}, - {45, 7, 13}, - {45, 7, 25}, - {45, 7, 26}, - {45, 7, 28}, - {45, 7, 32}, - {45, 7, 45}, - {45, 9, 4}, - {45, 9, 5}, - {45, 9, 7}, - {45, 9, 9}, - {45, 9, 13}, - {45, 9, 25}, - {45, 9, 26}, - {45, 9, 28}, - {45, 9, 30}, - {45, 9, 32}, - {45, 9, 45}, - {45, 10, 15}, - {45, 10, 34}, - {45, 11, 18}, - {45, 13, 4}, - {45, 13, 5}, - {45, 13, 7}, - {45, 13, 9}, - {45, 13, 13}, - {45, 13, 25}, - {45, 13, 26}, - {45, 13, 28}, - {45, 13, 32}, - {45, 13, 45}, - {45, 19, 20}, - {45, 22, 14}, - {45, 22, 31}, - {45, 24, 16}, + {16, 32, 12}, + {16, 32, 13}, + {16, 32, 16}, + {16, 32, 32}, + {16, 34, 35}, + {16, 42, 45}, + {16, 43, 41}, + {16, 44, 14}, + {16, 45, 14}, + {17, 6, 12}, + {17, 8, 36}, + {17, 11, 45}, + {17, 14, 45}, + {17, 15, 37}, + {17, 16, 14}, + {17, 16, 39}, + {17, 17, 17}, + {17, 18, 12}, + {17, 20, 8}, + {17, 23, 16}, + {17, 24, 23}, + {17, 26, 22}, + {17, 27, 23}, + {17, 28, 26}, + {17, 28, 29}, + {17, 28, 37}, + {17, 34, 12}, + {17, 36, 16}, + {17, 38, 9}, + {17, 38, 12}, + {17, 39, 5}, + {17, 44, 15}, + {18, 5, 17}, + {18, 7, 28}, + {18, 10, 30}, + {18, 10, 36}, + {18, 10, 45}, + {18, 13, 11}, + {18, 13, 43}, + {18, 15, 38}, + {18, 17, 28}, + {18, 17, 38}, + {18, 18, 18}, + {18, 19, 9}, + {18, 21, 42}, + {18, 22, 14}, + {18, 24, 24}, + {18, 26, 17}, + {18, 27, 23}, + {18, 27, 37}, + {18, 28, 29}, + {18, 35, 19}, + {18, 36, 10}, + {18, 36, 22}, + {18, 36, 40}, + {18, 41, 22}, + {18, 41, 41}, + {18, 43, 25}, + {18, 43, 32}, + {18, 44, 29}, + {18, 44, 31}, + {19, 6, 36}, + {19, 12, 25}, + {19, 13, 30}, + {19, 13, 33}, + {19, 17, 28}, + {19, 19, 19}, + {19, 20, 21}, + {19, 22, 43}, + {19, 26, 41}, + {19, 27, 29}, + {19, 28, 22}, + {19, 28, 35}, + {19, 32, 11}, + {19, 40, 34}, + {19, 42, 20}, + {19, 42, 22}, + {19, 43, 22}, + {19, 44, 28}, + {19, 44, 33}, + {20, 4, 41}, + {20, 7, 23}, + {20, 10, 30}, + {20, 10, 43}, + {20, 11, 11}, + {20, 11, 12}, + {20, 11, 20}, + {20, 11, 25}, + {20, 11, 32}, + {20, 12, 11}, + {20, 12, 12}, + {20, 12, 20}, + {20, 12, 25}, + {20, 12, 32}, + {20, 13, 12}, + {20, 13, 32}, + {20, 16, 25}, + {20, 17, 30}, + {20, 18, 25}, + {20, 20, 11}, + {20, 20, 12}, + {20, 20, 20}, + {20, 20, 22}, + {20, 20, 25}, + {20, 20, 32}, + {20, 21, 32}, + {20, 22, 43}, + {20, 24, 41}, + {20, 25, 11}, + {20, 25, 12}, + {20, 25, 20}, + {20, 25, 25}, + {20, 25, 32}, + {20, 27, 29}, + {20, 29, 17}, + {20, 30, 31}, + {20, 32, 11}, + {20, 32, 12}, + {20, 32, 20}, + {20, 32, 25}, + {20, 32, 32}, + {20, 34, 11}, + {20, 34, 37}, + {20, 38, 28}, + {20, 38, 29}, + {20, 38, 39}, + {20, 39, 35}, + {20, 45, 43}, + {21, 7, 15}, + {21, 7, 20}, + {21, 8, 18}, + {21, 9, 6}, + {21, 9, 36}, + {21, 11, 36}, + {21, 14, 43}, + {21, 18, 35}, + {21, 20, 29}, + {21, 21, 21}, + {21, 26, 6}, + {21, 26, 21}, + {21, 33, 32}, + {21, 36, 34}, + {21, 36, 37}, + {21, 37, 38}, + {21, 40, 32}, + {21, 41, 37}, + {21, 42, 43}, + {21, 43, 42}, + {22, 4, 24}, + {22, 6, 38}, + {22, 8, 15}, + {22, 9, 9}, + {22, 9, 11}, + {22, 9, 22}, + {22, 9, 32}, + {22, 10, 37}, + {22, 11, 38}, + {22, 13, 11}, + {22, 14, 4}, + {22, 16, 26}, + {22, 16, 42}, + {22, 17, 45}, + {22, 18, 6}, + {22, 21, 36}, + {22, 22, 9}, + {22, 22, 22}, + {22, 22, 32}, + {22, 25, 39}, + {22, 27, 9}, + {22, 28, 32}, + {22, 31, 17}, + {22, 32, 9}, + {22, 32, 22}, + {22, 32, 32}, + {22, 32, 40}, + {22, 33, 44}, + {22, 36, 35}, + {22, 40, 8}, + {22, 41, 13}, + {22, 43, 5}, + {22, 45, 4}, + {23, 4, 44}, + {23, 7, 24}, + {23, 8, 28}, + {23, 10, 45}, + {23, 14, 8}, + {23, 16, 38}, + {23, 18, 23}, + {23, 19, 14}, + {23, 19, 19}, + {23, 19, 33}, + {23, 22, 14}, + {23, 23, 23}, + {23, 25, 9}, + {23, 25, 29}, + {23, 27, 31}, + {23, 28, 43}, + {23, 30, 24}, + {23, 31, 16}, + {23, 32, 41}, + {23, 35, 6}, + {23, 35, 30}, + {23, 39, 14}, + {23, 39, 21}, + {23, 40, 10}, + {23, 40, 44}, + {23, 42, 36}, + {24, 4, 37}, + {24, 5, 5}, + {24, 5, 13}, + {24, 5, 24}, + {24, 5, 26}, + {24, 5, 32}, + {24, 9, 18}, + {24, 9, 31}, + {24, 12, 4}, + {24, 13, 5}, + {24, 13, 13}, + {24, 13, 24}, + {24, 13, 26}, + {24, 13, 32}, + {24, 15, 13}, + {24, 16, 30}, + {24, 16, 44}, + {24, 17, 35}, + {24, 20, 44}, + {24, 22, 29}, + {24, 23, 29}, + {24, 23, 32}, + {24, 24, 5}, + {24, 24, 13}, + {24, 24, 24}, + {24, 24, 26}, + {24, 24, 32}, + {24, 25, 37}, + {24, 26, 5}, + {24, 26, 13}, + {24, 26, 24}, + {24, 26, 26}, + {24, 26, 32}, + {24, 28, 42}, + {24, 29, 7}, + {24, 30, 9}, + {24, 30, 16}, + {24, 31, 19}, + {24, 32, 5}, + {24, 32, 13}, + {24, 32, 24}, + {24, 32, 26}, + {24, 32, 32}, + {24, 32, 38}, + {24, 33, 15}, + {24, 34, 10}, + {24, 35, 29}, + {24, 40, 24}, + {24, 41, 14}, + {24, 43, 43}, + {24, 44, 42}, + {25, 4, 4}, + {25, 4, 5}, + {25, 4, 7}, + {25, 4, 9}, + {25, 4, 13}, + {25, 4, 25}, + {25, 4, 26}, + {25, 4, 28}, + {25, 4, 32}, + {25, 4, 45}, + {25, 5, 4}, + {25, 5, 5}, + {25, 5, 7}, + {25, 5, 9}, + {25, 5, 13}, + {25, 5, 25}, + {25, 5, 26}, + {25, 5, 28}, + {25, 5, 32}, + {25, 5, 45}, + {25, 6, 18}, + {25, 7, 4}, + {25, 7, 5}, + {25, 7, 7}, + {25, 7, 9}, + {25, 7, 13}, + {25, 7, 25}, + {25, 7, 26}, + {25, 7, 28}, + {25, 7, 32}, + {25, 7, 45}, + {25, 8, 25}, + {25, 9, 4}, + {25, 9, 5}, + {25, 9, 7}, + {25, 9, 9}, + {25, 9, 13}, + {25, 9, 25}, + {25, 9, 26}, + {25, 9, 28}, + {25, 9, 32}, + {25, 9, 45}, + {25, 11, 11}, + {25, 11, 12}, + {25, 11, 20}, + {25, 11, 25}, + {25, 11, 32}, + {25, 12, 11}, + {25, 12, 12}, + {25, 12, 16}, + {25, 12, 20}, + {25, 12, 25}, + {25, 12, 32}, + {25, 13, 4}, + {25, 13, 5}, + {25, 13, 7}, + {25, 13, 9}, + {25, 13, 13}, + {25, 13, 14}, + {25, 13, 25}, + {25, 13, 26}, + {25, 13, 28}, + {25, 13, 32}, + {25, 13, 45}, + {25, 14, 13}, + {25, 14, 14}, + {25, 14, 25}, + {25, 14, 26}, + {25, 14, 32}, + {25, 18, 26}, + {25, 18, 45}, + {25, 19, 16}, + {25, 20, 11}, + {25, 20, 12}, + {25, 20, 20}, + {25, 20, 25}, + {25, 20, 32}, + {25, 20, 38}, + {25, 22, 29}, + {25, 25, 4}, + {25, 25, 5}, + {25, 25, 7}, + {25, 25, 9}, + {25, 25, 11}, + {25, 25, 12}, + {25, 25, 13}, + {25, 25, 14}, + {25, 25, 20}, + {25, 25, 25}, + {25, 25, 26}, + {25, 25, 28}, + {25, 25, 32}, + {25, 25, 45}, + {25, 26, 4}, + {25, 26, 5}, + {25, 26, 7}, + {25, 26, 9}, + {25, 26, 13}, + {25, 26, 14}, + {25, 26, 25}, + {25, 26, 26}, + {25, 26, 28}, + {25, 26, 32}, + {25, 26, 45}, + {25, 28, 4}, + {25, 28, 5}, + {25, 28, 7}, + {25, 28, 9}, + {25, 28, 13}, + {25, 28, 25}, + {25, 28, 26}, + {25, 28, 28}, + {25, 28, 32}, + {25, 28, 45}, + {25, 30, 27}, + {25, 30, 39}, + {25, 32, 4}, + {25, 32, 5}, + {25, 32, 7}, + {25, 32, 9}, + {25, 32, 11}, + {25, 32, 12}, + {25, 32, 13}, + {25, 32, 14}, + {25, 32, 20}, + {25, 32, 25}, + {25, 32, 26}, + {25, 32, 28}, + {25, 32, 30}, + {25, 32, 32}, + {25, 32, 45}, + {25, 35, 24}, + {25, 36, 9}, + {25, 37, 38}, + {25, 37, 44}, + {25, 38, 26}, + {25, 41, 19}, + {25, 42, 17}, + {25, 45, 4}, + {25, 45, 5}, + {25, 45, 7}, + {25, 45, 9}, + {25, 45, 13}, + {25, 45, 19}, + {25, 45, 25}, + {25, 45, 26}, + {25, 45, 28}, + {25, 45, 32}, + {25, 45, 37}, + {25, 45, 45}, + {26, 4, 4}, + {26, 4, 5}, + {26, 4, 7}, + {26, 4, 9}, + {26, 4, 13}, + {26, 4, 25}, + {26, 4, 26}, + {26, 4, 28}, + {26, 4, 32}, + {26, 4, 39}, + {26, 4, 42}, + {26, 4, 45}, + {26, 5, 4}, + {26, 5, 5}, + {26, 5, 7}, + {26, 5, 9}, + {26, 5, 12}, + {26, 5, 13}, + {26, 5, 24}, + {26, 5, 25}, + {26, 5, 26}, + {26, 5, 28}, + {26, 5, 32}, + {26, 5, 45}, + {26, 7, 4}, + {26, 7, 5}, + {26, 7, 7}, + {26, 7, 9}, + {26, 7, 13}, + {26, 7, 25}, + {26, 7, 26}, + {26, 7, 28}, + {26, 7, 32}, + {26, 7, 39}, + {26, 7, 45}, + {26, 8, 25}, + {26, 8, 32}, + {26, 8, 34}, + {26, 9, 4}, + {26, 9, 5}, + {26, 9, 7}, + {26, 9, 9}, + {26, 9, 13}, + {26, 9, 21}, + {26, 9, 25}, + {26, 9, 26}, + {26, 9, 28}, + {26, 9, 32}, + {26, 9, 45}, + {26, 11, 34}, + {26, 12, 5}, + {26, 12, 12}, + {26, 12, 13}, + {26, 12, 26}, + {26, 12, 32}, + {26, 13, 4}, + {26, 13, 5}, + {26, 13, 7}, + {26, 13, 9}, + {26, 13, 12}, + {26, 13, 13}, + {26, 13, 14}, + {26, 13, 24}, + {26, 13, 25}, + {26, 13, 26}, + {26, 13, 27}, + {26, 13, 28}, + {26, 13, 32}, + {26, 13, 45}, + {26, 14, 13}, + {26, 14, 14}, + {26, 14, 25}, + {26, 14, 26}, + {26, 14, 32}, + {26, 15, 29}, + {26, 15, 31}, + {26, 19, 18}, + {26, 19, 28}, + {26, 20, 32}, + {26, 23, 41}, + {26, 24, 5}, + {26, 24, 13}, + {26, 24, 24}, + {26, 24, 26}, + {26, 24, 32}, + {26, 25, 4}, + {26, 25, 5}, + {26, 25, 7}, + {26, 25, 9}, + {26, 25, 13}, + {26, 25, 14}, + {26, 25, 25}, + {26, 25, 26}, + {26, 25, 28}, + {26, 25, 32}, + {26, 25, 45}, + {26, 26, 4}, + {26, 26, 5}, + {26, 26, 7}, + {26, 26, 9}, + {26, 26, 12}, + {26, 26, 13}, + {26, 26, 14}, + {26, 26, 24}, + {26, 26, 25}, + {26, 26, 26}, + {26, 26, 28}, + {26, 26, 32}, + {26, 26, 45}, + {26, 27, 7}, + {26, 28, 4}, + {26, 28, 5}, + {26, 28, 7}, + {26, 28, 9}, + {26, 28, 13}, + {26, 28, 25}, + {26, 28, 26}, + {26, 28, 28}, + {26, 28, 32}, + {26, 28, 45}, + {26, 29, 38}, + {26, 30, 43}, + {26, 31, 20}, + {26, 32, 4}, + {26, 32, 5}, + {26, 32, 7}, + {26, 32, 9}, + {26, 32, 12}, + {26, 32, 13}, + {26, 32, 14}, + {26, 32, 24}, + {26, 32, 25}, + {26, 32, 26}, + {26, 32, 28}, + {26, 32, 32}, + {26, 32, 37}, + {26, 32, 45}, + {26, 39, 44}, + {26, 41, 24}, + {26, 44, 5}, + {26, 45, 4}, + {26, 45, 5}, + {26, 45, 7}, + {26, 45, 9}, + {26, 45, 11}, + {26, 45, 13}, + {26, 45, 25}, + {26, 45, 26}, + {26, 45, 28}, + {26, 45, 32}, + {26, 45, 45}, + {27, 4, 6}, + {27, 4, 39}, + {27, 8, 37}, + {27, 10, 14}, + {27, 18, 15}, + {27, 27, 27}, + {27, 29, 22}, + {27, 29, 37}, + {27, 31, 39}, + {27, 33, 21}, + {27, 38, 15}, + {27, 39, 27}, + {27, 42, 29}, + {28, 4, 4}, + {28, 4, 5}, + {28, 4, 7}, + {28, 4, 9}, + {28, 4, 13}, + {28, 4, 25}, + {28, 4, 26}, + {28, 4, 28}, + {28, 4, 32}, + {28, 4, 45}, + {28, 5, 4}, + {28, 5, 5}, + {28, 5, 7}, + {28, 5, 8}, + {28, 5, 9}, + {28, 5, 13}, + {28, 5, 25}, + {28, 5, 26}, + {28, 5, 28}, + {28, 5, 32}, + {28, 5, 45}, + {28, 6, 22}, + {28, 7, 4}, + {28, 7, 5}, + {28, 7, 7}, + {28, 7, 9}, + {28, 7, 13}, + {28, 7, 19}, + {28, 7, 25}, + {28, 7, 26}, + {28, 7, 28}, + {28, 7, 32}, + {28, 7, 45}, + {28, 8, 44}, + {28, 9, 4}, + {28, 9, 5}, + {28, 9, 7}, + {28, 9, 9}, + {28, 9, 13}, + {28, 9, 25}, + {28, 9, 26}, + {28, 9, 28}, + {28, 9, 32}, + {28, 9, 45}, + {28, 10, 44}, + {28, 11, 11}, + {28, 11, 19}, + {28, 13, 4}, + {28, 13, 5}, + {28, 13, 6}, + {28, 13, 7}, + {28, 13, 9}, + {28, 13, 13}, + {28, 13, 25}, + {28, 13, 26}, + {28, 13, 28}, + {28, 13, 32}, + {28, 13, 34}, + {28, 13, 45}, + {28, 15, 32}, + {28, 16, 6}, + {28, 16, 33}, + {28, 19, 21}, + {28, 19, 38}, + {28, 21, 9}, + {28, 25, 4}, + {28, 25, 5}, + {28, 25, 7}, + {28, 25, 9}, + {28, 25, 13}, + {28, 25, 14}, + {28, 25, 25}, + {28, 25, 26}, + {28, 25, 28}, + {28, 25, 32}, + {28, 25, 45}, + {28, 26, 4}, + {28, 26, 5}, + {28, 26, 7}, + {28, 26, 9}, + {28, 26, 13}, + {28, 26, 25}, + {28, 26, 26}, + {28, 26, 28}, + {28, 26, 32}, + {28, 26, 45}, + {28, 27, 24}, + {28, 28, 4}, + {28, 28, 5}, + {28, 28, 7}, + {28, 28, 9}, + {28, 28, 13}, + {28, 28, 22}, + {28, 28, 25}, + {28, 28, 26}, + {28, 28, 28}, + {28, 28, 32}, + {28, 28, 45}, + {28, 29, 12}, + {28, 32, 4}, + {28, 32, 5}, + {28, 32, 7}, + {28, 32, 9}, + {28, 32, 13}, + {28, 32, 25}, + {28, 32, 26}, + {28, 32, 28}, + {28, 32, 32}, + {28, 32, 45}, + {28, 33, 11}, + {28, 33, 25}, + {28, 34, 7}, + {28, 35, 13}, + {28, 37, 12}, + {28, 38, 8}, + {28, 40, 40}, + {28, 41, 26}, + {28, 41, 37}, + {28, 43, 5}, + {28, 43, 31}, + {28, 44, 43}, + {28, 45, 4}, + {28, 45, 5}, + {28, 45, 7}, + {28, 45, 9}, + {28, 45, 13}, + {28, 45, 25}, + {28, 45, 26}, + {28, 45, 28}, + {28, 45, 32}, + {28, 45, 44}, + {28, 45, 45}, + {29, 4, 31}, + {29, 5, 45}, + {29, 6, 4}, + {29, 6, 18}, + {29, 8, 9}, + {29, 8, 44}, + {29, 11, 20}, + {29, 13, 9}, + {29, 14, 14}, + {29, 14, 16}, + {29, 14, 29}, + {29, 14, 32}, + {29, 15, 34}, + {29, 16, 14}, + {29, 16, 16}, + {29, 16, 29}, + {29, 17, 14}, + {29, 19, 33}, + {29, 20, 19}, + {29, 23, 15}, + {29, 23, 39}, + {29, 27, 23}, + {29, 28, 30}, + {29, 29, 14}, + {29, 29, 16}, + {29, 29, 29}, + {29, 29, 32}, + {29, 30, 33}, + {29, 32, 14}, + {29, 32, 29}, + {29, 32, 32}, + {29, 33, 43}, + {29, 35, 16}, + {29, 36, 16}, + {29, 37, 19}, + {29, 38, 9}, + {29, 38, 17}, + {29, 40, 27}, + {29, 41, 44}, + {29, 42, 9}, + {30, 6, 11}, + {30, 6, 23}, + {30, 7, 4}, + {30, 7, 22}, + {30, 13, 11}, + {30, 14, 22}, + {30, 15, 36}, + {30, 17, 17}, + {30, 20, 31}, + {30, 21, 5}, + {30, 24, 14}, + {30, 25, 16}, + {30, 25, 32}, + {30, 25, 45}, + {30, 27, 37}, + {30, 27, 38}, + {30, 29, 8}, + {30, 30, 28}, + {30, 30, 30}, + {30, 30, 43}, + {30, 31, 30}, + {30, 31, 33}, + {30, 35, 14}, + {30, 36, 7}, + {30, 36, 28}, + {30, 37, 42}, + {30, 38, 24}, + {30, 40, 20}, + {30, 40, 22}, + {30, 41, 4}, + {30, 41, 45}, + {30, 42, 8}, + {30, 43, 22}, + {31, 6, 39}, + {31, 7, 8}, + {31, 9, 40}, + {31, 11, 39}, + {31, 13, 14}, + {31, 14, 21}, + {31, 14, 34}, + {31, 16, 42}, + {31, 17, 6}, + {31, 19, 16}, + {31, 20, 25}, + {31, 21, 29}, + {31, 22, 13}, + {31, 26, 24}, + {31, 29, 43}, + {31, 31, 21}, + {31, 31, 31}, + {31, 36, 11}, + {31, 36, 17}, + {31, 36, 35}, + {31, 38, 12}, + {31, 39, 44}, + {31, 41, 42}, + {31, 45, 10}, + {32, 4, 4}, + {32, 4, 5}, + {32, 4, 7}, + {32, 4, 9}, + {32, 4, 13}, + {32, 4, 25}, + {32, 4, 26}, + {32, 4, 28}, + {32, 4, 29}, + {32, 4, 32}, + {32, 4, 45}, + {32, 5, 4}, + {32, 5, 5}, + {32, 5, 7}, + {32, 5, 9}, + {32, 5, 12}, + {32, 5, 13}, + {32, 5, 16}, + {32, 5, 24}, + {32, 5, 25}, + {32, 5, 26}, + {32, 5, 28}, + {32, 5, 32}, + {32, 5, 45}, + {32, 7, 4}, + {32, 7, 5}, + {32, 7, 7}, + {32, 7, 9}, + {32, 7, 10}, + {32, 7, 13}, + {32, 7, 25}, + {32, 7, 26}, + {32, 7, 28}, + {32, 7, 32}, + {32, 7, 45}, + {32, 8, 22}, + {32, 9, 4}, + {32, 9, 5}, + {32, 9, 7}, + {32, 9, 9}, + {32, 9, 10}, + {32, 9, 12}, + {32, 9, 13}, + {32, 9, 22}, + {32, 9, 25}, + {32, 9, 26}, + {32, 9, 28}, + {32, 9, 32}, + {32, 9, 45}, + {32, 10, 9}, + {32, 10, 10}, + {32, 10, 12}, + {32, 10, 32}, + {32, 11, 7}, + {32, 11, 11}, + {32, 11, 12}, + {32, 11, 20}, + {32, 11, 25}, + {32, 11, 32}, + {32, 12, 5}, + {32, 12, 9}, + {32, 12, 10}, + {32, 12, 11}, + {32, 12, 12}, + {32, 12, 13}, + {32, 12, 16}, + {32, 12, 20}, + {32, 12, 25}, + {32, 12, 26}, + {32, 12, 32}, + {32, 13, 4}, + {32, 13, 5}, + {32, 13, 7}, + {32, 13, 9}, + {32, 13, 12}, + {32, 13, 13}, + {32, 13, 14}, + {32, 13, 16}, + {32, 13, 24}, + {32, 13, 25}, + {32, 13, 26}, + {32, 13, 28}, + {32, 13, 32}, + {32, 13, 45}, + {32, 14, 13}, + {32, 14, 14}, + {32, 14, 25}, + {32, 14, 26}, + {32, 14, 28}, + {32, 14, 29}, + {32, 14, 32}, + {32, 16, 5}, + {32, 16, 12}, + {32, 16, 13}, + {32, 16, 16}, + {32, 16, 32}, + {32, 17, 35}, + {32, 19, 12}, + {32, 19, 14}, + {32, 20, 11}, + {32, 20, 12}, + {32, 20, 20}, + {32, 20, 25}, + {32, 20, 32}, + {32, 21, 9}, + {32, 21, 29}, + {32, 21, 30}, + {32, 22, 9}, + {32, 22, 10}, + {32, 22, 20}, + {32, 22, 22}, + {32, 22, 32}, + {32, 23, 21}, + {32, 23, 42}, + {32, 24, 5}, + {32, 24, 13}, + {32, 24, 24}, + {32, 24, 26}, + {32, 24, 30}, + {32, 24, 32}, + {32, 25, 4}, + {32, 25, 5}, + {32, 25, 7}, + {32, 25, 9}, + {32, 25, 11}, + {32, 25, 12}, + {32, 25, 13}, + {32, 25, 14}, + {32, 25, 16}, + {32, 25, 20}, + {32, 25, 25}, + {32, 25, 26}, + {32, 25, 28}, + {32, 25, 32}, + {32, 25, 45}, + {32, 26, 4}, + {32, 26, 5}, + {32, 26, 7}, + {32, 26, 9}, + {32, 26, 12}, + {32, 26, 13}, + {32, 26, 14}, + {32, 26, 24}, + {32, 26, 25}, + {32, 26, 26}, + {32, 26, 28}, + {32, 26, 32}, + {32, 26, 45}, + {32, 27, 7}, + {32, 28, 4}, + {32, 28, 5}, + {32, 28, 7}, + {32, 28, 9}, + {32, 28, 13}, + {32, 28, 25}, + {32, 28, 26}, + {32, 28, 28}, + {32, 28, 32}, + {32, 28, 38}, + {32, 28, 45}, + {32, 29, 14}, + {32, 29, 15}, + {32, 29, 29}, + {32, 29, 32}, + {32, 32, 4}, + {32, 32, 5}, + {32, 32, 7}, + {32, 32, 9}, + {32, 32, 10}, + {32, 32, 11}, + {32, 32, 12}, + {32, 32, 13}, + {32, 32, 14}, + {32, 32, 16}, + {32, 32, 20}, + {32, 32, 22}, + {32, 32, 24}, + {32, 32, 25}, + {32, 32, 26}, + {32, 32, 28}, + {32, 32, 29}, + {32, 32, 32}, + {32, 32, 33}, + {32, 32, 45}, + {32, 33, 31}, + {32, 36, 32}, + {32, 37, 22}, + {32, 38, 8}, + {32, 38, 18}, + {32, 38, 24}, + {32, 40, 23}, + {32, 40, 29}, + {32, 45, 4}, + {32, 45, 5}, + {32, 45, 7}, + {32, 45, 9}, + {32, 45, 13}, + {32, 45, 25}, + {32, 45, 26}, + {32, 45, 28}, + {32, 45, 32}, + {32, 45, 45}, + {33, 4, 32}, + {33, 4, 38}, + {33, 5, 11}, + {33, 5, 15}, + {33, 5, 30}, + {33, 9, 19}, + {33, 9, 30}, + {33, 10, 18}, + {33, 11, 39}, + {33, 13, 43}, + {33, 15, 30}, + {33, 16, 24}, + {33, 16, 31}, + {33, 17, 39}, + {33, 18, 4}, + {33, 20, 4}, + {33, 23, 8}, + {33, 23, 45}, + {33, 25, 19}, + {33, 27, 11}, + {33, 29, 30}, + {33, 36, 6}, + {33, 36, 37}, + {33, 37, 16}, + {33, 37, 29}, + {33, 40, 8}, + {33, 41, 34}, + {33, 43, 21}, + {33, 43, 44}, + {33, 43, 45}, + {33, 44, 7}, + {34, 4, 16}, + {34, 5, 15}, + {34, 8, 9}, + {34, 8, 34}, + {34, 9, 44}, + {34, 11, 32}, + {34, 16, 4}, + {34, 16, 13}, + {34, 16, 43}, + {34, 21, 14}, + {34, 21, 28}, + {34, 24, 23}, + {34, 26, 31}, + {34, 29, 12}, + {34, 29, 25}, + {34, 36, 11}, + {34, 42, 8}, + {34, 44, 30}, + {34, 45, 9}, + {34, 45, 30}, + {35, 4, 40}, + {35, 5, 6}, + {35, 7, 6}, + {35, 7, 11}, + {35, 7, 13}, + {35, 7, 15}, + {35, 7, 36}, + {35, 8, 19}, + {35, 9, 44}, + {35, 13, 24}, + {35, 14, 21}, + {35, 16, 25}, + {35, 17, 28}, + {35, 18, 30}, + {35, 18, 37}, + {35, 21, 4}, + {35, 23, 35}, + {35, 24, 14}, + {35, 27, 38}, + {35, 28, 40}, + {35, 29, 14}, + {35, 31, 19}, + {35, 31, 24}, + {35, 32, 32}, + {35, 33, 14}, + {35, 35, 20}, + {35, 38, 35}, + {35, 41, 5}, + {35, 42, 27}, + {35, 42, 35}, + {35, 42, 40}, + {35, 43, 15}, + {35, 43, 35}, + {35, 44, 10}, + {35, 44, 21}, + {35, 45, 4}, + {36, 4, 21}, + {36, 5, 13}, + {36, 5, 39}, + {36, 6, 7}, + {36, 6, 25}, + {36, 7, 4}, + {36, 8, 25}, + {36, 11, 21}, + {36, 11, 35}, + {36, 12, 23}, + {36, 13, 21}, + {36, 13, 37}, + {36, 14, 17}, + {36, 14, 22}, + {36, 18, 43}, + {36, 19, 8}, + {36, 19, 35}, + {36, 20, 6}, + {36, 22, 31}, + {36, 25, 38}, + {36, 26, 20}, + {36, 27, 36}, + {36, 28, 12}, + {36, 31, 26}, + {36, 31, 32}, + {36, 31, 35}, + {36, 34, 30}, + {36, 35, 9}, + {36, 40, 17}, + {36, 40, 34}, + {36, 43, 30}, + {37, 6, 19}, + {37, 6, 37}, + {37, 7, 7}, + {37, 10, 39}, + {37, 11, 16}, + {37, 11, 30}, + {37, 14, 16}, + {37, 14, 20}, + {37, 16, 29}, + {37, 17, 24}, + {37, 17, 42}, + {37, 18, 11}, + {37, 20, 25}, + {37, 21, 39}, + {37, 22, 27}, + {37, 23, 26}, + {37, 25, 40}, + {37, 27, 17}, + {37, 27, 38}, + {37, 29, 19}, + {37, 33, 26}, + {37, 38, 24}, + {37, 38, 25}, + {37, 39, 4}, + {37, 40, 22}, + {37, 41, 11}, + {37, 41, 23}, + {37, 42, 30}, + {37, 43, 15}, + {37, 45, 25}, + {37, 45, 29}, + {38, 4, 4}, + {38, 4, 5}, + {38, 4, 15}, + {38, 6, 26}, + {38, 10, 40}, + {38, 15, 36}, + {38, 15, 44}, + {38, 16, 9}, + {38, 16, 27}, + {38, 17, 43}, + {38, 18, 43}, + {38, 20, 6}, + {38, 30, 36}, + {38, 30, 44}, + {38, 31, 17}, + {38, 38, 26}, + {38, 38, 31}, + {38, 39, 15}, + {38, 41, 13}, + {38, 42, 4}, + {38, 42, 11}, + {38, 44, 43}, + {39, 12, 34}, + {39, 14, 6}, + {39, 16, 7}, + {39, 16, 39}, + {39, 19, 23}, + {39, 20, 23}, + {39, 26, 8}, + {39, 28, 20}, + {39, 29, 19}, + {39, 31, 30}, + {39, 33, 10}, + {39, 33, 21}, + {39, 34, 38}, + {39, 36, 43}, + {39, 37, 33}, + {39, 41, 28}, + {39, 42, 36}, + {39, 45, 17}, + {40, 5, 32}, + {40, 7, 40}, + {40, 9, 26}, + {40, 12, 29}, + {40, 15, 23}, + {40, 15, 31}, + {40, 16, 23}, + {40, 21, 26}, + {40, 26, 28}, + {40, 29, 7}, + {40, 32, 13}, + {40, 32, 28}, + {40, 33, 38}, + {40, 36, 5}, + {40, 39, 37}, + {40, 43, 8}, + {40, 43, 14}, + {40, 43, 44}, + {40, 44, 41}, + {40, 45, 18}, + {41, 5, 29}, + {41, 7, 4}, + {41, 15, 21}, + {41, 15, 24}, + {41, 18, 36}, + {41, 19, 6}, + {41, 24, 4}, + {41, 27, 9}, + {41, 29, 21}, + {41, 30, 15}, + {41, 34, 8}, + {41, 35, 28}, + {41, 37, 25}, + {41, 40, 19}, + {41, 41, 8}, + {41, 43, 18}, + {41, 43, 30}, + {41, 43, 45}, + {42, 5, 29}, + {42, 5, 36}, + {42, 11, 34}, + {42, 13, 11}, + {42, 13, 20}, + {42, 13, 22}, + {42, 16, 27}, + {42, 20, 40}, + {42, 23, 19}, + {42, 23, 40}, + {42, 25, 15}, + {42, 25, 35}, + {42, 26, 8}, + {42, 27, 44}, + {42, 28, 9}, + {42, 28, 16}, + {42, 28, 30}, + {42, 29, 18}, + {42, 30, 44}, + {42, 34, 7}, + {42, 34, 10}, + {42, 35, 30}, + {42, 36, 24}, + {42, 39, 29}, + {42, 41, 4}, + {42, 42, 32}, + {42, 45, 4}, + {43, 5, 17}, + {43, 5, 40}, + {43, 6, 34}, + {43, 9, 17}, + {43, 12, 16}, + {43, 12, 31}, + {43, 14, 28}, + {43, 14, 30}, + {43, 17, 18}, + {43, 20, 26}, + {43, 21, 12}, + {43, 26, 7}, + {43, 26, 11}, + {43, 26, 24}, + {43, 27, 6}, + {43, 29, 43}, + {43, 32, 45}, + {43, 33, 7}, + {43, 34, 25}, + {43, 44, 30}, + {43, 44, 45}, + {44, 6, 6}, + {44, 8, 4}, + {44, 9, 7}, + {44, 9, 22}, + {44, 14, 23}, + {44, 20, 44}, + {44, 23, 25}, + {44, 23, 41}, + {44, 24, 10}, + {44, 24, 33}, + {44, 27, 23}, + {44, 27, 29}, + {44, 33, 11}, + {44, 35, 30}, + {44, 37, 23}, + {44, 38, 9}, + {44, 38, 20}, + {44, 39, 20}, + {44, 41, 30}, + {44, 42, 18}, + {44, 44, 22}, + {45, 4, 4}, + {45, 4, 5}, + {45, 4, 7}, + {45, 4, 9}, + {45, 4, 13}, + {45, 4, 25}, + {45, 4, 26}, + {45, 4, 28}, + {45, 4, 32}, + {45, 4, 45}, + {45, 5, 4}, + {45, 5, 5}, + {45, 5, 7}, + {45, 5, 9}, + {45, 5, 13}, + {45, 5, 25}, + {45, 5, 26}, + {45, 5, 28}, + {45, 5, 32}, + {45, 5, 45}, + {45, 7, 4}, + {45, 7, 5}, + {45, 7, 7}, + {45, 7, 9}, + {45, 7, 13}, + {45, 7, 25}, + {45, 7, 26}, + {45, 7, 28}, + {45, 7, 32}, + {45, 7, 45}, + {45, 8, 22}, + {45, 9, 4}, + {45, 9, 5}, + {45, 9, 7}, + {45, 9, 9}, + {45, 9, 11}, + {45, 9, 13}, + {45, 9, 25}, + {45, 9, 26}, + {45, 9, 28}, + {45, 9, 32}, + {45, 9, 45}, + {45, 10, 31}, + {45, 13, 4}, + {45, 13, 5}, + {45, 13, 7}, + {45, 13, 9}, + {45, 13, 13}, + {45, 13, 25}, + {45, 13, 26}, + {45, 13, 28}, + {45, 13, 32}, + {45, 13, 45}, + {45, 18, 28}, + {45, 21, 13}, {45, 25, 4}, {45, 25, 5}, {45, 25, 7}, @@ -2775,32 +2775,32 @@

    Source Code

    {45, 28, 26}, {45, 28, 28}, {45, 28, 32}, - {45, 28, 39}, + {45, 28, 33}, {45, 28, 45}, - {45, 32, 4}, - {45, 32, 5}, - {45, 32, 7}, - {45, 32, 9}, - {45, 32, 13}, - {45, 32, 25}, - {45, 32, 26}, - {45, 32, 28}, - {45, 32, 32}, - {45, 32, 45}, - {45, 37, 28}, - {45, 40, 21}, - {45, 42, 17}, - {45, 45, 4}, - {45, 45, 5}, - {45, 45, 7}, - {45, 45, 9}, - {45, 45, 13}, - {45, 45, 25}, - {45, 45, 26}, - {45, 45, 28}, - {45, 45, 32}, - {45, 45, 34}, - {45, 45, 35}, + {45, 29, 13}, + {45, 32, 4}, + {45, 32, 5}, + {45, 32, 7}, + {45, 32, 9}, + {45, 32, 13}, + {45, 32, 25}, + {45, 32, 26}, + {45, 32, 28}, + {45, 32, 32}, + {45, 32, 45}, + {45, 37, 9}, + {45, 38, 35}, + {45, 43, 34}, + {45, 45, 4}, + {45, 45, 5}, + {45, 45, 7}, + {45, 45, 9}, + {45, 45, 13}, + {45, 45, 16}, + {45, 45, 25}, + {45, 45, 26}, + {45, 45, 28}, + {45, 45, 32}, {45, 45, 45}, {55, 16, 16}, {55, 16, 29}, diff --git a/develop/src/dbcsr_acc_device.F b/develop/src/dbcsr_acc_device.F index aaa5c702426..5c1e4bd7229 100644 --- a/develop/src/dbcsr_acc_device.F +++ b/develop/src/dbcsr_acc_device.F @@ -14,6 +14,8 @@ MODULE dbcsr_acc_device #endif #include "base/dbcsr_base_uses.f90" +!$ USE OMP_LIB, ONLY: omp_get_level + IMPLICIT NONE PUBLIC :: dbcsr_acc_get_ndevices, dbcsr_acc_set_active_device, dbcsr_acc_clear_errors @@ -84,11 +86,16 @@ SUBROUTINE dbcsr_acc_set_active_device(device_id) #if defined (__DBCSR_ACC) INTEGER :: istat -!$OMP PARALLEL DEFAULT(NONE) PRIVATE(istat) SHARED(device_id) - istat = acc_set_active_device_cu(device_id) +!$ IF (0 == omp_get_level()) THEN + istat = 0 +!$OMP PARALLEL DEFAULT(NONE) SHARED(device_id) REDUCTION(MAX:istat) + istat = acc_set_active_device_cu(device_id) +!$OMP END PARALLEL +!$ ELSE + istat = acc_set_active_device_cu(device_id) +!$ END IF IF (istat /= 0) & DBCSR_ABORT("dbcsr_acc_set_active_device: failed") -!$OMP END PARALLEL #else MARK_USED(device_id) diff --git a/develop/src/dbcsr_allocate_wrap.F b/develop/src/dbcsr_allocate_wrap.F index 7062a06af16..332ea33ed5c 100644 --- a/develop/src/dbcsr_allocate_wrap.F +++ b/develop/src/dbcsr_allocate_wrap.F @@ -21,7 +21,7 @@ MODULE dbcsr_allocate_wrap # 17 "/__w/dbcsr/dbcsr/src/tensors/dbcsr_allocate_wrap.F" 2 # 18 "/__w/dbcsr/dbcsr/src/tensors/dbcsr_allocate_wrap.F" - USE dbcsr_kinds, ONLY: real_8, real_4 + USE dbcsr_kinds, ONLY: real_4, real_8 #include "base/dbcsr_base_uses.f90" IMPLICIT NONE diff --git a/develop/src/dbcsr_array_sort.F b/develop/src/dbcsr_array_sort.F index dbc37d64d66..96aa6c40a47 100644 --- a/develop/src/dbcsr_array_sort.F +++ b/develop/src/dbcsr_array_sort.F @@ -22,7 +22,7 @@ MODULE dbcsr_array_sort !! DBCSR: !! Please use the interface defined in dbcsr_toollib.F for calling sort(). - USE dbcsr_kinds, ONLY: real_8, int_8, real_4, int_4 + USE dbcsr_kinds, ONLY: real_4, real_8, int_8, int_4 IMPLICIT NONE PRIVATE diff --git a/develop/src/dbcsr_dict.F b/develop/src/dbcsr_dict.F index 326b77bacc7..ea2826aa80f 100644 --- a/develop/src/dbcsr_dict.F +++ b/develop/src/dbcsr_dict.F @@ -20,7 +20,7 @@ MODULE dbcsr_dict !! size will be allocated and the items are then copied over. !! This ensures that the dictionary will perform operations in O(1). - USE dbcsr_kinds, ONLY: default_string_length, int_8, int_4 + USE dbcsr_kinds, ONLY: int_4, int_8, default_string_length USE dbcsr_timings_base_type, ONLY: call_stat_type #include "base/dbcsr_base_uses.f90" IMPLICIT NONE diff --git a/develop/src/dbcsr_list.F b/develop/src/dbcsr_list.F index 2cb7290fa15..b042cb1ab54 100644 --- a/develop/src/dbcsr_list.F +++ b/develop/src/dbcsr_list.F @@ -23,7 +23,7 @@ MODULE dbcsr_list !! dependencies (timer_env_type contains list_routinestat_type and list_callstackentry_type, and !! list_timerenv_type contains timer_env_type) - USE dbcsr_timings_base_type, ONLY: routine_stat_type, callstack_entry_type, routine_report_type + USE dbcsr_timings_base_type, ONLY: routine_stat_type, routine_report_type, callstack_entry_type USE dbcsr_list_callstackentry, ONLY: list_callstackentry_type, list_callstackentry_init, list_callstackentry_push,& # 22 "/__w/dbcsr/dbcsr/src/core/dbcsr_list.F" & list_callstackentry_pop, list_callstackentry_peek, list_callstackentry_insert, list_callstackentry_set,& diff --git a/develop/src/dbcsr_list_routinereport.F b/develop/src/dbcsr_list_routinereport.F index 5683e8761d9..b459f2caa2e 100644 --- a/develop/src/dbcsr_list_routinereport.F +++ b/develop/src/dbcsr_list_routinereport.F @@ -21,7 +21,7 @@ !! Have look at list_push(), list_pop() and list_peek(). MODULE dbcsr_list_routinereport - USE dbcsr_timings_base_type, ONLY: routine_stat_type, routine_report_type, callstack_entry_type + USE dbcsr_timings_base_type, ONLY: callstack_entry_type, routine_stat_type, routine_report_type # 21 "/__w/dbcsr/dbcsr/src/core/dbcsr_list_routinereport.F" diff --git a/develop/src/dbcsr_list_routinestat.F b/develop/src/dbcsr_list_routinestat.F index 7d461133e55..8dd496d7465 100644 --- a/develop/src/dbcsr_list_routinestat.F +++ b/develop/src/dbcsr_list_routinestat.F @@ -21,7 +21,7 @@ !! Have look at list_push(), list_pop() and list_peek(). MODULE dbcsr_list_routinestat - USE dbcsr_timings_base_type, ONLY: routine_report_type, routine_stat_type, callstack_entry_type + USE dbcsr_timings_base_type, ONLY: routine_report_type, callstack_entry_type, routine_stat_type # 21 "/__w/dbcsr/dbcsr/src/core/dbcsr_list_routinestat.F" diff --git a/develop/src/dbcsr_mpiwrap.F b/develop/src/dbcsr_mpiwrap.F index 88903f61f82..a701ddfe1fa 100644 --- a/develop/src/dbcsr_mpiwrap.F +++ b/develop/src/dbcsr_mpiwrap.F @@ -5519,13 +5519,7 @@ SUBROUTINE mp_rget_iv(base, source, win, win_data, myproc, disp, request, & MARK_USED(myproc) #endif IF (do_local_copy) THEN -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(base,win_data,disp_aint,len) -#endif base(:) = win_data(disp_aint + 1:disp_aint + len) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif request = mp_request_null ierr = 0 ELSE @@ -8262,13 +8256,7 @@ SUBROUTINE mp_rget_lv(base, source, win, win_data, myproc, disp, request, & MARK_USED(myproc) #endif IF (do_local_copy) THEN -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(base,win_data,disp_aint,len) -#endif base(:) = win_data(disp_aint + 1:disp_aint + len) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif request = mp_request_null ierr = 0 ELSE @@ -11005,13 +10993,7 @@ SUBROUTINE mp_rget_dv(base, source, win, win_data, myproc, disp, request, & MARK_USED(myproc) #endif IF (do_local_copy) THEN -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(base,win_data,disp_aint,len) -#endif base(:) = win_data(disp_aint + 1:disp_aint + len) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif request = mp_request_null ierr = 0 ELSE @@ -13748,13 +13730,7 @@ SUBROUTINE mp_rget_rv(base, source, win, win_data, myproc, disp, request, & MARK_USED(myproc) #endif IF (do_local_copy) THEN -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(base,win_data,disp_aint,len) -#endif base(:) = win_data(disp_aint + 1:disp_aint + len) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif request = mp_request_null ierr = 0 ELSE @@ -16491,13 +16467,7 @@ SUBROUTINE mp_rget_zv(base, source, win, win_data, myproc, disp, request, & MARK_USED(myproc) #endif IF (do_local_copy) THEN -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(base,win_data,disp_aint,len) -#endif base(:) = win_data(disp_aint + 1:disp_aint + len) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif request = mp_request_null ierr = 0 ELSE @@ -19234,13 +19204,7 @@ SUBROUTINE mp_rget_cv(base, source, win, win_data, myproc, disp, request, & MARK_USED(myproc) #endif IF (do_local_copy) THEN -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(base,win_data,disp_aint,len) -#endif base(:) = win_data(disp_aint + 1:disp_aint + len) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif request = mp_request_null ierr = 0 ELSE @@ -19615,6 +19579,6 @@ SUBROUTINE mp_free_mem_c (DATA, stat) END SUBROUTINE mp_free_mem_c #endif -# 5567 "/__w/dbcsr/dbcsr/src/mpi/dbcsr_mpiwrap.F" +# 5561 "/__w/dbcsr/dbcsr/src/mpi/dbcsr_mpiwrap.F" END MODULE dbcsr_mpiwrap diff --git a/develop/src/dbcsr_operations.F b/develop/src/dbcsr_operations.F index 952d0974bc5..88da8c978f9 100644 --- a/develop/src/dbcsr_operations.F +++ b/develop/src/dbcsr_operations.F @@ -95,7 +95,7 @@ MODULE dbcsr_operations mp_sum #include "base/dbcsr_base_uses.f90" -!$ USE OMP_LIB, ONLY: omp_get_max_threads, omp_get_thread_num, omp_get_num_threads +!$ USE OMP_LIB, ONLY: omp_get_thread_num, omp_get_num_threads IMPLICIT NONE @@ -389,7 +389,6 @@ SUBROUTINE dbcsr_zero(matrix_a) CALL timeset(routineN, handle) SELECT CASE (dbcsr_get_data_type(matrix_a)) -#if defined(__DBCSR_DISABLE_WORKSHARE) CASE (dbcsr_type_complex_4) matrix_a%data_area%d%c_sp = (0.0, 0.0) CASE (dbcsr_type_complex_8) @@ -398,24 +397,6 @@ SUBROUTINE dbcsr_zero(matrix_a) matrix_a%data_area%d%r_sp = 0.0 CASE (dbcsr_type_real_8) matrix_a%data_area%d%r_dp = 0.0_dp -#else - CASE (dbcsr_type_complex_4) -!$OMP PARALLEL WORKSHARE DEFAULT(NONE), SHARED(matrix_a) - matrix_a%data_area%d%c_sp = (0.0, 0.0) -!$OMP END PARALLEL WORKSHARE - CASE (dbcsr_type_complex_8) -!$OMP PARALLEL WORKSHARE DEFAULT(NONE), SHARED(matrix_a) - matrix_a%data_area%d%c_dp = (0.0_dp, 0.0_dp) -!$OMP END PARALLEL WORKSHARE - CASE (dbcsr_type_real_4) -!$OMP PARALLEL WORKSHARE DEFAULT(NONE), SHARED(matrix_a) - matrix_a%data_area%d%r_sp = 0.0 -!$OMP END PARALLEL WORKSHARE - CASE (dbcsr_type_real_8) -!$OMP PARALLEL WORKSHARE DEFAULT(NONE), SHARED(matrix_a) - matrix_a%data_area%d%r_dp = 0.0_dp -!$OMP END PARALLEL WORKSHARE -#endif END SELECT CALL timestop(handle) END SUBROUTINE dbcsr_zero @@ -2713,8 +2694,8 @@ END SUBROUTINE dbcsr_dot_sd # 11 "/__w/dbcsr/dbcsr/src/ops/../data/dbcsr.fypp" # 169 "/__w/dbcsr/dbcsr/src/ops/../data/dbcsr.fypp" -# 2638 "/__w/dbcsr/dbcsr/src/ops/dbcsr_operations.F" 2 -# 2639 "/__w/dbcsr/dbcsr/src/ops/dbcsr_operations.F" +# 2619 "/__w/dbcsr/dbcsr/src/ops/dbcsr_operations.F" 2 +# 2620 "/__w/dbcsr/dbcsr/src/ops/dbcsr_operations.F" SUBROUTINE dbcsr_trace_d (matrix_a, trace) !! traces a DBCSR matrix @@ -3207,7 +3188,7 @@ SUBROUTINE dbcsr_add_anytype_d (matrix_a, matrix_b, iter, iw, do_scale, & END IF END SUBROUTINE dbcsr_add_anytype_d -# 2639 "/__w/dbcsr/dbcsr/src/ops/dbcsr_operations.F" +# 2620 "/__w/dbcsr/dbcsr/src/ops/dbcsr_operations.F" SUBROUTINE dbcsr_trace_s (matrix_a, trace) !! traces a DBCSR matrix @@ -3700,7 +3681,7 @@ SUBROUTINE dbcsr_add_anytype_s (matrix_a, matrix_b, iter, iw, do_scale, & END IF END SUBROUTINE dbcsr_add_anytype_s -# 2639 "/__w/dbcsr/dbcsr/src/ops/dbcsr_operations.F" +# 2620 "/__w/dbcsr/dbcsr/src/ops/dbcsr_operations.F" SUBROUTINE dbcsr_trace_z (matrix_a, trace) !! traces a DBCSR matrix @@ -4193,7 +4174,7 @@ SUBROUTINE dbcsr_add_anytype_z (matrix_a, matrix_b, iter, iw, do_scale, & END IF END SUBROUTINE dbcsr_add_anytype_z -# 2639 "/__w/dbcsr/dbcsr/src/ops/dbcsr_operations.F" +# 2620 "/__w/dbcsr/dbcsr/src/ops/dbcsr_operations.F" SUBROUTINE dbcsr_trace_c (matrix_a, trace) !! traces a DBCSR matrix @@ -4686,6 +4667,6 @@ SUBROUTINE dbcsr_add_anytype_c (matrix_a, matrix_b, iter, iw, do_scale, & END IF END SUBROUTINE dbcsr_add_anytype_c -# 3132 "/__w/dbcsr/dbcsr/src/ops/dbcsr_operations.F" +# 3113 "/__w/dbcsr/dbcsr/src/ops/dbcsr_operations.F" END MODULE dbcsr_operations diff --git a/develop/src/dbcsr_ptr_util.F b/develop/src/dbcsr_ptr_util.F index 59c570b6127..dc67566f634 100644 --- a/develop/src/dbcsr_ptr_util.F +++ b/develop/src/dbcsr_ptr_util.F @@ -29,8 +29,6 @@ MODULE dbcsr_ptr_util mp_deallocate #include "base/dbcsr_base_uses.f90" -!$ USE OMP_LIB, ONLY: omp_get_max_threads, omp_get_thread_num, omp_get_num_threads - IMPLICIT NONE PRIVATE @@ -140,8 +138,8 @@ END FUNCTION pointer_view_a # 11 "/__w/dbcsr/dbcsr/src/data/dbcsr.fypp" # 169 "/__w/dbcsr/dbcsr/src/data/dbcsr.fypp" -# 137 "/__w/dbcsr/dbcsr/src/data/dbcsr_ptr_util.F" 2 -# 138 "/__w/dbcsr/dbcsr/src/data/dbcsr_ptr_util.F" +# 135 "/__w/dbcsr/dbcsr/src/data/dbcsr_ptr_util.F" 2 +# 136 "/__w/dbcsr/dbcsr/src/data/dbcsr_ptr_util.F" FUNCTION pointer_view_d (original, lb, ub) RESULT(view) !! Returns a pointer with different bounds. @@ -301,15 +299,9 @@ SUBROUTINE mem_copy_d (dst, src, n) !! length of copy REAL(kind=real_8), DIMENSION(1:n), INTENT(OUT) :: dst !! destination memory - REAL(kind=real_8), DIMENSION(1:n), INTENT(IN) :: src + REAL(kind=real_8), DIMENSION(1:n), INTENT(IN) :: src !! source memory -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(dst,src) -#endif dst(:) = src(:) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif END SUBROUTINE mem_copy_d SUBROUTINE mem_zero_d (dst, n) @@ -319,13 +311,7 @@ SUBROUTINE mem_zero_d (dst, n) !! length of elements to zero REAL(kind=real_8), DIMENSION(1:n), INTENT(OUT) :: dst !! destination memory -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(dst) -#endif dst(:) = 0.0_real_8 -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif END SUBROUTINE mem_zero_d SUBROUTINE mem_alloc_d (mem, n, mem_type) @@ -452,7 +438,7 @@ SUBROUTINE pointer_d_rank_remap2(r2p, d1, d2, r1p) r2p(1:d1, 1:d2) => r1p(1:d1*d2) END SUBROUTINE pointer_d_rank_remap2 -# 138 "/__w/dbcsr/dbcsr/src/data/dbcsr_ptr_util.F" +# 136 "/__w/dbcsr/dbcsr/src/data/dbcsr_ptr_util.F" FUNCTION pointer_view_s (original, lb, ub) RESULT(view) !! Returns a pointer with different bounds. @@ -612,15 +598,9 @@ SUBROUTINE mem_copy_s (dst, src, n) !! length of copy REAL(kind=real_4), DIMENSION(1:n), INTENT(OUT) :: dst !! destination memory - REAL(kind=real_4), DIMENSION(1:n), INTENT(IN) :: src + REAL(kind=real_4), DIMENSION(1:n), INTENT(IN) :: src !! source memory -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(dst,src) -#endif dst(:) = src(:) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif END SUBROUTINE mem_copy_s SUBROUTINE mem_zero_s (dst, n) @@ -630,13 +610,7 @@ SUBROUTINE mem_zero_s (dst, n) !! length of elements to zero REAL(kind=real_4), DIMENSION(1:n), INTENT(OUT) :: dst !! destination memory -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(dst) -#endif dst(:) = 0.0_real_4 -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif END SUBROUTINE mem_zero_s SUBROUTINE mem_alloc_s (mem, n, mem_type) @@ -763,7 +737,7 @@ SUBROUTINE pointer_s_rank_remap2(r2p, d1, d2, r1p) r2p(1:d1, 1:d2) => r1p(1:d1*d2) END SUBROUTINE pointer_s_rank_remap2 -# 138 "/__w/dbcsr/dbcsr/src/data/dbcsr_ptr_util.F" +# 136 "/__w/dbcsr/dbcsr/src/data/dbcsr_ptr_util.F" FUNCTION pointer_view_z (original, lb, ub) RESULT(view) !! Returns a pointer with different bounds. @@ -923,15 +897,9 @@ SUBROUTINE mem_copy_z (dst, src, n) !! length of copy COMPLEX(kind=real_8), DIMENSION(1:n), INTENT(OUT) :: dst !! destination memory - COMPLEX(kind=real_8), DIMENSION(1:n), INTENT(IN) :: src + COMPLEX(kind=real_8), DIMENSION(1:n), INTENT(IN) :: src !! source memory -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(dst,src) -#endif dst(:) = src(:) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif END SUBROUTINE mem_copy_z SUBROUTINE mem_zero_z (dst, n) @@ -941,13 +909,7 @@ SUBROUTINE mem_zero_z (dst, n) !! length of elements to zero COMPLEX(kind=real_8), DIMENSION(1:n), INTENT(OUT) :: dst !! destination memory -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(dst) -#endif dst(:) = CMPLX(0.0, 0.0, real_8) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif END SUBROUTINE mem_zero_z SUBROUTINE mem_alloc_z (mem, n, mem_type) @@ -1074,7 +1036,7 @@ SUBROUTINE pointer_z_rank_remap2(r2p, d1, d2, r1p) r2p(1:d1, 1:d2) => r1p(1:d1*d2) END SUBROUTINE pointer_z_rank_remap2 -# 138 "/__w/dbcsr/dbcsr/src/data/dbcsr_ptr_util.F" +# 136 "/__w/dbcsr/dbcsr/src/data/dbcsr_ptr_util.F" FUNCTION pointer_view_c (original, lb, ub) RESULT(view) !! Returns a pointer with different bounds. @@ -1234,15 +1196,9 @@ SUBROUTINE mem_copy_c (dst, src, n) !! length of copy COMPLEX(kind=real_4), DIMENSION(1:n), INTENT(OUT) :: dst !! destination memory - COMPLEX(kind=real_4), DIMENSION(1:n), INTENT(IN) :: src + COMPLEX(kind=real_4), DIMENSION(1:n), INTENT(IN) :: src !! source memory -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(dst,src) -#endif dst(:) = src(:) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif END SUBROUTINE mem_copy_c SUBROUTINE mem_zero_c (dst, n) @@ -1252,13 +1208,7 @@ SUBROUTINE mem_zero_c (dst, n) !! length of elements to zero COMPLEX(kind=real_4), DIMENSION(1:n), INTENT(OUT) :: dst !! destination memory -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(dst) -#endif dst(:) = CMPLX(0.0, 0.0, real_4) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif END SUBROUTINE mem_zero_c SUBROUTINE mem_alloc_c (mem, n, mem_type) @@ -1385,7 +1335,7 @@ SUBROUTINE pointer_c_rank_remap2(r2p, d1, d2, r1p) r2p(1:d1, 1:d2) => r1p(1:d1*d2) END SUBROUTINE pointer_c_rank_remap2 -# 138 "/__w/dbcsr/dbcsr/src/data/dbcsr_ptr_util.F" +# 136 "/__w/dbcsr/dbcsr/src/data/dbcsr_ptr_util.F" FUNCTION pointer_view_i (original, lb, ub) RESULT(view) !! Returns a pointer with different bounds. @@ -1545,15 +1495,9 @@ SUBROUTINE mem_copy_i (dst, src, n) !! length of copy INTEGER(kind=int_4), DIMENSION(1:n), INTENT(OUT) :: dst !! destination memory - INTEGER(kind=int_4), DIMENSION(1:n), INTENT(IN) :: src + INTEGER(kind=int_4), DIMENSION(1:n), INTENT(IN) :: src !! source memory -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(dst,src) -#endif dst(:) = src(:) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif END SUBROUTINE mem_copy_i SUBROUTINE mem_zero_i (dst, n) @@ -1563,13 +1507,7 @@ SUBROUTINE mem_zero_i (dst, n) !! length of elements to zero INTEGER(kind=int_4), DIMENSION(1:n), INTENT(OUT) :: dst !! destination memory -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(dst) -#endif dst(:) = 0 -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif END SUBROUTINE mem_zero_i SUBROUTINE mem_alloc_i (mem, n, mem_type) @@ -1696,7 +1634,7 @@ SUBROUTINE pointer_i_rank_remap2(r2p, d1, d2, r1p) r2p(1:d1, 1:d2) => r1p(1:d1*d2) END SUBROUTINE pointer_i_rank_remap2 -# 138 "/__w/dbcsr/dbcsr/src/data/dbcsr_ptr_util.F" +# 136 "/__w/dbcsr/dbcsr/src/data/dbcsr_ptr_util.F" FUNCTION pointer_view_l (original, lb, ub) RESULT(view) !! Returns a pointer with different bounds. @@ -1856,15 +1794,9 @@ SUBROUTINE mem_copy_l (dst, src, n) !! length of copy INTEGER(kind=int_8), DIMENSION(1:n), INTENT(OUT) :: dst !! destination memory - INTEGER(kind=int_8), DIMENSION(1:n), INTENT(IN) :: src + INTEGER(kind=int_8), DIMENSION(1:n), INTENT(IN) :: src !! source memory -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(dst,src) -#endif dst(:) = src(:) -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif END SUBROUTINE mem_copy_l SUBROUTINE mem_zero_l (dst, n) @@ -1874,13 +1806,7 @@ SUBROUTINE mem_zero_l (dst, n) !! length of elements to zero INTEGER(kind=int_8), DIMENSION(1:n), INTENT(OUT) :: dst !! destination memory -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP PARALLEL WORKSHARE DEFAULT(none) SHARED(dst) -#endif dst(:) = 0 -#if !defined(__DBCSR_DISABLE_WORKSHARE) -!$OMP END PARALLEL WORKSHARE -#endif END SUBROUTINE mem_zero_l SUBROUTINE mem_alloc_l (mem, n, mem_type) @@ -2007,6 +1933,6 @@ SUBROUTINE pointer_l_rank_remap2(r2p, d1, d2, r1p) r2p(1:d1, 1:d2) => r1p(1:d1*d2) END SUBROUTINE pointer_l_rank_remap2 -# 449 "/__w/dbcsr/dbcsr/src/data/dbcsr_ptr_util.F" +# 435 "/__w/dbcsr/dbcsr/src/data/dbcsr_ptr_util.F" END MODULE dbcsr_ptr_util diff --git a/develop/src/dbcsr_tensor.F b/develop/src/dbcsr_tensor.F index 28b1e15322d..0b69f944e31 100644 --- a/develop/src/dbcsr_tensor.F +++ b/develop/src/dbcsr_tensor.F @@ -32,7 +32,7 @@ MODULE dbcsr_tensor dbcsr_type, dbcsr_iterator_type, dbcsr_iterator_blocks_left, & dbcsr_iterator_next_block, dbcsr_iterator_start, dbcsr_iterator_stop, & dbcsr_transpose, dbcsr_no_transpose, dbcsr_scalar, dbcsr_put_block, & - dbcsr_type_complex_8, dbcsr_type_real_8, dbcsr_type_real_4, dbcsr_type_complex_4, dbcsr_clear, & + dbcsr_type_complex_8, dbcsr_type_real_4, dbcsr_type_real_8, dbcsr_type_complex_4, dbcsr_clear, & dbcsr_release, dbcsr_desymmetrize, dbcsr_has_symmetry USE dbcsr_tas_types, ONLY: & dbcsr_tas_split_info @@ -58,7 +58,7 @@ MODULE dbcsr_tensor dbcsr_t_max_nblks_local, dbcsr_t_default_distvec, dbcsr_t_contraction_storage, dbcsr_t_nblks_total, & dbcsr_t_distribution_new, dbcsr_t_copy_contraction_storage, dbcsr_t_pgrid_destroy USE dbcsr_kinds, ONLY: & - real_4, real_8, default_string_length, int_8, dp + real_8, real_4, default_string_length, int_8, dp USE dbcsr_mpiwrap, ONLY: & mp_environ, mp_max, mp_comm_free, mp_cart_create, mp_sync, mp_comm_type USE dbcsr_toollib, ONLY: & diff --git a/develop/src/dbcsr_tensor_block.F b/develop/src/dbcsr_tensor_block.F index fd05ed2f720..98d15871d55 100644 --- a/develop/src/dbcsr_tensor_block.F +++ b/develop/src/dbcsr_tensor_block.F @@ -22,7 +22,7 @@ MODULE dbcsr_tensor_block USE dbcsr_allocate_wrap, ONLY: & allocate_any USE dbcsr_api, ONLY: & - dbcsr_type_real_8, dbcsr_type_real_4, dbcsr_type_complex_8, dbcsr_type_complex_4, dbcsr_iterator_type, & + dbcsr_type_complex_4, dbcsr_type_real_8, dbcsr_type_real_4, dbcsr_type_complex_8, dbcsr_iterator_type, & dbcsr_iterator_next_block, dbcsr_iterator_start, dbcsr_iterator_stop, dbcsr_type, & dbcsr_reserve_blocks, dbcsr_scalar_type, dbcsr_finalize, dbcsr_get_num_blocks, & dbcsr_type_no_symmetry, dbcsr_desymmetrize, dbcsr_release, dbcsr_has_symmetry diff --git a/develop/src/dbcsr_tensor_reshape.F b/develop/src/dbcsr_tensor_reshape.F index b64af5edb7c..ccfbf5246a7 100644 --- a/develop/src/dbcsr_tensor_reshape.F +++ b/develop/src/dbcsr_tensor_reshape.F @@ -33,8 +33,8 @@ MODULE dbcsr_tensor_reshape dbcsr_t_get_stored_coordinates, & dbcsr_t_clear USE dbcsr_kinds, ONLY: default_string_length - USE dbcsr_kinds, ONLY: real_8, real_4 - USE dbcsr_api, ONLY: dbcsr_type_complex_8, dbcsr_type_real_8, dbcsr_type_complex_4, dbcsr_type_real_4 + USE dbcsr_kinds, ONLY: real_4, real_8 + USE dbcsr_api, ONLY: dbcsr_type_real_4, dbcsr_type_complex_4, dbcsr_type_complex_8, dbcsr_type_real_8 USE dbcsr_mpiwrap, ONLY: mp_alltoall, & mp_environ, & mp_irecv, & diff --git a/develop/src/dbcsr_tensor_split.F b/develop/src/dbcsr_tensor_split.F index f3b5698a838..07dbeee32b8 100644 --- a/develop/src/dbcsr_tensor_split.F +++ b/develop/src/dbcsr_tensor_split.F @@ -49,8 +49,8 @@ MODULE dbcsr_tensor_split ndims_matrix_column, & dbcsr_t_filter, & dbcsr_t_copy_contraction_storage - USE dbcsr_api, ONLY: dbcsr_type_real_4, dbcsr_type_complex_8, dbcsr_type_complex_4, dbcsr_type_real_8 - USE dbcsr_kinds, ONLY: real_4, real_8, dp + USE dbcsr_api, ONLY: dbcsr_type_complex_8, dbcsr_type_real_8, dbcsr_type_real_4, dbcsr_type_complex_4 + USE dbcsr_kinds, ONLY: real_8, real_4, dp #include "base/dbcsr_base_uses.f90" IMPLICIT NONE diff --git a/develop/src/dbcsr_tensor_test.F b/develop/src/dbcsr_tensor_test.F index ee49d10fbb0..f3e3de1d1b4 100644 --- a/develop/src/dbcsr_tensor_test.F +++ b/develop/src/dbcsr_tensor_test.F @@ -19,7 +19,7 @@ MODULE dbcsr_tensor_test # 15 "/__w/dbcsr/dbcsr/src/tensors/dbcsr_tensor_test.F" # 16 "/__w/dbcsr/dbcsr/src/tensors/dbcsr_tensor_test.F" - USE dbcsr_api, ONLY: dbcsr_type_real_4, dbcsr_type_complex_4, dbcsr_type_complex_8, dbcsr_type_real_8 + USE dbcsr_api, ONLY: dbcsr_type_complex_8, dbcsr_type_real_4, dbcsr_type_real_8, dbcsr_type_complex_4 USE dbcsr_tensor, ONLY: & dbcsr_t_copy, dbcsr_t_get_block, dbcsr_t_iterator_type, dbcsr_t_iterator_blocks_left, & dbcsr_t_iterator_next_block, dbcsr_t_iterator_start, dbcsr_t_iterator_stop, & diff --git a/develop/src/dbcsr_tensor_types.F b/develop/src/dbcsr_tensor_types.F index 7932fcdf5ee..e5909ebbf6f 100644 --- a/develop/src/dbcsr_tensor_types.F +++ b/develop/src/dbcsr_tensor_types.F @@ -25,7 +25,7 @@ MODULE dbcsr_tensor_types sizes_of_arrays, sum_of_arrays, array_sublist, get_arrays, get_ith_array, array_eq_i USE dbcsr_api, ONLY: & dbcsr_distribution_get, dbcsr_distribution_type, dbcsr_get_info, dbcsr_type, & - dbcsr_type_real_4, dbcsr_type_complex_8, dbcsr_type_real_8, dbcsr_type_complex_4 + dbcsr_type_real_8, dbcsr_type_complex_4, dbcsr_type_complex_8, dbcsr_type_real_4 USE dbcsr_kinds, ONLY: & real_8, real_4, & default_string_length diff --git a/develop/src/libsmm_acc_timer_multiply.cpp b/develop/src/libsmm_acc_timer_multiply.cpp index b4995848ed4..6f354026916 100644 --- a/develop/src/libsmm_acc_timer_multiply.cpp +++ b/develop/src/libsmm_acc_timer_multiply.cpp @@ -1704,1006 +1704,1006 @@ int main(int argc, char* argv[]) { } else if (argv[1] == std::string("predicted")) { libsmm_acc_triplets = { - { 4, 4, 44}, - { 4, 5, 10}, - { 4, 9, 22}, - { 4, 11, 28}, - { 4, 14, 30}, - { 4, 14, 41}, - { 4, 15, 37}, - { 4, 16, 7}, - { 4, 16, 18}, - { 4, 16, 45}, - { 4, 17, 34}, - { 4, 19, 35}, - { 4, 20, 21}, - { 4, 21, 43}, - { 4, 22, 5}, - { 4, 22, 40}, - { 4, 23, 30}, - { 4, 29, 34}, - { 4, 30, 45}, - { 4, 33, 27}, - { 4, 34, 6}, - { 4, 36, 9}, - { 4, 39, 20}, - { 4, 40, 33}, - { 4, 40, 39}, - { 4, 41, 20}, - { 4, 41, 21}, - { 4, 43, 13}, - { 4, 43, 16}, - { 4, 44, 36}, - { 5, 5, 41}, - { 5, 8, 22}, - { 5, 11, 34}, - { 5, 14, 4}, - { 5, 14, 44}, - { 5, 15, 11}, - { 5, 15, 23}, - { 5, 15, 36}, - { 5, 16, 6}, - { 5, 17, 20}, - { 5, 18, 5}, - { 5, 18, 6}, - { 5, 19, 35}, - { 5, 21, 13}, - { 5, 22, 10}, - { 5, 22, 26}, - { 5, 24, 19}, - { 5, 26, 18}, - { 5, 27, 40}, - { 5, 32, 35}, - { 5, 35, 43}, - { 5, 36, 18}, - { 5, 37, 27}, - { 5, 38, 21}, - { 5, 39, 30}, - { 5, 40, 8}, - { 5, 40, 22}, - { 5, 43, 17}, - { 5, 44, 35}, - { 5, 45, 33}, - { 5, 45, 34}, - { 6, 4, 45}, - { 6, 6, 21}, - { 6, 13, 13}, - { 6, 15, 6}, - { 6, 15, 15}, - { 6, 17, 5}, - { 6, 19, 22}, - { 6, 20, 7}, - { 6, 20, 26}, - { 6, 22, 24}, - { 6, 22, 42}, - { 6, 24, 10}, - { 6, 24, 31}, - { 6, 26, 11}, - { 6, 26, 30}, - { 6, 27, 5}, - { 6, 27, 34}, - { 6, 31, 41}, - { 6, 34, 42}, - { 6, 35, 25}, - { 6, 35, 32}, - { 6, 37, 5}, - { 6, 38, 44}, - { 6, 39, 24}, - { 6, 40, 40}, - { 6, 42, 29}, - { 6, 43, 9}, - { 6, 43, 40}, - { 6, 45, 28}, - { 7, 5, 24}, - { 7, 8, 37}, - { 7, 10, 27}, - { 7, 14, 25}, - { 7, 14, 41}, - { 7, 16, 33}, - { 7, 17, 27}, - { 7, 18, 18}, - { 7, 19, 24}, - { 7, 21, 23}, - { 7, 26, 36}, - { 7, 28, 27}, - { 7, 29, 22}, - { 7, 29, 34}, - { 7, 31, 32}, - { 7, 31, 43}, - { 7, 32, 17}, - { 7, 33, 29}, - { 7, 36, 38}, - { 7, 37, 21}, - { 7, 40, 24}, - { 7, 42, 33}, - { 7, 43, 20}, - { 7, 43, 26}, - { 7, 43, 36}, - { 8, 7, 17}, - { 8, 7, 24}, - { 8, 7, 27}, - { 8, 8, 21}, - { 8, 15, 10}, + { 4, 5, 27}, + { 4, 9, 18}, + { 4, 10, 27}, + { 4, 12, 39}, + { 4, 17, 13}, + { 4, 18, 28}, + { 4, 21, 25}, + { 4, 23, 7}, + { 4, 23, 17}, + { 4, 23, 37}, + { 4, 28, 15}, + { 4, 29, 5}, + { 4, 30, 26}, + { 4, 32, 39}, + { 4, 33, 30}, + { 4, 34, 20}, + { 4, 34, 36}, + { 4, 35, 35}, + { 4, 36, 22}, + { 4, 39, 14}, + { 4, 40, 22}, + { 4, 41, 19}, + { 5, 4, 38}, + { 5, 7, 27}, + { 5, 10, 5}, + { 5, 10, 15}, + { 5, 10, 36}, + { 5, 11, 18}, + { 5, 13, 38}, + { 5, 16, 27}, + { 5, 21, 24}, + { 5, 25, 44}, + { 5, 27, 39}, + { 5, 28, 35}, + { 5, 28, 36}, + { 5, 32, 15}, + { 5, 33, 12}, + { 5, 34, 8}, + { 5, 34, 37}, + { 5, 37, 11}, + { 5, 37, 32}, + { 5, 37, 40}, + { 5, 38, 41}, + { 5, 39, 20}, + { 5, 40, 12}, + { 5, 41, 20}, + { 5, 45, 29}, + { 6, 4, 31}, + { 6, 4, 32}, + { 6, 13, 30}, + { 6, 20, 28}, + { 6, 20, 35}, + { 6, 23, 4}, + { 6, 27, 24}, + { 6, 29, 39}, + { 6, 30, 32}, + { 6, 34, 32}, + { 6, 42, 15}, + { 6, 42, 22}, + { 6, 42, 40}, + { 6, 43, 13}, + { 7, 4, 18}, + { 7, 5, 19}, + { 7, 6, 44}, + { 7, 7, 40}, + { 7, 9, 19}, + { 7, 12, 8}, + { 7, 12, 13}, + { 7, 12, 30}, + { 7, 13, 22}, + { 7, 17, 26}, + { 7, 17, 29}, + { 7, 18, 6}, + { 7, 20, 20}, + { 7, 20, 43}, + { 7, 21, 44}, + { 7, 23, 36}, + { 7, 23, 39}, + { 7, 23, 42}, + { 7, 25, 6}, + { 7, 28, 8}, + { 7, 33, 27}, + { 7, 34, 12}, + { 7, 35, 4}, + { 7, 36, 19}, + { 7, 39, 5}, + { 7, 40, 23}, + { 7, 45, 44}, + { 8, 7, 13}, + { 8, 7, 34}, + { 8, 7, 39}, + { 8, 10, 40}, + { 8, 12, 21}, + { 8, 12, 39}, + { 8, 14, 8}, { 8, 17, 15}, - { 8, 18, 23}, - { 8, 18, 30}, - { 8, 18, 33}, - { 8, 19, 40}, - { 8, 20, 23}, - { 8, 21, 33}, - { 8, 22, 37}, - { 8, 26, 4}, - { 8, 30, 22}, - { 8, 32, 30}, - { 8, 34, 44}, - { 8, 36, 10}, - { 8, 37, 16}, - { 8, 37, 17}, - { 8, 38, 18}, - { 8, 38, 20}, - { 8, 38, 29}, - { 8, 38, 39}, - { 8, 40, 5}, - { 8, 41, 21}, - { 8, 41, 38}, - { 8, 41, 40}, - { 8, 45, 8}, - { 8, 45, 42}, - { 9, 6, 38}, - { 9, 8, 30}, - { 9, 9, 11}, - { 9, 9, 14}, - { 9, 10, 37}, - { 9, 13, 29}, - { 9, 16, 36}, - { 9, 17, 15}, - { 9, 21, 35}, - { 9, 21, 39}, - { 9, 27, 36}, - { 9, 31, 33}, - { 9, 35, 24}, - { 9, 38, 10}, - { 9, 39, 10}, - { 9, 40, 20}, - { 9, 41, 33}, - { 9, 45, 19}, - {10, 11, 36}, - {10, 12, 22}, - {10, 12, 40}, - {10, 13, 35}, - {10, 24, 16}, - {10, 24, 32}, - {10, 29, 20}, - {10, 29, 41}, - {10, 30, 30}, - {10, 30, 33}, - {10, 32, 6}, - {10, 33, 5}, - {10, 33, 7}, - {10, 34, 18}, - {10, 36, 21}, - {10, 39, 14}, - {10, 40, 11}, - {10, 40, 20}, - {11, 4, 44}, - {11, 5, 13}, - {11, 6, 19}, - {11, 7, 39}, - {11, 11, 41}, - {11, 14, 31}, - {11, 15, 40}, - {11, 16, 6}, - {11, 16, 44}, - {11, 18, 36}, - {11, 19, 34}, - {11, 25, 41}, - {11, 26, 36}, - {11, 27, 12}, - {11, 28, 26}, - {11, 32, 38}, - {11, 36, 32}, - {11, 38, 39}, - {11, 39, 33}, - {11, 39, 35}, - {11, 39, 39}, - {12, 4, 32}, - {12, 5, 18}, - {12, 7, 27}, - {12, 7, 44}, - {12, 9, 13}, - {12, 9, 19}, - {12, 10, 4}, - {12, 10, 13}, + { 8, 17, 38}, + { 8, 20, 22}, + { 8, 21, 40}, + { 8, 22, 30}, + { 8, 28, 19}, + { 8, 29, 25}, + { 8, 30, 11}, + { 8, 32, 4}, + { 8, 36, 30}, + { 8, 38, 7}, + { 8, 38, 32}, + { 8, 39, 38}, + { 8, 42, 15}, + { 8, 42, 16}, + { 8, 42, 44}, + { 8, 44, 15}, + { 8, 45, 29}, + { 9, 4, 35}, + { 9, 4, 44}, + { 9, 12, 21}, + { 9, 12, 37}, + { 9, 16, 11}, + { 9, 17, 11}, + { 9, 17, 31}, + { 9, 25, 44}, + { 9, 26, 37}, + { 9, 27, 34}, + { 9, 29, 27}, + { 9, 29, 31}, + { 9, 30, 10}, + { 9, 32, 31}, + { 9, 33, 22}, + { 9, 40, 12}, + { 9, 43, 36}, + { 9, 44, 29}, + {10, 5, 34}, + {10, 6, 31}, + {10, 12, 5}, + {10, 15, 23}, + {10, 16, 11}, + {10, 16, 31}, + {10, 20, 4}, + {10, 22, 27}, + {10, 23, 13}, + {10, 24, 7}, + {10, 24, 34}, + {10, 25, 17}, + {10, 26, 18}, + {10, 29, 5}, + {10, 29, 9}, + {10, 31, 28}, + {10, 31, 33}, + {10, 35, 44}, + {10, 38, 13}, + {10, 39, 19}, + {10, 39, 35}, + {10, 40, 37}, + {10, 40, 38}, + {10, 42, 9}, + {10, 42, 17}, + {10, 43, 37}, + {10, 44, 20}, + {10, 44, 40}, + {11, 6, 8}, + {11, 6, 43}, + {11, 7, 38}, + {11, 7, 45}, + {11, 8, 9}, + {11, 8, 14}, + {11, 13, 29}, + {11, 15, 20}, + {11, 23, 31}, + {11, 23, 39}, + {11, 24, 33}, + {11, 27, 27}, + {11, 30, 22}, + {11, 31, 10}, + {11, 32, 4}, + {11, 33, 7}, + {11, 35, 37}, + {11, 37, 19}, + {11, 38, 40}, + {11, 39, 44}, + {11, 45, 10}, + {11, 45, 32}, + {11, 45, 45}, + {12, 4, 21}, + {12, 6, 12}, + {12, 6, 36}, + {12, 11, 40}, {12, 12, 40}, - {12, 12, 45}, - {12, 13, 18}, - {12, 15, 26}, - {12, 18, 10}, - {12, 18, 16}, - {12, 18, 35}, - {12, 19, 13}, - {12, 21, 40}, - {12, 22, 26}, - {12, 23, 19}, - {12, 23, 24}, - {12, 23, 31}, - {12, 24, 12}, - {12, 24, 38}, - {12, 25, 14}, - {12, 30, 17}, - {12, 32, 40}, - {12, 33, 8}, - {12, 35, 17}, - {12, 36, 35}, - {12, 38, 6}, - {12, 38, 27}, - {12, 38, 34}, - {12, 39, 37}, - {12, 45, 27}, - {12, 45, 43}, - {13, 10, 45}, - {13, 11, 18}, - {13, 14, 44}, - {13, 15, 21}, - {13, 18, 41}, - {13, 20, 29}, - {13, 20, 40}, - {13, 26, 42}, - {13, 28, 6}, - {13, 28, 15}, - {13, 28, 36}, - {13, 29, 13}, - {13, 31, 30}, - {13, 32, 19}, - {13, 37, 44}, - {13, 40, 13}, - {13, 40, 26}, - {13, 43, 22}, - {13, 43, 31}, - {14, 4, 19}, - {14, 4, 28}, - {14, 7, 33}, - {14, 8, 4}, - {14, 10, 16}, - {14, 10, 43}, - {14, 15, 14}, - {14, 15, 20}, - {14, 16, 12}, - {14, 18, 25}, - {14, 19, 32}, + {12, 12, 42}, + {12, 14, 15}, + {12, 14, 35}, + {12, 16, 39}, + {12, 17, 13}, + {12, 20, 40}, + {12, 22, 42}, + {12, 23, 28}, + {12, 27, 34}, + {12, 29, 7}, + {12, 33, 14}, + {12, 34, 17}, + {12, 34, 43}, + {12, 39, 17}, + {12, 41, 42}, + {12, 42, 20}, + {12, 42, 30}, + {13, 9, 35}, + {13, 9, 41}, + {13, 11, 35}, + {13, 11, 36}, + {13, 11, 45}, + {13, 14, 38}, + {13, 15, 9}, + {13, 17, 4}, + {13, 18, 40}, + {13, 19, 18}, + {13, 21, 32}, + {13, 21, 43}, + {13, 24, 27}, + {13, 27, 24}, + {13, 28, 11}, + {13, 28, 42}, + {13, 29, 26}, + {13, 35, 26}, + {13, 36, 32}, + {13, 37, 32}, + {13, 37, 36}, + {13, 42, 9}, + {13, 42, 45}, + {13, 44, 43}, + {14, 4, 34}, + {14, 5, 31}, + {14, 10, 15}, + {14, 10, 19}, + {14, 14, 36}, + {14, 19, 28}, + {14, 20, 17}, + {14, 21, 28}, {14, 21, 38}, - {14, 24, 19}, - {14, 26, 44}, - {14, 28, 34}, - {14, 30, 17}, - {14, 34, 11}, - {14, 36, 9}, - {14, 36, 36}, - {14, 38, 9}, - {14, 38, 36}, - {14, 38, 45}, - {14, 39, 15}, - {14, 42, 34}, - {14, 42, 38}, - {14, 44, 10}, - {14, 44, 26}, - {15, 4, 8}, - {15, 5, 45}, - {15, 7, 45}, - {15, 9, 9}, - {15, 9, 20}, - {15, 10, 29}, - {15, 10, 32}, - {15, 11, 23}, - {15, 15, 36}, - {15, 15, 37}, - {15, 16, 31}, - {15, 20, 39}, - {15, 24, 29}, - {15, 26, 9}, - {15, 26, 45}, - {15, 28, 13}, - {15, 28, 17}, - {15, 29, 11}, - {15, 30, 5}, - {15, 30, 11}, - {15, 35, 17}, - {15, 37, 14}, - {15, 39, 26}, - {15, 43, 21}, - {16, 6, 10}, - {16, 7, 26}, - {16, 8, 17}, - {16, 14, 39}, - {16, 15, 44}, - {16, 16, 15}, - {16, 17, 20}, - {16, 19, 11}, - {16, 19, 30}, - {16, 20, 7}, - {16, 23, 15}, - {16, 25, 17}, - {16, 25, 22}, - {16, 26, 15}, - {16, 29, 34}, - {16, 29, 39}, - {16, 30, 9}, - {16, 33, 19}, - {16, 33, 36}, - {16, 35, 17}, - {16, 37, 35}, - {16, 38, 18}, - {16, 38, 36}, - {16, 40, 22}, - {16, 41, 22}, - {16, 44, 42}, - {17, 9, 7}, - {17, 12, 18}, - {17, 13, 17}, - {17, 13, 21}, - {17, 16, 27}, - {17, 17, 23}, - {17, 18, 39}, - {17, 20, 16}, - {17, 28, 27}, - {17, 28, 29}, - {17, 28, 36}, - {17, 30, 38}, - {17, 36, 35}, - {17, 39, 23}, - {17, 43, 39}, - {18, 4, 14}, - {18, 4, 40}, - {18, 5, 30}, - {18, 5, 36}, - {18, 9, 8}, - {18, 9, 15}, - {18, 13, 4}, - {18, 13, 41}, - {18, 15, 14}, - {18, 15, 32}, - {18, 19, 22}, - {18, 20, 21}, - {18, 21, 20}, - {18, 23, 36}, - {18, 27, 26}, - {18, 28, 20}, - {18, 28, 25}, - {18, 33, 22}, - {18, 34, 45}, - {18, 35, 39}, - {18, 39, 4}, - {18, 39, 7}, - {18, 40, 26}, - {18, 41, 29}, - {18, 41, 31}, - {18, 42, 7}, - {18, 44, 23}, - {18, 45, 21}, - {18, 45, 32}, - {19, 6, 11}, - {19, 6, 30}, - {19, 9, 17}, - {19, 9, 19}, - {19, 9, 26}, - {19, 12, 26}, - {19, 16, 27}, - {19, 17, 13}, - {19, 17, 35}, - {19, 17, 39}, - {19, 17, 43}, - {19, 19, 43}, - {19, 20, 18}, - {19, 21, 28}, - {19, 24, 14}, - {19, 26, 16}, - {19, 29, 16}, - {19, 30, 10}, - {19, 31, 7}, - {19, 34, 40}, - {19, 42, 12}, - {20, 4, 20}, - {20, 5, 34}, - {20, 5, 35}, - {20, 6, 6}, - {20, 7, 31}, - {20, 9, 17}, - {20, 12, 40}, - {20, 13, 32}, - {20, 16, 38}, - {20, 16, 44}, - {20, 19, 45}, - {20, 22, 13}, - {20, 22, 29}, - {20, 24, 21}, - {20, 27, 9}, - {20, 27, 33}, - {20, 27, 37}, - {20, 30, 5}, - {20, 36, 33}, - {20, 37, 19}, - {20, 37, 22}, - {20, 40, 43}, - {20, 41, 28}, - {20, 42, 42}, - {21, 5, 16}, - {21, 7, 28}, - {21, 9, 31}, - {21, 11, 29}, - {21, 13, 12}, - {21, 15, 11}, - {21, 15, 35}, - {21, 15, 40}, - {21, 16, 24}, - {21, 19, 36}, - {21, 20, 5}, - {21, 20, 15}, - {21, 21, 14}, - {21, 27, 14}, - {21, 27, 28}, - {21, 32, 22}, - {21, 33, 15}, - {21, 35, 6}, - {21, 35, 11}, - {21, 35, 34}, - {21, 37, 33}, - {21, 37, 34}, - {21, 38, 12}, - {21, 38, 28}, - {21, 39, 36}, - {21, 40, 30}, - {21, 42, 9}, - {21, 45, 6}, - {22, 4, 33}, - {22, 5, 36}, - {22, 6, 32}, - {22, 12, 18}, - {22, 16, 24}, - {22, 16, 34}, - {22, 17, 45}, - {22, 18, 10}, - {22, 19, 34}, - {22, 22, 6}, - {22, 22, 33}, - {22, 23, 32}, - {22, 27, 15}, - {22, 28, 12}, - {22, 30, 23}, - {22, 32, 15}, - {22, 36, 42}, - {22, 37, 24}, - {22, 37, 35}, - {22, 41, 19}, - {22, 41, 30}, - {22, 42, 16}, - {22, 43, 21}, - {22, 43, 42}, - {22, 44, 7}, - {22, 44, 11}, - {23, 4, 40}, - {23, 8, 39}, - {23, 8, 42}, - {23, 9, 11}, - {23, 16, 29}, - {23, 22, 21}, - {23, 22, 30}, - {23, 24, 9}, - {23, 24, 33}, - {23, 25, 14}, - {23, 28, 37}, - {23, 29, 32}, - {23, 32, 40}, - {23, 33, 18}, - {23, 33, 33}, - {23, 34, 31}, - {23, 34, 44}, - {23, 36, 13}, - {23, 36, 22}, - {23, 36, 39}, - {23, 38, 5}, - {23, 39, 19}, - {23, 39, 23}, - {23, 40, 6}, - {23, 40, 16}, - {23, 42, 21}, - {23, 42, 37}, - {23, 45, 6}, - {23, 45, 18}, - {23, 45, 21}, - {24, 5, 37}, - {24, 14, 8}, - {24, 14, 17}, - {24, 14, 43}, - {24, 15, 13}, - {24, 15, 22}, - {24, 15, 33}, - {24, 16, 20}, - {24, 18, 27}, - {24, 19, 15}, - {24, 20, 9}, - {24, 21, 15}, - {24, 21, 25}, - {24, 23, 21}, - {24, 28, 22}, - {24, 29, 44}, - {24, 30, 15}, - {24, 30, 42}, - {24, 31, 40}, - {24, 32, 30}, - {24, 34, 6}, - {24, 35, 27}, - {24, 36, 33}, - {24, 37, 30}, - {24, 37, 39}, - {24, 38, 37}, - {24, 40, 42}, - {24, 41, 12}, - {24, 42, 22}, - {24, 43, 45}, - {25, 4, 43}, - {25, 5, 36}, - {25, 10, 40}, - {25, 14, 30}, - {25, 15, 5}, - {25, 17, 20}, - {25, 20, 17}, - {25, 20, 33}, - {25, 22, 38}, - {25, 22, 43}, - {25, 25, 33}, - {25, 26, 40}, - {25, 29, 23}, - {25, 30, 6}, - {25, 36, 5}, - {25, 36, 15}, - {25, 36, 36}, - {25, 40, 28}, - {25, 42, 42}, - {25, 45, 11}, - {26, 5, 34}, - {26, 10, 19}, - {26, 10, 27}, - {26, 10, 38}, - {26, 12, 16}, - {26, 15, 11}, - {26, 15, 37}, - {26, 17, 34}, - {26, 18, 41}, - {26, 22, 44}, - {26, 25, 43}, - {26, 26, 6}, - {26, 29, 17}, - {26, 33, 24}, - {26, 34, 36}, - {26, 37, 4}, - {26, 37, 24}, - {26, 40, 33}, - {26, 41, 27}, - {26, 41, 35}, - {26, 41, 36}, - {26, 45, 12}, - {27, 4, 9}, - {27, 5, 30}, - {27, 6, 11}, - {27, 6, 28}, - {27, 7, 13}, - {27, 11, 5}, - {27, 12, 7}, - {27, 13, 44}, - {27, 16, 19}, - {27, 17, 36}, - {27, 18, 11}, - {27, 19, 21}, - {27, 20, 18}, - {27, 20, 20}, - {27, 23, 5}, - {27, 26, 34}, - {27, 27, 19}, - {27, 27, 33}, - {27, 28, 17}, - {27, 31, 44}, - {27, 32, 5}, - {27, 33, 15}, - {27, 34, 28}, - {27, 39, 44}, - {27, 40, 18}, - {28, 4, 37}, - {28, 13, 17}, - {28, 17, 32}, - {28, 20, 38}, - {28, 24, 24}, - {28, 25, 27}, - {28, 30, 38}, - {28, 33, 18}, - {28, 35, 9}, - {28, 38, 13}, - {28, 41, 14}, - {28, 42, 17}, - {28, 43, 23}, - {28, 45, 30}, - {29, 4, 32}, - {29, 5, 6}, - {29, 5, 43}, - {29, 8, 7}, - {29, 8, 8}, - {29, 8, 31}, + {14, 22, 7}, + {14, 22, 12}, + {14, 23, 31}, + {14, 24, 6}, + {14, 27, 17}, + {14, 30, 7}, + {14, 33, 23}, + {14, 35, 22}, + {14, 41, 13}, + {14, 44, 40}, + {14, 45, 16}, + {14, 45, 25}, + {15, 8, 25}, + {15, 11, 16}, + {15, 13, 6}, + {15, 13, 36}, + {15, 13, 43}, + {15, 15, 14}, + {15, 15, 33}, + {15, 20, 31}, + {15, 21, 4}, + {15, 22, 23}, + {15, 26, 33}, + {15, 28, 9}, + {15, 33, 42}, + {15, 34, 8}, + {15, 34, 21}, + {15, 34, 34}, + {15, 35, 11}, + {15, 38, 20}, + {15, 38, 26}, + {15, 40, 15}, + {15, 42, 26}, + {15, 43, 35}, + {15, 45, 10}, + {16, 5, 8}, + {16, 8, 14}, + {16, 9, 15}, + {16, 9, 18}, + {16, 9, 20}, + {16, 9, 24}, + {16, 11, 32}, + {16, 14, 41}, + {16, 15, 13}, + {16, 15, 42}, + {16, 16, 25}, + {16, 17, 45}, + {16, 19, 10}, + {16, 23, 27}, + {16, 24, 45}, + {16, 25, 12}, + {16, 29, 8}, + {16, 31, 4}, + {16, 31, 23}, + {16, 32, 39}, + {16, 34, 27}, + {16, 35, 20}, + {16, 36, 4}, + {16, 36, 31}, + {16, 37, 11}, + {16, 38, 33}, + {16, 40, 21}, + {16, 41, 20}, + {16, 42, 13}, + {16, 45, 8}, + {16, 45, 17}, + {16, 45, 21}, + {17, 5, 18}, + {17, 8, 12}, + {17, 10, 32}, + {17, 14, 34}, + {17, 16, 30}, + {17, 17, 6}, + {17, 23, 17}, + {17, 24, 44}, + {17, 25, 41}, + {17, 32, 32}, + {17, 36, 4}, + {17, 36, 9}, + {17, 37, 6}, + {17, 37, 31}, + {17, 38, 43}, + {17, 41, 29}, + {17, 42, 21}, + {17, 42, 24}, + {17, 42, 44}, + {17, 43, 18}, + {17, 44, 6}, + {17, 45, 14}, + {18, 7, 7}, + {18, 8, 42}, + {18, 9, 17}, + {18, 9, 31}, + {18, 11, 34}, + {18, 12, 37}, + {18, 15, 42}, + {18, 18, 30}, + {18, 18, 42}, + {18, 24, 19}, + {18, 24, 24}, + {18, 25, 40}, + {18, 26, 13}, + {18, 29, 24}, + {18, 31, 18}, + {18, 32, 44}, + {18, 35, 16}, + {18, 36, 12}, + {18, 37, 16}, + {18, 37, 19}, + {18, 39, 44}, + {18, 40, 7}, + {18, 40, 23}, + {18, 41, 40}, + {18, 43, 26}, + {18, 43, 38}, + {18, 45, 42}, + {19, 5, 41}, + {19, 6, 7}, + {19, 7, 12}, + {19, 9, 11}, + {19, 9, 34}, + {19, 11, 23}, + {19, 12, 19}, + {19, 13, 39}, + {19, 18, 4}, + {19, 18, 40}, + {19, 20, 16}, + {19, 21, 44}, + {19, 22, 27}, + {19, 23, 19}, + {19, 26, 4}, + {19, 28, 14}, + {19, 30, 20}, + {19, 31, 9}, + {19, 34, 31}, + {19, 34, 32}, + {19, 35, 28}, + {19, 36, 15}, + {19, 38, 25}, + {19, 38, 26}, + {19, 40, 14}, + {19, 41, 41}, + {19, 43, 20}, + {19, 45, 45}, + {20, 4, 9}, + {20, 5, 25}, + {20, 5, 43}, + {20, 7, 43}, + {20, 8, 27}, + {20, 8, 32}, + {20, 8, 35}, + {20, 10, 23}, + {20, 10, 30}, + {20, 14, 5}, + {20, 16, 25}, + {20, 22, 9}, + {20, 22, 31}, + {20, 23, 9}, + {20, 23, 13}, + {20, 24, 20}, + {20, 26, 31}, + {20, 33, 17}, + {20, 35, 8}, + {20, 36, 8}, + {20, 44, 14}, + {21, 4, 31}, + {21, 7, 20}, + {21, 7, 43}, + {21, 9, 35}, + {21, 9, 42}, + {21, 14, 13}, + {21, 17, 20}, + {21, 18, 24}, + {21, 20, 14}, + {21, 20, 21}, + {21, 22, 31}, + {21, 23, 16}, + {21, 24, 41}, + {21, 25, 36}, + {21, 26, 29}, + {21, 27, 6}, + {21, 28, 5}, + {21, 29, 6}, + {21, 30, 43}, + {21, 31, 45}, + {21, 34, 13}, + {21, 34, 27}, + {21, 36, 15}, + {21, 36, 40}, + {21, 38, 37}, + {21, 38, 44}, + {21, 40, 8}, + {21, 40, 26}, + {21, 41, 45}, + {21, 45, 16}, + {21, 45, 41}, + {22, 4, 28}, + {22, 7, 28}, + {22, 10, 35}, + {22, 17, 26}, + {22, 18, 9}, + {22, 19, 13}, + {22, 20, 16}, + {22, 21, 5}, + {22, 21, 21}, + {22, 23, 36}, + {22, 24, 35}, + {22, 25, 14}, + {22, 25, 18}, + {22, 27, 18}, + {22, 28, 40}, + {22, 30, 16}, + {22, 35, 23}, + {22, 36, 6}, + {22, 37, 10}, + {22, 37, 22}, + {22, 38, 8}, + {22, 39, 6}, + {22, 39, 45}, + {22, 44, 17}, + {22, 44, 22}, + {23, 6, 4}, + {23, 7, 6}, + {23, 7, 18}, + {23, 8, 43}, + {23, 10, 8}, + {23, 15, 45}, + {23, 16, 10}, + {23, 20, 39}, + {23, 24, 13}, + {23, 24, 31}, + {23, 29, 6}, + {23, 29, 21}, + {23, 32, 6}, + {23, 34, 30}, + {23, 38, 18}, + {23, 40, 10}, + {23, 41, 18}, + {23, 41, 31}, + {23, 42, 8}, + {24, 4, 28}, + {24, 5, 21}, + {24, 6, 33}, + {24, 7, 37}, + {24, 8, 14}, + {24, 9, 41}, + {24, 11, 17}, + {24, 12, 43}, + {24, 15, 42}, + {24, 16, 38}, + {24, 16, 41}, + {24, 18, 28}, + {24, 19, 8}, + {24, 22, 9}, + {24, 22, 10}, + {24, 22, 24}, + {24, 25, 25}, + {24, 26, 29}, + {24, 27, 7}, + {24, 27, 11}, + {24, 27, 22}, + {24, 27, 45}, + {24, 31, 8}, + {24, 34, 15}, + {24, 34, 34}, + {24, 39, 9}, + {24, 40, 32}, + {24, 41, 15}, + {24, 42, 11}, + {24, 44, 16}, + {24, 44, 44}, + {24, 45, 39}, + {25, 5, 34}, + {25, 8, 18}, + {25, 10, 6}, + {25, 10, 15}, + {25, 15, 4}, + {25, 20, 44}, + {25, 21, 37}, + {25, 23, 13}, + {25, 23, 33}, + {25, 24, 10}, + {25, 26, 30}, + {25, 27, 18}, + {25, 27, 31}, + {25, 28, 38}, + {25, 28, 41}, + {25, 30, 10}, + {25, 31, 21}, + {25, 31, 28}, + {25, 33, 14}, + {25, 35, 10}, + {25, 35, 17}, + {25, 35, 24}, + {25, 37, 12}, + {25, 37, 29}, + {25, 41, 20}, + {25, 44, 11}, + {25, 45, 10}, + {26, 4, 10}, + {26, 14, 33}, + {26, 17, 4}, + {26, 17, 16}, + {26, 18, 8}, + {26, 19, 23}, + {26, 19, 35}, + {26, 19, 40}, + {26, 21, 34}, + {26, 23, 6}, + {26, 24, 7}, + {26, 25, 20}, + {26, 26, 38}, + {26, 27, 26}, + {26, 28, 30}, + {26, 28, 41}, + {26, 30, 15}, + {26, 30, 36}, + {26, 33, 32}, + {26, 37, 8}, + {26, 39, 5}, + {26, 40, 7}, + {26, 45, 16}, + {27, 10, 38}, + {27, 11, 32}, + {27, 15, 14}, + {27, 16, 26}, + {27, 17, 30}, + {27, 21, 6}, + {27, 25, 19}, + {27, 26, 39}, + {27, 27, 45}, + {27, 28, 34}, + {27, 29, 37}, + {27, 35, 44}, + {27, 38, 34}, + {27, 40, 12}, + {27, 41, 36}, + {27, 45, 40}, + {28, 9, 19}, + {28, 9, 24}, + {28, 10, 7}, + {28, 11, 21}, + {28, 13, 33}, + {28, 14, 15}, + {28, 14, 40}, + {28, 15, 16}, + {28, 16, 21}, + {28, 16, 29}, + {28, 17, 31}, + {28, 18, 4}, + {28, 18, 34}, + {28, 24, 28}, + {28, 30, 44}, + {28, 32, 10}, + {28, 33, 42}, + {28, 34, 6}, + {28, 37, 9}, + {28, 38, 21}, + {28, 40, 13}, + {28, 42, 21}, + {29, 4, 45}, + {29, 5, 12}, + {29, 7, 21}, {29, 8, 33}, - {29, 10, 33}, - {29, 11, 26}, - {29, 12, 27}, - {29, 12, 33}, - {29, 12, 45}, - {29, 18, 12}, - {29, 19, 23}, - {29, 19, 28}, - {29, 20, 39}, - {29, 21, 11}, - {29, 22, 4}, - {29, 22, 21}, - {29, 26, 20}, - {29, 26, 31}, - {29, 27, 36}, - {29, 28, 34}, - {29, 29, 7}, - {29, 34, 23}, - {29, 35, 14}, - {29, 36, 13}, - {29, 40, 42}, - {29, 40, 45}, - {29, 43, 41}, - {29, 44, 29}, - {30, 5, 18}, - {30, 8, 29}, - {30, 8, 38}, - {30, 11, 9}, - {30, 11, 13}, - {30, 11, 19}, - {30, 12, 42}, - {30, 14, 45}, - {30, 19, 38}, - {30, 20, 10}, - {30, 23, 31}, - {30, 23, 39}, - {30, 27, 27}, - {30, 28, 32}, - {30, 31, 12}, - {30, 31, 17}, - {30, 32, 10}, - {30, 32, 11}, - {30, 37, 7}, - {30, 38, 37}, - {30, 41, 31}, - {30, 42, 24}, - {30, 42, 25}, - {30, 43, 40}, - {31, 8, 19}, - {31, 13, 39}, - {31, 14, 29}, - {31, 14, 35}, - {31, 14, 37}, - {31, 16, 10}, - {31, 19, 16}, - {31, 21, 44}, - {31, 23, 34}, - {31, 24, 5}, - {31, 24, 44}, - {31, 25, 8}, - {31, 26, 11}, - {31, 26, 21}, - {31, 28, 44}, - {31, 29, 35}, - {31, 32, 9}, - {31, 34, 41}, - {31, 34, 42}, - {31, 38, 25}, - {31, 39, 43}, - {31, 40, 15}, - {31, 41, 19}, - {31, 42, 17}, - {32, 8, 4}, - {32, 12, 18}, - {32, 13, 10}, - {32, 16, 34}, - {32, 25, 15}, - {32, 26, 40}, - {32, 33, 25}, - {32, 33, 44}, - {32, 36, 38}, - {32, 38, 14}, + {29, 13, 41}, + {29, 14, 33}, + {29, 17, 31}, + {29, 17, 33}, + {29, 18, 19}, + {29, 22, 27}, + {29, 24, 4}, + {29, 26, 27}, + {29, 26, 29}, + {29, 26, 40}, + {29, 28, 24}, + {29, 30, 37}, + {29, 31, 17}, + {29, 31, 26}, + {29, 32, 9}, + {29, 35, 7}, + {29, 40, 36}, + {29, 41, 6}, + {29, 41, 32}, + {29, 42, 45}, + {29, 44, 8}, + {30, 6, 33}, + {30, 13, 6}, + {30, 13, 22}, + {30, 15, 27}, + {30, 18, 16}, + {30, 19, 4}, + {30, 24, 7}, + {30, 24, 41}, + {30, 28, 24}, + {30, 30, 45}, + {30, 32, 35}, + {30, 33, 15}, + {30, 34, 15}, + {30, 37, 22}, + {30, 39, 19}, + {30, 42, 13}, + {30, 44, 29}, + {31, 6, 6}, + {31, 7, 16}, + {31, 8, 25}, + {31, 12, 7}, + {31, 14, 4}, + {31, 20, 17}, + {31, 20, 20}, + {31, 22, 32}, + {31, 25, 13}, + {31, 25, 33}, + {31, 26, 31}, + {31, 27, 42}, + {31, 28, 37}, + {31, 30, 12}, + {31, 31, 27}, + {31, 32, 26}, + {31, 35, 32}, + {31, 36, 18}, + {31, 39, 28}, + {31, 40, 17}, + {31, 41, 28}, + {31, 44, 30}, + {32, 5, 14}, + {32, 5, 34}, + {32, 11, 28}, + {32, 14, 28}, + {32, 17, 24}, + {32, 20, 33}, + {32, 22, 30}, + {32, 28, 14}, + {32, 29, 8}, + {32, 29, 15}, + {32, 29, 43}, + {32, 36, 15}, + {32, 36, 25}, + {32, 37, 9}, + {32, 38, 37}, + {32, 38, 44}, + {32, 39, 5}, {32, 39, 22}, - {32, 39, 35}, - {32, 40, 44}, - {32, 41, 32}, - {32, 42, 8}, - {32, 43, 18}, - {32, 44, 12}, - {33, 5, 7}, - {33, 7, 16}, - {33, 10, 19}, - {33, 10, 42}, - {33, 10, 45}, - {33, 11, 41}, - {33, 16, 7}, - {33, 18, 17}, - {33, 18, 41}, - {33, 22, 29}, - {33, 23, 16}, - {33, 24, 8}, - {33, 25, 9}, - {33, 26, 21}, - {33, 29, 26}, - {33, 29, 38}, - {33, 30, 11}, - {33, 32, 6}, - {33, 32, 28}, - {33, 33, 28}, - {33, 34, 14}, - {33, 37, 13}, - {33, 38, 17}, - {33, 39, 10}, - {33, 40, 40}, - {33, 40, 43}, - {33, 42, 27}, - {33, 42, 37}, - {33, 45, 28}, - {34, 4, 9}, - {34, 8, 22}, - {34, 13, 5}, - {34, 13, 11}, - {34, 18, 21}, - {34, 21, 42}, - {34, 22, 27}, - {34, 27, 14}, - {34, 27, 16}, - {34, 29, 43}, - {34, 30, 39}, - {34, 32, 38}, - {34, 34, 43}, - {34, 35, 25}, - {34, 37, 26}, - {34, 38, 18}, - {34, 38, 40}, - {34, 39, 29}, - {34, 40, 11}, - {34, 42, 18}, - {35, 7, 19}, - {35, 8, 44}, - {35, 9, 14}, - {35, 18, 8}, - {35, 21, 26}, - {35, 23, 40}, - {35, 26, 43}, - {35, 28, 27}, - {35, 30, 35}, - {35, 32, 5}, - {35, 33, 25}, - {35, 33, 36}, - {35, 36, 9}, - {35, 36, 17}, - {35, 39, 7}, - {35, 39, 37}, - {35, 44, 9}, - {35, 45, 39}, - {36, 6, 18}, - {36, 6, 40}, - {36, 9, 8}, - {36, 9, 29}, - {36, 10, 28}, - {36, 12, 32}, - {36, 13, 26}, - {36, 13, 27}, - {36, 18, 17}, - {36, 18, 18}, - {36, 22, 20}, - {36, 24, 41}, - {36, 25, 33}, - {36, 25, 45}, + {32, 39, 38}, + {32, 41, 36}, + {32, 41, 38}, + {32, 42, 20}, + {33, 6, 43}, + {33, 7, 10}, + {33, 8, 23}, + {33, 8, 41}, + {33, 13, 42}, + {33, 16, 27}, + {33, 19, 44}, + {33, 28, 12}, + {33, 28, 23}, + {33, 28, 40}, + {33, 29, 40}, + {33, 30, 10}, + {33, 30, 40}, + {33, 31, 30}, + {33, 35, 13}, + {33, 35, 29}, + {33, 42, 12}, + {33, 43, 20}, + {33, 43, 29}, + {33, 44, 9}, + {34, 8, 28}, + {34, 11, 31}, + {34, 13, 25}, + {34, 14, 12}, + {34, 14, 34}, + {34, 16, 8}, + {34, 17, 29}, + {34, 18, 16}, + {34, 19, 11}, + {34, 20, 25}, + {34, 20, 32}, + {34, 21, 10}, + {34, 21, 43}, + {34, 22, 43}, + {34, 24, 32}, + {34, 25, 12}, + {34, 27, 11}, + {34, 28, 9}, + {34, 29, 21}, + {34, 32, 43}, + {34, 32, 45}, + {34, 33, 34}, + {34, 34, 25}, + {34, 35, 20}, + {34, 36, 45}, + {34, 38, 12}, + {34, 39, 18}, + {34, 40, 17}, + {34, 45, 7}, + {35, 4, 21}, + {35, 7, 17}, + {35, 9, 5}, + {35, 15, 29}, + {35, 17, 11}, + {35, 19, 8}, + {35, 20, 32}, + {35, 20, 45}, + {35, 21, 20}, + {35, 22, 29}, + {35, 22, 31}, + {35, 22, 38}, + {35, 23, 22}, + {35, 23, 32}, + {35, 23, 45}, + {35, 24, 33}, + {35, 25, 20}, + {35, 27, 15}, + {35, 31, 44}, + {35, 32, 29}, + {35, 34, 9}, + {35, 34, 18}, + {35, 34, 39}, + {35, 36, 24}, + {35, 39, 26}, + {35, 40, 22}, + {35, 40, 43}, + {35, 41, 39}, + {35, 43, 12}, + {35, 43, 20}, + {35, 44, 8}, + {35, 45, 6}, + {35, 45, 25}, + {36, 6, 17}, + {36, 9, 45}, + {36, 11, 8}, + {36, 17, 18}, + {36, 23, 43}, + {36, 25, 34}, {36, 26, 10}, - {36, 31, 16}, - {36, 32, 19}, - {36, 32, 22}, - {36, 33, 8}, - {36, 34, 17}, - {36, 34, 27}, - {36, 35, 35}, - {36, 36, 38}, - {36, 37, 8}, - {36, 38, 42}, - {36, 40, 17}, - {36, 40, 34}, - {36, 41, 20}, - {36, 43, 37}, - {36, 44, 11}, - {37, 4, 27}, - {37, 4, 30}, - {37, 9, 20}, - {37, 11, 33}, - {37, 12, 6}, - {37, 12, 17}, - {37, 16, 24}, - {37, 17, 11}, - {37, 17, 37}, - {37, 18, 23}, - {37, 18, 34}, - {37, 23, 42}, - {37, 29, 33}, - {37, 30, 34}, - {37, 30, 41}, - {37, 40, 39}, - {37, 43, 11}, - {37, 43, 16}, - {38, 4, 12}, - {38, 4, 13}, - {38, 5, 33}, - {38, 7, 5}, - {38, 8, 20}, - {38, 13, 41}, - {38, 22, 15}, - {38, 23, 13}, - {38, 25, 6}, - {38, 27, 35}, - {38, 29, 17}, - {38, 29, 29}, - {38, 32, 44}, - {38, 34, 7}, - {38, 34, 14}, - {38, 36, 15}, - {38, 41, 5}, - {38, 44, 16}, - {39, 6, 39}, - {39, 7, 8}, - {39, 7, 35}, - {39, 12, 16}, - {39, 12, 31}, - {39, 12, 40}, - {39, 15, 16}, - {39, 15, 40}, - {39, 17, 12}, - {39, 17, 40}, - {39, 20, 11}, - {39, 20, 31}, - {39, 24, 45}, - {39, 29, 4}, - {39, 30, 36}, - {39, 31, 30}, - {39, 33, 20}, - {39, 33, 33}, - {39, 36, 17}, - {39, 37, 19}, - {39, 38, 9}, - {39, 41, 28}, - {39, 41, 44}, - {40, 9, 8}, - {40, 9, 27}, - {40, 14, 24}, - {40, 15, 43}, - {40, 16, 12}, - {40, 18, 24}, - {40, 19, 9}, - {40, 21, 25}, - {40, 22, 11}, - {40, 23, 17}, - {40, 24, 32}, - {40, 26, 39}, - {40, 27, 10}, - {40, 38, 15}, - {40, 40, 20}, - {41, 10, 12}, - {41, 10, 45}, - {41, 11, 6}, - {41, 12, 24}, - {41, 13, 38}, - {41, 15, 8}, - {41, 18, 35}, - {41, 20, 21}, - {41, 21, 39}, - {41, 22, 34}, - {41, 22, 38}, - {41, 24, 33}, - {41, 25, 6}, - {41, 25, 44}, - {41, 28, 26}, - {41, 31, 19}, - {41, 32, 18}, - {41, 37, 26}, - {41, 40, 30}, - {41, 41, 13}, - {41, 41, 17}, - {42, 6, 33}, - {42, 8, 10}, - {42, 10, 18}, - {42, 12, 24}, - {42, 12, 26}, - {42, 13, 8}, - {42, 16, 17}, - {42, 16, 31}, - {42, 25, 13}, - {42, 25, 26}, - {42, 27, 11}, - {42, 27, 22}, - {42, 29, 8}, - {42, 32, 26}, - {42, 34, 34}, - {42, 36, 13}, - {42, 36, 34}, - {42, 36, 44}, - {42, 39, 43}, - {42, 44, 15}, - {42, 44, 33}, - {42, 44, 35}, - {43, 9, 42}, - {43, 11, 26}, - {43, 12, 12}, - {43, 13, 40}, - {43, 15, 33}, - {43, 17, 36}, - {43, 18, 30}, - {43, 19, 16}, - {43, 19, 39}, - {43, 20, 43}, - {43, 24, 31}, + {36, 28, 14}, + {36, 28, 28}, + {36, 29, 33}, + {36, 31, 17}, + {36, 34, 8}, + {36, 34, 9}, + {36, 35, 11}, + {36, 42, 36}, + {36, 43, 29}, + {37, 5, 4}, + {37, 5, 29}, + {37, 8, 15}, + {37, 10, 25}, + {37, 10, 31}, + {37, 14, 45}, + {37, 15, 40}, + {37, 16, 14}, + {37, 17, 13}, + {37, 21, 12}, + {37, 25, 17}, + {37, 25, 22}, + {37, 26, 40}, + {37, 27, 45}, + {37, 29, 6}, + {37, 29, 17}, + {37, 30, 42}, + {37, 31, 5}, + {37, 31, 6}, + {37, 32, 6}, + {37, 35, 5}, + {37, 36, 35}, + {37, 39, 21}, + {37, 40, 12}, + {37, 40, 37}, + {37, 42, 38}, + {38, 4, 24}, + {38, 5, 30}, + {38, 6, 13}, + {38, 7, 28}, + {38, 7, 31}, + {38, 8, 9}, + {38, 9, 22}, + {38, 11, 20}, + {38, 12, 41}, + {38, 15, 30}, + {38, 16, 26}, + {38, 18, 16}, + {38, 19, 20}, + {38, 20, 22}, + {38, 28, 4}, + {38, 31, 41}, + {38, 32, 4}, + {38, 33, 34}, + {38, 35, 8}, + {38, 35, 18}, + {38, 37, 10}, + {38, 37, 14}, + {38, 38, 21}, + {38, 40, 42}, + {38, 42, 22}, + {38, 42, 30}, + {38, 43, 29}, + {38, 44, 43}, + {38, 45, 26}, + {38, 45, 32}, + {39, 4, 12}, + {39, 8, 30}, + {39, 12, 10}, + {39, 12, 26}, + {39, 13, 13}, + {39, 14, 15}, + {39, 14, 20}, + {39, 15, 24}, + {39, 17, 25}, + {39, 20, 9}, + {39, 20, 12}, + {39, 25, 27}, + {39, 25, 29}, + {39, 26, 18}, + {39, 29, 34}, + {39, 31, 18}, + {39, 31, 45}, + {39, 33, 17}, + {39, 35, 7}, + {39, 36, 27}, + {39, 36, 42}, + {39, 38, 43}, + {39, 39, 44}, + {39, 40, 28}, + {39, 42, 11}, + {40, 4, 45}, + {40, 6, 16}, + {40, 7, 19}, + {40, 7, 20}, + {40, 8, 34}, + {40, 8, 35}, + {40, 12, 14}, + {40, 12, 25}, + {40, 13, 6}, + {40, 16, 20}, + {40, 16, 39}, + {40, 21, 39}, + {40, 26, 25}, + {40, 27, 9}, + {40, 27, 15}, + {40, 27, 25}, + {40, 29, 24}, + {40, 31, 36}, + {40, 33, 42}, + {40, 36, 9}, + {40, 36, 41}, + {40, 39, 27}, + {40, 39, 29}, + {40, 39, 32}, + {40, 41, 16}, + {40, 42, 33}, + {40, 45, 34}, + {41, 5, 5}, + {41, 5, 6}, + {41, 5, 11}, + {41, 7, 16}, + {41, 8, 5}, + {41, 8, 19}, + {41, 8, 40}, + {41, 10, 10}, + {41, 10, 21}, + {41, 10, 23}, + {41, 10, 42}, + {41, 21, 20}, + {41, 21, 22}, + {41, 23, 40}, + {41, 26, 27}, + {41, 27, 9}, + {41, 27, 39}, + {41, 27, 40}, + {41, 29, 31}, + {41, 30, 30}, + {41, 33, 7}, + {41, 36, 38}, + {41, 37, 21}, + {41, 37, 27}, + {41, 37, 30}, + {41, 39, 11}, + {41, 40, 6}, + {41, 40, 24}, + {41, 42, 33}, + {41, 44, 18}, + {42, 6, 24}, + {42, 7, 26}, + {42, 11, 19}, + {42, 11, 28}, + {42, 12, 43}, + {42, 16, 36}, + {42, 24, 26}, + {42, 25, 42}, + {42, 29, 30}, + {42, 32, 8}, + {42, 32, 38}, + {42, 33, 34}, + {42, 37, 12}, + {42, 39, 40}, + {42, 43, 10}, + {43, 5, 15}, + {43, 5, 36}, + {43, 6, 15}, + {43, 6, 41}, + {43, 7, 24}, + {43, 7, 38}, + {43, 10, 12}, + {43, 12, 31}, + {43, 15, 21}, + {43, 17, 20}, + {43, 18, 27}, + {43, 20, 29}, + {43, 24, 22}, {43, 24, 36}, - {43, 25, 36}, - {43, 26, 41}, + {43, 25, 30}, + {43, 26, 33}, {43, 27, 17}, - {43, 28, 16}, - {43, 29, 6}, - {43, 30, 27}, - {43, 30, 33}, - {43, 34, 16}, - {43, 35, 15}, - {43, 35, 19}, - {43, 35, 44}, - {43, 38, 23}, - {43, 38, 32}, - {43, 40, 23}, - {43, 42, 9}, - {43, 44, 15}, - {44, 6, 13}, - {44, 6, 20}, - {44, 10, 34}, - {44, 11, 19}, - {44, 17, 12}, - {44, 17, 39}, - {44, 18, 30}, - {44, 18, 40}, - {44, 19, 39}, - {44, 19, 45}, - {44, 25, 14}, - {44, 25, 15}, - {44, 30, 25}, - {44, 34, 17}, - {44, 34, 41}, - {44, 35, 16}, - {44, 35, 37}, - {44, 36, 26}, - {44, 36, 40}, - {44, 37, 12}, - {44, 42, 30}, - {44, 43, 13}, - {44, 44, 31}, - {45, 8, 6}, - {45, 11, 11}, - {45, 12, 17}, - {45, 12, 41}, - {45, 13, 31}, - {45, 15, 27}, + {43, 29, 11}, + {43, 30, 8}, + {43, 30, 40}, + {43, 32, 27}, + {43, 35, 41}, + {43, 36, 12}, + {43, 36, 24}, + {43, 36, 40}, + {43, 36, 41}, + {43, 39, 43}, + {43, 40, 24}, + {43, 41, 25}, + {43, 42, 24}, + {43, 42, 42}, + {44, 6, 9}, + {44, 6, 15}, + {44, 6, 32}, + {44, 8, 32}, + {44, 10, 22}, + {44, 13, 6}, + {44, 13, 9}, + {44, 17, 18}, + {44, 18, 13}, + {44, 19, 15}, + {44, 20, 40}, + {44, 22, 29}, + {44, 23, 18}, + {44, 27, 6}, + {44, 27, 17}, + {44, 27, 29}, + {44, 31, 12}, + {44, 33, 12}, + {44, 39, 30}, + {45, 6, 19}, + {45, 6, 22}, + {45, 7, 17}, + {45, 9, 11}, + {45, 18, 31}, + {45, 19, 13}, {45, 21, 19}, - {45, 21, 30}, - {45, 22, 7}, - {45, 23, 6}, - {45, 24, 15}, - {45, 28, 24}, - {45, 28, 42}, - {45, 33, 43}, - {45, 37, 35}, - {45, 38, 20}, - {45, 39, 30}, - {45, 39, 43}, - {45, 40, 22}, - {45, 41, 18}, - {45, 42, 8}, - {45, 44, 29}, + {45, 24, 22}, + {45, 28, 10}, + {45, 32, 43}, + {45, 35, 20}, + {45, 37, 34}, + {45, 38, 22}, + {45, 39, 20}, + {45, 42, 22}, + {45, 43, 6}, }; diff --git a/develop/src/libsmm_acc_unittest_multiply.cpp b/develop/src/libsmm_acc_unittest_multiply.cpp index 614804a97d9..a5789b71cf0 100644 --- a/develop/src/libsmm_acc_unittest_multiply.cpp +++ b/develop/src/libsmm_acc_unittest_multiply.cpp @@ -54,6 +54,7 @@ int main(int argc, char** argv) { { 4, 5, 13}, { 4, 5, 25}, { 4, 5, 26}, + { 4, 5, 27}, { 4, 5, 28}, { 4, 5, 32}, { 4, 5, 45}, @@ -63,19 +64,20 @@ int main(int argc, char** argv) { { 4, 6, 7}, { 4, 6, 8}, { 4, 6, 9}, - { 4, 6, 10}, { 4, 7, 4}, { 4, 7, 5}, { 4, 7, 6}, { 4, 7, 7}, { 4, 7, 8}, { 4, 7, 9}, + { 4, 7, 10}, + { 4, 7, 12}, { 4, 7, 13}, + { 4, 7, 19}, { 4, 7, 25}, { 4, 7, 26}, { 4, 7, 28}, { 4, 7, 32}, - { 4, 7, 33}, { 4, 7, 45}, { 4, 8, 4}, { 4, 8, 5}, @@ -90,16 +92,18 @@ int main(int argc, char** argv) { { 4, 9, 8}, { 4, 9, 9}, { 4, 9, 13}, + { 4, 9, 16}, { 4, 9, 25}, { 4, 9, 26}, { 4, 9, 28}, { 4, 9, 32}, + { 4, 9, 35}, { 4, 9, 45}, { 4, 10, 4}, { 4, 10, 10}, { 4, 10, 15}, - { 4, 11, 29}, - { 4, 12, 36}, + { 4, 11, 23}, + { 4, 12, 9}, { 4, 13, 4}, { 4, 13, 5}, { 4, 13, 7}, @@ -109,18 +113,22 @@ int main(int argc, char** argv) { { 4, 13, 26}, { 4, 13, 28}, { 4, 13, 32}, - { 4, 13, 43}, { 4, 13, 45}, { 4, 15, 4}, { 4, 15, 10}, { 4, 15, 15}, - { 4, 22, 13}, - { 4, 23, 20}, + { 4, 15, 19}, + { 4, 17, 4}, + { 4, 17, 7}, + { 4, 17, 17}, + { 4, 20, 43}, { 4, 25, 4}, { 4, 25, 5}, { 4, 25, 7}, { 4, 25, 9}, + { 4, 25, 12}, { 4, 25, 13}, + { 4, 25, 19}, { 4, 25, 25}, { 4, 25, 26}, { 4, 25, 28}, @@ -128,33 +136,26 @@ int main(int argc, char** argv) { { 4, 25, 45}, { 4, 26, 4}, { 4, 26, 5}, - { 4, 26, 6}, { 4, 26, 7}, { 4, 26, 9}, { 4, 26, 13}, - { 4, 26, 15}, - { 4, 26, 20}, { 4, 26, 25}, { 4, 26, 26}, { 4, 26, 28}, - { 4, 26, 31}, { 4, 26, 32}, + { 4, 26, 44}, { 4, 26, 45}, - { 4, 27, 11}, - { 4, 27, 38}, + { 4, 27, 30}, { 4, 28, 4}, { 4, 28, 5}, { 4, 28, 7}, { 4, 28, 9}, { 4, 28, 13}, - { 4, 28, 22}, { 4, 28, 25}, { 4, 28, 26}, { 4, 28, 28}, { 4, 28, 32}, - { 4, 28, 42}, { 4, 28, 45}, - { 4, 30, 12}, { 4, 32, 4}, { 4, 32, 5}, { 4, 32, 7}, @@ -165,16 +166,8 @@ int main(int argc, char** argv) { { 4, 32, 28}, { 4, 32, 32}, { 4, 32, 45}, - { 4, 34, 33}, - { 4, 35, 4}, - { 4, 35, 38}, - { 4, 36, 29}, - { 4, 36, 43}, - { 4, 39, 45}, - { 4, 40, 34}, - { 4, 41, 15}, - { 4, 43, 16}, - { 4, 44, 42}, + { 4, 34, 32}, + { 4, 41, 6}, { 4, 45, 4}, { 4, 45, 5}, { 4, 45, 7}, @@ -206,7 +199,6 @@ int main(int argc, char** argv) { { 5, 5, 12}, { 5, 5, 13}, { 5, 5, 16}, - { 5, 5, 18}, { 5, 5, 24}, { 5, 5, 25}, { 5, 5, 26}, @@ -230,7 +222,6 @@ int main(int argc, char** argv) { { 5, 7, 26}, { 5, 7, 28}, { 5, 7, 32}, - { 5, 7, 40}, { 5, 7, 45}, { 5, 8, 4}, { 5, 8, 5}, @@ -238,7 +229,6 @@ int main(int argc, char** argv) { { 5, 8, 7}, { 5, 8, 8}, { 5, 8, 9}, - { 5, 8, 40}, { 5, 9, 4}, { 5, 9, 5}, { 5, 9, 6}, @@ -246,17 +236,19 @@ int main(int argc, char** argv) { { 5, 9, 8}, { 5, 9, 9}, { 5, 9, 13}, - { 5, 9, 23}, { 5, 9, 25}, { 5, 9, 26}, { 5, 9, 28}, { 5, 9, 32}, { 5, 9, 45}, + { 5, 10, 44}, + { 5, 11, 30}, { 5, 12, 5}, { 5, 12, 12}, { 5, 12, 13}, { 5, 12, 26}, { 5, 12, 32}, + { 5, 12, 44}, { 5, 13, 4}, { 5, 13, 5}, { 5, 13, 7}, @@ -268,33 +260,30 @@ int main(int argc, char** argv) { { 5, 13, 25}, { 5, 13, 26}, { 5, 13, 28}, - { 5, 13, 29}, { 5, 13, 32}, { 5, 13, 45}, + { 5, 15, 43}, { 5, 16, 5}, { 5, 16, 13}, { 5, 16, 16}, { 5, 16, 32}, - { 5, 17, 7}, - { 5, 17, 8}, - { 5, 19, 26}, - { 5, 19, 36}, - { 5, 20, 5}, - { 5, 20, 30}, - { 5, 22, 34}, - { 5, 23, 12}, - { 5, 23, 20}, + { 5, 18, 28}, + { 5, 18, 44}, + { 5, 22, 21}, + { 5, 23, 27}, + { 5, 23, 28}, { 5, 24, 5}, { 5, 24, 13}, { 5, 24, 24}, { 5, 24, 26}, { 5, 24, 32}, + { 5, 24, 39}, + { 5, 24, 44}, { 5, 25, 4}, { 5, 25, 5}, { 5, 25, 7}, { 5, 25, 9}, { 5, 25, 13}, - { 5, 25, 23}, { 5, 25, 25}, { 5, 25, 26}, { 5, 25, 28}, @@ -312,6 +301,7 @@ int main(int argc, char** argv) { { 5, 26, 28}, { 5, 26, 32}, { 5, 26, 45}, + { 5, 27, 39}, { 5, 28, 4}, { 5, 28, 5}, { 5, 28, 7}, @@ -322,7 +312,6 @@ int main(int argc, char** argv) { { 5, 28, 28}, { 5, 28, 32}, { 5, 28, 45}, - { 5, 29, 24}, { 5, 32, 4}, { 5, 32, 5}, { 5, 32, 7}, @@ -335,16 +324,10 @@ int main(int argc, char** argv) { { 5, 32, 26}, { 5, 32, 28}, { 5, 32, 32}, - { 5, 32, 37}, { 5, 32, 45}, - { 5, 33, 6}, - { 5, 33, 38}, - { 5, 35, 38}, - { 5, 37, 29}, - { 5, 38, 44}, - { 5, 39, 8}, - { 5, 39, 25}, - { 5, 40, 17}, + { 5, 35, 28}, + { 5, 40, 7}, + { 5, 42, 7}, { 5, 45, 4}, { 5, 45, 5}, { 5, 45, 7}, @@ -379,6 +362,7 @@ int main(int argc, char** argv) { { 6, 7, 7}, { 6, 7, 8}, { 6, 7, 9}, + { 6, 7, 42}, { 6, 8, 4}, { 6, 8, 5}, { 6, 8, 6}, @@ -391,25 +375,29 @@ int main(int argc, char** argv) { { 6, 9, 7}, { 6, 9, 8}, { 6, 9, 9}, - { 6, 12, 37}, - { 6, 13, 26}, - { 6, 17, 26}, - { 6, 17, 30}, - { 6, 18, 31}, - { 6, 20, 33}, - { 6, 20, 37}, - { 6, 21, 7}, - { 6, 23, 39}, - { 6, 26, 28}, - { 6, 27, 22}, - { 6, 28, 37}, - { 6, 30, 45}, - { 6, 32, 13}, - { 6, 33, 12}, - { 6, 33, 30}, - { 6, 33, 40}, - { 6, 37, 13}, - { 6, 42, 5}, + { 6, 12, 8}, + { 6, 14, 7}, + { 6, 15, 24}, + { 6, 15, 40}, + { 6, 16, 32}, + { 6, 17, 33}, + { 6, 18, 16}, + { 6, 20, 14}, + { 6, 21, 33}, + { 6, 24, 19}, + { 6, 27, 34}, + { 6, 28, 8}, + { 6, 28, 36}, + { 6, 29, 24}, + { 6, 30, 7}, + { 6, 31, 23}, + { 6, 33, 20}, + { 6, 35, 28}, + { 6, 36, 26}, + { 6, 38, 10}, + { 6, 38, 31}, + { 6, 41, 5}, + { 6, 42, 25}, { 7, 4, 4}, { 7, 4, 5}, { 7, 4, 6}, @@ -429,6 +417,7 @@ int main(int argc, char** argv) { { 7, 5, 8}, { 7, 5, 9}, { 7, 5, 13}, + { 7, 5, 24}, { 7, 5, 25}, { 7, 5, 26}, { 7, 5, 28}, @@ -440,7 +429,6 @@ int main(int argc, char** argv) { { 7, 6, 7}, { 7, 6, 8}, { 7, 6, 9}, - { 7, 6, 34}, { 7, 7, 4}, { 7, 7, 5}, { 7, 7, 6}, @@ -471,7 +459,7 @@ int main(int argc, char** argv) { { 7, 9, 28}, { 7, 9, 32}, { 7, 9, 45}, - { 7, 10, 44}, + { 7, 11, 5}, { 7, 13, 4}, { 7, 13, 5}, { 7, 13, 7}, @@ -481,18 +469,16 @@ int main(int argc, char** argv) { { 7, 13, 26}, { 7, 13, 28}, { 7, 13, 32}, - { 7, 13, 34}, + { 7, 13, 40}, { 7, 13, 45}, - { 7, 14, 21}, - { 7, 18, 4}, - { 7, 18, 35}, - { 7, 18, 38}, - { 7, 18, 40}, - { 7, 19, 39}, - { 7, 22, 18}, - { 7, 22, 23}, - { 7, 23, 4}, - { 7, 23, 9}, + { 7, 15, 11}, + { 7, 15, 30}, + { 7, 16, 10}, + { 7, 17, 7}, + { 7, 18, 9}, + { 7, 19, 8}, + { 7, 19, 14}, + { 7, 24, 32}, { 7, 25, 4}, { 7, 25, 5}, { 7, 25, 7}, @@ -505,7 +491,6 @@ int main(int argc, char** argv) { { 7, 25, 45}, { 7, 26, 4}, { 7, 26, 5}, - { 7, 26, 6}, { 7, 26, 7}, { 7, 26, 9}, { 7, 26, 13}, @@ -514,7 +499,6 @@ int main(int argc, char** argv) { { 7, 26, 28}, { 7, 26, 32}, { 7, 26, 45}, - { 7, 27, 10}, { 7, 28, 4}, { 7, 28, 5}, { 7, 28, 7}, @@ -525,7 +509,9 @@ int main(int argc, char** argv) { { 7, 28, 28}, { 7, 28, 32}, { 7, 28, 45}, - { 7, 30, 34}, + { 7, 29, 32}, + { 7, 30, 39}, + { 7, 31, 41}, { 7, 32, 4}, { 7, 32, 5}, { 7, 32, 7}, @@ -535,18 +521,13 @@ int main(int argc, char** argv) { { 7, 32, 26}, { 7, 32, 28}, { 7, 32, 32}, - { 7, 32, 43}, { 7, 32, 45}, - { 7, 33, 21}, - { 7, 33, 32}, - { 7, 35, 18}, - { 7, 36, 37}, - { 7, 37, 30}, - { 7, 37, 34}, - { 7, 38, 15}, - { 7, 40, 11}, - { 7, 41, 4}, - { 7, 42, 42}, + { 7, 33, 4}, + { 7, 34, 8}, + { 7, 36, 27}, + { 7, 36, 32}, + { 7, 40, 41}, + { 7, 44, 44}, { 7, 45, 4}, { 7, 45, 5}, { 7, 45, 7}, @@ -563,6 +544,7 @@ int main(int argc, char** argv) { { 8, 4, 7}, { 8, 4, 8}, { 8, 4, 9}, + { 8, 4, 14}, { 8, 5, 4}, { 8, 5, 5}, { 8, 5, 6}, @@ -575,45 +557,48 @@ int main(int argc, char** argv) { { 8, 6, 7}, { 8, 6, 8}, { 8, 6, 9}, - { 8, 6, 36}, { 8, 7, 4}, { 8, 7, 5}, { 8, 7, 6}, { 8, 7, 7}, { 8, 7, 8}, { 8, 7, 9}, - { 8, 7, 24}, + { 8, 7, 22}, { 8, 8, 4}, { 8, 8, 5}, { 8, 8, 6}, { 8, 8, 7}, { 8, 8, 8}, { 8, 8, 9}, - { 8, 8, 26}, + { 8, 8, 38}, { 8, 9, 4}, { 8, 9, 5}, { 8, 9, 6}, { 8, 9, 7}, { 8, 9, 8}, { 8, 9, 9}, - { 8, 9, 39}, - { 8, 13, 16}, - { 8, 13, 36}, - { 8, 15, 8}, - { 8, 16, 6}, - { 8, 16, 8}, - { 8, 16, 26}, - { 8, 17, 23}, - { 8, 17, 27}, - { 8, 17, 41}, - { 8, 24, 34}, - { 8, 27, 20}, - { 8, 28, 37}, - { 8, 29, 16}, - { 8, 31, 26}, - { 8, 33, 10}, - { 8, 43, 38}, - { 8, 44, 14}, + { 8, 9, 10}, + { 8, 10, 22}, + { 8, 11, 33}, + { 8, 13, 29}, + { 8, 14, 36}, + { 8, 16, 12}, + { 8, 17, 40}, + { 8, 23, 31}, + { 8, 23, 42}, + { 8, 25, 23}, + { 8, 26, 16}, + { 8, 28, 20}, + { 8, 30, 39}, + { 8, 34, 8}, + { 8, 35, 20}, + { 8, 36, 19}, + { 8, 37, 22}, + { 8, 37, 32}, + { 8, 39, 31}, + { 8, 39, 38}, + { 8, 40, 12}, + { 8, 44, 4}, { 9, 4, 4}, { 9, 4, 5}, { 9, 4, 6}, @@ -621,7 +606,6 @@ int main(int argc, char** argv) { { 9, 4, 8}, { 9, 4, 9}, { 9, 4, 13}, - { 9, 4, 23}, { 9, 4, 25}, { 9, 4, 26}, { 9, 4, 28}, @@ -645,6 +629,7 @@ int main(int argc, char** argv) { { 9, 6, 7}, { 9, 6, 8}, { 9, 6, 9}, + { 9, 6, 30}, { 9, 7, 4}, { 9, 7, 5}, { 9, 7, 6}, @@ -652,7 +637,7 @@ int main(int argc, char** argv) { { 9, 7, 8}, { 9, 7, 9}, { 9, 7, 13}, - { 9, 7, 23}, + { 9, 7, 16}, { 9, 7, 25}, { 9, 7, 26}, { 9, 7, 28}, @@ -664,7 +649,6 @@ int main(int argc, char** argv) { { 9, 8, 7}, { 9, 8, 8}, { 9, 8, 9}, - { 9, 8, 34}, { 9, 9, 4}, { 9, 9, 5}, { 9, 9, 6}, @@ -684,10 +668,11 @@ int main(int argc, char** argv) { { 9, 10, 10}, { 9, 10, 12}, { 9, 10, 32}, + { 9, 11, 25}, + { 9, 11, 28}, { 9, 12, 9}, { 9, 12, 10}, { 9, 12, 12}, - { 9, 12, 29}, { 9, 12, 32}, { 9, 13, 4}, { 9, 13, 5}, @@ -697,24 +682,22 @@ int main(int argc, char** argv) { { 9, 13, 25}, { 9, 13, 26}, { 9, 13, 28}, - { 9, 13, 29}, { 9, 13, 32}, { 9, 13, 45}, - { 9, 18, 38}, - { 9, 18, 45}, - { 9, 21, 7}, - { 9, 21, 13}, + { 9, 16, 18}, + { 9, 18, 21}, + { 9, 18, 33}, + { 9, 20, 11}, + { 9, 22, 8}, { 9, 22, 9}, { 9, 22, 22}, { 9, 22, 32}, - { 9, 22, 33}, - { 9, 24, 23}, + { 9, 24, 14}, { 9, 25, 4}, { 9, 25, 5}, { 9, 25, 7}, { 9, 25, 9}, { 9, 25, 13}, - { 9, 25, 21}, { 9, 25, 25}, { 9, 25, 26}, { 9, 25, 28}, @@ -722,7 +705,6 @@ int main(int argc, char** argv) { { 9, 25, 45}, { 9, 26, 4}, { 9, 26, 5}, - { 9, 26, 6}, { 9, 26, 7}, { 9, 26, 9}, { 9, 26, 13}, @@ -738,15 +720,9 @@ int main(int argc, char** argv) { { 9, 28, 13}, { 9, 28, 25}, { 9, 28, 26}, - { 9, 28, 27}, { 9, 28, 28}, { 9, 28, 32}, { 9, 28, 45}, - { 9, 29, 15}, - { 9, 29, 41}, - { 9, 30, 37}, - { 9, 31, 20}, - { 9, 31, 31}, { 9, 32, 4}, { 9, 32, 5}, { 9, 32, 7}, @@ -760,10 +736,19 @@ int main(int argc, char** argv) { { 9, 32, 28}, { 9, 32, 32}, { 9, 32, 45}, - { 9, 36, 17}, - { 9, 38, 24}, - { 9, 39, 35}, - { 9, 41, 45}, + { 9, 34, 34}, + { 9, 36, 9}, + { 9, 36, 21}, + { 9, 37, 31}, + { 9, 38, 41}, + { 9, 39, 30}, + { 9, 41, 29}, + { 9, 41, 30}, + { 9, 41, 35}, + { 9, 42, 29}, + { 9, 43, 22}, + { 9, 44, 15}, + { 9, 44, 25}, { 9, 45, 4}, { 9, 45, 5}, { 9, 45, 7}, @@ -777,15 +762,13 @@ int main(int argc, char** argv) { {10, 4, 4}, {10, 4, 10}, {10, 4, 15}, - {10, 4, 37}, - {10, 5, 18}, + {10, 6, 34}, {10, 6, 38}, - {10, 7, 45}, {10, 9, 9}, {10, 9, 10}, {10, 9, 12}, - {10, 9, 30}, {10, 9, 32}, + {10, 9, 43}, {10, 10, 4}, {10, 10, 9}, {10, 10, 10}, @@ -796,100 +779,100 @@ int main(int argc, char** argv) { {10, 12, 9}, {10, 12, 10}, {10, 12, 12}, - {10, 12, 29}, + {10, 12, 28}, + {10, 12, 30}, {10, 12, 32}, - {10, 13, 8}, {10, 13, 29}, {10, 15, 4}, {10, 15, 10}, {10, 15, 15}, - {10, 16, 18}, - {10, 16, 44}, - {10, 18, 24}, - {10, 18, 27}, - {10, 18, 28}, - {10, 20, 18}, - {10, 22, 14}, - {10, 23, 6}, - {10, 23, 37}, - {10, 24, 16}, - {10, 26, 9}, - {10, 29, 45}, + {10, 16, 31}, + {10, 18, 17}, + {10, 19, 36}, + {10, 20, 26}, + {10, 24, 19}, + {10, 24, 35}, + {10, 27, 12}, + {10, 30, 23}, + {10, 31, 41}, + {10, 32, 6}, {10, 32, 9}, {10, 32, 10}, {10, 32, 12}, + {10, 32, 25}, {10, 32, 32}, - {10, 32, 43}, - {10, 35, 25}, - {10, 35, 40}, - {10, 35, 45}, - {10, 37, 41}, - {10, 42, 20}, - {10, 43, 9}, + {10, 32, 36}, + {10, 32, 38}, + {10, 36, 31}, + {10, 36, 39}, + {10, 37, 17}, + {10, 40, 28}, + {10, 41, 23}, + {10, 41, 27}, + {10, 42, 22}, + {10, 43, 23}, {10, 44, 25}, - {10, 45, 21}, - {10, 45, 22}, - {11, 7, 26}, - {11, 8, 37}, - {11, 9, 7}, - {11, 9, 44}, + {11, 5, 12}, + {11, 5, 18}, + {11, 7, 37}, {11, 11, 11}, {11, 11, 12}, {11, 11, 20}, {11, 11, 25}, {11, 11, 32}, - {11, 12, 9}, {11, 12, 11}, {11, 12, 12}, {11, 12, 20}, {11, 12, 25}, {11, 12, 32}, - {11, 13, 17}, - {11, 13, 29}, - {11, 13, 35}, - {11, 14, 25}, - {11, 15, 6}, - {11, 16, 33}, - {11, 19, 39}, + {11, 13, 27}, + {11, 15, 32}, + {11, 17, 8}, + {11, 17, 20}, + {11, 17, 28}, + {11, 19, 6}, + {11, 19, 45}, {11, 20, 11}, {11, 20, 12}, {11, 20, 20}, {11, 20, 25}, {11, 20, 32}, - {11, 21, 7}, - {11, 24, 20}, - {11, 24, 35}, + {11, 22, 17}, + {11, 22, 24}, + {11, 23, 38}, + {11, 24, 13}, {11, 25, 11}, {11, 25, 12}, {11, 25, 20}, {11, 25, 25}, {11, 25, 32}, - {11, 26, 45}, - {11, 29, 16}, - {11, 29, 17}, - {11, 29, 44}, - {11, 30, 18}, - {11, 30, 19}, - {11, 32, 4}, + {11, 28, 39}, {11, 32, 11}, {11, 32, 12}, {11, 32, 20}, {11, 32, 25}, {11, 32, 32}, - {11, 34, 10}, - {11, 41, 43}, + {11, 33, 38}, + {11, 37, 14}, + {11, 37, 36}, + {11, 39, 11}, + {11, 39, 24}, + {11, 40, 42}, + {11, 42, 5}, + {11, 42, 45}, + {11, 43, 37}, + {12, 4, 24}, {12, 5, 5}, {12, 5, 12}, {12, 5, 13}, - {12, 5, 23}, {12, 5, 26}, {12, 5, 32}, - {12, 6, 34}, - {12, 6, 44}, + {12, 6, 36}, + {12, 7, 12}, + {12, 7, 40}, {12, 9, 9}, {12, 9, 10}, {12, 9, 12}, - {12, 9, 18}, {12, 9, 32}, {12, 10, 9}, {12, 10, 10}, @@ -898,10 +881,9 @@ int main(int argc, char** argv) { {12, 11, 11}, {12, 11, 12}, {12, 11, 20}, - {12, 11, 22}, + {12, 11, 23}, {12, 11, 25}, {12, 11, 32}, - {12, 12, 4}, {12, 12, 5}, {12, 12, 9}, {12, 12, 10}, @@ -912,29 +894,28 @@ int main(int argc, char** argv) { {12, 12, 20}, {12, 12, 25}, {12, 12, 26}, - {12, 12, 29}, {12, 12, 32}, {12, 13, 5}, + {12, 13, 11}, {12, 13, 12}, {12, 13, 13}, {12, 13, 26}, {12, 13, 32}, - {12, 14, 13}, + {12, 14, 7}, + {12, 14, 14}, + {12, 15, 17}, {12, 16, 12}, - {12, 16, 13}, {12, 16, 16}, {12, 16, 32}, - {12, 17, 25}, - {12, 19, 33}, - {12, 19, 38}, - {12, 19, 39}, + {12, 17, 43}, + {12, 19, 30}, {12, 20, 11}, {12, 20, 12}, {12, 20, 20}, {12, 20, 25}, {12, 20, 32}, - {12, 20, 42}, - {12, 22, 19}, + {12, 22, 13}, + {12, 24, 5}, {12, 25, 11}, {12, 25, 12}, {12, 25, 20}, @@ -945,11 +926,7 @@ int main(int argc, char** argv) { {12, 26, 13}, {12, 26, 26}, {12, 26, 32}, - {12, 28, 4}, - {12, 29, 4}, - {12, 29, 18}, - {12, 29, 20}, - {12, 29, 36}, + {12, 30, 43}, {12, 32, 5}, {12, 32, 9}, {12, 32, 10}, @@ -961,14 +938,17 @@ int main(int argc, char** argv) { {12, 32, 25}, {12, 32, 26}, {12, 32, 32}, - {12, 33, 13}, - {12, 37, 11}, - {12, 37, 33}, - {12, 39, 30}, - {12, 39, 35}, - {12, 41, 17}, - {12, 42, 29}, - {12, 45, 4}, + {12, 32, 42}, + {12, 33, 39}, + {12, 35, 36}, + {12, 38, 43}, + {12, 40, 5}, + {12, 40, 9}, + {12, 43, 5}, + {12, 43, 10}, + {12, 43, 14}, + {12, 44, 9}, + {12, 44, 45}, {13, 4, 4}, {13, 4, 5}, {13, 4, 7}, @@ -986,18 +966,19 @@ int main(int argc, char** argv) { {13, 5, 12}, {13, 5, 13}, {13, 5, 16}, - {13, 5, 17}, {13, 5, 24}, {13, 5, 25}, {13, 5, 26}, {13, 5, 28}, {13, 5, 32}, + {13, 5, 36}, {13, 5, 45}, {13, 7, 4}, {13, 7, 5}, {13, 7, 7}, {13, 7, 9}, {13, 7, 13}, + {13, 7, 14}, {13, 7, 25}, {13, 7, 26}, {13, 7, 28}, @@ -1007,19 +988,20 @@ int main(int argc, char** argv) { {13, 9, 5}, {13, 9, 7}, {13, 9, 9}, - {13, 9, 10}, {13, 9, 13}, {13, 9, 25}, {13, 9, 26}, + {13, 9, 27}, {13, 9, 28}, {13, 9, 32}, + {13, 9, 34}, {13, 9, 45}, {13, 12, 5}, - {13, 12, 11}, {13, 12, 12}, {13, 12, 13}, {13, 12, 26}, {13, 12, 32}, + {13, 12, 42}, {13, 13, 4}, {13, 13, 5}, {13, 13, 7}, @@ -1028,6 +1010,7 @@ int main(int argc, char** argv) { {13, 13, 13}, {13, 13, 14}, {13, 13, 16}, + {13, 13, 23}, {13, 13, 24}, {13, 13, 25}, {13, 13, 26}, @@ -1036,16 +1019,17 @@ int main(int argc, char** argv) { {13, 13, 45}, {13, 14, 13}, {13, 14, 14}, - {13, 14, 18}, {13, 14, 25}, {13, 14, 26}, {13, 14, 32}, + {13, 14, 34}, {13, 16, 5}, + {13, 16, 11}, {13, 16, 13}, {13, 16, 16}, + {13, 16, 26}, {13, 16, 32}, - {13, 17, 9}, - {13, 20, 12}, + {13, 20, 38}, {13, 24, 5}, {13, 24, 13}, {13, 24, 24}, @@ -1057,10 +1041,12 @@ int main(int argc, char** argv) { {13, 25, 9}, {13, 25, 13}, {13, 25, 14}, + {13, 25, 23}, {13, 25, 25}, {13, 25, 26}, {13, 25, 28}, {13, 25, 32}, + {13, 25, 41}, {13, 25, 45}, {13, 26, 4}, {13, 26, 5}, @@ -1075,20 +1061,22 @@ int main(int argc, char** argv) { {13, 26, 26}, {13, 26, 28}, {13, 26, 32}, + {13, 26, 43}, {13, 26, 45}, - {13, 27, 10}, + {13, 27, 8}, {13, 28, 4}, {13, 28, 5}, {13, 28, 7}, {13, 28, 9}, {13, 28, 13}, + {13, 28, 20}, {13, 28, 25}, {13, 28, 26}, {13, 28, 28}, {13, 28, 32}, {13, 28, 45}, - {13, 30, 8}, - {13, 31, 12}, + {13, 30, 13}, + {13, 31, 19}, {13, 32, 4}, {13, 32, 5}, {13, 32, 7}, @@ -1102,14 +1090,15 @@ int main(int argc, char** argv) { {13, 32, 26}, {13, 32, 28}, {13, 32, 32}, + {13, 32, 39}, {13, 32, 45}, - {13, 33, 33}, - {13, 37, 44}, - {13, 39, 23}, - {13, 40, 14}, - {13, 41, 29}, - {13, 42, 38}, - {13, 44, 15}, + {13, 33, 40}, + {13, 35, 26}, + {13, 37, 7}, + {13, 39, 27}, + {13, 41, 34}, + {13, 43, 34}, + {13, 44, 25}, {13, 45, 4}, {13, 45, 5}, {13, 45, 7}, @@ -1120,111 +1109,120 @@ int main(int argc, char** argv) { {13, 45, 28}, {13, 45, 32}, {13, 45, 45}, - {14, 9, 6}, - {14, 9, 38}, - {14, 12, 4}, + {14, 4, 5}, + {14, 5, 7}, + {14, 5, 43}, + {14, 6, 32}, + {14, 7, 43}, + {14, 10, 22}, + {14, 13, 4}, {14, 13, 13}, {14, 13, 14}, {14, 13, 25}, {14, 13, 26}, {14, 13, 32}, - {14, 13, 35}, {14, 14, 13}, {14, 14, 14}, {14, 14, 16}, + {14, 14, 19}, {14, 14, 25}, {14, 14, 26}, {14, 14, 29}, {14, 14, 32}, + {14, 16, 8}, {14, 16, 14}, {14, 16, 16}, {14, 16, 29}, - {14, 16, 43}, - {14, 19, 11}, - {14, 19, 39}, - {14, 20, 12}, - {14, 21, 16}, - {14, 21, 41}, - {14, 23, 30}, - {14, 24, 40}, + {14, 18, 45}, + {14, 22, 35}, + {14, 23, 10}, + {14, 24, 31}, + {14, 24, 33}, {14, 25, 13}, {14, 25, 14}, {14, 25, 25}, {14, 25, 26}, + {14, 25, 30}, {14, 25, 32}, - {14, 25, 33}, + {14, 26, 9}, {14, 26, 13}, {14, 26, 14}, - {14, 26, 16}, {14, 26, 25}, {14, 26, 26}, {14, 26, 32}, + {14, 28, 22}, {14, 29, 14}, {14, 29, 16}, {14, 29, 29}, {14, 29, 32}, - {14, 30, 22}, - {14, 31, 35}, {14, 32, 13}, {14, 32, 14}, {14, 32, 25}, {14, 32, 26}, {14, 32, 29}, - {14, 32, 30}, {14, 32, 32}, - {14, 34, 29}, - {14, 34, 30}, - {14, 34, 36}, - {14, 34, 40}, - {14, 35, 32}, - {14, 36, 26}, - {14, 40, 38}, - {14, 43, 18}, - {14, 44, 17}, - {14, 44, 22}, + {14, 32, 44}, + {14, 33, 32}, + {14, 34, 43}, + {14, 35, 33}, + {14, 36, 28}, + {14, 37, 17}, + {14, 37, 41}, + {14, 38, 33}, + {14, 38, 36}, + {14, 40, 25}, + {14, 41, 23}, + {14, 42, 15}, + {14, 44, 18}, + {14, 44, 44}, + {14, 45, 14}, + {14, 45, 15}, + {14, 45, 22}, {15, 4, 4}, {15, 4, 10}, {15, 4, 15}, - {15, 4, 16}, - {15, 4, 45}, - {15, 5, 41}, - {15, 8, 17}, + {15, 5, 40}, + {15, 9, 35}, + {15, 9, 37}, {15, 10, 4}, {15, 10, 10}, {15, 10, 15}, - {15, 10, 22}, - {15, 11, 30}, - {15, 13, 37}, - {15, 14, 39}, + {15, 14, 23}, {15, 15, 4}, + {15, 15, 9}, {15, 15, 10}, {15, 15, 15}, - {15, 15, 37}, - {15, 16, 33}, - {15, 18, 15}, - {15, 18, 38}, - {15, 19, 34}, - {15, 20, 27}, - {15, 21, 42}, - {15, 25, 18}, - {15, 26, 14}, - {15, 27, 45}, - {15, 28, 11}, - {15, 28, 14}, - {15, 30, 15}, - {15, 30, 42}, - {15, 32, 18}, - {15, 37, 32}, - {15, 38, 43}, - {15, 42, 10}, - {15, 44, 14}, - {15, 45, 42}, + {15, 17, 24}, + {15, 18, 37}, + {15, 20, 33}, + {15, 21, 9}, + {15, 22, 28}, + {15, 26, 26}, + {15, 26, 27}, + {15, 28, 16}, + {15, 30, 13}, + {15, 30, 27}, + {15, 30, 32}, + {15, 32, 38}, + {15, 32, 39}, + {15, 33, 42}, + {15, 40, 44}, + {15, 42, 41}, + {15, 43, 28}, + {15, 43, 43}, + {15, 45, 9}, + {15, 45, 27}, + {16, 4, 33}, + {16, 4, 44}, {16, 5, 5}, {16, 5, 13}, {16, 5, 16}, {16, 5, 32}, - {16, 6, 15}, - {16, 7, 43}, + {16, 6, 13}, + {16, 8, 17}, + {16, 8, 34}, + {16, 9, 22}, + {16, 11, 37}, {16, 12, 12}, {16, 12, 16}, {16, 12, 32}, @@ -1232,12 +1230,11 @@ int main(int argc, char** argv) { {16, 13, 13}, {16, 13, 16}, {16, 13, 32}, - {16, 14, 8}, + {16, 13, 42}, {16, 14, 14}, {16, 14, 16}, {16, 14, 29}, - {16, 15, 6}, - {16, 15, 41}, + {16, 15, 31}, {16, 16, 5}, {16, 16, 12}, {16, 16, 13}, @@ -1245,104 +1242,102 @@ int main(int argc, char** argv) { {16, 16, 16}, {16, 16, 29}, {16, 16, 32}, - {16, 17, 9}, - {16, 17, 25}, - {16, 27, 4}, - {16, 29, 13}, + {16, 16, 43}, + {16, 18, 17}, + {16, 20, 14}, + {16, 24, 32}, + {16, 25, 30}, + {16, 28, 36}, {16, 29, 14}, {16, 29, 16}, {16, 29, 29}, - {16, 31, 6}, + {16, 31, 14}, + {16, 31, 38}, {16, 32, 5}, - {16, 32, 11}, {16, 32, 12}, {16, 32, 13}, - {16, 32, 14}, {16, 32, 16}, {16, 32, 32}, - {16, 34, 9}, - {16, 34, 13}, - {16, 37, 43}, - {16, 39, 38}, - {16, 40, 13}, - {16, 40, 17}, - {16, 40, 20}, - {16, 42, 27}, - {16, 43, 6}, - {17, 5, 28}, - {17, 6, 37}, - {17, 7, 38}, - {17, 8, 4}, - {17, 9, 4}, - {17, 12, 24}, - {17, 15, 15}, + {16, 34, 35}, + {16, 42, 45}, + {16, 43, 41}, + {16, 44, 14}, + {16, 45, 14}, + {17, 6, 12}, + {17, 8, 36}, + {17, 11, 45}, + {17, 14, 45}, + {17, 15, 37}, + {17, 16, 14}, + {17, 16, 39}, {17, 17, 17}, - {17, 17, 43}, - {17, 18, 23}, - {17, 20, 4}, - {17, 20, 18}, - {17, 21, 35}, - {17, 22, 18}, - {17, 23, 39}, - {17, 29, 7}, - {17, 29, 13}, - {17, 29, 16}, - {17, 29, 45}, - {17, 30, 23}, - {17, 38, 43}, - {17, 39, 11}, - {17, 39, 31}, - {17, 41, 5}, - {17, 42, 19}, - {17, 42, 32}, - {17, 44, 27}, - {18, 8, 35}, - {18, 13, 20}, - {18, 13, 38}, - {18, 17, 25}, + {17, 18, 12}, + {17, 20, 8}, + {17, 23, 16}, + {17, 24, 23}, + {17, 26, 22}, + {17, 27, 23}, + {17, 28, 26}, + {17, 28, 29}, + {17, 28, 37}, + {17, 34, 12}, + {17, 36, 16}, + {17, 38, 9}, + {17, 38, 12}, + {17, 39, 5}, + {17, 44, 15}, + {18, 5, 17}, + {18, 7, 28}, + {18, 10, 30}, + {18, 10, 36}, + {18, 10, 45}, + {18, 13, 11}, + {18, 13, 43}, + {18, 15, 38}, + {18, 17, 28}, + {18, 17, 38}, {18, 18, 18}, - {18, 25, 14}, - {18, 26, 20}, - {18, 28, 9}, - {18, 30, 9}, - {18, 30, 39}, - {18, 33, 41}, - {18, 34, 7}, - {18, 34, 8}, - {18, 34, 10}, - {18, 36, 15}, - {18, 38, 16}, - {18, 41, 9}, - {18, 41, 19}, - {18, 43, 15}, - {18, 43, 30}, - {18, 44, 22}, - {18, 44, 42}, - {18, 45, 5}, - {19, 4, 27}, - {19, 4, 31}, - {19, 5, 5}, - {19, 5, 15}, - {19, 7, 27}, - {19, 11, 18}, - {19, 12, 31}, - {19, 13, 27}, - {19, 13, 31}, - {19, 15, 43}, - {19, 17, 22}, - {19, 19, 7}, + {18, 19, 9}, + {18, 21, 42}, + {18, 22, 14}, + {18, 24, 24}, + {18, 26, 17}, + {18, 27, 23}, + {18, 27, 37}, + {18, 28, 29}, + {18, 35, 19}, + {18, 36, 10}, + {18, 36, 22}, + {18, 36, 40}, + {18, 41, 22}, + {18, 41, 41}, + {18, 43, 25}, + {18, 43, 32}, + {18, 44, 29}, + {18, 44, 31}, + {19, 6, 36}, + {19, 12, 25}, + {19, 13, 30}, + {19, 13, 33}, + {19, 17, 28}, {19, 19, 19}, - {19, 21, 5}, - {19, 23, 20}, - {19, 29, 13}, - {19, 31, 11}, - {19, 39, 18}, - {19, 40, 6}, - {19, 43, 18}, - {19, 45, 36}, - {20, 5, 16}, - {20, 8, 19}, - {20, 8, 22}, + {19, 20, 21}, + {19, 22, 43}, + {19, 26, 41}, + {19, 27, 29}, + {19, 28, 22}, + {19, 28, 35}, + {19, 32, 11}, + {19, 40, 34}, + {19, 42, 20}, + {19, 42, 22}, + {19, 43, 22}, + {19, 44, 28}, + {19, 44, 33}, + {20, 4, 41}, + {20, 7, 23}, + {20, 10, 30}, + {20, 10, 43}, {20, 11, 11}, {20, 11, 12}, {20, 11, 20}, @@ -1351,189 +1346,177 @@ int main(int argc, char** argv) { {20, 12, 11}, {20, 12, 12}, {20, 12, 20}, - {20, 12, 24}, {20, 12, 25}, {20, 12, 32}, - {20, 12, 39}, - {20, 14, 37}, - {20, 15, 7}, - {20, 16, 30}, - {20, 18, 22}, + {20, 13, 12}, + {20, 13, 32}, + {20, 16, 25}, + {20, 17, 30}, + {20, 18, 25}, {20, 20, 11}, {20, 20, 12}, {20, 20, 20}, + {20, 20, 22}, {20, 20, 25}, {20, 20, 32}, - {20, 21, 18}, - {20, 23, 32}, + {20, 21, 32}, + {20, 22, 43}, + {20, 24, 41}, {20, 25, 11}, {20, 25, 12}, {20, 25, 20}, {20, 25, 25}, {20, 25, 32}, - {20, 29, 7}, - {20, 31, 17}, - {20, 32, 8}, + {20, 27, 29}, + {20, 29, 17}, + {20, 30, 31}, {20, 32, 11}, {20, 32, 12}, - {20, 32, 18}, {20, 32, 20}, {20, 32, 25}, {20, 32, 32}, - {20, 34, 25}, - {20, 35, 29}, - {20, 36, 18}, - {20, 37, 9}, - {20, 44, 35}, - {20, 45, 5}, - {21, 5, 14}, - {21, 6, 42}, - {21, 8, 6}, - {21, 11, 20}, - {21, 13, 29}, - {21, 14, 11}, - {21, 14, 18}, - {21, 15, 21}, - {21, 20, 43}, + {20, 34, 11}, + {20, 34, 37}, + {20, 38, 28}, + {20, 38, 29}, + {20, 38, 39}, + {20, 39, 35}, + {20, 45, 43}, + {21, 7, 15}, + {21, 7, 20}, + {21, 8, 18}, + {21, 9, 6}, + {21, 9, 36}, + {21, 11, 36}, + {21, 14, 43}, + {21, 18, 35}, + {21, 20, 29}, {21, 21, 21}, - {21, 23, 29}, - {21, 26, 30}, - {21, 27, 17}, - {21, 30, 5}, - {21, 32, 29}, - {21, 32, 44}, - {21, 34, 28}, - {21, 37, 19}, - {21, 37, 37}, - {21, 38, 45}, - {21, 39, 23}, - {21, 43, 12}, - {21, 44, 29}, - {21, 45, 6}, - {22, 5, 40}, - {22, 6, 10}, + {21, 26, 6}, + {21, 26, 21}, + {21, 33, 32}, + {21, 36, 34}, + {21, 36, 37}, + {21, 37, 38}, + {21, 40, 32}, + {21, 41, 37}, + {21, 42, 43}, + {21, 43, 42}, + {22, 4, 24}, + {22, 6, 38}, + {22, 8, 15}, {22, 9, 9}, + {22, 9, 11}, {22, 9, 22}, {22, 9, 32}, - {22, 10, 7}, - {22, 15, 4}, - {22, 17, 6}, - {22, 18, 24}, - {22, 20, 45}, + {22, 10, 37}, + {22, 11, 38}, + {22, 13, 11}, + {22, 14, 4}, + {22, 16, 26}, + {22, 16, 42}, + {22, 17, 45}, + {22, 18, 6}, + {22, 21, 36}, {22, 22, 9}, {22, 22, 22}, {22, 22, 32}, - {22, 24, 42}, - {22, 25, 13}, - {22, 25, 29}, - {22, 26, 33}, - {22, 30, 11}, - {22, 30, 20}, - {22, 30, 35}, + {22, 25, 39}, + {22, 27, 9}, + {22, 28, 32}, + {22, 31, 17}, {22, 32, 9}, - {22, 32, 13}, - {22, 32, 16}, {22, 32, 22}, {22, 32, 32}, - {22, 32, 39}, - {22, 33, 4}, - {22, 33, 10}, - {22, 33, 22}, - {22, 33, 30}, - {22, 34, 19}, - {22, 35, 45}, - {22, 40, 43}, - {22, 42, 11}, - {22, 42, 21}, - {23, 6, 6}, - {23, 11, 4}, - {23, 13, 38}, - {23, 18, 32}, - {23, 20, 12}, + {22, 32, 40}, + {22, 33, 44}, + {22, 36, 35}, + {22, 40, 8}, + {22, 41, 13}, + {22, 43, 5}, + {22, 45, 4}, + {23, 4, 44}, + {23, 7, 24}, + {23, 8, 28}, + {23, 10, 45}, + {23, 14, 8}, + {23, 16, 38}, + {23, 18, 23}, + {23, 19, 14}, + {23, 19, 19}, + {23, 19, 33}, + {23, 22, 14}, {23, 23, 23}, - {23, 24, 6}, - {23, 25, 24}, - {23, 25, 42}, - {23, 27, 18}, - {23, 27, 27}, - {23, 29, 18}, + {23, 25, 9}, + {23, 25, 29}, + {23, 27, 31}, + {23, 28, 43}, {23, 30, 24}, - {23, 31, 15}, - {23, 31, 31}, - {23, 31, 37}, - {23, 32, 9}, - {23, 35, 39}, - {23, 36, 17}, - {23, 36, 39}, - {23, 38, 23}, - {23, 40, 12}, - {23, 41, 6}, - {23, 45, 9}, + {23, 31, 16}, + {23, 32, 41}, + {23, 35, 6}, + {23, 35, 30}, + {23, 39, 14}, + {23, 39, 21}, + {23, 40, 10}, + {23, 40, 44}, + {23, 42, 36}, + {24, 4, 37}, {24, 5, 5}, {24, 5, 13}, - {24, 5, 21}, {24, 5, 24}, {24, 5, 26}, {24, 5, 32}, - {24, 5, 40}, - {24, 6, 8}, - {24, 6, 35}, - {24, 7, 34}, - {24, 8, 23}, - {24, 8, 24}, - {24, 9, 37}, - {24, 10, 16}, - {24, 12, 8}, + {24, 9, 18}, + {24, 9, 31}, + {24, 12, 4}, {24, 13, 5}, {24, 13, 13}, - {24, 13, 23}, {24, 13, 24}, {24, 13, 26}, {24, 13, 32}, - {24, 16, 6}, - {24, 16, 19}, - {24, 18, 10}, - {24, 19, 36}, - {24, 20, 4}, - {24, 23, 28}, + {24, 15, 13}, + {24, 16, 30}, + {24, 16, 44}, + {24, 17, 35}, + {24, 20, 44}, + {24, 22, 29}, + {24, 23, 29}, + {24, 23, 32}, {24, 24, 5}, {24, 24, 13}, {24, 24, 24}, {24, 24, 26}, {24, 24, 32}, - {24, 24, 43}, - {24, 25, 31}, - {24, 25, 39}, + {24, 25, 37}, {24, 26, 5}, {24, 26, 13}, {24, 26, 24}, {24, 26, 26}, {24, 26, 32}, - {24, 26, 38}, - {24, 30, 23}, - {24, 31, 45}, + {24, 28, 42}, + {24, 29, 7}, + {24, 30, 9}, + {24, 30, 16}, + {24, 31, 19}, {24, 32, 5}, - {24, 32, 11}, {24, 32, 13}, {24, 32, 24}, {24, 32, 26}, {24, 32, 32}, - {24, 35, 9}, - {24, 35, 19}, - {24, 36, 6}, - {24, 39, 19}, - {24, 40, 14}, - {24, 42, 6}, - {24, 42, 11}, - {24, 42, 19}, - {24, 43, 11}, - {24, 43, 31}, + {24, 32, 38}, + {24, 33, 15}, + {24, 34, 10}, + {24, 35, 29}, + {24, 40, 24}, + {24, 41, 14}, + {24, 43, 43}, + {24, 44, 42}, {25, 4, 4}, {25, 4, 5}, {25, 4, 7}, {25, 4, 9}, {25, 4, 13}, - {25, 4, 15}, {25, 4, 25}, {25, 4, 26}, {25, 4, 28}, @@ -1548,20 +1531,19 @@ int main(int argc, char** argv) { {25, 5, 26}, {25, 5, 28}, {25, 5, 32}, - {25, 5, 44}, {25, 5, 45}, + {25, 6, 18}, {25, 7, 4}, {25, 7, 5}, {25, 7, 7}, {25, 7, 9}, {25, 7, 13}, - {25, 7, 19}, {25, 7, 25}, {25, 7, 26}, {25, 7, 28}, {25, 7, 32}, {25, 7, 45}, - {25, 8, 37}, + {25, 8, 25}, {25, 9, 4}, {25, 9, 5}, {25, 9, 7}, @@ -1570,23 +1552,19 @@ int main(int argc, char** argv) { {25, 9, 25}, {25, 9, 26}, {25, 9, 28}, - {25, 9, 29}, {25, 9, 32}, {25, 9, 45}, - {25, 10, 26}, - {25, 10, 40}, {25, 11, 11}, {25, 11, 12}, {25, 11, 20}, {25, 11, 25}, {25, 11, 32}, - {25, 12, 10}, {25, 12, 11}, {25, 12, 12}, + {25, 12, 16}, {25, 12, 20}, {25, 12, 25}, {25, 12, 32}, - {25, 12, 33}, {25, 13, 4}, {25, 13, 5}, {25, 13, 7}, @@ -1603,18 +1581,16 @@ int main(int argc, char** argv) { {25, 14, 25}, {25, 14, 26}, {25, 14, 32}, - {25, 15, 44}, - {25, 17, 39}, - {25, 19, 8}, + {25, 18, 26}, + {25, 18, 45}, + {25, 19, 16}, {25, 20, 11}, {25, 20, 12}, {25, 20, 20}, {25, 20, 25}, {25, 20, 32}, - {25, 20, 43}, - {25, 21, 7}, - {25, 23, 30}, - {25, 24, 28}, + {25, 20, 38}, + {25, 22, 29}, {25, 25, 4}, {25, 25, 5}, {25, 25, 7}, @@ -1623,7 +1599,6 @@ int main(int argc, char** argv) { {25, 25, 12}, {25, 25, 13}, {25, 25, 14}, - {25, 25, 15}, {25, 25, 20}, {25, 25, 25}, {25, 25, 26}, @@ -1651,6 +1626,8 @@ int main(int argc, char** argv) { {25, 28, 28}, {25, 28, 32}, {25, 28, 45}, + {25, 30, 27}, + {25, 30, 39}, {25, 32, 4}, {25, 32, 5}, {25, 32, 7}, @@ -1663,23 +1640,27 @@ int main(int argc, char** argv) { {25, 32, 25}, {25, 32, 26}, {25, 32, 28}, + {25, 32, 30}, {25, 32, 32}, {25, 32, 45}, - {25, 35, 31}, - {25, 37, 30}, - {25, 37, 32}, - {25, 42, 14}, - {25, 42, 26}, + {25, 35, 24}, + {25, 36, 9}, + {25, 37, 38}, + {25, 37, 44}, + {25, 38, 26}, + {25, 41, 19}, + {25, 42, 17}, {25, 45, 4}, {25, 45, 5}, {25, 45, 7}, {25, 45, 9}, - {25, 45, 11}, {25, 45, 13}, + {25, 45, 19}, {25, 45, 25}, {25, 45, 26}, {25, 45, 28}, {25, 45, 32}, + {25, 45, 37}, {25, 45, 45}, {26, 4, 4}, {26, 4, 5}, @@ -1690,6 +1671,8 @@ int main(int argc, char** argv) { {26, 4, 26}, {26, 4, 28}, {26, 4, 32}, + {26, 4, 39}, + {26, 4, 42}, {26, 4, 45}, {26, 5, 4}, {26, 5, 5}, @@ -1703,7 +1686,6 @@ int main(int argc, char** argv) { {26, 5, 28}, {26, 5, 32}, {26, 5, 45}, - {26, 6, 25}, {26, 7, 4}, {26, 7, 5}, {26, 7, 7}, @@ -1713,24 +1695,26 @@ int main(int argc, char** argv) { {26, 7, 26}, {26, 7, 28}, {26, 7, 32}, + {26, 7, 39}, {26, 7, 45}, + {26, 8, 25}, + {26, 8, 32}, + {26, 8, 34}, {26, 9, 4}, {26, 9, 5}, {26, 9, 7}, {26, 9, 9}, {26, 9, 13}, - {26, 9, 20}, + {26, 9, 21}, {26, 9, 25}, {26, 9, 26}, {26, 9, 28}, {26, 9, 32}, {26, 9, 45}, - {26, 10, 21}, - {26, 10, 27}, + {26, 11, 34}, {26, 12, 5}, {26, 12, 12}, {26, 12, 13}, - {26, 12, 14}, {26, 12, 26}, {26, 12, 32}, {26, 13, 4}, @@ -1743,6 +1727,7 @@ int main(int argc, char** argv) { {26, 13, 24}, {26, 13, 25}, {26, 13, 26}, + {26, 13, 27}, {26, 13, 28}, {26, 13, 32}, {26, 13, 45}, @@ -1751,13 +1736,12 @@ int main(int argc, char** argv) { {26, 14, 25}, {26, 14, 26}, {26, 14, 32}, - {26, 17, 8}, - {26, 17, 20}, - {26, 18, 32}, - {26, 19, 34}, - {26, 20, 33}, - {26, 21, 45}, - {26, 23, 35}, + {26, 15, 29}, + {26, 15, 31}, + {26, 19, 18}, + {26, 19, 28}, + {26, 20, 32}, + {26, 23, 41}, {26, 24, 5}, {26, 24, 13}, {26, 24, 24}, @@ -1769,7 +1753,6 @@ int main(int argc, char** argv) { {26, 25, 9}, {26, 25, 13}, {26, 25, 14}, - {26, 25, 15}, {26, 25, 25}, {26, 25, 26}, {26, 25, 28}, @@ -1787,8 +1770,8 @@ int main(int argc, char** argv) { {26, 26, 26}, {26, 26, 28}, {26, 26, 32}, - {26, 26, 41}, {26, 26, 45}, + {26, 27, 7}, {26, 28, 4}, {26, 28, 5}, {26, 28, 7}, @@ -1798,9 +1781,10 @@ int main(int argc, char** argv) { {26, 28, 26}, {26, 28, 28}, {26, 28, 32}, - {26, 28, 41}, {26, 28, 45}, - {26, 30, 28}, + {26, 29, 38}, + {26, 30, 43}, + {26, 31, 20}, {26, 32, 4}, {26, 32, 5}, {26, 32, 7}, @@ -1813,58 +1797,38 @@ int main(int argc, char** argv) { {26, 32, 26}, {26, 32, 28}, {26, 32, 32}, + {26, 32, 37}, {26, 32, 45}, - {26, 33, 5}, - {26, 36, 43}, - {26, 39, 9}, - {26, 39, 27}, - {26, 40, 22}, - {26, 41, 30}, - {26, 42, 44}, - {26, 44, 12}, - {26, 44, 39}, + {26, 39, 44}, + {26, 41, 24}, + {26, 44, 5}, {26, 45, 4}, {26, 45, 5}, {26, 45, 7}, {26, 45, 9}, + {26, 45, 11}, {26, 45, 13}, {26, 45, 25}, {26, 45, 26}, {26, 45, 28}, {26, 45, 32}, {26, 45, 45}, - {27, 4, 23}, - {27, 9, 6}, - {27, 9, 35}, - {27, 9, 38}, - {27, 13, 30}, - {27, 20, 45}, - {27, 21, 45}, - {27, 22, 23}, - {27, 23, 28}, - {27, 23, 29}, - {27, 24, 7}, - {27, 24, 26}, - {27, 24, 31}, - {27, 25, 36}, + {27, 4, 6}, + {27, 4, 39}, + {27, 8, 37}, + {27, 10, 14}, + {27, 18, 15}, {27, 27, 27}, - {27, 28, 45}, - {27, 30, 36}, - {27, 33, 15}, - {27, 33, 25}, - {27, 33, 29}, - {27, 34, 40}, - {27, 37, 15}, - {27, 37, 20}, - {27, 38, 17}, - {27, 39, 4}, - {27, 40, 41}, - {27, 41, 8}, - {27, 43, 43}, + {27, 29, 22}, + {27, 29, 37}, + {27, 31, 39}, + {27, 33, 21}, + {27, 38, 15}, + {27, 39, 27}, + {27, 42, 29}, {28, 4, 4}, {28, 4, 5}, {28, 4, 7}, - {28, 4, 8}, {28, 4, 9}, {28, 4, 13}, {28, 4, 25}, @@ -1875,6 +1839,7 @@ int main(int argc, char** argv) { {28, 5, 4}, {28, 5, 5}, {28, 5, 7}, + {28, 5, 8}, {28, 5, 9}, {28, 5, 13}, {28, 5, 25}, @@ -1882,17 +1847,19 @@ int main(int argc, char** argv) { {28, 5, 28}, {28, 5, 32}, {28, 5, 45}, + {28, 6, 22}, {28, 7, 4}, {28, 7, 5}, {28, 7, 7}, {28, 7, 9}, {28, 7, 13}, + {28, 7, 19}, {28, 7, 25}, {28, 7, 26}, {28, 7, 28}, {28, 7, 32}, {28, 7, 45}, - {28, 8, 4}, + {28, 8, 44}, {28, 9, 4}, {28, 9, 5}, {28, 9, 7}, @@ -1903,10 +1870,12 @@ int main(int argc, char** argv) { {28, 9, 28}, {28, 9, 32}, {28, 9, 45}, - {28, 10, 11}, - {28, 12, 35}, + {28, 10, 44}, + {28, 11, 11}, + {28, 11, 19}, {28, 13, 4}, {28, 13, 5}, + {28, 13, 6}, {28, 13, 7}, {28, 13, 9}, {28, 13, 13}, @@ -1914,21 +1883,20 @@ int main(int argc, char** argv) { {28, 13, 26}, {28, 13, 28}, {28, 13, 32}, + {28, 13, 34}, {28, 13, 45}, - {28, 17, 26}, - {28, 18, 16}, - {28, 18, 31}, - {28, 19, 37}, - {28, 20, 13}, - {28, 21, 31}, - {28, 22, 20}, - {28, 22, 28}, - {28, 24, 45}, + {28, 15, 32}, + {28, 16, 6}, + {28, 16, 33}, + {28, 19, 21}, + {28, 19, 38}, + {28, 21, 9}, {28, 25, 4}, {28, 25, 5}, {28, 25, 7}, {28, 25, 9}, {28, 25, 13}, + {28, 25, 14}, {28, 25, 25}, {28, 25, 26}, {28, 25, 28}, @@ -1944,20 +1912,19 @@ int main(int argc, char** argv) { {28, 26, 28}, {28, 26, 32}, {28, 26, 45}, + {28, 27, 24}, {28, 28, 4}, {28, 28, 5}, {28, 28, 7}, {28, 28, 9}, {28, 28, 13}, + {28, 28, 22}, {28, 28, 25}, {28, 28, 26}, {28, 28, 28}, - {28, 28, 29}, {28, 28, 32}, - {28, 28, 40}, {28, 28, 45}, - {28, 29, 41}, - {28, 31, 16}, + {28, 29, 12}, {28, 32, 4}, {28, 32, 5}, {28, 32, 7}, @@ -1967,111 +1934,127 @@ int main(int argc, char** argv) { {28, 32, 26}, {28, 32, 28}, {28, 32, 32}, - {28, 32, 37}, {28, 32, 45}, - {28, 34, 21}, - {28, 35, 18}, - {28, 35, 33}, - {28, 40, 18}, - {28, 40, 42}, - {28, 41, 17}, - {28, 41, 42}, - {28, 42, 18}, - {28, 43, 32}, - {28, 44, 20}, + {28, 33, 11}, + {28, 33, 25}, + {28, 34, 7}, + {28, 35, 13}, + {28, 37, 12}, + {28, 38, 8}, + {28, 40, 40}, + {28, 41, 26}, + {28, 41, 37}, + {28, 43, 5}, + {28, 43, 31}, + {28, 44, 43}, {28, 45, 4}, {28, 45, 5}, {28, 45, 7}, {28, 45, 9}, - {28, 45, 10}, {28, 45, 13}, - {28, 45, 23}, {28, 45, 25}, {28, 45, 26}, {28, 45, 28}, {28, 45, 32}, + {28, 45, 44}, {28, 45, 45}, - {29, 6, 30}, + {29, 4, 31}, + {29, 5, 45}, + {29, 6, 4}, + {29, 6, 18}, + {29, 8, 9}, + {29, 8, 44}, + {29, 11, 20}, + {29, 13, 9}, {29, 14, 14}, {29, 14, 16}, {29, 14, 29}, {29, 14, 32}, - {29, 15, 24}, + {29, 15, 34}, {29, 16, 14}, {29, 16, 16}, {29, 16, 29}, - {29, 17, 23}, - {29, 18, 12}, - {29, 19, 39}, - {29, 24, 15}, - {29, 26, 44}, - {29, 29, 9}, + {29, 17, 14}, + {29, 19, 33}, + {29, 20, 19}, + {29, 23, 15}, + {29, 23, 39}, + {29, 27, 23}, + {29, 28, 30}, {29, 29, 14}, {29, 29, 16}, {29, 29, 29}, {29, 29, 32}, + {29, 30, 33}, {29, 32, 14}, - {29, 32, 16}, - {29, 32, 24}, {29, 32, 29}, {29, 32, 32}, - {29, 34, 7}, - {29, 36, 9}, - {29, 37, 37}, - {29, 38, 7}, - {29, 39, 8}, - {29, 41, 13}, - {29, 44, 28}, - {30, 5, 24}, - {30, 6, 43}, - {30, 7, 12}, - {30, 10, 35}, - {30, 11, 31}, - {30, 11, 37}, - {30, 12, 21}, - {30, 16, 8}, - {30, 21, 40}, - {30, 24, 29}, - {30, 25, 13}, - {30, 27, 4}, - {30, 28, 8}, - {30, 30, 17}, + {29, 33, 43}, + {29, 35, 16}, + {29, 36, 16}, + {29, 37, 19}, + {29, 38, 9}, + {29, 38, 17}, + {29, 40, 27}, + {29, 41, 44}, + {29, 42, 9}, + {30, 6, 11}, + {30, 6, 23}, + {30, 7, 4}, + {30, 7, 22}, + {30, 13, 11}, + {30, 14, 22}, + {30, 15, 36}, + {30, 17, 17}, + {30, 20, 31}, + {30, 21, 5}, + {30, 24, 14}, + {30, 25, 16}, + {30, 25, 32}, + {30, 25, 45}, + {30, 27, 37}, + {30, 27, 38}, + {30, 29, 8}, + {30, 30, 28}, {30, 30, 30}, - {30, 31, 36}, - {30, 33, 29}, - {30, 33, 41}, - {30, 34, 14}, - {30, 34, 30}, - {30, 37, 16}, - {30, 43, 14}, - {31, 5, 14}, - {31, 11, 14}, - {31, 13, 37}, - {31, 13, 38}, - {31, 17, 14}, - {31, 19, 25}, - {31, 19, 30}, - {31, 20, 24}, - {31, 23, 38}, - {31, 23, 43}, - {31, 25, 38}, - {31, 26, 19}, - {31, 27, 20}, - {31, 28, 13}, - {31, 29, 16}, - {31, 30, 20}, + {30, 30, 43}, + {30, 31, 30}, + {30, 31, 33}, + {30, 35, 14}, + {30, 36, 7}, + {30, 36, 28}, + {30, 37, 42}, + {30, 38, 24}, + {30, 40, 20}, + {30, 40, 22}, + {30, 41, 4}, + {30, 41, 45}, + {30, 42, 8}, + {30, 43, 22}, + {31, 6, 39}, + {31, 7, 8}, + {31, 9, 40}, + {31, 11, 39}, + {31, 13, 14}, + {31, 14, 21}, + {31, 14, 34}, + {31, 16, 42}, + {31, 17, 6}, + {31, 19, 16}, + {31, 20, 25}, + {31, 21, 29}, + {31, 22, 13}, + {31, 26, 24}, + {31, 29, 43}, + {31, 31, 21}, {31, 31, 31}, - {31, 32, 18}, - {31, 33, 44}, - {31, 36, 10}, - {31, 38, 4}, + {31, 36, 11}, + {31, 36, 17}, + {31, 36, 35}, {31, 38, 12}, - {31, 38, 33}, - {31, 39, 34}, - {31, 40, 17}, - {31, 40, 42}, - {31, 43, 15}, - {31, 44, 36}, + {31, 39, 44}, + {31, 41, 42}, + {31, 45, 10}, {32, 4, 4}, {32, 4, 5}, {32, 4, 7}, @@ -2080,6 +2063,7 @@ int main(int argc, char** argv) { {32, 4, 25}, {32, 4, 26}, {32, 4, 28}, + {32, 4, 29}, {32, 4, 32}, {32, 4, 45}, {32, 5, 4}, @@ -2088,7 +2072,6 @@ int main(int argc, char** argv) { {32, 5, 9}, {32, 5, 12}, {32, 5, 13}, - {32, 5, 15}, {32, 5, 16}, {32, 5, 24}, {32, 5, 25}, @@ -2100,14 +2083,14 @@ int main(int argc, char** argv) { {32, 7, 5}, {32, 7, 7}, {32, 7, 9}, + {32, 7, 10}, {32, 7, 13}, {32, 7, 25}, {32, 7, 26}, {32, 7, 28}, {32, 7, 32}, - {32, 7, 39}, {32, 7, 45}, - {32, 8, 5}, + {32, 8, 22}, {32, 9, 4}, {32, 9, 5}, {32, 9, 7}, @@ -2125,26 +2108,23 @@ int main(int argc, char** argv) { {32, 10, 10}, {32, 10, 12}, {32, 10, 32}, + {32, 11, 7}, {32, 11, 11}, {32, 11, 12}, {32, 11, 20}, {32, 11, 25}, {32, 11, 32}, - {32, 11, 36}, {32, 12, 5}, {32, 12, 9}, {32, 12, 10}, {32, 12, 11}, {32, 12, 12}, {32, 12, 13}, - {32, 12, 14}, {32, 12, 16}, {32, 12, 20}, {32, 12, 25}, {32, 12, 26}, {32, 12, 32}, - {32, 12, 39}, - {32, 12, 45}, {32, 13, 4}, {32, 13, 5}, {32, 13, 7}, @@ -2163,38 +2143,38 @@ int main(int argc, char** argv) { {32, 14, 14}, {32, 14, 25}, {32, 14, 26}, + {32, 14, 28}, {32, 14, 29}, {32, 14, 32}, - {32, 14, 34}, - {32, 15, 16}, - {32, 15, 33}, - {32, 15, 39}, - {32, 15, 45}, {32, 16, 5}, {32, 16, 12}, {32, 16, 13}, {32, 16, 16}, {32, 16, 32}, - {32, 17, 39}, - {32, 19, 36}, + {32, 17, 35}, + {32, 19, 12}, + {32, 19, 14}, {32, 20, 11}, {32, 20, 12}, - {32, 20, 13}, {32, 20, 20}, {32, 20, 25}, {32, 20, 32}, - {32, 22, 4}, + {32, 21, 9}, + {32, 21, 29}, + {32, 21, 30}, {32, 22, 9}, + {32, 22, 10}, + {32, 22, 20}, {32, 22, 22}, {32, 22, 32}, - {32, 22, 37}, + {32, 23, 21}, + {32, 23, 42}, {32, 24, 5}, {32, 24, 13}, - {32, 24, 15}, {32, 24, 24}, {32, 24, 26}, + {32, 24, 30}, {32, 24, 32}, - {32, 24, 39}, {32, 25, 4}, {32, 25, 5}, {32, 25, 7}, @@ -2203,6 +2183,7 @@ int main(int argc, char** argv) { {32, 25, 12}, {32, 25, 13}, {32, 25, 14}, + {32, 25, 16}, {32, 25, 20}, {32, 25, 25}, {32, 25, 26}, @@ -2221,8 +2202,8 @@ int main(int argc, char** argv) { {32, 26, 26}, {32, 26, 28}, {32, 26, 32}, - {32, 26, 35}, {32, 26, 45}, + {32, 27, 7}, {32, 28, 4}, {32, 28, 5}, {32, 28, 7}, @@ -2232,8 +2213,10 @@ int main(int argc, char** argv) { {32, 28, 26}, {32, 28, 28}, {32, 28, 32}, + {32, 28, 38}, {32, 28, 45}, {32, 29, 14}, + {32, 29, 15}, {32, 29, 29}, {32, 29, 32}, {32, 32, 4}, @@ -2254,13 +2237,16 @@ int main(int argc, char** argv) { {32, 32, 28}, {32, 32, 29}, {32, 32, 32}, + {32, 32, 33}, {32, 32, 45}, - {32, 39, 20}, - {32, 39, 29}, - {32, 40, 7}, - {32, 41, 14}, - {32, 43, 18}, - {32, 44, 12}, + {32, 33, 31}, + {32, 36, 32}, + {32, 37, 22}, + {32, 38, 8}, + {32, 38, 18}, + {32, 38, 24}, + {32, 40, 23}, + {32, 40, 29}, {32, 45, 4}, {32, 45, 5}, {32, 45, 7}, @@ -2271,282 +2257,302 @@ int main(int argc, char** argv) { {32, 45, 28}, {32, 45, 32}, {32, 45, 45}, - {33, 4, 39}, - {33, 4, 42}, - {33, 7, 16}, - {33, 7, 32}, - {33, 10, 29}, - {33, 12, 12}, - {33, 12, 26}, - {33, 16, 6}, - {33, 16, 26}, - {33, 18, 15}, - {33, 20, 39}, - {33, 21, 35}, - {33, 26, 8}, - {33, 29, 8}, - {33, 30, 36}, - {33, 31, 44}, - {33, 33, 14}, - {33, 33, 22}, - {33, 34, 16}, - {33, 35, 22}, - {34, 4, 12}, - {34, 6, 13}, - {34, 6, 17}, - {34, 6, 22}, - {34, 7, 8}, - {34, 7, 20}, - {34, 9, 16}, - {34, 10, 45}, - {34, 11, 39}, - {34, 15, 11}, - {34, 15, 44}, - {34, 16, 28}, - {34, 17, 8}, - {34, 18, 43}, - {34, 19, 28}, - {34, 20, 24}, - {34, 23, 25}, - {34, 28, 8}, - {34, 28, 9}, - {34, 29, 36}, - {34, 30, 33}, - {34, 30, 37}, - {34, 32, 39}, - {34, 33, 29}, - {34, 34, 15}, - {34, 37, 27}, - {34, 37, 41}, - {34, 38, 42}, - {34, 39, 8}, - {34, 40, 45}, - {34, 41, 11}, - {34, 45, 40}, - {35, 5, 29}, - {35, 10, 22}, - {35, 11, 15}, - {35, 11, 36}, - {35, 12, 23}, - {35, 17, 10}, + {33, 4, 32}, + {33, 4, 38}, + {33, 5, 11}, + {33, 5, 15}, + {33, 5, 30}, + {33, 9, 19}, + {33, 9, 30}, + {33, 10, 18}, + {33, 11, 39}, + {33, 13, 43}, + {33, 15, 30}, + {33, 16, 24}, + {33, 16, 31}, + {33, 17, 39}, + {33, 18, 4}, + {33, 20, 4}, + {33, 23, 8}, + {33, 23, 45}, + {33, 25, 19}, + {33, 27, 11}, + {33, 29, 30}, + {33, 36, 6}, + {33, 36, 37}, + {33, 37, 16}, + {33, 37, 29}, + {33, 40, 8}, + {33, 41, 34}, + {33, 43, 21}, + {33, 43, 44}, + {33, 43, 45}, + {33, 44, 7}, + {34, 4, 16}, + {34, 5, 15}, + {34, 8, 9}, + {34, 8, 34}, + {34, 9, 44}, + {34, 11, 32}, + {34, 16, 4}, + {34, 16, 13}, + {34, 16, 43}, + {34, 21, 14}, + {34, 21, 28}, + {34, 24, 23}, + {34, 26, 31}, + {34, 29, 12}, + {34, 29, 25}, + {34, 36, 11}, + {34, 42, 8}, + {34, 44, 30}, + {34, 45, 9}, + {34, 45, 30}, + {35, 4, 40}, + {35, 5, 6}, + {35, 7, 6}, + {35, 7, 11}, + {35, 7, 13}, + {35, 7, 15}, + {35, 7, 36}, + {35, 8, 19}, + {35, 9, 44}, + {35, 13, 24}, + {35, 14, 21}, + {35, 16, 25}, {35, 17, 28}, - {35, 18, 33}, - {35, 22, 9}, - {35, 22, 28}, - {35, 27, 45}, - {35, 29, 21}, - {35, 32, 4}, - {35, 33, 28}, - {35, 33, 42}, - {35, 34, 22}, - {35, 36, 40}, - {35, 38, 18}, - {36, 15, 24}, - {36, 15, 34}, - {36, 21, 37}, - {36, 28, 4}, - {36, 29, 23}, - {36, 31, 11}, - {36, 31, 27}, - {36, 32, 8}, - {36, 33, 25}, - {36, 34, 13}, - {36, 34, 16}, - {36, 37, 35}, - {36, 38, 36}, - {36, 41, 12}, - {36, 41, 13}, - {36, 43, 39}, - {37, 5, 21}, - {37, 6, 22}, - {37, 9, 44}, - {37, 10, 15}, - {37, 10, 20}, - {37, 10, 29}, - {37, 15, 27}, - {37, 18, 44}, - {37, 20, 37}, - {37, 23, 16}, - {37, 23, 24}, - {37, 24, 26}, - {37, 26, 32}, - {37, 26, 34}, - {37, 27, 19}, - {37, 28, 36}, - {37, 29, 12}, - {37, 29, 23}, - {37, 31, 28}, - {37, 34, 20}, - {37, 34, 39}, - {37, 35, 19}, - {37, 36, 13}, - {37, 37, 32}, - {37, 38, 43}, - {37, 41, 38}, - {37, 44, 5}, - {38, 5, 34}, - {38, 10, 14}, - {38, 12, 8}, - {38, 13, 11}, - {38, 14, 15}, - {38, 17, 10}, - {38, 17, 28}, - {38, 19, 4}, - {38, 20, 32}, - {38, 23, 10}, - {38, 24, 5}, - {38, 24, 42}, - {38, 25, 43}, - {38, 32, 27}, - {38, 38, 13}, - {38, 39, 13}, - {38, 43, 25}, - {38, 44, 8}, - {39, 6, 26}, - {39, 13, 42}, - {39, 21, 37}, - {39, 22, 14}, - {39, 26, 39}, - {39, 27, 38}, - {39, 29, 26}, - {39, 32, 39}, - {39, 37, 43}, - {39, 42, 10}, - {39, 42, 39}, - {39, 43, 26}, - {40, 4, 28}, - {40, 5, 21}, - {40, 6, 33}, - {40, 9, 35}, - {40, 10, 44}, - {40, 12, 6}, - {40, 13, 32}, - {40, 15, 30}, - {40, 16, 12}, - {40, 16, 15}, - {40, 17, 30}, - {40, 17, 34}, - {40, 18, 23}, - {40, 20, 26}, - {40, 21, 12}, - {40, 22, 6}, - {40, 22, 10}, - {40, 22, 24}, - {40, 24, 13}, - {40, 24, 21}, - {40, 25, 4}, - {40, 28, 34}, - {40, 29, 28}, - {40, 30, 36}, - {40, 30, 43}, - {40, 31, 4}, - {40, 31, 13}, - {40, 34, 5}, - {40, 34, 41}, - {40, 35, 27}, - {40, 36, 4}, - {40, 37, 25}, - {40, 38, 9}, - {40, 39, 4}, - {40, 41, 24}, - {40, 43, 16}, - {40, 43, 32}, - {41, 4, 16}, - {41, 4, 26}, - {41, 5, 12}, - {41, 5, 17}, - {41, 7, 16}, - {41, 9, 6}, - {41, 10, 23}, - {41, 11, 34}, - {41, 12, 6}, - {41, 12, 7}, - {41, 14, 42}, - {41, 16, 4}, - {41, 21, 7}, - {41, 25, 15}, - {41, 26, 41}, - {41, 27, 20}, - {41, 27, 37}, - {41, 30, 6}, - {41, 31, 7}, - {41, 32, 7}, - {41, 34, 43}, - {41, 35, 14}, - {41, 35, 15}, - {41, 35, 40}, - {41, 36, 15}, - {41, 36, 45}, - {41, 37, 11}, - {41, 39, 14}, - {41, 40, 35}, - {41, 44, 14}, - {41, 45, 29}, - {42, 6, 41}, - {42, 7, 15}, - {42, 7, 32}, - {42, 9, 33}, - {42, 10, 37}, - {42, 12, 7}, - {42, 13, 10}, - {42, 16, 32}, - {42, 17, 15}, - {42, 18, 15}, - {42, 21, 41}, - {42, 23, 6}, - {42, 23, 37}, - {42, 24, 26}, - {42, 33, 33}, - {42, 36, 5}, - {42, 37, 6}, - {42, 42, 33}, - {42, 43, 21}, - {42, 45, 32}, - {43, 4, 10}, - {43, 5, 14}, - {43, 9, 18}, - {43, 10, 15}, - {43, 13, 25}, - {43, 15, 25}, - {43, 15, 39}, - {43, 16, 36}, - {43, 19, 29}, - {43, 21, 8}, - {43, 21, 18}, - {43, 21, 33}, - {43, 22, 33}, - {43, 25, 5}, - {43, 26, 29}, - {43, 27, 7}, - {43, 28, 16}, - {43, 29, 9}, - {43, 29, 14}, - {43, 30, 6}, - {43, 30, 8}, - {43, 31, 13}, - {43, 32, 14}, - {43, 34, 5}, - {43, 34, 26}, - {43, 35, 27}, - {43, 35, 35}, - {43, 41, 17}, - {43, 42, 16}, - {43, 44, 44}, - {44, 6, 43}, - {44, 9, 5}, - {44, 9, 15}, - {44, 11, 13}, - {44, 13, 23}, - {44, 20, 32}, - {44, 24, 34}, - {44, 25, 32}, - {44, 29, 11}, - {44, 30, 30}, - {44, 35, 7}, - {44, 35, 44}, - {44, 42, 12}, - {44, 42, 20}, - {44, 42, 32}, + {35, 18, 30}, + {35, 18, 37}, + {35, 21, 4}, + {35, 23, 35}, + {35, 24, 14}, + {35, 27, 38}, + {35, 28, 40}, + {35, 29, 14}, + {35, 31, 19}, + {35, 31, 24}, + {35, 32, 32}, + {35, 33, 14}, + {35, 35, 20}, + {35, 38, 35}, + {35, 41, 5}, + {35, 42, 27}, + {35, 42, 35}, + {35, 42, 40}, + {35, 43, 15}, + {35, 43, 35}, + {35, 44, 10}, + {35, 44, 21}, + {35, 45, 4}, + {36, 4, 21}, + {36, 5, 13}, + {36, 5, 39}, + {36, 6, 7}, + {36, 6, 25}, + {36, 7, 4}, + {36, 8, 25}, + {36, 11, 21}, + {36, 11, 35}, + {36, 12, 23}, + {36, 13, 21}, + {36, 13, 37}, + {36, 14, 17}, + {36, 14, 22}, + {36, 18, 43}, + {36, 19, 8}, + {36, 19, 35}, + {36, 20, 6}, + {36, 22, 31}, + {36, 25, 38}, + {36, 26, 20}, + {36, 27, 36}, + {36, 28, 12}, + {36, 31, 26}, + {36, 31, 32}, + {36, 31, 35}, + {36, 34, 30}, + {36, 35, 9}, + {36, 40, 17}, + {36, 40, 34}, + {36, 43, 30}, + {37, 6, 19}, + {37, 6, 37}, + {37, 7, 7}, + {37, 10, 39}, + {37, 11, 16}, + {37, 11, 30}, + {37, 14, 16}, + {37, 14, 20}, + {37, 16, 29}, + {37, 17, 24}, + {37, 17, 42}, + {37, 18, 11}, + {37, 20, 25}, + {37, 21, 39}, + {37, 22, 27}, + {37, 23, 26}, + {37, 25, 40}, + {37, 27, 17}, + {37, 27, 38}, + {37, 29, 19}, + {37, 33, 26}, + {37, 38, 24}, + {37, 38, 25}, + {37, 39, 4}, + {37, 40, 22}, + {37, 41, 11}, + {37, 41, 23}, + {37, 42, 30}, + {37, 43, 15}, + {37, 45, 25}, + {37, 45, 29}, + {38, 4, 4}, + {38, 4, 5}, + {38, 4, 15}, + {38, 6, 26}, + {38, 10, 40}, + {38, 15, 36}, + {38, 15, 44}, + {38, 16, 9}, + {38, 16, 27}, + {38, 17, 43}, + {38, 18, 43}, + {38, 20, 6}, + {38, 30, 36}, + {38, 30, 44}, + {38, 31, 17}, + {38, 38, 26}, + {38, 38, 31}, + {38, 39, 15}, + {38, 41, 13}, + {38, 42, 4}, + {38, 42, 11}, + {38, 44, 43}, + {39, 12, 34}, + {39, 14, 6}, + {39, 16, 7}, + {39, 16, 39}, + {39, 19, 23}, + {39, 20, 23}, + {39, 26, 8}, + {39, 28, 20}, + {39, 29, 19}, + {39, 31, 30}, + {39, 33, 10}, + {39, 33, 21}, + {39, 34, 38}, + {39, 36, 43}, + {39, 37, 33}, + {39, 41, 28}, + {39, 42, 36}, + {39, 45, 17}, + {40, 5, 32}, + {40, 7, 40}, + {40, 9, 26}, + {40, 12, 29}, + {40, 15, 23}, + {40, 15, 31}, + {40, 16, 23}, + {40, 21, 26}, + {40, 26, 28}, + {40, 29, 7}, + {40, 32, 13}, + {40, 32, 28}, + {40, 33, 38}, + {40, 36, 5}, + {40, 39, 37}, + {40, 43, 8}, + {40, 43, 14}, + {40, 43, 44}, + {40, 44, 41}, + {40, 45, 18}, + {41, 5, 29}, + {41, 7, 4}, + {41, 15, 21}, + {41, 15, 24}, + {41, 18, 36}, + {41, 19, 6}, + {41, 24, 4}, + {41, 27, 9}, + {41, 29, 21}, + {41, 30, 15}, + {41, 34, 8}, + {41, 35, 28}, + {41, 37, 25}, + {41, 40, 19}, + {41, 41, 8}, + {41, 43, 18}, + {41, 43, 30}, + {41, 43, 45}, + {42, 5, 29}, + {42, 5, 36}, + {42, 11, 34}, + {42, 13, 11}, + {42, 13, 20}, + {42, 13, 22}, + {42, 16, 27}, + {42, 20, 40}, + {42, 23, 19}, + {42, 23, 40}, + {42, 25, 15}, + {42, 25, 35}, + {42, 26, 8}, + {42, 27, 44}, + {42, 28, 9}, + {42, 28, 16}, + {42, 28, 30}, + {42, 29, 18}, + {42, 30, 44}, + {42, 34, 7}, + {42, 34, 10}, + {42, 35, 30}, + {42, 36, 24}, + {42, 39, 29}, + {42, 41, 4}, + {42, 42, 32}, + {42, 45, 4}, + {43, 5, 17}, + {43, 5, 40}, + {43, 6, 34}, + {43, 9, 17}, + {43, 12, 16}, + {43, 12, 31}, + {43, 14, 28}, + {43, 14, 30}, + {43, 17, 18}, + {43, 20, 26}, + {43, 21, 12}, + {43, 26, 7}, + {43, 26, 11}, + {43, 26, 24}, + {43, 27, 6}, + {43, 29, 43}, + {43, 32, 45}, + {43, 33, 7}, + {43, 34, 25}, + {43, 44, 30}, + {43, 44, 45}, + {44, 6, 6}, + {44, 8, 4}, + {44, 9, 7}, + {44, 9, 22}, + {44, 14, 23}, + {44, 20, 44}, + {44, 23, 25}, + {44, 23, 41}, + {44, 24, 10}, + {44, 24, 33}, + {44, 27, 23}, + {44, 27, 29}, + {44, 33, 11}, + {44, 35, 30}, + {44, 37, 23}, + {44, 38, 9}, + {44, 38, 20}, + {44, 39, 20}, + {44, 41, 30}, + {44, 42, 18}, + {44, 44, 22}, {45, 4, 4}, {45, 4, 5}, {45, 4, 7}, @@ -2567,9 +2573,6 @@ int main(int argc, char** argv) { {45, 5, 28}, {45, 5, 32}, {45, 5, 45}, - {45, 6, 10}, - {45, 6, 17}, - {45, 6, 37}, {45, 7, 4}, {45, 7, 5}, {45, 7, 7}, @@ -2580,20 +2583,19 @@ int main(int argc, char** argv) { {45, 7, 28}, {45, 7, 32}, {45, 7, 45}, + {45, 8, 22}, {45, 9, 4}, {45, 9, 5}, {45, 9, 7}, {45, 9, 9}, + {45, 9, 11}, {45, 9, 13}, {45, 9, 25}, {45, 9, 26}, {45, 9, 28}, - {45, 9, 30}, {45, 9, 32}, {45, 9, 45}, - {45, 10, 15}, - {45, 10, 34}, - {45, 11, 18}, + {45, 10, 31}, {45, 13, 4}, {45, 13, 5}, {45, 13, 7}, @@ -2604,10 +2606,8 @@ int main(int argc, char** argv) { {45, 13, 28}, {45, 13, 32}, {45, 13, 45}, - {45, 19, 20}, - {45, 22, 14}, - {45, 22, 31}, - {45, 24, 16}, + {45, 18, 28}, + {45, 21, 13}, {45, 25, 4}, {45, 25, 5}, {45, 25, 7}, @@ -2637,8 +2637,9 @@ int main(int argc, char** argv) { {45, 28, 26}, {45, 28, 28}, {45, 28, 32}, - {45, 28, 39}, + {45, 28, 33}, {45, 28, 45}, + {45, 29, 13}, {45, 32, 4}, {45, 32, 5}, {45, 32, 7}, @@ -2649,20 +2650,19 @@ int main(int argc, char** argv) { {45, 32, 28}, {45, 32, 32}, {45, 32, 45}, - {45, 37, 28}, - {45, 40, 21}, - {45, 42, 17}, + {45, 37, 9}, + {45, 38, 35}, + {45, 43, 34}, {45, 45, 4}, {45, 45, 5}, {45, 45, 7}, {45, 45, 9}, {45, 45, 13}, + {45, 45, 16}, {45, 45, 25}, {45, 45, 26}, {45, 45, 28}, {45, 45, 32}, - {45, 45, 34}, - {45, 45, 35}, {45, 45, 45}, {55, 16, 16}, {55, 16, 29}, diff --git a/develop/type/acc_event_type.html b/develop/type/acc_event_type.html index 7a330e2ceac..9cd7e7b22ae 100644 --- a/develop/type/acc_event_type.html +++ b/develop/type/acc_event_type.html @@ -114,7 +114,7 @@

    Variables

    - dummy + dummy
    @@ -169,7 +169,7 @@

    Components

    - + integer, private
    - + integer, private
    - + type(array_i1d_type), public,
    - + integer, public,
    - + integer, public,
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + type(block_nd_r_dp), public
    - + type(block_nd_r_sp), public
    - + type(block_nd_c_dp), public
    - + type(block_nd_c_sp), public
    - + integer, public
    - + integer, public,
    - + complex(kind=real_8), public,
    - + integer, public,
    - + complex(kind=real_4), public,
    - + integer, public,
    - + real(kind=real_8), public,
    - + integer, public,
    - + real(kind=real_4), public,
    - + logical, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + logical, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + complex(kind=sp), public,
    - + logical, public
    - + real(kind=dp), public,
    - + logical, public
    - + real(kind=sp), public,
    - + logical, public
    - + complex(kind=dp), public,
    - + logical, public
    - + type(btree_node_structure_i8_cp2d), public
    - + type(btree_node_structure_i8_dp2d), public
    - + type(btree_node_structure_i8_sp2d), public
    - + type(btree_node_structure_i8_zp2d), public
    - + integer, public
    - + integer(kind=keyt), public,
    - + type(btree_data_cp2d), public,
    - + integer, public
    - + integer(kind=keyt), public,
    - + type(btree_data_dp2d), public,
    - + integer, public
    - + integer(kind=keyt), public,
    - + type(btree_data_sp2d), public,
    - + integer, public
    - + integer(kind=keyt), public,
    - + type(btree_data_zp2d), public,
    - + type(btree_node_i8_cp2d), public,
    - + type(btree_node_i8_dp2d), public,
    - + type(btree_node_i8_sp2d), public,
    - + type(btree_node_i8_zp2d), public,
    - + integer, public
    - + integer, public
    - + integer, public
    - + type(btree_node_i8_cp2d), public,
    - + integer, public
    - + integer, public
    - + integer, public
    - + type(btree_node_i8_dp2d), public,
    - + integer, public
    - + integer, public
    - + integer, public
    - + type(btree_node_i8_sp2d), public,
    - + integer, public
    - + integer, public
    - + integer, public
    - + type(btree_node_i8_zp2d), public,
    - + integer, public
    - + character(len=1), public
    - + character(len=max_paramter_name_len), public
    - + character(len=1), public
    - + character(len=max_paramter_name_len), public
    - + integer, public
    - + character(len=1), public
    - + character(len=max_paramter_name_len), public
    - + logical, public
    - + character(len=1), public
    - + character(len=max_paramter_name_len), public
    - + integer, public
    - + character(len=1), public
    - + character(len=max_paramter_name_len), public
    - + real(kind=real_8), public
    - + real(kind=real_4), public,
    - + real(kind=real_8), public,
    - + complex(kind=real_4), public,
    - + complex(kind=real_8), public,
    - + integer, public
    - + type(csr_type), public,
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + type(mp_comm_type), public
    - + integer(kind=int_8), public
    - + logical, public
    - + type(dbcsr_imagedistribution_obj), public
    - + type(dbcsr_imagedistribution_obj), public
    - + type(dbcsr_block_buffer_type), public,
    - + integer, public
    - + type(dbcsr_data_obj), public,
    - + integer, public
    - + type(dbcsr_data_obj), public
    - + type(dbcsr_data_obj), public
    - + integer, public,
    - + integer, public
    - + type(dbcsr_type), public
    - + type(dbcsr_buffer), public
    - + type(dbcsr_buffer), public
    - + real(kind=real_4), public,
    - + real(kind=real_8), public,
    - + complex(kind=real_4), public,
    - + complex(kind=real_8), public,
    - + integer, public
    - + integer, public
    - + type(dbcsr_data_area_type), public,
    - + type(dbcsr_distribution_type), public,
    - + type(array_i1d_obj), public
    - + type(array_i1d_obj), public
    - + integer, public
    - + integer, public
    - + type(array_i1d_obj), public
    - + type(array_i1d_obj), public
    - + logical, public
    - + type(array_i1d_obj), public
    - + integer, public
    - + type(dbcsr_mp_obj), public
    - + integer, public
    - + integer(kind=keyt), public
    - + integer(kind=valt), public
    - + type(dbcsr_heap_node), public
    - + integer, public
    - + integer, public,
    - + type(dbcsr_imagedistribution_type), public,
    - + type(array_i1d_obj), public
    - + type(array_i1d_obj), public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + type(dbcsr_type), public,
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public,
    - + integer, public,
    - + logical, public
    - + logical, public
    - + logical, public
    - + logical, public
    - + logical, public
    - + integer, public
    - + integer, public
    - + integer, public,
    - + integer, public,
    - + integer, public,
    - + type(dbcsr_data_obj), public
    - + integer, public
    - + integer, public
    - + type(dbcsr_logger_type), public,
    - + integer, public
    - + integer, public
    - + integer, public
    - + type(dbcsr_mp_obj), public
    - + type(dbcsr_data_obj), public
    - + type(dbcsr_mempool_entry_type), public,
    - + type(dbcsr_mempool_entry_type), public,
    - + integer, public
    - + logical, public
    - + logical, public
    - + logical, public
    - + type(acc_stream_type), public
    - + type(dbcsr_mempool_type), public,
    - + real(kind=dp), public
    - + type(dbcsr_memtype_type), public,
    - + type(dbcsr_work_type), private,
    - + logical, private
    - + integer, private
    - + integer, private
    - + integer, private
    - + integer, private
    - + type(dbcsr_work_type), private,
    - + logical, private
    - + type(dbcsr_data_obj), public
    - + logical, private
    - + logical, private
    - + logical, private
    - + integer, private,
    - + integer, private,
    - + integer, private,
    - + integer, private,
    - + integer, private,
    - + real(kind=sp), private,
    - + real(kind=real_8), private
    - + integer(kind=int_8), private
    - + type(dbcsr_work_type), private,
    - + type(dbcsr_mm_multrec_type), public,
    - + type(dbcsr_work_type), private,
    - + logical, private
    - + type(dbcsr_mp_type), public,
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + type(mp_comm_type), public
    - + integer, public,
    - + integer, public
    - + logical, public
    - + integer, public
    - + integer, public
    - + real, public,
    - + type(dbcsr_mutable_type), public,
    - + integer, public
    - + integer, public
    - + type(dbcsr_type), public,
    - + real(kind=real_4), public
    - + real(kind=real_8), public
    - + complex(kind=real_4), public
    - + complex(kind=real_8), public
    - + integer, public
    - + type(dbcsr_tas_distribution_type), public
    - + type(dbcsr_t_pgrid_type), public
    - + integer, public,
    - + type(dbcsr_tas_iterator), public
    - + type(nd_to_2d_mapping), public
    - + type(array_list), public
    - + type(dbcsr_tas_split_info), public,
    - + integer, public
    - + type(nd_to_2d_mapping), public
    - + type(dbcsr_t_pgrid_type), public
    - + integer, public,
    - + logical, public
    - + character(len=default_string_length), public
    - + integer, public,
    - + integer, public,
    - + type(array_list), public
    - + type(array_list), intent(in)
    - + integer, public
    - + integer, intent(in)
    - + integer, public,
    - + type(dbcsr_tas_split_info), public
    - + type(dbcsr_distribution_obj), public
    - + class(dbcsr_tas_distribution), public,
    - + class(dbcsr_tas_distribution), public,
    - + type(dbcsr_tas_split_info), public
    - + type(dbcsr_tas_distribution_type), public
    - + type(dbcsr_iterator), public
    - + type(mp_comm_type), public
    - + integer, public,
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + type(mp_comm_type), public
    - + integer, public,
    - + type(dbcsr_tas_distribution_type), public
    - + class(dbcsr_tas_rowcol_data), public,
    - + class(dbcsr_tas_rowcol_data), public,
    - + type(dbcsr_type), public
    - + integer(kind=int_8), public
    - + integer(kind=int_8), public
    - + integer(kind=int_8), public
    - + logical, public
    - + integer, public
    - + logical, public
    - + character(len=default_string_length), public
    - + type(dbcsr_data_obj), public
    - + integer, public,
    - + integer, public,
    - + integer, public,
    - + type(array_i1d_obj), public
    - + type(array_i1d_obj), public
    - + type(array_i1d_obj), public
    - + type(array_i1d_obj), public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + character(len=1), public
    - + type(dbcsr_memtype_type), public
    - + type(dbcsr_block_buffer_obj), public
    - + type(dbcsr_distribution_obj), public
    - + integer, public
    - + logical, public
    - + type(dbcsr_type), public,
    - + type(dbcsr_data_obj), public
    - + integer, public,
    - + integer, public,
    - + integer, public,
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + type(dbcsr_scalar_type), public
    - + type(dbcsr_scalar_type), public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + type(dbcsr_scalar_type), public
    - + type(dbcsr_scalar_type), public
    - + integer(kind=int_4), public,
    - + type(call_stat_type), public,
    - + integer, private
    - + character(len=default_string_length), public
    - + integer(kind=int_4), public
    - + integer, private
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public,
    - + type(private_item_p_type_callstackentry), private,
    - + integer, private
    - + type(private_item_p_type_routinereport), private,
    - + integer, private
    - + type(private_item_p_type_routinestat), private,
    - + integer, private
    - + type(private_item_p_type_timerenv), private,
    - + integer, private
    - + integer, public,
    - + integer, private
    - + integer, public,
    - + integer, private
    - + integer, public,
    - + integer, private
    - + integer, public
    - + character(len=20), public
    - + integer, private
    - + real(kind=real_4), public,
    - + real(kind=real_8), public,
    - + complex(kind=real_4), public,
    - + complex(kind=real_8), public,
    - + integer, private
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public,
    - + integer(kind=int_8), public,
    - + integer, public,
    - + integer, public,
    - + integer, public
    - + logical, public
    - + character(len=default_path_length), private
    - + type(private_item_type_callstackentry), private,
    - + type(private_item_type_i4tuple_callstat), private,
    - + type(private_item_type_routinereport), private,
    - + type(private_item_type_routinestat), private,
    - + type(private_item_type_str_i4), private,
    - + type(private_item_type_timerenv), private,
    - + type(callstack_entry_type), private
    - + integer(kind=int_4), private,
    - + type(call_stat_type), private,
    - + type(private_item_type_i4tuple_callstat), private,
    - + type(routine_stat_type), private,
    - + character(len=default_string_length), private
    - + integer(kind=int_4), private
    - + type(private_item_type_str_i4), private,
    - + type(timer_env_type), private,
    - + character(len=default_string_length), public
    - + integer, public
    - + character(len=default_string_length), public
    - + logical, public
    - + integer, public,
    - + type(acc_stream_type), public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer, public
    - + integer(kind=int_4), public,
    - + integer(kind=int_4), public,
    - + integer, public
    - + type(dict_str_i4_type), public
    - + integer, public
    - + character(len=13), public