~airpollution/fluidity/fluidity_airpollution

« back to all changes in this revision

Viewing changes to assemble/Zoltan_global_variables.F90

  • Committer: ziyouzhj
  • Date: 2013-12-09 16:51:29 UTC
  • Revision ID: ziyouzhj@gmail.com-20131209165129-ucoetc3u0atyy05c
airpolution

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
#include "confdefs.h"
 
3
 
 
4
module zoltan_global_variables
 
5
 
 
6
#ifdef HAVE_ZOLTAN
 
7
 
 
8
  ! Needed for zoltan_cb_owned_node_count
 
9
  use halos, only: halo_type
 
10
 
 
11
  ! Needed for zoltan_cb_get_owned_nodes
 
12
  use sparse_tools, only: csr_sparsity
 
13
 
 
14
  ! Needed for zoltan_cb_get_edge_list
 
15
  use fields, only: scalar_field, vector_field, mesh_type
 
16
 
 
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
 
20
 
 
21
  ! Needed for zoltan_cb_pack_field_size
 
22
  use state_module, only: state_type
 
23
  use detector_data_types, only: detector_linked_list
 
24
 
 
25
  use global_parameters, only: OPTION_PATH_LEN
 
26
 
 
27
  implicit none
 
28
 
 
29
  public
 
30
 
 
31
  ! Needed for zoltan_cb_owned_node_count
 
32
  type(halo_type), save, pointer :: zoltan_global_zz_halo
 
33
 
 
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
 
39
 
 
40
  ! Needed for zoltan_cb_get_num_edges
 
41
  type(csr_sparsity), save, pointer :: zoltan_global_zz_sparsity_one
 
42
 
 
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
 
55
 
 
56
 
 
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
 
65
 
 
66
 
 
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 
 
73
 
 
74
 
 
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
 
93
 
 
94
 
 
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
 
99
 
 
100
 
 
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
 
106
 
 
107
  ! Needed for zoltan_cb_pack_fields
 
108
  integer, save :: zoltan_global_ndims
 
109
 
 
110
  ! Needed for zoltan_cb_unpack_fields
 
111
  type(detector_linked_list), target, save :: zoltan_global_unpacked_detectors_list
 
112
 
 
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
 
115
 
 
116
#endif
 
117
 
 
118
end module zoltan_global_variables