! { dg-do compile } ! { dg-options "-O2 -ftree-vectorize" } TYPE :: spot_weld_type CHARACTER(8) PLACE ! Keyword "NODE" or "POSITION" END TYPE TYPE (spot_weld_type), DIMENSION(:), ALLOCATABLE :: SPOT_WELD INTEGER, PARAMETER :: LSRT = 12 ! Length of sorted-element-distance array INTEGER & & IETYP(LSRT) ! -/- Sort array for closest el's, 0/1=tri/qu REAL(KIND(0D0)) & & DSQRD(LSRT) ! -/- Sort array for closest el's, d**2 LOGICAL & & COINCIDENT, & & INSIDE_ELEMENT IF (SPOT_WELD(NSW)%PLACE .EQ. 'POSITION') THEN DO n = 1,LSRT ENDDO DO i = 1,NUMP3 DO WHILE (Distance_Squared .GT. DSQRD(n) .AND. n .LE. LSRT) ENDDO IF (n .LT. LSRT) THEN DO k = LSRT-1,n,-1 DSQRD(k+1) = DSQRD(k) IETYP(k+1) = IETYP(k) ENDDO ENDIF DO n = 1,LSRT IF (IETYP(n) .EQ. 0) THEN INSIDE_ELEMENT = & & Xi1EL(n) .GE. 0.0 .AND. Xi2EL(n) .GE. 0.0 IF (DSQRD(n) .LT. Dmin) THEN ENDIF ENDIF ENDDO ENDDO IF (Icount .GT. 0) THEN DO i = 1,Icount CALL USER_MESSAGE & & ( & & ) ENDDO CALL USER_MESSAGE & & ( & & ) ENDIF IF & & ( & & .NOT.COINCIDENT & & ) & & THEN IF (NP1 .GT. 0) THEN IF (NP1 .GT. 0) THEN ENDIF ENDIF ENDIF IF (.NOT.COINCIDENT) THEN DO i = 1,3 IF (NP(i) .GT. 0) THEN ENDIF ENDDO ENDIF ENDIF END