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