5 &(x,y,coord_g,ikle,npoin,eltseg,oriseg,nelem,nseg,jmi,cmi,gloseg,
68 INTEGER,
INTENT(IN) :: NSEG,NELEM,NPOIN
69 INTEGER,
INTENT(IN) :: IKLE(nelem,3)
70 INTEGER,
INTENT(IN) :: ELTSEG(nelem,3)
71 INTEGER,
INTENT(IN) :: ORISEG(nelem,3)
72 INTEGER,
INTENT(INOUT) :: JMI(nseg)
73 INTEGER,
INTENT(IN) :: GLOSEG(nseg,2)
74 DOUBLE PRECISION,
INTENT(INOUT) :: CMI(2,nseg)
75 DOUBLE PRECISION,
INTENT(INOUT) :: COORD_G(nseg,4)
76 DOUBLE PRECISION,
INTENT(IN) :: X(npoin),Y(npoin)
77 INTEGER,
INTENT(IN) :: IFABOR(nelem,3)
82 INTEGER ISEG,NB1,NB2,IELEM,I,I1,I2,I3
83 DOUBLE PRECISION XEL,YEL,XG1,XG2,YG1,YG2,XSOM(3),YSOM(3)
84 DOUBLE PRECISION X_MIDPOINT,Y_MIDPOINT,DET
85 DOUBLE PRECISION,
ALLOCATABLE :: TMP_CMI1(:), TMP_CMI2(:)
101 mesh%MSEG%X%R(i)=0.d0
111 xel = (x(i1)+x(i2)+x(i3))/3.0d0
112 yel = (y(i1)+y(i2)+y(i3))/3.0d0
114 iseg = eltseg(ielem,i)
115 IF(oriseg(ielem,i).EQ.1)
THEN 118 ELSEIF(oriseg(ielem,i).EQ.2)
THEN 129 & nseg,1,1,2,mesh,1,11)
134 & nseg,1,1,2,mesh,1,11)
146 iseg = eltseg(ielem,i)
149 xg1 = coord_g(iseg,1)
150 yg1 = coord_g(iseg,2)
151 xg2 = coord_g(iseg,3)
152 yg2 = coord_g(iseg,4)
154 x_midpoint = 0.5d0*(xg1+xg2)
155 y_midpoint = 0.5d0*(yg1+yg2)
156 cmi(1,iseg) = x_midpoint
157 cmi(2,iseg) = y_midpoint
165 det = (xsom(2)-xsom(1))*(y_midpoint-ysom(1))
166 & -(ysom(2)-ysom(1))*(x_midpoint-xsom(1))
168 IF(oriseg(ielem,i).EQ.2) det = -det
182 ALLOCATE(tmp_cmi1(nseg))
183 ALLOCATE(tmp_cmi2(nseg))
184 tmp_cmi1 = cmi(1,1:nseg)
185 tmp_cmi2 = cmi(2,1:nseg)
189 & nseg,1,1,2,mesh,1,11)
190 cmi(1,1:nseg) = tmp_cmi1
191 cmi(2,1:nseg) = tmp_cmi2
203 iseg = eltseg(ielem,i)
204 IF(ifabor(ielem,i).EQ.-1.OR. ifabor(ielem,i).EQ. 0)
THEN 209 cmi(1,iseg)=0.5d0*(x(nb1)+x(nb2))
210 cmi(2,iseg)=0.5d0*(y(nb1)+y(nb2))
222 IF(jmi(iseg).EQ.0)
THEN 223 WRITE(lu,*)
'CENTRE_MASS_SEG: PROBLEM JMI NOT GOOD' 224 WRITE(lu,*)
'FOR SEGMENT :',iseg
225 WRITE(lu,*)
'PTS SEG',gloseg(iseg,1),gloseg(iseg,2)
subroutine parcom2_seg(X1, X2, X3, NSEG, NPLAN, ICOM, IAN, MESH, OPT, IELM)
logical function inpoly(X, Y, XSOM, YSOM, NSOM)
subroutine centre_mass_seg(X, Y, COORD_G, IKLE, NPOIN, ELTSEG, ORISEG, NELEM, NSEG, JMI, CMI, GLOSEG, IFABOR, MESH)