64
65
66
67 USE my_alloc_mod
71 USE intbufdef_mod
73 USE intbuf_fric_mod
77 USE multi_fvm_mod
81
82
83
84#include "implicit_f.inc"
85
86
87
88#include "com01_c.inc"
89#include "com04_c.inc"
90#include "param_c.inc"
91#include "scr12_c.inc"
92#include "scr15_c.inc"
93#include "units_c.inc"
94#include "scr17_c.inc"
95
96
97
98 INTEGER,INTENT(IN) :: SITAB, SICODE, SITABM1, SISKWN
99 INTEGER :: S_NOD2ELS
100 INTEGER IPARI(NPARI,NINTER), IXS(*), IXQ(*),
101 . IXC(*), ITAB(SITAB), MWA(*), IXTG(*), IKINE(*),
102 . IWCONT(5,*),IWCIN2(2,*),
103 . KNOD2ELS(*), KNOD2ELC(*), KNOD2ELTG(*),
104 . NOD2ELS(S_NOD2ELS), NOD2ELC(*), NOD2ELTG(*),
105 . IXT(*), IXP(*), IXR(*), NELEMINT, IDDLEVEL,IFIEND,
106 . IELEM21(*),IPM(NPROPMI,NUMMAT),
107 . SH4TREE(KSH4TREE,*), SH3TREE(KSH3TREE,*), IPART(*),
108 . IPARTC(*), IPARTTG(*),NOD2EL1D(*),KNOD2EL1D(*), IXS10(*),I_MEM,
109 . RESORT , IXS16(8,*), IXS20(12,*),IPARTS(*),IGEO(*),
110 . IWORKSH(*),NSNT, NMNT,KXIG3D(NIXIG3D,*),IXIG3D(*),
111 . KNOD2ELQ(*),NOD2ELQ(*),SEGQUADFR(2,*),TAGPRT_FRIC(*),IPARTT(*),
112 . IPARTP(*),IPARTX(*),IPARTR(*),NSN_MULTI_CONNEC,T2_NB_CONNEC(*),
113 . ICODE(*), ISKEW(SISKWN)
114 my_real x(3,*),v(3,*), pm(*), geo(*), ms(*), rwa(6,*),
115 . thk(*),thk_part(*),frigap(nparir,ninter),
116 . lelx(*), fillsol(*),pm_stack(*)
117 INTEGER NOM_OPT(LNOPT1,*),KXX(*),IXX(*)
118 INTEGER, INTENT(IN) :: LIST_NIN25(NINTER)
119 INTEGER, INTENT(IN) :: FLAG_ELEM_INTER25(NINTER25,NUMELS)
120 TYPE(INTERSURFP) :: INTERCEP(3,NINTER)
121 TYPE(INTBUF_STRUCT_) INTBUF_TAB(*)
122 TYPE(SCRATCH_STRUCT_) INSCR(*)
123 TYPE(INTBUF_FRIC_STRUCT_) INTBUF_FRIC_TAB(*)
124
125 TYPE (GROUP_) , DIMENSION(NGRBRIC) :: IGRBRIC
126 TYPE (SURF_) , DIMENSION(NSURF) :: IGRSURF
127 TYPE(t_ale_connectivity), INTENT(INOUT) :: ALE_CONNECTIVITY
128 TYPE(MULTI_FVM_STRUCT) :: MULTI_FVM
129 TYPE(INTER_CAND_), INTENT(inout) :: INTER_CAND
130
131
132
133 INTEGER,DIMENSION(:), ALLOCATABLE :: ITABM1
134 INTEGER N, JINSCR, NIN,IWRN, I
135 INTEGER NTY, NSN2T, NMN2T,ID,
136 . NSNET ,NMNET ,MULTIMP, IREMNODE, NREMNODE,
137 . NREMN(NINTER),ST2_CONNEC,
138 . REMNODE_SIZE,LEN_FILNAM,REMNODE_SIZE_EDG,IREMNODE_EDG,NIN25
139 CHARACTER*(2148) FILNAM
140 CHARACTER(LEN=NCHARTITLE) :: TITR
141 INTEGER, DIMENSION(:),ALLOCATABLE :: T2_ADD_CONNEC,,IKINE1
142
143 INTEGER :: NS
144 INTEGER :: NSN,NMN
145 LOGICAL :: CONDITION(NINTER)
147 INTEGER :: f1,f2
148 my_real :: displacement,displacement_max
149 INTEGER :: NRTM
150 INTEGER :: MAIN_INTERFACE_SIZE
151 INTEGER :: ID_MAIN_INTERFACE
152 INTEGER :: CPT,NODE_ID,J
153 INTEGER :: ,INACTI
154 INTEGER, DIMENSION(:), ALLOCATABLE :: TAG
155 DOUBLE PRECISION :: avg_stiff(NINTER)
156 DOUBLE PRECISION :: main_stiff
157 DOUBLE PRECISION :: min_stiff
158 LOGICAL :: IS_INTER18_AND_LAW151
159 INTEGER :: FLAG_OUTPUT
160 LOGICAL :: FLAG_REMOVED_NODE
161 INTEGER :: IJK
162 INTEGER :: KIND_INTERFACE
163 INTEGER, DIMENSION(3) :: NEXT_INTER
164 INTEGER, DIMENSION(3) :: ADDRESS_INTER
165 INTEGER, DIMENSION(NINTER) :: INTERFACE_TYPE2,INTERFACE_TYPE24,INTERFACE_OTHER
166 INTEGER, DIMENSION(NINTER) :: INTERFACE_INDEX
167 INTEGER :: INTER_TYPE2_NUMBER
168 INTEGER(KIND=8) :: NREMNODE_KIND8
169 INTEGER :: IEDGE
170 INTEGER :: SKIP_TYPE25_EDGE_2_EDGE
171 INTEGER, DIMENSION(:), ALLOCATABLE :: ELEM_LINKED_TO_SEGMENT
172
173 CALL my_alloc(itabm1,sitabm1)
174
175 i_mem = 0
176 resort = 0
177 nremnode = 0
178 ALLOCATE(ikine1(3*numnod))
179 DO i=1,3*numnod
180 ikine1(i) = 0
181 ENDDO
182
183 IF(((iddlevel == 0)) .AND. (dectyp >= 3 .AND. dectyp <= 6) .AND. n2d == 0)THEN
184 nsnt = 0
185 nmnt = 0
186 nsn2t = 0
187 nmn2t = 0
188 nsnet = 0
189 nmnet = 0
190 DO i = 1, numnod
191 iwcont(1,i) = 0
192 iwcont(2,i) = 0
193 iwcont(3,i) = 0
194 iwcont(4,i) = 0
195 iwcin2(1,i) = 0
196 iwcin2(2,i) = 0
197 END DO
198 END IF
199
200
201 IF (nsn_multi_connec > 0) THEN
202 ALLOCATE (t2_add_connec(numnod))
203 t2_add_connec(1:numnod) = 0
204 st2_connec = 0
205 t2_add_connec(1) = 1
206 IF (t2_nb_connec(1)>1) st2_connec = 1 + 5*t2_nb_connec(1)
207 DO i=2,numnod
208
209 IF (t2_nb_connec(i) == 1) t2_nb_connec(i) = 0
210
211 st2_connec = st2_connec + 1 + 5*t2_nb_connec(i)
212 t2_add_connec(i) = t2_add_connec(i-1) + 1 + 5*t2_nb_connec(i-1)
213 ENDDO
214 ALLOCATE (t2_connec(st2_connec))
215 t2_connec(1:st2_connec) = 0
216 ELSE
217 st2_connec = 0
218 ALLOCATE (t2_add_connec(0),t2_connec(0))
219 ENDIF
220
221
222 ALLOCATE( elem_linked_to_segment(numels) )
223
224
225
226
227
228 skip_type25_edge_2_edge = 0
229 next_inter(1:3) = 0
230 DO n=1,ninter
231 nty=ipari(7,n)
232 IF(nty==2) THEN
233 next_inter(2) = next_inter(2) + 1
234 interface_type2(next_inter(2)) = n
235 ELSEIF(nty == 24 .OR. nty == 25) THEN
236 next_inter(3) = next_inter(3) + 1
237 interface_type24(next_inter(3)) = n
238 IF(nty == 25) THEN
239
240
241
242 iedge = ipari(58,n)
243 IF(iedge/=0) skip_type25_edge_2_edge = 1
244 ENDIF
245 ELSE
246 next_inter(1) = next_inter(1) + 1
247 interface_other(next_inter(1)) = n
248 ENDIF
249 ENDDO
250
251 address_inter(1) = 0
252 address_inter(2) = next_inter(1)
253 address_inter(3) = next_inter(1) + next_inter(2)
254 interface_index(1:next_inter(1)) = interface_other(1:next_inter(1))
255 interface_index(address_inter(2)+1:address_inter(2)+next_inter(2)) = interface_type2(1:next_inter(2))
256 interface_index(address_inter(3)+1:address_inter(3)+next_inter(3)) = interface_type24(1:next_inter(3))
257
258 iwrn = 0
259 inter_type2_number = 0
260 nremn(1:ninter) = 0
261
262
263
264
265
266
267
268
269
270
271 DO kind_interface=1,3
272
273
274 DO ijk=1,next_inter(kind_interface)
275 n = interface_index(address_inter(kind_interface)+ijk)
276 iremnode = 0
277 iremnode_edg = 0
278 nremnode = 0
279 nty=ipari(7,n)
280 iedge = ipari(58,n)
281 flag_removed_node = .false.
282 IF ((nty == 7 .OR. nty == 25) .AND. ipari(63,n) == 2 .AND. iddlevel == 1)THEN
283
284 iremnode = 1
285 nremnode_kind8 = 16*ipari(4,n)
286 IF(nremnode_kind8 > huge(nremnode)) THEN
287 nremnode = huge(nremnode)/2
288 ELSE
289 nremnode = nremnode_kind8
290 END IF
292 flag_removed_node = .true.
293 ENDIF
294 IF (nty == 11.AND. ipari(63,n) == 2 .AND. iddlevel == 1)THEN
295
296 iremnode = 1
297 remnode_size = 5*ipari(4,n)
299 ENDIF
300 IF (nty == 25.AND.ipari(58,n) >0 .AND. ipari(63,n) == 2 .AND. iddlevel == 1)THEN
301
302 iremnode_edg = 1
303 remnode_size_edg = 5*ipari(68,n)
305 ENDIF
306 IF((nty==24.OR.nty==25).AND.iddlevel==0.AND.ipari(63,n)>0) THEN
307 IF(intbuf_tab(n)%S_KREMNODE>0) flag_removed_node = .true.
308 IF(nty==25.AND.iedge/=0) flag_removed_node = .true.
309 IF(nty==25.AND.next_inter(2)==0) flag_removed_node = .false.
310 ENDIF
311
312 IF (nty == 2) inter_type2_number=inter_type2_number+1
313 resort = 0
314 IF (nty == 14.OR.nty == 15.OR.nty == 16.OR.nty == 18.OR.nty==0) cycle
315 200 CONTINUE
316
317 IF (i_mem == 2)THEN
318 IF(nty == 11) THEN
319 multimp =
max(ipari(23,n)+8,nint(ipari(23,n)*1.75))
320 multimp =
max(multimp,ipari(23,n)+2500000/
max(1,ipari(18,n)))
321 multimp =
max(multimp,intbuf_tab(n)%S_CAND_MAX /
max(1,ipari(18,n)))
322 intbuf_tab(n)%S_CAND_MAX =
max(multimp*ipari(18,n),intbuf_tab(n)%S_CAND_MAX)
323 ELSE
324 multimp =
max(ipari(23,n)+8,nint(ipari(23,n)*1.5))
325 ENDIF
326
327 CALL reset_gap(n,ipari,intbuf_tab(n),frigap)
329 i_mem = 0
330 resort = 1
331 ENDIF
332
333 jinscr=ipari(10,n)
334 nin=n
336 CALL fretitl2(titr,nom_opt(lnopt1-ltitr+1,nin),ltitr)
337 nin25 = list_nin25(nin)
338
339 IF(n2d == 0)THEN
340 IF( multi_fvm%IS_INT18_LAW151 ) THEN
342 ENDIF
344 . inscr(n)%WA , x , ixs , ixc , pm ,
345 1 geo , ipari , nin , itab , ms ,
346 2 mwa , rwa , ixtg , iwrn , ikine ,
347 3 ixt , ixp , ixr , nelemint
348 4 ifiend , ale_connectivity , nsnet , nmnet , igrbric ,
349 5 iwcont , nsnt , nmnt , nsn2t , nmn2t ,
350 6 iwcin2 , knod2els , knod2elc , knod2eltg , nod2els ,
351 7 nod2elc , nod2eltg , igrsurf , ikine1 , ielem21 ,
352 8 sh4tree , sh3tree , ipart , ipartc , iparttg ,
353 9 thk , thk_part , nod2el1d , knod2el1d , ixs10 ,
354 a i_mem , resort , inter_cand , ixs16 , ixs20 ,
355 b
id , titr , iremnode , nremnode , iparts ,
356 c kxx , ixx , igeo , intercep , lelx ,
357 d intbuf_tab , fillsol , pm_stack , iworksh , kxig3d ,
358 e ixig3d , tagprt_fric , intbuf_fric_tab , ipartt , ipartp ,
359 f ipartx , ipartr , nsn_multi_connec , t2_add_connec , t2_nb_connec ,
360 g t2_connec , nom_opt , icode , iskew , iremnode_edg ,
361 h multi_fvm%S_APPEND_ARRAY, multi_fvm%X_APPEND , multi_fvm%MASS_APPEND , n2d , flag_removed_node,
362 i nspmd ,inter_type2_number , elem_linked_to_segment, inscr(n)%SINSCR, sicode ,
363 j sitab ,nin25 , flag_elem_inter25 , multi_fvm )
364 IF( multi_fvm%IS_INT18_LAW151 ) THEN
366 ENDIF
367
368 IF (i_mem /= 0) GOTO 200
369 ELSE
371 1 intbuf_tab(n),inscr(n)%WA ,x ,ixq ,inscr(n)%SINSCR,
372 2 pm ,geo ,ipari(1,n),nin ,itab ,
373 3 itabm1 ,numnod ,ikine ,mwa ,ipm ,
374 4
id ,titr ,knod2elq ,nod2elq ,segquadfr ,
375 5 nummat ,ninter ,sitab ,sitabm1 ,sicode ,
376 6 icode)
377 ENDIF
378 ENDDO
379
380
381
382
383
384 IF (n2d==0.AND.kind_interface==2.AND.nspmd>1) THEN
385 IF(iddlevel==0) THEN
386 flag_output = 0
387 IF (inter_type2_number >0) THEN
388 CALL remn_i2op(1,ninter,ipari,intbuf_tab,itab,nom_opt,nremn,flag_output,skip_type25_edge_2_edge)
389 ENDIF
391 . knod2els,nod2els,ipari ,intbuf_tab ,
392 . itab , nom_opt,nremn, s_nod2els,flag_output)
395 ELSE
397 ENDIF
398 END IF
399
400
401 ENDDO
402
403 DEALLOCATE(elem_linked_to_segment)
404
405
406
407
408 IF(iwrn/=0) THEN
411 OPEN(unit=iou2,file=filnam(1:len_filnam),status='UNKNOWN',
412 . form='FORMATTED')
413 WRITE(iou2,'(2A)')'#--1---|---2---|---3---|---4---|',
414 . '---5---|---6---|---7---|---8---|'
415 WRITE(iou2,'(A)')'# NEW NODES COORDINATES'
416 WRITE(iou2,'(2A)')'#--1---|---2---|---3---|---4---|',
417 . '---5---|---6---|---7---|---8---|'
418 WRITE(iou2,'(I10,1P3G20.13)')
419 . (itab(i),x(1,i),x(2,i),x(3,i),i=1,numnod)
420 WRITE(iou2,'(2A)')'#--1---|---2---|---3---|---4---|',
421 . '---5---|---6---|---7---|---8---|'
422 WRITE(iou2,'(A)')'# END OF NEW NODES COORDINATES'
423 WRITE(iou2,'(2A)')'#--1---|---2---|---3---|---4---|',
424 . '---5---|---6---|---7---|---8---|'
425 CLOSE(unit=iou2)
426 ENDIF
427
428
429
430
431
432
433
434
435
436 displacement_max = 0.0
437 ns = 0
438 main_interface_size = -1
439 id_main_interface = -1
440 IF(n2d==0)THEN
441 IF((iddlevel==0).AND.(dectyp>=3.AND.dectyp<=6))THEN
442
443 condition(1:ninter) = .false.
444 avg_stiff(1:ninter) = huge(1.0d0)
445 ALLOCATE(tag(numnod))
446 tag(1:numnod) = 0
447 DO n=1,ninter
448 nty=ipari(7,n)
449 IF( nty == 7 ) THEN
450 nmn = ipari(6,n)
451 nsn = ipari(5,n)
452 nrtm = ipari(4,n)
453 inacti = ipari(22,n)
454 ipari_14 = ipari(14,n)
455 is_inter18_and_law151 = .false.
456 IF(inacti == 7)THEN
457 IF(ipari_14 == 151)is_inter18_and_law151 = .true.
458 ENDIF
459 IF(is_inter18_and_law151)cycle
460 ns = 0
461
462
463 DO i = 1,nmn
464 node_id = intbuf_tab(n)%MSR(i)
465 DO j = knod2els(node_id)+1,knod2els(node_id+1)
466 ns = ns +1
467 EXIT
468 ENDDO
469 ENDDO
470
471 IF (ns > 9*(nmn) / 10) THEN
472
473 cpt = 0
474 DO i = 1,nsn
475 tag(intbuf_tab(n)%NSV(i)) = 1
476 ENDDO
477 DO i = 1,nmn
478 IF(tag(intbuf_tab(n)%MSR(i)) == 1) cpt = cpt + 1
479 ENDDO
480 DO i = 1,nsn
481 tag(intbuf_tab(n)%NSV(i)) = 0
482 ENDDO
483 IF( abs(nsn - nmn) < nsn / 50 .AND. abs(nmn - cpt) < nmn/50) THEN
484
485 condition(n) = .true.
486 avg_stiff(n) = 0.0d0
487 DO i = 1,nrtm
488 avg_stiff(n) = avg_stiff(n) + intbuf_tab(n)%STFM(i)/dble(nrtm)
489 ENDDO
490 IF(avg_stiff(n) == 0) THEN
491 DO i = 1,nsn
492 avg_stiff(n) = avg_stiff(n) + intbuf_tab(n)%STFNS(i)/dble(nsn)
493 ENDDO
494 ENDIF
495 ENDIF
496 ENDIF
497 inacti = ipari(22,n)
498 ipari_14 = ipari(14,n)
499 is_inter18_and_law151 = .false.
500 IF(inacti == 7 .AND. ipari_14 == 151) is_inter18_and_law151 = .true.
501 IF(.NOT. is_inter18_and_law151)THEN
502 CALL c_compute_velocity(v, numnod, intbuf_tab(n)%NSV, nsn, v1, f1)
503 CALL c_compute_velocity(v, numnod, intbuf_tab(n)%MSR, nmn, v2, f2)
504 displacement = (v1(1) - v2(1))**2 + (v1(2) - v2(2))**2 + (v1(3) - v2(3))**2
505 IF(f1 > nsn / 2 .AND. f2 > nmn / 2) THEN
506 IF(displacement > displacement_max / 10.0 .AND. nmn + nsn > main_interface_sizeTHEN
507 IF( nmn + nsn > numnod / 100 ) THEN
508
509
510 main_interface_size = nmn + nsn
511 id_main_interface = n
512
513 displacement_max = displacement
514 ENDIF
515 ENDIF
516 ENDIF
517 ENDIF
518 ENDIF
519 ENDDO
520
521 tag(1:numnod) = 0
522 IF(id_main_interface > 0) THEN
523 nsn = ipari(5,id_main_interface)
524 nrtm = ipari(4,id_main_interface)
525 nmn = ipari(6,id_main_interface)
526 main_stiff = 0.0d0
527 DO i = 1,nrtm
528 main_stiff = main_stiff + intbuf_tab(id_main_interface)%STFM(i) / dble(nrtm)
529 ENDDO
530 IF(main_stiff == 0) THEN
531 DO i = 1,nsn
532 main_stiff = main_stiff + intbuf_tab(id_main_interface)%STFNS(i) / dble(nsn)
533 ENDDO
534 ENDIF
535
536 DO i = 1,nsn
537 tag(intbuf_tab(id_main_interface)%NSV(i)) = 1
538 ENDDO
539 DO i = 1,nmn
540 tag(intbuf_tab(id_main_interface)%MSR(i)) = 1
541 ENDDO
542 min_stiff = huge(0.0d0)
543 DO n=1,ninter
544 ipari(69,n) = 0
545 IF(condition(n) .AND. n /= id_main_interface) THEN
546
547 cpt = 0
548 nmn = ipari(6,n)
549 nsn = ipari(5,n)
550 DO i = 1,nsn
551 IF(tag(intbuf_tab(n)%NSV(i)) == 1) cpt = cpt +1
552 ENDDO
553 IF( cpt > (nsn)/3 ) THEN
554
555
556 min_stiff =
min(min_stiff,avg_stiff(n))
557 ipari(69,n) = 1
558
559 ENDIF
560 ENDIF
561 ENDDO
562 DO n=1,ninter
563 IF(ipari(69,n) == 1) THEN
564 nmn = ipari(6,n)
565 nsn = ipari(5,n)
566 IF(avg_stiff(n) < main_stiff / 10.0) THEN
567 i = 0
568 IF(avg_stiff(n) <= 3.0*min_stiff .AND. avg_stiff(n) < main_stiff / 200.0) i = 1
569 IF(avg_stiff(n) <= 2.0*min_stiff .AND. avg_stiff(n) < main_stiff / 500.0) i = 4
570
571
572 IF(i > 0) THEN
573 WRITE(iout,*)"INFO: WEIGHT OF INTERFACE",ipari(15,n), "INCREASED"
574 CALL iwcontdd_new(intbuf_tab(n)%NSV,intbuf_tab(n)%MSR,nsn,nmn,iwcont,i)
575 ENDIF
576 ENDIF
577 ENDIF
578 ENDDO
579
580 ENDIF
581
582 DEALLOCATE(tag)
583 ENDIF
584 ENDIF
585
586
587 DEALLOCATE(t2_add_connec,t2_connec,ikine1)
588 DEALLOCATE(itabm1)
589
590 RETURN
subroutine flush_remnode_array(ninter, npari, ipari, intbuf_tab)
subroutine iwcontdd_new(nsv, msr, nsn, nmn, iwcont, cost)
subroutine remn_i2_edgop(ipari, intbuf_tab, itab, nremov)
subroutine remn_i2op(lower_bound, upper_bound, ipari, intbuf_tab, itab, nom_opt, nremov, iddlevel, skip_type25_edge_2_edge)
subroutine ri2_int24p_ini(ipari, intbuf_tab, itab, nom_opt, nremov)
subroutine inint2(intbuf_tab, inscr, x, ixq, sinscr, pm, geo, ipari, nint, itab, itabm1, numnod, ikine, mwa, ipm, id, titr, knod2elq, nod2elq, segquadfr, nummat, ninter, sitab, sitabm1, sicode, icode)
subroutine inint3(inscr, x, ixs, ixc, pm, geo, ipari, nin, itab, ms, mwa, rwa, ixtg, iwrn, ikine, ixt, ixp, ixr, nelemint, iddlevel, ifiend, ale_connectivity, nsnet, nmnet, igrbric, iwcont, nsnt, nmnt, nsn2t, nmn2t, iwcin2, knod2els, knod2elc, knod2eltg, nod2els, nod2elc, nod2eltg, igrsurf, ikine1, ielem21, sh4tree, sh3tree, ipart, ipartc, iparttg, thk, thk_part, nod2el1d, knod2el1d, ixs10, i_mem, resort, inter_cand, ixs16, ixs20, id, titr, iremnode, nremnode, iparts, kxx, ixx, igeo, intercep, lelx, intbuf_tab, fillsol, pm_stack, iworksh, kxig3d, ixig3d, tagprt_fric, intbuf_fric_tab, ipartt, ipartp, ipartx, ipartr, nsn_multi_connec, t2_add_connec, t2_nb_connec, t2_connec, nom_opt, icode, iskew, iremnode_edg, s_append_array, x_append, mass_append, n2d, flag_removed_node, nspmd, inter_type2_number, elem_linked_to_segment, sinscr, sicode, sitab, nin25, flag_elem_inter25, multi_fvm)
character(len=outfile_char_len) outfile_name
subroutine int18_law151_nsv_shift(mode, itask, nthread, multi_fvm, ipari, intbuf_tab, npari, ninter, numnod, opt_int_id)
integer, parameter nchartitle
subroutine remn_self24(x, ixs, ixs10, ixs16, ixs20, knod2els, nod2els, ipari, intbuf_tab, itab, nom_opt, nremov, s_nod2els, iddlevel)
subroutine reset_gap(ni, ipari, intbuf_tab, frigap)
subroutine upgrade_multimp(ni, multimp_parameter, intbuf_tab)
subroutine upgrade_remnode_edg(ipari, nremnode, intbuf_tab)
subroutine upgrade_remnode(ipari, nremnode, intbuf_tab, nty)