69
70
71
72 USE timer_mod
76 USE imp_intbuf
77 USE intbufdef_mod
80 use check_sorting_criteria_mod , only : check_sorting_criteria
81
82
83
84#include "implicit_f.inc"
85#include "comlock.inc"
86
87
88
89#include "com01_c.inc"
90#include "com04_c.inc"
91#include "com08_c.inc"
92#include "param_c.inc"
93#include "task_c.inc"
94#include "timeri_c.inc"
95 COMMON /i25mainc/bminma,curv_max_max,result,nsnr,nsnrold,i_memg,i_memg_e,i_memg_s,nmn_g
96 INTEGER RESULT,NSNR,NSNROLD,I_MEMG,I_MEMG_E,I_MEMG_S,NMN_G
98 . bminma(6),curv_max_max
99
100
101
102 TYPE(TIMER_) :: TIMERS
103 INTEGER NIN ,ITASK, RETRI, NEDGE_T, NRTM_T, SSHIFT, ESHIFT,
104 . NUM_IMP ,IND_IMP(*),
105 . ITAB(*), KINET(*),
106 . IPARI(NPARI,NINTER),
107 . ISENDTO(NINTER+1,*),IRCVFROM(NINTER+1,*),
108 . WEIGHT(*), IAD_ELEM(2,*) ,FR_ELEM(*),
109 . RENUM(*), NSNFIOLD(NSPMD), NODNX_SMS(*), ICODT(*), ISKEW(*)
110 INTEGER , INTENT(IN) :: NODADT_THERM
111
113 . x(3,*), v(*), ms(*),temp(*)
114 TYPE(INTBUF_STRUCT_) INTBUF_TAB
115 TYPE(H3D_DATABASE) :: H3D_DATA
116 TYPE (PARAMETERS_) ,INTENT(IN):: PARAMETERS
117
118
119
120 INTEGER LOC_PROC,IEDGE,NEDGE,IGSTI,ITIED,
121 . I,J, IP0, IP1, IP2, IP21, K11_T, I_SK_OLD, I_SK_OLD_E, I_STOK1,
122 . ADD1, NOINT, INACTI, MULTIMP, IGAP, IFQ,
123 . N, NSNF, NSNL, NSNRF, NSNRL,NMN_L, IVIS2, IGAP0, IFSUB_CAREA
124 INTEGER
125 . NCONT, NCONTE, MULNSN, MULNSNE, MULNSNS, INACTII, INACIMP, INTTH,
126 . I_MEM,I_MEME(2),CAND_N_OLD,CAND_E_OLD(2),ILEV,FLAGREMN, LREMNORMAX,
127 . IDUM1(1), ITHK
128
129 INTEGER NEDGE_TOTAL,NEDGE_LOCAL
130 INTEGER :: ISENS
131
133 . gap,
134 . xmaxl, ymaxl, zmaxl, xminl, yminl, zminl, gapmin, gapmax,drad,
135 . c_maxl,pmax_gap,vmaxdt,marge,tzinf,sx,sy,sz,sx2,sy2,sz2,dgapload,
136 . bminma_old(6),bgapemx,bsav(6)
137 my_real,
dimension(:),
allocatable :: curv_max
138 INTEGER :: NMN,NRTM,NSN,NTY
139 logical :: need_computation
140
141
142
143 call check_sorting_criteria( need_computation,nin,npari,nspmd,
144 . itask,ipari(1,nin),tt,intbuf_tab )
145 if( .not.need_computation ) return
146 allocate(curv_max(nrtm_t) )
147
148 i_mem = 0
149
150 i_memg = 0
151 nmn_g = 0
152
153 nmn_l = 0
154
155 loc_proc=ispmd+1
156 nrtm = ipari(4,nin)
157 nsn = ipari(5,nin)
158 nmn = ipari(6,nin)
159 nty = ipari(7,nin)
160 ivis2 = ipari(14,nin)
161 noint = ipari(15,nin)
162 ncont = ipari(18,nin)
163 ilev = ipari(20,nin)
164 inacti = ipari(22,nin)
165 ifq = ipari(31,nin)
166 intth = ipari(47,nin)
167 iedge = ipari(58,nin)
168 flagremn= ipari(63,nin)
169 igsti = ipari(34,nin)
170 igap = ipari(21,nin)
171 igap0 = ipari(53,nin)
172 flagremn =ipari(63,nin)
173 lremnormax =ipari(82,nin)
174 nedge = ipari(68,nin)
175
177 nsnrold = ipari(24,nin)
178
179 nconte = ipari(88,nin)
180 ithk = ipari(91,nin)
181 ifsub_carea =0
182 IF(ipari(36,nin)> 0.AND.parameters%INTCAREA > 0) ifsub_carea = 1
183
184
185 gap =intbuf_tab%VARIABLES(gap_index)
186 gapmin=intbuf_tab%VARIABLES(gapmin_index)
187 gapmax=intbuf_tab%VARIABLES(gapmax_index)
188 pmax_gap=intbuf_tab%VARIABLES(pmax_index)
189 vmaxdt =intbuf_tab%VARIABLES(vmaxdt_index)
190
191 drad = zero
192 IF(ipari(47,nin) > 0) drad =intbuf_tab%VARIABLES(drad_index)
193
194 dgapload =intbuf_tab%VARIABLES(dgapload_index)
195
196 itied = 0
197
198
199
200 retri = 1
201
202
203
204 marge = intbuf_tab%VARIABLES(marge_index)
205
206
207
208 IF(itask==0) THEN
209 bminma(1)=-ep30
210 bminma(2)=-ep30
211 bminma(3)=-ep30
212 bminma(4)=ep30
213 bminma(5)=ep30
214 bminma(6)=ep30
215 curv_max_max = zero
216 i_sk_old = intbuf_tab%I_STOK(1)
217 intbuf_tab%I_STOK(1) = 0
218 IF(iedge /= 0)
ALLOCATE(
nsnfieold(nspmd))
219 END IF
220
221
222
224
225 IF(iedge/=0) THEN
226
227 inacti = ipari(22,nin)
228 IF(itask==0)THEN
229
230
232 ALLOCATE(intbuf_tab%I25_CAND_A(nedge_total + 3))
233
234 i_sk_old_e = intbuf_tab%I_STOK_E(1)
236 1 nedge_total ,i_sk_old_e ,intbuf_tab%CANDS_E2E ,intbuf_tab%CANDM_E2E,
237 2 intbuf_tab%CAND_P ,intbuf_tab%I25_CAND_A ,nin ,nedge,ifq
238 3 intbuf_tab%FTSAVX_E ,intbuf_tab%FTSAVY_E ,intbuf_tab%FTSAVZ_E ,intbuf_tab%IFPEN_E)
239
240 intbuf_tab%I_STOK_E(1)=i_sk_old_e
241
242 ALLOCATE(intbuf_tab%I25_CAND_B(nedge_total + 3))
243
244 i_sk_old_e = intbuf_tab%I_STOK_E(2)
246
247 1 nedge_total ,i_sk_old_e ,intbuf_tab%CANDS_E2S,
248 . intbuf_tab%CANDM_E2S,
249 2 intbuf_tab%CAND_PS,intbuf_tab%I25_CAND_B ,nin ,nedge,
250 3 intbuf_tab%LEDGE,ifq ,intbuf_tab%FTSAVX_E2S,
251 4 intbuf_tab%FTSAVY_E2S, intbuf_tab%FTSAVZ_E2S,intbuf_tab%IFPEN_E2S )
252
253 intbuf_tab%I_STOK_E(2)=i_sk_old_e
254
255
256 ENDIF
257 ELSE
258 IF(SIZE(intbuf_tab%I_STOK_E) > 1 ) THEN
259
260 intbuf_tab%I_STOK_E(1) = 0
261 intbuf_tab%I_STOK_E(2) = 0
262 ENDIF
263 ENDIF
264
265
266
267
269 1 x ,intbuf_tab%NSV,intbuf_tab%MSR,nsn ,nmn ,
270 2 itask ,intbuf_tab%XSAV,xminl ,yminl ,zminl ,
271 3 xmaxl ,ymaxl ,zmaxl ,c_maxl,curv_max,
272 4 ipari(39,nin),intbuf_tab%IRECTM(1+4*sshift),nrtm_t ,sx ,sy ,
273 5 sz ,sx2 ,sy2 ,sz2 ,nmn_l)
274
275 IF(ithk == 1) THEN
277 1 intbuf_tab%GAP_M ,intbuf_tab%GAPMSAV ,
278 2 intbuf_tab%MSR ,nrtm , itask)
279 ENDIF
280
281#include "lockon.inc"
282 bminma(1) =
max(bminma(1),xmaxl)
283 bminma(2) =
max(bminma(2),ymaxl)
284 bminma(3) =
max(bminma(3),zmaxl)
285 bminma(4) =
min(bminma(4),xminl)
286 bminma(5) =
min(bminma(5),yminl)
287 bminma(6) =
min(bminma(6),zminl)
288 curv_max_max =
max(curv_max_max,c_maxl)
289 nmn_g = nmn_g + nmn_l
290 result = 0
291#include "lockoff.inc"
292
293
295
296
297 IF(itask==0)THEN
298 bsav(1:6)=bminma(1:6)
299 IF(abs(bminma(6)-bminma(3))>2*ep30.OR.
300 + abs(bminma(5)-bminma(2))>2*ep30.OR.
301 + abs(bminma(4)-bminma(1))>2*ep30)THEN
302 CALL ancmsg(msgid=87,anmode=aninfo,
303 . i1=noint,c1='(I25BUCE)')
305 END IF
306
307 tzinf = marge+
max(gap+dgapload,drad)+vmaxdt
308
309 IF(iedge > 0)THEN
310 bgapemx=intbuf_tab%VARIABLES(bgapemx_index)
311 tzinf =
max(tzinf,marge+two*bgapemx+dgapload+vmaxdt)
312 ENDIF
313
314 bminma(1)=bminma(1)+tzinf
315 bminma(2)=bminma(2)+tzinf
316 bminma(3)=bminma(3)+tzinf
317 bminma(4)=bminma(4)-tzinf
318 bminma(5)=bminma(5)-tzinf
319 bminma(6)=bminma(6)-tzinf
320
322 CALL ancmsg(msgid=36,anmode=aninfo,
323 . c1='(i25maintri)')
324 CALL ARRET(2)
325 END IF
326
327 NSNR = 0
328
329 END IF
330
331 IF(NSPMD > 1) THEN
332
333 IF(ITASK==0) THEN
334 ALLOCATE(CRVOXEL25(0:LRVOXEL25,0:LRVOXEL25,1:2,1:NSPMD))
335 CRVOXEL25(0:LRVOXEL25,0:LRVOXEL25,1:2,LOC_PROC) = 0
336 ENDIF
337
338 CALL MY_BARRIER
339.AND. IF (IMONM > 0 ITASK == 0) CALL STARTIME(TIMERS,26)
340 BGAPEMX=INTBUF_TAB%VARIABLES(bgapemx_index)
341
342 CALL SPMD_TRI25VOX0(
343 1 X ,BMINMA ,NRTM_T,INTBUF_TAB%STFM(1+SSHIFT),MARGE ,
344 2 CURV_MAX,INTBUF_TAB%GAP_M(1+SSHIFT),INTBUF_TAB%IRECTM(1+4*SSHIFT),GAP,
345 + INTBUF_TAB%VARIABLES(bgapsmx_index),
346 3 PMAX_GAP,VMAXDT,BGAPEMX,IEDGE,
347 . INTBUF_TAB%LEDGE,NEDGE,NLEDGE,
348 . INTBUF_TAB%GAPE ,DRAD ,DGAPLOAD)
349
350 CALL SPMD_TRI25VOX0_EDGE(
351 1 X ,BMINMA ,NRTM,INTBUF_TAB%STFE,MARGE ,
352 2 CURV_MAX,INTBUF_TAB%GAP_M,INTBUF_TAB%IRECTM,GAP,
353 + INTBUF_TAB%VARIABLES(bgapsmx_index),
354 3 PMAX_GAP,VMAXDT,BGAPEMX,IEDGE,IGAP0,
355 . INTBUF_TAB%LEDGE,NEDGE,NLEDGE,
356 . INTBUF_TAB%GAPE,DGAPLOAD)
357
358 CALL MY_BARRIER
359.AND. IF (IMONM > 0 ITASK == 0) CALL STOPTIME(TIMERS,26)
360
361 IF(ITASK==0)THEN
362
363
364
365
366 INACTI=0
367 NEDGE_LOCAL = INTBUF_TAB%NB_INTERNAL_EDGES + INTBUF_TAB%NB_BOUNDARY_EDGES_LOCAL
368 IEDGE = IPARI(58,NIN)
369 IF(IMONM > 0) CALL STARTIME(TIMERS,25)
370 CALL SPMD_TRI25VOX(
371 1 INTBUF_TAB%NSV ,NSN ,X ,V ,MS ,
372 2 BMINMA ,WEIGHT ,INTBUF_TAB%STFNS,NIN ,ISENDTO ,
373 3 IRCVFROM ,IAD_ELEM ,FR_ELEM ,NSNR ,IPARI(21,NIN),
374 4 INTBUF_TAB%GAP_S,ITAB ,KINET ,IFQ ,INACTI ,
375 5 NSNFIOLD ,IPARI(47,NIN),INTBUF_TAB%IELES,INTBUF_TAB%AREAS,TEMP ,
376 6 NUM_IMP ,NODNX_SMS ,INTBUF_TAB%GAP_SL,NTY ,INTBUF_TAB%IRTLM,
377 7 INTBUF_TAB%TIME_S,INTBUF_TAB%SECND_FR,INTBUF_TAB%PENE_OLD,INTBUF_TAB%STIF_OLD ,
378 8 INTBUF_TAB%NBINFLG,ILEV ,INTBUF_TAB%ICONT_I,IPARI(72,NIN),INTBUF_TAB%IPARTFRICS,
379 9 ITIED ,IVIS2 , INTBUF_TAB%IF_ADH,INTBUF_TAB%LEDGE,NEDGE ,
380 A NLEDGE ,INTBUF_TAB%STFM,NEDGE_LOCAL,INTBUF_TAB%GAPE,INTBUF_TAB%GAP_E_L,
381 B INTBUF_TAB%STFE ,INTBUF_TAB%EDGE_BISECTOR,INTBUF_TAB%VTX_BISECTOR,INTBUF_TAB%ADMSR,
382 . INTBUF_TAB%IRECTM,
383 D INTBUF_TAB%EBINFLG,INTBUF_TAB%MVOISIN,IEDGE ,ICODT , ISKEW ,
384 E INTBUF_TAB%IPARTFRIC_E,INTBUF_TAB%E2S_NOD_NORMAL,IPARI(97,NIN),INTBUF_TAB%STIFMSDT_S,
385 . INTBUF_TAB%STIFMSDT_EDG,
386 F IFSUB_CAREA ,PARAMETERS%INTAREAN)
387 IF(IMONM > 0) CALL STOPTIME(TIMERS,25)
388
389
390 CALL SPMD_RNUM25(
391 1 RENUM ,NIN, NSN,NSNFIOLD ,NSNROLD)
392 IF(IEDGE /= 0) THEN
393 CALL SPMD_RNUM25_EDGE(NIN,NEDGE,INTBUF_TAB%CANDS_E2E,INTBUF_TAB%I_STOK_E(1),
394 . INTBUF_TAB%CANDS_E2S,INTBUF_TAB%I_STOK_E(2))
395 END IF
396
397 IF(ALLOCATED(CRVOXEL25)) DEALLOCATE(CRVOXEL25)
398 END IF
399 END IF ! ITASK == 0
400
401
402 CAND_N_OLD = INTBUF_TAB%I_STOK(1)
403 40 continue
404
405
406
407 CALL MY_BARRIER
408
409 IF (IMONM > 0) CALL STARTIME(TIMERS,30)
410
411
412 MULTIMP = IPARI(23,NIN)
413 MULNSN = INTBUF_TAB%S_CAND_N - NCONT
414 CALL I25BUCE(
415 1 X ,V ,INTBUF_TAB%IRECTM(1+4*SSHIFT),INTBUF_TAB%NSV,
416 + INTBUF_TAB%STFNS,
417 2 NMN ,NRTM_T ,NSN ,INTBUF_TAB%CAND_E,INTBUF_TAB%CAND_N,
418 3 GAP ,NOINT ,INTBUF_TAB%I_STOK(1) ,MULNSN ,BMINMA ,
419 4 MARGE ,CURV_MAX ,PMAX_GAP ,VMAXDT ,
420 5 SSHIFT ,NIN ,INTBUF_TAB%STFM(1+SSHIFT) ,INTBUF_TAB%GAP_S,
421 6 NSNR ,NCONT ,INTBUF_TAB%GAP_M(1+SSHIFT) ,ITASK ,INTBUF_TAB%VARIABLES(bgapsmx_index),
422 7 I_MEM ,INTBUF_TAB%PENE_OLD,ITAB ,INTBUF_TAB%NBINFLG,INTBUF_TAB%MBINFLG,
423 8 ILEV ,INTBUF_TAB%MSEGTYP24,
424 9 FLAGREMN,INTBUF_TAB%KREMNODE(1+2*SSHIFT),INTBUF_TAB%REMNODE,
425 A IGAP ,INTBUF_TAB%GAP_SL,INTBUF_TAB%GAP_ML(1+SSHIFT),ICODT,ISKEW ,
426 B DRAD ,DGAPLOAD )
427
428
429 IF (I_MEM == 2)THEN
430#include "lockon.inc"
431 I_MEMG = I_MEM
432#include "lockoff.inc"
433 ENDIF
434
435
436 CALL MY_BARRIER
437
438 IF(I_MEMG /=0)THEN
439!$OMP SINGLE
440 MULTIMP = IPARI(23,NIN) * 1.3
441 CALL UPGRADE_MULTIMP(NIN,MULTIMP,INTBUF_TAB)
442!$OMP END SINGLE
443 I_MEM = 0
444 I_MEMG = 0
445 INTBUF_TAB%I_STOK(1)=CAND_N_OLD
446 GOTO 40
447 ENDIF
448
449 IF (IMONM > 0) CALL STOPTIME(TIMERS,30)
450
451
452
453 IF(IEDGE==0) GOTO 200
454 INACTI = IPARI(22,NIN)
455 CAND_E_OLD(1:2) = INTBUF_TAB%I_STOK_E(1:2)
456 BGAPEMX=INTBUF_TAB%VARIABLES(bgapemx_index)
457 IF(ITASK == 0)THEN
458
459 BMINMA(1)=BSAV(1)
460 BMINMA(2)=BSAV(2)
461 BMINMA(3)=BSAV(3)
462 BMINMA(4)=BSAV(4)
463 BMINMA(5)=BSAV(5)
464 BMINMA(6)=BSAV(6)
465
466 TZINF = MARGE+TWO*BGAPEMX+DGAPLOAD+VMAXDT
467
468 BMINMA(1)=BMINMA(1)+TZINF
469 BMINMA(2)=BMINMA(2)+TZINF
470 BMINMA(3)=BMINMA(3)+TZINF
471 BMINMA(4)=BMINMA(4)-TZINF
472 BMINMA(5)=BMINMA(5)-TZINF
473 BMINMA(6)=BMINMA(6)-TZINF
474
475 END IF
476
477#include "lockon.inc"
478 I_MEME(1:2)=0
479 I_MEMG_E = 0
480 I_MEMG_S = 0
481#include "lockoff.inc"
482
483 140 continue
484
485
486
487 CALL MY_BARRIER
488
489 IF (IMONM > 0) CALL STARTIME(TIMERS,30)
490
491 MULNSNE = INTBUF_TAB%S_CANDM_E2E
492 MULNSNS = INTBUF_TAB%S_CANDM_E2S
493 NEDGE_LOCAL = INTBUF_TAB%NB_INTERNAL_EDGES + INTBUF_TAB%NB_BOUNDARY_EDGES_LOCAL
494 CALL I25BUCE_EDG(
495 1 X ,V ,INTBUF_TAB%IRECTM,INACTI ,
496 2 NSN ,NMN ,INTBUF_TAB%CANDM_E2E,INTBUF_TAB%CANDS_E2E,
497 3 GAP ,NOINT ,INTBUF_TAB%I_STOK_E(1) ,MULNSNE ,BMINMA ,
498 4 MARGE ,VMAXDT ,DRAD ,
499 5 ESHIFT ,NEDGE_T ,SSHIFT ,NRTM_T ,INTBUF_TAB%STFM ,
500 6 INTBUF_TAB%STFE ,NCONTE ,INTBUF_TAB%GAP_M ,ITASK ,BGAPEMX,
501 7 I_MEME ,ITAB ,INTBUF_TAB%MBINFLG,INTBUF_TAB%EBINFLG,INTBUF_TAB%I_STOK_E(2),
502 8 MULNSNS,ILEV ,INTBUF_TAB%I25_CAND_A ,INTBUF_TAB%CAND_P ,IGAP0 ,
503 9 FLAGREMN,INTBUF_TAB%KREMNODE_EDG ,INTBUF_TAB%REMNODE_EDG,INTBUF_TAB%KREMNODE_E2S,
504 . INTBUF_TAB%REMNODE_E2S,
505 A IGAP ,INTBUF_TAB%GAP_ML,IEDGE ,NEDGE ,INTBUF_TAB%MSEGTYP24,
506 B INTBUF_TAB%LEDGE,INTBUF_TAB%ADMSR,INTBUF_TAB%EDGE_BISECTOR,INTBUF_TAB%VTX_BISECTOR,
507 C INTBUF_TAB%CANDM_E2S,INTBUF_TAB%CANDS_E2S,INTBUF_TAB%I25_CAND_B,INTBUF_TAB%CAND_PS,INTBUF_TAB%GAPE,
508 D INTBUF_TAB%GAP_E_L,NEDGE_LOCAL,IFQ , INTBUF_TAB%FTSAVX_E,INTBUF_TAB%FTSAVY_E,
509 E INTBUF_TAB%FTSAVZ_E,INTBUF_TAB%FTSAVX_E2S,INTBUF_TAB%FTSAVY_E2S, INTBUF_TAB%FTSAVZ_E2S,
510 F INTBUF_TAB%IFPEN_E,INTBUF_TAB%IFPEN_E2S,INTBUF_TAB%S_KREMNODE_EDG ,INTBUF_TAB%S_REMNODE_EDG,
511 G INTBUF_TAB%S_KREMNODE_E2S,INTBUF_TAB%S_REMNODE_E2S,DGAPLOAD)
512
513
514 IF (I_MEME(1)/=0)THEN
515#include "lockon.inc"
516 I_MEMG_E = I_MEME(1)
517#include "lockoff.inc"
518 ENDIF
519 IF (I_MEME(2)/=0)THEN
520#include "lockon.inc"
521 I_MEMG_S = I_MEME(2)
522#include "lockoff.inc"
523 ENDIF
524
525
526 CALL MY_BARRIER
527
528.OR. IF(I_MEMG_E /=0 I_MEMG_S/=0)THEN
529!$OMP SINGLE
530 IF(I_MEMG_E/=0)THEN
531 ! same as TYPE11: increase > 4 for small interfaces
532 MULTIMP = MAX(IPARI(87,NIN) +4,IPARI(87,NIN)+MIN(20,(250000/NCONTE)))
533 CALL UPGRADE_LCAND_EDG(NIN,MULTIMP,INTBUF_TAB)
534 END IF
535 IF(I_MEMG_S/=0)THEN
536 ! same as TYPE11: increase > 4 for small interfaces
537 MULTIMP = MAX(IPARI(89,NIN) +4,IPARI(89,NIN)+MIN(20,(250000/NCONTE)))
538 CALL UPGRADE_LCAND_E2S(NIN,MULTIMP,INTBUF_TAB)
539 END IF
540!$OMP END SINGLE
541 I_MEME(1:2)= 0
542 I_MEMG_E = 0
543 I_MEMG_S = 0
544 INTBUF_TAB%I_STOK_E(1:2)=CAND_E_OLD(1:2) ! on retrie tout
545 GOTO 140
546 ENDIF
547
548 IF(ITASK==0)DEALLOCATE(INTBUF_TAB%I25_CAND_A,INTBUF_TAB%I25_CAND_B)
549
550 IF (IMONM > 0) CALL STOPTIME(TIMERS,30)
551
552 200 CONTINUE
553
554
555 IF(NSPMD>1)THEN
556!$OMP SINGLE
557 IF (IMONM > 0) CALL STARTIME(TIMERS,26)
558 INTBUF_TAB%VARIABLES(distance_index) = - ONE
559
560 CALL SPMD_TRI25GAT(
561 1 RESULT ,NSN ,INTBUF_TAB%CAND_N,INTBUF_TAB%I_STOK(1),NIN,
562 2 IPARI(21,NIN),NSNR,MULTIMP ,NTY,IPARI(47,NIN),
563 3 ILEV ,NSNFIOLD,IPARI ,NSNROLD, RENUM, H3D_DATA ,
564 4 IPARI(72,NIN),FLAGREMN,LREMNORMAX,NRTM ,INTBUF_TAB%KREMNODE,
565 5 INTBUF_TAB%REMNODE,IVIS2,IPARI(97,NIN),IFSUB_CAREA ,NODADT_THERM)
566 IPARI(24,NIN) = NSNR
567
568 NEDGE_REMOTE_OLD = NEDGE_REMOTE
569
570 IF(IEDGE /= 0) THEN
571 CALL SPMD_TRI25EGAT(
572 1 RESULT ,NIN , NEDGE,INTBUF_TAB%CANDS_E2E,INTBUF_TAB%I_STOK_E(1),
573 2 INTBUF_TAB%CANDS_E2S,INTBUF_TAB%I_STOK_E(2),IGAP,IPARI(72,NIN),IPARI(97,NIN))
574 ENDIF
575
576 IPARI(69 ,NIN) = NEDGE_REMOTE_OLD
577
578 IF (IMONM > 0) CALL STOPTIME(TIMERS,26)
579 IF(IEDGE /= 0) THEN
580 DEALLOCATE(RENUM_EDGE)
581 DEALLOCATE(OLDNUM_EDGE)
582 ENDIF
583!$OMP END SINGLE
584 END IF
585 IF(IEDGE /= 0) THEN
586!$OMP SINGLE
587 DEALLOCATE(NSNFIEOLD)
588!$OMP END SINGLE
589 ENDIF
590
591 CALL MY_BARRIER
592 if(allocated(curv_max)) deallocate(curv_max)
593 RETURN
subroutine i25gapmsave(gap_m, gapmsav, msr, nrtm, itask)
subroutine i25trc_e2s(nedge, i_stok, cand_s, cand_m, cand_p, cand_a, nin, nedge_l, ledge, ifq, cand_fx, cand_fy, cand_fz, ifpen)
subroutine i25trc_edg(nedge, i_stok, cand_s, cand_m, cand_p, cand_a, nin, nedge_l, ifq, cand_fx, cand_fy, cand_fz, ifpen)
subroutine i7xsave(x, nsv, msr, nsn, nmn, itask, xsav, xmin, ymin, zmin, xmax, ymax, zmax, c_max, curv_max, icurv, irect, nrtm_t, sx, sy, sz, sx2, sy2, sz2, nmn_l)
integer, dimension(:), allocatable nsnfieold
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)