4
module zoltan_global_variables
8
! Needed for zoltan_cb_owned_node_count
9
use halos, only: halo_type
11
! Needed for zoltan_cb_get_owned_nodes
12
use sparse_tools, only: csr_sparsity
14
! Needed for zoltan_cb_get_edge_list
15
use fields, only: scalar_field, vector_field, mesh_type
17
! Needed for zoltan_cb_pack_node_sizes
18
use zoltan, only: zoltan_int, zoltan_float
19
use data_structures, only: integer_set, integer_hash_table
21
! Needed for zoltan_cb_pack_field_size
22
use state_module, only: state_type
23
use detector_data_types, only: detector_linked_list
25
use global_parameters, only: OPTION_PATH_LEN
31
! Needed for zoltan_cb_owned_node_count
32
type(halo_type), save, pointer :: zoltan_global_zz_halo
34
! Needed for zoltan_cb_get_owned_nodes
35
type(csr_sparsity), save :: zoltan_global_columns_sparsity
36
logical, save :: zoltan_global_migrate_extruded_mesh
37
logical, save :: zoltan_global_field_weighted_partitions
38
type(scalar_field), save :: zoltan_global_field_weighted_partition_values
40
! Needed for zoltan_cb_get_num_edges
41
type(csr_sparsity), save, pointer :: zoltan_global_zz_sparsity_one
43
! Needed for zoltan_cb_get_edge_list
44
logical, save :: zoltan_global_calculate_edge_weights
45
! elements with quality greater than this value are ok
46
! those with element quality below it need to be adapted
47
real, save :: zoltan_global_quality_tolerance
48
type(scalar_field), save :: zoltan_global_element_quality
49
type(scalar_field), save, pointer :: zoltan_global_max_edge_weight_on_node
50
logical, save :: zoltan_global_output_edge_weights = .false.
51
type(csr_sparsity), save, pointer :: zoltan_global_zz_nelist
52
! used for calculating local minimum element_quality during the edge-weight calculation
53
real, save :: zoltan_global_local_min_quality
54
logical, save :: zoltan_global_calculated_local_min_quality
57
! Needed for zoltan_cb_pack_node_sizes
58
! - added vector_field to use fields
59
type(vector_field), save :: zoltan_global_zz_positions
60
integer, parameter :: integer_size = bit_size(0_zoltan_int)/8
61
logical, save :: zoltan_global_preserve_columns=.false.
62
logical, save :: zoltan_global_preserve_mesh_regions
63
type(csr_sparsity), save, pointer :: zoltan_global_zz_sparsity_two
64
type(integer_set), save, dimension(:), allocatable :: zoltan_global_old_snelist
67
! Needed for zoltan_cb_pack_nodes
68
type(integer_hash_table), save :: zoltan_global_universal_element_number_to_region_id
69
type(integer_hash_table), save :: zoltan_global_universal_surface_number_to_element_owner
70
type(integer_hash_table), save :: zoltan_global_universal_surface_number_to_surface_id
71
integer, dimension(:), allocatable, save :: zoltan_global_universal_columns
72
type(halo_type), save, pointer :: zoltan_global_zz_ele_halo
75
! Needed for zoltan_cb_unpack_nodes
76
type(vector_field), save :: zoltan_global_new_positions
77
integer, save :: zoltan_global_new_positions_mesh_nhalos
78
type(mesh_type), save :: zoltan_global_zz_mesh
79
type(integer_hash_table), save :: zoltan_global_nodes_we_are_sending ! in old local numbers
80
type(integer_set), save :: zoltan_global_nodes_we_are_keeping ! in old local numbers
81
type(integer_hash_table), save :: zoltan_global_universal_to_new_local_numbering
82
type(integer_hash_table), save :: zoltan_global_universal_to_old_local_numbering
83
type(integer_set), save :: zoltan_global_new_nodes
84
type(integer_hash_table), save :: zoltan_global_universal_to_new_local_numbering_m1d
85
type(integer_set), save, dimension(:), allocatable :: zoltan_global_new_snelist
86
type(integer_set), save :: zoltan_global_new_surface_elements
87
type(integer_set), save, dimension(:), allocatable :: zoltan_global_new_nelist
88
type(integer_set), save :: zoltan_global_new_elements
89
integer(zoltan_int), save, dimension(:), pointer :: zoltan_global_my_import_procs => null()
90
integer(zoltan_int), save, dimension(:), pointer :: zoltan_global_my_import_global_ids => null()
91
integer(zoltan_int), save :: zoltan_global_my_num_import
92
type(integer_set), save, dimension(:), allocatable :: zoltan_global_receives
95
! Needed for prepare_detectors_for_packing
96
type(integer_hash_table), save :: zoltan_global_uen_to_new_local_numbering
97
type(integer_hash_table), save :: zoltan_global_uen_to_old_local_numbering
98
type(integer_hash_table), save :: zoltan_global_old_local_numbering_to_uen
101
! Needed for zoltan_cb_pack_field_sizes
102
type(state_type), save, dimension(:), allocatable :: zoltan_global_source_states, zoltan_global_target_states
103
integer, save, dimension(:), allocatable :: zoltan_global_ndets_in_ele
104
integer, save :: zoltan_global_ndata_per_det
105
type(detector_linked_list), dimension(:), allocatable, target, save :: zoltan_global_to_pack_detectors_list
107
! Needed for zoltan_cb_pack_fields
108
integer, save :: zoltan_global_ndims
110
! Needed for zoltan_cb_unpack_fields
111
type(detector_linked_list), target, save :: zoltan_global_unpacked_detectors_list
113
! Option path set based on whether being called from adaptivity or flredecomp
114
character(len = OPTION_PATH_LEN), save :: zoltan_global_base_option_path
118
end module zoltan_global_variables