File: RELATIVE:/../../../mfix.git/model/des/neighbour.f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 SUBROUTINE NEIGHBOUR
16
17
18
19
20 USE param1
21 USE discretelement
22 use desgrid
23 Use des_thermo
24 IMPLICIT NONE
25
26
27
28
29 INTEGER :: cc,ll,cc_start,cc_end,cc_start_old,cc_end_old,cc_old
30 LOGICAL :: found
31
32
33
34 (:,:) = DES_POS_NEW(:,:)
35 neighbor_index_old(:) = neighbor_index(:)
36
37
38
39 do cc=1, size(neighbors)
40 neighbors_old(cc) = neighbors(cc)
41 pft_neighbor_old(:,cc) = pft_neighbor(:,cc)
42 enddo
43
44
45 (:) = 0
46
47 IF (DES_NEIGHBOR_SEARCH.EQ.1) THEN
48 CALL NSQUARE
49 ELSEIF (DES_NEIGHBOR_SEARCH.EQ.4) THEN
50 CALL DESGRID_NEIGH_BUILD
51 ENDIF
52
53
54
55
56
57 do ll = 1, max_pip
58
59 CC_START = 1
60 IF (LL.gt.1) CC_START = NEIGHBOR_INDEX(LL-1)
61 CC_END = NEIGHBOR_INDEX(LL)
62
63 CC_START_OLD = 1
64 IF (LL.gt.1) CC_START_OLD = NEIGHBOR_INDEX_OLD(LL-1)
65 CC_END_OLD = NEIGHBOR_INDEX_OLD(LL)
66
67 DO CC = CC_START, CC_END-1
68 found = .false.
69 DO CC_OLD = CC_START_OLD, CC_END_OLD-1
70 if (neighbors(cc) .eq. neighbors_old(cc_old)) then
71 pft_neighbor(:,cc) = pft_neighbor_old(:,cc_old)
72 found = .true.
73 exit
74 endif
75 enddo
76
77 if (.not.found) pft_neighbor(:,cc) = 0.0
78 enddo
79 enddo
80
81
82
83
84 = .FALSE.
85
86 RETURN
87 END SUBROUTINE NEIGHBOUR
88