48
49
50
51
52
53
54
56 USE elbufdef_mod
61 USE multimat_param_mod , ONLY : m51_n0phas, m51_nvphas
62 use element_mod , only :nixq
63
64
65
66#include "implicit_f.inc"
67
68
69
70#include "scr07_c.inc"
71#include "spmd_c.inc"
72#include "com01_c.inc"
73#include "com04_c.inc"
74#include "vect01_c.inc"
75#include "param_c.inc"
76#include "task_c.inc"
77
78
79
80 INTEGER :: NV46, ITASK
81 INTEGER IPARG(NPARG,NGROUP), IXQ(NIXQ,NUMELQ)
83 TYPE(ELBUF_STRUCT_), TARGET, DIMENSION(NGROUP) :: ELBUF_TAB
84 INTEGER :: LENCOM, NERCVOIS(*),NESDVOIS(*),LERCVOIS(*),LESDVOIS(*)
85 INTEGER :: IAD_ELEM(2, *), FR_ELEM(*)
86 TYPE(t_segvar) :: SEGVAR
87 TYPE(t_ale_connectivity), INTENT(IN) :: ALE_CONNECT
88
89
90
91 INTEGER :: NG
92 INTEGER :: ITRIMAT
93 my_real,
DIMENSION(:),
POINTER :: volg, volp, uvar
94 INTEGER :: ADD
95 INTEGER :: K, I, II, JJ, NODE_ID, JMIN, JMAX
96 INTEGER :: ELEM_ID
97 INTEGER :: FIRST,LAST
98
99
100
101 DO ng=itask+1,ngroup,nthread
102
103 IF (iparg(76, ng) == 1) cycle
105 2 mtn ,llt ,nft ,iad ,ity ,
106 3 npt ,jale ,ismstr ,jeul ,jtur ,
107 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
108 5 nvaux ,jpor ,jcvt ,jclose ,jplasol ,
109 6 irep ,iint ,igtyp ,israt ,isrot ,
110 7 icsen ,isorth ,isorthg ,ifailure,jsms )
111 IF(jale+jeul == 0) cycle
112 IF(iparg(8,ng) == 1) cycle
113 IF(iparg(1,ng) /= 51) cycle
114 IF ((jale /= 0) .OR. ((jeul /= 0) .AND. (ncycle == 0 .OR. mcheck /= 0))) THEN
115
116 DO i=lft,llt
117 ii = i+nft
118
119 alemuscl_buffer%ELCENTER(ii,2) = fourth * (x(2, ixq(2, ii)) + x(2, ixq(3, ii)) + x(2, ixq(4, ii)) + x(2, ixq(5, ii)))
120 alemuscl_buffer%ELCENTER(ii,3) = fourth * (x(3, ixq(2, ii)) + x(3, ixq(3, ii)) + x(3, ixq(4, ii)) + x(3, ixq(5, ii)))
121 ENDDO
122 ENDIF
123 ENDDO
124 DO ng=itask+1,ngroup,nthread
125
126 IF (iparg(76, ng) == 1) cycle
128 2 mtn ,llt ,nft ,iad ,ity ,
129 3 npt ,jale ,ismstr ,jeul ,jtur ,
130 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
131 5 nvaux ,jpor ,jcvt ,jclose ,jplasol ,
132 6 irep ,iint ,igtyp ,israt ,isrot ,
133 7 icsen ,isorth ,isorthg ,ifailure,jsms )
134 IF(jale+jeul == 0) cycle
135 IF(iparg(8,ng) == 1) cycle
136 IF(iparg(1,ng) /= 51) cycle
137 volg => elbuf_tab(ng)%GBUF%VOL
138 uvar => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)%VAR
139 lft=1
140 DO itrimat = 1, trimat
141 add = m51_n0phas + (itrimat-1)*m51_nvphas
142 add = add + 11
143 k = llt*(add-1)
144 volp =>uvar(k+1:k+llt)
145
146 DO i=lft,llt
147 ii = i+nft
150 ENDDO
151 ENDDO
152 ENDDO
153
155
156
157 IF(nspmd > 1)THEN
158
159
160 DO itrimat = 1, trimat
162 ENDDO
163
164 DO jj = 1, 3
166 ENDDO
167
168 ENDIF
170
171 first = 1 + itask * numnod / nthread
172 last = (1 + itask) * numnod / nthread
175 DO itrimat = 1, trimat
176 DO node_id = first,last
179 DO jj = jmin, jmax
181 IF (elem_id /= 0 .AND. elem_id <= numelq) THEN
186 ENDIF
187 ENDDO
188 ENDDO
189 ENDDO
191
192 IF(nspmd > 1)THEN
193
194 DO itrimat = 1, trimat
197 ENDDO
198
199 ENDIF
201
202 DO ng=itask+1,ngroup,nthread
203
204 IF (iparg(76, ng) == 1) cycle
206 2 mtn ,llt ,nft ,iad ,ity ,
207 3 npt ,jale ,ismstr ,jeul ,jtur ,
208 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
209 5 nvaux ,jpor ,jcvt ,jclose ,jplasol ,
210 6 irep ,iint ,igtyp ,israt ,isrot ,
211 7 icsen ,isorth ,isorthg ,ifailure,jsms )
212 IF(jale+jeul == 0) cycle
213 IF(iparg(8,ng) == 1) cycle
214 IF(iparg(1,ng) /= 51) cycle
215 lft = 1
216
217 DO itrimat = 1, trimat
219 ENDDO
220 END DO ! ng=itask+1,ngroup,nthread
221
223
224 IF (nspmd > 1) THEN
225
226
227 DO itrimat = 1, trimat
229 . nercvois, nesdvois, lercvois, lesdvois, lencom)
230 ENDDO
231
232 ENDIF
234
235 DO ng=itask+1,ngroup,nthread
236
237 IF (iparg(76, ng) == 1) cycle
239 2 mtn ,llt ,nft ,iad ,ity ,
240 3 npt ,jale ,ismstr ,jeul ,jtur ,
241 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
242 5 nvaux ,jpor ,jcvt ,jclose ,jplasol ,
243 6 irep ,iint ,igtyp ,israt ,isrot ,
244 7 icsen ,isorth ,isorthg ,ifailure,jsms )
245 IF(jale+jeul == 0) cycle
246 IF(iparg(8,ng) == 1) cycle
247 IF(iparg(1,ng) /= 51) cycle
248 lft = 1
249
251 ENDDO
253
254
subroutine gradient_limitation2(ixq, x, trimat)
subroutine gradient_reconstruction2(ixq, x, ale_connect, nv46, itrimat, segvar)
type(alemuscl_buffer_) alemuscl_buffer
subroutine initbuf(iparg, ng, mtn, llt, nft, iad, ity, npt, jale, ismstr, jeul, jtur, jthe, jlag, jmult, jhbe, jivf, mid, jpor, jcvt, jclose, jpla, irep, iint, igtyp, israt, isrot, icsen, isorth, isorthg, ifailure, jsms)
subroutine spmd_e1vois(phi, nercvois, nesdvois, lercvois, lesdvois, lencom)
subroutine spmd_exch_min_max(iad_elem, fr_elem, min_array, max_array)
subroutine spmd_exchange_grad(dim, dim1, dim2, phi, nercvois, nesdvois, lercvois, lesdvois, lencom)