39 . IXC ,IXTG ,IPARG ,IAD_ELEM,FR_ELEM ,
40 . WEIGHT ,X ,ELBUF_TAB,IPART ,IPARTC ,
41 . IPARTTG ,ITASK ,NODFT ,NODLT ,ERR_THK_SH4,
42 . ERR_THK_SH3,SH4TREE,SH3TREE,
43 . AREA_SH4, AREA_SH3, AREA_NOD,
44 . THICK_SH4, THICK_SH3, THICK_NOD)
50 use element_mod ,
only : nixc,nixtg
54#include "implicit_f.inc"
62#include "remesh_c.inc"
64#include "vect01_c.inc"
71 . IXC(NIXC,*), IXTG(NIXTG,*),IPARG(NPARG,*),
72 . IAD_ELEM(2,*), FR_ELEM(*), WEIGHT(*),
73 . IPART(LIPART1,*), IPARTC(*), IPARTTG(*),
74 . SH4TREE(KSH4TREE,*), SH3TREE(KSH3TREE,*)
75 INTEGER ITASK, NODFT, NODLT
77 . x(3,*), err_thk_sh4(*), err_thk_sh3(*)
78 TYPE(elbuf_struct_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
79 my_real,
INTENT(INOUT),
DIMENSION(NUMELC) :: AREA_SH4
80 my_real,
INTENT(INOUT),
DIMENSION(NUMELTG) :: AREA_SH3
81 my_real,
INTENT(INOUT),
DIMENSION(NUMNOD) :: area_nod
82 my_real,
INTENT(INOUT),
DIMENSION(NUMELC) :: thick_sh4
83 my_real,
INTENT(INOUT),
DIMENSION(NUMELTG) :: thick_sh3
84 my_real,
INTENT(INOUT),
DIMENSION(NUMNOD) :: thick_nod
88 INTEGER SH4FT, SH4LT, SH3FT, SH3LT, MLW
90 . i,n,ng,nel,lenr,prt,iadm
94 . x1,y1,z1,x2,y2,z2,x3,y3,z3,x4,y4,z4,
95 . x31,y31,z31,x42,y42,z42,x32,y32,z32,e3x,e3y,e3z,
97 TYPE(g_bufel_) ,
POINTER :: GBUF
100 sh4ft = 1+itask*numelc/ nthread
101 sh4lt = (itask+1)*numelc/nthread
102 sh3ft = 1+itask*numeltg/ nthread
103 sh3lt = (itask+1)*numeltg/nthread
105 area_sh4(sh4ft:sh4lt)=zero
106 area_sh3(sh3ft:sh3lt)=zero
108 err_thk_sh4(sh4ft:sh4lt)=zero
109 err_thk_sh3(sh3ft:sh3lt)=zero
111 area_nod(nodft:nodlt)=zero
112 thick_nod(nodft:nodlt)=zero
117 DO ng=itask+1,ngroup,nthread
120 IF(ity/=3.AND.ity/=7)
GOTO 150
121 gbuf => elbuf_tab(ng)%GBUF
138 IF (gbuf%OFF(i) <= zero) cycle
173 area=sqrt(e3x*e3x+e3y*e3y+e3z*e3z)
176 thick_sh4(n)=gbuf%THK(i)
177 at =
area * thick_sh4(n)
180 area_nod(n1)=area_nod(n1)+
area
181 area_nod(n2)=area_nod(n2)+
area
182 area_nod(n3)=area_nod(n3)+
area
183 area_nod(n4)=area_nod(n4)+
area
184 thick_nod(n1)=thick_nod(n1)+at
185 thick_nod(n2)=thick_nod(n2)+at
186 thick_nod(n3)=thick_nod(n3)+at
187 thick_nod(n4)=thick_nod(n4)+at
188#include "lockoff.inc"
198 IF (gbuf%OFF(i) <= zero) cycle
226 area=sqrt(e3x*e3x+e3y*e3y+e3z*e3z)
229 thick_sh3(n)=gbuf%THK(i)
230 at=
area * thick_sh3(n)
233 area_nod(n1) =area_nod(n1)+
area
234 area_nod(n2) =area_nod(n2)+
area
235 area_nod(n3) =area_nod(n3)+
area
236 thick_nod(n1)=thick_nod(n1)+at
237 thick_nod(n2)=thick_nod(n2)+at
238 thick_nod(n3)=thick_nod(n3)+at
239#include "lockoff.inc"
253 lenr = iad_elem(1,nspmd+1)-iad_elem(1,1)
266 . ixc ,ixtg ,x ,iparg ,elbuf_tab ,
267 . ipart ,ipartc ,iparttg ,iad_elem,fr_elem ,
268 . weight ,area_sh4,area_sh3,area_nod,thick_sh4 ,
269 . thick_sh3 ,thick_nod , err_thk_sh4, err_thk_sh3,
277 DO ng=itask+1,ngroup,nthread
280 IF(ity/=3.AND.ity/=7)
GOTO 250
281 gbuf => elbuf_tab(ng)%GBUF
299 IF (gbuf%OFF(i) <= zero .OR. mlw == 0 .OR. mlw == 13) cycle
307 tn1=abs(thick_nod(n1)/
max(em30,area_nod(n1))*unt-one)
308 tn2=abs(thick_nod(n2)/
max(em30,area_nod(n2))*unt-one)
309 tn3=abs(thick_nod(n3)/
max(em30,area_nod(n3))*unt-one)
310 tn4=abs(thick_nod(n4)/
max(em30,area_nod(n4))*unt-one)
312 err_thk_sh4(n)=fourth*(tn1+tn2+tn3+tn4)
322 IF (gbuf%OFF(i) <= zero .OR. mlw == 0 .OR. mlw == 13) cycle
329 tn1=abs(thick_nod(n1)/
max(em30,area_nod(n1))*unt-one)
330 tn2=abs(thick_nod(n2)/
max(em30,area_nod(n2))*unt-one)
331 tn3=abs(thick_nod(n3)/
max(em30,area_nod(n3))*unt-one)
333 err_thk_sh3(n)=third*(tn1+tn2+tn3)
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)