DISPATCH
bits_mod.f90
1 !===============================================================================
2 !> $Id: a9dba85759775b7901a5fe028b52124776dca40f $
3 !> Status bits for tasks
4 !===============================================================================
5 MODULE bits_mod
6  integer, parameter:: static_bit=1
7  integer, parameter:: leaf_bit=2
8  integer, parameter:: ready_bit=2**2
9  integer, parameter:: internal_bit=2**3
10  integer, parameter:: boundary_bit=2**4
11  integer, parameter:: virtual_bit=2**5
12  integer, parameter:: external_bit=2**6
13  integer, parameter:: swap_request_bit=2**7
14  integer, parameter:: support_bit=2**8
15  integer, parameter:: root_grid_bit=2**9
16  integer, parameter:: star_bit=2**10
17  integer, parameter:: planet_bit=2**11
18  integer, parameter:: disk_bit=2**12
19  integer, parameter:: particle_bit=2**13
20  integer, parameter:: retry_bit=2**14
21  integer, parameter:: remove_bit=2**15
22  integer, parameter:: top_bottom_bit=2**16
23 ! NOTE: the first (or last) 16 bits are masked out in some contexts; please CHECK
24  integer, parameter:: has_bc_bit=2**30
25  integer, parameter:: trace_bit=2**29
26  integer, parameter:: frozen_bit=2**28
27  integer, parameter:: busy_bit=2**27
28  integer, parameter:: no_download_bit=2**26
29  integer, parameter:: no_density_bit=2**25
30  integer, parameter:: no_rt_bit=2**24
31  integer, parameter:: nbors_bit=2**23 ! trigger init_nbors on vnbor
32  integer, parameter:: counter_bit=2**20
33  type bits_t
34  integer:: remove = remove_bit
35  integer:: retry = retry_bit
36  integer:: ready = ready_bit
37  integer:: internal = internal_bit
38  integer:: virtual = virtual_bit
39  integer:: boundary = boundary_bit
40  integer:: external = external_bit
41  integer:: root_grid = root_grid_bit
42  integer:: not_leaf = leaf_bit
43  integer:: frozen = frozen_bit
44  integer:: swap_request = swap_request_bit
45  integer:: support = support_bit
46  integer:: particle = particle_bit
47  integer:: star = star_bit
48  integer:: planet = planet_bit
49  integer:: static = static_bit
50  integer:: top_bottom = top_bottom_bit
51  integer:: has_bc = has_bc_bit
52  integer:: trace = trace_bit
53  integer:: busy = busy_bit
54  integer:: no_download = no_download_bit
55  integer:: no_density = no_density_bit
56  integer:: no_rt = no_rt_bit
57  integer:: init_nbors = nbors_bit
58  integer:: has_counter = counter_bit
59  integer:: hands_off = ready_bit+busy_bit+virtual_bit+frozen_bit+external_bit
60  !-------- BOUNDARY CONDITION BITS ------------------------------------------
61  integer:: xl = 2**1
62  integer:: xu = 2**2
63  integer:: yl = 2**3
64  integer:: yu = 2**4
65  integer:: zl = 2**5
66  integer:: zu = 2**6
67  integer:: spherical = 2**7
68  integer:: symmetric = 2**8
69  integer:: antisymmetric= 2**9
70  integer:: extrapolate = 2**10
71  end type
72  type(bits_t):: bits
73 END MODULE bits_mod