32 INTEGER ,
INTENT(IN) :: NPOIN
33 TYPE(bief_mesh) ,
INTENT(INOUT) :: MESH
37 INTEGER I,J,IDISTMIN,JDISTMIN,IELEM,I1,I2,I3,OVER
38 DOUBLE PRECISION,
POINTER :: X(:),Y(:)
39 DOUBLE PRECISION DIST2,DIST2MIN
56 dist2=(x(i)-x(j))**2+(y(i)-y(j))**2
57 IF(dist2.LT.dist2min)
THEN 65 IF(
p_min(dist2min).EQ.dist2min)
THEN 66 idistmin=mesh%KNOLG%I(idistmin)
67 jdistmin=mesh%KNOLG%I(jdistmin)
73 dist2min=
p_max(dist2min)
74 idistmin=
p_max(idistmin)
75 jdistmin=
p_max(jdistmin)
78 WRITE(
lu,*)
'CHECKING THE MESH' 80 WRITE(
lu,*)
'SMALLEST DISTANCE BETWEEN TWO POINTS:',
82 WRITE(
lu,*)
'BETWEEN POINTS: ',idistmin,
' AND ',jdistmin
83 IF(dist2min.LT.1.d-3)
THEN 84 WRITE(
lu,*)
'VALUE TOO SMALL' 98 mesh%T%R(i1)=mesh%T%R(i1)+2.d0
99 i2=mesh%IKLE%I(ielem+mesh%NELMAX)
100 mesh%T%R(i2)=mesh%T%R(i2)+2.d0
101 i3=mesh%IKLE%I(ielem+2*mesh%NELMAX)
102 mesh%T%R(i3)=mesh%T%R(i3)+2.d0
104 IF(ncsize.GT.1)
CALL parcom(mesh%T,2,mesh)
109 IF(mesh%T%R(i).LT.3.d0)
THEN 115 WRITE(
lu,*)
'POINT ',j,
' HAS ONLY ',
116 & nint(mesh%T%R(i)),
' NEIGHBOURS' 117 IF(mesh%T%R(i).LT.1.d0)
THEN 127 IF(ncsize.GT.1) over=
p_sum(over)
130 WRITE(
lu,*) over,
' OVERCONSTRAINED TRIANGLES' 131 WRITE(
lu,*)
'POSSIBLE BUT NOT RECOMMENDED' 139 WRITE(
lu,*)
'ISSUE DETECTED WHILE CHECING THE MESH'
subroutine checkmesh(MESH, NPOIN)
subroutine parcom(X, ICOM, MESH)