39 . MERGE_NODE_TOL,NMERGE_NODE_CAND,NMERGE_NODE_DEST)
52#include "implicit_f.inc"
61 INTEGER MERGE_NODE_TAB(4,*),NMERGE_NODE_CAND,NMERGE_NODE_DEST
63 . x(3,*),merge_node_tol(*)
66 TYPE (GROUP_) ,
TARGET,
DIMENSION(NGRNOD) :: IGRNOD
70 INTEGER :: I,J,ID,UID,GR_ID,GR_IDS,MERGE_TYPE,FLAG_FULL_MERGE
71 CHARACTER(LEN=NCHARTITLE)
72INTEGER,
DIMENSION(:),
ALLOCATABLE :: TAGNOD1,TAGNOD2,TAGNOD_TEMP
73 LOGICAL :: IS_AVAILABLE
74 my_real :: tol,xn,xmin,xmax,ymin,
ymax,zmin,zmax,dx,dy,dz,tol_def
81 ALLOCATE(tagnod1(numnod),tagnod2(numnod),tagnod_temp(numnod))
88 is_available = .false.
102 CALL hm_get_floatv(
'tol' ,tol ,is_available, lsubmodel, unitab)
103 CALL hm_get_intv (
'Type' ,merge_type ,is_available, lsubmodel)
104 CALL hm_get_intv (
'grnod_id' ,gr_id ,is_available, lsubmodel)
110 IF (igrnod(j)%ID == gr_id) gr_ids = j
112 IF (gr_ids == 0)
THEN
116 . c1=
'IN /MERGE/NODE DEFINITION',
121 IF ((tol_def == zero).AND.(tol == zero))
THEN
131 xmin =
min(xmin,x(1,j))
132 xmax =
max(xmax,x(1,j))
133 ymin =
min(ymin,x(2,j))
135 zmin =
min(zmin,x(3,j))
136 zmax =
max(zmax,x(3,j))
141 tol_def = em05*(dx+dy+dz)/(three*exp(third*log(xn)))
146 IF (merge_type == 0) merge_type = 1
147 IF (merge_type == 1)
THEN
149 DO j=1,igrnod(gr_ids)%NENTITY
150 tagnod1(igrnod(gr_ids)%ENTITY(j)) = 1
151 tagnod2(igrnod(gr_ids)%ENTITY(j)) = 1
153 ELSEIF (merge_type == 2)
THEN
155 tagnod_temp(1:numnod) = 0
156 DO j=1,igrnod(gr_ids)%NENTITY
157 tagnod1(igrnod(gr_ids)%ENTITY(j)) = 1
158 tagnod_temp(igrnod(gr_ids)%ENTITY(j)) = 1
161 IF (tagnod_temp(j)==0) tagnod2(j) = 1
166 IF (flag_full_merge == 0)
THEN
171 . anmode=aninfo_blind_1,
172 . i1=id,i2=flag_full_merge)
175 tagnod1(1:numnod) = 1
176 tagnod2(1:numnod) = 1
180 IF (tol == zero) tol = tol_def
184 IF (tagnod1(j) == 1) nmerge_node_cand = nmerge_node_cand + 1
185 IF (tagnod2(j) == 1) nmerge_node_dest = nmerge_node_dest + 1
187 merge_node_tab(1,i) = merge_type
188 merge_node_tab(2,i) = gr_ids
189 merge_node_tab(3,i) = gr_id
190 merge_node_tab(4,i) = id
191 merge_node_tol(i) = tol
193 WRITE(iout,1100) id,trim(titr),tol,merge_type,gr_id
197 DEALLOCATE(tagnod1,tagnod2,tagnod_temp)
203 .
' MERGE/NODE DEFINITIONS '/
204 .
' ---------------------- ')
2051100
FORMAT(/5x,
'MERGE NODE ID ',i10,1x,a
206 . /5x,
'TOLERANCE. . . . . . . . . . . . . . . . .',1pg20.4
207 . /5x,
'MERGING TYPE. . . . . . . . . . . . . . . ',i10
208 . /5x,
'GROUP OF NODES. . . . . . . . . . . . . . ',i10)
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)