32 USE multi_fvm_mod
34 use element_mod , only : nixs,nixq,nixtg
35
36
37
38
39
40
41
42
43
44
45
46
47
48#include "implicit_f.inc"
49
50
51
52#include "com04_c.inc"
53
54
55
56
57
58
59
60
61
62
63 LOGICAL, INTENT(in) :: BOOL_ALE_TG
64 INTEGER, DIMENSION(NUMELS), INTENT(inout) :: INDX_S
65 INTEGER, DIMENSION(NUMELQ), INTENT(inout) :: INDX_Q
66 INTEGER, DIMENSION(NUMELTG), INTENT(inout) :: INDX_TG
67 INTEGER, DIMENSION(6*NUMELS,2), INTENT(inout) :: FACE_ELM_S
68 INTEGER, DIMENSION(4*NUMELQ,2), INTENT(inout) :: FACE_ELM_Q
69 INTEGER, DIMENSION(3*NUMELTG,2), INTENT(inout) :: FACE_ELM_TG
70 TYPE(t_ale_connectivity), INTENT(INOUT) :: ALE_CONNECTIVITY
71
72
73 INTEGER, DIMENSION(NIXS,*), INTENT(in) :: IXS
74 INTEGER, DIMENSION(NIXQ,*), INTENT(in) :: IXQ
75 INTEGER, DIMENSION(NIXTG,*), INTENT(in) :: IXTG
76
77 INTEGER, DIMENSION(*), INTENT(in) :: CEP
78
79
80
81 INTEGER :: IE,I,IV,J,SHIFT,JJ,IAD1, LGTH, IAD2,
82 INTEGER :: CURRENT_PROC,PROC,J_SAVE
83
84
85 DO ie=1,numels
86 iad1 = ale_connectivity%ee_connect%iad_connect(ie)
87 lgth = ale_connectivity%ee_connect%iad_connect(ie+1) - ale_connectivity%ee_connect%iad_connect(ie)
88 i = ie
89 current_proc = cep(i)
90
91 DO j = 1, lgth
92 iv = ale_connectivity%ee_connect%connected(iad1 + j - 1)
93
94 IF(iv>0) THEN
95 proc = cep(iv)
96 j_save = -1
97 iad2 = ale_connectivity%ee_connect%iad_connect(iv)
98 lgth2 = ale_connectivity%ee_connect%iad_connect(iv+1)-ale_connectivity%ee_connect%iad_connect(iv)
99
100 IF(current_proc/=proc) THEN
101
102 DO jj=1,lgth2
103 IF(ale_connectivity%ee_connect%connected(iad2 + jj - 1)==ie) THEN
104 j_save = jj
105 EXIT
106 ENDIF
107 ENDDO
108 indx_s(ie) = indx_s(ie) + 1
109 face_elm_s( 6*(ie-1)+indx_s(ie),1 ) = j_save
110 face_elm_s( 6*(ie-1)+indx_s(ie),2 ) = ixs(nixs,iv)
111 ENDIF
112 ENDIF
113 ENDDO
114 ENDDO
115
116
117 shift = numels
118 DO ie=1,numelq
119 i = ie + shift
120 iad1 = ale_connectivity%ee_connect%iad_connect(i)
121 lgth = ale_connectivity%ee_connect%iad_connect(i+1) - ale_connectivity%ee_connect%iad_connect(i)
122 current_proc = cep(i)
123
124 DO j = 1, lgth
125 iv = ale_connectivity%ee_connect%connected(iad1 + j - 1)
126 IF(iv>0) THEN
127 proc = cep(iv)
128 j_save = -1
129 iad2 = ale_connectivity%ee_connect%iad_connect(iv)
130 lgth2 = ale_connectivity%ee_connect%iad_connect(iv+1)-ale_connectivity%ee_connect%iad_connect(iv)
131
132 IF(current_proc/=proc) THEN
133
134 DO jj=1,lgth2
135 IF(ale_connectivity%ee_connect%connected(iad2 + jj - 1)==ie) THEN
136 j_save = jj
137 EXIT
138 ENDIF
139 ENDDO
140
141 indx_q(ie) = indx_q(ie) + 1
142 face_elm_q( 4*(ie-1)+indx_q(ie),1 ) = j_save
143 face_elm_q( 4*(ie-1)+indx_q(ie),2 ) = ixq(nixq,iv)
144 ENDIF
145 ENDIF
146 ENDDO
147 ENDDO
148
149
150 IF(bool_ale_tg) THEN
151 shift = numels + numelq + numelc + numelt + numelp + numelr
152 DO ie=1,numeltg
153 i = ie + shift
154 iad1 = ale_connectivity%ee_connect%iad_connect(i)
155 lgth = ale_connectivity%ee_connect%iad_connect(i+1) - ale_connectivity%ee_connect%iad_connect(i)
156 current_proc = cep(i)
157
158 DO j = 1, lgth
159 iv = ale_connectivity%ee_connect%connected(iad1 + j - 1)
160 IF(iv>0) THEN
161 proc = cep(iv)
162 j_save = -1
163 iad2 = ale_connectivity%ee_connect%iad_connect(iv)
164 lgth2 = ale_connectivity%ee_connect%iad_connect(iv+1)-ale_connectivity%ee_connect%iad_connect(iv)
165
166 IF(current_proc/=proc) THEN
167
168 DO jj=1,lgth2
169 IF(ale_connectivity%ee_connect%connected(iad2 + jj - 1)==ie) THEN
170 j_save = jj
171 EXIT
172 ENDIF
173 ENDDO
174 indx_tg(ie) = indx_tg(ie) + 1
175 face_elm_tg( 3*(ie-1)+indx_tg(ie),1 ) = j_save
176 face_elm_tg( 3*(ie-1)+indx_tg(ie),2 ) = ixtg(nixtg
177 ENDIF
178 ENDIF
179 ENDDO
180 ENDDO
181 ENDIF
182
183 RETURN