You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.7 KiB
52 lines
1.7 KiB
2 years ago
|
C Copyright(C) 1999-2020 National Technology & Engineering Solutions
|
||
|
C of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with
|
||
|
C NTESS, the U.S. Government retains certain rights in this software.
|
||
|
C
|
||
|
C See packages/seacas/LICENSE for details
|
||
|
|
||
|
SUBROUTINE CLOSEP (MP, N15, X, Y, IPOINT, COOR, LINKP, JJ)
|
||
|
C***********************************************************************
|
||
|
|
||
|
C SUBROUTINE CLOSE = FINDS THE CLOSEST EXISTING POINT TO THE MOUSE
|
||
|
|
||
|
C***********************************************************************
|
||
|
|
||
|
C SUBROUTINE CALLED BY:
|
||
|
C INPUT = INPUTS MESH DEFINITIONS FROM THE LIGHT TABLE
|
||
|
|
||
|
C***********************************************************************
|
||
|
|
||
|
C VARIABLES USED:
|
||
|
C X = THE X LOCATION IN USER COORDINATES
|
||
|
C Y = THE Y LOCATION IN USER COORDINATES
|
||
|
C POINT = ARRAY OF VALUES DEFINING A POINT
|
||
|
C (I, 1) = THE NUMBER OF THE POINT
|
||
|
C (I, 2) = THE X COORDINATE OF THE POINT
|
||
|
C (I, 3) = THE Y COORDINATE OF THE POINT
|
||
|
C (I, 4) = THE BOUNDARY FLAG OF THE POINT
|
||
|
C I = THE NUMBER OF THE CLOSEST POINT FOUND
|
||
|
C K = THE NUMBER OF POINTS IN THE DATABASE
|
||
|
|
||
|
C***********************************************************************
|
||
|
|
||
|
DIMENSION IPOINT (MP), COOR (2, MP), LINKP (2, MP)
|
||
|
|
||
|
LOGICAL ADDLNK
|
||
|
|
||
|
ADDLNK = .FALSE.
|
||
|
DMIN = 100000.
|
||
|
|
||
|
DO 100 I = 1, N15
|
||
|
CALL LTSORT (MP, LINKP, I, IPNTR, ADDLNK)
|
||
|
IF (IPNTR .GT. 0) THEN
|
||
|
DIST = SQRT (((COOR (1, IPNTR) - X) **2) +
|
||
|
& ((COOR (2, IPNTR) - Y) **2))
|
||
|
IF (DIST .LT. DMIN) THEN
|
||
|
DMIN = DIST
|
||
|
JJ = IPOINT (IPNTR)
|
||
|
ENDIF
|
||
|
ENDIF
|
||
|
100 CONTINUE
|
||
|
RETURN
|
||
|
END
|