18 implicit real*8 (a-h,o-z)
19 dimension ndiv(6), nntyp(0:11)
21 integer(kind=kint) :: PAR_CEL_TYP
22 type (hecmwST_local_mesh) :: hecMESH
33 do icel0= 1, hecmesh%n_adapt_act_elem_351
34 icel_par= hecmesh%adapt_act_elem_351(icel0)
37 if (hecmesh%elem_ID(2*icel_par).eq.hecmesh%my_rank)
then
43 is= hecmesh%elem_node_index(icel_par-1)
44 n01= hecmesh%elem_node_item (is+1)
45 n02= hecmesh%elem_node_item (is+2)
46 n03= hecmesh%elem_node_item (is+3)
47 n11= hecmesh%elem_node_item (is+4)
48 n12= hecmesh%elem_node_item (is+5)
49 n13= hecmesh%elem_node_item (is+6)
58 ndiv(1)= hecmesh%adapt_iemb(ie01)
59 ndiv(2)= hecmesh%adapt_iemb(ie02)
60 ndiv(3)= hecmesh%adapt_iemb(ie03)
61 ndiv(4)= hecmesh%adapt_iemb(ie11)
62 ndiv(5)= hecmesh%adapt_iemb(ie12)
63 ndiv(6)= hecmesh%adapt_iemb(ie13)
65 ndivsum= ndiv(1)+ndiv(2)+ndiv(3)+ndiv(4)+ndiv(5)+ndiv(6)
66 par_cel_typ= hecmesh%elem_type(npar)
70 is = hecmesh%adapt_children_index(npar-1)
80 hecmesh%adapt_children_item(2*is1-1)= 0
81 hecmesh%adapt_children_item(2*is2-1)= 0
82 hecmesh%adapt_children_item(2*is3-1)= 0
83 hecmesh%adapt_children_item(2*is4-1)= 0
84 hecmesh%adapt_children_item(2*is5-1)= 0
85 hecmesh%adapt_children_item(2*is6-1)= 0
86 hecmesh%adapt_children_item(2*is7-1)= 0
87 hecmesh%adapt_children_item(2*is8-1)= 0
89 hecmesh%adapt_children_item(2*is1)= -1
90 hecmesh%adapt_children_item(2*is2)= -1
91 hecmesh%adapt_children_item(2*is3)= -1
92 hecmesh%adapt_children_item(2*is4)= -1
93 hecmesh%adapt_children_item(2*is5)= -1
94 hecmesh%adapt_children_item(2*is6)= -1
95 hecmesh%adapt_children_item(2*is7)= -1
96 hecmesh%adapt_children_item(2*is8)= -1
100 if (ndivsum.eq.0) ntyp= 0
103 if (ndivsum.eq.2 .and. ndiv(1).eq.1 .and. ndiv(4).eq.1)
then
105 n04 = hecmesh%adapt_IWK(ie01)
106 n14 = hecmesh%adapt_IWK(ie11)
108 hecmesh%adapt_type(npar)= ntyp
114 if (ndivsum.eq.2 .and. ndiv(2).eq.1 .and. ndiv(5).eq.1)
then
116 n04 = hecmesh%adapt_IWK(ie02)
117 n14 = hecmesh%adapt_IWK(ie12)
119 hecmesh%adapt_type(npar)= ntyp
125 if (ndivsum.eq.2 .and. ndiv(3).eq.1 .and. ndiv(6).eq.1)
then
127 n04 = hecmesh%adapt_IWK(ie03)
128 n14 = hecmesh%adapt_IWK(ie13)
130 hecmesh%adapt_type(npar)= ntyp
136 if (ndivsum.eq.6)
then
138 n04 = hecmesh%adapt_IWK(ie01)
139 n05 = hecmesh%adapt_IWK(ie02)
140 n06 = hecmesh%adapt_IWK(ie03)
141 n14 = hecmesh%adapt_IWK(ie11)
142 n15 = hecmesh%adapt_IWK(ie12)
143 n16 = hecmesh%adapt_IWK(ie13)
145 hecmesh%adapt_type(npar)= ntyp
155 nntyp(ntyp)= nntyp(ntyp) + 1
164 hecmesh%n_adapt_elem_351_cur= hecmesh%n_adapt_elem_351_cur + 1
165 hecmesh%n_adapt_elem_cur = hecmesh%n_adapt_elem_cur + 1
167 icel = hecmesh%n_adapt_elem_cur
170 if (icel.gt.hecmesh%ne_array)
then
174 hecmesh%when_i_was_refined_elem(icel)= hecmesh%n_adapt
175 hecmesh%elem_node_index(icel)= hecmesh%elem_node_index(icel-1) + 6
177 is= hecmesh%elem_node_index(icel-1)
178 hecmesh%elem_node_item(is+1)= in1
179 hecmesh%elem_node_item(is+2)= in2
180 hecmesh%elem_node_item(is+3)= in3
181 hecmesh%elem_node_item(is+4)= in4
182 hecmesh%elem_node_item(is+5)= in5
183 hecmesh%elem_node_item(is+6)= in6
185 hecmesh%adapt_parent(2*icel-1)= hecmesh%elem_ID(2*npar-1)
186 hecmesh%adapt_parent(2*icel )= hecmesh%elem_ID(2*npar )
188 hecmesh%elem_ID(2*icel-1)= icoun + hecmesh%ne_internal
189 hecmesh%elem_ID(2*icel )= hecmesh%elem_ID(2*npar )
191 hecmesh%elem_mat_ID_item(icel)= hecmesh%elem_mat_ID_item(npar)
192 hecmesh%section_ID (icel)= hecmesh%section_ID (npar)
194 hecmesh%adapt_type(icel)= 0
196 if (ndivsum.eq.6)
then
197 hecmesh%adapt_level(icel)= hecmesh%adapt_level(npar) + 2
199 hecmesh%adapt_level(icel)= hecmesh%adapt_level(npar) + 1
202 is= hecmesh%adapt_children_index(npar-1)
204 hecmesh%adapt_children_item(2*(is+idchi)-1)= icel
205 hecmesh%adapt_children_item(2*(is+idchi)-1)= icoun + hecmesh%ne_internal
206 hecmesh%adapt_children_item(2*(is+idchi) )= hecmesh%my_rank
208 hecmesh%adapt_children_local(is+idchi)= icel
210 is= hecmesh%adapt_children_index(icel-1)
211 hecmesh%adapt_children_index(icel)= is + 8
222 hecmesh%adapt_children_item(2*is1)= -1
223 hecmesh%adapt_children_item(2*is2)= -1
224 hecmesh%adapt_children_item(2*is3)= -1
225 hecmesh%adapt_children_item(2*is4)= -1
226 hecmesh%adapt_children_item(2*is5)= -1
227 hecmesh%adapt_children_item(2*is6)= -1
228 hecmesh%adapt_children_item(2*is7)= -1
229 hecmesh%adapt_children_item(2*is8)= -1
231 hecmesh%adapt_children_item(2*is1-1)= 0
232 hecmesh%adapt_children_item(2*is2-1)= 0
233 hecmesh%adapt_children_item(2*is3-1)= 0
234 hecmesh%adapt_children_item(2*is4-1)= 0
235 hecmesh%adapt_children_item(2*is5-1)= 0
236 hecmesh%adapt_children_item(2*is6-1)= 0
237 hecmesh%adapt_children_item(2*is7-1)= 0
238 hecmesh%adapt_children_item(2*is8-1)= 0
240 hecmesh%elem_type (icel)= par_cel_typ
241 hecmesh%adapt_parent_type(icel)= hecmesh%adapt_type(npar)