OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
split_interfaces.F File Reference
#include "implicit_f.inc"
#include "assert.inc"
#include "com01_c.inc"
#include "com04_c.inc"
#include "param_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine split_interfaces (intbuf_tab, ipari, proc, intbuf_tab_l, ipari_l, intercep, nodlocal, itab, itabi2m, nbddi2m, numnod_l, len_cep, cep, cel, igrbric, t8, multi_fvm, tag_nm, nindx_nm, indx_nm, tag_scratch, nindx_scrt, indx_scrt, flag_24_25, i24maxnsne, intbuf_fric_tab)
subroutine w_type8 (proc, t8)

Function/Subroutine Documentation

◆ split_interfaces()

subroutine split_interfaces ( type(intbuf_struct_), dimension(*) intbuf_tab,
integer, dimension(npari,*) ipari,
integer proc,
type(intbuf_struct_), dimension(*) intbuf_tab_l,
integer, dimension(npari,ninter) ipari_l,
type(intersurfp), dimension(3,ninter) intercep,
integer, dimension(*) nodlocal,
integer, dimension(*) itab,
integer, dimension(*) itabi2m,
integer nbddi2m,
integer numnod_l,
integer, intent(in) len_cep,
integer, dimension(len_cep) cep,
integer, dimension(*) cel,
type (group_), dimension(ngrbric) igrbric,
type(int8_struct_), dimension(nspmd,*) t8,
type(multi_fvm_struct), intent(in) multi_fvm,
integer, dimension(*) tag_nm,
integer, intent(inout) nindx_nm,
integer, dimension(*), intent(inout) indx_nm,
integer, dimension(*) tag_scratch,
integer, intent(inout) nindx_scrt,
integer, dimension(*), intent(inout) indx_scrt,
logical, intent(in) flag_24_25,
integer i24maxnsne,
type(intbuf_fric_struct_), dimension(*) intbuf_fric_tab )
Parameters
[in]len_cepsize of cep

Definition at line 97 of file split_interfaces.F.

