23!||====================================================================
42#include "implicit_f.inc"
50 TYPE(intbuf_struct_) INTBUF_TAB_L
54 INTEGER,
DIMENSION(:),
ALLOCATABLE :: INTBUF_SIZE
55 INTEGER N,L_INTBUF_SIZE
57 ALLOCATE(intbuf_size(l_intbuf_size_max))
58 intbuf_size(1:l_intbuf_size_max) = 0
64 intbuf_size(n) = intbuf_tab_l%S_IRECTS
66 intbuf_size(n) = intbuf_tab_l%S_IRECTM
68 intbuf_size(n) = intbuf_tab_l%S_NSV
70 intbuf_size(n) = intbuf_tab_l%S_MSR
72 intbuf_size(n) = intbuf_tab_l%S_IRTLM
74 intbuf_size(n) = intbuf_tab_l%S_IRUPT
76 intbuf_size(n) = intbuf_tab_l%S_INORM
78 intbuf_size(n) = intbuf_tab_l%S_IELEC
80 intbuf_size(n) = intbuf_tab_l%S_IELES
82 intbuf_size(n) = intbuf_tab_l%S_LISUB
86 intbuf_size(n) = intbuf_tab_l%S_ADDSUBS
88 intbuf_size(n) = intbuf_tab_l%S_ADDSUBM
90 intbuf_size(n) = intbuf_tab_l%S_LISUBS
92 intbuf_size(n) = intbuf_tab_l%S_LISUBM
94 intbuf_size(n) = intbuf_tab_l%S_INFLG_SUBS
96 intbuf_size(n) = intbuf_tab_l%S_INFLG_SUBM
98 intbuf_size(n) = intbuf_tab_l%S_ADDSUBE
100 intbuf_size(n) = intbuf_tab_l%S_LISUBE
102 intbuf_size(n) = intbuf_tab_l%S_INFLG_SUBE
104 intbuf_size(n) = intbuf_tab_l%S_MSEGTYP
106 intbuf_size(n) = intbuf_tab_l%S_CAND_E
108 intbuf_size(n) = intbuf_tab_l%S_CAND_N
110 intbuf_size(n) = intbuf_tab_l%S_I_STOK
112 intbuf_size(n) = intbuf_tab_l%S_I_STOK_E
114 intbuf_size(n) = intbuf_tab_l%S_IFPEN
116 intbuf_size(n) = intbuf_tab_l%S_KREMNODE
118 intbuf_size(n) = intbuf_tab_l%S_REMNODE
120 intbuf_size(n) = intbuf_tab_l%S_KREMNOR
122 intbuf_size(n) = intbuf_tab_l%S_REMNOR
124 intbuf_size(n) = intbuf_tab_l%S_ADCCM
126 intbuf_size(n) = intbuf_tab_l%S_CHAIN
128 intbuf_size(n) = intbuf_tab_l%S_NIGE
131 intbuf_size(n) = intbuf_tab_l%S_DAANC6
133 intbuf_size(n) = intbuf_tab_l%S_NBINFLG
135 intbuf_size(n) = intbuf_tab_l%S_MBINFLG
137 intbuf_size(n) = intbuf_tab_l%S_EBINFLG
139 intbuf_size(n) = intbuf_tab_l%S_NLG
141 intbuf_size(n) = intbuf_tab_l%S_ISLINS
143 intbuf_size(n) = intbuf_tab_l%S_ISLINM
145 intbuf_size(n) = intbuf_tab_l%S_IXLINS
147 intbuf_size(n) = intbuf_tab_l%S_IXLINM
149 intbuf_size(n) = intbuf_tab_l%S_NSVL
151 intbuf_size(n) = intbuf_tab_l%S_MSRL
153 intbuf_size(n) = intbuf_tab_l%S_LCAND_N
155 intbuf_size(n) = intbuf_tab_l%S_LCAND_S
157 intbuf_size(n) = intbuf_tab_l%S_ADCCM20
159 intbuf_size(n) = intbuf_tab_l%S_CHAIN20
162 intbuf_size(n) = intbuf_tab_l%S_ILOCS
164 intbuf_size(n) = intbuf_tab_l%S_NSEGM
166 intbuf_size(n) = intbuf_tab_l%S_NRT
169 intbuf_size(n) = intbuf_tab_l%S_MSEGTYP2
172 intbuf_size(n) = intbuf_tab_l%S_IRTLS
174 intbuf_size(n) = intbuf_tab_l%S_ILOCM
176 intbuf_size(n) = intbuf_tab_l%S_IRTLOM
178 intbuf_size(n) = intbuf_tab_l%S_IRTLOS
180 intbuf_size(n) = intbuf_tab_l%S_NSEGS
182 intbuf_size(n) = intbuf_tab_l%S_LNSV
184 intbuf_size(n) = intbuf_tab_l%S_LMSR
187 intbuf_size(n) = intbuf_tab_l%S_IELEM
190 intbuf_size(n) = intbuf_tab_l%S_FCOUNT
193 intbuf_size(n) = intbuf_tab_l%S_KSURF
195 intbuf_size(n) = intbuf_tab_l%S_IMPACT
198 intbuf_size(n) = intbuf_tab_l%S_MSR21
200 intbuf_size(n) = intbuf_tab_l%S_MNDD
202 intbuf_size(n) = intbuf_tab_l%S_MSR_L
205 intbuf_size(n) = intbuf_tab_l%S_MVOISIN
207 intbuf_size(n) = intbuf_tab_l%S_NVOISIN
209 intbuf_size(n) = intbuf_tab_l%S_MSEGLO
211 intbuf_size(n) = intbuf_tab_l%S_MSEGTYP24
213 intbuf_size(n) = intbuf_tab_l%S_ISEADD
215 intbuf_size(n) = intbuf_tab_l%S_ISEDGE
217 intbuf_size(n) = intbuf_tab_l%S_CAND_T
219 intbuf_size(n) = intbuf_tab_l%S_ISEG_PXFEM
221 intbuf_size(n) = intbuf_tab_l%S_ISEG_PLY
223 intbuf_size(n) = intbuf_tab_l%S_ICONT_I
225 intbuf_size(n) = intbuf_tab_l%S_IRTSE
227 intbuf_size(n) = intbuf_tab_l%S_IS2SE
229 intbuf_size(n) = intbuf_tab_l%S_IS2PT
231 intbuf_size(n) = intbuf_tab_l%S_ISPT2
233 intbuf_size(n) = intbuf_tab_l%S_ISEGPT
235 intbuf_size(n) = intbuf_tab_l%S_IS2ID
238 intbuf_size(n) = intbuf_tab_l%S_EVOISIN
240 intbuf_size(n) = intbuf_tab_l%S_ADMSR
242 intbuf_size(n) = intbuf_tab_l%S_LEDGE
244 intbuf_size(n) = intbuf_tab_l%S_LBOUND
246 intbuf_size(n) = intbuf_tab_l%S_ACTNOR
248 intbuf_size(n) = intbuf_tab_l%S_FARM
250 intbuf_size(n) = intbuf_tab_l%S_ADSKYN
252 intbuf_size(n) = intbuf_tab_l%S_IADNOR
254 intbuf_size(n) = intbuf_tab_l%S_ISLIDE
256 intbuf_size(n) = intbuf_tab_l%S_KNOR2MSR
258 intbuf_size(n) = intbuf_tab_l%S_NOR2MSR
260 intbuf_size(n) = intbuf_tab_l%S_CAND_OPT_N
262 intbuf_size(n) = intbuf_tab_l%S_CAND_OPT_E
264 intbuf_size(n) = intbuf_tab_l%S_IF_ADH
266 intbuf_size(n) = intbuf_tab_l%S_CANDM_E2E
268 intbuf_size(n) = intbuf_tab_l%S_CANDS_E2E
270 intbuf_size(n) = intbuf_tab_l%S_CANDM_E2S
272 intbuf_size(n) = intbuf_tab_l%S_CANDS_E2S
274 intbuf_size(n) = intbuf_tab_l%S_IFPEN_E
276 intbuf_size(n) = intbuf_tab_l%S_IFPEN_E2S
279 intbuf_size(n) = intbuf_tab_l%S_IPARTFRICS
281 intbuf_size(n) = intbuf_tab_l%S_IPARTFRICM
283 intbuf_size(n) = intbuf_tab_l%S_IPARTFRIC_E
285 intbuf_size(n) = intbuf_tab_l%S_IELNRTS
287 intbuf_size(n) = intbuf_tab_l%S_ADRECTS
289 intbuf_size(n) = intbuf_tab_l%S_FACNRTS
291 intbuf_size(n) = intbuf_tab_l%S_IREP_FRICM
293 intbuf_size(n) = intbuf_tab_l%S_E2S_ACTNOR
295 intbuf_size(n) = intbuf_tab_l%S_KREMNODE_EDG
297 intbuf_size(n) = intbuf_tab_l%S_REMNODE_EDG
299 intbuf_size(n) = intbuf_tab_l%S_KREMNODE_E2S
301 intbuf_size(n) = intbuf_tab_l%S_REMNODE_E2S
303 intbuf_size(n) = intbuf_tab_l%S_IELEM_M
305 intbuf_size(n) = intbuf_tab_l%S_PROC_MVOISIN
311 intbuf_size(n) = intbuf_tab_l%S_STFAC
313 intbuf_size(n) = intbuf_tab_l%S_VARIABLES
315 intbuf_size(n) = intbuf_tab_l%S_CSTS
317 intbuf_size(n) = intbuf_tab_l%S_DPARA
319 intbuf_size(n) = intbuf_tab_l%S_NMAS
321 intbuf_size(n) = intbuf_tab_l%S_AREAS2
323 intbuf_size(n) = intbuf_tab_l%S_SMAS
325 intbuf_size(n) = intbuf_tab_l%S_SINER
327 intbuf_size(n) = intbuf_tab_l%S_UVAR
329 intbuf_size(n) = intbuf_tab_l%S_XM0
331 intbuf_size(n) = intbuf_tab_l%S_SPENALTY
333 intbuf_size(n) = intbuf_tab_l%S_STFR_PENALTY
335 intbuf_size(n) = intbuf_tab_l%S_SKEW
337 intbuf_size(n) = intbuf_tab_l%S_DSM
339 intbuf_size(n) = intbuf_tab_l%S_FSM
341 intbuf_size(n) = intbuf_tab_l%S_RUPT
343 intbuf_size(n) = intbuf_tab_l%S_FINI
345 intbuf_size(n) = intbuf_tab_l%S_STFNS
347 intbuf_size(n) = intbuf_tab_l%S_STFM
349 intbuf_size(n) = intbuf_tab_l%S_STFS
351 intbuf_size(n) = intbuf_tab_l%S_PENIM
353 intbuf_size(n) = intbuf_tab_l%S_PENIS
355 intbuf_size(n) = intbuf_tab_l%S_STIFMSDT_S
357 intbuf_size(n) = intbuf_tab_l%S_STIFMSDT_M
359 intbuf_size(n) = intbuf_tab_l%S_GAP_M
361 intbuf_size(n) = intbuf_tab_l%S_GAP_S
363 intbuf_size(n) = intbuf_tab_l%S_XSAV
365 intbuf_size(n) = intbuf_tab_l%S_CRIT
367 intbuf_size(n) = intbuf_tab_l%S_FRIC_P
369 intbuf_size(n) = intbuf_tab_l%S_XFILTR
371 intbuf_size(n) = intbuf_tab_l%S_AREAS
373 intbuf_size(n) = intbuf_tab_l%S_AREAM
375 intbuf_size(n) = intbuf_tab_l%S_GAP_ML
377 intbuf_size(n) = intbuf_tab_l%S_GAP_SL
379 intbuf_size(n) = intbuf_tab_l%S_CAND_P
381 intbuf_size(n) = intbuf_tab_l%S_CAND_PS
384 intbuf_size(n) = intbuf_tab_l%S_GAPE
386 intbuf_size(n) = intbuf_tab_l%S_GAP_E_L
388 intbuf_size(n) = intbuf_tab_l%S_STFE
390 intbuf_size(n) = intbuf_tab_l%S_STIFMSDT_EDG
392 intbuf_size(n) = intbuf_tab_l%S_FTSAVX
394 intbuf_size(n) = intbuf_tab_l%S_FTSAVY
396 intbuf_size(n) = intbuf_tab_l%S_FTSAVZ
398 intbuf_size(n) = intbuf_tab_l%S_RIGE
400 intbuf_size(n) = intbuf_tab_l%S_XIGE
402 intbuf_size(n) = intbuf_tab_l%S_VIGE
404 intbuf_size(n) = intbuf_tab_l%S_MASSIGE
407 intbuf_size(n) = intbuf_tab_l%S_CAND_F
410 intbuf_size(n) = intbuf_tab_l%S_XA
412 intbuf_size(n) = intbuf_tab_l%S_VA
414 intbuf_size(n) = intbuf_tab_l%S_STFA
416 intbuf_size(n) = intbuf_tab_l%S_AVX_ANCR
418 intbuf_size(n) = intbuf_tab_l%S_GAP_SH
420 intbuf_size(n) = intbuf_tab_l%S_CAND_FX
422 intbuf_size(n) = intbuf_tab_l%S_CAND_FY
424 intbuf_size(n) = intbuf_tab_l%S_CAND_FZ
426 intbuf_size(n) = intbuf_tab_l%S_GAP_SE
428 intbuf_size(n) = intbuf_tab_l%S_GAP_ME
430 intbuf_size(n) = intbuf_tab_l%S_STF
432 intbuf_size(n) = intbuf_tab_l%S_STFNE
434 intbuf_size(n) = intbuf_tab_l%S_CRITX
436 intbuf_size(n) = intbuf_tab_l%S_PENISE
438 intbuf_size(n) = intbuf_tab_l%S_PENIME
440 intbuf_size(n) = intbuf_tab_l%S_PENIA
442 intbuf_size(n) = intbuf_tab_l%S_ALPHAK
445 intbuf_size(n) = intbuf_tab_l%S_N
448 intbuf_size(n) = intbuf_tab_l%S_CSTM
450 intbuf_size(n) = intbuf_tab_l%S_EE
452 intbuf_size(n) = intbuf_tab_l%S_STFNM
454 intbuf_size(n) = intbuf_tab_l%S_FRICOS
456 intbuf_size(n) = intbuf_tab_l%S_FRICOM
458 intbuf_size(n) = intbuf_tab_l%S_FTSAV
461 intbuf_size(n) = intbuf_tab_l%S_FCONT
463 intbuf_size(n) = intbuf_tab_l%S_FS
465 intbuf_size(n) = intbuf_tab_l%S_FM
467 intbuf_size(n) = intbuf_tab_l%S_RMAS
469 intbuf_size(n) = intbuf_tab_l%S_ANSMX0
472 intbuf_size(n) = intbuf_tab_l%S_T8
474 intbuf_size(n) = intbuf_tab_l%S_GAPN
476 intbuf_size(n) = intbuf_tab_l%S_STF8
479 intbuf_size(n) = intbuf_tab_l%S_CIMP
481 intbuf_size(n) = intbuf_tab_l%S_NIMP
484 intbuf_size(n) = intbuf_tab_l%S_IOLD
486 intbuf_size(n) = intbuf_tab_l%S_HOLD
488 intbuf_size(n) = intbuf_tab_l%S_NOLD
490 intbuf_size(n) = intbuf_tab_l%S_DOLD
493 intbuf_size(n) = intbuf_tab_l%S_KS
495 intbuf_size(n) = intbuf_tab_l%S_KM
497 intbuf_size(n) = intbuf_tab_l%S_FROTS
499 intbuf_size(n) = intbuf_tab_l%S_FROTM
502 intbuf_size(n) = intbuf_tab_l%S_NOD_NORMAL
504 intbuf_size(n) = intbuf_tab_l%S_RCURV
506 intbuf_size(n) = intbuf_tab_l%S_ANGLM
508 intbuf_size(n) = intbuf_tab_l%S_FROT_P
510 intbuf_size(n) = intbuf_tab_l%S_ALPHA0
512 intbuf_size(n) = intbuf_tab_l%S_AS
514 intbuf_size(n) = intbuf_tab_l%S_BS
516 intbuf_size(n) = intbuf_tab_l%S_THKNOD0
519 intbuf_size(n) = intbuf_tab_l%S_GAPN_M
521 intbuf_size(n) = intbuf_tab_l%S_SECND_FR
523 intbuf_size(n) = intbuf_tab_l%S_PENE_OLD
525 intbuf_size(n) = intbuf_tab_l%S_STIF_OLD
527 intbuf_size(n) = intbuf_tab_l%S_TIME_S
529 intbuf_size(n) = intbuf_tab_l%S_GAP_NM
531 intbuf_size(n) = intbuf_tab_l%S_EDGE8L2
533 intbuf_size(n) = intbuf_tab_l%S_NOD_2RY_LGTH
535 intbuf_size(n) = intbuf_tab_l%S_NOD_MAS_LGTH
537 intbuf_size(n) = intbuf_tab_l%S_GAP_N0
539 intbuf_size(n) = intbuf_tab_l%S_DGAP_NM
541 intbuf_size(n) = intbuf_tab_l%S_DGAP_M
543 intbuf_size(n) = intbuf_tab_l%S_DELTA_PMAX_DGAP
545 intbuf_size(n) = intbuf_tab_l%S_XFIC
547 intbuf_size(n) = intbuf_tab_l%S_VFIC
549 intbuf_size(n) = intbuf_tab_l%S_MSFIC
552 intbuf_size(n) = intbuf_tab_l%S_EDGE_BISECTOR
554 intbuf_size(n) = intbuf_tab_l%S_PENM
556 intbuf_size(n) = intbuf_tab_l%S_DISTM
558 intbuf_size(n) = intbuf_tab_l%S_LBM
560 intbuf_size(n) = intbuf_tab_l%S_LCM
562 intbuf_size(n) = intbuf_tab_l%S_VTX_BISECTOR
564 intbuf_size(n) = intbuf_tab_l%S_FTSAVX_E
566 intbuf_size(n) = intbuf_tab_l%S_FTSAVY_E
568 intbuf_size(n) = intbuf_tab_l%S_FTSAVZ_E
570 intbuf_size(n) = intbuf_tab_l%S_FTSAVX_E2S
572 intbuf_size(n) = intbuf_tab_l%S_FTSAVY_E2S
574 intbuf_size(n) = intbuf_tab_l%S_FTSAVZ_E2S
577 intbuf_size(n) = intbuf_tab_l%S_CSTS_BIS
580 intbuf_size(n) = intbuf_tab_l%S_DIR_FRICM
583 intbuf_size(n) = intbuf_tab_l%S_GAPMSAV
585 intbuf_size(n) = intbuf_tab_l%S_E2S_NOD_NORMAL
591 IF(l_intbuf_size > l_intbuf_size_max)
THEN
592 WRITE(istdo,
'(A,/,A)')
593 .
' ** Internal error in routine W_INTBUF_SIZE:',
594 .
' Hard coded value for L_INTBUF_SIZE_MAX needs to be updated'
599 CALL write_i_c(intbuf_size,l_intbuf_size)
601 DEALLOCATE(intbuf_size)
629#include "implicit_f.inc"
633 INTEGER TAB(*),TAG(*),DIM1,DIM2
638 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF
640 ALLOCATE(ibuf(dim1*dim2))
645 ibuf(dim2*(i-1)+j) = tab(dim2*(k-1)+j)
673#include "implicit_f.inc"
677 INTEGER TAB(*),TAG(*),DIM1,NODLOCAL(*)
682 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF
688 ibuf(i) = nodlocal(tab(i))
718#include "implicit_f.inc"
722 INTEGER TAB(*),DIM1,NODLOCAL(*)
727 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF
731 ibuf(i) = nodlocal(tab(i))
743!||--- called by ------------------------------------------------------
747!||=======================
760#include "implicit_f.inc"
764 INTEGER TAB(*),TAG(*),DIM1,NODLOCAL(*)
769 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF
774 ibuf(i) = nodlocal(tab(k))
782!||====================================================================
800#include "implicit_f.inc"
804 INTEGER TAG(*),DIM1,DIM2
812 my_real,
DIMENSION(:),
ALLOCATABLE :: rbuf
814 ALLOCATE(rbuf(dim1*dim2))
818 rbuf(dim2*(i-1)+j) = tab(dim2*(k-1)+j)
845#include "implicit_f.inc"
849 INTEGER TAG(*),DIM1,DIM2
855 my_real,
DIMENSION(:),
ALLOCATABLE :: rbuf
857 ALLOCATE(rbuf(dim1*dim2))
861 rbuf(dim2*(i-1)+j) = 0
890#include "implicit_f.inc"
894 INTEGER TAB(*),TAG_SEG(*),DIM1,DIM2,NODLOCAL(*)
899 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF
901 ALLOCATE(ibuf(dim1*dim2))
906 nod = tab(dim2*(k-1)+j)
908 ibuf(dim2*(i-1)+j) = nodlocal(nod)
920!||--- called by ------------------------------------------------------
936#include "implicit_f.inc"
940 INTEGER TAB(*),TAG_SEG(*),DIM1,DIM2,SEGLOCAL(*)
945 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF
947 ALLOCATE(ibuf(dim1*dim2))
951 glob=tab(dim2*(k-1)+j)
953 IF(seglocal(glob)/=0)
THEN
954 ibuf(dim2*(i-1)+j) = seglocal(glob)
956 ibuf(dim2*(i-1)+j) = -glob
959 ibuf(dim2*(i-1)+j) = 0
989#include "implicit_f.inc"
993 INTEGER TAB(*),DIM1,DIM2
998 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF
1000 ALLOCATE(ibuf(dim1*dim2))
1004 ibuf(dim2*(i-1)+j) = tab(dim2*(i-1)+j)
1031#include "implicit_f.inc"
1040 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF
1042 ALLOCATE(ibuf(dim1*dim2))
1046 ibuf(dim2*(i-1)+j) = 0
1073#include "implicit_f.inc"
1077 INTEGER TAB(*),DIM1,DIM2,OFFSET
1082 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF
1084 ALLOCATE(ibuf(dim1*dim2))
1088 ibuf(dim2*(i-1)+j) = tab(dim2*(i-1)+j+offset)
1115#include "implicit_f.inc"
1127 my_real,
DIMENSION(:),
ALLOCATABLE :: rbuf
1129 ALLOCATE(rbuf(dim1*dim2))
1133 rbuf(dim2*(i-1)+j) = tab(dim2*(i-1)+j)
1161#include "implicit_f.inc"
1165 INTEGER TAB(*),DIM1,DIM2,NODLOCAL(*)
1170 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF
1172 ALLOCATE(ibuf(dim1*dim2))
1175 ibuf(dim2*(i-1)+j) = nodlocal(tab(dim2*(i-1)+j))
1189!||====================================================================
1198#include "implicit_f.inc"
1202 INTEGER TAG_SEGM2(*),TAG_II(*),II_STOK
1204 TYPE(intbuf_struct_) :: INTBUF_TAB
1215 e = intbuf_tab%CAND_E(k)
1216 IF (tag_segm2(e)/=0)
THEN
1243#include "implicit_f.inc"
1247 INTEGER TAB(*),TAG_II(*),II_STOK_L,MULTIMP,NCONT
1252 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF
1254 ALLOCATE(ibuf(multimp*ncont))
1255 ibuf(1:multimp*ncont) = 0
1285#include "implicit_f.inc"
1289 INTEGER TAG_II(*),II_STOK_L,MULTIMP,NCONT
1296 my_real,
DIMENSION(:),
ALLOCATABLE :: rbuf
1298 ALLOCATE(rbuf(multimp*ncont))
1299 rbuf(1:multimp*ncont) = 0
1329#include "implicit_f.inc"
1333 INTEGER TAG_II(*),II_STOK_L,MULTIMP,NCONT
1339 my_real,
DIMENSION(:),
ALLOCATABLE :: rbuf
1341 ALLOCATE(rbuf(multimp*ncont))
1342 rbuf(1:multimp*ncont) = 0
1373 + NRTM, TAG_NODE_2RY, TAG_SEGM, TAG_SEGM2,
1374 + TAG_IRTL, TAG , ITABI2M , NODLOCAL ,
1375 + NBDDI2M , NIR ,NUMNOD_L)
1384#include "implicit_f.inc"
1390 INTEGER,
INTENT(IN) :: NUMNOD_L
1392 INTEGER PROC,TAG_NODE_2RY(*),TAG_SEGM(*),TAG_SEGM2(*),TAG(*),
1393 . TAG_IRTL(*),ITABI2M(*),NBDDI2M,NIR
1394 INTEGER,
DIMENSION(*),
INTENT(IN) :: NODLOCAL
1403 TYPE(intbuf_struct_) :: INTBUF_TAB
1414 . CNRTM_L,CNSN_L,CNMN_L,MY_NODE
1417 my_node = intbuf_tab%NSV(k)
1418 IF( nodlocal( my_node )/=0.AND.nodlocal( my_node )<=numnod_l )
THEN
1419 l = intbuf_tab%IRTLM(k)
1427 cnrtm_l = cnrtm_l + 1
1428 tag_segm(cnrtm_l) = k
1429 tag_segm2(k) = cnrtm_l
1436 my_node = intbuf_tab%NSV(k)
1437 IF( nodlocal( my_node )/=0.AND.nodlocal( my_node )<=numnod_l )
THEN
1439 tag_node_2ry(cnsn_l) = k
1445 n = intbuf_tab%MSR(k)
1446 IF( nodlocal( n )/=0.AND.nodlocal( n )<=numnod_l )
THEN
1447 IF(nbddi2m>0)itabi2m(nodlocal(n)) = 1
1449 tag_irtl(cnmn_l) = k
1461!||=========================
1471#include "implicit_f.inc"
1475 INTEGER TAB(*),TAG_SEGM2(*),(*),DIM1,DIM2
1480 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF
1482 ALLOCATE(IBUF(DIM1*DIM2))
1487 ibuf(dim2*(i-1)+j) = tag_segm2(tab(dim2*(k-1)+j))
1514#include "implicit_f.inc"
1518 INTEGER TAB(*),DIM1,TAG(*),TAG2(*)
1523 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF
1525 ALLOCATE(IBUF(DIM1))
1554 . INTERCEP , TAG_NODE_2RY, TAG_SEGM ,
1555 . TAG_SEGM2, TAG_NM , TAG_NODE_MSR,
1556 . TAG_SCRATCH, NI, CEP, MULTI_FVM,I710XSAV,
1557 . NINDX_NM , INDX_NM,NINDX_SCRT,INDX_SCRT,NODLOCAL,
1569#include "implicit_f.inc"
1573 TYPE() :: INTBUF_TAB
1575 TYPE(MULTI_FVM_STRUCT),
INTENT(IN) :: MULTI_FVM
1577 INTEGER NI,PROC,IPARI(*),
1578 . TAG_NODE_2RY(*),TAG_SEGM(*),TAG_NM(*),(*),
1579 . TAG_SEGM2(*),TAG_SCRATCH(*),CEP(*)
1580 INTEGER,
INTENT(INOUT) :: NINDX_NM,NINDX_SCRT
1581 INTEGER,
DIMENSION(*),
INTENT(INOUT) :: INDX_NM,INDX_SCRT
1582 INTEGER,
DIMENSION(*),
INTENT(IN) :: NODLOCAL
1583 INTEGER,
INTENT(IN) :: NUMNOD_L
1613 . I,J,K,N,N1,N2,N3,N4,E,
1614 . CNSN_L,CNRTM_L,CNMN_L,NSN0,
1617 IF(IPARI(7) == 7) then
1622 nsn0 = nsn - nsn_ige
1632 IF (multi_fvm%IS_USED .AND. abs(ipari(22)) == 7)
THEN
1636 IF(cep(n) == proc .AND.tag_scratch(n)==0)
THEN
1638 tag_node_2ry(cnsn_l) = k
1640 nindx_scrt = nindx_scrt + 1
1641 indx_scrt(nindx_scrt) = n
1647 IF( (nodlocal(n)/=0.AND.nodlocal
1648 + .AND.tag_scratch(n)==0)
THEN
1650 tag_node_2ry(cnsn_l) = k
1652 nindx_scrt = nindx_scrt + 1
1653 indx_scrt(nindx_scrt) = n
1656 DO k=nsn0+1, nsn0 + nsn_ige
1658 IF(tag_scratch(n)==0)
THEN
1660 tag_node_2ry(cnsn_l) = k
1662 nindx_scrt = nindx_scrt + 1
1663 indx_scrt(nindx_scrt) = n
1668#include "vectorize.inc"
1679 IF(intercep%P(k)==proc+1)
THEN
1680 n1 = intbuf_tab%IRECTM(4*(k-1)+1)
1681 n2 = intbuf_tab%IRECTM(4*(k-1)+2)
1682 n3 = intbuf_tab%IRECTM(4*(k-1)+3)
1683 n4 = intbuf_tab%IRECTM(4*(k-1)+4)
1685 cnrtm_l = cnrtm_l + 1
1686 tag_segm(cnrtm_l) = k
1687 tag_segm2(k) = cnrtm_l
1688 IF(tag_nm(n1)==0)
THEN
1693 nindx_nm = nindx_nm + 1
1694 indx_nm(nindx_nm) = n1
1696 IF(tag_nm(n2)==0)
THEN
1699 i710xsav(cnmn_l) = n2
1700 nindx_nm = nindx_nm + 1
1701 indx_nm(nindx_nm) = n2
1703 IF(tag_nm(n3)==0)
THEN
1706 i710xsav(cnmn_l) = n3
1707 nindx_nm = nindx_nm + 1
1708 indx_nm(nindx_nm) = n3
1710 IF(tag_nm(n4)==0)
THEN
1713 i710xsav(cnmn_l) = n4
1714 nindx_nm = nindx_nm + 1
1715 indx_nm(nindx_nm) = n4
1722 n = intbuf_tab%MSR(i)
1723 IF(tag_nm(n)==1)
THEN
1725 tag_node_msr(cnmn_l) = i
1735!||--- calls -----------------------------------------------------
1743 . TAG_SEGM2, II_STOK , MULTIMP, NCONT ,
1744 . NOINT , INACTI , TAG_SCRATCH ,
1745 . II_STOK_L, ITYP ,NINDX_SCRT,INDX_SCRT , NODLOCAL,
1746 . NUMNOD_L,NUMNOD,NUMELS,LEN_CEP,CEP,TYPE18_LAW151)
1755#include "implicit_f.inc"
1759#include "com01_c.inc"
1763 INTEGER PROC,NSN,NSN_L,II_STOK,MULTIMP,NCONT,
1764 . tag_segm2(*),noint,inacti,
1765 . tag_scratch(*) , ii_stok_l, ityp
1766 INTEGER,
INTENT(IN) :: NUMNOD_L
1767 INTEGER,
INTENT(INOUT) :: NINDX_SCRT
1768 INTEGER,
DIMENSION(*),
INTENT(INOUT) :: INDX_SCRT
1769 INTEGER,
DIMENSION(*),
INTENT(IN) :: NODLOCAL
1770 INTEGER,
INTENT(IN) :: NUMNOD
1771 INTEGER,
INTENT(in) :: NUMELS
1772 INTEGER,
INTENT(in) :: LEN_CEP
1773 INTEGER,
DIMENSION(LEN_CEP),
INTENT(in) :: CEP
1774 LOGICAL,
INTENT(in) :: TYPE18_LAW151
1775 TYPE(INTBUF_STRUCT_) :: INTBUF_TAB
1787! nodlocal :
integer, dimension=numnod
1790! nodlocal /= 0
if the element is on
the current domain/processor
1801 INTEGER I,J,K,N,P,E,MULTOK,MSGID,
1802 . SPLIST,C_NSNR,MY_NODE
1803 INTEGER NUMP(NSPMD),WORK(70000)
1805 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
1806 . IBUF_E,IBUF_N,NSNLOCAL,CPULOCAL,CANDR,PLIST,
1809 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: ITRI
1811 ALLOCATE(ibuf_e(multimp*ncont),ibuf_n(multimp*ncont))
1812 ibuf_e(1:multimp*ncont) = 0
1813 ibuf_n(1:multimp*ncont) = 0
1816 IF(ityp==23.OR.inacti==5.OR.inacti==6.OR.inacti==7)
THEN
1818 ALLOCATE(nsnlocal(nsn))
1819 ALLOCATE(cpulocal(nsn))
1820 ALLOCATE(candr(nsn))
1824 ALLOCATE(plist(nspmd))
1827 n = intbuf_tab%NSV(k)
1830 IF(tag_scratch(n)==0)
THEN
1835 IF(type18_law151)
THEN
1839 nsnlocal(k) = nump(p)
1850 IF( nodlocal(n)/=0.AND.nodlocal(n)<=numnod_l )
THEN
1851 nsnlocal(k) = nump(proc+1)
1852 cpulocal(k) = proc+1
1855 nsnlocal(k) = nump(p)
1861 nindx_scrt = nindx_scrt + 1
1862 indx_scrt(nindx_scrt) = n
1868#include "vectorize.inc"
1880 e = intbuf_tab%CAND_E(k)
1881 IF (tag_segm2(e)/=0)
THEN
1882 n = intbuf_tab%CAND_N(k)
1883 IF(tag_scratch(n)==0)
THEN
1885 nindx_scrt = nindx_scrt + 1
1886 indx_scrt(nindx_scrt) = n
1887 my_node = intbuf_tab%NSV(n)
1889 IF(type18_law151)
THEN
1890 IF(cep(my_node)/=proc)
THEN
1895 IF( nodlocal( my_node )==0.OR.nodlocal(my_node)>numnod_l )
THEN
1912#include "vectorize.inc"
1922 ALLOCATE(index(2*c_nsnr))
1923 ALLOCATE(itri(2,c_nsnr))
1927 itri(1,i) = cpulocal(n)
1928 itri(2,i) = nsnlocal(n)
1930 CALL my_orders(0,work,itri,index,c_nsnr,2)
1933 index(c_nsnr+index(i)) = i
1936 index(i)=index(c_nsnr+i)
1943 e = intbuf_tab%CAND_E(k)
1944 IF (tag_segm2(e)/=0)
THEN
1945 ii_stok_l = ii_stok_l + 1
1949 IF(ii_stok_l>multimp*ncont)
THEN
1950 multok= ii_stok_l/ncont
1960 e = intbuf_tab%CAND_E(k)
1961 IF (tag_segm2(e)/=0)
THEN
1962 n = intbuf_tab%CAND_N(k)
1963 ii_stok_l = ii_stok_l + 1
1964 ibuf_e(ii_stok_l)=tag_segm2(e)
1966 my_node = intbuf_tab%NSV(n)
1967 IF( nodlocal( my_node )/=0.AND.nodlocal(my_node)<=numnod_l )
THEN
1968 ibuf_n(ii_stok_l)=nsnlocal(n)
1972 IF(tag_scratch(n)==0)
THEN
1974 ibuf_n(ii_stok_l)=index(c_nsnr)+nsn_l
1975 tag_scratch(n) = index(c_nsnr)+nsn_l
1976 nindx_scrt = nindx_scrt + 1
1977 indx_scrt(nindx_scrt) = n
1979 ibuf_n(ii_stok_l) = tag_scratch(n)
1984 END IF !ii_stok_l>multimp*ncont
1994#include "vectorize.inc"
2001 IF(nsn>0)
DEALLOCATE(nsnlocal,cpulocal,candr)
2002 IF(c_nsnr>0)
DEALLOCATE(index,itri)
2012 DEALLOCATE(ibuf_e,ibuf_n)
2016!||====================================================================
2025 . TAG_SEGM2, NREMNODE , NODLOCAL, ITAB ,NUMNOD_L)
2034#include "implicit_f.inc"
2038#include "com04_c.inc"
2043 . tag_segm2(*),nremnode,nodlocal(*),
2045 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
2047 INTEGER,
INTENT(IN) :: NUMNOD_L
2049 TYPE(INTBUF_STRUCT_) :: INTBUF_TAB
2068 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
2069 . ,IBUF2,NODDEL,NODDELREMOTE
2071 ALLOCATE(SIZ_TMP(NRTM),NODDEL(NUMNOD),
2072 . NODDELREMOTE(NUMNOD))
2074 ALLOCATE(IBUF1(2*(NRTM_L + 1)), IBUF2(NREMNODE))
2075 IBUF1(1:2*(NRTM_L+1)) = 0
2076 ibuf2(1:nremnode) = 0
2081 IF(tag_segm2(k) /= 0)
THEN
2082 siz_tmp(tag_segm2(k)) = intbuf_tab%KREMNODE(k+1)
2083 . -intbuf_tab%KREMNODE(k)
2089 noddel(1:numnod) = 0
2090 noddelremote(1:numnod) = 0
2094 IF(tag_segm2(k) /= 0)
THEN
2096 siz = siz_tmp(tag_segm2(k))
2097 ibuf1(1+2*tag_segm2(k)) =ibuf1(1+2*(tag_segm2(k)-1)) + siz
2099 l=intbuf_tab%KREMNODE(k)
2103 n = intbuf_tab%REMNODE(l+m)
2104 IF( nodlocal(n) /=0.AND.nodlocal(n)<=numnod_l)
THEN
2105 noddel(siz1+1) = nodlocal(n)
2110 n = intbuf_tab%REMNODE(l+m)
2111 IF( nodlocal( n) ==0.OR.nodlocal(n)>numnod_l)
THEN
2112 noddelremote(siz2+1) = itab(n)
2116 l=ibuf1(1+2*(tag_segm2(k)-1))
2118 ibuf2(1+l+m-1)= noddel(m)
2120 ibuf1(1+2*(tag_segm2(k)-1)+1) = l + siz1
2121 l=ibuf1(1+2*(tag_segm2(k)-1)+1)
2123 ibuf2(1+l+m-1) = - noddelremote(m)
2134 DEALLOCATE(siz_tmp,noddel,noddelremote)
2139 DEALLOCATE(ibuf1, ibuf2)
2150 . TAG_EDGE, NEDGE_L, TAG_EDGE2, NEDGE,
2151 . II_STOK_E, II_STOK_E_L, TAG_II_E2E,
2152 . II_STOK_S, II_STOK_S_L, TAG_II_E2S,
2153 . PROC , FLAGREMNODE, IREMI2 ,
2154 . NRTM , TAG_JJ_E2E , TAG_JJ_E2S)
2163#include "implicit_f.inc"
2167#include "assert.inc"
2168#include "param_c.inc"
2172 INTEGER :: NEDGE,NEDGE_L
2173 INTEGER :: TAG_EDGE(NEDGE_L), TAG_EDGE2(NEDGE)
2174 INTEGER :: SEGLOC(*)
2175 INTEGER :: TAG_II_E2E(*)
2176 INTEGER :: TAG_II_E2S(*)
2177 INTEGER :: II_STOK_E, II_STOK_E_L
2178 INTEGER :: II_STOK_S, II_STOK_S_L
2179 INTEGER :: PROC, IREMI2, FLAGREMNODE, NRTM
2180 INTEGER :: TAG_JJ_E2E(*)
2181 INTEGER :: TAG_JJ_E2S(*)
2183 TYPE(INTBUF_STRUCT_) :: INTBUF_TAB
2187 INTEGER :: I,J,K,L,M,N1,N2,JJ
2188 INTEGER :: ,E1,E2,K1,K2
2189 INTEGER :: NB_FREE_EDGES
2190 INTEGER :: NB_INTERNAL_EDGES
2191 INTEGER :: NB_BOUNDARY_EDGES_LOCAL
2192 INTEGER :: NB_BOUNDARY_EDGES_REMOTE
2193 INTEGER,
DIMENSION(:),
ALLOCATABLE :: KCANDMS,ICANDMS,CANDMS
2194 INTEGER,
DIMENSION(:),
ALLOCATABLE :: TAGREMCAND_E2E, TAGREMCAND_E2S
2198 tag_ii_e2s(1:ii_stok_s) = 0
2199 tag_ii_e2e(1:ii_stok_e) = 0
2200 tag_jj_e2s(1:ii_stok_s) = 0
2201 tag_jj_e2e(1:ii_stok_e) = 0
2207 e1=intbuf_tab%LEDGE(1+(i-1)*nledge)
2209 e2=intbuf_tab%LEDGE(3+(i-1)*nledge)
2217 IF( k1 > 0 .AND. k2 == -1)
THEN
2218 nb_free_edges = nb_free_edges + 1
2226 nb_internal_edges = 0
2228 e1=intbuf_tab%LEDGE(1+(i-1)*nledge)
2230 e2=intbuf_tab%LEDGE(3+(i-1)*nledge)
2238 IF( k1 > 0 .AND. k2 > 0)
THEN
2239 nb_internal_edges = nb_internal_edges + 1
2246 nb_boundary_edges_local = 0
2248 e1=intbuf_tab%LEDGE(1+(i-1)*nledge)
2250 e2=intbuf_tab%LEDGE(3+(i-1)*nledge)
2258 IF( k1 > 0 .AND. k2 == 0)
THEN
2259 nb_boundary_edges_local = nb_boundary_edges_local + 1
2265 nb_boundary_edges_remote = 0
2267 e1=intbuf_tab%LEDGE(1+(i-1)*nledge)
2269 e2=intbuf_tab%LEDGE(3+(i-1)*nledge)
2277 IF( k1 == 0 .AND. k2 > 0)
THEN
2278 nb_boundary_edges_remote = nb_boundary_edges_remote + 1
2285 i = nb_free_edges + nb_internal_edges + nb_boundary_edges_remote+nb_boundary_edges_local
2286 assert(i == nedge_l)
2288 tag_edge2(1:nedge) = 0
2290 tag_edge2(tag_edge(i)) = i
2296 ALLOCATE(tagremcand_e2e(ii_stok_e))
2298 tagremcand_e2e(1:ii_stok_e) = 0
2299 IF(iremi2==1.AND.flagremnode==2)
THEN
2302 ALLOCATE(kcandms(nedge+1))
2303 ALLOCATE(icandms(nedge+1))
2304 ALLOCATE(candms(ii_stok_e))
2305 kcandms(1:nedge+1) = 0
2306 icandms(1:nedge+1) = 0
2307 candms(1:ii_stok_e) = 0
2310 e1 = intbuf_tab%CANDM_E2E(i)
2311 kcandms(e1) =kcandms(e1)+1
2315 icandms(i+1) = icandms(i) +kcandms(i)
2317 kcandms(1:nedge+1) = icandms(1:nedge+1)
2320 e1 = intbuf_tab%CANDM_E2E(i)
2321 candms(kcandms(e1)) = i
2322 kcandms(e1) = kcandms(e1) + 1
2326 k = intbuf_tab%KREMNODE_EDG(i)
2327 l = intbuf_tab%KREMNODE_EDG(i+1)-1
2328 DO j=icandms(i),icandms(i+1)-1
2330 IF(intbuf_tab%CANDS_E2E(candms(j))== intbuf_tab%REMNODE_EDG(m))
2331 . tagremcand_e2e(candms(j)) = 1
2335 DEALLOCATE(kcandms,icandms,candms)
2342 e1 =intbuf_tab%CANDM_E2E(i)
2343 e2 =intbuf_tab%CANDS_E2E(i)
2344 IF(tag_edge2( intbuf_tab%CANDM_E2E(i)) > 0)
THEN
2346 id = intbuf_tab%CANDM_E2E(i)
2347 IF( intbuf_tab%LEDGE(9+(
id-1)*nledge) == proc )
THEN
2350 IF(tagremcand_e2e(i)==0)
THEN
2354 ii_stok_e_l = ii_stok_e_l + 1
2355 tag_ii_e2e(ii_stok_e_l) = i
2364 ALLOCATE(tagremcand_e2s(ii_stok_s))
2366 tagremcand_e2s(1:ii_stok_s) = 0
2367 IF(iremi2==1.AND.flagremnode==2.AND.ii_stok_s > 0)
THEN
2371 ALLOCATE(kcandms(nrtm+1))
2372 ALLOCATE(icandms(nrtm+1))
2373 ALLOCATE(candms(ii_stok_s))
2374 kcandms(1:nrtm+1) = 0
2375 icandms(1:nrtm+1) = 0
2376 candms(1:ii_stok_s) = 0
2379 e1 = intbuf_tab%CANDM_E2S(i)
2380 kcandms(e1) =kcandms(e1)+1
2384 icandms(i+1) = icandms(i) +kcandms(i)
2386 kcandms(1:nrtm+1) = icandms(1:nrtm+1)
2389 e1 = intbuf_tab%CANDM_E2S(i)
2390 candms(kcandms(e1)) = i
2391 kcandms(e1) = kcandms(e1) + 1
2395 k = intbuf_tab%KREMNODE_E2S(i)
2396 l = intbuf_tab%KREMNODE_E2S(i+1)-1
2397 DO j=icandms(i),icandms(i+1)-1
2399 IF(intbuf_tab%CANDS_E2S(candms(j))== intbuf_tab%REMNODE_E2S(m))
2405 DEALLOCATE(kcandms,icandms,candms)
2412 IF(segloc( intbuf_tab%CANDM_E2S(i)) > 0)
THEN
2415 IF(tagremcand_e2s(i)==0)
THEN
2417 ii_stok_s_l = ii_stok_s_l + 1
2418 tag_ii_e2s(ii_stok_s_l) = i
2423 DEALLOCATE(tagremcand_e2e,tagremcand_e2s)
2435 . TAG_EDGE, NEDGE_L, TAG_EDGE2, NEDGE,
2436 . II_STOK_E, II_STOK_E_L, TAG_II_E2E,
2437 . II_STOK_S, II_STOK_S_L, TAG_II_E2S,
2438 . TAG_JJ_E2E,TAG_JJ_E2S )
2448#include "implicit_f.inc"
2452#include "param_c.inc"
2453#include "assert.inc"
2458 INTEGER :: NEDGE,NEDGE_L
2459 INTEGER :: TAG_EDGE(NEDGE_L), TAG_EDGE2(NEDGE)
2460 INTEGER :: SEGLOC(*)
2461 INTEGER :: TAG_II_E2E(*)
2462 INTEGER :: TAG_II_E2S(*)
2463 INTEGER :: II_STOK_E, II_STOK_E_L
2464 INTEGER :: II_STOK_S, II_STOK_S_L
2465 INTEGER :: TAG_JJ_E2E(II_STOK_E)
2466 INTEGER :: TAG_JJ_E2S(II_STOK_S)
2469 TYPE(intbuf_struct_) :: INTBUF_TAB
2474 INTEGER :: ID,,E2,K1,K2
2475 INTEGER,
DIMENSION(:),
ALLOCATABLE :: CANDM_E2E,CANDS_E2E
2476 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ,
2481 ALLOCATE(candm_e2e(ii_stok_e_l))
2482 ALLOCATE(cands_e2e(ii_stok_e_l))
2488 DO j = 1, ii_stok_e_l
2494 candm_e2e(id) = tag_edge2(intbuf_tab%CANDM_E2E(i))
2495 IF(intbuf_tab%LEDGE(9+(intbuf_tab%CANDS_E2E(i)-1)*nledge) == proc )
THEN
2497 cands_e2e(id) = tag_edge2(intbuf_tab%CANDS_E2E(i))
2502 cands_e2e(id) = abs(
i25_split_cand(nin,proc+1)%CANDS_E2E(jj)) + nedge_l
2507 ALLOCATE(candm_e2s(ii_stok_s_l))
2508 ALLOCATE(cands_e2s(ii_stok_s_l))
2514 DO j = 1, ii_stok_s_l
2520 candm_e2s(id) = segloc(intbuf_tab%CANDM_E2S(i))
2522 IF(intbuf_tab%LEDGE(9+(intbuf_tab%CANDS_E2S(i)-1)*nledge) == proc )
THEN
2524 cands_e2s(id) = tag_edge2(intbuf_tab%CANDS_E2S(i))
2525 assert(cands_e2s(id) ==
i25_split_cand(nin,proc+1)%CANDS_E2S(jj))
2529 cands_e2s(id) = abs(
i25_split_cand(nin,proc+1)%CANDS_E2S(jj)) + nedge_l
2538 DEALLOCATE(candm_e2e)
2539 DEALLOCATE(cands_e2e)
2540 DEALLOCATE(candm_e2s)
2541 DEALLOCATE(cands_e2s)
2556 . TAG_SEGM2 , NREMNODE , NODLOCAL ,NREMNOR,
2557 . NSN , NSN_L ,TAG_NODE_2RY2,ITAB,
2568#include "implicit_f.inc"
2572#include "com04_c.inc"
2576 INTEGER PROC ,NRTM ,NRTM_L ,NSN ,NSN_L ,NREMNOR ,
2577 . (*) ,NREMNODE ,NODLOCAL(*) ,
2578 . TAG_NODE_2RY2(*),ITAB(*)
2579 INTEGER,
INTENT(IN) :: NUMNOD_L
2581 TYPE(intbuf_struct_) :: INTBUF_TAB
2597 INTEGER I,J,K,SIZ,LL,
2598 . L,SIZ1 ,SIZ2 ,M ,N ,NS
2600 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
2601 . IBUF1,IBUF2,NODDEL,NODDELREMOTE
2602 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
2605 ALLOCATE(siz_tmp(nrtm),noddel(numnod),
2606 . noddelremote(numnod))
2608 ALLOCATE(ibuf1(2*(nrtm_l + 1)), ibuf2(nremnode))
2609 ibuf1(1:2*(nrtm_l+1)) = 0
2610 ibuf2(1:nremnode) = 0
2615 IF(tag_segm2(k) /= 0)
THEN
2616 siz_tmp(tag_segm2(k)) = intbuf_tab%KREMNODE(k+1)
2617 . -intbuf_tab%KREMNODE(k)
2623 noddel(1:numnod) = 0
2624 noddelremote(1:numnod) = 0
2628 IF(tag_segm2(k) /= 0)
THEN
2630 siz = siz_tmp(tag_segm2(k))
2631 ibuf1(1+2*tag_segm2(k)) =ibuf1(1+2*(tag_segm2(k)-1)) + siz
2633 l=intbuf_tab%KREMNODE(k)
2637 n = intbuf_tab%REMNODE(l+m)
2638 IF( nodlocal(n)/=0.AND.nodlocal(n)<=numnod_l )
THEN
2639 noddel(siz1+1) = nodlocal(n)
2644 n = intbuf_tab%REMNODE(l+m)
2645 IF( nodlocal(n)==0.OR.nodlocal(n)>numnod_l )
THEN
2646 noddelremote(siz2+1) = itab(n)
2650 l=ibuf1(1+2*(tag_segm2(k)-1))
2652 ibuf2(1+l+m-1)= noddel(m
2654 ibuf1(1+2*(tag_segm2(k)-1)+1) = l + siz1
2655 l=ibuf1(1+2*(tag_segm2(k)-1)+1)
2657 ibuf2(1+l+m-1) = - noddelremote(m)
2668 DEALLOCATE(siz_tmp,noddel,noddelremote)
2673 DEALLOCATE(ibuf1, ibuf2)
2678 ALLOCATE(ibuf1(nsn_l+1),ibuf2(nremnor))
2680 ALLOCATE(noddel(nrtm))
2682 ibuf1(1:nsn_l+1) = 0
2683 ibuf2(1:nremnor) = 0
2687 ns = tag_node_2ry2(n)
2689 siz = intbuf_tab%KREMNOR(n+1)-intbuf_tab%KREMNOR(n)
2691 l=intbuf_tab%KREMNOR(n)
2695 i = intbuf_tab%REMNOR(l+m)
2696 IF(tag_segm2(i)/=0)
THEN
2697 noddel(siz1+1) = tag_segm2(i)
2704 ibuf2(l+m)= noddel(m)
2706 ibuf1(ns+1) = l +siz1
2720 DEALLOCATE(ibuf1, ibuf2)
2734 . TAG_SEGM , NISUBS, NISUBM )
2743#include "implicit_f.inc"
2747 INTEGER NSN_L,NRTM_L,NISUBS,NISUBM,
2748 . TAG_NODE_2RY(*),TAG_SEGM(*)
2750 TYPE(intbuf_struct_) :: INTBUF_TAB
2754 INTEGER I,J,K,NISUBS_L,NISUBM_L
2756 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF1
2757 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF2
2758 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF3
2759 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF4
2760 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF5
2761 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF6
2763 ALLOCATE(IBUF1(NSN_L+1))
2764 ALLOCATE(IBUF2(NRTM_L+1))
2765 ALLOCATE(ibuf3(nisubs))
2766 ALLOCATE(ibuf4(nisubm))
2767 ALLOCATE(ibuf5(nisubs))
2768 ALLOCATE(ibuf6(nisubm))
2771 ibuf1(1: nsn_l+1) = 0
2772 ibuf2(1: nrtm_l+1) = 0
2773 ibuf3(1: nisubs) = 0
2774 ibuf4(1: nisubm) = 0
2775 ibuf5(1: nisubs) = 0
2776 ibuf6(1: nisubm) = 0
2781 ibuf1(k) = nisubs_l + 1
2783 DO i = intbuf_tab%ADDSUBS(j),intbuf_tab%ADDSUBS(j+1)-1
2784 ibuf3(1+nisubs_l) = intbuf_tab%LISUBS(i)
2785 IF(intbuf_tab%S_INFLG_SUBS > 0) ibuf5(1+nisubs_l) = intbuf_tab%INFLG_SUBS(i)
2786 nisubs_l = nisubs_l + 1
2790 ibuf1(nsn_l+1) = nisubs_l + 1
2794 ibuf2(k) = nisubm_l + 1
2796 DO i = intbuf_tab%ADDSUBM(j),
2797 . intbuf_tab%ADDSUBM(j+1)-1
2798 ibuf4(1+nisubm_l) = intbuf_tab%LISUBM(i)
2799 IF(intbuf_tab%S_INFLG_SUBM > 0) ibuf6(1+nisubm_l) = intbuf_tab%INFLG_SUBM
2800 nisubm_l = nisubm_l + 1
2804 ibuf2(nrtm_l+1) = nisubm_l + 1
2810 IF(intbuf_tab%S_INFLG_SUBS > 0)
CALL write_i_c(ibuf5,nisubs)
2811 IF(intbuf_tab%S_INFLG_SUBM > 0)
CALL write_i_c(ibuf6,nisubm)
2813 DEALLOCATE(ibuf1,ibuf2,ibuf3,ibuf4,ibuf5,ibuf6)
2826 1 TAG_SEGM , NISUBS, NISUBM ,
2843#include "implicit_f.inc"
2847#include "param_c.inc"
2851 INTEGER NSN_L,NRTM_L,NISUBS,NISUBM,
2852 . TAG_NODE_2RY(*),TAG_SEGM(*)
2853 INTEGER,
INTENT(IN) :: IEDGE
2854 INTEGER,
INTENT(IN) :: NEDGE
2855 INTEGER,
INTENT(IN) :: NEDGE_L
2856 INTEGER,
INTENT(IN) :: TAG_EDGE()
2857 INTEGER,
INTENT(IN) :: TAG_EDGE2(NEDGE)
2858 INTEGER,
INTENT(IN) :: NISUBE
2859 INTEGER,
INTENT(IN) ::
2864 TYPE(intbuf_struct_) :: INTBUF_TAB
2868 INTEGER I,,K,NISUBS_L,NISUBM_L,NISUBE_L
2870 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
2871 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF2
2872 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF3
2873 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF4
2874 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF5
2875 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF6
2877 ALLOCATE(IBUF1(NSN_L+1))
2878 ALLOCATE(IBUF2(NRTM_L+1))
2879 ALLOCATE(IBUF3(NISUBS))
2880 ALLOCATE(IBUF4(NISUBM))
2881 ALLOCATE(IBUF5(NISUBS))
2882 ALLOCATE(IBUF6(NISUBM))
2884 IBUF1(1: NSN_L+1) = 0
2885 ibuf2(1: nrtm_l+1) = 0
2886 ibuf3(1: nisubs) = 0
2887 ibuf4(1: nisubm) = 0
2888 ibuf5(1: nisubs) = 0
2889 ibuf6(1: nisubm) = 0
2894 ibuf1(k) = nisubs_l + 1
2896 DO i = intbuf_tab%ADDSUBS(j),intbuf_tab%ADDSUBS(j+1)-1
2897 ibuf3(1+nisubs_l) = intbuf_tab%LISUBS(i)
2898 ibuf5(1+nisubs_l) = intbuf_tab%INFLG_SUBS(i)
2899 nisubs_l = nisubs_l + 1
2903 ibuf1(nsn_l+1) = nisubs_l + 1
2907 ibuf2(k) = nisubm_l + 1
2909 DO i = intbuf_tab%ADDSUBM(j),
2910 . intbuf_tab%ADDSUBM(j+1)-1
2911 ibuf4(1+nisubm_l) = intbuf_tab%LISUBM(i)
2912 ibuf6(1+nisubm_l) = intbuf_tab%INFLG_SUBM(i)
2913 nisubm_l = nisubm_l + 1
2917 ibuf2(nrtm_l+1) = nisubm_l + 1
2926 DEALLOCATE(ibuf1,ibuf2,ibuf3,ibuf4,ibuf5,ibuf6)
2933 ALLOCATE(ibuf1(nedge_l+1))
2934 ALLOCATE(ibuf3(nisube))
2935 ALLOCATE(ibuf5(nisube))
2937 ibuf1(1: nedge_l+1) = 0
2938 ibuf3(1: nisube) = 0
2939 ibuf5(1: nisube) = 0
2944 ibuf1(k) = nisube_l + 1
2946 IF(intbuf_tab%LEDGE(nledge*(j-1)+9) == proc )
THEN
2947 DO i = intbuf_tab%ADDSUBE(j),intbuf_tab%ADDSUBE(j+1)-1
2948 ibuf3(1+nisube_l) = intbuf_tab%LISUBE(i)
2949 ibuf5(1+nisube_l) = intbuf_tab%INFLG_SUBE(i)
2950 nisube_l = nisube_l + 1
2955 ibuf1(nedge_l+1) = nisube_l + 1
2962 assert(nisube == nisube_l)
2977 . NMN , NMN_L , TAG_SCRATCH, TAG_NODE_MSR,
2978 . TAG_NM , NODLOCAL, PROC , NI ,I710XSAV,
2979 . NINDX_SCRT, INDX_SCRT)
2988#include "implicit_f.inc"
2992#include "com04_c.inc"
2996 INTEGER NUMNOD_L,NSN,NSN_L,NMN,
2997 . nmn_l, nod, proc, ni
2998 INTEGER TAG_SCRATCH(*), TAG_NODE_MSR(*),
2999 . tag_nm(*), nodlocal(*)
3000 INTEGER,
INTENT(INOUT) :: NINDX_SCRT
3001 INTEGER,
DIMENSION(*),
INTENT(INOUT) :: INDX_SCRT
3003 TYPE(intbuf_struct_) :: INTBUF_TAB
3013 INTEGER I,J,K,L,N,N2,NSN_L2,NMN_L2,
3016 my_real,
DIMENSION(:),
ALLOCATABLE :: rbuf
3019 siz_xsav = 3*
min(numnod_l,nsn_l+nmn_l)
3020 ALLOCATE(rbuf(siz_xsav))
3021 rbuf(1:siz_xsav) = zero
3025#include "vectorize.inc"
3031 IF (nsn+nmn<=numnod)
THEN
3033 IF (nsn_l+nmn_l<=numnod_l)
THEN
3039 IF(nlocal(n,proc+1)==1.AND.
3040 . tag_scratch(n)==0)
THEN
3041 rbuf(3*(nsn_l2)+1) =
3042 * intbuf_tab%XSAV(3*(k-1)+1)
3043 rbuf(3*(nsn_l2)+2) =
3044 * intbuf_tab%XSAV(3*(k-1)+2)
3045 rbuf(3*(nsn_l2)+3) =
3046 * intbuf_tab%XSAV(3*(k-1)+3)
3049 nindx_scrt = nindx_scrt + 1
3050 indx_scrt(nindx_scrt) = n
3056 n = intbuf_tab%MSR(k)
3057 IF(nlocal(n,proc+1)==1)
THEN
3060 IF (i710xsav(l)==nod)
THEN
3061 rbuf(3*nsn_l+3*(l-1)+1)=
3062 * intbuf_tab%XSAV(3*nsn+3*(k-1)+1)
3063 rbuf(3*nsn_l+3*(l-1)+2)=
3064 * intbuf_tab%XSAV(3*nsn+3*(k-1)+2)
3065 rbuf(3*nsn_l+3*(l-1)+3)=
3066 * intbuf_tab%XSAV(3*nsn+3*(k-1)+3)
3080 n = intbuf_tab%NSV(k)
3081 IF(nlocal(n,proc+1)==1.AND.
3082 . tag_scratch(n)==0)
THEN
3085 * intbuf_tab%XSAV(3*(k-1)+1)
3087 * intbuf_tab%XSAV(3*(k-1)+2)
3089 * intbuf_tab%XSAV(3*(k-1)+3)
3092 nindx_scrt = nindx_scrt + 1
3093 indx_scrt(nindx_scrt) = n
3101 IF(nlocal(n,proc+1)==1)
THEN
3103 IF (tag_nm(n)==1)
THEN
3105 * intbuf_tab%XSAV(3*nsn+3*(k-1)+1)
3107 * intbuf_tab%XSAV(3*nsn+3*(k-1)+2)
3109 * intbuf_tab%XSAV(3*nsn+3*(k-1)+3)
3118 IF(nsn_l+ nmn_l < numnod_l)
THEN
3123 IF(nlocal(n,proc+1)==1)
THEN
3126 * intbuf_tab%XSAV(3*(n-1)+1)
3128 * intbuf_tab%XSAV(3*(n-1)+2)
3130 * intbuf_tab%XSAV(3*(n-1)+3)
3133 nindx_scrt = nindx_scrt + 1
3134 indx_scrt(nindx_scrt) = n
3140 IF(nlocal(n,proc+1)==1)
THEN
3144 tag = tag_node_msr(l)
3145 IF (intbuf_tab%MSR(tag)==nod)
THEN
3146 rbuf(3*nsn_l2+3*(l-1)) =
3147 * intbuf_tab%XSAV(3*(n-1)+1)
3148 rbuf(3*nsn_l2+3*(l-1)+1) =
3149 * intbuf_tab%XSAV(3*(n-1)+2)
3150 rbuf(3*nsn_l2+3*(l-1)+2) =
3151 * intbuf_tab%XSAV(3*(n-1)+3)
3164 IF(nlocal(n,proc+1)==1)
THEN
3166 rbuf(3*(n2-1)+1) = intbuf_tab%XSAV(3*(n-1)+1)
3167 rbuf(3*(n2-1)+2) = intbuf_tab%XSAV(3*(n-1)+2)
3168 rbuf(3*(n2-1)+3) = intbuf_tab%XSAV(3*(n-1)+3)
3171 nindx_scrt = nindx_scrt + 1
3172 indx_scrt(nindx_scrt) = n
3178 IF(nlocal(n,proc+1)==1)
THEN
3179 IF (tag_nm(n)==1)
THEN
3182 * intbuf_tab%XSAV(3*(n-1)+1)
3184 * intbuf_tab%XSAV(3*(n-1)+2)
3186 * intbuf_tab%XSAV(3*(n-1)+3)
3218 . INTERCEP , TAG_NODE_2RY, TAG_SEGM ,
3219 . TAG_SEGM2, TAG_NM , TAG_NODE_MSR,
3220 . TAG_NODE_MSR2,TAG_LMSR,TAG_LMSR2,
3221 . TAG_NSEG,TAG_NSEG2,
3222 . NI,T8,ITAB,NINDX_NM,INDX_NM)
3234#include "implicit_f.inc"
3238#include "com01_c.inc"
3242 TYPE(intbuf_struct_) :: INTBUF_TAB
3243 TYPE(INTERSURFP) :: INTERCEP
3245 INTEGER NI,PROC,IPARI(*),
3246 . TAG_NODE_2RY(*),TAG_SEGM(*),TAG_NM(*),TAG_NODE_MSR(*),
3247 . TAG_NODE_MSR2(*),TAG_LMSR(*),TAG_LMSR2(*),
3248 . TAG_NSEG(*),TAG_NSEG2(*),
3249 . TAG_SEGM2(*),ITAB(*)
3250 INTEGER,
INTENT(INOUT) :: NINDX_NM
3251 INTEGER,
DIMENSION(*),
INTENT(INOUT) :: INDX_NM
3261 . NSN,NRTM,NMN,NMN_L,
3262 . I,J,K,N,N1,N2,N3,N4,P2,
3263 . CNSN_L,CNRTM_L,CNMN_L,CLMSR_L,
3272 n=intbuf_tab%ILOCS(k)
3274 IF(nlocal(n,proc+1)==1)
THEN
3286 n1 = intbuf_tab%IRECTM(4*(k-1)+1)
3287 n2 = intbuf_tab%IRECTM(4*(k-1)+2)
3288 n3 = intbuf_tab%IRECTM(4*(k-1)+3)
3289 n4 = intbuf_tab%IRECTM(4*(k-1)+4)
3291 n1 = intbuf_tab%MSR(n1)
3292 n2 = intbuf_tab%MSR(n2)
3293 n3 = intbuf_tab%MSR(n3)
3294 n4 = intbuf_tab%MSR(n4)
3296 IF(intercep%P(k)==proc+1)
THEN
3297 cnrtm_l = cnrtm_l + 1
3298 tag_segm(cnrtm_l) = k
3299 tag_segm2(k) = cnrtm_l
3300 IF(tag_nm(n1)==0)
THEN
3303 nindx_nm = nindx_nm + 1
3304 indx_nm(nindx_nm) = n1
3306 IF(tag_nm(n2)==0)
THEN
3309 nindx_nm = nindx_nm + 1
3310 indx_nm(nindx_nm) = n2
3312 IF(tag_nm(n3)==0)
THEN
3315 nindx_nm = nindx_nm + 1
3316 indx_nm(nindx_nm) = n3
3318 IF(tag_nm(n4)==0)
THEN
3321 nindx_nm = nindx_nm + 1
3322 indx_nm(nindx_nm) = n4
3346 IF(nmn_l > 0) tag_nseg(1) = 1
3350 n = intbuf_tab%MSR(i)
3352 IF(tag_nm(n)==1)
THEN
3354 tag_node_msr(cnmn_l) = i
3355 tag_node_msr2(i) = cnmn_l
3356 ibegin = intbuf_tab%NSEGM(i)
3357 iend = intbuf_tab%NSEGM(i+1)-1
3359 k = intbuf_tab%LMSR(j)
3360 IF(intercep%P(k)==proc+1)
THEN
3362 tag_nseg(cnmn_l + 1) = tag_nseg(cnmn_l + 1) + 1
3363 clmsr_l = clmsr_l + 1
3364 tag_lmsr(clmsr_l) = j
3365 tag_lmsr2(j) = clmsr_l
3374 tag_nseg(j) = tag_nseg(j) + tag_nseg(j-1)
3380 IF(p2/=proc + 1)
THEN
3381 DO i = 1,t8%BUFFER(p2)%NBMAIN
3382 t8%BUFFER(p2)%MAIN_ID(i) =
3383 . tag_node_msr2(t8%BUFFER(p2)%MAIN_ID(i))
3389 t8%SPMD_COMM_PATTERN(i)%UID = itab(
3390 . intbuf_tab%MSR(t8%SPMD_COMM_PATTERN(i)%NUMLOC
3391 t8%SPMD_COMM_PATTERN(i)%NUMLOC =
3392 . tag_node_msr2(t8%SPMD_COMM_PATTERN(i)%NUMLOC)
3419 . TAG_NODE_2RY, TAG_NODE_MSR, TAG_SCRATCH ,
3420 . TAG_IELES , TAG_IELEM ,
3421 . CEP , CEL ,NINDX_SCRT,INDX_SCRT)
3430#include "implicit_f.inc"
3434 TYPE(intbuf_struct_) :: INTBUF_TAB
3436 INTEGER PROC,IPARI(*),
3437 . tag_node_2ry(*),tag_node_msr(*),
3438 . tag_ieles(*) ,tag_ielem(*),
3439 . tag_scratch(*),cep(*),cel(*)
3440 INTEGER,
INTENT(INOUT) :: NINDX_SCRT
3441 INTEGER,
DIMENSION(*),
INTENT(INOUT) :: INDX_SCRT
3451 . NSN,NRTM,NRTS,NMN,
3452 . I,J,K,N,IE,IE_LOC,PROC2,
3453 . CNSN_L,CNMN_L,CNRTS_L,CNRTM_L
3463 IF(nlocal(n,proc+1)==1.AND.tag_scratch(n)==0)
THEN
3465 tag_node_2ry(cnsn_l) = k
3467 nindx_scrt = nindx_scrt + 1
3468 indx_scrt(nindx_scrt) = n
3477#include "vectorize.inc"
3486 n = intbuf_tab%MSR(i)
3487 IF(nlocal(n,proc+1)==1.AND.tag_scratch(n)==0)
THEN
3489 tag_node_msr(cnmn_l) = i
3502 ie = intbuf_tab%IELES(k)
3504 IF(proc2==proc)
THEN
3509 cnrts_l = cnrts_l + 1
3510 tag_ieles(cnrts_l) = ie_loc
3516 ie = intbuf_tab%IELEM(k)
3518 IF(proc2==proc)
THEN
3523 cnrtm_l = cnrtm_l + 1
3524 tag_ielem(cnrtm_l) = ie_loc
3536!||====================================================================
3546 . TAG_NODE_2RY, TAG_SEGM , TAG_SEGM2 ,
3547 . TAG_NM , TAG_SEGS , TAG_NODE_MSR,
3548 . TAG_SCRATCH , INTERCEP , NI ,NINDX_NM,INDX_NM,
3549 . NINDX_SCRT , INDX_SCRT ,TAG_SEGS2)
3558#include "implicit_f.inc"
3562#include
"com04_c.inc"
3569 INTEGER PROC,TAG_NODE_2RY(*),TAG_SEGM(*),TAG_SEGM2(*),
3570 . tag_nm(*),tag_segs(*),tag_node_msr(*),tag_scratch(*),tag_segs2(*)
3571 INTEGER,
INTENT(INOUT) :: ,NINDX_SCRT
3572 INTEGER,
DIMENSION(*),
INTENT(INOUT) :: INDX_NM,INDX_SCRT
3574 TYPE(intbuf_struct_) :: INTBUF_TAB
3575 TYPE() :: INTERCEP(3,NINTER)
3588 . I,J,K,L,M,N,N1,N2,JJ,
3589 . CNRTM_L,CNRTS_L,CNSN_L,CNMN_L
3599 IF(intercep(2,ni)%P(k)==proc+1)
THEN
3600 cnrts_l = cnrts_l + 1
3601 tag_segs(cnrts_l) = k
3602 tag_segs2(k) = cnrts_l
3609 IF(nlocal(n,proc+1)==1.AND.tag_scratch(n)==0)
THEN
3611 tag_node_2ry(cnsn_l) = k
3613 nindx_scrt = nindx_scrt + 1
3614 indx_scrt(nindx_scrt) = n
3619#include "vectorize.inc"
3628 n1 = intbuf_tab%IRECTM(2*(k-1)+1)
3629 n2 = intbuf_tab%IRECTM(2*(k-1)+2)
3630 IF(intercep(1,ni)%P(k)==proc+1)
THEN
3631 cnrtm_l = cnrtm_l + 1
3632 tag_segm(cnrtm_l) = k
3633 tag_segm2(k) = cnrtm_l
3634 IF(tag_nm(n1)==0)
THEN
3636 nindx_nm = nindx_nm + 1
3637 indx_nm(nindx_nm) = n1
3639 IF(tag_nm(n2)==0)
THEN
3641 nindx_nm = nindx_nm + 1
3642 indx_nm(nindx_nm) = n2
3649 n = intbuf_tab%MSR(i)
3650 IF(tag_nm(n)==1)
THEN
3670 . TAG_SEGM2 , TAG_SEGS , II_STOK, MULTIMP,
3671 . NCONT , NOINT , INACTI ,
3672 . TAG_SCRATCH, INTERCEP , NI , IPARI_L,
3673 . II_STOK_L ,NINDX_SCRT ,INDX_SCRT)
3683#include "implicit_f.inc"
3687#include "com01_c.inc"
3688#include "com04_c.inc"
3689#include "param_c.inc"
3693 INTEGER PROC,NRTS,NRTS_L,II_STOK,MULTIMP,NCONT,
3694 . noint,inacti,ni,ipari_l(npari,ninter),
3695 . tag_segm2(*),tag_segs(*),tag_scratch(*),ii_stok_l
3696 INTEGER,
INTENT(INOUT) :: NINDX_SCRT
3697 INTEGER,
DIMENSION(*),
INTENT(INOUT) :: INDX_SCRT
3699 TYPE(intbuf_struct_) :: INTBUF_TAB
3700 TYPE(INTERSURFP) :: INTERCEP(3,NINTER)
3709 INTEGER I,J,K,L,N,N1,N2,P,E,MULTOK,MSGID,
3711 INTEGER NUMP(NSPMD),WORK(70000)
3713 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
3714 . IBUF_E,IBUF_N,NRTSLOCAL,CPULOCAL,CANDR,PLIST,
3717 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: ITRI
3720 ALLOCATE(IBUF_E(MULTIMP*NCONT),IBUF_N(MULTIMP*NCONT))
3721 IBUF_E(1:MULTIMP*NCONT) = 0
3722 ibuf_n(1:multimp*ncont) = 0
3726 IF(inacti==5.OR.inacti==6.OR.inacti==7)
THEN
3728 ALLOCATE(nrtslocal(nrts))
3729 ALLOCATE(cpulocal(nrts))
3730 ALLOCATE(candr(nrts))
3736 ALLOCATE(plist(nspmd))
3740 n1 = intbuf_tab%IRECTS(2*(k-1)+1)
3741 n2 = intbuf_tab%IRECTS(2*(k-1)+2)
3743 IF(intercep(2,ni)%P(k)==proc+1)
THEN
3744 nump(proc+1) = nump(proc+1) + 1
3745 nrtslocal(k) = nump(proc+1)
3746 cpulocal(k) = proc+1
3755 e = intbuf_tab%CAND_E(k)
3756 IF (tag_segm2(e)/=0)
THEN
3757 n = intbuf_tab%CAND_N(k)
3758 IF(tag_scratch(n)==0)
THEN
3760 nindx_scrt = nindx_scrt + 1
3761 indx_scrt(nindx_scrt) = n
3762 IF(nlocal(intbuf_tab%NSV(n),proc+1)/=1)
THEN
3763 c_nrtsr = c_nrtsr + 1
3771#include "vectorize.inc"
3785 ALLOCATE(index(2*c_nrtsr))
3786 ALLOCATE(itri(2,c_nrtsr))
3790 itri(1,i) = cpulocal(n)
3791 itri(2,i) = nrtslocal(n)
3793 CALL my_orders(0,work,itri,index,c_nrtsr,2)
3796 index(c_nrtsr+index(i)) = i
3799 index(i)=index(c_nrtsr+i)
3806 e = intbuf_tab%CAND_E(k)
3807 IF (tag_segm2(e)/=0)
THEN
3808 ii_stok_l = ii_stok_l + 1
3809 ibuf_e(ii_stok_l)=tag_segm2(e)
3810 l = intbuf_tab%CAND_N(k)
3811 n1 = intbuf_tab%IRECTS(2*(l-1)+1)
3812 n2 = intbuf_tab%IRECTS(2*(l-1)+2)
3813 IF(cpulocal(l) == (proc+1))
THEN
3814 ibuf_n(ii_stok_l) = nrtslocal(l)
3817 IF(tag_scratch(l)==0)
THEN
3818 c_nrtsr =c_nrtsr + 1
3819 ibuf_n(ii_stok_l) = index(c_nrtsr)+nrts_l
3820 tag_scratch(l) = index(c_nrtsr)+nrts_l
3821 nindx_scrt = nindx_scrt + 1
3822 indx_scrt(nindx_scrt) = l
3824 ibuf_n(ii_stok_l) = tag_scratch(l)
3831 IF(nrts>0)
DEALLOCATE(nrtslocal,cpulocal,candr)
3832 IF(c_nrtsr>0)
DEALLOCATE(index,itri)
3834 IF(inacti==5.OR.inacti==6.OR.inacti==7)ipari_l(24,ni)= c_nrtsr
3841 DEALLOCATE(ibuf_e,ibuf_n)
3862 . TAG_NODE_2RY , TAG_NODE_MSR ,
3863 . CEP , CEL , IGRBRIC ,
3874#include "implicit_f.inc"
3878#include "com04_c.inc"
3882 TYPE(intbuf_struct_) :: INTBUF_TAB
3884 INTEGER PROC,IPARI(*),
3885 . tag_node_2ry(*),tag_node_msr(*),
3890 TYPE (GROUP_) ,
DIMENSION(NGRBRIC) :: IGRBRIC
3900 . nsn,nrtm,nrts,nme,
3902 . ige,ign,nad,ead,nas,
3914 ie = igrbric(ign)%ENTITY(k)
3917 tag_node_2ry(cnsn_l) = k
3922 ie = igrbric(ige)%ENTITY(k)
3925 tag_node_msr(cnme_l) = k
3948 . PROC , INTBUF_TAB, IPARI ,
3949 . TAG_NODE_2RY, TAG_SEGM , TAG_NODE_MSR,
3950 . TAG_SEGM2 , TAG_NM , TAG_NLINS,TAG_NLINM,
3951 . TAG_NLINS2 , TAG_NLINM2, TAG_NLG ,TAG_NLG2,
3952 . TAG_SCRATCH , INTERCEP , IPARI_L ,NI ,TAG_NSNE,
3953 . TAG_NMNE , TAG_NSVE , TAG_MSRE ,NINDX_NM,INDX_NM,
3954 . NINDX_SCRT , INDX_SCRT)
3963#include "implicit_f.inc"
3967#include "com04_c.inc"
3968#include "param_c.inc"
3972 TYPE(intbuf_struct_) :: INTBUF_TAB
3975 INTEGER PROC,IPARI(*),NI,
3976 . tag_node_2ry(*),tag_segm(*),tag_nm(*),tag_node_msr(*),
3977 . tag_segm2(*),tag_scratch(*),ipari_l(npari,ninter),
3978 . tag_nlins(*), tag_nlinm(*),tag_nlins2(*), tag_nlinm2(*),
3979 . tag_nlg(*),tag_nsne(*),tag_nmne(*),tag_nsve(*),tag_msre(*),
3981 INTEGER,
INTENT(INOUT) ::NINDX_NM,NINDX_SCRT
3982 INTEGER,
DIMENSION(*),
INTENT(INOUT) ::INDX_NM,INDX_SCRT
3993 . nlins,nlinm,nlinsa,nlinma,nsne,nmne,
3994 . i,j,k,l,n,n1,n2,n3,n4,e,
3995 .
nl,n1l,n2l,n3l,n4l,
3996 . ncont,ncont1,ncont2,
3997 . cnsn_l,cnrtm_l,cnmn_l,cnln_l,
3998 . cnlins_l,cnlinsa_l,cnlinm_l,
3999 . cnlinma_l,cnmne_l ,cnsne_l
4022 IF(intercep(1,ni)%P(k)==proc+1)
THEN
4023 n1l = intbuf_tab%IRECTM(4*(k-1)+1)
4024 n2l = intbuf_tab%IRECTM(4*(k-1)+2)
4025 n3l = intbuf_tab%IRECTM(4*(k-1)+3)
4026 n4l = intbuf_tab%IRECTM(4*(k-1)+4)
4027 n1 = intbuf_tab%NLG(n1l)
4028 n2 = intbuf_tab%NLG(n2l)
4029 n3 = intbuf_tab%NLG(n3l)
4030 n4 = intbuf_tab%NLG(n4l)
4031 cnrtm_l = cnrtm_l + 1
4032 tag_segm(cnrtm_l) = k
4033 tag_segm2(k) = cnrtm_l
4034 IF(tag_nm(n1)==0)
THEN
4036 nindx_nm = nindx_nm + 1
4037 indx_nm(nindx_nm) = n1
4039 IF(tag_nm(n2)==0)
THEN
4041 nindx_nm = nindx_nm + 1
4042 indx_nm(nindx_nm) = n2
4044 IF(tag_nm(n3)==0)
THEN
4046 nindx_nm = nindx_nm + 1
4047 indx_nm(nindx_nm) = n3
4049 IF(tag_nm(n4)==0)
THEN
4051 nindx_nm = nindx_nm + 1
4052 indx_nm(nindx_nm) = n4
4059 n = intbuf_tab%MSR(i)
4060 n1 = intbuf_tab%NLG(n)
4061 IF(tag_nm(n1)==1)
THEN
4063 tag_node_msr(cnmn_l) = i
4070 nl=intbuf_tab%NSV(k)
4071 n =intbuf_tab%NLG(
nl)
4072 IF(nlocal(n,proc+1)==1.AND.tag_scratch(n)==0)
THEN
4074 tag_node_2ry(cnsn_l) = k
4076 nindx_scrt = nindx_scrt + 1
4077 indx_scrt(nindx_scrt) = n
4078 IF(tag_nm(n)==0)
THEN
4081 nindx_nm = nindx_nm + 1
4082 indx_nm(nindx_nm) = n
4088#include "vectorize.inc"
4105 n1l = intbuf_tab%IXLINS(2*(k-1)+1)
4106 n2l = intbuf_tab%IXLINS
4107 n1 = intbuf_tab%NLG(n1l)
4108 n2 = intbuf_tab%NLG(n2l)
4109 IF(intercep(3,ni)%P(k)==proc+1)
THEN
4110 cnlins_l = cnlins_l + 1
4111 tag_nlins(cnlins_l) = k
4112 tag_nlins2(k) = cnlins_l
4114 IF(k<=nlinsa)cnlinsa_l = cnlinsa_l + 1
4115 IF (tag_scratch(n1)==0)
THEN
4116 cnsne_l = cnsne_l + 1
4117 tag_nsne(cnsne_l) = n1
4118 tag_nsve(cnsne_l) = n1l
4120 nindx_scrt = nindx_scrt + 1
4121 indx_scrt(nindx_scrt) = n1
4122 IF(tag_nm(n1)==0)
THEN
4125 nindx_nm = nindx_nm + 1
4126 indx_nm(nindx_nm) = n1
4129 IF (tag_scratch(n2)==0)
THEN
4130 cnsne_l = cnsne_l + 1
4131 tag_nsne(cnsne_l) = n2
4132 tag_nsve(cnsne_l) = n2l
4134 nindx_scrt = nindx_scrt + 1
4135 indx_scrt(nindx_scrt) = n2
4136 IF(tag_nm(n2)==0)
THEN
4139 nindx_nm = nindx_nm + 1
4140 indx_nm(nindx_nm) = n2
4146#include "vectorize.inc"
4148 n1l = intbuf_tab%IXLINS(2*(k-1)+1)
4149 n2l = intbuf_tab%IXLINS(2*(k-1)+2)
4150 n1 = intbuf_tab%NLG(n1l)
4151 n2 = intbuf_tab%NLG(n2l)
4157 n1l = intbuf_tab%IXLINM(2*(k-1)+1)
4158 n2l = intbuf_tab%IXLINM(2*(k-1)+2)
4159 n1 = intbuf_tab%NLG(n1l)
4160 n2 = intbuf_tab%NLG(n2l)
4161 IF(intercep(2,ni)%P(k)==proc+1)
THEN
4162 cnlinm_l = cnlinm_l + 1
4163 tag_nlinm(cnlinm_l) = k
4164 tag_nlinm2(k) = cnlinm_l
4166 IF(k<=nlinma)cnlinma_l = cnlinma_l + 1
4167 IF (tag_scratch(n1)==0)
THEN
4168 cnmne_l = cnmne_l + 1
4169 tag_nmne(cnmne_l) = n1
4170 tag_msre(cnmne_l) = n1l
4172 nindx_scrt = nindx_scrt + 1
4173 indx_scrt(nindx_scrt) = n1
4174 IF(tag_nm(n1)==0)
THEN
4177 nindx_nm = nindx_nm + 1
4178 indx_nm(nindx_nm) = n1
4181 IF (tag_scratch(n2)==0)
THEN
4182 cnmne_l = cnmne_l + 1
4183 tag_nmne(cnmne_l) = n2
4184 tag_msre(cnmne_l) = n2l
4186 nindx_scrt = nindx_scrt + 1
4187 indx_scrt(nindx_scrt) = n2
4188 IF(tag_nm(n2)==0)
THEN
4191 nindx_nm = nindx_nm + 1
4192 indx_nm(nindx_nm) = n2
4199#include "vectorize.inc"
4201 n1l = intbuf_tab%IXLINM(2*(k-1)+1)
4202 n2l = intbuf_tab%IXLINM(2*(k-1)+2)
4203 n1 = intbuf_tab%NLG(n1l)
4204 n2 = intbuf_tab%NLG(n2l)
4215 ncont = nint(nsn*rcont)
4216 IF(cnmn_l>0.AND.nsn>0) ncont1 =
max(ncont,1)
4223 ncont = nint(nsne*rcont)
4224 IF(cnmne_l>0.AND.nsne>0) ncont2 =
max(ncont,1)
4226 ncont =
max(ncont1,ncont2)
4233 i = intbuf_tab%NLG(l)
4234 IF(tag_nm(i) == 1)
THEN
4242 ipari_l(35,ni) = cnln_l
4243 ipari_l(51,ni) = cnlins_l
4244 ipari_l(52,ni) = cnlinm_l
4245 ipari_l(53,ni) = cnlinsa_l
4246 ipari_l(54,ni) = cnlinma_l
4247 ipari_l(55,ni) = cnsne_l
4248 ipari_l(56,ni) = cnmne_l
4265#include "implicit_f.inc"
4269 INTEGER TAG_SEG(*),DIM1,DIM2
4277 my_real,
DIMENSION(:),
ALLOCATABLE :: rbuf
4279 ALLOCATE(rbuf(dim1*dim2))
4283 rbuf(dim2*(i-1)+j) = tab(dim2*(k-1)+j)
4298!||====================================================================
4307#include "implicit_f.inc"
4311 INTEGER TAB(*),TAG(*),TAB_NLG(*),TAG_NLG(*),DIM1,DIM2
4316 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF
4318 ALLOCATE(IBUF(DIM1*DIM2))
4322 n = tab_nlg(tab(dim2*(k-1)+j))
4323 ibuf(dim2*(i-1)+j) = tag_nlg(n)
4348#include "implicit_f.inc"
4352 INTEGER TAG_SEG(*),TAG_NLG(*),
4357 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF
4359 ALLOCATE(IBUF(DIM1))
4362 ibuf(i) = tag_nlg(k)
4384#include "implicit_f.inc"
4388 INTEGER TAG_NLINS2(*),TAG_II(*),II_STOK
4390 TYPE(intbuf_struct_) :: INTBUF_TAB
4401 e = intbuf_tab%LCAND_N(k)
4402 IF (tag_nlins2(e)/=0)
THEN
4422 . TAG_SEGM2 , II_STOK , MULTIMP, NCONT ,
4423 . NOINT , INACTI , TAG_SCRATCH ,
4424 . II_STOK_L , IPARI_L,NI,NINDX_SCRT,INDX_SCRT)
4433#include "implicit_f.inc"
4437#include "com01_c.inc"
4438#include "com04_c.inc"
4439#include "param_c.inc"
4443 INTEGER PROC,NSN,NSN_L,II_STOK,MULTIMP,NCONT,
4444 . TAG_SEGM2(*),NOINT,INACTI,NI,
4445 . TAG_SCRATCH(*) , II_STOK_L, IPARI_L(NPARI,NINTER)
4446 INTEGER,
INTENT(INOUT) ::NINDX_SCRT
4447 INTEGER,
DIMENSION(*),
INTENT(INOUT) ::INDX_SCRT
4449 TYPE(INTBUF_STRUCT_) :: INTBUF_TAB
4458 INTEGER I,J,K,N,P,E,MULTOK,MSGID,
4460 INTEGER NUMP(NSPMD),WORK(70000)
4462 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
4463 . IBUF_E,IBUF_N,NSNLOCAL,CPULOCAL,CANDR,PLIST,
4466 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: ITRI
4468 ALLOCATE(ibuf_e(multimp*ncont),ibuf_n(multimp*ncont))
4470 ibuf_e(1:multimp*ncont) = 0
4471 ibuf_n(1:multimp*ncont) = 0
4474 IF(inacti==5.OR.inacti==6.OR.inacti==7)
THEN
4476 ALLOCATE(nsnlocal(nsn))
4477 ALLOCATE(cpulocal(nsn))
4478 ALLOCATE(candr(nsn))
4483 ALLOCATE(plist(nspmd))
4487 n = intbuf_tab%NSV(k)
4489 IF(tag_scratch(n)==0)
THEN
4496 IF(nlocal(n,proc+1)==1)
THEN
4497 nsnlocal(k) = nump(proc+1)
4498 cpulocal(k) = proc+1
4501 nsnlocal(k) = nump(p)
4505 nindx_scrt = nindx_scrt + 1
4506 indx_scrt(nindx_scrt) = n
4512#include "vectorize.inc"
4524 e = intbuf_tab%CAND_E(k)
4525 IF (tag_segm2(e)/=0)
THEN
4526 n = intbuf_tab%CAND_N(k)
4527 IF(tag_scratch(n)==0)
THEN
4529 nindx_scrt = nindx_scrt + 1
4530 indx_scrt(nindx_scrt) = n
4531 IF(nlocal(intbuf_tab%NSV(n),proc+1)/=1)
THEN
4540#include "vectorize.inc"
4550 ALLOCATE(index(2*c_nsnr))
4551 ALLOCATE(itri(2,c_nsnr))
4555 itri(1,i) = cpulocal(n)
4556 itri(2,i) = nsnlocal(n)
4558 CALL my_orders(0,work,itri,index,c_nsnr,2)
4561 index(c_nsnr+index(i)) = i
4564 index(i)=index(c_nsnr+i)
4571 e = intbuf_tab%CAND_E(k)
4572 IF (tag_segm2(e)/=0)
THEN
4573 ii_stok_l = ii_stok_l + 1
4577 IF(ii_stok_l>multimp*ncont)
THEN
4578 multok= ii_stok_l/ncont
4588 e = intbuf_tab%CAND_E(k)
4589 IF (tag_segm2(e)/=0)
THEN
4590 n = intbuf_tab%CAND_N(k)
4591 ii_stok_l = ii_stok_l + 1
4592 ibuf_e(ii_stok_l)=tag_segm2(e)
4594 IF(nlocal(intbuf_tab%NSV(n),proc+1)==1)
THEN
4595 ibuf_n(ii_stok_l)=nsnlocal(n)
4601 ibuf_n(ii_stok_l)=index(c_nsnr)+nsn_l
4602 tag_scratch(n) = index(c_nsnr)+nsn_l
4603 nindx_scrt = nindx_scrt + 1
4604 indx_scrt(nindx_scrt) = n
4606 ibuf_n(ii_stok_l) = tag_scratch(n)
4614#include "vectorize.inc"
4621 IF(nsn>0)
DEALLOCATE(nsnlocal,cpulocal,candr)
4622 IF(c_nsnr>0)
DEALLOCATE(index,itri)
4624 IF(inacti==5.OR.inacti==6.OR.inacti==7)ipari_l(24,ni)= c_nsnr
4631 DEALLOCATE(ibuf_e,ibuf_n)
4645 . TAG_NLINS2, II_STOKE , MULTIMP, NCONTE ,
4646 . NOINT , INACTI , TAG_SCRATCH ,
4647 . II_STOKE_L, IPARI_L , NI ,NINDX_SCRT ,
4657#include
"implicit_f.inc"
4661#include "com01_c.inc"
4662#include
"com04_c.inc"
4663#include "param_c.inc"
4667 INTEGER ,NLINS,NLINS_L,II_STOKE,MULTIMP,NCONTE,
4668 . TAG_NLINS2(*),NOINT,INACTI,NI,
4669 . TAG_SCRATCH(*) , II_STOKE_L , IPARI_L(NPARI,NINTER)
4670 INTEGER,
INTENT(INOUT) :: NINDX_SCRT
4671 INTEGER,
DIMENSION(*),
INTENT(INOUT) ::INDX_SCRT
4673 TYPE(intbuf_struct_) :: INTBUF_TAB
4682 INTEGER I,J,K,L,N,P,N1L,N2L,,N2,E,MULTOK,MSGID,
4684 INTEGER NUMP(NSPMD),WORK(70000)
4686 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
4687 . ibuf_e,ibuf_n,nrtslocal,cpulocal,candr,plist,
4690 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: ITRI
4692 ALLOCATE(ibuf_e(multimp*nconte),ibuf_n(multimp*nconte))
4693 ibuf_e(1:multimp*nconte) = 0
4694 ibuf_n(1:multimp*nconte) = 0
4697 IF(inacti==5.OR.inacti==6.OR.inacti==7)
THEN
4699 ALLOCATE(nrtslocal(nlins))
4700 ALLOCATE(cpulocal(nlins))
4701 ALLOCATE(candr(nlins))
4707 n1l = intbuf_tab%IXLINS(2*(k-1)+1)
4708 n2l = intbuf_tab%IXLINS(2*(k-1)+2)
4709 n1 = intbuf_tab%NLG(n1l)
4710 n2 = intbuf_tab%NLG(n2l)
4712 IF(nlocal(n1,proc+1)==1.AND.
4713 . nlocal(n2,proc+1)==1)
THEN
4714 nump(proc+1) = nump(proc+1) + 1
4715 nrtslocal(k) = nump(proc+1)
4716 cpulocal(k) = proc+1
4719 IF(p/=proc+1.AND.nlocal(n1,p)==1.AND.
4720 . nlocal(n2,p)==1)
THEN
4721 IF(nrtslocal(k)==0)
THEN
4722 nump(p) = nump(p) + 1
4723 nrtslocal(k) = nump(p)
4735 e = intbuf_tab%LCAND_N(k)
4736 IF (tag_nlins2(e)/=0)
THEN
4737 n = intbuf_tab%LCAND_S(k)
4738 IF(tag_scratch(n)==0)
THEN
4740 nindx_scrt = nindx_scrt + 1
4741 indx_scrt(nindx_scrt) = n
4742 n1l = intbuf_tab%IXLINS(2*(n-1)+1)
4743 n2l = intbuf_tab%IXLINS(2*(n-1)+2)
4744 n1 = intbuf_tab%NLG(n1l)
4745 n2 = intbuf_tab%NLG(n2l)
4746 IF(cpulocal(n)/=proc+1)
THEN
4747 c_nlinsr = c_nlinsr + 1
4755#include "vectorize.inc"
4765 ALLOCATE(index(2*c_nlinsr))
4766 ALLOCATE(itri(2,c_nlinsr))
4770 itri(1,i) = cpulocal(n)
4771 itri(2,i) = nrtslocal(n)
4773 CALL my_orders(0,work,itri,index,c_nlinsr,2)
4776 index(c_nlinsr+index(i)) = i
4779 index(i)=index(c_nlinsr+i)
4787 e = intbuf_tab%LCAND_N(k)
4788 IF (tag_nlins2(e)/=0)
THEN
4789 ii_stoke_l = ii_stoke_l + 1
4790 ibuf_e(ii_stoke_l)=tag_nlins2(e)
4791 l = intbuf_tab%LCAND_N(k)
4792 n1l = intbuf_tab%IXLINS(2*(l-1)+1)
4793 n2l = intbuf_tab%IXLINS(2*(l-1)+2)
4794 n1 = intbuf_tab%IXLINS(n1l)
4795 n2 = intbuf_tab%IXLINS(n2l)
4796 IF(cpulocal(l) == proc+1)
THEN
4797 ibuf_n(ii_stoke_l)=nrtslocal(l)
4800 IF(tag_scratch(l)==0)
THEN
4801 c_nlinsr = c_nlinsr + 1
4802 ibuf_n(ii_stoke_l) = index(c_nlinsr)+nlins_l
4803 tag_scratch(l) = index(c_nlinsr)+nlins_l
4804 nindx_scrt = nindx_scrt + 1
4805 indx_scrt(nindx_scrt) = l
4807 ibuf_n(ii_stoke_l) = tag_scratch(l)
4814#include "vectorize.inc"
4821 IF(nlins>0)
DEALLOCATE(nrtslocal,cpulocal,candr)
4822 IF(c_nlinsr>0)
DEALLOCATE(index,itri)
4824 IF(inacti==5.OR.inacti==6.OR.inacti==7) ipari_l(57,ni)= c_nlinsr
4831 DEALLOCATE(ibuf_e,ibuf_n)
4853 . TAG_NODE_2RY, TAG_SEGM , TAG_NODE_2RY2,
4854 . TAG_SEGS , TAG_NODE_MSR,
4855 . TAG_SCRATCH , INTERCEP , NI, INTTH ,
4856 . NODLOCAL ,MSR_L_I21 ,MNDD_I21 ,
4857 . NINDX_SCRT ,INDX_SCRT)
4866#include "implicit_f.inc"
4870#include "com01_c.inc"
4871#include "com04_c.inc"
4878 INTEGER PROC,TAG_NODE_2RY(*),TAG_SEGM(*),TAG_NODE_2RY2(*),
4879 . tag_segs(*),tag_node_msr(*),tag_scratch(*), nodlocal(*),
4880 . msr_l_i21(*),mndd_i21(*)
4881 INTEGER,
INTENT(INOUT) :: NINDX_SCRT
4882 INTEGER,
DIMENSION(*),
INTENT(INOUT) ::INDX_SCRT
4884 TYPE(intbuf_struct_) :: INTBUF_TAB
4895 INTEGER,
DIMENSION(:),
ALLOCATABLE :: PLIST
4897 . nsn,nrtm,nmn,nrts,intth, nmng,flagloadp
4900 . i,j,k,l,m,n,n1,n2,n3,n4,jj,splist,
4901 . cnrtm_l,cnrts_l,cnsn_l,cnmn_l
4908 flagloadp = ipari(95)
4912 IF(intercep(1,ni)%P(k)==proc+1)
THEN
4913 cnrts_l = cnrts_l + 1
4914 tag_segs(cnrts_l) = k
4921 IF(nlocal(n,proc+1)==1.AND.tag_scratch(n)==0)
THEN
4923 tag_node_2ry(cnsn_l) = k
4924 tag_node_2ry2(k) = cnsn_l
4926 nindx_scrt = nindx_scrt + 1
4927 indx_scrt(nindx_scrt) = n
4932#include "vectorize.inc"
4941 cnrtm_l = cnrtm_l + 1
4942 tag_segm(cnrtm_l) = k
4947 n = intbuf_tab%MSR(i)
4948 IF(nlocal(n,proc+1)==1.AND.tag_scratch(n)==0)
THEN
4950 tag_node_msr(cnmn_l) = i
4952 nindx_scrt = nindx_scrt + 1
4953 indx_scrt(nindx_scrt) = n
4958#include "vectorize.inc"
4966 ALLOCATE(plist(nspmd))
4968 IF (intth == 2.OR.flagloadp > 0)
THEN
4970 n = intbuf_tab%MSR(k)
4971 IF(nlocal(n,proc+1)==1)
THEN
4977 mndd_i21(k) = plist(1)
4983 IF (intth == 2.OR.flagloadp > 0)
THEN
4986 n = intbuf_tab%MSR(i)
4987 IF(nlocal(n,proc+1)==1)
THEN
4988 msr_l_i21(i) = nodlocal(n)
5012#include "implicit_f.inc"
5016 INTEGER TAB(*),TAG_II(*),II_STOK_L,MULTIMP,NCONT,
5022 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF
5024 ALLOCATE(ibuf(dim1*dim2))
5025 ibuf(1:dim1*dim2) = 0
5030 ibuf(dim2*(i-1)+j) = tab(dim2*(k-1)+j)
5056#include "implicit_f.inc"
5060 INTEGER TAB(*),TAG_II(*),II_STOK_L,
5061 . dim1,tag_node_2ry2(*)
5066 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF
5068 ALLOCATE(ibuf(dim1))
5074 ibuf(i) = tag_node_2ry2(n)
5098#include "implicit_f.inc"
5102 INTEGER TAG_NODE_2RY2(*),TAG_II(*),II_STOK, PROC
5104 TYPE(intbuf_struct_) :: INTBUF_TAB
5120 m = intbuf_tab%CAND_N(k)
5121 n = intbuf_tab%NSV(m)
5122 IF (nlocal(n,proc+1)==1)
THEN
5123 IF(abs(intbuf_tab%IRTLM(2*(m-1)+1))==intbuf_tab%CAND_E(k))
THEN
5150 . INTERCEP , TAG_NODE_2RY, TAG_SEGM ,
5151 . TAG_SEGM2, TAG_NM , TAG_NODE_MSR,
5152 . TAG_SCRATCH,NODLOCAL24 ,NODLOCAL,
5154 . NUMNOD_L,TAG_NSNE,TAG_SEGS,TAG_SEGS2,NI,TAG_2RY_INV,
5155 . IEDGE4,TAG_NODE_2RY2,TAG_IELEM,CEP,CEL,TAG_SEGSS,
5156 . NINDX_NM,INDX_NM,NINDX_SCRT,INDX_SCRT,
5157 . NINDX_NDLOCAL24,INDX_NDLOCAL24,INTERCEP3)
5166#include "implicit_f.inc"
5170#include "com04_c.inc"
5174 TYPE(intbuf_struct_) :: INTBUF_TAB
5175 TYPE(INTERSURFP) :: INTERCEP,INTERCEP2,INTERCEP3
5177 INTEGER PROC,INTNITSCHE,IPARI(*),
5178 . TAG_NODE_2RY(*),TAG_SEGM(*),TAG_NM(*),TAG_NODE_MSR(*),
5179 . TAG_SEGM2(*),TAG_SCRATCH(*),NODLOCAL24(*) ,(*),
5180 . numnod_l,tag_nsne(*),tag_segs(*),tag_segs2(*),ni,tag_2ry_inv(*),iedge4,
5181 . tag_node_2ry2(*),tag_ielem(*),cep(*),cel(*),tag_segss(*)
5182 INTEGER,
INTENT(INOUT) ::NINDX_NM,NINDX_SCRT,NINDX_NDLOCAL24
5183 INTEGER,
DIMENSION(*),
INTENT(INOUT) ::INDX_NM,INDX_SCRT
5186! gives the local ID of a element
5201 . NSN,NRTM,NMN,NRTS,
5202 . ,J,K,N,N1,N2,N3,N4,E,IE,IE_LOC,PROC2,
5203 . CNSN_L,CNRTM_L,CNMN_L,NRTSE,NSNE,,NSNE_COUNT,SE1,
5216 intnitsche = ipari(86)
5221 IF( (nodlocal(n)/=0.AND.nodlocal(n)<=numnod_l)
5222 + .AND.tag_scratch(n)==0)
THEN
5224 tag_node_2ry(cnsn_l) = k
5225 IF(iedge4 > 0) tag_2ry_inv(k)=cnsn_l
5227 nindx_scrt = nindx_scrt + 1
5228 indx_scrt(nindx_scrt) = n
5232 DO k=1+nsn0, nsne+nsn0
5233 n=intbuf_tab%NSV(k)-numnod
5234 se1 = intbuf_tab%IS2SE(2*(n-1)+1)
5235 IF (intercep2%P(se1)==proc+1)
THEN
5237 tag_node_2ry(cnsn_l) = k
5238 tag_2ry_inv(k)=cnsn_l
5243#include "vectorize.inc"
5255 n1 = intbuf_tab%IRECTM(4*(k-1)+1)
5256 n2 = intbuf_tab%IRECTM(4*(k-1)+2)
5257 n3 = intbuf_tab%IRECTM(4*(k-1)+3)
5258 n4 = intbuf_tab%IRECTM(4*(k-1)+4)
5259 IF(intercep%P(k)==proc+1)
THEN
5260 cnrtm_l = cnrtm_l + 1
5261 tag_segm(cnrtm_l) = k
5262 tag_segm2(k) = cnrtm_l
5263 IF(tag_nm(n1)==0)
THEN
5265 nindx_nm = nindx_nm + 1
5266 indx_nm(nindx_nm) = n1
5268 IF(tag_nm(n2)==0)
THEN
5270 nindx_nm = nindx_nm + 1
5271 indx_nm(nindx_nm) = n2
5273 IF(tag_nm(n3)==0)
THEN
5275 nindx_nm = nindx_nm + 1
5276 indx_nm(nindx_nm) = n3
5278 IF(tag_nm(n4)==0)
THEN
5280 nindx_nm = nindx_nm + 1
5281 indx_nm(nindx_nm) = n4
5289 IF(tag_nm(n)==1)
THEN
5291 tag_node_msr(cnmn_l) = i
5297 tag_node_2ry2(n) = i
5315 se1 = intbuf_tab%IS2SE(2*(i-1)+1)
5316 IF (intercep2%P(se1)==proc+1)
THEN
5317 nsne_count=nsne_count+1
5318 nodlocal24(numnod+i) = numnod_l + nsne_count
5319 nindx_ndlocal24 = nindx_ndlocal24 + 1
5320 indx_ndlocal24(nindx_ndlocal24) = numnod+i
5321 tag_nsne(nsne_count)=i
5327 IF(intercep2%P(i)==proc+1)
THEN
5328 nrtse_count=nrtse_count+1
5329 tag_segs(nrtse_count)=i
5330 tag_segs2(i)=nrtse_count
5338 IF(intnitsche > 0)
THEN
5343 IF(intercep3%P(k)==proc+1)
THEN
5344 cnrts_l = cnrts_l + 1
5345 tag_segss(cnrts_l) = k
5353 ie = intbuf_tab%IELNRTS(k)
5357 tag_ielem(i) = ie_loc
5384#include "implicit_f.inc"
5388 INTEGER TAB(*),DIM1,TAG(*),TAG2(*)
5393 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF
5395 ALLOCATE(ibuf(dim1))
5429#include "implicit_f.inc"
5433 INTEGER TAB(*),TAG_SEG(*),DIM1,DIM2,NODLOCAL(*)
5438 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF
5440 ALLOCATE(ibuf(dim1*dim2))
5444 n = tab(dim2*(k-1)+j)
5447 ibuf(dim2*(i-1)+j) = nodlocal(n)
5449 ibuf(dim2*(i-1)+j) = -nodlocal(-n)
5451 ibuf(dim2*(i-1)+j) = 0
5475#include "implicit_f.inc"
5479 INTEGER TAB(5,*),TAG_SEG(*),DIM1,DIM2,NODLOCAL(*)
5483 INTEGER I,J,K,N1,N2,N3,N4,NI
5484 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: IBUF
5486 ALLOCATE(ibuf(5,dim1))
5494 ibuf(1,i)=nodlocal(n1)
5495 ibuf(2,i)=nodlocal(n2)
5496 ibuf(3,i)=nodlocal(n3)
5497 ibuf(4,i)=nodlocal(n4)
5520 . TAG_SEGM2, II_STOK , MULTIMP, NCONT ,
5521 . NOINT , INACTI , TAG_SCRATCH ,II_STOK_L,
5522 . INTERCEP2, NINDX_SCRT, INDX_SCRT ,NODLOCAL ,
5533#include "implicit_f.inc"
5537#include "com01_c.inc"
5538#include "com04_c.inc"
5542 INTEGER PROC,NSN,NSN_L,II_STOK,MULTIMP,NCONT,
5543 . tag_segm2(*),noint,inacti,
5544 . tag_scratch(*) , ii_stok_l, ityp
5545 INTEGER,
INTENT(INOUT) :: NINDX_SCRT
5546 INTEGER,
INTENT(IN) :: NUMNOD_L
5547 INTEGER,
DIMENSION(*),
INTENT(INOUT) :: INDX_SCRT
5548 INTEGER,
DIMENSION(*),
INTENT(IN) :: NODLOCAL
5550 TYPE(intbuf_struct_) :: INTBUF_TAB
5551 TYPE(INTERSURFP) :: INTERCEP2
5561! a given
interface ; allocated in
lectur
5577 INTEGER I,J,K,N,P,E,MULTOK,MSGID,
5578 . splist,c_nsnr,nn,se1,my_node
5579 INTEGER NUMP(NSPMD),WORK(70000)
5581 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
5582 . ibuf_e,ibuf_n,nsnlocal,cpulocal,candr,plist,
5585 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: ITRI
5590 ALLOCATE(ibuf_e(multimp*ncont),ibuf_n(multimp*ncont))
5591 ibuf_e(1:multimp*ncont) = 0
5592 ibuf_n(1:multimp*ncont) = 0
5596 ALLOCATE(nsnlocal(nsn))
5597 ALLOCATE(cpulocal(nsn))
5598 ALLOCATE(candr(nsn))
5603 ALLOCATE(plist(nspmd))
5606 n = intbuf_tab%NSV(k)
5608 IF(tag_scratch(n)==0)
THEN
5616 IF( nodlocal( n )/=0.AND.nodlocal(n)<=numnod_l )
THEN
5617 nsnlocal(k) = nump(proc+1)
5618 cpulocal(k) = proc+1
5621 nsnlocal(k) = nump(p)
5627 se1 = intbuf_tab%IS2SE(2*(nn-1)+1)
5628 p = intercep2%P(se1)
5630 nsnlocal(k) = nump(p)
5635 nindx_scrt = nindx_scrt + 1
5636 indx_scrt(nindx_scrt) = n
5642#include "vectorize.inc"
5654 e = intbuf_tab%CAND_E(k)
5655 IF (tag_segm2(e)/=0)
THEN
5656 n = intbuf_tab%CAND_N(k)
5658 IF(tag_scratch(n)==0)
THEN
5660 nindx_scrt = nindx_scrt + 1
5661 indx_scrt(nindx_scrt) = n
5662 IF(intbuf_tab%NSV(n) <= numnod)
THEN
5663 my_node = intbuf_tab%NSV(n)
5664 IF( nodlocal( my_node ) ==0.OR.nodlocal( my_node )>numnod_l )
THEN
5669 nn = intbuf_tab%NSV(n) - numnod
5670 se1 = intbuf_tab%IS2SE(2*(nn-1)+1)
5671 p = intercep2%P(se1)
5672 IF(p/= (proc+1) )
THEN
5682#include "vectorize.inc"
5692 ALLOCATE(index(2*c_nsnr))
5693 ALLOCATE(itri(2,c_nsnr))
5697 itri(1,i) = cpulocal(n)
5698 itri(2,i) = nsnlocal(n)
5700 CALL my_orders(0,work,itri,index,c_nsnr,2)
5703 index(c_nsnr+index(i)) = i
5706 index(i)=index(c_nsnr+i)
5713 e = intbuf_tab%CAND_E(k)
5714 IF (tag_segm2(e)/=0)
THEN
5715 ii_stok_l = ii_stok_l + 1
5719 IF(ii_stok_l>multimp*ncont)
THEN
5720 multok= ii_stok_l/ncont
5730 e = intbuf_tab%CAND_E(k)
5731 IF (tag_segm2(e)/=0)
THEN
5732 n = intbuf_tab%CAND_N(k)
5733 ii_stok_l = ii_stok_l + 1
5734 ibuf_e(ii_stok_l)=tag_segm2(e)
5735 IF (intbuf_tab%NSV(n)>numnod)
THEN
5736 nn = intbuf_tab%NSV(n)-numnod
5737 se1 = intbuf_tab%IS2SE(2*(nn-1)+1)
5739 IF(intercep2%P(se1)==(proc+1)) p=1
5742 my_node = intbuf_tab%NSV(n)
5743 IF( nodlocal( my_node )/=0.AND.nodlocal( my_node )<=numnod_l ) p=1
5747 ibuf_n(ii_stok_l)=nsnlocal(n)
5751 IF(tag_scratch(n)==0)
THEN
5753 ibuf_n(ii_stok_l)=index(c_nsnr)+nsn_l
5754 tag_scratch(n) = index(c_nsnr)+nsn_l
5756 indx_scrt(nindx_scrt) = n
5758 ibuf_n(ii_stok_l) = tag_scratch(n)
5766#include "vectorize.inc"
5773 IF(nsn>0)
DEALLOCATE(nsnlocal,cpulocal,candr)
5774 IF(c_nsnr>0)
DEALLOCATE(index,itri)
5780 DEALLOCATE(ibuf_e,ibuf_n)
5795#include "implicit_f.inc"
5799 INTEGER IS2SE(2,*),NSNE_L,TAG_NSNE(*),TAG_SEG2(*)
5803 INTEGER I,SEG,SE1,SE2,NI
5804 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: IBUF
5806 ALLOCATE(ibuf(2,nsne_l))
5811 ibuf(1,i)=tag_seg2(se1)
5814 ibuf(2,i)=tag_seg2(se2)
5850#include "implicit_f.inc"
5854 INTEGER TAB(*),DIMO,DIMN,TAG(*),TAG2(*)
5859 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF
5861 ALLOCATE(ibuf(dimn))
5869 ibuf(i) = tag2(n)+dimn
5876 ibuf(i) = -tag2(-n)-dimn
5900 . INTERCEP , TAG_NODE_2RY , TAG_SEGM ,
5901 . TAG_SEGM2 , TAG_NM , TAG_NODE_MSR ,
5902 . TAG_SCRATCH, TAG_SM ,KNOR2MSR ,
5903 . NOR2MSR ,TAG_NODE_2RY2,NINDX_NM ,
5904 . INDX_NM ,NINDX_SCRT ,INDX_SCRT ,
5914#include "implicit_f.inc"
5918 TYPE(intbuf_struct_) :: INTBUF_TAB
5921 INTEGER PROC,IPARI(*),
5922 . TAG_NODE_2RY(*),TAG_SEGM(*),TAG_NM(*),TAG_NODE_MSR(*),
5923 . TAG_SEGM2(*),TAG_SCRATCH(*),TAG_SM(*),
5924 . KNOR2MSR(*), NOR2MSR(*), TAG_NODE_2RY2(*)
5925 INTEGER,
INTENT(INOUT) :: NINDX_NM,NINDX_SCRT
5926 INTEGER,
DIMENSION(*),
INTENT(INOUT) :: INDX_NM,INDX_SCRT
5937 . I,J,K,L,N,N1,N2,N3,N4,E,
5938 . CNSN_L,CNRTM_L,CNMN_L,NADMSR_L,NRTM_L
5947 IF(nlocal(n,proc+1)==1.AND.tag_scratch(n)==0)
THEN
5949 tag_node_2ry(cnsn_l) = k
5951 tag_node_2ry2(k) = cnsn_l
5952 nindx_scrt = nindx_scrt + 1
5953 indx_scrt(nindx_scrt) = n
5958#include "vectorize.inc"
5968 n1 = intbuf_tab%IRECTM(4*(k-1)+1)
5969 n2 = intbuf_tab%IRECTM(4*(k-1)+2)
5970 n3 = intbuf_tab%IRECTM(4*(k-1)+3)
5971 n4 = intbuf_tab%IRECTM(4*(k-1)+4)
5972 IF(intercep%P(k)==proc+1)
THEN
5973 cnrtm_l = cnrtm_l + 1
5974 tag_segm(cnrtm_l) = k
5975 tag_segm2(k) = cnrtm_l
5976 IF(tag_nm(n1)==0)
THEN
5978 nindx_nm = nindx_nm + 1
5979 indx_nm(nindx_nm) = n1
5981 IF(tag_nm(n2)==0)
THEN
5983 nindx_nm = nindx_nm + 1
5984 indx_nm(nindx_nm) = n2
5986 IF(tag_nm(n3)==0)
THEN
5988 nindx_nm = nindx_nm + 1
5989 indx_nm(nindx_nm) = n3
5991 IF(tag_nm(n4)==0)
THEN
5993 nindx_nm = nindx_nm + 1
5994 indx_nm(nindx_nm) = n4
6002 n1 = intbuf_tab%ADMSR(4*(k-1)+1)
6003 n2 = intbuf_tab%ADMSR(4*(k-1)+2)
6004 n3 = intbuf_tab%ADMSR(4*(k-1)+3)
6005 n4 = intbuf_tab%ADMSR(4*(k-1)+4)
6006 IF(intercep%P(k)==proc+1)
THEN
6007 IF(tag_sm(n1)==0)
THEN
6011 IF(tag_sm(n2)==0)
THEN
6015 IF(tag_sm(n3)==0)
THEN
6019 IF(tag_sm(n4)==0)
THEN
6028 n = intbuf_tab%MSR(i)
6029 IF(tag_nm(n)==1)
THEN
6031 tag_node_msr(cnmn_l) = i
6039 IF(intercep%P(i)==proc+1)
THEN
6041 n = tag_sm(intbuf_tab%ADMSR(4*(i-1)+k))
6042 knor2msr(n) = knor2msr(n) + 1
6044 IF(intbuf_tab%IRECTM(4*(i-1)+3)/=intbuf_tab%IRECTM(4*(i-1)+4))
THEN
6045 n = tag_sm(intbuf_tab%ADMSR(4*(i-1)+4))
6046 knor2msr(n) = knor2msr(n) + 1
6052 knor2msr(i+1) = knor2msr(i+1) + knor2msr(i)
6056 knor2msr(i+1)=knor2msr(i)
6063 IF(intercep%P(i)==proc+1)
THEN
6065 n = tag_sm(intbuf_tab%ADMSR(4*(i-1)+k))
6066 knor2msr(n) = knor2msr(n) + 1
6067 nor2msr(knor2msr(n)) = tag_segm2(i)
6069 IF(intbuf_tab%IRECTM(4*(i-1)+3)/=intbuf_tab%IRECTM(4*(i-1)+4))
THEN
6070 n = tag_sm(intbuf_tab%ADMSR(4*(i-1)+4))
6071 knor2msr(n) = knor2msr(n) + 1
6072 nor2msr(knor2msr(n)) = tag_segm2(i)
6078 knor2msr(i+1)=knor2msr(i)
6112#include "implicit_f.inc"
6116#include "param_c.inc"
6117#include "assert.inc"
6121 INTEGER NEDGE, NEDGE_L, NRTM_L, LEDGE(NLEDGE,*), MSEGLO(*), SEGLOC(*), NODLOCAL(*)
6123 INTEGER :: TAG_EDGE(NEDGE_L)
6124 INTEGER,
INTENT(IN) :: ITAB(*)
6125 INTEGER,
INTENT(IN) :: IRECTM(4,*)
6126 INTEGER,
INTENT(IN) :: ADMSR(4,*)
6127 INTEGER,
INTENT(IN) :: TAG_SM(*)
6132 INTEGER :: I,E1,K1,,K2,CMPT
6134 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF
6135 INTEGER :: NB_FREE_EDGES
6136 INTEGER :: NB_INTERNAL_EDGES
6138 INTEGER :: NB_BOUNDARY_EDGES_REMOTE
6139 INTEGER :: IAS,JAS,IS,N1,N2,I1,I2
6141 ALLOCATE(ibuf(nledge*nedge_l))
6158 IF( k1 > 0 .AND. k2 == -1)
THEN
6159 nb_free_edges = nb_free_edges + 1
6163 assert(ledge(9,i) == proc)
6164 assert(ledge(10,i) == id)
6172 ibuf(cmpt) = ledge(2,i)
6178 ibuf(cmpt) = nodlocal(ledge(5,i))
6180 ibuf(cmpt) = nodlocal(ledge(6,i))
6182 ibuf(cmpt) = ledge(7,i)
6193 IF(irectm(jas,ias)==n1.AND.irectm(mod(jas,4)+1,ias)==n2)
THEN
6195 ELSEIF(irectm(jas,ias)==n2.AND.irectm(mod(jas,4)+1,ias)==n1)
THEN
6204 i2=admsr(mod(jas,4)+1,ias)
6207 i1=admsr(mod(jas,4)+1,ias)
6210 ibuf(cmpt) = tag_sm(i1)
6212 ibuf(cmpt) = tag_sm(i2)
6213 assert(tag_sm(i1) > 0)
6214 assert(tag_sm(i2) > 0)
6226 nb_internal_edges = 0
6238 IF( k1 > 0 .AND. k2 > 0)
THEN
6239 nb_internal_edges = nb_internal_edges + 1
6244 assert(ledge(9,i) == proc)
6245 assert(ledge(10,i) == id)
6253 ibuf(cmpt) = ledge(2,i)
6257 ibuf(cmpt) = ledge(4,i)
6259 ibuf(cmpt) = nodlocal(ledge(5,i))
6261 ibuf(cmpt) = nodlocal(ledge(6,i))
6263 ibuf(cmpt) = ledge(7,i)
6274 IF(irectm(jas,ias)==n1.AND.irectm(mod(jas,4)+1,ias)==n2)
THEN
6276 ELSEIF(irectm(jas,ias)==n2.AND.irectm(mod(jas,4)+1,ias)==n1)
THEN
6284 i2=admsr(mod(jas,4)+1,ias)
6287 i1=admsr(mod(jas,4)+1,ias)
6290 ibuf(cmpt) = tag_sm(i1)
6292 ibuf(cmpt) = tag_sm(i2)
6293 assert(tag_sm(i1) > 0)
6294 assert(tag_sm(i2) > 0)
6300 IF(irectm(jas,ias)==n1.AND.irectm(mod(jas,4)+1,ias)==n2)
THEN
6302 ELSEIF(irectm(jas,ias)==n2.AND.irectm(mod(jas,4)+1,ias)==n1)
THEN
6311 i2=admsr(mod(jas,4)+1,ias)
6314 i1=admsr(mod(jas,4)+1,ias)
6317 ibuf(cmpt) = tag_sm(i1)
6319 ibuf(cmpt) = tag_sm(i2)
6320 assert(tag_sm(i1) > 0)
6321 assert(tag_sm(i2) > 0)
6328 nb_boundary_edges_local = 0
6340 IF( k1 > 0 .AND. k2 == 0)
THEN
6341 nb_boundary_edges_local = nb_boundary_edges_local + 1
6344 assert(ledge(9,i) == proc)
6353 ibuf(cmpt) = ledge(2,i)
6359 ibuf(cmpt) = ledge(4,i)
6362 ibuf(cmpt) = nodlocal(ledge(5,i))
6364 ibuf(cmpt) = nodlocal(ledge(6,i))
6366 ibuf(cmpt) = ledge(7,i)
6377 IF(irectm(jas,ias)==n1.AND.irectm(mod(jas,4)+1,ias)==n2)
THEN
6379 ELSEIF(irectm(jas,ias)==n2.AND.irectm(mod(jas,4)+1,ias)==n1)
THEN
6387 i2=admsr(mod(jas,4)+1,ias)
6390 i1=admsr(mod(jas,4)+1,ias)
6393 ibuf(cmpt) = tag_sm(i1)
6395 ibuf(cmpt) = tag_sm(i2)
6396 assert(tag_sm(i1) > 0)
6397 assert(tag_sm(i2) > 0)
6403 IF(irectm(jas,ias)==n1.AND.irectm(mod(jas,4)+1,ias)==n2)
THEN
6405 ELSEIF(irectm(jas,ias)==n2.AND.irectm(mod(jas,4)+1,ias)==n1)
THEN
6413 i2=admsr(mod(jas,4)+1,ias)
6416 i1=admsr(mod(jas,4)+1,ias)
6419 ibuf(cmpt) = tag_sm(i1)
6421 ibuf(cmpt) = tag_sm(i2)
6422 assert(tag_sm(i1) > 0)
6423 assert(tag_sm(i2) > 0)
6428 nb_boundary_edges_remote = 0
6440 IF( k1 == 0 .AND. k2 > 0)
THEN
6441 nb_boundary_edges_remote = nb_boundary_edges_remote + 1
6449 ibuf(cmpt) = ledge(4,i)
6454 ibuf(cmpt) = ledge(2,i)
6457 ibuf(cmpt) = nodlocal(ledge(5,i))
6459 ibuf(cmpt) = nodlocal(ledge(6,i))
6461 ibuf(cmpt) = ledge(7,i)
6472 IF(irectm(jas,ias)==n1.AND.irectm(mod(jas,4)+1,ias)==n2)
THEN
6474 ELSEIF(irectm(jas,ias)==n2.AND.irectm(mod(jas,4)+1,ias)==n1)
THEN
6482 i2=admsr(mod(jas,4)+1,ias)
6485 i1=admsr(mod(jas,4)+1,ias)
6488 ibuf(cmpt) = tag_sm(i1)
6490 ibuf(cmpt) = tag_sm(i2)
6491 assert(tag_sm(i1) > 0)
6492 assert(tag_sm(i2) > 0)
6498 IF(irectm(jas,ias)==n1.AND.irectm(mod(jas,4)+1,ias)==n2)
THEN
6500 ELSEIF(irectm(jas,ias)==n2.AND.irectm(mod(jas,4)+1,ias)==n1)
THEN
6508 i2=admsr(mod(jas,4)+1,ias)
6511 i1=admsr(mod(jas,4)+1,ias)
6514 ibuf(cmpt) = tag_sm(i1)
6516 ibuf(cmpt) = tag_sm(i2)
6517 assert(tag_sm(i1) > 0)
6518 assert(tag_sm(i2) > 0)
6532 i = nb_free_edges+nb_internal_edges+nb_boundary_edges_local + nb_boundary_edges_remote
6533 assert(nedge_l == i)
6553 . TAG_SEGM2, II_STOK , MULTIMP, NCONT ,
6554 . NOINT , INACTI , TAG_SCRATCH ,II_STOK_L,
6555 . NINDX_SCRT,INDX_SCRT)
6564#include "implicit_f.inc"
6568#include "com01_c.inc"
6569#include "com04_c.inc"
6573 INTEGER PROC,NSN,NSN_L,II_STOK,MULTIMP,NCONT,
6574 . tag_segm2(*),noint,inacti,
6575 . tag_scratch(*) , ii_stok_l, ityp
6576 INTEGER,
INTENT(INOUT) :: NINDX_SCRT
6577 INTEGER,
DIMENSION(*),
INTENT(INOUT) :: INDX_SCRT
6579 TYPE(intbuf_struct_) :: INTBUF_TAB
6588 INTEGER I,J,K,N,P,E,MULTOK,MSGID,
6590 INTEGER NUMP(NSPMD),WORK(70000)
6592 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
6593 . ibuf_e,ibuf_n,nsnlocal,cpulocal,candr,plist,
6596 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: ITRI
6600 ALLOCATE(ibuf_e(multimp*ncont),ibuf_n(multimp*ncont))
6601 ibuf_e(1:multimp*ncont) = 0
6602 ibuf_n(1:multimp*ncont) = 0
6606 ALLOCATE(nsnlocal(nsn))
6607 ALLOCATE(cpulocal(nsn))
6608 ALLOCATE(candr(nsn))
6613 ALLOCATE(plist(nspmd))
6616 n = intbuf_tab%NSV(k)
6618 IF(tag_scratch(n)==0)
THEN
6625 IF(nlocal(n,proc+1)==1)
THEN
6626 nsnlocal(k) = nump(proc+1)
6627 cpulocal(k) = proc+1
6630 nsnlocal(k) = nump(p)
6634 nindx_scrt = nindx_scrt + 1
6635 indx_scrt(nindx_scrt) = n
6641#include "vectorize.inc"
6653 e = intbuf_tab%CAND_E(k)
6654 IF (tag_segm2(e)/=0)
THEN
6655 n = intbuf_tab%CAND_N(k)
6656 IF (intbuf_tab%NSV(n)> numnod) cycle
6657 IF(tag_scratch(n)==0)
THEN
6659 nindx_scrt = nindx_scrt + 1
6660 indx_scrt(nindx_scrt) = n
6661 IF(nlocal(intbuf_tab%NSV(n),proc+1)/=1)
THEN
6670#include "vectorize.inc"
6680 ALLOCATE(index(2*c_nsnr))
6681 ALLOCATE(itri(2,c_nsnr))
6685 itri(1,i) = cpulocal(n)
6686 itri(2,i) = nsnlocal(n)
6688 CALL my_orders(0,work,itri,index,c_nsnr,2)
6691 index(c_nsnr+index(i)) = i
6694 index(i)=index(c_nsnr+i)
6701 e = intbuf_tab%CAND_E(k)
6702 IF (tag_segm2(e)/=0)
THEN
6703 ii_stok_l = ii_stok_l + 1
6707 IF(ii_stok_l>multimp*ncont)
THEN
6708 multok= ii_stok_l/ncont
6718 e = intbuf_tab%CAND_E(k)
6719 IF (tag_segm2(e)/=0)
THEN
6720 n = intbuf_tab%CAND_N(k)
6721 ii_stok_l = ii_stok_l + 1
6722 ibuf_e(ii_stok_l)=tag_segm2(e)
6723 IF (intbuf_tab%NSV(n)>numnod)
THEN
6725 ELSEIF(nlocal(intbuf_tab%NSV(n),proc+1)==1)
THEN
6726 ibuf_n(ii_stok_l)=nsnlocal(n)
6730 IF(tag_scratch(n)==0)
THEN
6732 ibuf_n(ii_stok_l)=index(c_nsnr)+nsn_l
6733 tag_scratch(n) = index(c_nsnr)+nsn_l
6734 nindx_scrt = nindx_scrt + 1
6735 indx_scrt(nindx_scrt) = n
6737 ibuf_n(ii_stok_l) = tag_scratch(n)
6746 e = intbuf_tab%CAND_E(k)
6747 IF (tag_segm2(e)/=0)
THEN
6748 n = intbuf_tab%CAND_N(k)
6749 IF (intbuf_tab%NSV(n)<= numnod) tag_scratch(n) = 0
6753 IF(nsn>0)
DEALLOCATE(nsnlocal,cpulocal,candr)
6754 DEALLOCATE(index,itri)
6760 DEALLOCATE(ibuf_e,ibuf_n)
6774 . NRTM_L,TAG_SEGM,TAG_SM,INTERCEP)
6786#include "implicit_f.inc"
6790 INTEGER ADSKYN(NADMSR+1),IADNOR(4,*),NADMSR,NADMSR_L,NRTM_L,
6791 . ADMSR(4,*), TAG_SEGM(*),TAG_SM(*)
6796 INTEGER I,J,K,IS,ISL
6797 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ADSKYN_L,IADNOR_L, TAG_MS
6799 ALLOCATE(adskyn_l(nadmsr_l+1),iadnor_l(4*nrtm_l),tag_ms(nadmsr_l))
6801 tag_ms(1:nadmsr_l)=0
6804 IF(k /= 0) tag_ms(k) = i
6810 adskyn_l(k+1)=adskyn_l(k)+adskyn(i+1)-adskyn(i)
6818 iadnor_l(4*(i-1)+j) = iadnor(j,k) - adskyn(is) + adskyn_l(isl)
6825 DEALLOCATE(adskyn_l,iadnor_l,tag_ms)
6834!||--- uses -----------------------------------------------------
6845#include "implicit_f.inc"
6849 INTEGER NADMSR,NADMSR_L,LBOUND(*), TAG_SM(*)
6854 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF, TAG_MS
6856 ALLOCATE(tag_ms(nadmsr_l))
6858 tag_ms(1:nadmsr_l)=0
6861 IF(k /= 0) tag_ms(k) = i
6864 ALLOCATE(ibuf(nadmsr_l))
6900#include "implicit_f.inc"
6904 INTEGER ISEGPT(*),TAG_NODE_2RY(*),NSN_L,DIM2,NI,PROC,
6909 INTEGER I,J,K,SN,FICT_SN
6910 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF
6912 ALLOCATE(ibuf(nsn_l))
6918 IF(isegpt(k)==k)
THEN
6920 ELSEIF(-isegpt(k)==k)
THEN
6927 fict_sn = tag_2ry_inv(sn)
6943!||--- called by ------------------------------------------------------
6952 . TAG_SEGM2, NREMNODE , NODLOCAL, ITAB ,
6953 . IS2ID ,INTERCEP2 ,NSNE ,NODLOCAL24)
6963#include "implicit_f.inc"
6967#include "com04_c.inc"
6971 INTEGER PROC,NRTM,NRTM_L,
6972 . tag_segm2(*),nremnode,nodlocal(*),
6973 . itab(*),is2id(*),nsne,nodlocal24(*)
6974 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
6977 TYPE(intbuf_struct_) :: INTBUF_TAB
6987 INTEGER I,J,K,SIZ,L,SIZ1,SIZ2,M,N,SE1,NS,NUMNODT
6989 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
6990 . ibuf1,ibuf2,noddel,noddelremote
6992 ALLOCATE(siz_tmp(nrtm),noddel(numnod+nsne),
6993 . noddelremote(numnod+nsne))
6995 ALLOCATE(ibuf1(2*(nrtm_l + 1)), ibuf2(nremnode))
6996 ibuf1(1:2*(nrtm_l+1)) = 0
6997 ibuf2(1:nremnode) = 0
7002 IF(tag_segm2(k) /= 0)
THEN
7003 siz_tmp(tag_segm2(k)) = intbuf_tab%KREMNODE(k+1)
7004 . -intbuf_tab%KREMNODE(k)
7009 numnodt = numnod + nsne
7010 noddel(1:numnodt) = 0
7011 noddelremote(1:numnodt) = 0
7015 IF(tag_segm2(k) /= 0)
THEN
7017 siz = siz_tmp(tag_segm2(k))
7018 ibuf1(1+2*tag_segm2(k)) =ibuf1
7019 l=intbuf_tab%KREMNODE(k)
7024 n = intbuf_tab%REMNODE(l+m)
7027 se1 = intbuf_tab%IS2SE(2*(ns-1)+1)
7028 IF (intercep2%P(se1)==proc+1)
THEN
7029 noddel(siz1+1) = nodlocal24(n)
7033 IF(nlocal(n,proc+1)==1)
THEN
7034 noddel(siz1+1) = nodlocal(n)
7041 n = intbuf_tab%REMNODE(l+m)
7044 se1 = intbuf_tab%IS2SE(2*(ns-1)+1)
7045 IF (intercep2%P(se1)/=proc+1)
THEN
7046 noddelremote(siz2+1) = is2id(ns)
7050 IF(nlocal(n,proc+1)/=1)
THEN
7051 noddelremote(siz2+1) = itab(n)
7057 l=ibuf1(1+2*(tag_segm2(k)-1))
7059 ibuf2(1+l+m-1)= noddel(m)
7062 ibuf1(1+2*(tag_segm2(k)-1)+1) = l + siz1
7063 l=ibuf1(1+2*(tag_segm2(k)-1)+1)
7065 ibuf2(1+l+m-1) = - noddelremote(m)
7077 DEALLOCATE(siz_tmp,noddel,noddelremote)
7082 DEALLOCATE(ibuf1, ibuf2)
7096 . TAG_SEGM2, NODLOCAL, ITAB ,NUMNOD_L, TAG_SEGS2,
7106#include "implicit_f.inc"
7110 INTEGER PROC,NRTM,NRTM_L,
7111 . tag_segm2(*),nremnode,nodlocal(*),
7112 . itab(*),tag_segs2(*)
7113 INTEGER,
INTENT(IN) :: NUMNOD_L,NREMNODE_L
7115 TYPE(intbuf_struct_) :: INTBUF_TAB
7125 . l,siz1,siz2,m,n,cpt_l,index1
7127 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
7132 ALLOCATE(ibuf1(2*(nrtm_l + 1)), ibuf2(nremnode_l))
7133 ibuf1(1:2*(nrtm_l+1)) = 0
7134 ibuf2(1:nremnode_l) = 0
7140 IF(tag_segm2(k) /= 0)
THEN
7141 siz = intbuf_tab%KREMNODE(k+1)-intbuf_tab%KREMNODE(k)
7142 l=intbuf_tab%KREMNODE(k)
7146 n = intbuf_tab%REMNODE(l+m-1)
7147 IF (tag_segs2(n)/=0)
THEN
7156 ibuf1(2*(cpt_l-1)+1) = index1
7157 ibuf1(2*(cpt_l-1)+2) = index1 + siz1
7158 index1 = index1 + siz1 + siz2
7161 ibuf1(2*nrtm_l+1) = index1
7162 ibuf1(2*nrtm_l+2) = index1
7167 IF(tag_segm2(k) /= 0)
THEN
7170 l=intbuf_tab%KREMNODE(k)
7171 siz = intbuf_tab%KREMNODE(k+1)-intbuf_tab%KREMNODE(k)
7172 siz1 = ibuf1(2*(cpt_l-1)+1)
7173 siz2 = ibuf1(2*(cpt_l-1)+2)
7176 n = intbuf_tab%REMNODE(l+m-1)
7177 IF (tag_segs2(n)/=0)
THEN
7179 ibuf2(siz1) = tag_segs2(n)
7183 ibuf2(siz2) = itab(intbuf_tab%IRECTS(2*(n-1)+1))
7184 ibuf2(siz2+1) = itab(intbuf_tab%IRECTS(2*(n-1)+2))
7195 DEALLOCATE(ibuf1, ibuf2)
7209 . TAG_EDGE , TAG_EDGE2 , SEGLOC ,ITAB ,
7210 . NUMNOD_L , NREMNODE_EDG_L)
7219#include "implicit_f.inc"
7223#include "param_c.inc"
7227 INTEGER PROC,NEDGE,NEDGE_L,
7228 . tag_edge2(*),tag_edge(*),segloc(*),
7230 INTEGER,
INTENT(IN) :: ,NREMNODE_EDG_L
7232 TYPE(intbuf_struct_) :: INTBUF_TAB
7242 . l,siz1,siz2,m,n,cpt_l,index1,ik,
7243 . km1,em1,km2,em2,ks1,es1,ks2,es2
7245 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
7250 ALLOCATE(ibuf1(2*(nedge_l + 1)), ibuf2(nremnode_edg_l))
7251 ibuf1(1:2*(nedge_l+1)) = 0
7252 ibuf2(1:nremnode_edg_l) = 0
7260 em1=intbuf_tab%LEDGE(1+(k-1)*nledge)
7262 IF(em1/=.0) km1=segloc(em1)
7263 em2=intbuf_tab%LEDGE(3+(k-1)*nledge)
7265 IF(em2/=0) km2=segloc(em2)
7266 IF(km1 /= 0.OR.km2/=0)
THEN
7267 siz = intbuf_tab%KREMNODE_EDG(k+1)-intbuf_tab%KREMNODE_EDG(k)
7268 l=intbuf_tab%KREMNODE_EDG(k)
7272 n = intbuf_tab%REMNODE_EDG(l+m-1)
7273 es1=intbuf_tab%LEDGE(1+(n-1)*nledge)
7275 IF(es1/=0) ks1=segloc(es1)
7276 es2=intbuf_tab%LEDGE(3+(n-1)*nledge)
7278 IF(es2/=0) ks2=segloc(es2)
7279 IF (km1 /= 0.AND.km2/=0.AND.ks1/=0.AND.ks2/=0)
THEN
7288 ibuf1(2*(cpt_l-1)+1) = index1
7289 ibuf1(2*(cpt_l-1)+2) = index1 + siz1
7290 index1 = index1 + siz1 + siz2
7293 ibuf1(2*nedge_l+1) = index1
7294 ibuf1(2*nedge_l+2) = index1
7301 em1=intbuf_tab%LEDGE(1+(k-1)*nledge)
7303 IF(em1/=0) km1=segloc(em1)
7304 em2=intbuf_tab%LEDGE(3+(k-1)*nledge)
7306 IF(em2/=0) km2=segloc(em2)
7307 IF(km1 /= 0.OR.km2/=0)
THEN
7310 l=intbuf_tab%KREMNODE_EDG(k)
7311 siz = intbuf_tab%KREMNODE_EDG(k+1)-intbuf_tab%KREMNODE_EDG(k)
7312 siz1 = ibuf1(2*(cpt_l-1)+1)
7313 siz2 = ibuf1(2*(cpt_l-1)+2)
7316 n = intbuf_tab%REMNODE_EDG(l+m-1)
7318 es1=intbuf_tab%LEDGE(1+(n-1)*nledge)
7319 IF(es1/=0) ks1=segloc(es1)
7320 es2=intbuf_tab%LEDGE(3+(n-1)*nledge)
7322 IF(es2/=0) ks2=segloc(es2)
7323 IF (km1 /= 0.AND.km2/=0.AND.ks1/=0.AND.ks2/=0)
THEN
7325 ibuf2(siz1) = tag_edge2(n)
7329 ibuf2(siz2) = itab(intbuf_tab%LEDGE(5+(n-1)*nledge))
7330 ibuf2(siz2+1) = itab(intbuf_tab%LEDGE(6+(n-1)*nledge))
7341 DEALLOCATE(ibuf1, ibuf2)
7355 . TAG_EDGE , TAG_EDGE2 , SEGLOC ,ITAB ,
7356 . NUMNOD_L , NREMNODE_E2S_L)
7365#include "implicit_f.inc"
7369#include "param_c.inc"
7373 INTEGER PROC,NRTM,NRTM_L,
7374 . TAG_EDGE2(*),TAG_EDGE(*),SEGLOC(*),
7376 INTEGER,
INTENT(IN) :: NUMNOD_L,NREMNODE_E2S_L
7378 TYPE(intbuf_struct_) :: INTBUF_TAB
7388 . l,siz1,siz2,m,n,cpt_l,index1,ik,
7389 . km1,em1,km2,em2,ks1,es1,ks2,es2
7391 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
7396 ALLOCATE(ibuf1(2*(nrtm_l + 1)), ibuf2(nremnode_e2s_l))
7397 ibuf1(1:2*(nrtm_l+1)) = 0
7398 ibuf2(1:nremnode_e2s_l) = 0
7405 IF(segloc(k) > 0)
THEN
7406 siz = intbuf_tab%KREMNODE_E2S(k+1)-intbuf_tab%KREMNODE_E2S(k)
7407 l=intbuf_tab%KREMNODE_E2S(k)
7411 n = intbuf_tab%REMNODE_E2S(l+m-1)
7412 es1=intbuf_tab%LEDGE(1+(n-1)*nledge)
7413 IF(segloc(es1) > 0)
THEN
7422 ibuf1(2*(cpt_l-1)+1) = index1
7423 ibuf1(2*(cpt_l-1)+2) = index1 + siz1
7424 index1 = index1 + siz1 + siz2
7427 ibuf1(2*nrtm_l+1) = index1
7428 ibuf1(2*nrtm_l+2) = index1
7434 IF(segloc(k) > 0)
THEN
7437 l=intbuf_tab%KREMNODE_E2S(k)
7438 siz = intbuf_tab%KREMNODE_E2S(k+1)-intbuf_tab%KREMNODE_E2S(k)
7439 siz1 = ibuf1(2*(cpt_l-1)+1)
7440 siz2 = ibuf1(2*(cpt_l-1)+2)
7443 n = intbuf_tab%REMNODE_E2S(l+m-1)
7444 es1=intbuf_tab%LEDGE(1+(n-1)*nledge)
7445 IF(segloc(es1) > 0)
THEN
7447 ibuf2(siz1) = tag_edge2(n)
7451 ibuf2(siz2) = itab(intbuf_tab%LEDGE(5+(n-1)*nledge))
7452 ibuf2(siz2+1) = itab(intbuf_tab%LEDGE(6+(n-1)*nledge))
7463 DEALLOCATE(ibuf1, ibuf2)
subroutine compress_i_nnz(array, len)
subroutine compress_r_nnz(array, len)
subroutine ddsplit(p, cep, cel, igeo, mat_elem, ipm, icode, iskew, iskn, insel, ibcslag, ipart, iparts, ipartq, ipartc, ipartt, ipartp, ipartr, iparttg, detonators, ipartx, npc, ixtg, group_param_tab, ixtg6, ixs, ixs10, ixs20, ixs16, ixq, ixc, ixt, ixp, ixr, itab, itabm1, gjbufi, nale, ale_connectivity, kxx, ixx, ibcl, ibfv, las, laccelm, nnlink, lllink, iparg, igrav, lgrav, ibvel, lbvel, iactiv, factiv, kinet, ipari, nprw, lprw, iexmad, npby, lpby, ixri, nstrf, ljoint, pornod, monvol, icontact, lagbuf, fr_iad, x, d, v, vr, dr, thke, dampr, damp, ms, in, tf, pm, skew, xframe, geo, eani, bufmat, bufgeo, bufsf, brmpc, gjbufr, w, veul, fill, dfill, wb, dsav, asav, msnf, spbuf, fac, vel, fsav, fzero, xlas, accelm, fbvel, gravfac, fr_wave, failwave, parts0, elbuf, rwl, rwsav, rby, rivet, secbuf, rvolu, rconx, nloc_dmg, fvmain, libagale, lenthg, lbufmat, lbufgeo, lbufsf, lenxlas, lnom_opt, lenlas, lenvolu, npts, cne, lcne, addcne, cni2, lcni2g, addcni2, cepi2, celi2, i2nsnt, probint, ddstat, pm1shf, dd_iad, kxsp, ixsp, nod2sp, cepsp, nthwa, nairwa, nmnt, l_mul_lag1, l_mul_lag, lwaspio, ipartsp, ispcond, pm1sph, wma, eigipm, eigibuf, eigrpm, iflow, rflow, memflow, iexlnk, fasolfr, iparth, fxbipm, fxbrpm, fxbnod, fxbmod, fxbglm, fxbcpm, fxbcps, fxblm, fxbfls, fxbdls, fxbdep, fxbvit, fxbacc, fxbelm, fxbsig, fxbgrvi, fxbgrvr, iadll, lll, ibmpc, lambda, lrbagale, iskwp, nskwp, isensp, nsensp, iaccp, naccp, ipart_state, mcp, temp, unitab, intstamp, iframe, clusters, partsav, ibft, fbft, ibcv, fconv, irbe3, lrbe3, frbe3, front_rm, rbym, irbym, lcrbym, inoise, fnoise, ms0, admsms, nom_sect, ispsym, sh4tree, sh3tree, ipadmesh, ibfflux, fbfflux, sh4trim, sh3trim, padmesh, msc, mstg, inc, intg, ptg, mcpc, mcptg, rcontact, acontact, pcontact, mscnd, incnd, mssa, mstr, msp, msrt, ibcr, fradia, dmelc, dmeltg, dmels, dmeltr, dmelp, dmelrt, res_sms, isphio, lprtsph, lonfsph, vsphio, sphveln, alph, ifill, ims, irbe2, lrbe2, ms_ply, zi_ply, inod_pxfem, iel_pxfem, icodply, iskwply, addcne_pxfem, cne_pxfem, cel_pxfem, ithvar, xdp, table, celsph, icfield, lcfield, cfield, msz2, itask, diag_sms, iloadp, lloadp, loadp, inod_crkxfem, iel_crkxfem, addcne_crkxfem, cne_crkxfem, cel_crkxfem, ibufssg_io, intercep, ibordnode, iedgesh, ibordedge, linale, nodedge, iedge, cep_crkxfem, iedge_tmp, crknodiad, elbuf_tab, nom_opt, lgauge, gauge, igaup, ngaup, nodlevxf, frontb_r2r, dflow, vflow, wflow, sph2sol, sol2sph, irst, elcutc, nodenr, kxfenod2elc, enrtag, intbuf_tab, i11flag, xfem_tab, lenthgr, rthbuf, ixig3d, kxig3d, knot, ipartig3d, wige, ncrkpart, indx_crk, crklvset, crkshell, crksky, crkavx, crkedge, sensors, stack, xfem_phantom, t8, tab_ump, poin_ump, sol2sph_typ, addcsrect, csrect, drape, loads, itagnd, icnds10, addcncnd, cepcnd, celcnd, cncnd, nativ_sms, i24maxnsne, multi_fvm, segquadfr, intbuf_fric_tab, subset, igrnod, igrbric, igrquad, igrsh4n, igrsh3n, igrtruss, igrbeam, igrspring, igrpart, igrsurf, igrslin, poin_part_shell, poin_part_tri, poin_part_sol, mid_pid_shell, mid_pid_tri, mid_pid_sol, tag_nm, nindx_nm, indx_nm, tag_scratch, nindx_scrt, indx_scrt, flag_24_25, numnod_l, tag_skn, multiple_skew, igrsurf_proc, knotlocpc, knotlocel, ale_elm, size_ale_elm, pinch_data, tag_skins6, ibcscyc, lbcscyc, t_monvol, indx_s, indx_q, indx_tg, face_elm_s, face_elm_q, face_elm_tg, nbr_th_monvol, ebcs_tab, kloadpinter, loadpinter, dgaploadint, s_loadpinter, len_cep, dynain_data, drapeg, user_windows, output, interfaces, number_load_cyl, loads_per_proc, python, dpl0cld, vel0cld, names_and_titles, bcs_per_proc, constraint_struct, glob_therm, pblast)
end diagonal values have been computed in the(sparse) matrix id.SOL
integer function secnd_surface_on_domain(intercep, se, proc)
void my_orders(int *mode, int *iwork, int *data, int *index, int *n, int *irecl)
type(i25_cand_), dimension(:,:), allocatable i25_split_cand
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 ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)
character *2 function nl()
subroutine lectur(multi_fvm, lsubmodel, is_dyna, detonators, ebcs_tab, seatbelt_converted_elements, nb_seatbelt_shells, nb_dyna_include, user_windows, output, mat_elem, names_and_titles, defaults, glob_therm, pblast, sensor_user_struct)
subroutine write_db(a, n)
void write_i_c(int *w, int *len)