40 . SKIN_SCALAR,TAG_SKINS6,T6GPS,X ,
41 . NPF,TF,H3D_PART,IS_WRITTEN_SKIN,
42 . KEYWORD,NSKIN ,MAT_PARAM)
50 use element_mod ,
only : nixs
54#include "implicit_f.inc"
67 INTEGER IPARG(NPARG,*),IXS(NIXS,*),IPARTS(*),
68 . IXS10(6,*) ,TAG_SKINS6(*) ,NSKIN , NPF(*),H3D_PART(*),
70 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
71 my_real,
INTENT(IN),
TARGET :: TF(*)
72 my_real,
INTENT(IN),
TARGET :: T6GPS(6,*),X(3,*)
73 my_real,
INTENT(OUT),
TARGET :: skin_scalar(*)
74 CHARACTER(LEN=NCHARLINE100):: KEYWORD
75 TYPE (MATPARAM_STRUCT_) ,
DIMENSION(NUMMAT) ,
INTENT(IN) :: MAT_PARAM
81 . MLW ,NEL ,NFT ,IAD ,ITY ,
82 . npt ,jale ,ismstr ,jeul ,jtur ,
83 . jthe ,jlag ,jmult ,jhbe ,jivf ,
84 . nvaux ,jpor ,kcvt ,jclose ,jplasol ,
85 . irep ,iint ,igtyp ,israt ,isrot ,
86 . icsen ,isorth ,isorthg ,ifailure
87 . nn,nn1,n1,iok_part(mvsiz),is_written_value(mvsiz)
88 INTEGER NC(10,MVSIZ),PWR(7),LL,IXSK(5,6*MVSIZ)
89 INTEGER FACES(4,6),NS(4),JJ,II,K1,K2,T3(3),T6(6),TIA4S(3,4)
90 INTEGER IFUNC(MAXFUNC),IDEB
91 INTEGER NPAR,NFUNC,MX,NSK,IL,IR,IS,IT,NFAIL,IFAIL,NSKI,NIPAR
92 my_real evar(3,mvsiz),value(mvsiz)
93 TYPE(buf_lay_) ,
POINTER :: BUFLY
94 TYPE(buf_fail_) ,
POINTER :: FBUF
95 DATA pwr/1,2,4,8,16,32,64/
118 2 mlw ,nel ,nft ,iad ,ity ,
119 3 npt ,jale ,ismstr ,jeul ,jtur ,
120 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
121 5 nvaux ,jpor ,kcvt ,jclose ,jplasol ,
122 6 irep ,iint ,igtyp ,israt ,isrot ,
123 7 icsen ,isorth ,isorthg ,ifailure,jsms )
125 IF(mlw == 13 .OR. mlw == 0.OR.ity /= 1) cycle
127 IF (igtyp==6 .OR. igtyp==14 )
THEN
128 isolnod = iparg(28,ng)
145 IF(mod(ll,pwr(jj+1))/pwr(jj) == 0)
THEN
148 ixsk(1,nsk) = iparts(n)
149 ixsk(2,nsk) = nc(3,i)
150 ixsk(3,nsk) = nc(2,i)
151 ixsk(4,nsk) = nc(1,i)
152 ixsk(5,nsk) = ixsk(4,nsk)
156 IF(mod(ll,pwr(jj+1))/pwr(jj) == 0)
THEN
158 ixsk(1,nsk) = iparts(n)
159 ixsk(2,nsk) = nc(2,i)
160 ixsk(3,nsk) = nc(3,i)
161 ixsk(4,nsk) = nc(4,i)
162 ixsk(5,nsk) = ixsk(4,nsk)
166 IF(mod(ll,pwr(jj+1))/pwr(jj) == 0)
THEN
168 ixsk(1,nsk) = iparts(n)
169 ixsk(2,nsk) = nc(1,i)
170 ixsk(3,nsk) = nc(4,i)
171 ixsk(4,nsk) = nc(3,i)
172 ixsk(5,nsk) = ixsk(4,nsk)
176 IF(mod(ll,pwr(jj+1))/pwr(jj) == 0)
THEN
178 ixsk(1,nsk) = iparts(n)
179 ixsk(2,nsk) = nc(1,i)
180 ixsk(3,nsk) = nc(2,i)
181 ixsk(4,nsk) = nc(4,i)
182 ixsk(5,nsk) = ixsk(4,nsk)
185 ELSEIF(isolnod == 6)
THEN
186 ELSEIF(isolnod == 10)
THEN
194 nc(5:10,i) = ixs10(1:6,nn1)
202 IF(mod(ll,pwr(jj+1))/pwr(jj) == 0)
THEN
207 ixsk(1,nsk) = iparts(n)
208 t3(1:3) = t6(tia4s(1:3,j))
209 ixsk(2:4,nsk) = t3(1:3)
210 ixsk(5,nsk) = ixsk(4,nsk)
215 IF(mod(ll,pwr(jj+1))/pwr(jj) == 0)
THEN
222 ixsk(1,nsk) = h3d_part(iparts(n))
223 t3(1:3) = t6(tia4s(1:3,j))
224 ixsk(2:4,nsk) = t3(1:3)
225 ixsk(5,nsk) = ixsk(4,nsk)
230 IF(mod(ll,pwr(jj+1))/pwr(jj) == 0)
THEN
239 ixsk(1,nsk) = iparts(n)
240 t3(1:3) = t6(tia4s(1:3,j))
241 ixsk(2:4,nsk) = t3(1:3)
242 ixsk(5,nsk) = ixsk(4,nsk)
247 IF(mod(ll,pwr(jj+1))/pwr(jj) == 0)
THEN
255 ixsk(1,nsk) = iparts(n)
256 t3(1:3) = t6(tia4s(1:3,j))
257 ixsk(2:4,nsk) = t3(1:3)
258 ixsk(5,nsk) = ixsk(4,nsk)
266 nc(1:8,i) = ixs(2:9,n)
270 IF(mod(ll,pwr(jj+1))/pwr(jj) /= 0)cycle
272 ns(ii)=nc(faces(ii,jj),i)
277 IF(ns(k2)==ns(k1))ns(k2)=0
290 ixsk(1,nsk) = iparts(n)
291 ixsk(2:4,nsk) = ns(1:3)
295 ixsk(5,nsk) = ixsk(4,nsk)
307 bufly => elbuf_tab(ng)%BUFLY(il)
308 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
309 fbuf => bufly%FAIL(ir,is,it)
313 nski =
min(nsk-ideb,mvsiz)
318 is_written_value(i) = 0
319 iok_part(i) = h3d_part(ixsk(1,i+ideb))
322 IF (keyword ==
'FLDZ/OUTER')
THEN
324 is_written_value(1:nski) = 1
326 IF (fbuf%FLOC(ifail)%ILAWF == 7)
THEN
327 npar = mat_param(mx)%FAIL(ifail)%NUPARAM
328 nfunc = mat_param(mx)%FAIL(ifail)%NFUNC
329 nipar = mat_param(mx)%FAIL(ifail)%NIPARAM
331 ifunc(i) = mat_param(mx)%FAIL(ifail)%IFUNC(i)
334 1 nski ,npar ,nfunc ,ifunc ,
335 2 npf ,tf ,mat_param(mx)%FAIL(ifail)%UPARAM,
336 3 evar ,
VALUE ,nipar ,mat_param(mx)%FAIL(ifail)%IPARAM,
337 4 bufly%LBUF(ir,is,it)%PLA)
342 skin_scalar(nskin+i) = value(i)
346 ELSEIF (keyword ==
'FLDF/OUTER')
THEN
348 is_written_value(1:nski) = 1
350 IF (fbuf%FLOC(ifail)%ILAWF == 7)
THEN
351 npar = mat_param(mx)%FAIL(ifail)%NUPARAM
352 nipar = mat_param(mx)%FAIL(ifail)%NIPARAM
353 nfunc = mat_param(mx)%FAIL(ifail)%NFUNC
355 ifunc(i) = mat_param(mx)%FAIL(ifail)%IFUNC(i)
358 1 nski ,npar ,nfunc ,ifunc ,
359 2 npf ,tf ,mat_param(mx)%FAIL(ifail)%UPARAM,
360 3 evar ,
VALUE ,nipar ,mat_param(mx)%FAIL(ifail)%IPARAM,
361 4 bufly%LBUF(ir,is,it)%PLA)
366 skin_scalar(nskin+i) = value(i)
367 IF(iok_part(i) == 1 ) is_written_skin(nskin+i) = is_written_value(i)