103C-----------------------------------------------
104C M o d u l e s
105C-----------------------------------------------
106 USE message_mod
107 USE front_mod
108 USE intbufdef_mod
109 USE int8_mod
110 USE multi_fvm_mod
111 USE groupdef_mod
112 USE intbuf_fric_mod
113C-----------------------------------------------
114C I m p l i c i t T y p e s
115C-----------------------------------------------
116#include "implicit_f.inc"
117C-----------------------------------------------
118C C o m m o n B l o c k s
119C-----------------------------------------------
120#include "assert.inc"
121#include "com01_c.inc"
122#include "com04_c.inc"
123#include "param_c.inc"
124C-----------------------------------------------
125C D u m m y A r g u m e n t s
126C-----------------------------------------------
127! -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
128! INDX_XXX : size = NUMNOD
129! index of non-zero TAG_XXX value
130! used for optimize the initialization
131! of TAG_XXX array (XXX = NM or SCRT for SCRATCH)
132! allocated array in lectur and threadprivate array
133! NINDX_XXX : number of non-zero TAG_XXX value
134! TAG_XXX : size = NUMNOD
135! array used to tag an element for
136! a given interface ; allocated in lectur
137! allocated array in lectur and threadprivate array
138! FLAG_24_25 : logical, flag for interface 24 or 25
139! -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
140 INTEGER, INTENT(in) :: LEN_CEP !< size of cep
141 INTEGER
142 . PROC,IPARI(NPARI,*),IPARI_L(NPARI,NINTER),
143 . NODLOCAL(*),ITAB(*),ITABI2M(*),
144 . NBDDI2M,NUMNOD_L,CEP(LEN_CEP), CEL(*),I24MAXNSNE
145 LOGICAL, INTENT(IN) :: FLAG_24_25
146 INTEGER, INTENT(INOUT) :: NINDX_NM,NINDX_SCRT
147 INTEGER, DIMENSION(*), INTENT(INOUT) :: INDX_NM,INDX_SCRT
148 INTEGER, DIMENSION(*) :: TAG_NM,TAG_SCRATCH
149c my_real
150
151 TYPE(INTBUF_STRUCT_) INTBUF_TAB(*),INTBUF_TAB_L(*)
152 TYPE(INTERSURFP) :: INTERCEP(3,NINTER)
153 TYPE(INT8_STRUCT_) :: T8(NSPMD,*)
154 TYPE(MULTI_FVM_STRUCT), INTENT(IN) :: MULTI_FVM
155C-----------------------------------------------
156 TYPE (GROUP_) , DIMENSION(NGRBRIC) :: IGRBRIC
157C-----------------------------------------------
158 TYPE(INTBUF_FRIC_STRUCT_) :: INTBUF_FRIC_TAB(*)
159
160C-----------------------------------------------
161C F u n c t i o n
162C-----------------------------------------------
163
164C-----------------------------------------------
165C L o c a l V a r i a b l e s
166C-----------------------------------------------
167 LOGICAL :: FLAG_INIT_24_25
168 INTEGER, DIMENSION(:),ALLOCATABLE ::
169 . TAG_NODE_2RY,TAG_SEGM,TAG_SEGS,
170 . TAG_NODE_MSR,TAG_SEGM2,TAG_II,TAGE_II,
171 . TAG_NODE_MSR2,TAG,TAG_IRTL,
172 . TAG_NLINS, TAG_NLINM,TAG_NLINS2, TAG_NLINM2,
173 . TAG_NLG,TAG_NLG2,IBUF8_L,TAG_NSNE,TAG_NMNE,
174 . TAG_NSVE,TAG_MSRE, TAG_IELES, TAG_IELEM,TAG_NODE_2RY2,
175 . TAG_LMSR,TAG_LMSR2,TAG_NSEG,TAG_NSEG2,
176 . NODLOCAL24,TAG_SEG2S,TAG_NSNE_L,TAG_SM,TAG_2RY_INV,
177 . KNOR2MSR,NOR2MSR,MSR_L_I21,MNDD_I21,TAG_SEGSS
178
179 INTEGER
180 . I,NI,ITYP,NRTS,NSN,NMN,IGAP,II_STOK,II_STOK_E,
181 . NRTM,INACTI,NOINT,IFQ,INTTH,
182 . NISUB,IFORM,NLINS,NLINM,NLINSA,NLINMA,
183 . NSNE,NMNE,NREMNODE_L,FLAGREMNODE,ILEV,IEDGE,L24ADD,
184 . NUVAR,NLN,NIR,K,N,NL,NMT,NST,ILAGM,NME,NMNG,
185 . MX_VM, MX_VN,INTKG,INTPLY,NRTSE,NRTSE_L,NMT_L,
186 . NRTS_L,NSN_L,NRTM_L,NMN_L,II_STOK_L,II_STOK_E_L,II_STOK_S,II_STOK_S_L,
187 . MULTIMP,NCONT,NCONTE,SIZ,MFROT,NISUBS_L,NISUBM_L,
188 . NLN_L,NLINS_L,NLINM_L,NSNE_L,NMNE_L,NME_L,NMNG_l,
189 . NSN0,NSN0_L,KE,NBT8,P2,NBS_INTERF,NBM_INTERF,NADMSR,
190 . NADMSR_L,IBID,IEDGE4,
191 . NRTM_IGE,NRTM_IGE_L,NRTS_IGE,NRTS_IGE_L,
192 . NRTM_FE, NRTM_FE_L, NRTS_FE, NRTS_FE_L,NMN_FE_L,
193 . NMN_IGE_L,NSN_FE_L,NSN_IGE_L,NMN_FE,
194 . NMN_IGE,NSN_FE,NSN_IGE,L,INTFRIC,NREMNOR,IVIS2,
195 . NEDGE,NEDGE_L,INTNITSCHE,II,NISUBE_L,ITHK,FLAGLOADP,
196 . ISTIF_MSDT, IDEL25_SOLID
197 INTEGER :: NINDX_NDLOCAL24
198 INTEGER :: MULTIMPE
199c my_real
200c . RCONT
201! Local array (integer and my_real arrays)
202 INTEGER, DIMENSION(:), ALLOCATABLE :: TABI_ZERO
203 my_real, DIMENSION(:), ALLOCATABLE :: tabr_zero
204 INTEGER, DIMENSION(:), ALLOCATABLE :: I710XSAV
205 INTEGER, DIMENSION(:), ALLOCATABLE :: INDX_NDLOCAL24
206 INTEGER, DIMENSION(:), ALLOCATABLE :: TAG_EDGE,TAG_EDGE2
207 INTEGER, DIMENSION(:), ALLOCATABLE :: TAG_II_E2E
208 INTEGER, DIMENSION(:), ALLOCATABLE :: TAG_II_E2S
209 INTEGER, DIMENSION(:), ALLOCATABLE :: TAG_JJ_E2E,TAG_JJ_E2S
210 LOGICAL :: TYPE18_LAW151
211C ----------------------------------------
212! NODLOCAL24 is used for interface /TYPE24 or /TYPE25
213! value of NODLOCAL24 : 1-->NUMNOD NODLOCAL24 = NODLOCAL
214! NUMNOD+1-->end NODLOCAL24 = interface dependent
215! NODLOCAL is local to each domain, so it is interface independent
216! for each NI interface, flush NODLOCAL24(NUMNOD+1-->end) to 0 is not
217! necessary but for a future development, I flushed it
218!
219 flag_init_24_25 = .true.
220 IF(flag_24_25) THEN
221 ALLOCATE( nodlocal24(numnod+i24maxnsne) )
222 ALLOCATE( indx_ndlocal24(numnod+i24maxnsne) )
223 ENDIF
224C Care TYPE24 + E2E
225C Edge to Edge Nodes fictive Nodes are numbered over NUMNOD
226C Tag Arrays must be increased accordingly
227! I24MAXNSNE = 0
228! DO NI= 1, NINTER
229! ITYP = IPARI(7,NI)
230! IF(ITYP==24)THEN
231! NSNE = IPARI(55,NI)
232! I24MAXNSNE = MAX(I24MAXNSNE,NSNE)
233! ENDIF
234! ENDDO
235
236 !allocation outside of the loop for optimisation
237 !WARNING!! : must be reflushed to zero after use
238 !(only part of tab that has been used)
239
240! ALLOCATE(TAG_SCRATCH(NUMNOD+I24MAXNSNE+NUMELS))
241! TAG_SCRATCH(1:NUMNOD+I24MAXNSNE+NUMELS) = 0
242C
243C Init tableau de tag pour frontiere int2
244C
245 IF(nbddi2m>0) THEN
246 DO i = 1, numnod_l
247 itabi2m(i) = 0
248 ENDDO
249 ENDIF
250 nbt8 = 0
251 DO ni= 1, ninter
252 nindx_nm = 0
253 nindx_scrt = 0
254 nindx_ndlocal24 = 0
255 type18_law151 = .false.
256
257! print*,'=============SPLIT INTERFACE PROC NI======',PROC,NI
258
259 !=========================================
260 !write all interfaces array sizes
261C WRITE(6,*) __FILE__,"INTERFACE=",NI
262 CALL w_intbuf_size(intbuf_tab_l(ni))
263 !=========================================
264
265 !global variables
266 nrts = ipari(3,ni)
267 nrts_ige = ipari(75,ni)
268 nrts_fe = ipari(76,ni)
269 nrtm = ipari(4,ni)
270 nrtm_ige = ipari(73,ni)
271 nrtm_fe = ipari(74,ni)
272 nme = ipari(4,ni)
273 nsn = ipari(5,ni)
274 nmn = ipari(6,ni)
275 nmn_fe = ipari(80,ni)!type7
276 nmn_ige = ipari(79,ni)!type7
277 nsn_fe = ipari(78,ni)!type7
278 nsn_ige = ipari(77,ni)!type7
279 ityp = ipari(7,ni)
280 nst = ipari(8,ni)
281 nmng = ipari(8,ni) !type21
282 nmt = ipari(9,ni)
283 ivis2 = ipari(14,ni)
284 noint = ipari(15,ni)
285 ilev = ipari(20,ni)
286 igap = ipari(21,ni)
287 inacti = abs(ipari(22,ni)) ! cas INACTI "passant a 0"
288 mfrot = ipari(30,ni)
289 ifq = ipari(31,ni)
290 ilagm = ipari(33,ni)
291 IF(ityp == 2) THEN
292 nuvar = ipari(35,ni)
293 ELSEIF(ityp == 20) THEN
294 nln = ipari(35,ni)
295 ENDIF
296 nisub = ipari(36,ni)
297 intth = ipari(47,ni)
298 iform = ipari(48,ni)
299 nlins = ipari(51,ni)
300 nlinm = ipari(52,ni)
301 nlinsa = ipari(53,ni)
302 nlinma = ipari(54,ni)
303 nsne = ipari(55,ni)
304 nmne = ipari(56,ni)
305 iedge = ipari(58,ni)
306 l24add = ipari(59,ni)
307 flagremnode = ipari(63,ni)
308 intkg = ipari(65,ni)
309 intply = ipari(66,ni)
310 nadmsr = ipari(67,ni)
311 nedge = ipari(68,ni)
312 intfric = ipari(72,ni)
313 intnitsche = ipari(86,ni)
314 ithk = ipari(91,ni)
315 flagloadp = ipari(95,ni)
316 istif_msdt = ipari(97,ni)
317 idel25_solid = ipari(100,ni)
318
319 IF (ityp == 24) nrtse = ipari(52,ni)
320 IF (ityp == 24) iedge4 = ipari(59,ni)
321
322 IF(ityp==7.OR.ityp==8.OR.ityp==10.OR.ityp==11.OR.ityp==20.
323 . or.ityp==21.OR.ityp==22.OR.ityp==23.OR.ityp==24.
324 . or.ityp==25)THEN
325 ii_stok = intbuf_tab(ni)%I_STOK(1)
326 ii_stok_l = 0
327 IF(ityp==20)THEN
328 ii_stok_e = intbuf_tab(ni)%I_STOK_E(1)
329 ii_stok_e_l = 0
330 ENDIF
331 IF(ityp==25)THEN
332 ii_stok_e = 0
333 ii_stok_e_l = 0
334 ii_stok_s = 0
335 ii_stok_s_l = 0
336 IF(intbuf_tab(ni)%S_I_STOK_E > 1) THEN
337 ii_stok_e = intbuf_tab(ni)%I_STOK_E(1)
338 ii_stok_s = intbuf_tab(ni)%I_STOK_E(2)
339 ENDIF
340 ENDIF
341 ENDIF
342
343 !local variables
344 nrts_l = ipari_l(3,ni)
345 nrts_ige_l = ipari_l(75,ni)
346 nrts_fe_l = ipari_l(76,ni)
347 nrtm_l = ipari_l(4,ni)
348 nrtm_ige_l = ipari_l(73,ni)
349 nrtm_fe_l = ipari_l(74,ni)
350 nme_l = ipari_l(4,ni)
351 nsn_l = ipari_l(5,ni)
352 nmn_l = ipari_l(6,ni)
353 nmn_fe_l = ipari_l(80,ni)!type7
354 nmn_ige_l = ipari_l(79,ni)!type7
355 nsn_fe_l = ipari_l(78,ni)!type7
356 nsn_ige_l = ipari_l(77,ni)!type7
357 nmt_l = ipari_l(9,ni)
358 nmng_l = ipari_l(8,ni) !type21
359 ncont = ipari_l(18,ni)
360 multimp = ipari_l(23,ni)
361 nisubs_l = ipari_l(37,ni)
362 nisubm_l = ipari_l(38,ni)
363 nln_l = ipari_l(35,ni)
364 nlins_l = ipari_l(51,ni)
365 nlinm _l = ipari_l(52,ni)
366 nsne_l = ipari_l(55,ni)
367 nconte = ncont
368 nmne_l = ipari_l(56,ni)
369 nremnode_l = ipari_l(62,ni)
370 nremnor = ipari_l(81,ni)
371 IF (ityp == 24) nrtse_l = ipari_l(52,ni)
372 nadmsr_l = ipari_l(67,ni)
373 nedge_l = ipari_l(68,ni)
374 nisube_l = ipari_l(90,ni)
375
376
377C=======================================================================
378 IF(ityp ==1 )THEN
379C=======================================================================
380 IF(proc==0) THEN
381 !split and write on disk integers arrays
382 CALL copy_ival(intbuf_tab(ni)%IRECTS,nrts,4) !KD(10)
383 CALL copy_ival(intbuf_tab(ni)%IRECTM,nrtm,4) !KD(11)
384 CALL split_node_nodloc_p0(intbuf_tab(ni)%NSV,nsn,1,nodlocal) !KD(12)
385 CALL split_node_nodloc_p0(intbuf_tab(ni)%MSR,nmn,1,nodlocal) !KD(13)
386 CALL copy_ival(intbuf_tab(ni)%IRTLM,nsn,1) !KD(14)
387 CALL copy_ival(intbuf_tab(ni)%ILOCS,nsn,1) !KD(16)
388 CALL copy_ival(intbuf_tab(ni)%NSEGM,1+nmn,1) !KD(21)
389 CALL copy_ival(intbuf_tab(ni)%NRT,nmt,1) !KD(14)
390
391 !split and write on disk floating arrays
392 CALL copy_rval(intbuf_tab(ni)%STFAC,1,1)
393 CALL copy_rval(intbuf_tab(ni)%VARIABLES,nparir,1)
394 CALL copy_rval(intbuf_tab(ni)%CSTS,nsn,2) !JD(12)
395 CALL copy_rval(intbuf_tab(ni)%N,nsn,3) !JD(20)
396 ENDIF
397C=======================================================================
398 ELSEIF(ityp == 2)THEN
399C=======================================================================
400 ALLOCATE(tag_node_2ry(nsn_l),tag_segm(nrtm_l),
401 . tag_segm2(nrtm),tag(nrtm),tag_irtl(nmn_l))
402! useless initialization
403 tag_node_2ry(1:nsn_l) = 0
404 tag_segm(1:nrtm_l) = 0
405 tag_segm2(1:nrtm) = 0
406 tag(1:nrtm) = 0
407 tag_irtl(1:nmn_l) = 0
408
409 IF (n2d==0) THEN
410 nir = 4
411 ELSE
412 nir = 2
413 ENDIF
414
415 !prepare addition arrays used for split
416 CALL prepare_split_i2(proc, intbuf_tab(ni), nsn , nmn ,
417 . nrtm, tag_node_2ry , tag_segm , tag_segm2,
418 . tag_irtl, tag , itabi2m , nodlocal ,
419 . nbddi2m , nir ,numnod_l)
420
421c split and write on disk integers arrays
422 CALL copy_ival(intbuf_tab(ni)%IRECTS,nrts,4) !KD(10)
423
424 CALL split_seg_nodloc(intbuf_tab(ni)%IRECTM,nrtm_l,4,
425 . tag_segm,nodlocal) !KD(11)
426 CALL split_node_nodloc(intbuf_tab(ni)%NSV,nsn_l,
427 . tag_node_2ry,nodlocal) !KD(12)
428 CALL split_node_nodloc(intbuf_tab(ni)%MSR,nmn_l,
429 . tag_irtl,nodlocal) !KD(13)
430
431 CALL split_node_ival2(intbuf_tab(ni)%IRTLM,nsn_l,1,
432 . tag_segm2,tag_node_2ry) !KD(14)
433
434 IF (ilev==10 .OR. ilev==11 .OR. ilev==12 .OR.
435 * ilev==20 .OR. ilev==21 .OR. ilev==22) THEN
436
437 CALL split_node_ival(intbuf_tab(ni)%IRUPT,nsn_l,1,
438 . tag_node_2ry) !KD(14)
439 CALL split_node_ival(intbuf_tab(ni)%INORM,nsn_l,1,
440 . tag_node_2ry) !KD(14)
441 ELSEIF ((ilev == 27).OR.(ilev == 28)) THEN
442 CALL split_node_ival(intbuf_tab(ni)%IRUPT,nsn_l,1,tag_node_2ry)
443 CALL split_seg_ival2(intbuf_tab(ni)%MSEGTYP2,nrtm_l,tag_segm,tag_segm2)
444 ENDIF
445
446c split and write on disk floating arrays
447
448 CALL copy_rval(intbuf_tab(ni)%STFAC,1,1)
449 CALL copy_rval(intbuf_tab(ni)%VARIABLES,nparir,1)
450
451 CALL split_node_rval(intbuf_tab(ni)%CSTS,nsn_l,2,
452 . tag_node_2ry) !JD(12)
453 CALL split_node_rval(intbuf_tab(ni)%DPARA,nsn_l,7,
454 . tag_node_2ry) !JD(21)
455 CALL split_node_rval(intbuf_tab(ni)%NMAS(1),nmn_l,1,
456 . tag_irtl) !JD(22)
457 CALL split_node_rval(intbuf_tab(ni)%NMAS(1+nmn),nmn_l,1,
458 . tag_irtl) !JD(22)
459
460
461 IF (ilev==10 .OR. ilev==11 .OR. ilev==12 .OR.ilev==20 .OR.
462 . ilev==21 .OR. ilev==22.OR.intth >0 ) THEN
463
464
465 CALL split_node_rval(intbuf_tab(ni)%AREAS2,nsn_l,1,
466 . tag_node_2ry) !JD(31)
467 ENDIF
468 IF (ilev==10 .OR. ilev==11 .OR. ilev==12) THEN
469
470 CALL split_node_rval(intbuf_tab(ni)%SMAS,nsn_l,1,
471 . tag_node_2ry) !JD(23)
472 CALL split_node_rval(intbuf_tab(ni)%SINER,nsn_l,1,
473 . tag_node_2ry) !JD(24)
474c CALL SPLIT_NODE_RVAL(INTBUF_TAB(NI)%AREAS2,NSN_L,1,
475c . TAG_NODE_2RY) !JD(31)
476
477 CALL split_node_rval(intbuf_tab(ni)%UVAR,nsn_l,nuvar,
478 . tag_node_2ry) !JD(32)
479
480 CALL split_node_rval(intbuf_tab(ni)%XM0,nsn_l,3,
481 . tag_node_2ry) !JD(33)
482 CALL split_node_rval(intbuf_tab(ni)%DSM,nsn_l,3,
483 . tag_node_2ry) !JD(34)
484 CALL split_node_rval(intbuf_tab(ni)%FSM,nsn_l,3,
485 . tag_node_2ry) !JD(35)
486
487 ELSEIF (ilev==20 .OR. ilev==21 .OR. ilev==22) THEN
488
489 CALL split_node_rval(intbuf_tab(ni)%SMAS,nsn_l,1,
490 . tag_node_2ry) !JD(23)
491 CALL split_node_rval(intbuf_tab(ni)%SINER,nsn_l,1,
492 . tag_node_2ry) !JD(24)
493c CALL SPLIT_NODE_RVAL(INTBUF_TAB(NI)%AREAS2,NSN_L,1,
494c . TAG_NODE_2RY) !JD(31)
495
496 CALL split_node_rval(intbuf_tab(ni)%UVAR,nsn_l,nuvar,
497 . tag_node_2ry) !JD(32)
498 CALL split_node_rval(intbuf_tab(ni)%XM0,nsn_l,3,
499 . tag_node_2ry) !JD(33)
500 CALL split_node_rval(intbuf_tab(ni)%DSM,nsn_l,3,
501 . tag_node_2ry) !JD(34)
502 CALL split_node_rval(intbuf_tab(ni)%FSM,nsn_l,3,
503 . tag_node_2ry) !JD(35)
504
505 CALL copy_rval(intbuf_tab(ni)%RUPT,6,1) !JD(36)
506
507 ELSEIF (ilev == 25) THEN
508 CALL split_node_rval(intbuf_tab(ni)%SMAS,nsn_l,1,
509 . tag_node_2ry) !JD(23)
510 CALL split_node_rval(intbuf_tab(ni)%SINER,nsn_l,1,
511 . tag_node_2ry) !JD(24)
512 CALL split_node_rval(intbuf_tab(ni)%SPENALTY,nsn_l,1,
513 . tag_node_2ry) !JD(25)
514 CALL split_node_rval(intbuf_tab(ni)%STFR_PENALTY,nsn_l,1,
515 . tag_node_2ry) !JD(26)
516 CALL split_node_rval(intbuf_tab(ni)%SKEW,nsn_l,9,
517 . tag_node_2ry) !JD(33)
518 CALL split_node_rval(intbuf_tab(ni)%DSM,nsn_l,3,
519 . tag_node_2ry) !JD(34)
520 CALL split_node_rval(intbuf_tab(ni)%FSM,nsn_l,3,
521 . tag_node_2ry) !JD(35)
522 CALL split_node_rval(intbuf_tab(ni)%FINI,nsn_l,3,
523 . tag_node_2ry) !JD(36)
524 ELSEIF (ilev == 26) THEN
525 CALL split_node_rval(intbuf_tab(ni)%SMAS,nsn_l,1,
526 . tag_node_2ry) !JD(23)
527 CALL split_node_rval(intbuf_tab(ni)%SINER,nsn_l,1,
528 . tag_node_2ry) !JD(24)
529 CALL split_node_rval(intbuf_tab(ni)%SPENALTY,nsn_l,1,
530 . tag_node_2ry) !JD(25)
531 CALL split_node_rval(intbuf_tab(ni)%STFR_PENALTY,nsn_l,1,
532 . tag_node_2ry) !JD(26)
533 CALL split_node_rval(intbuf_tab(ni)%SKEW,nsn_l,9,
534 . tag_node_2ry) !JD(33)
535 CALL split_node_rval(intbuf_tab(ni)%DSM,nsn_l,12,
536 . tag_node_2ry) !JD(34)
537 CALL split_node_rval(intbuf_tab(ni)%FSM,nsn_l,12,
538 . tag_node_2ry) !JD(35)
539 CALL split_node_rval(intbuf_tab(ni)%FINI,nsn_l,24,
540 . tag_node_2ry) !JD(36)
541 ELSEIF (ilev == 27) THEN
542 CALL split_node_rval(intbuf_tab(ni)%SMAS,nsn_l,1,
543 . tag_node_2ry) !JD(23)
544 CALL split_node_rval(intbuf_tab(ni)%SINER,nsn_l,1,
545 . tag_node_2ry) !JD(24)
546 CALL split_node_rval(intbuf_tab(ni)%SPENALTY,nsn_l,1,
547 . tag_node_2ry) !JD(25)
548 CALL split_node_rval(intbuf_tab(ni)%STFR_PENALTY,nsn_l,1,
549 . tag_node_2ry) !JD(26)
550 CALL split_node_rval(intbuf_tab(ni)%SKEW,nsn_l,9,
551 . tag_node_2ry) !jd(33)
552 CALL split_node_rval(intbuf_tab(ni)%DSM,nsn_l,3,
553 . tag_node_2ry) !JD(34)
554 CALL split_node_rval(intbuf_tab(ni)%FSM,nsn_l,3,
555 . tag_node_2ry) !JD(35)
556 CALL split_node_rval(intbuf_tab(ni)%FINI,nsn_l,6,
557 . tag_node_2ry) !JD(36)
558
559 ELSEIF (ilev == 28) THEN
560 CALL split_node_rval(intbuf_tab(ni)%SMAS,nsn_l,1,
561 . tag_node_2ry) !JD(23)
562 CALL split_node_rval(intbuf_tab(ni)%SINER,nsn_l,1,
563 . tag_node_2ry) !JD(24)
564 CALL split_node_rval(intbuf_tab(ni)%SPENALTY,nsn_l,1,
565 . tag_node_2ry) !JD(25)
566 CALL split_node_rval(intbuf_tab(ni)%STFR_PENALTY,nsn_l,1,
567 . tag_node_2ry) !JD(26)
568 CALL split_node_rval(intbuf_tab(ni)%SKEW,nsn_l,9,
569 . tag_node_2ry) !jd(33)
570 CALL split_node_rval(intbuf_tab(ni)%DSM,nsn_l,3,
571 . tag_node_2ry) !JD(34)
572 CALL split_node_rval(intbuf_tab(ni)%FSM,nsn_l,3,
573 . tag_node_2ry) !JD(35)
574 CALL split_node_rval(intbuf_tab(ni)%FINI,nsn_l,6,
575 . tag_node_2ry) !JD(36)
576
577 ELSEIF(ipari(17,ni)/=0)THEN
578C si Idel2 actif
579C smas & siner (ZERO)
580
581 CALL split_node_rval(intbuf_tab(ni)%SMAS,nsn_l,1,
582 . tag_node_2ry) !JD(23)
583 CALL split_node_rval(intbuf_tab(ni)%SINER,nsn_l,1,
584 . tag_node_2ry) !JD(24)
585
586 ENDIF
587
588 CALL split_node_rval(intbuf_tab(ni)%CSTS_BIS,nsn_l,2,tag_node_2ry)
589
590 DEALLOCATE(tag_node_2ry,tag_segm,tag_segm2,tag,tag_irtl)
591
592C=======================================================================
593 ELSEIF(ityp == 3)THEN
594C=======================================================================
595
596 IF(proc==0) THEN
597 !split and write on disk integers arrays
598 CALL copy_ival(intbuf_tab(ni)%IRECTS,nrts,4) !KD(10)
599 CALL copy_ival(intbuf_tab(ni)%IRECTM,nrtm,4) !KD(11)
600 CALL split_node_nodloc_p0(intbuf_tab(ni)%NSV,nsn,1,nodlocal) !KD(12)
601 CALL split_node_nodloc_p0(intbuf_tab(ni)%MSR,nmn,1,nodlocal) !KD(13)
602 CALL copy_ival(intbuf_tab(ni)%IRTLM,nsn,1) !KD(14)
603 CALL copy_ival(intbuf_tab(ni)%ILOCS,nsn,1) !KD(16)
604 CALL copy_ival(intbuf_tab(ni)%NSEGM,1+nmn,1) !KD(21)
605 CALL copy_ival(intbuf_tab(ni)%IRTLS,nmn,1) !KD(15)
606 CALL copy_ival(intbuf_tab(ni)%ILOCM,nmn,1) !KD(17)
607 CALL copy_ival(intbuf_tab(ni)%IRTLOM,nsn,1) !KD(18)
608 CALL copy_ival(intbuf_tab(ni)%IRTLOS,nmn,1) !KD(19)
609 CALL copy_ival(intbuf_tab(ni)%NSEGS,1+nsn,1) !KD(20)
610 CALL copy_ival(intbuf_tab(ni)%LNSV,nst,1) !KD(22)
611 CALL copy_ival(intbuf_tab(ni)%LMSR,nmt,1) !KD(23)
612
613 !split and write on disk floating arrays
614 CALL copy_rval(intbuf_tab(ni)%STFAC,1,1)
615 CALL copy_rval(intbuf_tab(ni)%VARIABLES,nparir,1)
616 CALL copy_rval(intbuf_tab(ni)%CSTS,nsn,2) !JD(12)
617 CALL copy_rval(intbuf_tab(ni)%STFNS,nsn,1) !JD(14)
618 IF (mfrot/=0)THEN
619 CALL copy_rval(intbuf_tab(ni)%FRIC_P,10,1) !JD(25)
620 ENDIF
621 IF (ifq/=0) THEN
622 CALL copy_rval(intbuf_tab(ni)%S_XFILTR,1,1) !JD(26) COPY_IVAL?
623 CALL copy_rval(intbuf_tab(ni)%S_FTSAV,nsn,3) !JD(27) COPY_IVAL?
624 ENDIF
625 CALL copy_rval(intbuf_tab(ni)%STFM,nrtm,1) !JD(17)
626 CALL copy_rval(intbuf_tab(ni)%STFS,nrts,1) !JD(16)
627 CALL copy_rval(intbuf_tab(ni)%AREAS,nsn,1)
628 CALL copy_rval(intbuf_tab(ni)%AREAM,nmn,1)
629 CALL copy_rval(intbuf_tab(ni)%CSTM,nmn,2) !JD(13)
630 CALL copy_rval(intbuf_tab(ni)%STFNM,nmn,1) !JD(15)
631 CALL copy_rval(intbuf_tab(ni)%FRICOS,nsn,3) !JD(18)
632 CALL copy_rval(intbuf_tab(ni)%FRICOM,nmn,3) !JD(19)
633 ENDIF
634
635C=======================================================================
636 ELSEIF(ityp == 4)THEN
637C=======================================================================
638 IF(proc==0) THEN
639 !split and write on disk integers arrays
640 CALL copy_ival(intbuf_tab(ni)%IRECTS,nrts,4) !KD(10)
641 CALL copy_ival(intbuf_tab(ni)%IRECTM,nrtm,4) !KD(11)
642 CALL split_node_nodloc_p0(intbuf_tab(ni)%NSV,nsn,1,nodlocal) !KD(12)
643 CALL split_node_nodloc_p0(intbuf_tab(ni)%MSR,nmn,1,nodlocal) !KD(13)
644 CALL copy_ival(intbuf_tab(ni)%IRTLM,nsn,1) !KD(14)
645 CALL copy_ival(intbuf_tab(ni)%IELES,nrts,1) !KD(24)
646 CALL copy_ival(intbuf_tab(ni)%IRTLS,nmn,1) !KD(15)
647 CALL copy_ival(intbuf_tab(ni)%ILOCS,nsn,1) !KD(16)
648 CALL copy_ival(intbuf_tab(ni)%ILOCM,nmn,1) !KD(17)
649 CALL copy_ival(intbuf_tab(ni)%IRTLOM,nsn,1) !KD(18)
650 CALL copy_ival(intbuf_tab(ni)%IRTLOS,nmn,1) !KD(19)
651 CALL copy_ival(intbuf_tab(ni)%NSEGS,1+nsn,1) !kd(20)
652 CALL copy_ival(intbuf_tab(ni)%NSEGM,1+nmn,1) !KD(21)
653 CALL copy_ival(intbuf_tab(ni)%LNSV,nst,1) !KD(22)
654 CALL copy_ival(intbuf_tab(ni)%LMSR,nmt,1) !KD(23)
655 CALL copy_ival(intbuf_tab(ni)%IELEM,nrtm,1) !KD(25)
656
657 !split and write on disk floating arrays
658 CALL copy_rval(intbuf_tab(ni)%CSTS,nsn,2) !JD(12)
659 CALL copy_rval(intbuf_tab(ni)%STFNS,nsn,1) !JD(14)
660 CALL copy_rval(intbuf_tab(ni)%CSTM,nmn,2) !JD(13)
661 CALL copy_rval(intbuf_tab(ni)%STFNM,nmn,1) !JD(15)
662 CALL copy_rval(intbuf_tab(ni)%STFS,nrts,1) !JD(16)
663 CALL copy_rval(intbuf_tab(ni)%STFM,nrtm,1) !JD(17)
664 CALL copy_rval(intbuf_tab(ni)%FRICOS,nsn,3) !JD(18)
665 CALL copy_rval(intbuf_tab(ni)%FRICOM,nmn,3) !JD(19)
666 IF (mfrot/=0)THEN
667 CALL copy_rval(intbuf_tab(ni)%FRIC_P,10,1) !JD(25)
668 ENDIF
669 IF (ifq/=0) THEN
670 CALL copy_rval(intbuf_tab(ni)%S_XFILTR,1,1) !JD(26)
671 CALL copy_rval(intbuf_tab(ni)%S_FTSAV,nsn,3) !JD(27)
672 ENDIF
673 ENDIF
674
675C=======================================================================
676 ELSEIF(ityp == 5)THEN
677C=======================================================================
678
679 IF(proc==0) THEN
680 !split and write on disk integers arrays
681 CALL copy_ival(intbuf_tab(ni)%IRECTS,nrts,4) !KD(10)
682 CALL copy_ival(intbuf_tab(ni)%IRECTM,nrtm,4) !KD(11)
683 CALL split_node_nodloc_p0(intbuf_tab(ni)%NSV,nsn,1,nodlocal) !KD(12)
684 CALL split_node_nodloc_p0(intbuf_tab(ni)%MSR,nmn,1,nodlocal) !KD(13)
685 CALL copy_ival(intbuf_tab(ni)%IRTLM,nsn,1) !KD(14)
686 CALL copy_ival(intbuf_tab(ni)%ILOCS,nsn,1) !KD(16)
687 CALL copy_ival(intbuf_tab(ni)%NSEGM,1+nmn,1) !KD(21)
688 CALL copy_ival(intbuf_tab(ni)%IRTLS,nmn,1) !KD(15)
689 CALL copy_ival(intbuf_tab(ni)%ILOCM,nmn,1) !KD(17)
690 CALL copy_ival(intbuf_tab(ni)%IRTLOM,nsn,1) !KD(18)
691 CALL copy_ival(intbuf_tab(ni)%IRTLOS,nmn,1) !KD(19)
692 CALL copy_ival(intbuf_tab(ni)%NSEGS,1+nsn,1) !KD(20)
693 CALL copy_ival(intbuf_tab(ni)%LNSV,nst,1) !KD(22)
694 CALL copy_ival(intbuf_tab(ni)%LMSR,nmt,1) !KD(23)
695
696 !split and write on disk floating arrays
697 CALL copy_rval(intbuf_tab(ni)%STFAC,1,1)
698 CALL copy_rval(intbuf_tab(ni)%VARIABLES,nparir,1)
699 CALL copy_rval(intbuf_tab(ni)%CSTS,nsn,2) !JD(12)
700 CALL copy_rval(intbuf_tab(ni)%STFNS,nsn,1) !JD(14)
701 IF (mfrot/=0)THEN
702 CALL copy_rval(intbuf_tab(ni)%FRIC_P,10,1) !JD(25)
703 ENDIF
704 IF (ifq/=0) THEN
705 CALL copy_rval(intbuf_tab(ni)%S_XFILTR,1,1) !JD(26)
706 CALL copy_rval(intbuf_tab(ni)%S_FTSAV,nsn,3) !JD(27)
707 ENDIF
708 CALL copy_rval(intbuf_tab(ni)%STFM,nrtm,1) !JD(17)
709 CALL copy_rval(intbuf_tab(ni)%STFS,nrts,1) !JD(16)
710 CALL copy_rval(intbuf_tab(ni)%AREAS,nsn,1)
711 CALL copy_rval(intbuf_tab(ni)%CSTM,nmn,2) !JD(13)
712 CALL copy_rval(intbuf_tab(ni)%STFNM,nmn,1) !JD(15)
713 CALL copy_rval(intbuf_tab(ni)%FRICOS,nsn,3) !JD(18)
714 CALL copy_rval(intbuf_tab(ni)%FRICOM,nmn,3) !JD(19)
715 ENDIF
716
717C=======================================================================
718 ELSEIF(ityp == 6)THEN
719C=======================================================================
720
721 IF(proc==0) THEN
722 !split and write on disk integers arrays
723 CALL copy_ival(intbuf_tab(ni)%IRECTS,nrts,4) !KD(10)
724 CALL copy_ival(intbuf_tab(ni)%IRECTM,nrtm,4) !KD(11)
725 CALL split_node_nodloc_p0(intbuf_tab(ni)%NSV,nsn,1,nodlocal) !KD(12)
726 CALL split_node_nodloc_p0(intbuf_tab(ni)%MSR,nmn,1,nodlocal) !KD(13)
727 CALL copy_ival(intbuf_tab(ni)%IRTLM,nsn,1) !KD(14)
728 CALL copy_ival(intbuf_tab(ni)%ILOCS,nsn,1) !KD(16)
729 CALL copy_ival(intbuf_tab(ni)%NSEGM,1+nmn,1) !KD(21)
730 CALL copy_ival(intbuf_tab(ni)%IRTLS,nmn,1) !KD(15)
731 CALL copy_ival(intbuf_tab(ni)%ILOCM,nmn,1) !KD(17)
732 CALL copy_ival(intbuf_tab(ni)%IRTLOM,nsn,1) !KD(18)
733 CALL copy_ival(intbuf_tab(ni)%IRTLOS,nmn,1) !KD(19)
734 CALL copy_ival(intbuf_tab(ni)%NSEGS,1+nsn,1) !KD(20)
735 CALL copy_ival(intbuf_tab(ni)%LNSV,nst,1) !KD(22)
736 CALL copy_ival(intbuf_tab(ni)%LMSR,nmt,1) !KD(23)
737
738 !split and write on disk floating arrays
739 CALL copy_rval(intbuf_tab(ni)%STFAC,1,1)
740 CALL copy_rval(intbuf_tab(ni)%VARIABLES,nparir,1)
741 CALL copy_rval(intbuf_tab(ni)%CSTS,nsn,2) !JD(12)
742 CALL copy_rval(intbuf_tab(ni)%STFNS,nsn,1) !JD(14)
743 CALL copy_rval(intbuf_tab(ni)%STFM,nrtm,1) !JD(17)
744 CALL copy_rval(intbuf_tab(ni)%STFS,nrts,1) !JD(16)
745 CALL copy_rval(intbuf_tab(ni)%CSTM,nmn,2) !JD(13)
746 CALL copy_rval(intbuf_tab(ni)%STFNM,nmn,1) !JD(15)
747 CALL copy_rval(intbuf_tab(ni)%FRICOS,nsn,3) !JD(18)
748 CALL copy_rval(intbuf_tab(ni)%FRICOM,nmn,3) !JD(19)
749 CALL copy_rval(intbuf_tab(ni)%FCONT,1,1) !JD(20)
750 CALL copy_rval(intbuf_tab(ni)%FS,nsn,3) !JD(21)
751 CALL copy_rval(intbuf_tab(ni)%FM,nmn,3) !JD(22)
752 CALL copy_rval(intbuf_tab(ni)%RMAS,2,1) !JD(23)
753 CALL copy_rval(intbuf_tab(ni)%S_ANSMX0,2,1) !JD(24)
754 ENDIF
755
756C=======================================================================
757 ELSEIF(ityp == 7)THEN ! (ITYP == 18)
758C=======================================================================
759 ALLOCATE(tag_node_2ry(nsn_fe_l),tag_segm(nrtm_fe_l),
760 . tag_node_msr(nmn_fe_l),tag_segm2(nrtm_fe),tag_ii(ii_stok))
761
762 ALLOCATE(i710xsav(nmn))
763 i710xsav(1:nmn)=zero
764
765 tag_node_2ry(1:nsn_fe_l) = 0
766 tag_segm(1:nrtm_fe_l) = 0
767 tag_segm2(1:nrtm_fe) = 0
768 tag_node_msr(1:nmn_fe_l) = 0
769 tag_ii(1:ii_stok) = 0
770 IF (multi_fvm%IS_USED .AND. inacti==7) THEN
771 type18_law151 = .true.
772C Interface type 18 for law151
773!prepare addition arrays used for split
774 CALL prepare_split_i7(proc ,intbuf_tab(ni),ipari(1,ni) ,
775 . intercep(1,ni),tag_node_2ry,tag_segm ,
776 . tag_segm2 ,tag_nm ,tag_node_msr,
777 . tag_scratch ,ni, cep, multi_fvm,i710xsav,
778 . nindx_nm ,indx_nm,nindx_scrt,indx_scrt,nodlocal,
779 . numnod_l)
780 IF(ii_stok>0)THEN
781 CALL prepare_split_cand(intbuf_tab(ni), tag_segm2, ii_stok,
782 . tag_ii )
783 ENDIF
784c split and write on disk integers arrays
785 CALL split_seg_nodloc(intbuf_tab(ni)%IRECTM,nrtm_fe_l,4,
786 . tag_segm,nodlocal)
787 CALL copy_ival(intbuf_tab(ni)%IRECTM,nrtm_ige,4)
788
789 ! NSN -> brick ids
790 CALL split_node_nodloc(intbuf_tab(ni)%NSV,nsn_fe_l,
791 . tag_node_2ry,cel)
792
793 CALL copy_ival_igeo(intbuf_tab(ni)%NSV,nsn_ige,1,nsn_fe)
794
795 CALL split_node_nodloc(intbuf_tab(ni)%MSR,nmn_fe_l,
796 . tag_node_msr,nodlocal)
797
798 CALL copy_ival_igeo(intbuf_tab(ni)%MSR,nmn_ige,1,nmn_fe)
799
800 IF(intth>0)THEN
801 CALL split_node_ival(intbuf_tab(ni)%IELEC,nsn_fe_l,1,
802 . tag_node_2ry) !KD(25)
803 CALL split_node_ival(intbuf_tab(ni)%IELES,nrtm_fe_l,1,
804 . tag_segm) !KD(24)
805 ENDIF
806
807 IF(nisub>0)THEN
808 CALL copy_ival(intbuf_tab(ni)%LISUB,nisub,1) !KD(28)
809 CALL copy_ival(intbuf_tab(ni)%TYPSUB,nisub,1)
810 CALL split_nisub_i7(intbuf_tab(ni), nsn_fe_l, tag_node_2ry, nrtm_fe_l,
811 . tag_segm , nisubs_l, nisubm_l)
812 ENDIF
813
814c split candidates
815!TAG_SCRATCH should have been reflush to zero
816 CALL split_cand_i7(proc , intbuf_tab(ni), nsn_fe , nsn_fe_l ,
817 . tag_segm2, ii_stok , multimp , ncont ,
818 . noint , inacti , tag_scratch ,
819 . ii_stok_l, ityp ,nindx_scrt,indx_scrt,nodlocal,
820 . numnod_l,numnod,numels,len_cep,cep,type18_law151)
821
822 CALL copy_ival(ii_stok_l,1,1)
823
824 IF (ifq>0)THEN
825 CALL split_cand_ival(intbuf_tab(ni)%IFPEN,
826 . ii_stok_l,tag_ii,multimp,ncont) !KD(27)
827 ENDIF
828
829 IF(flagremnode == 2) THEN
830 CALL split_remnode_i7(proc ,intbuf_tab(ni), nrtm_fe, nrtm_fe_l,
831 . tag_segm2,nremnode_l , nodlocal, itab,numnod_l)
832 ENDIF
833
834 siz = intbuf_tab_l(ni)%S_NIGE
835 CALL copy_ival(intbuf_tab(ni)%NIGE,siz,1)
836
837c split and write on disk floating arrays
838 CALL copy_rval(intbuf_tab(ni)%STFAC,1,1) !JD(10)
839 CALL copy_rval(intbuf_tab(ni)%VARIABLES,nparir,1) !JD(11)
840
841 CALL split_node_rval(intbuf_tab(ni)%STFNS,nsn_fe_l,1,tag_node_2ry)
842 CALL split_node_rval(intbuf_tab(ni)%STFM,nrtm_fe_l,1,tag_segm)
843
844 IF(igap/=0)THEN
845 CALL split_node_rval(intbuf_tab(ni)%GAP_M,nrtm_fe_l,1,tag_segm) !JD(15)
846 CALL split_node_rval(intbuf_tab(ni)%GAP_S,nsn_fe_l,1,tag_node_2ry) !JD(16)
847 ENDIF
848
849 siz = intbuf_tab_l(ni)%S_XSAV
850 intbuf_tab(ni)%XSAV(1:siz) = 0
851 CALL copy_rval(intbuf_tab(ni)%XSAV,siz,1)
852
853 siz = intbuf_tab_l(ni)%S_CRIT
854 CALL copy_rval(intbuf_tab(ni)%CRIT,siz,1)
855
856 IF (mfrot/=0) THEN
857 CALL copy_rval(intbuf_tab(ni)%FRIC_P,10,1)
858 ENDIF
859
860 IF (ifq/=0) THEN
861 CALL copy_rval(intbuf_tab(ni)%XFILTR,1,1)
862 ENDIF
863
864 IF(intth>0) THEN
865 CALL split_node_rval(intbuf_tab(ni)%AREAS,nsn_fe_l,1,tag_node_2ry) !JD(30)
866 ENDIF
867
868 IF(igap==3)THEN
869 CALL split_node_rval(intbuf_tab(ni)%GAP_ML,nrtm_fe_l,1,tag_segm) !JD(31)
870 CALL split_node_rval(intbuf_tab(ni)%GAP_SL,nsn_fe_l,1,tag_node_2ry) !JD(32)
871 ENDIF
872
873c
874 IF(inacti==5.OR.inacti==6.OR.inacti==7)THEN
875 CALL split_cand_rval(intbuf_tab(ni)%CAND_P,
876 . ii_stok_l,tag_ii,multimp,ncont)
877 ENDIF
878
879 IF(ifq/=0)THEN
880 CALL split_cand_rval(intbuf_tab(ni)%FTSAVX,
881 . ii_stok_l,tag_ii,multimp,ncont)
882 CALL split_cand_rval(intbuf_tab(ni)%FTSAVY,
883 . ii_stok_l,tag_ii,multimp,ncont)
884 CALL split_cand_rval(intbuf_tab(ni)%FTSAVZ,
885 . ii_stok_l,tag_ii,multimp,ncont)
886 ENDIF
887
888 siz = intbuf_tab_l(ni)%S_RIGE
889 CALL copy_rval(intbuf_tab(ni)%RIGE,siz,1)
890 siz = intbuf_tab_l(ni)%S_XIGE
891 CALL copy_rval(intbuf_tab(ni)%XIGE,siz,1)
892 siz = intbuf_tab_l(ni)%S_VIGE
893 CALL copy_rval(intbuf_tab(ni)%VIGE,siz,1)
894 siz = intbuf_tab_l(ni)%S_MASSIGE
895 CALL copy_rval(intbuf_tab(ni)%MASSIGE,siz,1)
896
897 siz = intbuf_tab_l(ni)%S_CAND_F
898 CALL copy_rval(intbuf_tab(ni)%CAND_F,siz,1)
899 ELSE
900!prepare addition arrays used for split
901 CALL prepare_split_i7(proc ,intbuf_tab(ni),ipari(1,ni) ,
902 . intercep(1,ni),tag_node_2ry,tag_segm ,
903 . tag_segm2 ,tag_nm ,tag_node_msr,
904 . tag_scratch ,ni, cep, multi_fvm,i710xsav,
905 . nindx_nm ,indx_nm,nindx_scrt,indx_scrt,nodlocal,
906 . numnod_l)
907
908 IF(ii_stok>0)THEN
909 CALL prepare_split_cand(intbuf_tab(ni), tag_segm2, ii_stok,
910 . tag_ii )
911 ENDIF
912
913c split and write on disk integers arrays
914
915 CALL split_seg_nodloc(intbuf_tab(ni)%IRECTM,nrtm_fe_l,4,
916 . tag_segm,nodlocal)
917 CALL copy_ival(intbuf_tab(ni)%IRECTM,nrtm_ige,4)
918
919 CALL split_node_nodloc(intbuf_tab(ni)%NSV,nsn_fe_l,
920 . tag_node_2ry,nodlocal)
921
922 CALL copy_ival_igeo(intbuf_tab(ni)%NSV,nsn_ige,1,nsn_fe)
923
924 CALL split_node_nodloc(intbuf_tab(ni)%MSR,nmn_fe_l,
925 . tag_node_msr,nodlocal)
926
927 CALL copy_ival_igeo(intbuf_tab(ni)%MSR,nmn_ige,1,nmn_fe)
928
929 IF(intth>0)THEN
930 CALL split_node_ival(intbuf_tab(ni)%IELEC,nsn_fe_l,1,
931 . tag_node_2ry) !KD(25)
932 CALL split_node_ival(intbuf_tab(ni)%IELES,nrtm_fe_l,1,
933 . tag_segm) !KD(24)
934 ENDIF
935
936 IF(nisub>0)THEN
937 CALL copy_ival(intbuf_tab(ni)%LISUB,nisub,1) !KD(28)
938 CALL copy_ival(intbuf_tab(ni)%TYPSUB,nisub,1)
939 CALL split_nisub_i7(intbuf_tab(ni), nsn_fe_l, tag_node_2ry, nrtm_fe_l,
940 . tag_segm , nisubs_l, nisubm_l)
941 ENDIF
942
943c split candidates
944!TAG_SCRATCH should has been reflush to zero
945 CALL split_cand_i7(proc , intbuf_tab(ni), nsn_fe , nsn_fe_l ,
946 . tag_segm2, ii_stok , multimp , ncont ,
947 . noint , inacti , tag_scratch ,
948 . ii_stok_l, ityp ,nindx_scrt,indx_scrt,nodlocal,
949 . numnod_l,numnod,numels,len_cep,cep,type18_law151)
950
951 CALL copy_ival(ii_stok_l,1,1)
952
953 IF (ifq>0)THEN
954 CALL split_cand_ival(intbuf_tab(ni)%IFPEN,
955 . ii_stok_l,tag_ii,multimp,ncont) !KD(27)
956 ENDIF
957
958 IF(intfric>0)THEN
959 CALL split_node_ival(intbuf_tab(ni)%IPARTFRICS,nsn_fe_l,1,
960 . tag_node_2ry)
961 CALL split_node_ival(intbuf_tab(ni)%IPARTFRICM,nrtm_fe_l,1,
962 . tag_segm)
963 IF(intbuf_fric_tab(intfric)%IORTHFRIC > 0) THEN
964 CALL split_node_ival(intbuf_tab(ni)%IREP_FRICM,nrtm_fe_l,1,
965 . tag_segm)
966
967 ENDIF
968 ENDIF
969
970 IF(flagremnode == 2) THEN
971 CALL split_remnode_i7(proc ,intbuf_tab(ni), nrtm_fe, nrtm_fe_l,
972 . tag_segm2,nremnode_l , nodlocal, itab,numnod_l)
973 ENDIF
974
975 siz = intbuf_tab_l(ni)%S_NIGE
976 CALL copy_ival(intbuf_tab(ni)%NIGE,siz,1)
977
978c split and write on disk floating arrays
979 CALL copy_rval(intbuf_tab(ni)%STFAC,1,1) !JD(10)
980 CALL copy_rval(intbuf_tab(ni)%VARIABLES,nparir,1) !JD(11)
981
982 CALL split_node_rval(intbuf_tab(ni)%STFNS,nsn_fe_l,1,tag_node_2ry)
983 CALL split_node_rval(intbuf_tab(ni)%STFM,nrtm_fe_l,1,tag_segm)
984
985 IF(igap/=0)THEN
986 CALL split_node_rval(intbuf_tab(ni)%GAP_M,nrtm_fe_l,1,tag_segm) !JD(15)
987 CALL split_node_rval(intbuf_tab(ni)%GAP_S,nsn_fe_l,1,tag_node_2ry) !JD(16)
988 ENDIF
989
990 siz = intbuf_tab_l(ni)%S_XSAV
991 intbuf_tab(ni)%XSAV(1:siz) = 0
992 CALL copy_rval(intbuf_tab(ni)%XSAV,siz,1)
993
994 siz = intbuf_tab_l(ni)%S_CRIT
995 CALL copy_rval(intbuf_tab(ni)%CRIT,siz,1)
996
997 IF (mfrot/=0) THEN
998 CALL copy_rval(intbuf_tab(ni)%FRIC_P,10,1)
999 ENDIF
1000
1001 IF (ifq/=0) THEN
1002 CALL copy_rval(intbuf_tab(ni)%XFILTR,1,1)
1003 ENDIF
1004
1005 IF(intth>0) THEN
1006 CALL split_node_rval(intbuf_tab(ni)%AREAS,nsn_fe_l,1,tag_node_2ry) !JD(30)
1007 ENDIF
1008
1009 IF(igap==3)THEN
1010 CALL split_node_rval(intbuf_tab(ni)%GAP_ML,nrtm_fe_l,1,tag_segm) !JD(31)
1011 CALL split_node_rval(intbuf_tab(ni)%GAP_SL,nsn_fe_l,1,tag_node_2ry) !JD(32)
1012 ENDIF
1013
1014c
1015 IF(inacti==5.OR.inacti==6.OR.inacti==7)THEN
1016 CALL split_cand_rval(intbuf_tab(ni)%CAND_P,
1017 . ii_stok_l,tag_ii,multimp,ncont)
1018 ENDIF
1019
1020 IF(ifq/=0)THEN
1021 CALL split_cand_rval(intbuf_tab(ni)%FTSAVX,
1022 . ii_stok_l,tag_ii,multimp,ncont)
1023 CALL split_cand_rval(intbuf_tab(ni)%FTSAVY,
1024 . ii_stok_l,tag_ii,multimp,ncont)
1025 CALL split_cand_rval(intbuf_tab(ni)%FTSAVZ,
1026 . ii_stok_l,tag_ii,multimp,ncont)
1027 ENDIF
1028
1029 siz = intbuf_tab_l(ni)%S_RIGE
1030 CALL copy_rval(intbuf_tab(ni)%RIGE,siz,1)
1031 siz = intbuf_tab_l(ni)%S_XIGE
1032 CALL copy_rval(intbuf_tab(ni)%XIGE,siz,1)
1033 siz = intbuf_tab_l(ni)%S_VIGE
1034 CALL copy_rval(intbuf_tab(ni)%VIGE,siz,1)
1035 siz = intbuf_tab_l(ni)%S_MASSIGE
1036 CALL copy_rval(intbuf_tab(ni)%MASSIGE,siz,1)
1037
1038 siz = intbuf_tab_l(ni)%S_CAND_F
1039 CALL copy_rval(intbuf_tab(ni)%CAND_F,siz,1)
1040
1041 IF(intfric>0)THEN
1042 IF(intbuf_fric_tab(intfric)%IORTHFRIC > 0) THEN
1043 CALL split_node_rval(intbuf_tab(ni)%DIR_FRICM,nrtm_fe_l,2,
1044 . tag_segm)
1045 ENDIF
1046 ENDIF
1047
1048 ENDIF ! NOT LAW151
1049 DEALLOCATE(tag_node_2ry,tag_segm,tag_segm2,
1050 . tag_node_msr,tag_ii)
1051 DEALLOCATE(i710xsav)
1052C=======================================================================
1053 ELSEIF(ityp == 8)THEN
1054C=======================================================================
1055 nbt8 = nbt8 + 1
1056 ALLOCATE(tag_node_2ry(nsn),tag_segm(nrtm_l),tag_node_msr2(nmn),
1057 . tag_node_msr(nmn_l),tag_segm2(nrtm),tag_ii(ii_stok),
1058 . tag_lmsr(nmt_l), tag_nseg(nmn_l+1),
1059 . tag_lmsr2(nmt), tag_nseg2(nmn+1))
1060
1061 tag_node_2ry(1:nsn) = 0
1062 tag_segm(1:nrtm_l) = 0
1063 tag_segm2(1:nrtm) = 0
1064 tag_node_msr(1:nmn_l) = 0
1065 tag_node_msr2(1:nmn) = 0
1066 tag_lmsr(1:nmt_l) = 0
1067 tag_lmsr2(1:nmt) = 0
1068 tag_ii(1:ii_stok) = 0
1069 tag_nseg2(1:nmn+1) = 0
1070 tag_nseg(1:nmn_l+1) = 0
1071
1072 !prepare addition arrays used for split
1073 CALL prepare_split_i8(proc ,intbuf_tab(ni),ipari(1,ni) ,
1074 . intercep(1,ni),tag_node_2ry,tag_segm ,
1075 . tag_segm2 ,tag_nm ,tag_node_msr,
1076 . tag_node_msr2 ,tag_lmsr ,tag_lmsr2,
1077 . tag_nseg ,tag_nseg2,
1078 . ni, t8(proc+1,nbt8),itab,nindx_nm,indx_nm)
1079
1080! IF(PROC==0) THEN
1081 !split and write on disk integers arrays
1082! CALL COPY_IVAL(INTBUF_TAB(NI)%IRECTS,NRTS,4) !KD(10)
1083
1084
1085
1086! CALL COPY_IVAL(INTBUF_TAB(NI)%IRECTM,NRTM,4) !KD(11)
1087 CALL split_seg_nodloc(intbuf_tab(ni)%IRECTM,nrtm_l,4,
1088 . tag_segm,tag_node_msr2)
1089
1090 CALL copy_node_nodloc(intbuf_tab(ni)%NSV,nsn,nodlocal)
1091
1092 CALL split_node_nodloc(intbuf_tab(ni)%MSR,nmn_l,
1093 . tag_node_msr,nodlocal) !KD(13)
1094
1095
1096C CALL COPY_IVAL(INTBUF_TAB(NI)%IRTLM,NSN,1) !KD(14)
1097 CALL filter_node_nodloc(intbuf_tab(ni)%IRTLM,nsn,tag_node_2ry,
1098 . tag_segm2)
1099
1100 CALL copy_ival(ii_stok,1,1)
1101
1102
1103! CALL copy_ival(intbuf_tab(ni)%ILOCS,nsn,1) !KD(16)
1104! INTBUF_TAB(NI)%ILOCS = -1
1105 CALL filter_node_nodloc(intbuf_tab(ni)%ILOCS,nsn,tag_node_2ry,
1106 . tag_node_msr2)
1107
1108
1109
1110C CALL COPY_IVAL(INTBUF_TAB(NI)%NSEGM,1+NMN,1) !KD(21)
1111
1112c CALL SPLIT_NODE_NODLOC(INTBUF_TAB(NI)%NSEGM,NMN_L,
1113c . TAG_NODE_MSR,TAG_LMSR2)
1114 CALL write_i_c(tag_nseg,nmn_l+1)
1115
1116 CALL copy_ival(intbuf_tab(ni)%IRTLOM,nsn,1) !KD(18)
1117
1118
1119c CALL FILTER_NODE_NODLOC(INTBUF_TAB(NI)%IRTLOM,NSN,TAG_NODE_2RY,
1120c . TAG_SEGM2)
1121
1122 CALL split_node_nodloc(intbuf_tab(ni)%LMSR,nmt_l,
1123 . tag_lmsr,tag_segm2)
1124
1125 !split and write on disk floating arrays
1126 CALL copy_rval(intbuf_tab(ni)%STFAC,1,1)
1127
1128 CALL copy_rval(intbuf_tab(ni)%VARIABLES,nparir,1)
1129 CALL copy_rval(intbuf_tab(ni)%CSTS,nsn,2) !JD(12)
1130
1131 CALL split_node_rval(intbuf_tab(ni)%STFM,nrtm_l,1,tag_segm)
1132
1133! CALL COPY_RVAL(INTBUF_TAB(NI)%STFS,NRTS,1) !JD(16)
1134 IF(iform==2)THEN
1135 CALL copy_rval(intbuf_tab(ni)%FTSAVX,nsn,1) !JD(28)
1136 CALL copy_rval(intbuf_tab(ni)%FTSAVX,nsn,1) !JD(29)
1137 CALL copy_rval(intbuf_tab(ni)%FTSAVX,nsn,1) !JD(30)
1138 ENDIF
1139 CALL split_node_rval(intbuf_tab(ni)%STFNM,nmn_l,1,tag_node_msr)
1140 CALL split_node_rval(intbuf_tab(ni)%GAPN,nrtm_l,1,tag_segm)
1141 CALL split_node_rval(intbuf_tab(ni)%STF8,nrtm_l,1,tag_segm)
1142
1143
1144c CALL COPY_RVAL(INTBUF_TAB(NI)%STF8,NSN,1) !JD(32)
1145
1146 IF(nspmd > 1) CALL w_type8(proc,t8(proc+1,nbt8))
1147
1148! ENDIF
1149 DEALLOCATE(tag_node_2ry,tag_segm,tag_node_msr2,
1150 . tag_node_msr,tag_segm2,tag_ii,
1151 . tag_nseg2,tag_nseg, tag_lmsr2,tag_lmsr)
1152
1153C=======================================================================
1154 ELSEIF(ityp == 9)THEN
1155C=======================================================================
1156 ALLOCATE(tag_node_2ry(nsn_l), tag_node_msr(nmn_l),
1157 . tag_ieles(nrts_l) , tag_ielem(nrtm_l) )
1158
1159 tag_node_2ry(1:nsn_l) = 0
1160 tag_node_msr(1:nmn_l) = 0
1161 tag_ieles(1:nrts_l) = 0
1162 tag_ielem(1:nrtm_l) = 0
1163
1164 !prepare addition arrays used for split
1165 CALL prepare_split_i9(proc ,intbuf_tab(ni),ipari(1,ni) ,
1166 . tag_node_2ry ,tag_node_msr ,tag_scratch ,
1167 . tag_ieles ,tag_ielem ,
1168 . cep ,cel ,nindx_scrt ,indx_scrt)
1169 !split and write on disk integers arrays
1170 CALL copy_ival(intbuf_tab(ni)%IRECTS,nrts,4) !KD(10)
1171 CALL copy_ival(intbuf_tab(ni)%IRECTM,nrtm,4) !KD(11)
1172
1173 CALL copy_node_nodloc(intbuf_tab(ni)%NSV,nsn_l,nodlocal)
1174
1175 CALL copy_node_nodloc(intbuf_tab(ni)%MSR,nmn_l,nodlocal)
1176
1177 CALL copy_ival(intbuf_tab(ni)%IRTLM,nsn,1) !KD(14)
1178
1179cc CALL SPLIT_NODE_IVAL(INTBUF_TAB(NI)%IELES,NRTS_L,1,
1180cc . TAG_IELES) !KD(24)
1181 CALL copy_ival(tag_ieles,nrts_l,1) !KD(24)
1182
1183 CALL copy_ival(intbuf_tab(ni)%ILOCS,nsn,1) !KD(16)
1184 CALL copy_ival(intbuf_tab(ni)%NSEGM,1+nmn,1) !KD(21)
1185 CALL copy_ival(intbuf_tab(ni)%IRTLS,nmn,1) !KD(15)
1186 CALL copy_ival(intbuf_tab(ni)%ILOCM,nmn,1) !KD(17)
1187 CALL copy_ival(intbuf_tab(ni)%IRTLOM,nsn,1) !KD(18)
1188 CALL copy_ival(intbuf_tab(ni)%IRTLOS,nmn,1) !KD(19)
1189 CALL copy_ival(intbuf_tab(ni)%NSEGS,1+nsn,1) !KD(20)
1190 CALL copy_ival(intbuf_tab(ni)%LNSV,nst,1) !KD(22)
1191 CALL copy_ival(intbuf_tab(ni)%LMSR,nmt,1) !KD(23)
1192 CALL copy_ival(tag_ielem,nrtm_l,1) !KD(25)
1193
1194 !split and write on disk floating arrays
1195 CALL copy_rval(intbuf_tab(ni)%STFAC,1,1)
1196 CALL copy_rval(intbuf_tab(ni)%VARIABLES,nparir,1)
1197 CALL copy_rval(intbuf_tab(ni)%CSTS,nsn,2) !JD(12)
1198
1199 CALL copy_rval(intbuf_tab(ni)%STFNS,nsn,1) !JD(14)
1200 CALL copy_rval(intbuf_tab(ni)%STFM,nrtm,2) !JD(17)
1201 CALL copy_rval(intbuf_tab(ni)%STFS,nrts,1) !JD(16)
1202 CALL copy_rval(intbuf_tab(ni)%N,nsn,3) !JD(20)
1203 CALL copy_rval(intbuf_tab(ni)%CSTM,nmn,2) !JD(13)
1204 CALL copy_rval(intbuf_tab(ni)%STFNM,nmn,1) !JD(15)
1205 CALL copy_rval(intbuf_tab(ni)%FRICOS,nsn,3)!JD(18)
1206 CALL copy_rval(intbuf_tab(ni)%FRICOM,nmn,3) !JD(19)
1207 IF (mfrot/=0)THEN
1208 CALL copy_rval(intbuf_tab(ni)%FRIC_P,10,1) !JD(25)
1209 ENDIF
1210 IF (ifq/=0) THEN
1211 CALL copy_rval(intbuf_tab(ni)%S_XFILTR,1,1) !JD(26) COPY_IVAL
1212 CALL copy_rval(intbuf_tab(ni)%S_FTSAV,nsn,3) !JD(27) COPY_IVAL
1213 ENDIF
1214
1215 DEALLOCATE(tag_node_2ry, tag_node_msr, tag_ieles, tag_ielem)
1216
1217C=======================================================================
1218 ELSEIF(ityp == 10)THEN
1219C=======================================================================
1220
1221 ALLOCATE(tag_node_2ry(nsn_l),tag_segm(nrtm_l),
1222 . tag_node_msr(nmn_l),tag_segm2(nrtm),tag_ii(ii_stok))
1223
1224 ALLOCATE(i710xsav(nmn))
1225
1226 tag_node_2ry(1:nsn_l) = 0
1227 tag_segm(1:nrtm_l) = 0
1228 tag_segm2(1:nrtm) = 0
1229 tag_node_msr(1:nmn_l) = 0
1230 tag_ii(1:ii_stok) = 0
1231
1232 !prepare addition arrays used for split
1233 CALL prepare_split_i7(proc ,intbuf_tab(ni),ipari(1,ni) ,
1234 . intercep(1,ni),tag_node_2ry,tag_segm ,
1235 . tag_segm2 ,tag_nm ,tag_node_msr,
1236 . tag_scratch ,ni, cep, multi_fvm,i710xsav,
1237 . nindx_nm ,indx_nm,nindx_scrt,indx_scrt,nodlocal,
1238 . numnod_l)
1239
1240 IF(ii_stok>0)THEN
1241 CALL prepare_split_cand(intbuf_tab(ni), tag_segm2, ii_stok,
1242 . tag_ii)
1243 ENDIF
1244
1245c split and write on disk integers arrays
1246
1247 CALL split_seg_nodloc(intbuf_tab(ni)%IRECTM,nrtm_l,4,
1248 . tag_segm,nodlocal)
1249 CALL split_node_nodloc(intbuf_tab(ni)%NSV,nsn_l,
1250 . tag_node_2ry,nodlocal)
1251 CALL split_node_nodloc(intbuf_tab(ni)%MSR,nmn_l,
1252 . tag_node_msr,nodlocal)
1253
1254
1255 IF(nisub>0)THEN
1256 CALL copy_ival(intbuf_tab(ni)%LISUB,nisub,1) !KD(28)
1257 CALL split_nisub_i7(intbuf_tab(ni), nsn_l , tag_node_2ry, nrtm_l,
1258 . tag_segm , nisubs_l, nisubm_l)
1259 ENDIF
1260
1261c split candidates
1262 !TAG_SCRATCH should has been reflush to zero
1263 CALL split_cand_i7(proc , intbuf_tab(ni), nsn , nsn_l ,
1264 . tag_segm2, ii_stok , multimp , ncont ,
1265 . noint , inacti , tag_scratch ,
1266 . ii_stok_l, ityp ,nindx_scrt,indx_scrt,nodlocal,
1267 . numnod_l,numnod,numels,len_cep,cep,type18_law151)
1268
1269 CALL copy_ival(ii_stok_l,1,1)
1270
1271c split and write on disk floating arrays
1272
1273 CALL copy_rval(intbuf_tab(ni)%STFAC,1,1)
1274 CALL copy_rval(intbuf_tab(ni)%VARIABLES,nparir,1)
1275
1276 CALL split_node_rval(intbuf_tab(ni)%STFNS,nsn_l,1,tag_node_2ry)
1277 CALL split_node_rval(intbuf_tab(ni)%STFM,nrtm_l,1,tag_segm)
1278
1279 IF(igap/=0)THEN
1280 CALL split_node_rval(intbuf_tab(ni)%GAP_M,nrtm_l,1,tag_segm)!JD(15)
1281 CALL split_node_rval(intbuf_tab(ni)%GAP_S,nsn_l,1,tag_node_2ry)!JD(16)
1282 ELSE
1283 siz = intbuf_tab_l(ni)%S_GAP_M
1284 CALL copy_rval(intbuf_tab(ni)%GAP_M,siz,1)
1285
1286 siz = intbuf_tab_l(ni)%S_GAP_S
1287 CALL copy_rval(intbuf_tab(ni)%GAP_S,siz,1)
1288 ENDIF
1289
1290 siz = intbuf_tab_l(ni)%S_XSAV
1291 intbuf_tab(ni)%XSAV(1:siz) = 0
1292 CALL copy_rval(intbuf_tab(ni)%XSAV,siz,1)
1293
1294 siz = intbuf_tab_l(ni)%S_CRIT
1295 CALL copy_rval(intbuf_tab(ni)%CRIT,siz,1)
1296
1297 IF(inacti==5.OR.inacti==6.OR.inacti==7)THEN
1298 CALL split_cand_rval(intbuf_tab(ni)%CAND_F,
1299 . ii_stok_l,tag_ii,multimp,ncont)
1300 ELSE
1301 siz = intbuf_tab_l(ni)%S_CAND_F
1302 CALL copy_rval(intbuf_tab(ni)%CAND_F,siz,1)
1303 ENDIF
1304
1305 DEALLOCATE(tag_node_2ry,tag_segm,tag_segm2,
1306 . tag_node_msr,tag_ii)
1307 DEALLOCATE(i710xsav)
1308
1309C=======================================================================
1310 ELSEIF(ityp == 11)THEN
1311C=======================================================================
1312 ALLOCATE(tag_node_2ry(nsn_l),tag_segm(nrtm_l),
1313 . tag_segm2(nrtm),tag_segs(nrts_l),
1314 . tag_ii(ii_stok),tag_node_msr(nmn_l),tag_seg2s(nrts))
1315
1316 tag_node_2ry(1:nsn_l) = 0
1317 tag_segm(1:nrtm_l) = 0
1318 tag_segm2(1:nrtm) = 0
1319 tag_segs(1:nrts_l) = 0
1320 tag_seg2s(1:nrts) = 0
1321 tag_ii(1:ii_stok) = 0
1322 tag_node_msr(1:nmn_l) = 0
1323
1324 !prepare addition arrays used for split
1325 CALL prepare_split_i11(proc , intbuf_tab(ni), ipari(1,ni) ,
1326 . tag_node_2ry, tag_segm , tag_segm2 ,
1327 . tag_nm , tag_segs , tag_node_msr,
1328 . tag_scratch , intercep , ni,nindx_nm,indx_nm,
1329 . nindx_scrt ,indx_scrt ,tag_seg2s)
1330
1331 IF(ii_stok>0)THEN
1332 CALL prepare_split_cand(intbuf_tab(ni), tag_segm2, ii_stok,
1333 . tag_ii)
1334 ENDIF
1335
1336c split and write on disk integers arrays
1337 CALL split_seg_nodloc(intbuf_tab(ni)%IRECTS,nrts_l,2,
1338 . tag_segs,nodlocal) !KD(10)
1339 CALL split_seg_nodloc(intbuf_tab(ni)%IRECTM,nrtm_l,2,
1340 . tag_segm,nodlocal) !KD(11)
1341 CALL split_node_nodloc(intbuf_tab(ni)%NSV,nsn_l,
1342 . tag_node_2ry,nodlocal) !KD(12)
1343 CALL split_node_nodloc(intbuf_tab(ni)%MSR,nmn_l,
1344 . tag_node_msr,nodlocal) !KD(13)
1345c
1346 IF(intth>0) THEN
1347 CALL split_node_ival(intbuf_tab(ni)%IELEC,nrts_l,1,
1348 . tag_segs) !KD(10)
1349 CALL split_node_ival(intbuf_tab(ni)%IELES,nrtm_l,1,
1350 . tag_segm) !KD(10)
1351 ENDIF
1352
1353C- subinterfaces
1354 IF(nisub>0)THEN
1355 CALL copy_ival(intbuf_tab(ni)%LISUB,nisub,1) !KD(28)
1356 CALL copy_ival(intbuf_tab(ni)%TYPSUB,nisub,1)
1357
1358 CALL split_nisub_i7(intbuf_tab(ni), nrts_l, tag_segs, nrtm_l,
1359 . tag_segm , nisubs_l, nisubm_l)
1360 ENDIF
1361
1362c split candidates
1363 !TAG_SCRATCH should has been reflush to zero
1364 CALL split_cand_i11(proc , intbuf_tab(ni), nrts , nrts_l ,
1365 . tag_segm2 , tag_segs , ii_stok, multimp,
1366 . ncont , noint , inacti ,
1367 . tag_scratch, intercep , ni , ipari_l,
1368 . ii_stok_l ,nindx_scrt ,indx_scrt)
1369
1370 CALL copy_ival(ii_stok_l,1,1)
1371
1372 IF (mfrot == 2)THEN
1373 CALL split_cand_ival(intbuf_tab(ni)%IFPEN, ii_stok_l, tag_ii,
1374 . multimp, ncont) !KD(27)
1375 ENDIF
1376
1377 IF(intfric>0)THEN
1378 CALL split_node_ival(intbuf_tab(ni)%IPARTFRICS,nrts_l,1,
1379 . tag_segs)
1380 CALL split_node_ival(intbuf_tab(ni)%IPARTFRICM,nrtm_l,1,
1381 . tag_segm)
1382 ENDIF
1383C
1384 IF(flagremnode == 2) THEN
1385 CALL split_remnode_i11(proc ,intbuf_tab(ni), nrtm , nrtm_l,
1386 . tag_segm2, nodlocal, itab,numnod_l,tag_seg2s,
1387 . nremnode_l)
1388 ENDIF
1389
1390 !flush to 0 (working area for sorting INT11
1391 siz = intbuf_tab_l(ni)%S_ADCCM
1392 CALL copy_ival(intbuf_tab(ni)%ADCCM,siz,1) !KD(16)
1393
1394 !flush to 0 (working area for sorting INT11)
1395 siz = intbuf_tab_l(ni)%S_CHAIN
1396 CALL copy_ival(intbuf_tab(ni)%CHAIN,siz,1) !KD(17)
1397
1398c split and write on disk floating arrays
1399 CALL copy_rval(intbuf_tab(ni)%STFAC,1,1) !JD(10)
1400 CALL copy_rval(intbuf_tab(ni)%VARIABLES,nparir,1) !JD(11)
1401
1402 CALL split_node_rval(intbuf_tab(ni)%STFM,nrtm_l,1,tag_segm) !JD(17)
1403 CALL split_node_rval(intbuf_tab(ni)%STFS,nrts_l,1,tag_segs) !JD(16)
1404
1405 CALL split_node_rval(intbuf_tab(ni)%PENIM,nrtm_l,2,tag_segm) !JD(21)
1406 CALL split_node_rval(intbuf_tab(ni)%PENIS,nrts_l,2,tag_segs) !JD(20)
1407
1408 CALL split_node_rval(intbuf_tab(ni)%GAP_M,nrtm_l,1,tag_segm) !JD(15)
1409 CALL split_node_rval(intbuf_tab(ni)%GAP_S,nrts_l,1,tag_segs) !JD(14)
1410
1411 siz = intbuf_tab_l(ni)%S_XSAV
1412 intbuf_tab(ni)%XSAV(1:siz) = 0
1413 CALL copy_rval(intbuf_tab(ni)%XSAV,siz,1)
1414
1415 siz = intbuf_tab_l(ni)%S_CRIT
1416 CALL copy_rval(intbuf_tab(ni)%CRIT,siz,1) !JD(24)
1417
1418 IF(intth>0) THEN
1419 CALL split_node_rval(intbuf_tab(ni)%AREAS,nrts_l,1,
1420 . tag_segs)
1421 CALL split_node_rval(intbuf_tab(ni)%AREAM,nrtm_l,1,
1422 . tag_segm)
1423 ENDIF
1424
1425 IF(igap == 3)THEN
1426 CALL split_node_rval(intbuf_tab(ni)%GAP_ML,nrtm_l,1,tag_segm) !JD(31)
1427 CALL split_node_rval(intbuf_tab(ni)%GAP_SL,nrts_l,1,tag_segs) !JD(32)
1428 ENDIF
1429
1430 IF(mfrot == 2)THEN !IPARI(30,NI)
1431 intbuf_tab(ni)%FTSAVX(1:multimp*ncont) = 0
1432 intbuf_tab(ni)%FTSAVY(1:multimp*ncont) = 0
1433 intbuf_tab(ni)%FTSAVZ(1:multimp*ncont) = 0
1434
1435 CALL split_cand_rval(intbuf_tab(ni)%FTSAVX,
1436 . ii_stok_l,tag_ii,multimp,ncont)
1437 CALL split_cand_rval(intbuf_tab(ni)%FTSAVY,
1438 . ii_stok_l,tag_ii,multimp,ncont)
1439 CALL split_cand_rval(intbuf_tab(ni)%FTSAVZ,
1440 . ii_stok_l,tag_ii,multimp,ncont)
1441 ENDIF
1442C
1443 DEALLOCATE(tag_node_2ry,tag_segm,tag_segm2,tag_segs,
1444 . tag_node_msr,tag_ii,tag_seg2s)
1445
1446C=======================================================================
1447 ELSEIF(ityp == 12)THEN
1448C=======================================================================
1449
1450 IF(proc==0) THEN
1451 !split and write on disk integers arrays
1452 CALL copy_ival(intbuf_tab(ni)%IRECTS,nrts,4) !KD(10)
1453 CALL copy_ival(intbuf_tab(ni)%IRECTM,nrtm,4) !KD(11)
1454 CALL split_node_nodloc_p0(intbuf_tab(ni)%NSV,nsn,1,nodlocal) !KD(12)
1455 CALL split_node_nodloc_p0(intbuf_tab(ni)%MSR,nmn,1,nodlocal) !KD(13)
1456 CALL copy_ival(intbuf_tab(ni)%IRTLM,nsn,1) !KD(14)
1457 CALL copy_ival(intbuf_tab(ni)%IELES,nrts,1) !KD(24)
1458 CALL copy_ival(intbuf_tab(ni)%ILOCS,nsn,1) !KD(16)
1459 CALL copy_ival(intbuf_tab(ni)%NSEGM,1+nmn,1) !KD(21)
1460 CALL copy_ival(intbuf_tab(ni)%IRTLS,nmn,1) !KD(15)
1461 CALL copy_ival(intbuf_tab(ni)%ILOCM,nmn,1) !KD(17)
1462 CALL copy_ival(intbuf_tab(ni)%NSEGS,1+nsn,1) !KD(21)
1463 CALL copy_ival(intbuf_tab(ni)%LNSV,nst,1) !KD(22)
1464 CALL copy_ival(intbuf_tab(ni)%LMSR,nmt,1) !KD(23)
1465 CALL copy_ival(intbuf_tab(ni)%IELEM,nrtm,1) !KD(25)
1466 CALL copy_ival(intbuf_tab(ni)%FCOUNT,nsn,1) !KD(26)
1467
1468 !split and write on disk floating arrays
1469 CALL copy_rval(intbuf_tab(ni)%STFAC,1,1)
1470 CALL copy_rval(intbuf_tab(ni)%VARIABLES,nparir,1)
1471 CALL copy_rval(intbuf_tab(ni)%CSTS,nsn,2) !JD(12)
1472 CALL copy_rval(intbuf_tab(ni)%NMAS,nmn,1) !JD(22)
1473 IF(ilev>0)CALL copy_rval(intbuf_tab(ni)%STFNS,nsn,1) !JD(14)
1474 CALL copy_rval(intbuf_tab(ni)%CSTM,nmn,2) !JD(13)
1475 IF(ilev>0)CALL copy_rval(intbuf_tab(ni)%STFNM,nmn,1) !JD(15)
1476 ENDIF
1477
1478C=======================================================================
1479 ELSEIF(ityp == 14)THEN
1480C=======================================================================
1481
1482 IF(proc==0) THEN
1483 !split and write on disk integers arrays
1484 CALL split_node_nodloc_p0(intbuf_tab(ni)%NSV,nsn,1,nodlocal) !KD(12)
1485 CALL copy_ival(intbuf_tab(ni)%KSURF,1,1) !KD(11)
1486 CALL copy_ival(intbuf_tab(ni)%IMPACT,nsn,1) !KD(13)
1487
1488 !split and write on disk floating arrays
1489 CALL copy_rval(intbuf_tab(ni)%STFAC,1,1) !JD(10)
1490 CALL copy_rval(intbuf_tab(ni)%VARIABLES,nparir,1) !JD(11)
1491 CALL copy_rval(intbuf_tab(ni)%CIMP,nsn,3) !JD(12)
1492 CALL copy_rval(intbuf_tab(ni)%NIMP,nsn,3) !JD(13)
1493 ENDIF
1494
1495C=======================================================================
1496 ELSEIF(ityp == 15)THEN
1497C=======================================================================
1498
1499 IF(proc==0) THEN
1500 !split and write on disk integers arrays
1501 CALL split_node_nodloc_p0(intbuf_tab(ni)%IRECTS,nrts,4,nodlocal) !KD(10)
1502 CALL split_node_nodloc_p0(intbuf_tab(ni)%NSV,nsn,1,nodlocal) !KD(12)
1503 CALL copy_ival(intbuf_tab(ni)%KSURF,1,1) !KD(11)
1504 CALL copy_ival(intbuf_tab(ni)%IMPACT,nrts,4) !KD(13)
1505
1506 !split and write on disk floating arrays
1507 CALL copy_rval(intbuf_tab(ni)%STFAC,1,1) !JD(10)
1508 CALL copy_rval(intbuf_tab(ni)%VARIABLES,nparir,1) !JD(11)
1509C CALL COPY_RVAL(INTBUF_TAB(NI)%CIMP,NSN,3) !JD(12)
1510 CALL copy_rval(intbuf_tab(ni)%IOLD,nrts,3*4) !JD(12)
1511 CALL copy_rval(intbuf_tab(ni)%HOLD,nrts,3*4) !JD(13)
1512 CALL copy_rval(intbuf_tab(ni)%NOLD,nrts,3*4) !JD(14)
1513 CALL copy_rval(intbuf_tab(ni)%DOLD,nrts,3*4) !JD(15)
1514 ENDIF
1515
1516C=======================================================================
1517 ELSEIF(ityp == 16)THEN
1518C=======================================================================
1519
1520 IF(proc==0) THEN
1521 ncont = nsn_l
1522
1523 !split and write on disk integers arrays
1524 CALL copy_ival(intbuf_tab(ni)%IRECTS,nrts,4) !KD(10)
1525 CALL copy_ival(intbuf_tab(ni)%CAND_E,multimp*ncont,1) !KD(14)
1526 CALL copy_ival(intbuf_tab(ni)%CAND_N,multimp*ncont,1) !KD(15)
1527
1528 !split and write on disk floating arrays
1529 CALL copy_rval(intbuf_tab(ni)%STFAC,1,1) !JD(10)
1530 CALL copy_rval(intbuf_tab(ni)%VARIABLES,nparir,1) !JD(11)
1531
1532 siz = intbuf_tab_l(ni)%S_XSAV
1533 CALL copy_rval(intbuf_tab(ni)%XSAV,siz,1)
1534 ENDIF
1535
1536C=======================================================================
1537 ELSEIF(ityp == 17)THEN
1538C=======================================================================
1539 ALLOCATE(tag_node_2ry(nsn_l), tag_node_msr(nme_l))
1540
1541 ncont = nsn_l
1542 tag_node_2ry(1:nsn_l) = 0
1543 tag_node_msr(1:nme_l) = 0
1544
1545 !prepare addition arrays used for split
1546 CALL prepare_split_i17(proc ,intbuf_tab(ni),ipari(1,ni) ,
1547 . tag_node_2ry ,tag_node_msr ,
1548 . cep ,cel ,igrbric,
1549 . nsn_l, nme_l )
1550
1551
1552 !split and write on disk integers arrays
1553 CALL copy_ival(intbuf_tab(ni)%IRECTS,nrts,4) !KD(10)
1554 CALL copy_ival(intbuf_tab(ni)%CAND_E,multimp*ncont,1) !KD(14)
1555 CALL copy_ival(intbuf_tab(ni)%CAND_N,multimp*ncont,1) !KD(15)
1556
1557 !split and write on disk floating arrays
1558 CALL copy_rval(intbuf_tab(ni)%STFAC,1,1) !JD(10)
1559 CALL copy_rval(intbuf_tab(ni)%VARIABLES,nparir,1) !JD(11)
1560
1561 siz = intbuf_tab_l(ni)%S_XSAV
1562 CALL copy_rval(intbuf_tab(ni)%XSAV,siz,1)
1563
1564 CALL split_node_rval(intbuf_tab(ni)%KS,nsn_l,2,tag_node_2ry) !JD(16)
1565 CALL split_node_rval(intbuf_tab(ni)%KM,nme_l,2,tag_node_msr) !JD(17)
1566 CALL split_node_rval(intbuf_tab(ni)%FROTS,nsn_l,7,tag_node_2ry) !JD(18)
1567 CALL split_node_rval(intbuf_tab(ni)%FROTM,nme_l,7,tag_node_msr) !JD(19)
1568
1569 DEALLOCATE(tag_node_2ry, tag_node_msr)
1570
1571C=======================================================================
1572 ELSEIF(ityp == 18)THEN
1573C=======================================================================
1574
1575c TYPE 7 + INACTI = 7
1576
1577C=======================================================================
1578 ELSEIF(ityp == 20)THEN
1579C=======================================================================
1580
1581 ALLOCATE(tag_node_2ry(nsn_l),tag_segm(nrtm_l),tag_node_msr(nmn_l),
1582 . tag_segm2(nrtm),tag_ii(ii_stok), tage_ii(ii_stok_e),
1583 . tag_nlins(nlins_l),tag_nlinm(nlinm_l),
1584 . tag_nlins2(nlins),tag_nlinm2(nlinm),
1585 . tag_nlg(nln_l),tag_nlg2(numnod), tag_nsne(nsne_l),
1586 . tag_nmne(nmne_l),tag_nsve(nsne_l),tag_msre(nmne_l) )
1587
1588 tag_node_2ry(1:nsn_l) = 0
1589 tag_segm(1:nrtm_l) = 0
1590 tag_segm2(1:nrtm) = 0
1591 tag_ii(1:ii_stok) = 0
1592 tage_ii(1:ii_stok_e) = 0
1593 tag_node_msr(1:nmn_l) = 0
1594 tag_nlins(1:nlins_l) = 0
1595 tag_nlinm(1:nlinm_l) = 0
1596 tag_nlins2(1:nlins) = 0
1597 tag_nlinm2(1:nlinm) = 0
1598 tag_nlg(1:nln_l) = 0
1599 tag_nlg2(1:numnod) = 0
1600 tag_nsne(1:nsne_l) = 0
1601 tag_nmne(1:nmne_l) = 0
1602 tag_nsve(1:nsne_l) = 0
1603 tag_msre(1:nmne_l) = 0
1604
1605 !prepare addition arrays used for split
1606 CALL prepare_split_i20(
1607 . proc , intbuf_tab(ni),ipari(1,ni) ,
1608 . tag_node_2ry, tag_segm , tag_node_msr ,
1609 . tag_segm2 , tag_nm , tag_nlins, tag_nlinm,
1610 . tag_nlins2 , tag_nlinm2, tag_nlg ,tag_nlg2,
1611 . tag_scratch , intercep , ipari_l , ni, tag_nsne,
1612 . tag_nmne , tag_nsve , tag_msre ,nindx_nm,indx_nm,
1613 . nindx_scrt ,indx_scrt)
1614
1615c split and write on disk integers arrays
1616
1617 CALL split_seg_ival_i20(intbuf_tab(ni)%IRECTM,intbuf_tab(ni)%NLG,
1618 . nrtm_l,4,tag_segm,tag_nlg2) !KD(11)
1619
1620 CALL split_seg_ival_i20(intbuf_tab(ni)%NSV,intbuf_tab(ni)%NLG,
1621 . nsn_l,1,tag_node_2ry,tag_nlg2) !KD(12)
1622
1623 CALL split_seg_ival_i20(intbuf_tab(ni)%MSR,intbuf_tab(ni)%NLG,
1624 . nmn_l,1,tag_node_msr,tag_nlg2) !KD(13)
1625
1626 IF(intth>0)THEN
1627 CALL split_node_ival(intbuf_tab(ni)%IELEC,nsn_l,1,
1628 . tag_node_2ry) !KD(25)
1629 CALL split_node_ival(intbuf_tab(ni)%IELES,nrtm_l,1,
1630 . tag_segm) !KD(24)
1631 ENDIF
1632
1633 IF(nisub>0)THEN
1634 CALL copy_ival(intbuf_tab(ni)%LISUB,nisub,1) !KD(28)
1635 CALL split_nisub_i7(intbuf_tab(ni), nsn_l , tag_node_2ry, nrtm_l,
1636 . tag_segm , nisubs_l, nisubm_l)
1637 ENDIF
1638
1639c split candidates
1640 IF(ii_stok>0)THEN
1641 CALL prepare_split_cand(intbuf_tab(ni), tag_segm2, ii_stok,
1642 . tag_ii)
1643 ENDIF
1644
1645 !TAG_SCRATCH should has been reflush to zero
1646 CALL split_cand_i20(proc , intbuf_tab(ni), nsn , nsn_l ,
1647 . tag_segm2, ii_stok , multimp , ncont ,
1648 . noint , inacti , tag_scratch ,
1649 . ii_stok_l,ipari_l,ni ,nindx_scrt,indx_scrt)
1650 CALL copy_ival(ii_stok_l,1,1)
1651
1652 IF(ii_stok_e>0)THEN
1653 CALL prepare_split_cand_i20_edge(intbuf_tab(ni), tag_nlins2, ii_stok, tage_ii)
1654 ENDIF
1655 CALL split_cand_i20_edge(proc , intbuf_tab(ni), nlins , nlins_l ,
1656 . tag_nlins2, ii_stok_e , multimp , nconte ,
1657 . noint , inacti , tag_scratch ,
1658 . ii_stok_e_l,ipari_l,ni ,nindx_scrt,indx_scrt)
1659 CALL copy_ival(ii_stok_e_l,1,1)
1660
1661 IF (ifq>0)THEN
1662 siz = intbuf_tab(ni)%S_IFPEN
1663 intbuf_tab(ni)%IFPEN(1:siz) = 0
1664 CALL copy_ival(intbuf_tab(ni)%IFPEN,multimp*ncont,1) !KD(27)
1665 ENDIF
1666
1667 CALL split_node_ival(intbuf_tab(ni)%NBINFLG,nln_l,1,tag_nlg) !KD(33)
1668 CALL split_node_ival(intbuf_tab(ni)%MBINFLG,nrtm_l,1,tag_segm) !KD(34)
1669 CALL split_node_nodloc(intbuf_tab(ni)%NLG,nln_l,tag_nlg,nodlocal) !KD(35)
1670
1671 siz = intbuf_tab_l(ni)%S_DAANC6
1672 ALLOCATE(ibuf8_l(siz))
1673 ibuf8_l(1:siz)=0
1674 DO k=1,nln
1675 n = intbuf_tab(ni)%NLG(k) ! N noeud global
1676 nl = tag_nlg2(n) ! NL noeud local d interface sur le proc
1677 IF(nl > 0)THEN
1678C 36 entiers 18 doubles
1679 CALL copyr8(ibuf8_l(36*(nl-1)+1),
1680 . intbuf_tab(ni)%DAANC6(36*(k-1)+1) ,18 )
1681 ENDIF
1682 ENDDO
1683 CALL write_i_c(ibuf8_l,siz)
1684 DEALLOCATE(ibuf8_l)
1685
1686 CALL split_node_ival(intbuf_tab(ni)%ISLINS,nlins_l,2,tag_nlins) !KD(36)
1687 CALL split_node_ival(intbuf_tab(ni)%ISLINM,nlinm_l,2,tag_nlinm) !KD(37)
1688
1689 CALL split_seg_ival_i20(intbuf_tab(ni)%IXLINS,intbuf_tab(ni)%NLG,
1690 . nlins_l,2,tag_nlins,tag_nlg2) !KD(40)
1691
1692 CALL split_seg_ival_i20(intbuf_tab(ni)%IXLINM,intbuf_tab(ni)%NLG,
1693 . nlinm_l,2,tag_nlins,tag_nlg2) !KD(41)
1694
1695
1696 ! NSVL
1697 CALL split_seg_ival_i20_2(tag_nsne,nsne_l,tag_nlg2) !KD(42)
1698 ! MSRL
1699 CALL split_seg_ival_i20_2(tag_nmne,nmne_l,tag_nlg2) !KD(43)
1700
1701 !flush to 0
1702 siz = intbuf_tab_l(ni)%S_ADCCM20
1703 CALL copy_ival(intbuf_tab(ni)%ADCCM20,siz,1) !KD(16)
1704
1705 !flush to 0
1706 siz = intbuf_tab_l(ni)%S_CHAIN20
1707 CALL copy_ival(intbuf_tab(ni)%CHAIN20,siz,1) !KD(17)
1708
1709
1710c split and write on disk floating arrays
1711
1712 CALL copy_rval(intbuf_tab(ni)%STFAC,1,1) !JD(10)
1713 CALL copy_rval(intbuf_tab(ni)%VARIABLES,nparir,1) !JD(11)
1714
1715 CALL split_node_rval(intbuf_tab(ni)%STFM,nrtm_l,1,tag_segm)!JD(17)
1716 CALL split_node_rval(intbuf_tab(ni)%STFS,nlins_l,1,tag_nlins) !JD(36)
1717 CALL split_node_rval(intbuf_tab(ni)%PENIM,nrtm_l,2,tag_segm)!JD(21)
1718 CALL split_node_rval(intbuf_tab(ni)%PENIS,nsn_l,2,tag_node_2ry)!JD(20)
1719
1720 IF(igap/=0)THEN
1721 CALL split_node_rval(intbuf_tab(ni)%GAP_M,nrtm_l,1,tag_segm)!JD(15)
1722 CALL split_node_rval(intbuf_tab(ni)%GAP_S,nsn_l,1,tag_node_2ry)!JD(16)
1723 ENDIF
1724
1725 siz = intbuf_tab_l(ni)%S_XSAV
1726 CALL copy_rval(intbuf_tab(ni)%XSAV,siz,1)
1727
1728 siz = intbuf_tab(ni)%S_CRIT
1729 CALL copy_rval(intbuf_tab(ni)%CRIT,siz,1) !JD(24)
1730
1731 IF (mfrot/=0) THEN
1732 CALL copy_rval(intbuf_tab(ni)%FRIC_P,10,1) !JD(25)
1733 ENDIF
1734
1735 IF (ifq/=0) THEN
1736 CALL copy_rval(intbuf_tab(ni)%XFILTR,1,1) !JD(26)
1737 ENDIF
1738
1739 IF(intth>0) THEN
1740 CALL split_node_rval(intbuf_tab(ni)%AREAS,nsn_l,1,tag_node_2ry)!JD(30)
1741 ENDIF
1742
1743 IF(inacti==5.OR.inacti==6.OR.inacti==7)THEN
1744 CALL split_cand_rval(intbuf_tab(ni)%CAND_P,
1745 . ii_stok_l,tag_ii,multimp,ncont)
1746 ENDIF
1747
1748 IF(ifq/=0)THEN
1749 CALL split_cand_rval(intbuf_tab(ni)%CAND_FX,
1750 . ii_stok_l,tag_ii,multimp,ncont)
1751 CALL split_cand_rval(intbuf_tab(ni)%CAND_FY,
1752 . ii_stok_l,tag_ii,multimp,ncont)
1753 CALL split_cand_rval(intbuf_tab(ni)%CAND_FZ,
1754 . ii_stok_l,tag_ii,multimp,ncont)
1755 ENDIF
1756
1757 CALL split_node_rval(intbuf_tab(ni)%XA,nln_l,3,tag_nlg) !JD(12)
1758 CALL split_node_rval(intbuf_tab(ni)%VA,nln_l,3,tag_nlg) !JD(13)
1759 CALL split_node_rval(intbuf_tab(ni)%STFA,nln_l,1,tag_nlg) !JD(14)
1760 CALL split_node_rval(intbuf_tab(ni)%PENIA,nln_l,5,tag_nlg) !JD(42)
1761 CALL split_node_rval(intbuf_tab(ni)%ALPHAK,nln_l,3,tag_nlg) !JD(43)
1762 CALL split_node_rval(intbuf_tab(ni)%GAP_SH,nrtm_l,1,tag_segm)!JD(23)
1763
1764 siz = intbuf_tab_l(ni)%S_AVX_ANCR
1765 CALL copy_rval(intbuf_tab(ni)%AVX_ANCR,siz,1) !JD(22)
1766
1767
1768 IF(intbuf_tab(ni)%S_CRITX > 0) THEN
1769 ! INTBUF_TAB(NI)%CRITX is initialized to 0 in Starter / No need to split
1770 siz = 3*(nsne_l+nmne_l)
1771 CALL write_db(intbuf_tab(ni)%CRITX,siz)
1772 ENDIF
1773
1774 CALL split_node_rval(intbuf_tab(ni)%GAP_ME,nlinm_l,1,tag_nlinm) !JD(35)
1775 CALL split_node_rval(intbuf_tab(ni)%STF,nlinm_l,1,tag_nlinm) !JD(37)
1776 CALL split_node_rval(intbuf_tab(ni)%PENIME,nlinm_l,2,tag_nlinm) !JD(41)
1777
1778 CALL split_node_rval(intbuf_tab(ni)%GAP_SE,nlins_l,1,tag_nlins) !JD(34)
1779 CALL split_node_rval(intbuf_tab(ni)%PENISE,nlins_l,2,tag_nlins) !JD(40)
1780
1781 DEALLOCATE(tag_node_2ry,tag_segm,tag_segm2,
1782 . tag_node_msr,tag_ii,tage_ii,tag_nlins,tag_nlinm,
1783 . tag_nlins2,tag_nlinm2,tag_nlg,tag_nlg2,tag_nsne,tag_nmne,
1784 . tag_nsve,tag_msre )
1785
1786C=======================================================================
1787 ELSEIF(ityp == 21)THEN
1788c=====================================================================
1789 nmng = ipari(8,ni)
1790 ALLOCATE(tag_node_2ry(nsn_l),tag_segm(nrtm_l),
1791 . tag_node_2ry2(nsn),tag_segs(nrts_l),
1792 . tag_node_msr(nmn_l),tag_ii(ii_stok) ,
1793 . msr_l_i21(nmng),mndd_i21(nmng))
1794
1795 tag_node_2ry(1:nsn_l) = 0
1796 tag_segm(1:nrtm_l) = 0
1797 tag_segs(1:nrts_l) = 0
1798 tag_node_2ry2(1:nsn) = 0
1799 tag_node_msr(1:nmn_l) = 0
1800
1801
1802 !prepare addition arrays used for split
1803 CALL prepare_split_i21(proc , intbuf_tab(ni), ipari(1,ni) ,
1804 . tag_node_2ry, tag_segm , tag_node_2ry2,
1805 . tag_segs , tag_node_msr,
1806 . tag_scratch , intercep , ni, intth ,
1807 . nodlocal , msr_l_i21,mndd_i21,nindx_scrt ,indx_scrt)
1808
1809
1810 IF(ii_stok>0)THEN
1811 CALL prepare_split_cand_i21(intbuf_tab(ni), tag_node_2ry2, ii_stok, tag_ii,
1812 . ii_stok_l,proc)
1813 ENDIF
1814
1815c split and write on disk integers arrays
1816
1817 CALL split_seg_nodloc(intbuf_tab(ni)%IRECTS,nrts_l,4,
1818 . tag_segs,nodlocal) !KD(10)
1819
1820 CALL split_node_ival(intbuf_tab(ni)%IRECTM,nrtm_l,4,
1821 . tag_segm) !KD(11)
1822
1823
1824 CALL split_node_nodloc(intbuf_tab(ni)%NSV,nsn_l,
1825 . tag_node_2ry,nodlocal) !KD(12)
1826
1827 CALL split_node_nodloc(intbuf_tab(ni)%MSR,nmn_l,
1828 . tag_node_msr,nodlocal) !KD(13)
1829
1830 IF(inacti==5.OR.inacti==6)THEN
1831 CALL split_cand_ival_i21(intbuf_tab(ni)%IRTLM,
1832 . ii_stok_l,tag_ii,nsn_l,2) !KD(16)
1833 ELSE
1834 ALLOCATE(tabi_zero(2*nsn_l))
1835 tabi_zero(1:2*nsn_l)=0
1836 CALL copy_ival(tabi_zero,nsn_l,2)
1837 DEALLOCATE(tabi_zero)
1838 ENDIF
1839
1840 CALL copy_ival(intbuf_tab(ni)%IELES,nrts_l,1)
1841
1842c split MAIN candidates
1843 IF(inacti==5.OR.inacti==6)THEN
1844 CALL split_cand_ival_i21(intbuf_tab(ni)%CAND_E,
1845 . ii_stok_l,tag_ii,multimp*ncont,1) !KD(14)
1846c split Secnd candidates
1847 CALL split_2ry_cand_ival_i21(intbuf_tab(ni)%CAND_N,
1848 . ii_stok_l,tag_ii,tag_node_2ry2,multimp*ncont) !KD(15)
1849 ELSE
1850 ALLOCATE(tabi_zero(multimp*ncont))
1851 tabi_zero(1:multimp*ncont)=0
1852 CALL copy_ival(tabi_zero,multimp*ncont,1)
1853 CALL copy_ival(tabi_zero,multimp*ncont,1)
1854 DEALLOCATE(tabi_zero)
1855 ENDIF
1856
1857 CALL copy_ival(ii_stok_l,1,1)
1858
1859 IF(inacti==5.OR.inacti==6)THEN
1860 CALL split_node_ival(intbuf_tab(ni)%IFPEN,nsn_l,1,
1861 . tag_node_2ry2) !KD(25)
1862 ELSE
1863 ALLOCATE(tabi_zero(nsn_l))
1864 tabi_zero(1:nsn_l)=0
1865 CALL copy_ival(tabi_zero,nsn_l,1)
1866 DEALLOCATE(tabi_zero)
1867 ENDIF
1868
1869 IF(intfric>0)THEN
1870 CALL split_node_ival(intbuf_tab(ni)%IPARTFRICS,nsn_l,1,
1871 . tag_node_2ry)
1872 CALL split_node_ival(intbuf_tab(ni)%IPARTFRICM,nrtm_l,1,
1873 . tag_segm)
1874 ENDIF
1875
1876
1877c DO I=1, NMNG_L
1878c INTBUF_TAB(NI)%MSR21(I) = INTBUF_TAB(NI)%MSR(I)
1879c ENDDO
1880 CALL copy_ival(intbuf_tab(ni)%MSR,nmng_l,1) !KD(17)
1881
1882
1883C PREPARE MNDD TAB FOR MAIN TEMPERATURE COMMUNICATION
1884 IF (intth == 2.OR.flagloadp > 0) THEN
1885 ! preparation done in PREPARE_SPLIT
1886 CALL copy_ival(mndd_i21,nmng_l,1) !KD(28)
1887 ENDIF
1888
1889C PREPARE MSRL TAB FOR LOCAL NODES NUMBERING==> MAIN TEMPERATURE COMMUNICATION
1890 IF (intth == 2.OR.flagloadp > 0) THEN
1891 ! preparation done previously in PREPARE_SPLIT
1892 CALL copy_ival(msr_l_i21,nmng_l,1) !KD(29)
1893 ENDIF
1894
1895c split and write on disk floating arrays
1896 CALL copy_rval(intbuf_tab(ni)%STFAC,1,1)
1897 CALL copy_rval(intbuf_tab(ni)%VARIABLES,nparir,1)
1898 CALL copy_rval(intbuf_tab(ni)%CSTS,nsn_l,2)
1899 CALL copy_rval(intbuf_tab(ni)%XM0,nmng_l,3)
1900 CALL split_node_rval(intbuf_tab(ni)%STFNS,nsn_l,1,tag_node_2ry)
1901
1902
1903 IF(inacti==5.OR.inacti==6)THEN
1904 CALL split_node_rval(intbuf_tab(ni)%PENIS,nsn_l,1,
1905 . tag_node_2ry) !JD(18)
1906 ELSE
1907 ALLOCATE(tabr_zero(nsn_l))
1908 tabr_zero(1:nsn_l)=0
1909 CALL copy_rval(tabr_zero,nsn_l,1)
1910 DEALLOCATE(tabr_zero)
1911 ENDIF
1912
1913 CALL split_node_rval(intbuf_tab(ni)%GAP_S,nsn_l,1,tag_node_2ry) ! Gap_S : JD(16)
1914 IF(igap == 2)THEN
1915 CALL split_node_rval(intbuf_tab(ni)%GAP_S(1+nsn),nsn_l,1,tag_node_2ry) ! Gap_S0 : JD(16)
1916 ENDIF
1917
1918 siz = intbuf_tab_l(ni)%S_XSAV
1919 CALL copy_rval(intbuf_tab(ni)%XSAV,siz,1)
1920
1921 CALL copy_rval(intbuf_tab(ni)%CRIT,12,1)
1922
1923 CALL split_node_rval(intbuf_tab(ni)%AREAS,nsn_l,1,tag_node_2ry)!JD(30)
1924
1925 IF(inacti==5.OR.inacti==6)THEN
1926 CALL split_node_rval(intbuf_tab(ni)%FTSAVX,nsn_l,1,
1927 . tag_node_2ry) !JD(27)
1928 CALL split_node_rval(intbuf_tab(ni)%FTSAVY,nsn_l,1,
1929 . tag_node_2ry) !JD(28)
1930 CALL split_node_rval(intbuf_tab(ni)%FTSAVZ,nsn_l,1,
1931 . tag_node_2ry) !JD(29)
1932 ELSE
1933 ALLOCATE(tabr_zero(nsn_l))
1934 tabr_zero(1:nsn_l)=0
1935 CALL copy_rval(tabr_zero,nsn_l,1)
1936 CALL copy_rval(tabr_zero,nsn_l,1)
1937 CALL copy_rval(tabr_zero,nsn_l,1)
1938 DEALLOCATE(tabr_zero)
1939 ENDIF
1940
1941 CALL copy_rval(intbuf_tab(ni)%STF,nrtm_l,1)
1942
1943 CALL copy_rval(intbuf_tab(ni)%RCURV,nrtm_l,1)
1944
1945 CALL copy_rval(intbuf_tab(ni)%ANGLM,nrtm_l,1)
1946
1947 IF (mfrot/=0) THEN
1948 CALL copy_rval(intbuf_tab(ni)%FROT_P,10,1)
1949 ENDIF
1950
1951 CALL copy_rval(intbuf_tab(ni)%ALPHA0,1,1)
1952
1953 IF(intth > 0) THEN
1954 CALL split_node_rval(intbuf_tab(ni)%AS,nsn_l,1,tag_node_2ry)!JD(31)
1955 CALL split_node_rval(intbuf_tab(ni)%BS,nsn_l,1,tag_node_2ry)!JD(32)
1956 ENDIF
1957
1958 IF(igap>=1) THEN
1959 CALL split_node_rval(intbuf_tab(ni)%THKNOD0,nsn_l,1,tag_node_2ry)!JD(33)
1960 ENDIF
1961
1962 siz = intbuf_tab_l(ni)%S_NOD_NORMAL
1963 CALL copy_rval(intbuf_tab(ni)%NOD_NORMAL,siz,1)
1964
1965 DEALLOCATE(tag_node_2ry,tag_segm,tag_node_2ry2,tag_segs,
1966 . tag_node_msr,tag_ii,msr_l_i21,mndd_i21)
1967
1968C=======================================================================
1969 ELSEIF(ityp == 22)THEN
1970C=======================================================================
1971 ALLOCATE(tag_node_2ry(nsn_l),tag_segm(nrtm_l),
1972 . tag_node_msr(nmn_l),tag_segm2(nrtm),tag_ii(ii_stok))
1973
1974 ALLOCATE(i710xsav(nmn))
1975
1976 tag_node_2ry(1:nsn_l) = 0
1977 tag_segm(1:nrtm_l) = 0
1978 tag_segm2(1:nrtm) = 0
1979 tag_node_msr(1:nmn_l) = 0
1980 tag_ii(1:ii_stok) = 0
1981
1982 !prepare addition arrays used for split
1983 CALL prepare_split_i7(proc ,intbuf_tab(ni),ipari(1,ni) ,
1984 . intercep(1,ni),tag_node_2ry,tag_segm ,
1985 . tag_segm2 ,tag_nm ,tag_node_msr,
1986 . tag_scratch ,ni, cep, multi_fvm,i710xsav,
1987 . nindx_nm ,indx_nm,nindx_scrt,indx_scrt,nodlocal,
1988 . numnod_l)
1989
1990 IF(ii_stok>0)THEN
1991 CALL prepare_split_cand(intbuf_tab(ni), tag_segm2, ii_stok,
1992 . tag_ii)
1993 ENDIF
1994
1995c split and write on disk integers arrays
1996
1997 CALL split_seg_nodloc(intbuf_tab(ni)%IRECTM,nrtm_l,4,
1998 . tag_segm,nodlocal)
1999 CALL split_node_nodloc(intbuf_tab(ni)%NSV,nsn_l,
2000 . tag_node_2ry,nodlocal)
2001 CALL split_node_nodloc(intbuf_tab(ni)%MSR,nmn_l,
2002 . tag_node_msr,nodlocal)
2003
2004 IF(intth>0)THEN
2005 CALL split_node_ival(intbuf_tab(ni)%IELEC,nsn_l,1,
2006 . tag_node_2ry) !KD(25)
2007 CALL split_node_ival(intbuf_tab(ni)%IELES,nrtm_l,1,
2008 . tag_segm) !KD(24)
2009 ENDIF
2010
2011 IF(nisub>0)THEN
2012 CALL copy_ival(intbuf_tab(ni)%LISUB,nisub,1) !KD(28)
2013 CALL split_nisub_i7(intbuf_tab(ni), nsn_l , tag_node_2ry, nrtm_l,
2014 . tag_segm , nisubs_l, nisubm_l)
2015 ENDIF
2016
2017c split candidates :
2018 !TAG_SCRATCH should has been reflush to zero
2019 CALL split_cand_i7(proc , intbuf_tab(ni), nsn , nsn_l ,
2020 . tag_segm2, ii_stok , multimp , ncont ,
2021 . noint , inacti , tag_scratch ,
2022 . ii_stok_l, ityp ,nindx_scrt,indx_scrt,nodlocal,
2023 . numnod_l,numnod,numels,len_cep,cep,type18_law151)
2024
2025 CALL copy_ival(ii_stok_l,1,1)
2026
2027 IF (ifq>0)THEN
2028 CALL split_cand_ival(intbuf_tab(ni)%IFPEN,
2029 . ii_stok_l,tag_ii,multimp,ncont) !KD(27)
2030 ENDIF
2031
2032 IF(flagremnode == 2) THEN
2033 CALL split_remnode_i7(proc ,intbuf_tab(ni), nrtm , nrtm_l,
2034 . tag_segm2,nremnode_l , nodlocal, itab,numnod_l)
2035 ENDIF
2036
2037c split and write on disk floating arrays
2038 CALL copy_rval(intbuf_tab(ni)%STFAC,1,1)
2039 CALL copy_rval(intbuf_tab(ni)%VARIABLES,nparir,1)
2040
2041 CALL split_node_rval(intbuf_tab(ni)%STFNS,nsn_l,1,tag_node_2ry)
2042 CALL split_node_rval(intbuf_tab(ni)%STFM,nrtm_l,1,tag_segm)
2043
2044 IF(igap/=0)THEN
2045 CALL split_node_rval(intbuf_tab(ni)%GAP_M,nrtm_l,1,tag_segm)!JD(15)
2046 CALL split_node_rval(intbuf_tab(ni)%GAP_S,nsn_l,1,tag_node_2ry)!JD(16)
2047 ENDIF
2048
2049 siz = intbuf_tab_l(ni)%S_XSAV
2050 intbuf_tab(ni)%XSAV(1:siz) = 0
2051 CALL copy_rval(intbuf_tab(ni)%XSAV,siz,1)
2052
2053 siz = intbuf_tab_l(ni)%S_CRIT
2054 CALL copy_rval(intbuf_tab(ni)%CRIT,siz,1)
2055
2056 IF (mfrot/=0) THEN
2057 CALL copy_rval(intbuf_tab(ni)%FRIC_P,10,1)
2058 ENDIF
2059
2060 IF (ifq/=0) THEN
2061 CALL copy_rval(intbuf_tab(ni)%XFILTR,1,1)
2062 ENDIF
2063
2064 IF(intth>0) THEN
2065 CALL split_node_rval(intbuf_tab(ni)%AREAS,nsn_l,1,tag_node_2ry)!JD(30)
2066 ENDIF
2067
2068 IF(igap==3)THEN
2069 CALL split_node_rval(intbuf_tab(ni)%GAP_ML,nrtm_l,1,tag_segm)!JD(31)
2070 CALL split_node_rval(intbuf_tab(ni)%GAP_SL,nsn_l,1,tag_node_2ry)!JD(32)
2071 ENDIF
2072
2073c
2074 IF(inacti==5.OR.inacti==6.OR.inacti==7)THEN
2075 CALL split_cand_rval(intbuf_tab(ni)%CAND_P,
2076 . ii_stok_l,tag_ii,multimp,ncont)
2077 ENDIF
2078
2079 IF(ifq/=0)THEN
2080 CALL split_cand_rval(intbuf_tab(ni)%FTSAVX,
2081 . ii_stok_l,tag_ii,multimp,ncont)
2082 CALL split_cand_rval(intbuf_tab(ni)%FTSAVY,
2083 . ii_stok_l,tag_ii,multimp,ncont)
2084 CALL split_cand_rval(intbuf_tab(ni)%FTSAVZ,
2085 . ii_stok_l,tag_ii,multimp,ncont)
2086 ENDIF
2087
2088 DEALLOCATE(tag_node_2ry,tag_segm,tag_segm2,
2089 . tag_node_msr,tag_ii)
2090 DEALLOCATE(i710xsav)
2091C=======================================================================
2092 ELSEIF(ityp == 23)THEN
2093C=======================================================================
2094 ALLOCATE(tag_node_2ry(nsn_l),tag_segm(nrtm_l),
2095 . tag_node_msr(nmn_l),tag_segm2(nrtm),tag_ii(ii_stok))
2096 ALLOCATE(i710xsav(nmn))
2097
2098 tag_node_2ry(1:nsn_l) = 0
2099 tag_segm(1:nrtm_l) = 0
2100 tag_segm2(1:nrtm) = 0
2101 tag_node_msr(1:nmn_l) = 0
2102 tag_ii(1:ii_stok) = 0
2103
2104 !prepare addition arrays used for split
2105 CALL prepare_split_i7(proc ,intbuf_tab(ni),ipari(1,ni) ,
2106 . intercep(1,ni),tag_node_2ry,tag_segm ,
2107 . tag_segm2 ,tag_nm ,tag_node_msr,
2108 . tag_scratch ,ni, cep, multi_fvm,i710xsav,
2109 . nindx_nm ,indx_nm,nindx_scrt,indx_scrt,nodlocal,
2110 . numnod_l)
2111
2112 IF(ii_stok>0)THEN
2113 CALL prepare_split_cand(intbuf_tab(ni), tag_segm2, ii_stok,
2114 . tag_ii)
2115 ENDIF
2116
2117c split and write on disk integers arrays
2118
2119 CALL copy_ival(intbuf_tab(ni)%IRECTS,nrts_l,4)
2120 CALL split_seg_nodloc(intbuf_tab(ni)%IRECTM,nrtm_l,4,
2121 . tag_segm,nodlocal)
2122
2123
2124 CALL split_node_nodloc(intbuf_tab(ni)%NSV,nsn_l,
2125 . tag_node_2ry,nodlocal)
2126 CALL split_node_nodloc(intbuf_tab(ni)%MSR,nmn_l,
2127 . tag_node_msr,nodlocal)
2128
2129c split candidates
2130 !TAG_SCRATCH should has been reflush to zero
2131 CALL split_cand_i7(proc , intbuf_tab(ni), nsn , nsn_l ,
2132 . tag_segm2, ii_stok , multimp , ncont ,
2133 . noint , inacti , tag_scratch ,
2134 . ii_stok_l, ityp ,nindx_scrt,indx_scrt ,nodlocal,
2135 . numnod_l,numnod,numels,len_cep,cep,type18_law151)
2136
2137 CALL copy_ival(ii_stok_l,1,1)
2138
2139 CALL split_cand_ival(intbuf_tab(ni)%IFPEN,
2140 . ii_stok_l,tag_ii,multimp,ncont) !KD(27)
2141
2142c split and write on disk floating arrays
2143 CALL copy_rval(intbuf_tab(ni)%STFAC,1,1)
2144 CALL copy_rval(intbuf_tab(ni)%VARIABLES,nparir,1)
2145
2146 CALL split_node_rval(intbuf_tab(ni)%STFNS,nsn_l,1,tag_node_2ry)
2147 CALL split_node_rval(intbuf_tab(ni)%STFM,nrtm_l,1,tag_segm)
2148
2149 IF(igap/=0)THEN
2150 CALL split_node_rval(intbuf_tab(ni)%GAP_M,nrtm_l,1,tag_segm)!JD(15)
2151 CALL split_node_rval(intbuf_tab(ni)%GAP_S,nsn_l,1,tag_node_2ry)!JD(16)
2152 ENDIF
2153
2154 siz = intbuf_tab_l(ni)%S_XSAV
2155 CALL copy_rval(intbuf_tab(ni)%XSAV,siz,1)
2156
2157 siz = intbuf_tab_l(ni)%S_CRIT
2158 CALL copy_rval(intbuf_tab(ni)%CRIT,siz,1)
2159
2160 IF(mfrot/=0) CALL copy_rval(intbuf_tab(ni)%FRIC_P,10,1)
2161
2162 CALL copy_rval(intbuf_tab(ni)%XFILTR,1,1)
2163
2164 CALL split_cand_rval(intbuf_tab(ni)%CAND_P,
2165 . ii_stok_l,tag_ii,multimp,ncont)
2166
2167 CALL split_cand_rval(intbuf_tab(ni)%FTSAVX,
2168 . ii_stok_l,tag_ii,multimp,ncont)
2169 CALL split_cand_rval(intbuf_tab(ni)%FTSAVY,
2170 . ii_stok_l,tag_ii,multimp,ncont)
2171 CALL split_cand_rval(intbuf_tab(ni)%FTSAVZ,
2172 . ii_stok_l,tag_ii,multimp,ncont)
2173
2174 DEALLOCATE(tag_node_2ry,tag_segm,tag_segm2,
2175 . tag_node_msr,tag_ii )
2176 DEALLOCATE(i710xsav)
2177
2178C=======================================================================
2179 ELSEIF(ityp == 24) THEN
2180C=======================================================================
2181 ALLOCATE(tag_node_2ry(nsn_l),tag_segm(nrtm_l),
2182 . tag_node_msr(nmn_l),tag_segm2(nrtm),tag_ii(ii_stok))
2183 ALLOCATE(tag_segs(nrtse_l),tag_seg2s(nrtse),tag_nsne_l(nsne_l))
2184 ALLOCATE(tag_node_2ry2(nsn),tag_ielem(nrts_l),tag_segss(nrts_l))
2185
2186
2187 IF(iedge4 > 0) THEN
2188 ALLOCATE(tag_2ry_inv(nsn))
2189 ELSE
2190 ALLOCATE(tag_2ry_inv(1))
2191 ENDIF
2192
2193 tag_node_2ry(1:nsn_l) = 0
2194 tag_segm(1:nrtm_l) = 0
2195 tag_segm2(1:nrtm) = 0
2196 tag_node_msr(1:nmn_l) = 0
2197 tag_ii(1:ii_stok) = 0
2198 tag_segs(1:nrtse_l) = 0
2199 tag_seg2s(1:nrtse) = 0
2200 tag_nsne_l(1:nsne_l)=0
2201 tag_node_2ry2(1:nsn) = 0
2202 tag_ielem(1:nrts_l) = 0
2203 tag_segss(1:nrts_l) = 0
2204 IF(iedge4 > 0) tag_2ry_inv(1:nsn)=0
2205 IF(flag_init_24_25) THEN
2206 nodlocal24(1:numnod) = nodlocal(1:numnod)
2207 nodlocal24(numnod+1:numnod+i24maxnsne) = 0
2208 flag_init_24_25 = .false.
2209 ENDIF
2210
2211 CALL prepare_split_i24(proc ,intbuf_tab(ni),ipari(1,ni) ,
2212 . intercep(1,ni),tag_node_2ry,tag_segm ,
2213 . tag_segm2 ,tag_nm ,tag_node_msr,
2214 . tag_scratch ,nodlocal24,nodlocal ,
2215 . intercep(2,ni),numnod_l,tag_nsne_l,
2216 . tag_segs,tag_seg2s,ni,tag_2ry_inv,iedge4,
2217 . tag_node_2ry2,tag_ielem,cep,cel,tag_segss,
2218 . nindx_nm,indx_nm,nindx_scrt ,indx_scrt,
2219 . nindx_ndlocal24,indx_ndlocal24,intercep(3,ni))
2220
2221 IF(ii_stok>0)THEN
2222 CALL prepare_split_cand(intbuf_tab(ni), tag_segm2, ii_stok,
2223 . tag_ii )
2224 ENDIF
2225c split and write on disk integers arrays
2226
2227 IF(intnitsche > 0) THEN
2228 CALL split_seg_nodloc(intbuf_tab(ni)%IRECTS,nrts_l,4,
2229 . tag_segss,tag_node_2ry2)
2230 ENDIF
2231
2232 CALL split_seg_nodloc(intbuf_tab(ni)%IRECTM,nrtm_l,4,
2233 . tag_segm,nodlocal)
2234 CALL split_node_nodloc(intbuf_tab(ni)%NSV,nsn_l,
2235 . tag_node_2ry,nodlocal24)
2236 CALL split_node_nodloc(intbuf_tab(ni)%MSR,nmn_l,
2237 . tag_node_msr,nodlocal)
2238C IRTML a besoin de num globaux
2239 CALL split_node_ival(intbuf_tab(ni)%IRTLM,nsn_l,2,
2240 . tag_node_2ry) !KD(18)
2241
2242 IF(intth>0)THEN
2243 CALL split_node_ival(intbuf_tab(ni)%IELEC,nsn_l,1,
2244 . tag_node_2ry) !KD(25)
2245 CALL split_node_ival(intbuf_tab(ni)%IELES,nrtm_l,1,
2246 . tag_segm) !KD(24)
2247 ENDIF
2248
2249 IF(nisub>0)THEN
2250 CALL copy_ival(intbuf_tab(ni)%LISUB,nisub,1) !KD(28)
2251 CALL copy_ival(intbuf_tab(ni)%TYPSUB,nisub,1)
2252 CALL split_nisub_i7(intbuf_tab(ni), nsn_l , tag_node_2ry, nrtm_l,
2253 . tag_segm , nisubs_l, nisubm_l)
2254 ENDIF
2255
2256c split candidates--> to modify when spmd for edge
2257 !TAG_SCRATCH should has been reflush to zero
2258 nsn0 = nsn - nsne
2259 nsn0_l = nsn_l - nsne_l
2260 CALL split_cand_i24(proc , intbuf_tab(ni), nsn , nsn_l ,
2261 . tag_segm2, ii_stok , multimp , ncont ,
2262 . noint , inacti ,tag_scratch ,ii_stok_l ,
2263 . intercep(2,ni),nindx_scrt,indx_scrt ,nodlocal ,
2264 . numnod_l )
2265 CALL copy_ival(ii_stok_l,1,1)
2266
2267 IF(intfric>0)THEN
2268 CALL split_node_ival(intbuf_tab(ni)%IPARTFRICS,nsn_l,1,
2269 . tag_node_2ry)
2270 CALL split_node_ival(intbuf_tab(ni)%IPARTFRICM,nrtm_l,1,
2271 . tag_segm)
2272 IF(intbuf_fric_tab(intfric)%IORTHFRIC > 0) THEN
2273 CALL split_node_ival(intbuf_tab(ni)%IREP_FRICM,nrtm_l,1,
2274 . tag_segm)
2275 ENDIF
2276 ENDIF
2277
2278 IF(flagremnode == 2) THEN
2279 CALL split_remnode_i24(proc ,intbuf_tab(ni), nrtm , nrtm_l,
2280 . tag_segm2,nremnode_l , nodlocal, itab ,
2281 . intbuf_tab(ni)%IS2ID,intercep(2,ni),nsne_l ,
2282 . nodlocal24)
2283 ENDIF
2284
2285C-------ILEV=2 for remove S1/S1 S2/S2 in case of S1/S2 input
2286 IF(ilev==2)THEN
2287 CALL split_node_ival(intbuf_tab(ni)%NBINFLG,nsn_l,1,
2288 . tag_node_2ry) !KD(33)
2289 CALL split_node_ival(intbuf_tab(ni)%MBINFLG,nrtm_l,1,
2290 . tag_segm) !KD(34)
2291 ELSEIF(iedge>0)THEN
2292 CALL split_node_ival(intbuf_tab(ni)%MBINFLG,nrtm_l,1,
2293 . tag_segm) !KD(34)
2294 ENDIF
2295c---------------to see if CAND_T is useful
2296 IF (iedge>0)THEN
2297 CALL split_cand_ival(intbuf_tab(ni)%CAND_T,
2298 . ii_stok_l,tag_ii,multimp,ncont) !KD(37)
2299 ENDIF
2300 mx_vm=4
2301 CALL split_node_ival(intbuf_tab(ni)%MVOISIN,nrtm_l,mx_vm,
2302 . tag_segm) !KD(17)
2303 mx_vn=8
2304 CALL split_seg_nodloc_i24(intbuf_tab(ni)%NVOISIN,nrtm_l,
2305 . mx_vn,tag_segm,nodlocal) !KD(18)
2306C----------MSEGLO(KD(19)): global number (should not change to local)
2307 CALL split_node_ival(intbuf_tab(ni)%MSEGLO,nrtm_l,1,
2308 . tag_segm) !KD(19)
2309C----------MSEGTYP(KD(20)): seg type-------------------------
2310 CALL split_node_ival_i24(intbuf_tab(ni)%MSEGTYP24,nrtm_l,
2311 . tag_segm, tag_segm2 ) !KD(20)
2312 IF(iedge>0)THEN
2313 CALL split_node_ival(intbuf_tab(ni)%ISEADD,nsn_l,1,
2314 . tag_node_2ry) !KD(35)
2315 CALL copy_ival(intbuf_tab(ni)%ISEDGE,l24add,1) !KD(36)
2316 ENDIF
2317C
2318 IF(intply > 0)THEN
2319 CALL split_node_ival(intbuf_tab(ni)%ISEG_PXFEM,nrtm_l,1,
2320 . tag_segm) !KD(40)
2321 CALL split_node_ival(intbuf_tab(ni)%ISEG_PLY,nrtm_l,12,
2322 . tag_segm) !KD(41)
2323 ENDIF
2324 CALL split_node_ival(intbuf_tab(ni)%ICONT_I,nsn_l,1,
2325 . tag_node_2ry)
2326
2327
2328C------- NEW EDGE :IRTSE, IS2SE, IS2PT -->corrige 5eme
2329 IF (iedge4 >0) THEN
2330
2331 CALL split_segedge_nodloc_i24(intbuf_tab(ni)%IRTSE,nrtse_l,
2332 . tag_segs,nodlocal,ni)
2333C print*,PROC,',NSNE_L=',NSNE_L
2334 CALL split_seg_edge(nsne_l,intbuf_tab(ni)%IS2SE,tag_nsne_l,tag_seg2s,ni)
2335
2336 CALL split_node_ival(intbuf_tab(ni)%IS2PT,nsne_l,1,
2337 . tag_nsne_l)
2338 CALL split_node_ival(intbuf_tab(ni)%ISPT2,nsn_l,1,
2339 . tag_node_2ry)
2340
2341 CALL split_isegpt_ival(intbuf_tab(ni)%ISEGPT,nsn_l,1,
2342 . tag_node_2ry,ni,tag_2ry_inv ,proc)
2343
2344 CALL split_node_ival(intbuf_tab(ni)%IS2ID,nsne_l,1,
2345 . tag_nsne_l)
2346 END IF !(NSNE>0) THEN
2347
2348C
2349 IF(intnitsche > 0)THEN
2350 CALL copy_ival(tag_ielem,nrts_l,1)
2351 CALL split_node_ival(intbuf_tab(ni)%ADRECTS,nrts_l,4,tag_segss)
2352 CALL split_node_ival(intbuf_tab(ni)%FACNRTS,nrts_l,1,tag_segss)
2353 ENDIF
2354
2355c split and write on disk floating arrays
2356
2357 CALL copy_rval(intbuf_tab(ni)%STFAC,1,1)
2358 CALL copy_rval(intbuf_tab(ni)%VARIABLES,nparir,1)
2359 CALL split_node_rval(intbuf_tab(ni)%STFNS,nsn_l,1,tag_node_2ry)
2360 CALL split_node_rval(intbuf_tab(ni)%STFM,nrtm_l,1,tag_segm)
2361
2362 IF(istif_msdt > 0) THEN
2363 CALL split_node_rval(intbuf_tab(ni)%STIFMSDT_S,nsn_l,1,tag_node_2ry)
2364 CALL split_node_rval(intbuf_tab(ni)%STIFMSDT_M,nrtm_l,1,tag_segm)
2365 ENDIF
2366
2367 IF(igap/=0)THEN
2368 CALL split_node_rval(intbuf_tab(ni)%GAP_M,nrtm_l,1,tag_segm)!JD(15)
2369 CALL split_node_rval(intbuf_tab(ni)%GAP_S,nsn_l,1,tag_node_2ry)!JD(16)
2370 ENDIF
2371
2372 siz = intbuf_tab_l(ni)%S_XSAV
2373 CALL copy_rval(intbuf_tab(ni)%XSAV,siz,1)
2374
2375 siz = intbuf_tab_l(ni)%S_CRIT
2376 CALL copy_rval(intbuf_tab(ni)%CRIT,siz,1)
2377
2378 IF (mfrot/=0) THEN
2379 CALL copy_rval(intbuf_tab(ni)%FRIC_P,10,1)
2380 ENDIF
2381
2382 IF (ifq/=0) THEN
2383 CALL copy_rval(intbuf_tab(ni)%XFILTR,1,1)
2384 ENDIF
2385
2386 IF(intth>0) THEN
2387 CALL split_node_rval(intbuf_tab(ni)%AREAS,nsn_l,1,tag_node_2ry)!JD(30)
2388 ENDIF
2389
2390
2391 CALL split_node_rval(intbuf_tab(ni)%GAPN_M,nmn_l,1,
2392 . tag_node_msr) !JD(22)
2393 CALL copy_rval(intbuf_tab(ni)%SECND_FR,nsn_l,6)!JD(27)
2394
2395 !PEN_OLD,PEN_INI for Inacti=5
2396 CALL split_node_rval(intbuf_tab(ni)%PENE_OLD,nsn_l,5,
2397 . tag_node_2ry) !JD(31)
2398
2399 CALL split_node_rval(intbuf_tab(ni)%STIF_OLD,nsn_l,2,
2400 . tag_node_2ry) !JD(31)
2401
2402 CALL copy_rval(intbuf_tab(ni)%TIME_S,nsn_l,1)!JD(33)
2403 CALL split_node_rval(intbuf_tab(ni)%GAP_NM,nrtm_l,12,tag_segm)!JD(34)
2404 IF (iedge>0) THEN
2405 CALL split_node_rval(intbuf_tab(ni)%EDGE8L2,nsn_l,1,
2406 . tag_node_2ry) !JD(35)
2407 ENDIF
2408
2409
2410 !-for implicit Kg-----
2411 IF (intkg>0) THEN
2412 CALL split_node_rval(intbuf_tab(ni)%NOD_2RY_LGTH,nsn_l,1,
2413 . tag_node_2ry) !JD(42)
2414 CALL split_node_rval(intbuf_tab(ni)%NOD_MAS_LGTH,nmn_l,1,
2415 . tag_node_msr) !JD(43)
2416 ENDIF
2417
2418 IF(intply > 0)THEN
2419 CALL split_node_rval(intbuf_tab(ni)%GAP_N0,nrtm_l,12,tag_segm)!JD(36)
2420 CALL copy_rval(intbuf_tab(ni)%DGAP_NM,nrtm_l,4) !JD(37)
2421 CALL copy_rval(intbuf_tab(ni)%DGAP_M,nrtm_l,1) !JD(38)
2422 CALL copy_rval(intbuf_tab(ni)%DELTA_PMAX_DGAP,1,1) !JD(39)
2423 ENDIF
2424
2425
2426 IF (nsne>0) THEN
2427 CALL split_node_rval(intbuf_tab(ni)%XFIC,nsne_l,3,
2428 . tag_nsne_l)
2429 CALL split_node_rval(intbuf_tab(ni)%VFIC,nsne_l,3,
2430 . tag_nsne_l)
2431
2432 CALL split_node_rval(intbuf_tab(ni)%MSFIC,nsne_l,1,
2433 . tag_nsne_l)
2434 ENDIF
2435
2436 IF(intfric>0)THEN
2437 IF(intbuf_fric_tab(intfric)%IORTHFRIC > 0) THEN
2438 CALL split_node_rval(intbuf_tab(ni)%DIR_FRICM,nrtm_l,2,
2439 . tag_segm)
2440 ENDIF
2441 ENDIF
2442
2443
2444 IF(nindx_ndlocal24>0) THEN
2445 DO ii=1,nindx_ndlocal24
2446 i = indx_ndlocal24(ii)
2447 IF(i>numnod) THEN
2448 nodlocal24(i) = 0
2449 ELSE
2450 nodlocal24(i) = nodlocal(i)
2451 ENDIF
2452 ENDDO
2453 ENDIF
2454 nindx_ndlocal24 = 0
2455
2456 DEALLOCATE(tag_node_2ry,tag_segm,tag_segm2,
2457 . tag_node_msr,tag_ii,tag_segs)
2458 DEALLOCATE(tag_seg2s)
2459 DEALLOCATE(tag_nsne_l)
2460 DEALLOCATE(tag_2ry_inv)
2461 DEALLOCATE(tag_node_2ry2,tag_ielem,tag_segss)
2462
2463C=======================================================================
2464 ELSEIF(ityp == 25) THEN
2465C=======================================================================
2466 ALLOCATE(tag_node_2ry(nsn_l),tag_segm(nrtm_l),
2467 . tag_node_msr(nmn_l),tag_segm2(nrtm),tag_ii(ii_stok),
2468 . tag_sm(nadmsr),knor2msr(nadmsr_l+1),nor2msr(4*nrtm_l),
2469 . tag_node_2ry2(nsn))
2470! ALLOCATE(NODLOCAL24(NUMNOD))
2471
2472 tag_node_2ry(1:nsn_l) = 0
2473 tag_segm(1:nrtm_l) = 0
2474 tag_segm2(1:nrtm) = 0
2475 tag_node_msr(1:nmn_l) = 0
2476 tag_ii(1:ii_stok) = 0
2477 tag_node_2ry2(1:nsn) = 0
2478
2479 tag_sm(1:nadmsr) = 0
2480
2481 IF(flag_init_24_25) THEN
2482 nodlocal24(1:numnod) = nodlocal(1:numnod)
2483 flag_init_24_25 = .false.
2484 ENDIF
2485
2486! nodlocal24(1:numnod) = nodlocal(1:numnod)
2487
2488 knor2msr(1:nadmsr_l+1)=0
2489 nor2msr(1:4*nrtm_l) =0
2490 CALL prepare_split_i25(proc ,intbuf_tab(ni),ipari(1,ni) ,
2491 . intercep(1,ni),tag_node_2ry,tag_segm ,
2492 . tag_segm2 ,tag_nm ,tag_node_msr,
2493 . tag_scratch ,tag_sm ,knor2msr ,
2494 . nor2msr ,tag_node_2ry2,nindx_nm,indx_nm,
2495 . nindx_scrt ,indx_scrt ,nrtm_l)
2496
2497 IF(ii_stok>0)THEN
2498 CALL prepare_split_cand(intbuf_tab(ni), tag_segm2, ii_stok,
2499 . tag_ii )
2500 ENDIF
2501
2502 ALLOCATE(tag_edge(nedge_l)) ! local to global
2503 ALLOCATE(tag_edge2(nedge)) ! global to local
2504 ii_stok_s_l = 0
2505 ii_stok_e_l = 0
2506 IF(iedge/=0)THEN
2507 ALLOCATE(tag_ii_e2e(ii_stok_e))
2508 ALLOCATE(tag_ii_e2s(ii_stok_s))
2509 ALLOCATE(tag_jj_e2e(ii_stok_e))
2510 ALLOCATE(tag_jj_e2s(ii_stok_s))
2511 CALL prepare_split_cand_i25_edge(intbuf_tab(ni),tag_segm2,
2512 . tag_edge, nedge_l, tag_edge2, nedge,
2513 . ii_stok_e, ii_stok_e_l, tag_ii_e2e,
2514 . ii_stok_s, ii_stok_s_l, tag_ii_e2s,
2515 . proc , ipari(63,ni),ipari(83,ni),
2516 . nrtm , tag_jj_e2e ,tag_jj_e2s )
2517 END IF
2518
2519c split and write on disk integers arrays
2520
2521 CALL split_seg_nodloc(intbuf_tab(ni)%IRECTM,nrtm_l,4,
2522 . tag_segm,nodlocal)
2523 CALL split_node_nodloc(intbuf_tab(ni)%NSV,nsn_l,
2524 . tag_node_2ry,nodlocal24)
2525 CALL split_node_nodloc(intbuf_tab(ni)%MSR,nmn_l,
2526 . tag_node_msr,nodlocal)
2527C IRTML a besoin de num globaux
2528 CALL split_node_ival(intbuf_tab(ni)%IRTLM,nsn_l,4,
2529 . tag_node_2ry) !KD(18)
2530
2531 IF(intth>0)THEN
2532 CALL split_node_ival(intbuf_tab(ni)%IELES,nsn_l,1,
2533 . tag_node_2ry)
2534 ENDIF
2535
2536 IF(nisub>0)THEN
2537 CALL copy_ival(intbuf_tab(ni)%LISUB,nisub,1) !KD(28)
2538 CALL copy_ival(intbuf_tab(ni)%TYPSUB,nisub,1)
2539 CALL split_nisub_i25(intbuf_tab(ni), nsn_l , tag_node_2ry, nrtm_l,
2540 1 tag_segm , nisubs_l, nisubm_l,
2541 2 iedge,
2542 3 nedge,
2543 4 nedge_l,
2544 5 tag_edge,
2545 6 tag_edge2,
2546 7 nisube_l,
2547 8 proc)
2548C IF(IEDGE/=0)THEN ! FAIRE SPMD
2549C CALL COPY_IVAL(INTBUF_TAB(NI)%ADDSUBE,NEDGE+1,1)
2550C CALL COPY_IVAL(INTBUF_TAB(NI)%LISUBE,NISUBE_L,1)
2551C CALL COPY_IVAL(INTBUF_TAB(NI)%INFLG_SUBE,NISUBE_L,1)
2552C END IF
2553 ENDIF
2554
2555c split candidates--> to modify when spmd for edge
2556 !TAG_SCRATCH should has been reflush to zero
2557 CALL split_cand_i25(proc , intbuf_tab(ni), nsn , nsn_l ,
2558 . tag_segm2, ii_stok , multimp , ncont ,
2559 . noint , inacti ,tag_scratch ,ii_stok_l ,
2560 . nindx_scrt,indx_scrt)
2561 CALL copy_ival(ii_stok_l,1,1)
2562C I_STOK(2:3) not needed into Restart file (null value can be written)
2563 ibid = 0
2564 CALL copy_ival(ibid,1,1)
2565 ibid = 0
2566 CALL copy_ival(ibid,1,1)
2567
2568
2569
2570 IF(iedge/=0)THEN
2571 CALL copy_ival(ii_stok_e_l,1,1)
2572 CALL copy_ival(ii_stok_s_l,1,1)
2573 END IF
2574
2575 DO i = 1,nedge_l
2576 assert(tag_edge(i) > 0)
2577 ENDDO
2578C
2579 IF(intfric>0)THEN
2580 CALL split_node_ival(intbuf_tab(ni)%IPARTFRICS,nsn_l,1,
2581 . tag_node_2ry)
2582 CALL split_node_ival(intbuf_tab(ni)%IPARTFRICM,nrtm_l,1,
2583 . tag_segm)
2584 IF(iedge/=0)THEN
2585 CALL split_node_ival(intbuf_tab(ni)%IPARTFRIC_E,nedge_l,1,
2586 . tag_edge)
2587 ENDIF
2588 IF(intbuf_fric_tab(intfric)%IORTHFRIC > 0) THEN
2589 CALL split_node_ival(intbuf_tab(ni)%IREP_FRICM,nrtm_l,1,
2590 . tag_segm)
2591
2592 ENDIF
2593 ENDIF
2594
2595 IF(flagremnode == 2) THEN
2596 CALL split_remnode_i25(proc ,intbuf_tab(ni), nrtm , nrtm_l,
2597 . tag_segm2,nremnode_l , nodlocal ,nremnor,
2598 . nsn , nsn_l , tag_node_2ry2,itab,
2599 . numnod_l )
2600 IF(iedge>0) THEN
2601 CALL split_remnode_i25_edge(proc , intbuf_tab(ni), nedge , nedge_l,
2602 . tag_edge ,tag_edge2 , tag_segm2 , itab ,numnod_l ,
2603 . ipari_l(94,ni))
2604 CALL split_remnode_i25_e2s(proc , intbuf_tab(ni), nrtm , nrtm_l,
2605 . tag_edge ,tag_edge2 , tag_segm2 , itab ,numnod_l ,
2606 . ipari_l(96,ni))
2607 ENDIF
2608 ENDIF
2609
2610C-------ILEV=2 for remove S1/S1 S2/S2 in case of S1/S2 input
2611 IF(ilev==2)THEN
2612 CALL split_node_ival(intbuf_tab(ni)%NBINFLG,nsn_l,1,
2613 . tag_node_2ry)
2614 CALL split_node_ival(intbuf_tab(ni)%MBINFLG,nrtm_l,1,
2615 . tag_segm)
2616 IF(iedge>0)THEN
2617 CALL split_node_ival(intbuf_tab(ni)%EBINFLG,nedge_l,1,
2618 . tag_edge)
2619
2620 END IF
2621 ENDIF
2622
2623 IF(intth>0)THEN
2624 CALL split_node_ival(intbuf_tab(ni)%IELEM,nrtm_l,1,
2625 . tag_segm)
2626 ENDIF
2627
2628C---------MVOISIN
2629 CALL split_seg_segloc(intbuf_tab(ni)%MVOISIN,nrtm_l,4,
2630 . tag_segm,tag_segm2)
2631C----------MSEGLO : global number (should not change to local)
2632 CALL split_node_ival(intbuf_tab(ni)%MSEGLO,nrtm_l,1,
2633 . tag_segm)
2634C----------MSEGTYP: seg type-------------------------
2635 CALL split_node_ival_i25(intbuf_tab(ni)%MSEGTYP24,nrtm,nrtm_l,
2636 . tag_segm, tag_segm2 )
2637C
2638c IF(INTPLY > 0)THEN
2639c CALL SPLIT_NODE_IVAL(INTBUF_TAB(NI)%ISEG_PXFEM,NRTM_L,1,
2640c . TAG_SEGM) !KD(40)
2641c CALL SPLIT_NODE_IVAL(INTBUF_TAB(NI)%ISEG_PLY,NRTM_L,12,
2642c . TAG_SEGM) !KD(41)
2643c ENDIF
2644
2645 CALL split_node_ival(intbuf_tab(ni)%ICONT_I,nsn_l,1,
2646 . tag_node_2ry)
2647C---------EVOISIN
2648 CALL split_node_ival(intbuf_tab(ni)%EVOISIN,nrtm_l,4,
2649 . tag_segm)
2650C----------ADMSR:
2651 CALL split_seg_nodloc(intbuf_tab(ni)%ADMSR,nrtm_l,4,
2652 . tag_segm,tag_sm)
2653
2654C----------LEDGE:
2655 CALL split_ledge_i25(nedge,
2656 . nedge_l,
2657 . intbuf_tab(ni)%IRECTM,
2658 . nrtm_l,
2659 . intbuf_tab(ni)%LEDGE,
2660 . intbuf_tab(ni)%MSEGLO,
2661 . intbuf_tab(ni)%ADMSR,
2662 . tag_segm2,
2663 . tag_sm,
2664 . nodlocal,
2665 . tag_edge,
2666 . itab,
2667 . proc)
2668
2669C----------LBOUND:
2670 CALL split_lbound_i25(nadmsr,nadmsr_l,intbuf_tab(ni)%LBOUND,tag_sm)
2671
2672C----------No need to split ACTNOR (no need in Rfile) : Null values could be written.
2673 CALL copy_ival(intbuf_tab(ni)%ACTNOR,nrtm_l,1)
2674C----------No need to split FARM (no need in Rfile) : Null values could be written.
2675c CALL COPY_IVAL(INTBUF_TAB(NI)%FARM,4*MULTIMP*NCONT,1)
2676C----------ADSKYN, IADNOR:
2677 CALL split_adskyn_25(
2678 . intbuf_tab(ni)%ADSKYN,intbuf_tab(ni)%IADNOR,nadmsr,
2679 . intbuf_tab(ni)%ADMSR,nadmsr_l,
2680 . nrtm_l,tag_segm,tag_sm,intercep(1,ni))
2681C----------No need to split ISLIDE (no need in Rfile) : Null values could be written.
2682 CALL split_node_ival(intbuf_tab(ni)%ISLIDE,nsn_l,4,
2683 . tag_node_2ry)
2684C----------write KNOR2MSR & NOR2MSR
2685 CALL copy_ival(knor2msr,nadmsr_l+1,1)
2686 CALL copy_ival(nor2msr ,4*nrtm_l,1)
2687C----------No need to split CAND_OPT_N & CAND_OPT_E (no need in Rfile) : Null values could be written.
2688 CALL copy_ival_dummy(multimp*ncont,1)
2689 CALL copy_ival_dummy(multimp*ncont,1)
2690
2691C---------Adhesion case
2692 IF(ivis2==-1) THEN
2693 CALL split_node_ival(intbuf_tab(ni)%IF_ADH,nsn_l,1,
2694 . tag_node_2ry)
2695 ENDIF
2696C
2697 IF(iedge/=0)THEN
2698
2699 CALL split_cand_i25_edge(intbuf_tab(ni),tag_segm2, proc,ni,
2700 . tag_edge, nedge_l, tag_edge2, nedge,
2701 . ii_stok_e, ii_stok_e_l, tag_ii_e2e,
2702 . ii_stok_s, ii_stok_s_l, tag_ii_e2s,
2703 . tag_jj_e2e,tag_jj_e2s )
2704
2705
2706 END IF
2707
2708 IF(iedge/=0)THEN
2709 nconte = ipari_l(88,ni)
2710 multimpe = ipari_l(87,ni)
2711
2712 CALL split_cand_ival(intbuf_tab(ni)%IFPEN_E,
2713 . ii_stok_e_l,tag_ii_e2e,multimpe,nconte)
2714
2715c CALL SPLIT_NODE_IVAL(INTBUF_TAB(NI)%IFPEN_E,II_STOK_E_L,1,
2716c . TAG_II_E2E)
2717
2718 CALL split_node_ival(intbuf_tab(ni)%IFPEN_E2S,ii_stok_s_l,1,
2719 . tag_ii_e2s)
2720 ENDIF
2721
2722 CALL split_seg_ielem(intbuf_tab(ni)%IELEM_M,intbuf_tab(ni)%PROC_MVOISIN, intbuf_tab(ni)%MVOISIN,nrtm,
2723 . nrtm_l ,tag_segm ,cep,cel ,
2724 . idel25_solid,intercep(1,ni),proc,numels,
2725 . numelq ,numelc ,numelt ,numelp ,
2726 . numelr ,numeltg)
2727
2728c split and write on disk floating arrays
2729
2730 CALL copy_rval(intbuf_tab(ni)%STFAC,1,1)
2731 CALL copy_rval(intbuf_tab(ni)%VARIABLES,nparir,1)
2732 CALL split_node_rval(intbuf_tab(ni)%STFNS,nsn_l,1,tag_node_2ry)
2733 CALL split_node_rval(intbuf_tab(ni)%STFM,nrtm_l,1,tag_segm)
2734
2735 IF(istif_msdt > 0) THEN
2736 CALL split_node_rval(intbuf_tab(ni)%STIFMSDT_S,nsn_l,1,tag_node_2ry)
2737 CALL split_node_rval(intbuf_tab(ni)%STIFMSDT_M,nrtm_l,1,tag_segm)
2738 ENDIF
2739
2740 IF(igap/=0)THEN
2741 CALL split_node_rval(intbuf_tab(ni)%GAP_M,nrtm_l,1,tag_segm)!JD(15)
2742 CALL split_node_rval(intbuf_tab(ni)%GAP_S,nsn_l,1,tag_node_2ry)!jd(16)
2743 ENDIF
2744
2745 siz = intbuf_tab_l(ni)%S_XSAV
2746 CALL copy_rval(intbuf_tab(ni)%XSAV,siz,1)
2747
2748 siz = intbuf_tab_l(ni)%S_CRIT
2749 CALL copy_rval(intbuf_tab(ni)%CRIT,siz,1)
2750
2751 IF (mfrot/=0) THEN
2752 CALL copy_rval(intbuf_tab(ni)%FRIC_P,10,1)
2753 ENDIF
2754
2755 IF (ifq/=0) THEN
2756 CALL copy_rval(intbuf_tab(ni)%XFILTR,1,1)
2757 ENDIF
2758
2759 IF(intth>0.OR.ivis2==-1) THEN
2760 CALL split_node_rval(intbuf_tab(ni)%AREAS,nsn_l,1,tag_node_2ry)!JD(30)
2761 ENDIF
2762
2763 IF(igap==3)THEN
2764 CALL split_node_rval(intbuf_tab(ni)%GAP_ML,nrtm_l,1,tag_segm)
2765 CALL split_node_rval(intbuf_tab(ni)%GAP_SL,nsn_l,1,tag_node_2ry)
2766 ENDIF
2767
2768C IF(IEDGE/=0.AND.INACTI==5)THEN
2769 IF(iedge/=0)THEN
2770 nconte = ipari_l(88,ni)
2771 multimpe = ipari_l(87,ni)
2772 CALL split_cand_rval(intbuf_tab(ni)%CAND_P,
2773 . ii_stok_e_l,tag_ii_e2e,multimpe,nconte)
2774 CALL split_node_rval(intbuf_tab(ni)%CAND_PS,ii_stok_s_l,4,
2775 . tag_ii_e2s)
2776
2777 END IF
2778
2779 IF(iedge/=0)THEN
2780 CALL split_node_rval(intbuf_tab(ni)%GAPE,nedge_l,1,tag_edge)
2781 IF(igap==3)THEN
2782 CALL split_node_rval(intbuf_tab(ni)%GAP_E_L,nedge_l,1,tag_edge)
2783 ENDIF
2784 CALL split_node_rval(intbuf_tab(ni)%STFE,nedge_l,1,tag_edge)
2785 IF(istif_msdt > 0) CALL split_node_rval(intbuf_tab(ni)%STIFMSDT_EDG,nedge_l,1,tag_edge)
2786 END IF
2787
2788 CALL split_node_rval(intbuf_tab(ni)%GAPN_M,nmn_l,1,
2789 . tag_node_msr) !JD(22)
2790
2791
2792 CALL copy_rval(intbuf_tab(ni)%SECND_FR,nsn_l,6)!JD(27)
2793
2794 !PEN_OLD,PEN_INI for Inacti=5
2795 CALL split_node_rval(intbuf_tab(ni)%PENE_OLD,nsn_l,5,
2796 . tag_node_2ry) !JD(31)
2797
2798 CALL split_node_rval(intbuf_tab(ni)%STIF_OLD,nsn_l,2,
2799 . tag_node_2ry) !JD(31)
2800
2801 CALL copy_rval(intbuf_tab(ni)%TIME_S,nsn_l,2)!JD(33)
2802 CALL split_node_rval(intbuf_tab(ni)%GAP_NM,nrtm_l,4,tag_segm)!JD(34)
2803
2804 IF(intfric>0)THEN
2805 IF(intbuf_fric_tab(intfric)%IORTHFRIC > 0) THEN
2806 CALL split_node_rval(intbuf_tab(ni)%DIR_FRICM,nrtm_l,2,
2807 . tag_segm)
2808 ENDIF
2809 ENDIF
2810
2811 IF(ithk == 1)THEN
2812 CALL split_node_rval(intbuf_tab(ni)%GAPMSAV,nrtm_l,1,tag_segm)
2813 ENDIF
2814
2815 IF(iedge/=0)THEN
2816 nconte = ipari_l(88,ni)
2817 multimpe = ipari_l(87,ni)
2818! call write_i_c(0,1)
2819
2820! CALL SPLIT_CAND_RVAL(INTBUF_TAB(NI)%FTSAVX_E,
2821! . II_STOK_E_L,TAG_II_E2E,MULTIMPE,NCONTE)
2822! CALL SPLIT_CAND_RVAL(INTBUF_TAB(NI)%FTSAVY_E,
2823! . II_STOK_E_L,TAG_II_E2E,MULTIMPE,NCONTE)
2824! CALL SPLIT_CAND_RVAL(INTBUF_TAB(NI)%FTSAVZ_E,
2825! . II_STOK_E_L,TAG_II_E2E,MULTIMPE,NCONTE)
2826
2827! CALL SPLIT_NODE_RVAL(INTBUF_TAB(NI)%FTSAVX_E2S,II_STOK_S_L,4,
2828! . TAG_II_E2S)
2829! CALL split_node_rval(intbuf_tab(ni)%FTSAVY_E2S,ii_stok_s_l,4,
2830! . TAG_II_E2S)
2831! CALL SPLIT_NODE_RVAL(INTBUF_TAB(NI)%FTSAVZ_E2S,II_STOK_S_L,4,
2832! . TAG_II_E2S)
2833 CALL split_cand_rval_dummy(ii_stok_e_l,tag_ii_e2e,multimpe,nconte)
2834 CALL split_cand_rval_dummy(ii_stok_e_l,tag_ii_e2e,multimpe,nconte)
2835 CALL split_cand_rval_dummy(ii_stok_e_l,tag_ii_e2e,multimpe,nconte)
2836 CALL split_node_rval_dummy(ii_stok_s_l,4,tag_ii_e2s)
2837 CALL split_node_rval_dummy(ii_stok_s_l,4,tag_ii_e2s)
2838 CALL split_node_rval_dummy(ii_stok_s_l,4,tag_ii_e2s)
2839
2840
2841 END IF
2842
2843c CALL COPY_RVAL(INTBUF_TAB(NI)%PENM ,4*MULTIMP*NCONT,1)
2844c CALL COPY_RVAL(INTBUF_TAB(NI)%DISTM, MULTIMP*NCONT,1)
2845c CALL COPY_RVAL(INTBUF_TAB(NI)%LBM ,4*MULTIMP*NCONT,1)
2846c CALL COPY_RVAL(INTBUF_TAB(NI)%LCM ,4*MULTIMP*NCONT,1)
2847C----------No need for VTX_BISECTOR in restart file
2848C CALL SPLIT_NODE_RVAL(INTBUF_TAB(NI)%VTX_BISECTOR,NADMSR_L,6,TAG_SM)
2849 DEALLOCATE(tag_node_2ry,tag_segm,tag_segm2,
2850 . tag_node_msr,tag_ii,tag_sm,
2851 . knor2msr,nor2msr,tag_node_2ry2)
2852 DEALLOCATE(tag_edge)
2853 DEALLOCATE(tag_edge2)
2854 IF(iedge /=0) DEALLOCATE(tag_ii_e2s,tag_jj_e2s)
2855 IF(iedge /=0) DEALLOCATE(tag_ii_e2e,tag_jj_e2e)
2856 ENDIF !ENDIF (ALL ITYP)
2857
2858! ----------------------------------
2859! Flush arrays to 0
2860 IF(nindx_nm>0) tag_nm(indx_nm(1:nindx_nm)) = 0
2861 nindx_nm = 0
2862 IF(nindx_scrt>0) tag_scratch(indx_scrt(1:nindx_scrt)) = 0
2863 nindx_scrt = 0
2864 IF(flag_24_25.AND.(nindx_ndlocal24>0)) nodlocal24( indx_ndlocal24(1:nindx_ndlocal24) ) = 0
2865 nindx_ndlocal24 = 0
2866! ----------------------------------
2867
2868 ENDDO !END DO NI= 1, NINTER
2869
2870 IF(flag_24_25) THEN
2871 DEALLOCATE( nodlocal24 )
2872 DEALLOCATE( indx_ndlocal24 )
2873 ENDIF
2874
2875
2876 RETURN
subroutine copyr8(r8_l, r8, n)
Definition copyr8.F:30
#define my_real
Definition cppsort.cpp:32
subroutine split_node_nodloc(tab, dim1, tag, nodlocal)
subroutine split_seg_nodloc_i24(tab, dim1, dim2, tag_seg, nodlocal)
subroutine split_nisub_i7(intbuf_tab, nsn_l, tag_node_2ry, nrtm_l, tag_segm, nisubs, nisubm)
subroutine split_remnode_i24(proc, intbuf_tab, nrtm, nrtm_l, tag_segm2, nremnode, nodlocal, itab, is2id, intercep2, nsne, nodlocal24)
subroutine split_node_ival(tab, dim1, dim2, tag)
subroutine copy_node_nodloc(tab, dim1, nodlocal)
subroutine split_node_nodloc_p0(tab, dim1, dim2, nodlocal)
subroutine split_isegpt_ival(isegpt, nsn_l, dim2, tag_node_2ry, ni, tag_2ry_inv, proc)
subroutine prepare_split_i21(proc, intbuf_tab, ipari, tag_node_2ry, tag_segm, tag_node_2ry2, tag_segs, tag_node_msr, tag_scratch, intercep, ni, intth, nodlocal, msr_l_i21, mndd_i21, nindx_scrt, indx_scrt)
subroutine copy_ival(tab, dim1, dim2)
subroutine prepare_split_i9(proc, intbuf_tab, ipari, tag_node_2ry, tag_node_msr, tag_scratch, tag_ieles, tag_ielem, cep, cel, nindx_scrt, indx_scrt)
subroutine split_node_rval_dummy(dim1, dim2, tag)
subroutine split_node_ival_i25(tab, dimo, dimn, tag, tag2)
subroutine prepare_split_i24(proc, intbuf_tab, ipari, intercep, tag_node_2ry, tag_segm, tag_segm2, tag_nm, tag_node_msr, tag_scratch, nodlocal24, nodlocal, intercep2, numnod_l, tag_nsne, tag_segs, tag_segs2, ni, tag_2ry_inv, iedge4, tag_node_2ry2, tag_ielem, cep, cel, tag_segss, nindx_nm, indx_nm, nindx_scrt, indx_scrt, nindx_ndlocal24, indx_ndlocal24, intercep3)
subroutine copy_rval(tab, dim1, dim2)
subroutine split_remnode_i25_edge(proc, intbuf_tab, nedge, nedge_l, tag_edge, tag_edge2, segloc, itab, numnod_l, nremnode_edg_l)
subroutine split_seg_ival_i20(tab, tab_nlg, dim1, dim2, tag, tag_nlg)
subroutine prepare_split_i25(proc, intbuf_tab, ipari, intercep, tag_node_2ry, tag_segm, tag_segm2, tag_nm, tag_node_msr, tag_scratch, tag_sm, knor2msr, nor2msr, tag_node_2ry2, nindx_nm, indx_nm, nindx_scrt, indx_scrt, nrtm_l)
subroutine split_cand_i11(proc, intbuf_tab, nrts, nrts_l, tag_segm2, tag_segs, ii_stok, multimp, ncont, noint, inacti, tag_scratch, intercep, ni, ipari_l, ii_stok_l, nindx_scrt, indx_scrt)
subroutine w_intbuf_size(intbuf_tab_l)
Definition inter_tools.F:32
subroutine split_cand_i7(proc, intbuf_tab, nsn, nsn_l, tag_segm2, ii_stok, multimp, ncont, noint, inacti, tag_scratch, ii_stok_l, ityp, nindx_scrt, indx_scrt, nodlocal, numnod_l, numnod, numels, len_cep, cep, type18_law151)
subroutine split_cand_ival_i21(tab, ii_stok_l, tag_ii, dim1, dim2)
subroutine split_cand_i24(proc, intbuf_tab, nsn, nsn_l, tag_segm2, ii_stok, multimp, ncont, noint, inacti, tag_scratch, ii_stok_l, intercep2, nindx_scrt, indx_scrt, nodlocal, numnod_l)
subroutine prepare_split_cand(intbuf_tab, tag_segm2, ii_stok, tag_ii)
subroutine copy_ival_igeo(tab, dim1, dim2, offset)
subroutine split_seg_ival_i20_2(tag_seg, dim1, tag_nlg)
subroutine split_remnode_i25_e2s(proc, intbuf_tab, nrtm, nrtm_l, tag_edge, tag_edge2, segloc, itab, numnod_l, nremnode_e2s_l)
subroutine split_seg_ival2(tab, dim1, tag, tag2)
subroutine prepare_split_cand_i20_edge(intbuf_tab, tag_nlins2, ii_stok, tag_ii)
subroutine prepare_split_cand_i25_edge(intbuf_tab, segloc, tag_edge, nedge_l, tag_edge2, nedge, ii_stok_e, ii_stok_e_l, tag_ii_e2e, ii_stok_s, ii_stok_s_l, tag_ii_e2s, proc, flagremnode, iremi2, nrtm, tag_jj_e2e, tag_jj_e2s)
subroutine split_node_ival_i24(tab, dim1, tag, tag2)
subroutine filter_node_nodloc(tab, dim1, tag, nodlocal)
subroutine split_node_rval(tab, dim1, dim2, tag)
subroutine split_remnode_i25(proc, intbuf_tab, nrtm, nrtm_l, tag_segm2, nremnode, nodlocal, nremnor, nsn, nsn_l, tag_node_2ry2, itab, numnod_l)
subroutine prepare_split_i11(proc, intbuf_tab, ipari, tag_node_2ry, tag_segm, tag_segm2, tag_nm, tag_segs, tag_node_msr, tag_scratch, intercep, ni, nindx_nm, indx_nm, nindx_scrt, indx_scrt, tag_segs2)
subroutine split_seg_edge(nsne_l, is2se, tag_nsne, tag_seg2, ni)
subroutine split_adskyn_25(adskyn, iadnor, nadmsr, admsr, nadmsr_l, nrtm_l, tag_segm, tag_sm, intercep)
subroutine split_cand_i25_edge(intbuf_tab, segloc, proc, nin, tag_edge, nedge_l, tag_edge2, nedge, ii_stok_e, ii_stok_e_l, tag_ii_e2e, ii_stok_s, ii_stok_s_l, tag_ii_e2s, tag_jj_e2e, tag_jj_e2s)
subroutine split_nisub_i25(intbuf_tab, nsn_l, tag_node_2ry, nrtm_l, tag_segm, nisubs, nisubm, iedge, nedge, nedge_l, tag_edge, tag_edge2, nisube, proc)
subroutine copy_ival_dummy(dim1, dim2)
subroutine prepare_split_i8(proc, intbuf_tab, ipari, intercep, tag_node_2ry, tag_segm, tag_segm2, tag_nm, tag_node_msr, tag_node_msr2, tag_lmsr, tag_lmsr2, tag_nseg, tag_nseg2, ni, t8, itab, nindx_nm, indx_nm)
subroutine prepare_split_i17(proc, intbuf_tab, ipari, tag_node_2ry, tag_node_msr, cep, cel, igrbric, nsn_l, nme_l)
subroutine split_lbound_i25(nadmsr, nadmsr_l, lbound, tag_sm)
subroutine prepare_split_i2(proc, intbuf_tab, nsn, nmn, nrtm, tag_node_2ry, tag_segm, tag_segm2, tag_irtl, tag, itabi2m, nodlocal, nbddi2m, nir, numnod_l)
subroutine prepare_split_i20(proc, intbuf_tab, ipari, tag_node_2ry, tag_segm, tag_node_msr, tag_segm2, tag_nm, tag_nlins, tag_nlinm, tag_nlins2, tag_nlinm2, tag_nlg, tag_nlg2, tag_scratch, intercep, ipari_l, ni, tag_nsne, tag_nmne, tag_nsve, tag_msre, nindx_nm, indx_nm, nindx_scrt, indx_scrt)
subroutine prepare_split_cand_i21(intbuf_tab, tag_node_2ry2, ii_stok, tag_ii, c_ii, proc)
subroutine split_cand_i20(proc, intbuf_tab, nsn, nsn_l, tag_segm2, ii_stok, multimp, ncont, noint, inacti, tag_scratch, ii_stok_l, ipari_l, ni, nindx_scrt, indx_scrt)
subroutine split_segedge_nodloc_i24(tab, dim1, tag_seg, nodlocal, ni)
subroutine split_cand_i25(proc, intbuf_tab, nsn, nsn_l, tag_segm2, ii_stok, multimp, ncont, noint, inacti, tag_scratch, ii_stok_l, nindx_scrt, indx_scrt)
subroutine split_remnode_i11(proc, intbuf_tab, nrtm, nrtm_l, tag_segm2, nodlocal, itab, numnod_l, tag_segs2, nremnode_l)
subroutine prepare_split_i7(proc, intbuf_tab, ipari, intercep, tag_node_2ry, tag_segm, tag_segm2, tag_nm, tag_node_msr, tag_scratch, ni, cep, multi_fvm, i710xsav, nindx_nm, indx_nm, nindx_scrt, indx_scrt, nodlocal, numnod_l)
subroutine split_cand_i20_edge(proc, intbuf_tab, nlins, nlins_l, tag_nlins2, ii_stoke, multimp, nconte, noint, inacti, tag_scratch, ii_stoke_l, ipari_l, ni, nindx_scrt, indx_scrt)
subroutine split_cand_ival(tab, ii_stok_l, tag_ii, multimp, ncont)
subroutine split_seg_nodloc(tab, dim1, dim2, tag_seg, nodlocal)
subroutine split_ledge_i25(nedge, nedge_l, irectm, nrtm_l, ledge, mseglo, admsr, segloc, tag_sm, nodlocal, tag_edge, itab, proc)
subroutine split_cand_rval_dummy(ii_stok_l, tag_ii, multimp, ncont)
subroutine split_2ry_cand_ival_i21(tab, ii_stok_l, tag_ii, tag_node_2ry2, dim1)
subroutine split_cand_rval(tab, ii_stok_l, tag_ii, multimp, ncont)
subroutine split_remnode_i7(proc, intbuf_tab, nrtm, nrtm_l, tag_segm2, nremnode, nodlocal, itab, numnod_l)
subroutine split_seg_segloc(tab, dim1, dim2, tag_seg, seglocal)
subroutine split_node_ival2(tab, dim1, dim2, tag_segm2, tag_node_2ry)
subroutine w_type8(proc, t8)
subroutine split_seg_ielem(ielem_m, proc_mvoisin, mvoisin, nrtm, nrtm_l, tag_seg, cep, cel, idel_solid, intercep, proc, numels, numelq, numelc, numelt, numelp, numelr, numeltg)
character *2 function nl()
Definition message.F:2354
subroutine write_db(a, n)
Definition write_db.F:140
void write_i_c(int *w, int *len)

◆ w_type8()

subroutine w_type8 ( integer proc,
type(int8_struct_) t8 )

Definition at line 2888 of file split_interfaces.F.

2889C-----------------------------------------------
2890C M o d u l e s
2891C-----------------------------------------------
2892 USE message_mod
2893 USE front_mod
2894 USE intbufdef_mod
2895 USE int8_mod
2896C-----------------------------------------------
2897C I m p l i c i t T y p e s
2898C-----------------------------------------------
2899#include "implicit_f.inc"
2900C-----------------------------------------------
2901C C o m m o n B l o c k s
2902C-----------------------------------------------
2903#include "com01_c.inc"
2904C-----------------------------------------------
2905C D u m m y A r g u m e n t s
2906C-----------------------------------------------
2907 INTEGER :: PROC
2908 TYPE(INT8_STRUCT_) :: T8
2909C-----------------------------------------------
2910
2911C-----------------------------------------------
2912C F u n c t i o n
2913C-----------------------------------------------
2914
2915C-----------------------------------------------
2916C L o c a l V a r i a b l e s
2917C-----------------------------------------------
2918 INTEGER
2919 . I,ITYP,NBS_INTERF,NBM_INTERF,NBT8,
2920 . NI,K,P2
2921
2922 CALL write_i_c(t8%S_COMM,1)
2923C WRITE(6,*) __FILE__,__LINE__,"SCOMM=",T8%S_COMM
2924
2925 DO k=1,t8%S_COMM
2926 CALL write_i_c(t8%SPMD_COMM_PATTERN(k)%NUMLOC,1)
2927 CALL write_i_c(t8%SPMD_COMM_PATTERN(k)%UID,1)
2928
2929 CALL write_i_c(t8%SPMD_COMM_PATTERN(k)%NBCOM,1)
2930 CALL write_i_c(t8%SPMD_COMM_PATTERN(k)%PROCLIST,nspmd)
2931 CALL write_i_c(t8%SPMD_COMM_PATTERN(k)%BUF_INDEX,nspmd)
2932 ENDDO
2933 DO p2=1,nspmd
2934 IF(p2/=proc + 1) THEN
2935 nbs_interf = t8%BUFFER(p2)%NBSECND_TOT
2936 nbm_interf = t8%BUFFER(p2)%NBMAIN
2937C WRITE(6,*) __FILE__,__LINE__,P2,NBM_INTERF,NBS_INTERF
2938
2939 CALL write_i_c(nbm_interf,1)
2940 CALL write_i_c(nbs_interf,1)
2941
2942 !nb secnds per MAIN
2943 IF(nbm_interf > 0) THEN
2944 CALL write_i_c(t8%BUFFER(p2)%NBSECND,nbm_interf)
2945 CALL write_i_c(t8%BUFFER(p2)%MAIN_ID,nbm_interf)
2946 CALL write_i_c(t8%BUFFER(p2)%MAIN_UID,nbm_interf)
2947 ENDIF
2948 ELSE !IF P2 == PROC + 1
2949 nbs_interf = 0
2950 nbm_interf = 0
2951 CALL write_i_c(nbm_interf,1)
2952 CALL write_i_c(nbs_interf,1)
2953 ENDIF
2954 ENDDO
2955 RETURN