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
84 intbuf_size(n) = intbuf_tab_l%S_TYPSUB
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))
760#include "implicit_f.inc"
764 INTEGER TAB(*),TAG(*),DIM1,NODLOCAL(*)
769 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF
774 ibuf(i) = nodlocal(tab(k))
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)
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))
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
1471#include "implicit_f.inc"
1475 INTEGER TAB(*),TAG_SEGM2(*),TAG_NODE_2RY(*),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_struct_) :: 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
1588! used
for optimize
the initialization
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( n )<=numnod_l)
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
1692 i710xsav(cnmn_l) = n1
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
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
1776! -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
1801 INTEGER ,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)
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)
2025 . TAG_SEGM2, NREMNODE , NODLOCAL, ITAB ,NUMNOD_L)
2034#include "implicit_f.inc"
2038#include "com04_c.inc"
2042 INTEGER PROC,NRTM,NRTM_L,
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 . IBUF1,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 :: ID,,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 ! tabs to tag edges to be deactivated
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))
2400 . tagremcand_e2s(candms(j)) = 1
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,E1,E2,K1,K2
2475 INTEGER,
DIMENSION(:),
ALLOCATABLE :: CANDM_E2E,CANDS_E2E
2476 INTEGER,
DIMENSION(:),
ALLOCATABLE :: CANDM_E2S,CANDS_E2S
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))
2501 cands_e2e(id) = abs(
i25_split_cand(nin,proc+1)%CANDS_E2E(jj)) + nedge_l
2506 ALLOCATE(candm_e2s(ii_stok_s_l))
2507 ALLOCATE(cands_e2s(ii_stok_s_l))
2513 DO j = 1, ii_stok_s_l
2519 candm_e2s(id) = segloc(intbuf_tab%CANDM_E2S(i))
2521 IF(intbuf_tab%LEDGE(9+(intbuf_tab%CANDS_E2S(i)-1)*nledge) == proc )
THEN
2523 cands_e2s(id) = tag_edge2(intbuf_tab%CANDS_E2S(i))
2524 assert(cands_e2s(id) ==
i25_split_cand(nin,proc+1)%CANDS_E2S(jj))
2527 cands_e2s(id) = abs(
i25_split_cand(nin,proc+1)%CANDS_E2S(jj)) + nedge_l
2536 DEALLOCATE(candm_e2e)
2537 DEALLOCATE(cands_e2e)
2538 DEALLOCATE(candm_e2s)
2539 DEALLOCATE(cands_e2s)
2554 . TAG_SEGM2 , NREMNODE , NODLOCAL ,NREMNOR,
2555 . NSN , NSN_L ,TAG_NODE_2RY2,ITAB,
2566#include "implicit_f.inc"
2570#include "com04_c.inc"
2574 INTEGER PROC ,NRTM ,NRTM_L ,NSN ,NSN_L ,NREMNOR ,
2575 . TAG_SEGM2(*) ,NREMNODE ,(*) ,
2576 . TAG_NODE_2RY2(*),ITAB(*)
2577 INTEGER,
INTENT(IN) :: NUMNOD_L
2579 TYPE() :: INTBUF_TAB
2595 INTEGER I,J,K,SIZ,LL,
2596 . L,SIZ1 ,SIZ2 ,M ,N ,NS
2598 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
2599 . IBUF1,IBUF2,NODDEL,
2600 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
2603 ALLOCATE(siz_tmp(nrtm),noddel(numnod),
2604 . noddelremote(numnod))
2606 ALLOCATE(ibuf1(2*(nrtm_l + 1)), ibuf2(nremnode))
2607 ibuf1(1:2*(nrtm_l+1)) = 0
2608 ibuf2(1:nremnode) = 0
2613 IF(tag_segm2(k) /= 0)
THEN
2614 siz_tmp(tag_segm2(k)) = intbuf_tab%KREMNODE(k+1)
2615 . -intbuf_tab%KREMNODE(k)
2621 noddel(1:numnod) = 0
2622 noddelremote(1:numnod) = 0
2626 IF(tag_segm2(k) /= 0)
THEN
2628 siz = siz_tmp(tag_segm2(k))
2629 ibuf1(1+2*tag_segm2(k)) =ibuf1(1+2*(tag_segm2(k)-1)) + siz
2631 l=intbuf_tab%KREMNODE(k)
2635 n = intbuf_tab%REMNODE(l+m)
2636 IF( nodlocal(n)/=0.AND.nodlocal(n)<=numnod_l )
THEN
2637 noddel(siz1+1) = nodlocal(n)
2642 n = intbuf_tab%REMNODE(l+m)
2643 IF( nodlocal(n)==0.OR.nodlocal(n)>numnod_l )
THEN
2644 noddelremote(siz2+1) = itab(n)
2648 l=ibuf1(1+2*(tag_segm2(k)-1))
2650 ibuf2(1+l+m-1)= noddel(m)
2652 ibuf1(1+2*(tag_segm2(k)-1)+1) = l + siz1
2653 l=ibuf1(1+2*(tag_segm2(k)-1)+1)
2655 ibuf2(1+l+m-1) = - noddelremote(m)
2666 DEALLOCATE(siz_tmp,noddel,noddelremote)
2671 DEALLOCATE(ibuf1, ibuf2)
2676 ALLOCATE(ibuf1(nsn_l+1),ibuf2(nremnor))
2678 ALLOCATE(noddel(nrtm))
2680 ibuf1(1:nsn_l+1) = 0
2681 ibuf2(1:nremnor) = 0
2685 ns = tag_node_2ry2(n)
2687 siz = intbuf_tab%KREMNOR(n+1)-intbuf_tab%KREMNOR(n)
2689 l=intbuf_tab%KREMNOR(n)
2693 i = intbuf_tab%REMNOR(l+m)
2694 IF(tag_segm2(i)/=0)
THEN
2695 noddel(siz1+1) = tag_segm2(i)
2702 ibuf2(l+m)= noddel(m)
2704 ibuf1(ns+1) = l +siz1
2718 DEALLOCATE(ibuf1, ibuf2)
2732 . TAG_SEGM , NISUBS, NISUBM )
2741#include "implicit_f.inc"
2745 INTEGER NSN_L,NRTM_L,NISUBS,NISUBM,
2746 . TAG_NODE_2RY(*),TAG_SEGM(*)
2748 TYPE(intbuf_struct_) :: INTBUF_TAB
2752 INTEGER I,J,K,NISUBS_L,NISUBM_L
2754 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF1
2755 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF2
2756 INTEGER,
DIMENSION(:),
ALLOCATABLE
2757 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF4
2758 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF5
2759 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF6
2761 ALLOCATE(IBUF1(NSN_L+1))
2762 ALLOCATE(IBUF2(NRTM_L+1))
2763 ALLOCATE(ibuf3(nisubs))
2764 ALLOCATE(ibuf4(nisubm))
2765 ALLOCATE(ibuf5(nisubs))
2766 ALLOCATE(ibuf6(nisubm))
2769 ibuf1(1: nsn_l+1) = 0
2770 ibuf2(1: nrtm_l+1) = 0
2771 ibuf3(1: nisubs) = 0
2772 ibuf4(1: nisubm) = 0
2773 ibuf5(1: nisubs) = 0
2774 ibuf6(1: nisubm) = 0
2779 ibuf1(k) = nisubs_l + 1
2781 DO i = intbuf_tab%ADDSUBS(j),intbuf_tab%ADDSUBS(j+1)-1
2782 ibuf3(1+nisubs_l) = intbuf_tab%LISUBS(i)
2783 IF(intbuf_tab%S_INFLG_SUBS > 0) ibuf5(1+nisubs_l) = intbuf_tab%INFLG_SUBS(i)
2784 nisubs_l = nisubs_l + 1
2788 ibuf1(nsn_l+1) = nisubs_l + 1
2792 ibuf2(k) = nisubm_l + 1
2794 DO i = intbuf_tab%ADDSUBM(j),
2795 . intbuf_tab%ADDSUBM(j+1)-1
2796 ibuf4(1+nisubm_l) = intbuf_tab%LISUBM(i)
2797 IF(intbuf_tab%S_INFLG_SUBM > 0) ibuf6(1+nisubm_l) = intbuf_tab%INFLG_SUBM(i)
2798 nisubm_l = nisubm_l + 1
2802 ibuf2(nrtm_l+1) = nisubm_l + 1
2808 IF(intbuf_tab%S_INFLG_SUBS > 0)
CALL write_i_c(ibuf5,nisubs)
2809 IF(intbuf_tab%S_INFLG_SUBM > 0)
CALL write_i_c(ibuf6,nisubm)
2811 DEALLOCATE(ibuf1,ibuf2,ibuf3,ibuf4,ibuf5,ibuf6)
2824 1 TAG_SEGM , NISUBS, NISUBM ,
2841#include "implicit_f.inc"
2845#include "param_c.inc"
2849 INTEGER NSN_L,NRTM_L,NISUBS,NISUBM,
2850 . TAG_NODE_2RY(*),TAG_SEGM(*)
2851 INTEGER,
INTENT(IN) :: IEDGE
2852 INTEGER,
INTENT(IN) :: NEDGE
2853 INTEGER,
INTENT(IN) :: NEDGE_L
2854 INTEGER,
INTENT(IN) :: TAG_EDGE(NEDGE_L)
2855 INTEGER,
INTENT(IN) :: TAG_EDGE2(NEDGE)
2856 INTEGER,
INTENT(IN) :: NISUBE
2857 INTEGER,
INTENT(IN) :: !local number
2862 TYPE(intbuf_struct_) :: INTBUF_TAB
2866 INTEGER I,J,K,NISUBS_L,NISUBM_L,NISUBE_L
2868 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF1
2869 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF2
2870 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF3
2871 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF4
2872 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF5
2873 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF6
2875 ALLOCATE(IBUF1(NSN_L+1))
2876 ALLOCATE(IBUF2(NRTM_L+1))
2877 ALLOCATE(IBUF3(NISUBS))
2878 ALLOCATE(IBUF4(NISUBM))
2879 ALLOCATE(IBUF5(NISUBS))
2880 ALLOCATE(IBUF6(NISUBM))
2882 IBUF1(1: NSN_L+1) = 0
2883 ibuf2(1: nrtm_l+1) = 0
2884 ibuf3(1: nisubs) = 0
2885 ibuf4(1: nisubm) = 0
2886 ibuf5(1: nisubs) = 0
2887 ibuf6(1: nisubm) = 0
2892 ibuf1(k) = nisubs_l + 1
2894 DO i = intbuf_tab%ADDSUBS(j),intbuf_tab%ADDSUBS(j+1)-1
2895 ibuf3(1+nisubs_l) = intbuf_tab%LISUBS(i)
2896 ibuf5(1+nisubs_l) = intbuf_tab%INFLG_SUBS(i)
2897 nisubs_l = nisubs_l + 1
2901 ibuf1(nsn_l+1) = nisubs_l + 1
2905 ibuf2(k) = nisubm_l + 1
2907 DO i = intbuf_tab%ADDSUBM(j),
2908 . intbuf_tab%ADDSUBM(j+1)-1
2909 ibuf4(1+nisubm_l) = intbuf_tab%LISUBM(i)
2910 ibuf6(1+nisubm_l) = intbuf_tab%INFLG_SUBM(i)
2911 nisubm_l = nisubm_l + 1
2915 ibuf2(nrtm_l+1) = nisubm_l + 1
2924 DEALLOCATE(ibuf1,ibuf2,ibuf3,ibuf4,ibuf5,ibuf6)
2931 ALLOCATE(ibuf1(nedge_l+1))
2932 ALLOCATE(ibuf3(nisube))
2933 ALLOCATE(ibuf5(nisube))
2935 ibuf1(1: nedge_l+1) = 0
2936 ibuf3(1: nisube) = 0
2937 ibuf5(1: nisube) = 0
2942 ibuf1(k) = nisube_l + 1
2944 IF(intbuf_tab%LEDGE(nledge*(j-1)+9) == proc )
THEN
2945 DO i = intbuf_tab%ADDSUBE(j),intbuf_tab%ADDSUBE(j+1)-1
2946 ibuf3(1+nisube_l) = intbuf_tab%LISUBE(i)
2947 ibuf5(1+nisube_l) = intbuf_tab%INFLG_SUBE(i)
2948 nisube_l = nisube_l + 1
2953 ibuf1(nedge_l+1) = nisube_l + 1
2960 assert(nisube == nisube_l)
2970!||--- calls -----------------------------------------------------
2975 . NMN , NMN_L , TAG_SCRATCH, TAG_NODE_MSR,
2976 . TAG_NM , NODLOCAL, PROC , NI ,I710XSAV,
2977 . NINDX_SCRT, INDX_SCRT)
2986#include "implicit_f.inc"
2990#include "com04_c.inc"
2994 INTEGER NUMNOD_L,NSN,NSN_L,NMN,
2995 . nmn_l, nod, proc, ni
2996 INTEGER TAG_SCRATCH(*), TAG_NODE_MSR(*),
2997 . tag_nm(*), nodlocal(*)
2998 INTEGER,
INTENT(INOUT) :: NINDX_SCRT
2999 INTEGER,
DIMENSION(*),
INTENT(INOUT) :: INDX_SCRT
3001 TYPE(intbuf_struct_) :: INTBUF_TAB
3011 INTEGER I,J,K,L,N,N2,NSN_L2,NMN_L2,
3014 my_real,
DIMENSION(:),
ALLOCATABLE :: rbuf
3017 siz_xsav = 3*
min(numnod_l,nsn_l+nmn_l)
3018 ALLOCATE(rbuf(siz_xsav))
3019 rbuf(1:siz_xsav) = zero
3023#include "vectorize.inc"
3029 IF (nsn+nmn<=numnod)
THEN
3031 IF (nsn_l+nmn_l<=numnod_l)
THEN
3037 IF(nlocal(n,proc+1)==1.AND.
3038 . tag_scratch(n)==0)
THEN
3039 rbuf(3*(nsn_l2)+1) =
3040 * intbuf_tab%XSAV(3*(k-1)+1)
3041 rbuf(3*(nsn_l2)+2) =
3042 * intbuf_tab%XSAV(3*(k-1)+2)
3043 rbuf(3*(nsn_l2)+3) =
3044 * intbuf_tab%XSAV(3*(k-1)+3)
3047 nindx_scrt = nindx_scrt + 1
3048 indx_scrt(nindx_scrt) = n
3054 n = intbuf_tab%MSR(k)
3055 IF(nlocal(n,proc+1)==1)
THEN
3058 IF (i710xsav(l)==nod)
THEN
3059 rbuf(3*nsn_l+3*(l-1)+1)=
3060 * intbuf_tab%XSAV(3*nsn+3*(k-1)+1)
3061 rbuf(3*nsn_l+3*(l-1)+2)=
3062 * intbuf_tab%XSAV(3*nsn+3*(k-1)+2)
3063 rbuf(3*nsn_l+3*(l-1)+3)=
3064 * intbuf_tab%XSAV(3*nsn+3*(k-1)+3)
3078 n = intbuf_tab%NSV(k)
3079 IF(nlocal(n,proc+1)==1.AND.
3080 . tag_scratch(n)==0)
THEN
3083 * intbuf_tab%XSAV(3*(k-1)+1)
3085 * intbuf_tab%XSAV(3*(k-1)+2)
3087 * intbuf_tab%XSAV(3*(k-1)+3)
3090 nindx_scrt = nindx_scrt + 1
3091 indx_scrt(nindx_scrt) = n
3099 IF(nlocal(n,proc+1)==1)
THEN
3101 IF (tag_nm(n)==1)
THEN
3103 * intbuf_tab%XSAV(3*nsn+3*(k-1)+1)
3105 * intbuf_tab%XSAV(3*nsn+3*(k-1)+2)
3107 * intbuf_tab%XSAV(3*nsn+3*(k-1)+3)
3116 IF(nsn_l+ nmn_l < numnod_l)
THEN
3121 IF(nlocal(n,proc+1)==1)
THEN
3124 * intbuf_tab%XSAV(3*(n-1)+1)
3126 * intbuf_tab%XSAV(3*(n-1)+2)
3128 * intbuf_tab%XSAV(3*(n-1)+3)
3131 nindx_scrt = nindx_scrt + 1
3132 indx_scrt(nindx_scrt) = n
3138 IF(nlocal(n,proc+1)==1)
THEN
3142 tag = tag_node_msr(l)
3143 IF (intbuf_tab%MSR(tag)==nod)
THEN
3145 * intbuf_tab%XSAV(3*(n-1)+1)
3146 rbuf(3*nsn_l2+3*(l-1)+1) =
3147 * intbuf_tab%XSAV(3*(n-1)+2)
3148 rbuf(3*nsn_l2+3*(l-1)+2) =
3149 * intbuf_tab%XSAV(3*(n-1)+3)
3162 IF(nlocal(n,proc+1)==1)
THEN
3164 rbuf(3*(n2-1)+1) = intbuf_tab%XSAV(3*(n-1)+1)
3165 rbuf(3*(n2-1)+2) = intbuf_tab%XSAV(3*(n-1)+2)
3166 rbuf(3*(n2-1)+3) = intbuf_tab%XSAV(3*(n-1)+3)
3169 nindx_scrt = nindx_scrt + 1
3170 indx_scrt(nindx_scrt) = n
3176 IF(nlocal(n,proc+1)==1)
THEN
3177 IF (tag_nm(n)==1)
THEN
3180 * intbuf_tab%XSAV(3*(n-1)+1)
3182 * intbuf_tab%XSAV(3*(n-1)+2)
3184 * intbuf_tab%XSAV(3*(n-1)+3)
3216 . INTERCEP , TAG_NODE_2RY, TAG_SEGM ,
3217 . TAG_SEGM2, TAG_NM , TAG_NODE_MSR,
3218 . TAG_NODE_MSR2,TAG_LMSR,TAG_LMSR2,
3219 . TAG_NSEG,TAG_NSEG2,
3220 . NI,T8,ITAB,NINDX_NM,INDX_NM)
3232#include "implicit_f.inc"
3236#include "com01_c.inc"
3240 TYPE(intbuf_struct_) :: INTBUF_TAB
3241 TYPE(INTERSURFP) :: INTERCEP
3242 TYPE(INT8_STRUCT_) :: T8
3243 INTEGER NI,PROC,IPARI(*),
3244 . TAG_NODE_2RY(*),TAG_SEGM(*),TAG_NM(*),TAG_NODE_MSR(*),
3245 . TAG_NODE_MSR2(*),TAG_LMSR(*),TAG_LMSR2(*),
3246 . TAG_NSEG(*),TAG_NSEG2(*),
3247 . TAG_SEGM2(*),ITAB(*)
3248 INTEGER,
INTENT(INOUT) :: NINDX_NM
3249 INTEGER,
DIMENSION(*),
INTENT(INOUT) :: INDX_NM
3259 . NSN,NRTM,NMN,NMN_L,
3260 . I,,K,N,N1,N2,N3,N4,P2,
3261 . CNSN_L,,CNMN_L,CLMSR_L,
3270 n=intbuf_tab%ILOCS(k)
3272 IF(nlocal(n,proc+1)==1)
THEN
3284 n1 = intbuf_tab%IRECTM(4*(k-1)+1)
3285 n2 = intbuf_tab%IRECTM(4*(k-1)+2)
3286 n3 = intbuf_tab%IRECTM(4*(k-1)+3)
3287 n4 = intbuf_tab%IRECTM(4*(k-1)+4)
3289 n1 = intbuf_tab%MSR(n1)
3290 n2 = intbuf_tab%MSR(n2)
3291 n3 = intbuf_tab%MSR(n3)
3292 n4 = intbuf_tab%MSR(n4)
3294 IF(intercep%P(k)==proc+1)
THEN
3295 cnrtm_l = cnrtm_l + 1
3296 tag_segm(cnrtm_l) = k
3297 tag_segm2(k) = cnrtm_l
3298 IF(tag_nm(n1)==0)
THEN
3301 nindx_nm = nindx_nm + 1
3302 indx_nm(nindx_nm) = n1
3304 IF(tag_nm(n2)==0)
THEN
3307 nindx_nm = nindx_nm + 1
3308 indx_nm(nindx_nm) = n2
3310 IF(tag_nm(n3)==0)
THEN
3313 nindx_nm = nindx_nm + 1
3314 indx_nm(nindx_nm) = n3
3316 IF(tag_nm(n4)==0)
THEN
3319 nindx_nm = nindx_nm + 1
3320 indx_nm(nindx_nm) = n4
3344 IF(nmn_l > 0) tag_nseg(1) = 1
3348 n = intbuf_tab%MSR(i)
3350 IF(tag_nm(n)==1)
THEN
3352 tag_node_msr(cnmn_l) = i
3353 tag_node_msr2(i) = cnmn_l
3354 ibegin = intbuf_tab%NSEGM(i)
3355 iend = intbuf_tab%NSEGM(i+1)-1
3357 k = intbuf_tab%LMSR(j)
3358 IF(intercep%P(k)==proc+1)
THEN
3361 clmsr_l = clmsr_l + 1
3362 tag_lmsr(clmsr_l) = j
3363 tag_lmsr2(j) = clmsr_l
3372 tag_nseg(j) = tag_nseg(j) + tag_nseg(j-1)
3378 IF(p2/=proc + 1)
THEN
3379 DO i = 1,t8%BUFFER(p2)%NBMAIN
3380 t8%BUFFER(p2)%MAIN_ID(i) =
3381 . tag_node_msr2(t8%BUFFER(p2)%MAIN_ID(i))
3387 t8%SPMD_COMM_PATTERN(i)%UID = itab(
3388 . intbuf_tab%MSR(t8%SPMD_COMM_PATTERN(i)%NUMLOC))
3389 t8%SPMD_COMM_PATTERN(i)%NUMLOC =
3390 . tag_node_msr2(t8%SPMD_COMM_PATTERN(i)%NUMLOC)
3417 . TAG_NODE_2RY, TAG_NODE_MSR, TAG_SCRATCH ,
3418 . TAG_IELES , TAG_IELEM ,
3419 . CEP , CEL ,NINDX_SCRT,INDX_SCRT)
3428#include "implicit_f.inc"
3432 TYPE(intbuf_struct_) :: INTBUF_TAB
3434 INTEGER PROC,IPARI(*),
3435 . tag_node_2ry(*),tag_node_msr(*),
3436 . tag_ieles(*) ,tag_ielem(*),
3437 . tag_scratch(*),cep(*),cel(*)
3438 INTEGER,
INTENT(INOUT) :: NINDX_SCRT
3439 INTEGER,
DIMENSION(*),
INTENT(INOUT) :: INDX_SCRT
3449 . NSN,NRTM,NRTS,NMN,
3450 . I,J,K,N,IE,IE_LOC,PROC2,
3451 . ,CNMN_L,CNRTS_L,CNRTM_L
3461 IF(nlocal(n,proc+1)==1.AND.tag_scratch(n)==0)
THEN
3463 tag_node_2ry(cnsn_l) = k
3465 nindx_scrt = nindx_scrt + 1
3466 indx_scrt(nindx_scrt) = n
3475#include "vectorize.inc"
3484 n = intbuf_tab%MSR(i)
3485 IF(nlocal(n,proc+1)==1.AND.tag_scratch(n)==0)
THEN
3487 tag_node_msr(cnmn_l) = i
3500 ie = intbuf_tab%IELES(k)
3502 IF(proc2==proc)
THEN
3507 cnrts_l = cnrts_l + 1
3508 tag_ieles(cnrts_l) = ie_loc
3514 ie = intbuf_tab%IELEM(k)
3516 IF(proc2==proc)
THEN
3521 cnrtm_l = cnrtm_l + 1
3522 tag_ielem(cnrtm_l) = ie_loc
3544 . TAG_NODE_2RY, TAG_SEGM , TAG_SEGM2 ,
3545 . TAG_NM , TAG_SEGS , TAG_NODE_MSR,
3546 . TAG_SCRATCH , INTERCEP , NI ,NINDX_NM,INDX_NM,
3547 . NINDX_SCRT , INDX_SCRT ,TAG_SEGS2)
3556#include "implicit_f.inc"
3560#include "com04_c.inc"
3567 INTEGER PROC,TAG_NODE_2RY(*),TAG_SEGM(*),TAG_SEGM2(*),
3568 . tag_nm(*),tag_segs(*),tag_node_msr(*),tag_scratch(*),tag_segs2(*)
3569 INTEGER,
INTENT(INOUT) :: NINDX_NM,NINDX_SCRT
3570 INTEGER,
DIMENSION(*),
INTENT(INOUT) :: INDX_NM,
3572 TYPE(intbuf_struct_) ::
3586 . I,J,K,L,M,N,N1,N2,JJ,
3587 . CNRTM_L,CNRTS_L,CNSN_L,CNMN_L
3597 IF(intercep(2,ni)%P(k)==proc+1)
THEN
3598 cnrts_l = cnrts_l + 1
3599 tag_segs(cnrts_l) = k
3600 tag_segs2(k) = cnrts_l
3607 IF(nlocal(n,proc+1)==1.AND.tag_scratch(n)==0)
THEN
3609 tag_node_2ry(cnsn_l) = k
3611 nindx_scrt = nindx_scrt + 1
3612 indx_scrt(nindx_scrt) = n
3617#include "vectorize.inc"
3626 n1 = intbuf_tab%IRECTM(2*(k-1)+1)
3627 n2 = intbuf_tab%IRECTM(2*(k-1)+2)
3628 IF(intercep(1,ni)%P(k)==proc+1)
THEN
3629 cnrtm_l = cnrtm_l + 1
3630 tag_segm(cnrtm_l) = k
3631 tag_segm2(k) = cnrtm_l
3632 IF(tag_nm(n1)==0)
THEN
3634 nindx_nm = nindx_nm + 1
3635 indx_nm(nindx_nm) = n1
3637 IF(tag_nm(n2)==0)
THEN
3639 nindx_nm = nindx_nm + 1
3640 indx_nm(nindx_nm) = n2
3647 n = intbuf_tab%MSR(i)
3648 IF(tag_nm(n)==1)
THEN
3650 tag_node_msr(cnmn_l) = i
3663!||--- uses -----------------------------------------------------
3668 . TAG_SEGM2 , TAG_SEGS , II_STOK, MULTIMP,
3669 . NCONT , NOINT , INACTI ,
3670 . TAG_SCRATCH, INTERCEP , NI , IPARI_L,
3671 . II_STOK_L ,NINDX_SCRT ,INDX_SCRT)
3681#include "implicit_f.inc"
3685#include "com01_c.inc"
3686#include "com04_c.inc"
3687#include "param_c.inc"
3691 INTEGER PROC,NRTS,NRTS_L,II_STOK,MULTIMP,NCONT,
3692 . noint,inacti,ni,ipari_l(npari,ninter),
3693 . tag_segm2(*),tag_segs(*),tag_scratch(*),ii_stok_l
3694 INTEGER,
INTENT(INOUT) :: NINDX_SCRT
3695 INTEGER,
DIMENSION(*),
INTENT(INOUT) :: INDX_SCRT
3697 TYPE(intbuf_struct_) :: INTBUF_TAB
3698 TYPE(INTERSURFP) :: INTERCEP(3,NINTER)
3707 INTEGER I,J,K,L,N,N1,N2,P,E,MULTOK,MSGID,
3709 INTEGER NUMP(NSPMD),WORK(70000)
3711 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
3712 . IBUF_E,IBUF_N,NRTSLOCAL,CPULOCAL,CANDR,PLIST,
3715 INTEGER,
DIMENSION(:,:),
ALLOCATABLE ::
3718 ALLOCATE(IBUF_E(MULTIMP*NCONT),IBUF_N(MULTIMP*NCONT))
3719 IBUF_E(1:MULTIMP*NCONT) = 0
3720 ibuf_n(1:multimp*ncont) = 0
3724 IF(inacti==5.OR.inacti==6.OR.inacti==7)
THEN
3726 ALLOCATE(nrtslocal(nrts))
3727 ALLOCATE(cpulocal(nrts))
3728 ALLOCATE(candr(nrts))
3734 ALLOCATE(plist(nspmd))
3738 n1 = intbuf_tab%IRECTS(2*(k-1)+1)
3739 n2 = intbuf_tab%IRECTS(2*(k-1)+2)
3741 IF(intercep(2,ni)%P(k)==proc+1)
THEN
3742 nump(proc+1) = nump(proc+1) + 1
3743 nrtslocal(k) = nump(proc+1)
3744 cpulocal(k) = proc+1
3753 e = intbuf_tab%CAND_E(k)
3754 IF (tag_segm2(e)/=0)
THEN
3755 n = intbuf_tab%CAND_N(k)
3756 IF(tag_scratch(n)==0)
THEN
3758 nindx_scrt = nindx_scrt + 1
3759 indx_scrt(nindx_scrt) = n
3760 IF(nlocal(intbuf_tab%NSV(n),proc+1)/=1)
THEN
3761 c_nrtsr = c_nrtsr + 1
3769#include "vectorize.inc"
3783 ALLOCATE(index(2*c_nrtsr))
3784 ALLOCATE(itri(2,c_nrtsr))
3788 itri(1,i) = cpulocal(n)
3789 itri(2,i) = nrtslocal(n)
3791 CALL my_orders(0,work,itri,index,c_nrtsr,2)
3794 index(c_nrtsr+index(i)) = i
3797 index(i)=index(c_nrtsr+i)
3804 e = intbuf_tab%CAND_E(k)
3805 IF (tag_segm2(e)/=0)
THEN
3806 ii_stok_l = ii_stok_l + 1
3807 ibuf_e(ii_stok_l)=tag_segm2(e)
3808 l = intbuf_tab%CAND_N(k)
3809 n1 = intbuf_tab%IRECTS(2*(l-1)+1)
3810 n2 = intbuf_tab%IRECTS(2*(l-1)+2)
3811 IF(cpulocal(l) == (proc+1))
THEN
3812 ibuf_n(ii_stok_l) = nrtslocal(l)
3815 IF(tag_scratch(l)==0)
THEN
3816 c_nrtsr =c_nrtsr + 1
3817 ibuf_n(ii_stok_l) = index(c_nrtsr)+nrts_l
3818 tag_scratch(l) = index(c_nrtsr)+nrts_l
3819 nindx_scrt = nindx_scrt + 1
3820 indx_scrt(nindx_scrt) = l
3822 ibuf_n(ii_stok_l) = tag_scratch(l)
3829 IF(nrts>0)
DEALLOCATE(nrtslocal,cpulocal,candr)
3830 IF(c_nrtsr>0)
DEALLOCATE(index,itri)
3832 IF(inacti==5.OR.inacti==6.OR.inacti==7)ipari_l(24,ni)= c_nrtsr
3839 DEALLOCATE(ibuf_e,ibuf_n)
3860 . TAG_NODE_2RY , TAG_NODE_MSR ,
3861 . CEP , CEL , IGRBRIC ,
3872#include "implicit_f.inc"
3876#include "com04_c.inc"
3880 TYPE(intbuf_struct_) :: INTBUF_TAB
3882 INTEGER PROC,IPARI(*),
3883 . tag_node_2ry(*),tag_node_msr(*),
3888 TYPE (GROUP_) ,
DIMENSION(NGRBRIC) :: IGRBRIC
3898 . nsn,nrtm,nrts,nme,
3900 . ige,ign,nad,ead,nas,
3912 ie = igrbric(ign)%ENTITY(k)
3915 tag_node_2ry(cnsn_l) = k
3920 ie = igrbric(ige)%ENTITY(k)
3923 tag_node_msr(cnme_l) = k
3946 . PROC , INTBUF_TAB, IPARI ,
3947 . TAG_NODE_2RY, TAG_SEGM , TAG_NODE_MSR,
3948 . TAG_SEGM2 , TAG_NM , TAG_NLINS,TAG_NLINM,
3949 . TAG_NLINS2 , TAG_NLINM2, TAG_NLG ,TAG_NLG2,
3950 . TAG_SCRATCH , INTERCEP , IPARI_L ,NI ,TAG_NSNE,
3951 . TAG_NMNE , TAG_NSVE , TAG_MSRE ,NINDX_NM,INDX_NM,
3952 . NINDX_SCRT , INDX_SCRT)
3961#include "implicit_f.inc"
3965#include "com04_c.inc"
3966#include
"param_c.inc"
3970 TYPE(intbuf_struct_) :: INTBUF_TAB
3973 INTEGER PROC,IPARI(*),NI,
3974 . tag_node_2ry(*),tag_segm(*),tag_nm(*),tag_node_msr(*),
3975 . tag_segm2(*),tag_scratch(*),ipari_l(npari,ninter),
3976 . tag_nlins(*), tag_nlinm(*),tag_nlins2(*), tag_nlinm2(*),
3977 . tag_nlg(*),tag_nsne(*),tag_nmne(*),tag_nsve(*),tag_msre(*),
3979 INTEGER,
INTENT(INOUT) ::NINDX_NM,NINDX_SCRT
3980 INTEGER,
DIMENSION(*),
INTENT(INOUT) ::INDX_NM,INDX_SCRT
3991 . nlins,nlinm,nlinsa,nlinma,nsne,nmne,
3992 . i,j,k,l,n,n1,n2,n3,n4,e,
3993 .
nl,n1l,n2l,n3l,n4l,
3994 . ncont,ncont1,ncont2,
3995 . cnsn_l,cnrtm_l,cnmn_l,cnln_l,
3996 . cnlins_l,cnlinsa_l,cnlinm_l,
3997 . cnlinma_l,cnmne_l ,cnsne_l
4020 IF(intercep(1,ni)%P(k)==proc+1)
THEN
4021 n1l = intbuf_tab%IRECTM(4*(k-1)+1)
4022 n2l = intbuf_tab%IRECTM(4*(k-1)+2)
4023 n3l = intbuf_tab%IRECTM(4*(k-1)+3)
4024 n4l = intbuf_tab%IRECTM(4*(k-1)+4)
4025 n1 = intbuf_tab%NLG(n1l)
4026 n2 = intbuf_tab%NLG(n2l)
4027 n3 = intbuf_tab%NLG(n3l)
4028 n4 = intbuf_tab%NLG(n4l)
4029 cnrtm_l = cnrtm_l + 1
4030 tag_segm(cnrtm_l) = k
4031 tag_segm2(k) = cnrtm_l
4032 IF(tag_nm(n1)==0)
THEN
4034 nindx_nm = nindx_nm + 1
4035 indx_nm(nindx_nm) = n1
4037 IF(tag_nm(n2)==0)
THEN
4039 nindx_nm = nindx_nm + 1
4040 indx_nm(nindx_nm) = n2
4042 IF(tag_nm(n3)==0)
THEN
4044 nindx_nm = nindx_nm + 1
4045 indx_nm(nindx_nm) = n3
4047 IF(tag_nm(n4)==0)
THEN
4049 nindx_nm = nindx_nm + 1
4050 indx_nm(nindx_nm) = n4
4057 n = intbuf_tab%MSR(i)
4058 n1 = intbuf_tab%NLG(n)
4059 IF(tag_nm(n1)==1)
THEN
4061 tag_node_msr(cnmn_l) = i
4068 nl=intbuf_tab%NSV(k)
4069 n =intbuf_tab%NLG(
nl)
4070 IF(nlocal(n,proc+1)==1.AND.tag_scratch(n)==0)
THEN
4072 tag_node_2ry(cnsn_l) = k
4074 nindx_scrt = nindx_scrt + 1
4075 indx_scrt(nindx_scrt) = n
4076 IF(tag_nm(n)==0)
THEN
4079 nindx_nm = nindx_nm + 1
4080 indx_nm(nindx_nm) = n
4086#include "vectorize.inc"
4103 n1l = intbuf_tab%IXLINS(2*(k-1)+1)
4104 n2l = intbuf_tab%IXLINS(2*(k-1)+2)
4105 n1 = intbuf_tab%NLG(n1l)
4106 n2 = intbuf_tab%NLG(n2l)
4107 IF(intercep(3,ni)%P(k)==proc+1)
THEN
4108 cnlins_l = cnlins_l + 1
4109 tag_nlins(cnlins_l) = k
4110 tag_nlins2(k) = cnlins_l
4112 IF(k<=nlinsa)cnlinsa_l = cnlinsa_l + 1
4113 IF (tag_scratch(n1)==0)
THEN
4114 cnsne_l = cnsne_l + 1
4115 tag_nsne(cnsne_l) = n1
4116 tag_nsve(cnsne_l) = n1l
4118 nindx_scrt = nindx_scrt + 1
4119 indx_scrt(nindx_scrt) = n1
4120 IF(tag_nm(n1)==0)
THEN
4123 nindx_nm = nindx_nm + 1
4124 indx_nm(nindx_nm) = n1
4127 IF (tag_scratch(n2)==0)
THEN
4128 cnsne_l = cnsne_l + 1
4129 tag_nsne(cnsne_l) = n2
4130 tag_nsve(cnsne_l) = n2l
4132 nindx_scrt = nindx_scrt + 1
4133 indx_scrt(nindx_scrt) = n2
4134 IF(tag_nm(n2)==0)
THEN
4137 nindx_nm = nindx_nm + 1
4138 indx_nm(nindx_nm) = n2
4144#include "vectorize.inc"
4146 n1l = intbuf_tab%IXLINS(2*(k-1)+1)
4147 n2l = intbuf_tab%IXLINS(2*(k-1)+2)
4148 n1 = intbuf_tab%NLG(n1l)
4149 n2 = intbuf_tab%NLG(n2l)
4155 n1l = intbuf_tab%IXLINM(2*(k-1)+1)
4156 n2l = intbuf_tab%IXLINM(2*(k-1)+2)
4157 n1 = intbuf_tab%NLG(n1l)
4158 n2 = intbuf_tab%NLG(n2l)
4159 IF(intercep(2,ni)%P(k)==proc+1)
THEN
4160 cnlinm_l = cnlinm_l + 1
4161 tag_nlinm(cnlinm_l) = k
4162 tag_nlinm2(k) = cnlinm_l
4164 IF(k<=nlinma)cnlinma_l = cnlinma_l + 1
4165 IF (tag_scratch(n1)==0)
THEN
4166 cnmne_l = cnmne_l + 1
4167 tag_nmne(cnmne_l) = n1
4168 tag_msre(cnmne_l) = n1l
4170 nindx_scrt = nindx_scrt + 1
4171 indx_scrt(nindx_scrt) = n1
4172 IF(tag_nm(n1)==0)
THEN
4175 nindx_nm = nindx_nm + 1
4176 indx_nm(nindx_nm) = n1
4179 IF (tag_scratch(n2)==0)
THEN
4180 cnmne_l = cnmne_l + 1
4181 tag_nmne(cnmne_l) = n2
4182 tag_msre(cnmne_l) = n2l
4184 nindx_scrt = nindx_scrt + 1
4185 indx_scrt(nindx_scrt) = n2
4186 IF(tag_nm(n2)==0)
THEN
4189 nindx_nm = nindx_nm + 1
4190 indx_nm(nindx_nm) = n2
4197#include "vectorize.inc"
4199 n1l = intbuf_tab%IXLINM(2*(k-1)+1)
4200 n2l = intbuf_tab%IXLINM(2*(k-1)+2)
4201 n1 = intbuf_tab%NLG(n1l)
4202 n2 = intbuf_tab%NLG(n2l)
4213 ncont = nint(nsn*rcont)
4214 IF(cnmn_l>0.AND.nsn>0) ncont1 =
max(ncont,1)
4221 ncont = nint(nsne*rcont)
4222 IF(cnmne_l>0.AND.nsne>0) ncont2 =
max(ncont,1)
4224 ncont =
max(ncont1,ncont2)
4231 i = intbuf_tab%NLG(l)
4232 IF(tag_nm(i) == 1)
THEN
4240 ipari_l(35,ni) = cnln_l
4241 ipari_l(51,ni) = cnlins_l
4242 ipari_l(52,ni) = cnlinm_l
4243 ipari_l(53,ni) = cnlinsa_l
4244 ipari_l(54,ni) = cnlinma_l
4245 ipari_l(55,ni) = cnsne_l
4246 ipari_l(56,ni) = cnmne_l
4263#include "implicit_f.inc"
4267 INTEGER TAG_SEG(*),DIM1,DIM2
4275 my_real,
DIMENSION(:),
ALLOCATABLE :: rbuf
4277 ALLOCATE(rbuf(dim1*dim2))
4281 rbuf(dim2*(i-1)+j) = tab(dim2*(k-1)+j)
4305#include "implicit_f.inc"
4309 INTEGER TAB(*),TAG(*),TAB_NLG(*),TAG_NLG(*),DIM1,DIM2
4314 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF
4316 ALLOCATE(IBUF(DIM1*DIM2))
4320 n = tab_nlg(tab(dim2*(k-1)+j))
4321 ibuf(dim2*(i-1)+j) = tag_nlg(n)
4346#include "implicit_f.inc"
4350 INTEGER TAG_SEG(*),TAG_NLG(*),DIM1
4355 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF
4357 ALLOCATE(IBUF(DIM1))
4360 ibuf(i) = tag_nlg(k)
4382#include "implicit_f.inc"
4386 INTEGER TAG_NLINS2(*),TAG_II(*),II_STOK
4388 TYPE(intbuf_struct_) :: INTBUF_TAB
4399 e = intbuf_tab%LCAND_N(k)
4400 IF (tag_nlins2(e)/=0)
THEN
4420 . TAG_SEGM2 , II_STOK , MULTIMP, NCONT ,
4421 . NOINT , INACTI , TAG_SCRATCH ,
4422 . II_STOK_L , IPARI_L,NI,NINDX_SCRT,INDX_SCRT)
4431#include "implicit_f.inc"
4435#include "com01_c.inc"
4436#include "com04_c.inc"
4437#include "param_c.inc"
4441 INTEGER PROC,NSN,NSN_L,II_STOK,MULTIMP,NCONT,
4442 . TAG_SEGM2(*),NOINT,INACTI,NI,
4443 . TAG_SCRATCH(*) , II_STOK_L, IPARI_L(NPARI,NINTER)
4444 INTEGER,
INTENT(INOUT) ::NINDX_SCRT
4445 INTEGER,
DIMENSION(*),
INTENT(INOUT) ::INDX_SCRT
4447 TYPE(INTBUF_STRUCT_) :: INTBUF_TAB
4456 INTEGER I,J,K,N,P,E,MULTOK,MSGID,
4458 INTEGER NUMP(NSPMD),WORK(70000)
4460 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
4461 . IBUF_E,IBUF_N,NSNLOCAL,,CANDR,PLIST,
4464 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: ITRI
4466 ALLOCATE(ibuf_e(multimp*ncont),ibuf_n(multimp*ncont))
4468 ibuf_e(1:multimp*ncont) = 0
4469 ibuf_n(1:multimp*ncont) = 0
4472 IF(inacti==5.OR.inacti==6.OR.inacti==7)
THEN
4474 ALLOCATE(nsnlocal(nsn))
4475 ALLOCATE(cpulocal(nsn))
4476 ALLOCATE(candr(nsn))
4481 ALLOCATE(plist(nspmd))
4485 n = intbuf_tab%NSV(k)
4487 IF(tag_scratch(n)==0)
THEN
4494 IF(nlocal(n,proc+1)==1)
THEN
4495 nsnlocal(k) = nump(proc+1)
4496 cpulocal(k) = proc+1
4499 nsnlocal(k) = nump(p)
4503 nindx_scrt = nindx_scrt + 1
4504 indx_scrt(nindx_scrt) = n
4510#include "vectorize.inc"
4522 e = intbuf_tab%CAND_E(k)
4523 IF (tag_segm2(e)/=0)
THEN
4524 n = intbuf_tab%CAND_N(k)
4525 IF(tag_scratch(n)==0)
THEN
4527 nindx_scrt = nindx_scrt + 1
4528 indx_scrt(nindx_scrt) = n
4529 IF(nlocal(intbuf_tab%NSV(n),proc+1)/=1)
THEN
4538#include "vectorize.inc"
4548 ALLOCATE(index(2*c_nsnr))
4549 ALLOCATE(itri(2,c_nsnr))
4553 itri(1,i) = cpulocal(n)
4554 itri(2,i) = nsnlocal(n)
4556 CALL my_orders(0,work,itri,index,c_nsnr,2)
4559 index(c_nsnr+index(i)) = i
4562 index(i)=index(c_nsnr+i)
4569 e = intbuf_tab%CAND_E(k)
4570 IF (tag_segm2(e)/=0)
THEN
4571 ii_stok_l = ii_stok_l + 1
4575 IF(ii_stok_l>multimp*ncont)
THEN
4576 multok= ii_stok_l/ncont
4586 e = intbuf_tab%CAND_E(k)
4587 IF (tag_segm2(e)/=0)
THEN
4588 n = intbuf_tab%CAND_N(k)
4589 ii_stok_l = ii_stok_l + 1
4590 ibuf_e(ii_stok_l)=tag_segm2(e)
4592 IF(nlocal(intbuf_tab%NSV(n),proc+1)==1)
THEN
4593 ibuf_n(ii_stok_l)=nsnlocal(n)
4597 IF(tag_scratch(n)==0)
THEN
4599 ibuf_n(ii_stok_l)=index(c_nsnr)+nsn_l
4600 tag_scratch(n) = index(c_nsnr)+nsn_l
4601 nindx_scrt = nindx_scrt + 1
4602 indx_scrt(nindx_scrt) = n
4604 ibuf_n(ii_stok_l) = tag_scratch(n)
4612#include
"vectorize.inc"
4619 IF(nsn>0)
DEALLOCATE(nsnlocal,cpulocal,candr)
4620 IF(c_nsnr>0)
DEALLOCATE(index,itri)
4622 IF(inacti==5.OR.inacti==6.OR.inacti==7)ipari_l(24,ni)= c_nsnr
4629 DEALLOCATE(ibuf_e,ibuf_n)
4639!||--- uses ----------------------------------------------------
4643 . TAG_NLINS2, II_STOKE , MULTIMP, NCONTE ,
4644 . NOINT , INACTI , TAG_SCRATCH ,
4645 . II_STOKE_L, IPARI_L , NI ,NINDX_SCRT ,
4655#include "implicit_f.inc"
4659#include "com01_c.inc"
4660#include "com04_c.inc"
4661#include
"param_c.inc"
4665 INTEGER PROC,NLINS,NLINS_L,II_STOKE,MULTIMP,NCONTE,
4666 . TAG_NLINS2(*),NOINT,INACTI,NI,
4667 . TAG_SCRATCH(*) , II_STOKE_L , IPARI_L(NPARI,NINTER)
4668 INTEGER,
INTENT(INOUT) :: NINDX_SCRT
4669 INTEGER,
DIMENSION(*),
INTENT(INOUT) ::INDX_SCRT
4671 TYPE(intbuf_struct_) :: INTBUF_TAB
4680 INTEGER I,J,K,L,N,P,N1L,N2L,N1,N2,E,MULTOK,MSGID,
4682 INTEGER NUMP(NSPMD),WORK(70000)
4684 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
4685 . ibuf_e,ibuf_n,nrtslocal,cpulocal,candr,plist
4688 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: ITRI
4690 ALLOCATE(ibuf_e(multimp*nconte),ibuf_n(multimp*nconte))
4691 ibuf_e(1:multimp*nconte) = 0
4692 ibuf_n(1:multimp*nconte) = 0
4695 IF(inacti==5.OR.inacti==6.OR.inacti==7)
THEN
4697 ALLOCATE(nrtslocal(nlins))
4698 ALLOCATE(cpulocal(nlins))
4699 ALLOCATE(candr(nlins))
4705 n1l = intbuf_tab%IXLINS(2*(k-1)+1)
4706 n2l = intbuf_tab%IXLINS(2*(k-1)+2)
4707 n1 = intbuf_tab%NLG(n1l)
4708 n2 = intbuf_tab%NLG(n2l)
4710 IF(nlocal(n1,proc+1)==1.AND.
4711 . nlocal(n2,proc+1)==1)
THEN
4712 nump(proc+1) = nump(proc+1) + 1
4713 nrtslocal(k) = nump(proc+1)
4714 cpulocal(k) = proc+1
4717 IF(p/=proc+1.AND.nlocal(n1,p)==1.AND.
4718 . nlocal(n2,p)==1)
THEN
4719 IF(nrtslocal(k)==0)
THEN
4720 nump(p) = nump(p) + 1
4721 nrtslocal(k) = nump(p)
4733 e = intbuf_tab%LCAND_N(k)
4734 IF (tag_nlins2(e)/=0)
THEN
4735 n = intbuf_tab%LCAND_S(k)
4736 IF(tag_scratch(n)==0)
THEN
4738 nindx_scrt = nindx_scrt + 1
4739 indx_scrt(nindx_scrt) = n
4740 n1l = intbuf_tab%IXLINS
4741 n2l = intbuf_tab%IXLINS(2*(n-1)+2)
4742 n1 = intbuf_tab%NLG(n1l)
4743 n2 = intbuf_tab%NLG(n2l)
4744 IF(cpulocal(n)/=proc+1)
THEN
4745 c_nlinsr = c_nlinsr + 1
4753#include "vectorize.inc"
4763 ALLOCATE(index(2*c_nlinsr))
4764 ALLOCATE(itri(2,c_nlinsr))
4768 itri(1,i) = cpulocal(n)
4769 itri(2,i) = nrtslocal(n)
4771 CALL my_orders(0,work,itri,index,c_nlinsr,2)
4774 index(c_nlinsr+index(i)) = i
4777 index(i)=index(c_nlinsr+i)
4785 e = intbuf_tab%LCAND_N(k)
4786 IF (tag_nlins2(e)/=0)
THEN
4787 ii_stoke_l = ii_stoke_l + 1
4788 ibuf_e(ii_stoke_l)=tag_nlins2(e)
4789 l = intbuf_tab%LCAND_N(k)
4790 n1l = intbuf_tab%IXLINS(2*(l-1)+1)
4791 n2l = intbuf_tab%IXLINS(2*(l-1)+2)
4792 n1 = intbuf_tab%IXLINS(n1l)
4793 n2 = intbuf_tab%IXLINS(n2l)
4794 IF(cpulocal(l) == proc+1)
THEN
4795 ibuf_n(ii_stoke_l)=nrtslocal(l)
4798 IF(tag_scratch(l)==0)
THEN
4799 c_nlinsr = c_nlinsr + 1
4800 ibuf_n(ii_stoke_l) = index(c_nlinsr)+nlins_l
4801 tag_scratch(l) = index(c_nlinsr)+nlins_l
4802 nindx_scrt = nindx_scrt + 1
4803 indx_scrt(nindx_scrt) = l
4805 ibuf_n(ii_stoke_l) = tag_scratch(l)
4812#include "vectorize.inc"
4819 IF(nlins>0)
DEALLOCATE(nrtslocal,cpulocal,candr)
4820 IF(c_nlinsr>0)
DEALLOCATE(index,itri)
4822 IF(inacti==5.OR.inacti==6.OR.inacti==7) ipari_l(57,ni)= c_nlinsr
4829 DEALLOCATE(ibuf_e,ibuf_n)
4851 . TAG_NODE_2RY, TAG_SEGM , TAG_NODE_2RY2,
4852 . TAG_SEGS , TAG_NODE_MSR,
4853 . TAG_SCRATCH , INTERCEP , NI, INTTH ,
4854 . NODLOCAL ,MSR_L_I21 ,MNDD_I21 ,
4855 . NINDX_SCRT ,INDX_SCRT)
4864#include "implicit_f.inc"
4868#include "com01_c.inc"
4869#include "com04_c.inc"
4876 INTEGER PROC,TAG_NODE_2RY(*),TAG_SEGM(*),TAG_NODE_2RY2(*),
4877 . tag_segs(*),tag_node_msr(*),tag_scratch(*), nodlocal(*),
4878 . msr_l_i21(*),mndd_i21(*)
4879 INTEGER,
INTENT(INOUT) :: NINDX_SCRT
4880 INTEGER,
DIMENSION(*),
INTENT(INOUT) ::INDX_SCRT
4882 TYPE(intbuf_struct_) :: INTBUF_TAB
4893 INTEGER,
DIMENSION(:),
ALLOCATABLE :: PLIST
4895 . nsn,nrtm,nmn,nrts,intth, nmng,flagloadp
4898 . i,j,k,l,m,n,n1,n2,n3,n4,jj,splist,
4899 . cnrtm_l,cnrts_l,cnsn_l,cnmn_l
4906 flagloadp = ipari(95)
4910 IF(intercep(1,ni)%P(k)==proc+1)
THEN
4911 cnrts_l = cnrts_l + 1
4912 tag_segs(cnrts_l) = k
4919 IF(nlocal(n,proc+1)==1.AND.tag_scratch(n)==0)
THEN
4921 tag_node_2ry(cnsn_l) = k
4922 tag_node_2ry2(k) = cnsn_l
4924 nindx_scrt = nindx_scrt + 1
4925 indx_scrt(nindx_scrt) = n
4930#include "vectorize.inc"
4939 cnrtm_l = cnrtm_l + 1
4940 tag_segm(cnrtm_l) = k
4945 n = intbuf_tab%MSR(i)
4946 IF(nlocal(n,proc+1)==1.AND.tag_scratch(n)==0)
THEN
4948 tag_node_msr(cnmn_l) = i
4950 nindx_scrt = nindx_scrt + 1
4951 indx_scrt(nindx_scrt) = n
4956#include "vectorize.inc"
4964 ALLOCATE(plist(nspmd))
4966 IF (intth == 2.OR.flagloadp > 0)
THEN
4968 n = intbuf_tab%MSR(k)
4969 IF(nlocal(n,proc+1)==1)
THEN
4975 mndd_i21(k) = plist(1)
4981 IF (intth == 2.OR.flagloadp > 0)
THEN
4984 n = intbuf_tab%MSR(i)
4985 IF(nlocal(n,proc+1)==1)
THEN
4986 msr_l_i21(i) = nodlocal(n)
5010#include "implicit_f.inc"
5014 INTEGER TAB(*),TAG_II(*),II_STOK_L,MULTIMP,NCONT,
5020 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF
5022 ALLOCATE(ibuf(dim1*dim2))
5023 ibuf(1:dim1*dim2) = 0
5028 ibuf(dim2*(i-1)+j) = tab(dim2*(k-1)+j)
5054#include "implicit_f.inc"
5058 INTEGER TAB(*),TAG_II(*),II_STOK_L,
5059 . dim1,tag_node_2ry2(*)
5064 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF
5066 ALLOCATE(ibuf(dim1))
5072 ibuf(i) = tag_node_2ry2(n)
5096#include "implicit_f.inc"
5100 INTEGER TAG_NODE_2RY2(*),TAG_II(*),II_STOK, PROC
5102 TYPE(intbuf_struct_) :: INTBUF_TAB
5118 m = intbuf_tab%CAND_N(k)
5119 n = intbuf_tab%NSV(m)
5120 IF (nlocal(n,proc+1)==1)
THEN
5121 IF(abs(intbuf_tab%IRTLM(2*(m-1)+1))==intbuf_tab%CAND_E(k))
THEN
5148 . INTERCEP , TAG_NODE_2RY, TAG_SEGM ,
5149 . TAG_SEGM2, TAG_NM , TAG_NODE_MSR,
5150 . TAG_SCRATCH,NODLOCAL24 ,NODLOCAL,
5152 . NUMNOD_L,TAG_NSNE,TAG_SEGS,TAG_SEGS2,NI,TAG_2RY_INV,
5153 . IEDGE4,TAG_NODE_2RY2,TAG_IELEM,CEP,CEL,TAG_SEGSS,
5154 . NINDX_NM,INDX_NM,NINDX_SCRT,INDX_SCRT,
5155 . NINDX_NDLOCAL24,INDX_NDLOCAL24,INTERCEP3)
5164#include "implicit_f.inc"
5168#include "com04_c.inc"
5172 TYPE(intbuf_struct_) :: INTBUF_TAB
5173 TYPE(INTERSURFP) :: INTERCEP,INTERCEP2,INTERCEP3
5175 INTEGER PROC,INTNITSCHE,IPARI(*),
5176 . TAG_NODE_2RY(*),TAG_SEGM(*),TAG_NM(*),TAG_NODE_MSR(*),
5177 . TAG_SEGM2(*),TAG_SCRATCH(*),NODLOCAL24(*) ,NODLOCAL(*),
5178 . numnod_l,tag_nsne(*),tag_segs(*),tag_segs2(*),ni,tag_2ry_inv(*),iedge4,
5179 . tag_node_2ry2(*),tag_ielem(*),cep(*),cel(*),tag_segss(*)
5180 INTEGER,
INTENT(INOUT) ::NINDX_NM,NINDX_SCRT,NINDX_NDLOCAL24
5181 INTEGER,
DIMENSION(*),
INTENT(INOUT) ::INDX_NM,INDX_SCRT,INDX_NDLOCAL24
5199 . NSN,NRTM,NMN,NRTS,
5200 . I,J,K,N,N1,N2,N3,N4,E,IE,IE_LOC,PROC2,
5201 . CNSN_L,CNRTM_L,CNMN_L,NRTSE,NSNE,NSN0,NSNE_COUNT,,
5214 intnitsche = ipari(86)
5219 IF( (nodlocal(n)/=0.AND.nodlocal(n)<=numnod_l)
5220 + .AND.tag_scratch(n)==0)
THEN
5222 tag_node_2ry(cnsn_l) = k
5223 IF(iedge4 > 0) tag_2ry_inv(k)=cnsn_l
5225 nindx_scrt = nindx_scrt + 1
5226 indx_scrt(nindx_scrt) = n
5230 DO k=1+nsn0, nsne+nsn0
5231 n=intbuf_tab%NSV(k)-numnod
5232 se1 = intbuf_tab%IS2SE(2*(n-1)+1)
5233 IF (intercep2%P(se1)==proc+1)
THEN
5235 tag_node_2ry(cnsn_l) = k
5236 tag_2ry_inv(k)=cnsn_l
5241#include "vectorize.inc"
5253 n1 = intbuf_tab%IRECTM(4*(k-1)+1)
5254 n2 = intbuf_tab%IRECTM(4*(k-1)+2)
5255 n3 = intbuf_tab%IRECTM(4*(k-1)+3)
5256 n4 = intbuf_tab%IRECTM(4*(k-1)+4)
5257 IF(intercep%P(k)==proc+1)
THEN
5258 cnrtm_l = cnrtm_l + 1
5259 tag_segm(cnrtm_l) = k
5260 tag_segm2(k) = cnrtm_l
5261 IF(tag_nm(n1)==0)
THEN
5263 nindx_nm = nindx_nm + 1
5264 indx_nm(nindx_nm) = n1
5266 IF(tag_nm(n2)==0)
THEN
5268 nindx_nm = nindx_nm + 1
5269 indx_nm(nindx_nm) = n2
5271 IF(tag_nm(n3)==0)
THEN
5273 nindx_nm = nindx_nm + 1
5274 indx_nm(nindx_nm) = n3
5276 IF(tag_nm(n4)==0)
THEN
5278 nindx_nm = nindx_nm + 1
5279 indx_nm(nindx_nm) = n4
5286 n = intbuf_tab%MSR(i)
5287 IF(tag_nm(n)==1)
THEN
5289 tag_node_msr(cnmn_l) = i
5295 tag_node_2ry2(n) = i
5313 se1 = intbuf_tab%IS2SE(2*(i-1)+1)
5314 IF (intercep2%P(se1)==proc+1)
THEN
5315 nsne_count=nsne_count+1
5316 nodlocal24(numnod+i) = numnod_l + nsne_count
5317 nindx_ndlocal24 = nindx_ndlocal24 + 1
5318 indx_ndlocal24(nindx_ndlocal24) = numnod+i
5319 tag_nsne(nsne_count)=i
5325 IF(intercep2%P(i)==proc+1)
THEN
5326 nrtse_count=nrtse_count+1
5327 tag_segs(nrtse_count)=i
5328 tag_segs2(i)=nrtse_count
5336 IF(intnitsche > 0)
THEN
5341 IF(intercep3%P(k)==proc+1)
THEN
5342 cnrts_l = cnrts_l + 1
5343 tag_segss(cnrts_l) = k
5351 ie = intbuf_tab%IELNRTS(k)
5355 tag_ielem(i) = ie_loc
5382#include "implicit_f.inc"
5386 INTEGER (*),DIM1,TAG(*),TAG2(*)
5391 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF
5393 ALLOCATE(ibuf(dim1))
5427#include "implicit_f.inc"
5431 INTEGER TAB(*),TAG_SEG(*),DIM1,DIM2,NODLOCAL(*)
5436 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF
5438 ALLOCATE(ibuf(dim1*dim2))
5442 n = tab(dim2*(k-1)+j)
5445 ibuf(dim2*(i-1)+j) = nodlocal(n)
5447 ibuf(dim2*(i-1)+j) = -nodlocal(-n)
5449 ibuf(dim2*(i-1)+j) = 0
5473#include "implicit_f.inc"
5477 INTEGER TAB(5,*),TAG_SEG(*),DIM1,DIM2,NODLOCAL(*)
5481 INTEGER I,J,K,N1,N2,N3,N4,NI
5482 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: IBUF
5484 ALLOCATE(ibuf(5,dim1))
5492 ibuf(1,i)=nodlocal(n1)
5493 ibuf(2,i)=nodlocal(n2)
5494 ibuf(3,i)=nodlocal(n3)
5495 ibuf(4,i)=nodlocal(n4)
5518 . TAG_SEGM2, II_STOK , MULTIMP, NCONT ,
5519 . NOINT , INACTI , TAG_SCRATCH ,II_STOK_L,
5520 . INTERCEP2, NINDX_SCRT, INDX_SCRT ,NODLOCAL ,
5531#include "implicit_f.inc"
5535#include "com01_c.inc"
5536#include "com04_c.inc"
5540 INTEGER PROC,NSN,NSN_L,II_STOK,MULTIMP,NCONT,
5541 . tag_segm2(*),noint,inacti,
5542 . tag_scratch(*) , ii_stok_l, ityp
5543 INTEGER,
INTENT(INOUT) :: NINDX_SCRT
5544 INTEGER,
INTENT(IN) :: NUMNOD_L
5545 INTEGER,
DIMENSION(*),
INTENT(INOUT) :: INDX_SCRT
5546 INTEGER,
DIMENSION(*),
INTENT(IN) :: NODLOCAL
5548 TYPE(intbuf_struct_) :: INTBUF_TAB
5549 TYPE(INTERSURFP) :: INTERCEP2
5575 INTEGER I,J,K,N,P,E,MULTOK,MSGID,
5576 . splist,c_nsnr,nn,se1,my_node
5577 INTEGER NUMP(NSPMD),WORK(70000)
5579 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
5580 . ibuf_e,ibuf_n,nsnlocal,cpulocal,candr,plist,
5583 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: ITRI
5588 ALLOCATE(ibuf_e(multimp*ncont),ibuf_n(multimp*ncont))
5589 ibuf_e(1:multimp*ncont) = 0
5590 ibuf_n(1:multimp*ncont) = 0
5594 ALLOCATE(nsnlocal(nsn))
5595 ALLOCATE(cpulocal(nsn))
5596 ALLOCATE(candr(nsn))
5601 ALLOCATE(plist(nspmd))
5604 n = intbuf_tab%NSV(k)
5606 IF(tag_scratch(n)==0)
THEN
5614 IF( nodlocal( n )/=0.AND.nodlocal(n)<=numnod_l )
THEN
5615 nsnlocal(k) = nump(proc+1)
5616 cpulocal(k) = proc+1
5619 nsnlocal(k) = nump(p)
5625 se1 = intbuf_tab%IS2SE(2*(nn-1)+1)
5626 p = intercep2%P(se1)
5628 nsnlocal(k) = nump(p)
5633 nindx_scrt = nindx_scrt + 1
5634 indx_scrt(nindx_scrt) = n
5640#include "vectorize.inc"
5652 e = intbuf_tab%CAND_E(k)
5653 IF (tag_segm2(e)/=0)
THEN
5654 n = intbuf_tab%CAND_N(k)
5656 IF(tag_scratch(n)==0)
THEN
5658 nindx_scrt = nindx_scrt + 1
5659 indx_scrt(nindx_scrt) = n
5660 IF(intbuf_tab%NSV(n) <= numnod)
THEN
5661 my_node = intbuf_tab%NSV(n)
5662 IF( nodlocal( my_node ) ==0.OR.nodlocal( my_node )>numnod_l )
THEN
5667 nn = intbuf_tab%NSV(n) - numnod
5668 se1 = intbuf_tab%IS2SE(2*(nn-1)+1)
5669 p = intercep2%P(se1)
5670 IF(p/= (proc+1) )
THEN
5680#include "vectorize.inc"
5690 ALLOCATE(index(2*c_nsnr))
5691 ALLOCATE(itri(2,c_nsnr))
5695 itri(1,i) = cpulocal(n)
5696 itri(2,i) = nsnlocal(n)
5698 CALL my_orders(0,work,itri,index,c_nsnr,2)
5701 index(c_nsnr+index(i)) = i
5704 index(i)=index(c_nsnr+i)
5711 e = intbuf_tab%CAND_E(k)
5712 IF (tag_segm2(e)/=0)
THEN
5713 ii_stok_l = ii_stok_l + 1
5717 IF(ii_stok_l>multimp*ncont)
THEN
5718 multok= ii_stok_l/ncont
5728 e = intbuf_tab%CAND_E(k)
5729 IF (tag_segm2(e)/=0)
THEN
5730 n = intbuf_tab%CAND_N(k)
5731 ii_stok_l = ii_stok_l + 1
5732 ibuf_e(ii_stok_l)=tag_segm2(e)
5733 IF (intbuf_tab%NSV(n)>numnod)
THEN
5734 nn = intbuf_tab%NSV(n)-numnod
5735 se1 = intbuf_tab%IS2SE(2*(nn-1)+1)
5737 IF(intercep2%P(se1)==(proc+1)) p=1
5740 my_node = intbuf_tab%NSV(n)
5741 IF( nodlocal( my_node )/=0.AND.nodlocal( my_node )<=numnod_l ) p=1
5745 ibuf_n(ii_stok_l)=nsnlocal(n)
5749 IF(tag_scratch(n)==0)
THEN
5751 ibuf_n(ii_stok_l)=index
5752 tag_scratch(n) = index(c_nsnr)+nsn_l
5753 nindx_scrt = nindx_scrt + 1
5754 indx_scrt(nindx_scrt) = n
5756 ibuf_n(ii_stok_l) = tag_scratch(n)
5764#include "vectorize.inc"
5771 IF(nsn>0)
DEALLOCATE(nsnlocal,cpulocal,candr)
5772 IF(c_nsnr>0)
DEALLOCATE(index,itri)
5778 DEALLOCATE(ibuf_e,ibuf_n)
5783!||====================================================================
5793#include "implicit_f.inc"
5797 INTEGER IS2SE(2,*),NSNE_L,TAG_NSNE(*),TAG_SEG2(*)
5802 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: IBUF
5804 ALLOCATE(ibuf(2,nsne_l))
5809 ibuf(1,i)=tag_seg2(se1)
5812 ibuf(2,i)=tag_seg2(se2)
5835!||====================================================================
5848#include "implicit_f.inc"
5852 INTEGER TAB(*),DIMO,DIMN,TAG(*),TAG2(*)
5857 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF
5859 ALLOCATE(ibuf(dimn))
5867 ibuf(i) = tag2(n)+dimn
5874 ibuf(i) = -tag2(-n)-dimn
5898 . INTERCEP , TAG_NODE_2RY , TAG_SEGM ,
5899 . TAG_SEGM2 , TAG_NM , TAG_NODE_MSR ,
5900 . TAG_SCRATCH, TAG_SM ,KNOR2MSR ,
5901 . NOR2MSR ,TAG_NODE_2RY2,NINDX_NM ,
5902 . INDX_NM ,NINDX_SCRT ,INDX_SCRT ,
5912#include "implicit_f.inc"
5916 TYPE(intbuf_struct_) :: INTBUF_TAB
5919 INTEGER PROC,IPARI(*),
5920 . TAG_NODE_2RY(*),TAG_SEGM(*),TAG_NM(*),TAG_NODE_MSR(*),
5921 . TAG_SEGM2(*),TAG_SCRATCH(*),TAG_SM(*),
5922 . KNOR2MSR(*), NOR2MSR(*), TAG_NODE_2RY2(*)
5923 INTEGER,
INTENT(INOUT) :: NINDX_NM,NINDX_SCRT
5924 INTEGER,
DIMENSION(*),
INTENT(INOUT) :: INDX_NM,INDX_SCRT
5935 . I,J,K,L,N,N1,N2,N3,N4,E,
5936 . CNSN_L,CNRTM_L,CNMN_L,NADMSR_L,NRTM_L
5945 IF(nlocal(n,proc+1)==1.AND.tag_scratch(n)==0)
THEN
5947 tag_node_2ry(cnsn_l) = k
5949 tag_node_2ry2(k) = cnsn_l
5950 nindx_scrt = nindx_scrt + 1
5951 indx_scrt(nindx_scrt) = n
5956#include "vectorize.inc"
5966 n1 = intbuf_tab%IRECTM(4*(k-1)+1)
5967 n2 = intbuf_tab%IRECTM(4*(k-1)+2)
5968 n3 = intbuf_tab%IRECTM(4*(k-1)+3)
5969 n4 = intbuf_tab%IRECTM(4*(k-1)+4)
5970 IF(intercep%P(k)==proc+1)
THEN
5971 cnrtm_l = cnrtm_l + 1
5972 tag_segm(cnrtm_l) = k
5973 tag_segm2(k) = cnrtm_l
5974 IF(tag_nm(n1)==0)
THEN
5976 nindx_nm = nindx_nm + 1
5977 indx_nm(nindx_nm) = n1
5979 IF(tag_nm(n2)==0)
THEN
5981 nindx_nm = nindx_nm + 1
5982 indx_nm(nindx_nm) = n2
5984 IF(tag_nm(n3)==0)
THEN
5986 nindx_nm = nindx_nm + 1
5987 indx_nm(nindx_nm) = n3
5989 IF(tag_nm(n4)==0)
THEN
5991 nindx_nm = nindx_nm + 1
5992 indx_nm(nindx_nm) = n4
6000 n1 = intbuf_tab%ADMSR(4*(k-1)+1)
6001 n2 = intbuf_tab%ADMSR(4*(k-1)+2)
6002 n3 = intbuf_tab%ADMSR(4*(k-1)+3)
6003 n4 = intbuf_tab%ADMSR(4*(k-1)+4)
6004 IF(intercep%P(k)==proc+1)
THEN
6005 IF(tag_sm(n1)==0)
THEN
6009 IF(tag_sm(n2)==0)
THEN
6013 IF(tag_sm(n3)==0)
THEN
6017 IF(tag_sm(n4)==0)
THEN
6026 n = intbuf_tab%MSR(i)
6027 IF(tag_nm(n)==1)
THEN
6029 tag_node_msr(cnmn_l) = i
6037 IF(intercep%P(i)==proc+1)
THEN
6039 n = tag_sm(intbuf_tab%ADMSR(4*(i-1)+k))
6040 knor2msr(n) = knor2msr(n) + 1
6042 IF(intbuf_tab%IRECTM(4*(i-1)+3)/=intbuf_tab%IRECTM(4*(i-1)+4))
THEN
6043 n = tag_sm(intbuf_tab%ADMSR(4*(i-1)+4))
6044 knor2msr(n) = knor2msr(n) + 1
6050 knor2msr(i+1) = knor2msr(i+1) + knor2msr(i)
6054 knor2msr(i+1)=knor2msr(i)
6061 IF(intercep%P(i)==proc+1)
THEN
6063 n = tag_sm(intbuf_tab%ADMSR(4*(i-1)+k))
6064 knor2msr(n) = knor2msr(n) + 1
6065 nor2msr(knor2msr(n)) = tag_segm2(i)
6067 IF(intbuf_tab%IRECTM(4*(i-1)+3)/=intbuf_tab%IRECTM(4*(i-1)+4))
THEN
6068 n = tag_sm(intbuf_tab%ADMSR(4*(i-1)+4))
6069 knor2msr(n) = knor2msr(n) + 1
6070 nor2msr(knor2msr(n)) = tag_segm2(i)
6076 knor2msr(i+1)=knor2msr(i)
6084!||--- called by ------------------------------------------------------
6110#include "implicit_f.inc"
6114#include "param_c.inc"
6115#include "assert.inc"
6119 INTEGER NEDGE, NEDGE_L, NRTM_L, LEDGE(NLEDGE,*), MSEGLO(*), SEGLOC(*), NODLOCAL(*)
6121 INTEGER :: TAG_EDGE(NEDGE_L)
6122 INTEGER,
INTENT(IN) :: ITAB(*)
6123 INTEGER,
INTENT(IN) :: IRECTM(4,*)
6124 INTEGER,
INTENT(IN) :: ADMSR(4,*)
6125 INTEGER,
INTENT(IN) :: TAG_SM(*)
6130 INTEGER :: I,E1,K1,E2,K2,CMPT
6132 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF
6133 INTEGER :: NB_FREE_EDGES
6134 INTEGER :: NB_INTERNAL_EDGES
6135 INTEGER :: NB_BOUNDARY_EDGES_LOCAL
6136 INTEGER :: NB_BOUNDARY_EDGES_REMOTE
6137 INTEGER :: IAS,JAS,IS,N1,N2,I1,I2
6139 ALLOCATE(ibuf(nledge*nedge_l))
6156 IF( k1 > 0 .AND. k2 == -1)
THEN
6157 nb_free_edges = nb_free_edges + 1
6161 assert(ledge(9,i) == proc)
6162 assert(ledge(10,i) == id)
6170 ibuf(cmpt) = ledge(2,i)
6176 ibuf(cmpt) = nodlocal(ledge(5,i))
6178 ibuf(cmpt) = nodlocal(ledge(6,i))
6180 ibuf(cmpt) = ledge(7,i)
6191 IF(irectm(jas,ias)==n1.AND.irectm(mod(jas,4)+1,ias)==n2)
THEN
6193 ELSEIF(irectm(jas,ias)==n2.AND.irectm(mod(jas,4)+1,ias)==n1)
THEN
6202 i2=admsr(mod(jas,4)+1,ias)
6205 i1=admsr(mod(jas,4)+1,ias)
6208 ibuf(cmpt) = tag_sm(i1)
6210 ibuf(cmpt) = tag_sm(i2)
6211 assert(tag_sm(i1) > 0)
6212 assert(tag_sm(i2) > 0)
6224 nb_internal_edges = 0
6236 IF( k1 > 0 .AND. k2 > 0)
THEN
6237 nb_internal_edges = nb_internal_edges + 1
6242 assert(ledge(9,i) == proc)
6243 assert(ledge(10,i) == id)
6251 ibuf(cmpt) = ledge(2,i)
6255 ibuf(cmpt) = ledge(4,i)
6257 ibuf(cmpt) = nodlocal(ledge(5,i))
6259 ibuf(cmpt) = nodlocal(ledge(6,i))
6261 ibuf(cmpt) = ledge(7,i)
6272 IF(irectm(jas,ias)==n1.AND.irectm(mod(jas
THEN
6274 ELSEIF(irectm(jas,ias)==n2.AND.irectm(mod(jas,4)+1,ias)==n1)
THEN
6282 i2=admsr(mod(jas,4)+1,ias)
6285 i1=admsr(mod(jas,4)+1,ias)
6288 ibuf(cmpt) = tag_sm(i1)
6290 ibuf(cmpt) = tag_sm(i2)
6291 assert(tag_sm(i1) > 0)
6292 assert(tag_sm(i2) > 0)
6298 IF(irectm(jas,ias)==n1.AND.irectm(mod(jas,4)+1,ias)==n2)
THEN
6300 ELSEIF(irectm(jas,ias)==n2.AND.irectm(mod(jas,4)+1,ias)==n1)
THEN
6309 i2=admsr(mod(jas,4)+1,ias)
6312 i1=admsr(mod(jas,4)+1,ias)
6315 ibuf(cmpt) = tag_sm(i1)
6317 ibuf(cmpt) = tag_sm(i2)
6318 assert(tag_sm(i1) > 0)
6319 assert(tag_sm(i2) > 0)
6326 nb_boundary_edges_local = 0
6338 IF( k1 > 0 .AND. k2 == 0)
THEN
6339 nb_boundary_edges_local = nb_boundary_edges_local + 1
6342 assert(ledge(9,i) == proc)
6351 ibuf(cmpt) = ledge(2,i)
6357 ibuf(cmpt) = ledge(4,i)
6360 ibuf(cmpt) = nodlocal(ledge(5,i))
6362 ibuf(cmpt) = nodlocal(ledge(6,i))
6364 ibuf(cmpt) = ledge(7,i)
6375 IF(irectm(jas,ias)==n1.AND.irectm(mod(jas,4)+1,ias)==n2)
THEN
6377 ELSEIF(irectm(jas,ias)==n2.AND.irectm(mod(jas,4)+1,ias)==n1)
THEN
6385 i2=admsr(mod(jas,4)+1,ias)
6388 i1=admsr(mod(jas,4)+1,ias)
6391 ibuf(cmpt) = tag_sm(i1)
6393 ibuf(cmpt) = tag_sm(i2)
6394 assert(tag_sm(i1) > 0)
6395 assert(tag_sm(i2) > 0)
6401 IF(irectm(jas,ias)==n1.AND.irectm(mod(jas,4)+1,ias)==n2)
THEN
6403 ELSEIF(irectm(jas,ias)==n2.AND.irectm(mod(jas,4)+1,ias)==n1)
THEN
6411 i2=admsr(mod(jas,4)+1,ias)
6414 i1=admsr(mod(jas,4)+1,ias)
6417 ibuf(cmpt) = tag_sm(i1)
6419 ibuf(cmpt) = tag_sm(i2)
6420 assert(tag_sm(i1) > 0)
6421 assert(tag_sm(i2) > 0)
6426 nb_boundary_edges_remote = 0
6438 IF( k1 == 0 .AND. k2 > 0)
THEN
6439 nb_boundary_edges_remote = nb_boundary_edges_remote + 1
6447 ibuf(cmpt) = ledge(4,i)
6452 ibuf(cmpt) = ledge(2,i)
6455 ibuf(cmpt) = nodlocal(ledge(5,i))
6457 ibuf(cmpt) = nodlocal(ledge(6,i))
6459 ibuf(cmpt) = ledge(7,i)
6470 IF(irectm(jas,ias)==n1.AND.irectm(mod(jas,4)+1,ias)==n2)
THEN
6472 ELSEIF(irectm(jas,ias)==n2.AND.irectm(mod(jas,4)+1,ias)==n1)
THEN
6480 i2=admsr(mod(jas,4)+1,ias)
6483 i1=admsr(mod(jas,4)+1,ias)
6486 ibuf(cmpt) = tag_sm(i1)
6488 ibuf(cmpt) = tag_sm(i2)
6489 assert(tag_sm(i1) > 0)
6490 assert(tag_sm(i2) > 0)
6496 IF(irectm(jas,ias)==n1.AND.irectm(mod(jas,4)+1,ias)==n2)
THEN
6498 ELSEIF(irectm(jas,ias)==n2.AND.irectm(mod(jas,4)+1,ias)==n1)
THEN
6506 i2=admsr(mod(jas,4)+1,ias)
6509 i1=admsr(mod(jas,4)+1,ias)
6512 ibuf(cmpt) = tag_sm(i1)
6514 ibuf(cmpt) = tag_sm(i2)
6515 assert(tag_sm(i1) > 0)
6516 assert(tag_sm(i2) > 0)
6530 i = nb_free_edges+nb_internal_edges+nb_boundary_edges_local + nb_boundary_edges_remote
6531 assert(nedge_l == i)
6543!||--- calls -----------------------------------------------------
6551 . TAG_SEGM2, II_STOK , MULTIMP, NCONT ,
6552 . NOINT , INACTI , TAG_SCRATCH ,II_STOK_L,
6553 . NINDX_SCRT,INDX_SCRT)
6562#include
"implicit_f.inc"
6566#include "com01_c.inc"
6567#include "com04_c.inc"
6571 INTEGER PROC,NSN,NSN_L,II_STOK,MULTIMP,NCONT,
6572 . tag_segm2(*),noint,inacti,
6573 . tag_scratch(*) , ii_stok_l, ityp
6574 INTEGER,
INTENT(INOUT) :: NINDX_SCRT
6575 INTEGER,
DIMENSION(*),
INTENT(INOUT) :: INDX_SCRT
6577 TYPE(intbuf_struct_) :: INTBUF_TAB
6586 INTEGER I,J,K,N,P,E,MULTOK,MSGID,
6588 INTEGER NUMP(NSPMD),WORK(70000)
6590 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
6591 . ibuf_e,ibuf_n,nsnlocal,cpulocal,candr,plist,
6594 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: ITRI
6598 ALLOCATE(ibuf_e(multimp*ncont),ibuf_n(multimp*ncont))
6599 ibuf_e(1:multimp*ncont) = 0
6600 ibuf_n(1:multimp*ncont) = 0
6604 ALLOCATE(nsnlocal(nsn))
6605 ALLOCATE(cpulocal(nsn))
6606 ALLOCATE(candr(nsn))
6611 ALLOCATE(plist(nspmd))
6614 n = intbuf_tab%NSV(k)
6616 IF(tag_scratch(n)==0)
THEN
6623 IF(nlocal(n,proc+1)==1)
THEN
6624 nsnlocal(k) = nump(proc+1)
6625 cpulocal(k) = proc+1
6628 nsnlocal(k) = nump(p)
6632 nindx_scrt = nindx_scrt + 1
6633 indx_scrt(nindx_scrt) = n
6639#include "vectorize.inc"
6651 e = intbuf_tab%CAND_E(k)
6652 IF (tag_segm2(e)/=0)
THEN
6653 n = intbuf_tab%CAND_N(k)
6654 IF (intbuf_tab%NSV(n)> numnod) cycle
6655 IF(tag_scratch(n)==0)
THEN
6657 nindx_scrt = nindx_scrt + 1
6658 indx_scrt(nindx_scrt) = n
6659 IF(nlocal(intbuf_tab%NSV(n),proc+1)/=1)
THEN
6668#include "vectorize.inc"
6678 ALLOCATE(index(2*c_nsnr))
6679 ALLOCATE(itri(2,c_nsnr))
6683 itri(1,i) = cpulocal(n)
6684 itri(2,i) = nsnlocal(n)
6686 CALL my_orders(0,work,itri,index,c_nsnr,2)
6689 index(c_nsnr+index(i)) = i
6692 index(i)=index(c_nsnr+i)
6699 e = intbuf_tab%CAND_E(k)
6700 IF (tag_segm2(e)/=0)
THEN
6701 ii_stok_l = ii_stok_l + 1
6705 IF(ii_stok_l>multimp*ncont)
THEN
6706 multok= ii_stok_l/ncont
6716 e = intbuf_tab%CAND_E(k)
6717 IF (tag_segm2(e)/=0)
THEN
6718 n = intbuf_tab%CAND_N(k)
6719 ii_stok_l = ii_stok_l + 1
6720 ibuf_e(ii_stok_l)=tag_segm2(e)
6721 IF (intbuf_tab%NSV(n)>numnod)
THEN
6723 ELSEIF(nlocal(intbuf_tab%NSV(n),proc+1)==1)
THEN
6724 ibuf_n(ii_stok_l)=nsnlocal(n)
6728 IF(tag_scratch(n)==0)
THEN
6730 ibuf_n(ii_stok_l)=index(c_nsnr)+nsn_l
6731 tag_scratch(n) = index(c_nsnr)+nsn_l
6732 nindx_scrt = nindx_scrt + 1
6733 indx_scrt(nindx_scrt) = n
6735 ibuf_n(ii_stok_l) = tag_scratch(n)
6740 END IF !ii_stok_l>multimp*ncont
6744 e = intbuf_tab%CAND_E(k)
6745 IF (tag_segm2(e)/=0)
THEN
6746 n = intbuf_tab%CAND_N(k)
6747 IF (intbuf_tab%NSV(n)<= numnod) tag_scratch(n) = 0
6751 IF(nsn>0)
DEALLOCATE(nsnlocal,cpulocal,candr)
6752 DEALLOCATE(index,itri)
6758 DEALLOCATE(ibuf_e,ibuf_n)
6770!||====================================================================
6772 . NRTM_L,TAG_SEGM,TAG_SM,INTERCEP)
6784#include "implicit_f.inc"
6788 INTEGER ADSKYN(NADMSR+1),IADNOR(4,*),NADMSR,NADMSR_L,NRTM_L,
6789 . ADMSR(4,*), TAG_SEGM(*),TAG_SM(*)
6794 INTEGER I,J,K,IS,ISL
6795 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ADSKYN_L,IADNOR_L, TAG_MS
6797 ALLOCATE(adskyn_l(nadmsr_l+1),iadnor_l(4*nrtm_l),tag_ms(nadmsr_l))
6799 tag_ms(1:nadmsr_l)=0
6802 IF(k /= 0) tag_ms(k) = i
6808 adskyn_l(k+1)=adskyn_l(k)+adskyn(i+1)-adskyn(i)
6816 iadnor_l(4*(i-1)+j) = iadnor(j,k) - adskyn(is) + adskyn_l(isl)
6823 DEALLOCATE(adskyn_l,iadnor_l,tag_ms)
6843#include "implicit_f.inc"
6847 INTEGER NADMSR,NADMSR_L,LBOUND(*), TAG_SM(*)
6852 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF, TAG_MS
6854 ALLOCATE(tag_ms(nadmsr_l))
6859 IF(k /= 0) tag_ms(k) = i
6862 ALLOCATE(ibuf(nadmsr_l))
6881!||--- called by ------------------------------------------------------
6898#include "implicit_f.inc"
6902 INTEGER ISEGPT(*),TAG_NODE_2RY(*),NSN_L,DIM2,NI,PROC,
6907 INTEGER I,J,K,SN,FICT_SN
6908 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IBUF
6910 ALLOCATE(ibuf(nsn_l))
6916 IF(isegpt(k)==k)
THEN
6918 ELSEIF(-isegpt(k)==k)
THEN
6925 fict_sn = tag_2ry_inv(sn)
6950 . TAG_SEGM2, NREMNODE , NODLOCAL, ITAB ,
6951 . IS2ID ,INTERCEP2 ,NSNE ,NODLOCAL24)
6961#include "implicit_f.inc"
6965#include "com04_c.inc"
6969 INTEGER PROC,NRTM,NRTM_L,
6970 . tag_segm2(*),nremnode,nodlocal(*),
6971 . itab(*),is2id(*),nsne,nodlocal24(*)
6972 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
6975 TYPE(intbuf_struct_) :: INTBUF_TAB
6985 INTEGER I,J,K,SIZ,L,SIZ1,,M,N,SE1,NS,NUMNODT
6987 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
6988 . ibuf1,ibuf2,noddel,noddelremote
6990 ALLOCATE(siz_tmp(nrtm),noddel(numnod+nsne),
6991 . noddelremote(numnod+nsne))
6993 ALLOCATE(ibuf1(2*(nrtm_l + 1)), ibuf2(nremnode))
6994 ibuf1(1:2*(nrtm_l+1)) = 0
6995 ibuf2(1:nremnode) = 0
7000 IF(tag_segm2(k) /= 0)
THEN
7001 siz_tmp(tag_segm2(k)) = intbuf_tab%KREMNODE(k+1)
7002 . -intbuf_tab%KREMNODE(k)
7007 numnodt = numnod + nsne
7008 noddel(1:numnodt) = 0
7009 noddelremote(1:numnodt) = 0
7013 IF(tag_segm2(k) /= 0)
THEN
7015 siz = siz_tmp(tag_segm2(k))
7016 ibuf1(1+2*tag_segm2(k)) =ibuf1(1+2*(tag_segm2(k)-1)) + siz
7017 l=intbuf_tab%KREMNODE(k)
7022 n = intbuf_tab%REMNODE(l+m)
7025 se1 = intbuf_tab%IS2SE(2*(ns-1)+1)
7026 IF (intercep2%P(se1)==proc+1)
THEN
7027 noddel(siz1+1) = nodlocal24(n)
7031 IF(nlocal(n,proc+1)==1)
THEN
7032 noddel(siz1+1) = nodlocal(n)
7039 n = intbuf_tab%REMNODE(l+m)
7042 se1 = intbuf_tab%IS2SE(2*(ns-1)+1)
7043 IF (intercep2%P(se1)/=proc+1)
THEN
7044 noddelremote(siz2+1) = is2id(ns)
7048 IF(nlocal(n,proc+1)/=1)
THEN
7049 noddelremote(siz2+1) = itab(n)
7055 l=ibuf1(1+2*(tag_segm2(k)-1))
7057 ibuf2(1+l+m-1)= noddel(m)
7060 ibuf1(1+2*(tag_segm2(k)-1)+1) = l + siz1
7061 l=ibuf1(1+2*(tag_segm2(k)-1)+1)
7063 ibuf2(1+l+m-1) = - noddelremote(m)
7075 DEALLOCATE(siz_tmp,noddel,noddelremote)
7080 DEALLOCATE(ibuf1, ibuf2)
7094 . TAG_SEGM2, NODLOCAL, ITAB ,NUMNOD_L, TAG_SEGS2,
7104#include "implicit_f.inc"
7108 INTEGER PROC,NRTM,NRTM_L,
7109 . tag_segm2(*),nremnode,nodlocal(*),
7110 . itab(*),tag_segs2(*)
7111 INTEGER,
INTENT(IN) :: NUMNOD_L,NREMNODE_L
7113 TYPE(intbuf_struct_) :: INTBUF_TAB
7123 . l,siz1,siz2,m,n,cpt_l,index1
7125 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
7130 ALLOCATE(ibuf1(2*(nrtm_l + 1)), ibuf2(nremnode_l))
7131 ibuf1(1:2*(nrtm_l+1)) = 0
7132 ibuf2(1:nremnode_l) = 0
7138 IF(tag_segm2(k) /= 0)
THEN
7139 siz = intbuf_tab%KREMNODE(k+1)-intbuf_tab%KREMNODE(k)
7140 l=intbuf_tab%KREMNODE(k)
7144 n = intbuf_tab%REMNODE(l+m-1)
7145 IF (tag_segs2(n)/=0)
THEN
7154 ibuf1(2*(cpt_l-1)+1) = index1
7155 ibuf1(2*(cpt_l-1)+2) = index1 + siz1
7156 index1 = index1 + siz1 + siz2
7159 ibuf1(2*nrtm_l+1) = index1
7160 ibuf1(2*nrtm_l+2) = index1
7165 IF(tag_segm2(k) /= 0)
THEN
7168 l=intbuf_tab%KREMNODE(k)
7169 siz = intbuf_tab%KREMNODE(k+1)-intbuf_tab%KREMNODE(k
7170 siz1 = ibuf1(2*(cpt_l-1)+1)
7171 siz2 = ibuf1(2*(cpt_l-1)+2)
7174 n = intbuf_tab%REMNODE(l+m-1)
7175 IF (tag_segs2(n)/=0)
THEN
7181 ibuf2(siz2) = itab(intbuf_tab%IRECTS(2*(n-1)+1))
7182 ibuf2(siz2+1) = itab(intbuf_tab%IRECTS(2*(n-1)+2))
7193 DEALLOCATE(ibuf1, ibuf2)
7207 . TAG_EDGE , TAG_EDGE2 , SEGLOC ,ITAB ,
7208 . NUMNOD_L , NREMNODE_EDG_L)
7217#include "implicit_f.inc"
7221#include "param_c.inc"
7225 INTEGER PROC,NEDGE,NEDGE_L,
7226 . tag_edge2(*),tag_edge(*),segloc(*),
7228 INTEGER,
INTENT(IN) :: NUMNOD_L,NREMNODE_EDG_L
7230 TYPE(intbuf_struct_) :: INTBUF_TAB
7240 . l,siz1,siz2,m,n,cpt_l,index1,ik,
7241 . km1,em1,km2,em2,ks1,es1,ks2,es2
7243 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
7248 ALLOCATE(ibuf1(2*(nedge_l + 1)), ibuf2(nremnode_edg_l))
7249 ibuf1(1:2*(nedge_l+1)) = 0
7250 ibuf2(1:nremnode_edg_l) = 0
7258 em1=intbuf_tab%LEDGE(1+(k-1)*nledge)
7260 IF(em1/=.0) km1=segloc(em1)
7261 em2=intbuf_tab%LEDGE(3+(k-1)*nledge)
7263 IF(em2/=0) km2=segloc(em2)
7264 IF(km1 /= 0.OR.km2/=0)
THEN
7265 siz = intbuf_tab%KREMNODE_EDG(k+1)-intbuf_tab%KREMNODE_EDG(k)
7266 l=intbuf_tab%KREMNODE_EDG(k)
7270 n = intbuf_tab%REMNODE_EDG(l+m-1)
7271 es1=intbuf_tab%LEDGE(1+(n-1)*nledge)
7273 IF(es1/=0) ks1=segloc(es1)
7274 es2=intbuf_tab%LEDGE(3+(n-1)*nledge)
7276 IF(es2/=0) ks2=segloc(es2)
7277 IF (km1 /= 0.AND.km2/=0.AND.ks1/=0.AND.ks2/=0)
THEN
7286 ibuf1(2*(cpt_l-1)+1) = index1
7287 ibuf1(2*(cpt_l-1)+2) = index1 + siz1
7288 index1 = index1 + siz1 + siz2
7291 ibuf1(2*nedge_l+1) = index1
7292 ibuf1(2*nedge_l+2) = index1
7299 em1=intbuf_tab%LEDGE(1+(k-1)*nledge)
7301 IF(em1/=0) km1=segloc(em1)
7302 em2=intbuf_tab%LEDGE(3+(k-1)*nledge)
7304 IF(em2/=0) km2=segloc(em2)
7305 IF(km1 /= 0.OR.km2/=0)
THEN
7308 l=intbuf_tab%KREMNODE_EDG(k)
7309 siz = intbuf_tab%KREMNODE_EDG(k+1)-intbuf_tab%KREMNODE_EDG(k)
7310 siz1 = ibuf1(2*(cpt_l-1)+1)
7311 siz2 = ibuf1(2*(cpt_l-1)+2)
7314 n = intbuf_tab%REMNODE_EDG(l+m-1)
7316 es1=intbuf_tab%LEDGE(1+(n-1)*nledge)
7317 IF(es1/=0) ks1=segloc(es1)
7318 es2=intbuf_tab%LEDGE(3+(n-1)*nledge)
7320 IF(es2/=0) ks2=segloc(es2)
7321 IF (km1 /= 0.AND.km2/=0.AND.ks1/=0.AND.ks2/=0)
THEN
7323 ibuf2(siz1) = tag_edge2(n)
7327 ibuf2(siz2) = itab(intbuf_tab%LEDGE(5+(n-1)*nledge))
7328 ibuf2(siz2+1) = itab(intbuf_tab%LEDGE(6+(n-1)*nledge))
7339 DEALLOCATE(ibuf1, ibuf2)
7353 . TAG_EDGE , TAG_EDGE2 , SEGLOC ,ITAB ,
7354 . NUMNOD_L , NREMNODE_E2S_L)
7363#include "implicit_f.inc"
7367#include "param_c.inc"
7371 INTEGER PROC,NRTM,NRTM_L
7374INTEGER,
INTENT(IN) :: NUMNOD_L,NREMNODE_E2S_L
7376 TYPE(intbuf_struct_) :: INTBUF_TAB
7386 . l,siz1,siz2,m,n,cpt_l,index1,ik,
7387 . km1,em1,km2,em2,ks1,es1,ks2,es2
7389 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
7394 ALLOCATE(ibuf1(2*(nrtm_l + 1)), ibuf2(nremnode_e2s_l))
7395 ibuf1(1:2*(nrtm_l+1)) = 0
7396 ibuf2(1:nremnode_e2s_l) = 0
7403 IF(segloc(k) > 0)
THEN
7404 siz = intbuf_tab%KREMNODE_E2S(k+1)-intbuf_tab%KREMNODE_E2S(k)
7405 l=intbuf_tab%KREMNODE_E2S(k)
7409 n = intbuf_tab%REMNODE_E2S(l+m-1)
7410 es1=intbuf_tab%LEDGE(1+(n-1)*nledge)
7411 IF(segloc(es1) > 0)
THEN
7420 ibuf1(2*(cpt_l-1)+1) = index1
7421 ibuf1(2*(cpt_l-1)+2) = index1 + siz1
7422 index1 = index1 + siz1 + siz2
7425 ibuf1(2*nrtm_l+1) = index1
7426 ibuf1(2*nrtm_l+2) = index1
7432 IF(segloc(k) > 0)
THEN
7435 l=intbuf_tab%KREMNODE_E2S(k)
7436 siz = intbuf_tab%KREMNODE_E2S(k+1)-intbuf_tab%KREMNODE_E2S(k)
7437 siz1 = ibuf1(2*(cpt_l-1)+1)
7438 siz2 = ibuf1(2*(cpt_l-1)+2)
7441 n = intbuf_tab%REMNODE_E2S(l+m-1)
7442 es1=intbuf_tab%LEDGE(1+(n-1)*nledge)
7443 IF(segloc(es1) > 0)
THEN
7445 ibuf2(siz1) = tag_edge2(n)
7449 ibuf2(siz2) = itab(intbuf_tab%LEDGE(5+(n-
7450 ibuf2(siz2+1) = itab(intbuf_tab%LEDGE(6+(n-1)*nledge
7461 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, rwstif_pen, sln_pen)
end diagonal values have been computed in the(sparse) matrix id.SOL
integer function secnd_surface_on_domain(intercep, se, proc)
for(i8=*sizetab-1;i8 >=0;i8--)
void my_orders(int *mode, int *iwork, int *data, int *index, int *n, int *irecl)
type(i25_cand_), dimension(:,:), allocatable i25_split_cand
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 write_db(a, n)
void write_i_c(int *w, int *len)