17 & (nparts, ndp_2d, npoin_p,
18 & nptfr_p, elelg, nelem_p, ikles, knogl,
19 & cut_p, ef_i, ef_ii, nptir_p, nbre_ef_i, knolg, irand,
46 USE bief, ONLY : nbmaxnshare
51 INTEGER,
ALLOCATABLE,
INTENT(INOUT) :: NPOIN_P(:),NPTFR_P(:),
52 & ikles(:), part_p(:,:), ef_i(:,:), ef_ii(:,:),
53 & nptir_p(:), nbre_ef_i(:), knolg(:,:), nbre_ef(:)
57 INTEGER,
ALLOCATABLE,
INTENT(IN) :: ELELG(:,:), NELEM_P(:)
58 INTEGER,
ALLOCATABLE,
INTENT(IN) :: IRAND(:)
59 INTEGER,
INTENT(IN) :: NPARTS, NDP_2D
65 INTEGER :: I, J, K, POSI, TEMP, EF, NOEUD
66 INTEGER :: MAX_NPOIN_P, IERR
68 INTEGER,
ALLOCATABLE :: NBRE_EF_LOC(:)
70 max_npoin_p=maxval(npoin_p)
75 ALLOCATE (nbre_ef_loc(max_npoin_p),stat=ierr)
76 CALL check_allocate(ierr,
'NBRE_EF_LOC')
89 noeud=ikles((ef-1)*3+k)
91 nbre_ef_loc(temp)=nbre_ef_loc(temp)+1
92 IF(nbre_ef_loc(temp) .EQ. 1)
THEN 94 npoin_p(i)=npoin_p(i)+1
96 IF(irand(noeud) .NE. 0)
THEN 97 nptfr_p(i)= nptfr_p(i)+1
100 knolg(npoin_p(i),i)=noeud
114 noeud=ikles((ef-1)*3+k)
116 IF(abs(nbre_ef_loc(temp)).NE.nbre_ef(noeud))
THEN 119 IF(nbre_ef_loc(temp).NE. nbre_ef(noeud).AND.
120 & nbre_ef_loc(temp).GT.0)
THEN 124 nptir_p(i)=nptir_p(i)+1
126 part_p(noeud,0)=part_p(noeud,0)+1
128 IF(posi.GT.nbmaxnshare-1)
THEN 129 WRITE(
lu,*)
'ERROR : AN INTERFACE NODE BELONGS TO 130 & MORE THAN NBMAXNSHARE-1 SUBDOMAINS' 135 nbre_ef_loc(temp)=-nbre_ef_loc(temp)
139 nbre_ef_i(i)=nbre_ef_i(i)+1
140 ef_i(i, nbre_ef_i(i))=ef
141 ef_ii(i, nbre_ef_i(i))=j
subroutine compute_boundary_and_interface(NPARTS, NDP_2D, NPOIN_P, NPTFR_P, ELELG, NELEM_P, IKLES, KNOGL, CUT_P, EF_I, EF_II, NPTIR_P, NBRE_EF_I, KNOLG, IRAND, PART_P, NBRE_EF)
integer function hash_table_get(HT, X, Y)
recursive subroutine hash_table_insert(HT, X, Y, V)