33
36
37
38
39
40
41
42
43
44
45#include "implicit_f.inc"
46
47
48
49 INTEGER,INTENT(IN) :: NSURF,NUMNOD
50 INTEGER, INTENT(IN) :: SURFACE_NUMBER
51 my_real,
DIMENSION(6),
INTENT(INOUT) :: min_max_position
52 my_real,
DIMENSION(3,NUMNOD),
INTENT(IN) :: x
53 TYPE (SURF_), DIMENSION(NSURF), INTENT(IN) :: IGRSURF
54 TYPE (INIVOL_STRUCT_), INTENT(IN) :: INIVOL
55
56
57
58 INTEGER :: I,J,K
59 INTEGER :: SURFACE_ID,SURFACE_NODE_NUMBER,SURFACE_TYPE
60 INTEGER :: NODE_ID
61
62
63
64 DO i=1,surface_number
65 surface_id =
inivol%CONTAINER(i)%SURF_ID
66 surface_node_number = igrsurf(surface_id)%NSEG
67 surface_type = igrsurf(surface_id)%TYPE
68 IF(surface_type /= 200 .AND. surface_type /= 101) THEN
69 DO j=1,4
70 DO k=1,surface_node_number
71 node_id = igrsurf(surface_id)%NODES(k,j)
72 min_max_position(1:3) =
min(min_max_position(1:3),x
73 min_max_position(4:6) =
max(min_max_position(4:6),x(1:3,node_id))
74 ENDDO
75 ENDDO
76 ENDIF
77 ENDDO
78
79
80 RETURN
type(inivol_struct_), dimension(:), allocatable inivol