38 . IXC ,IXTG ,IPARG ,IAD_ELEM,FR_ELEM ,
39 . WEIGHT ,X ,ELBUF_TAB,IPART ,IPARTC ,
40 . IPARTTG ,ITASK ,NODFT ,NODLT ,ERR_THK_SH4,
41 . ERR_THK_SH3,SH4TREE,SH3TREE,
42 . AREA_SH4, AREA_SH3, AREA_NOD,
43 . THICK_SH4, THICK_SH3, THICK_NOD)
52#include "implicit_f.inc"
60#include "remesh_c.inc"
62#include "vect01_c.inc"
69 . IXC(NIXC,*), IXTG(NIXTG,*),IPARG(NPARG,*),
70 . IAD_ELEM(2,*), FR_ELEM(*), WEIGHT(*),
71 . IPART(LIPART1,*), IPARTC(*), IPARTTG(*),
72 . SH4TREE(KSH4TREE,*), SH3TREE(KSH3TREE,*)
73 INTEGER ITASK, NODFT, NODLT
75 . x(3,*), err_thk_sh4(*), err_thk_sh3(*)
76 TYPE(),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
77 my_real,
INTENT(INOUT),
DIMENSION(NUMELC) :: AREA_SH4
78 my_real,
INTENT(INOUT),
DIMENSION(NUMELTG) :: AREA_SH3
79 my_real,
INTENT(INOUT),
DIMENSION(NUMNOD) :: area_nod
80 my_real,
INTENT(INOUT),
DIMENSION(NUMELC) :: thick_sh4
81 my_real,
INTENT(INOUT),
DIMENSION(NUMELTG) :: thick_sh3
82 my_real,
INTENT(INOUT),
DIMENSION(NUMNOD) :: thick_nod
86 INTEGER SH4FT, SH4LT, SH3FT, SH3LT, IERROR, MLW
88 . i,n,ng,nel,lenr,prt,iadm
92 . x1,y1,z1,x2,y2,z2,x3,y3,z3,x4,y4,z4,
93 . x31,y31,z31,x42,y42,z42,x32,y32,z32,e3x,e3y,e3z,
94 . tn1,tn2,tn3,tn4,tpg1,tpg2,tpg3,tpg4,unt
95 TYPE(g_bufel_) ,
POINTER :: GBUF
98 sh4ft = 1+itask*numelc/ nthread
99 sh4lt = (itask+1)*numelc/nthread
100 sh3ft = 1+itask*numeltg/ nthread
101 sh3lt = (itask+1)*numeltg/nthread
104 area_sh3(sh3ft:sh3lt)=zero
109 area_nod(nodft:nodlt)=zero
110 thick_nod(nodft:nodlt)=zero
118 IF(ity/=3.AND.ity/=7)
GOTO 150
119 gbuf => elbuf_tab(ng)%GBUF
136 IF (gbuf%OFF(i) <= zero) cycle
171 area=sqrt(e3x*e3x+e3y*e3y+e3z*e3z)
174 thick_sh4(n)=gbuf%THK(i)
175 at =
area * thick_sh4(n)
178 area_nod(n1)=area_nod(n1)+
area
179 area_nod(n2)=area_nod(n2)+
area
180 area_nod(n3)=area_nod(n3)+
area
181 area_nod(n4)=area_nod(n4)+
area
182 thick_nod(n1)=thick_nod(n1)+at
183 thick_nod(n2)=thick_nod(n2)+at
184 thick_nod(n3)=thick_nod(n3)+at
185 thick_nod(n4)=thick_nod(n4)+at
186#include "lockoff.inc"
196 IF (gbuf%OFF(i) <= zero) cycle
224 area=sqrt(e3x*e3x+e3y*e3y+e3z*e3z)
227 thick_sh3(n)=gbuf%THK(i)
228 at=
area * thick_sh3(n)
231 area_nod(n1) =area_nod(n1)+
area
232 area_nod(n2) =area_nod(n2)+
area
233 area_nod(n3) =area_nod(n3)+
area
234 thick_nod(n1)=thick_nod(n1)+at
235 thick_nod(n2)=thick_nod(n2)+at
236 thick_nod(n3)=thick_nod(n3)+at
237#include "lockoff.inc"
251 lenr = iad_elem(1,nspmd+1)-iad_elem(1,1)
264 . ixc ,ixtg ,x ,iparg ,elbuf_tab ,
265 . ipart ,ipartc ,iparttg ,iad_elem,fr_elem ,
266 . weight ,area_sh4,area_sh3,area_nod,thick_sh4 ,
267 . thick_sh3 ,thick_nod , err_thk_sh4, err_thk_sh3,
275 DO ng=itask+1,ngroup,nthread
278 IF(ity/=3.AND.ity/=7)
GOTO 250
279 gbuf => elbuf_tab(ng)%GBUF
297 IF (gbuf%OFF(i) <= zero .OR.
305 tn1=abs(thick_nod(n1)/
max(em30,area_nod(n1))*unt-one)
306 tn2=abs(thick_nod(n2)/
max(em30,area_nod(n2))*unt-one)
307 tn3=abs(thick_nod(n3)/
max(em30,area_nod(n3))*unt-one)
308 tn4=abs(thick_nod(n4)/
max(em30,area_nod(n4))*unt-one)
310 err_thk_sh4(n)=fourth*(tn1+tn2+tn3+tn4)
320 IF (gbuf%OFF(i) <= zero .OR. mlw == 0 .OR. mlw == 13) cycle
327 tn1=abs(thick_nod(n1)/
max(em30,area_nod(n1))*unt
329 tn3=abs(thick_nod(n3)/
max(em30,area_nod(n3))*unt-one)
331 err_thk_sh3(n)=third*(tn1+tn2+tn3)
subroutine admthke(ixc, ixtg, x, iparg, elbuf_tab, ipart, ipartc, iparttg, iad_elem, fr_elem, weight, area_sh4, area_sh3, area_nod, thick_sh4, thick_sh3, thick_nod, err_thk_sh4, err_thk_sh3, sh4tree, sh3tree)
subroutine err_thk(ixc, ixtg, iparg, iad_elem, fr_elem, weight, x, elbuf_tab, ipart, ipartc, iparttg, itask, nodft, nodlt, err_thk_sh4, err_thk_sh3, sh4tree, sh3tree, area_sh4, area_sh3, area_nod, thick_sh4, thick_sh3, thick_nod)