47 SUBROUTINE dfuncc(ELBUF_TAB ,FUNC ,IFUNC ,IPARG ,GEO ,
48 . IXQ ,IXC ,IXTG ,MASS ,PM ,
49 . EL2FA ,NBF ,IADP ,ITHERM ,
50 . NBF_L ,EHOUR ,ANIM ,NBPART ,IADG ,
51 . IPM ,IGEO ,THKE ,ERR_THK_SH4 ,ERR_THK_SH3,
52 . INVERT ,X ,V ,W ,ALE_CONNECTIVITY,
53 . NV46 ,NERCVOIS ,NESDVOIS ,LERCVOIS ,LESDVOIS,
54 . STACK ,BUFMAT ,MULTI_FVM ,MAT_PARAM)
65 USE multimat_param_mod ,
ONLY : m51_n0phas, m51_nvphas
66 USE matparam_def_mod ,
ONLY : matparam_struct_
68 use element_mod ,
only : nixq,nixc,nixtg
72#include "implicit_f.inc"
76#include "vect01_c.inc"
88 . func(*),mass(*),x(3,numnod),v(3,numnod),w(3,numnod),thke(*),ehour
89 . anim(*),pm(npropm,nummat),err_thk_sh4(*), err_thk_sh3
90 INTEGER IPARG(NPARG,NGROUP),IXC(NIXC,NUMELC),IXTG(NIXTG,NUMELTG),EL2FA(*),
91 . IXQ(NIXQ,NUMELQ),IFUNC,NBF,
92 . IADP(*),NBF_L, NBPART,IADG(NSPMD,*),IPM(NPROPMI,NUMMAT),
93 . IGEO(NPROPGI,NUMGEO),INVERT(*), NV46
94 INTEGER,
INTENT(IN) :: ITHERM
95 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
96 TYPE (STACK_PLY) :: STACK
97 TYPE(buf_mat_) ,
POINTER :: MBUF
98 TYPE(MULTI_FVM_STRUCT),
INTENT(IN) :: MULTI_FVM
99 TYPE (MATPARAM_STRUCT_) ,
DIMENSION(NUMMAT) ,
INTENT(IN) :: MAT_PARAM
104 . evar(mvsiz),dam1(mvsiz),dam2(mvsiz),
105 . wpla(mvsiz),dmax(mvsiz),wpmax(mvsiz),fail(mvsiz),
106 . epst1(mvsiz),epst2(mvsiz),epsf1(mvsiz),epsf2(mvsiz),
107 . sig1(mvsiz),sig2(mvsiz),sig3(mvsiz),
108 . a002(mvsiz),values(mvsiz)
110 . off, p,vonm2,s1,s2,s12,s3,
VALUE,value1
111 . dir1_1,dir1_2,dir2_1,dir2_2,aa,bb,v1,v2,v3,x21,x32
112 . x41,y21,y32,y34,y41,z21,z32,z34,z41,suma,vr,vs,x31,y31
113 . z31,e11,e12,e13,e21,e22,e23,sum_,
area,x2l,var,rindx,
114 . e1x,e1y,e1z,e2x,e2y,e2z,e3x,e3y,e3z,rx
115 . vg(5),vly(5),ve(5),dmgmx_ly,evar_tmp,a01,a02,a03,a12,a,
117 . vel(0:3),vfrac(mvsiz,21),phi,err
118 INTEGER I,IDX,I1,II,J,NG,NEL,NPTR,NPTS,NPTT,NLAY,L,IFAIL,ILAY,
119 . IR,IS,IT,IL,MLW, NUVAR,IUS,PTF,PTM,PTS,NFAIL,
120 . N,K,K1,K2,JTURB,MT,IMID,IALEL,IPID,ISH3N,NNI,
121 . NN1,NN2,NN3,NN4,NN5,NN6,NN9,NF,BUF,NVARF,
122 . OFFSET,IHBE,NPTM,NPG, MPT,IPT,IADD,IADR,IPMAT,IFAILT,
123 . IIGEO,IADI,ISUBSTACK,ITHK,NERCVOIS(*),NESDVOIS(*),
124 . LERCVOIS(*),LESDVOIS(*),,NB_PLYOFF,IFRAM_OLD,
125 . jj(6),npgt,iadbuf,nuparam,imat,ns,nrate,expa
126 INTEGER PID(MVSIZ),MAT(MVSIZ),MATLY(MVSIZ*100),FAILG(MVSIZ),
127 . PTE(4),PTP(4),PTMAT(4),PTVAR(4),LENCOM,NPT_ALL,IPLY,ITRIMAT,IPOS,
128 . ISUBMAT, ISH_EINT, IS_ALE, IS_EULER,IPG,IPINCH,
129 . IMAT_TILLOTSON, NTILLOTSON,NVAREOS,IEOS,IDRAPE,IVAR
130 REAL,
DIMENSION(:),
ALLOCATABLE:: WAL
132 TYPE(G_BUFEL_) ,
POINTER :: GBUF
133 TYPE(l_bufel_) ,
POINTER :: LBUF
134 TYPE(BUF_LAY_) ,
POINTER :: BUFLY
135 TYPE(BUF_FAIL_) ,
POINTER :: FBUF
136 TYPE(BUF_EOS_) ,
POINTER :: EBUF
137 TYPE(l_bufel_dir_) ,
POINTER :: LBUF_DIR
139 my_real,
DIMENSION(:),
POINTER :: uvar,offl
140 TYPE(l_bufel_) ,
POINTER :: LBUF1,LBUF2
141 my_real,
DIMENSION(:) ,
POINTER :: uparam
154 INTEGER :: IDX0,IDX1,IDX2
156 CALL my_alloc(wal,nbf_l)
163 ish_eint = 13242 + 4*mx_ply_anim + 2
164 idx0 = 15921 + 4*mx_ply_anim
179 2 mlw ,nel ,nft ,iad ,ity ,
180 3 npt ,jale ,ismstr ,jeul ,jturb ,
181 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
182 5 nvaux ,jpor ,jcvt ,jclose ,jplasol ,
183 6 irep ,iint ,igtyp ,israt ,isrot ,
184 7 icsen ,isorth ,isorthg ,ifailure,jsms )
186 DO offset = 0,nel-1,nvsiz
187 nft =iparg(3,ng) + offset
190 llt=
min(nvsiz,nel-offset)
191 isubstack = iparg(71,ng)
194 is_euler=iparg(11,ng)
195 idrape = elbuf_tab(ng)%IDRAPE
212 IF (ity == 2 .OR.(ity == 7.AND.n2d/=0) )
THEN
213 gbuf => elbuf_tab(ng)%GBUF
214 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
215 uvar => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)%VAR
216 jale=(iparg(7,ng)+iparg(11,ng))
217 jturb=iparg(12,ng)*jale
218 nptr = elbuf_tab(ng)%NPTR
219 npts = elbuf_tab(ng)%NPTS
220 nptt = elbuf_tab(ng)%NPTT
221 nlay = elbuf_tab(ng)%NLAY
222 nuvar = elbuf_tab(ng)%BUFLY(1)%NVAR_MAT
225 func(el2fa(nn3+nft+i))= zero
229 IF (mlw == 10 .OR. mlw == 21)
THEN
231 func(el2fa(nn3+nft+i)) = lbuf%EPSQ(i)
233 ELSEIF (mlw == 24)
THEN
235 func(el2fa(nn3+nft+i)) = lbuf%VK(i)
237 ELSEIF (mlw == 6 .OR. mlw == 17 .OR. mlw == 11)
THEN
239 func(el2fa(nn3+nft+i)) = lbuf%RK(i)
241 ELSEIF (mlw >=28 .AND. mlw /= 49 .and. nuvar > 0)
THEN
243 func(el2fa(nn3+nft+i)) = uvar(i)
246 IF (gbuf%G_PLA > 0)
THEN
248 func(el2fa(nn3+nft+i)) = gbuf%PLA(i)
252 ELSEIF(ifunc == 2)
THEN
254 func(el2fa(nn3+nft+i)) = gbuf%RHO(i)
256 ELSEIF(ifunc == 3)
THEN
259 ialel=iparg(7,ng)+iparg(11,ng)
262 VALUE = gbuf%EINT(i)/
max(em30,pm(1,mt))
264 VALUE = gbuf%EINT(i)/
max(em30,gbuf%RHO(i))
266 func(el2fa(nn3+n)) =
VALUE
268 ELSEIF(ifunc == 4)
THEN
269 IF(gbuf%G_TEMP > 0)
THEN
271 func(el2fa(nn3+nft+i)) = gbuf%TEMP(i)
275 func(el2fa(nn3+nft+i)) = zero
278 ELSEIF(ifunc == 6)
THEN
280 p = - (gbuf%SIG(jj(1) + i)
281 . + gbuf%SIG(jj(2) + i)
282 . + gbuf%SIG(jj(3) + i))*third
283 func(el2fa(nn3+nft+i)) = p
285 ELSEIF(ifunc == 7)
THEN
287 p = - (gbuf%SIG(jj(1) + i)
288 . + gbuf%SIG(jj(2) + i)
289 . + gbuf%SIG(jj(3) + i) )*third
290 s1 = gbuf%SIG(jj(1) + i) + p
291 s2 = gbuf%SIG(jj(2) + i) + p
292 s3 = gbuf%SIG(jj(3) + i) + p
293 vonm2 = three*(gbuf%SIG(jj(4) + i)**2
294 . + half*(s1**2+s2**2+s3**2) )
295 func(el2fa(nn3+nft+i)) = sqrt(vonm2)
297 ELSEIF(ifunc == 8 .AND. jturb/=0)
THEN
299 func(el2fa(nn3+nft+i)) = gbuf%RK(i)
301 ELSEIF(ifunc == 9 )
THEN
302 IF (mlw == 6 .OR. mlw == 17.AND.jturb/=0)
THEN
306 func(el2fa(nn3+n))=pm(81,mt)*gbuf%RK(i)**2/
307 .
max(em15,gbuf%RE(i))
309 ELSEIF(mlw == 46 .OR. mlw == 47)
THEN
311 func(el2fa(nn3+nft+i))= uvar(i)
314 ELSEIF(ifunc == 10 )
THEN
315 IF (mlw == 6 .OR. mlw == 17)
THEN
317 func(el2fa(nn3+nft+i)) = lbuf%VK(i)
319 ELSEIF(mlw == 46 .OR. mlw == 47)
THEN
321 func(el2fa(nn3+nft+i)) = uvar(nel+i)
324 ELSEIF((ifunc == 11.OR.ifunc == 12.OR.ifunc == 13)
325 . .AND.mlw == 24)
THEN
327 func(el2fa(nn3+nft+i)) = lbuf%DAM(jj(ifunc-10) + i)
329 ELSEIF(ifunc == 14)
THEN
331 func(el2fa(nn3+nft+i)) = gbuf%SIG(jj(3) + i)
333 ELSEIF(ifunc == 15)
THEN
335 func(el2fa(nn3+nft+i)) = gbuf%SIG(jj(1) + i)
337 ELSEIF(ifunc == 16)
THEN
339 func(el2fa(nn3+nft+i)) = gbuf%SIG(jj(2) + i)
341 ELSEIF(ifunc == 17.OR.ifunc == 18)
THEN
343 func(el2fa(nn3+nft+i)) = gbuf%SIG(jj(4) + i)
346 ELSEIF(ifunc>=20.AND.ifunc<=24.AND.
347 . (mlw == 28.OR.mlw == 29.OR.mlw == 30.OR.
348 . mlw == 31.OR.mlw == 52.OR.mlw == 79))
THEN
356 IF (nuvar > ius) func(el2fa(nn3+n)) = uvar(ius*nel + i)
358 ELSEIF(ifunc == 25)
THEN
361 func(el2fa(nn3+nft+i)) = ehour(n)
364 ELSEIF (ifunc == 26)
THEN
365 IF (gbuf%G_EPSD > 0)
THEN
367 func(el2fa(nn3+nft+i)) = gbuf%EPSD(i)
371 ELSEIF (ifunc>=27 .AND. ifunc<=39 .AND.
372 . (mlw == 28.OR.mlw == 29.OR.mlw == 30.OR.mlw == 31.OR.
380 IF (nuvar>ius) func(el2fa(nn3+n)) = uvar(ius*nel + i)
384 ELSEIF(mlw == 20 .AND. (ifunc == 10248.OR.ifunc == 10249))
THEN
386 func(el2fa(nn3+nft+i)) =
387 . elbuf_tab(ng)%BUFLY(ifunc-10248+1)%LBUF(1,1,1)%VOL(i)
388 . / elbuf_tab(ng)%GBUF%VOL(i)
392 ELSEIF(mlw == 37 .AND. (ifunc == 10248.OR.ifunc == 10249))
THEN
394 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
396 func(el2fa(nn3+nft+i)) = mbuf%VAR(i+ius*nel)
400 ELSEIF(mlw == 51 .AND. (ifunc >= 10248.AND.ifunc <= 10251))
THEN
404 uparam => bufmat(iadbuf:iadbuf+nuparam-1)
405 isubmat = (ifunc-10247)
406 isubmat = uparam(276+isubmat)
407 ius=m51_n0phas+(isubmat-1)*m51_nvphas
408 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
410 func(el2fa(nn3+nft+i)) = mbuf%VAR(i+ius*nel)
413 ELSEIF(mlw == 151 .AND. (ifunc >= 10248.AND.ifunc <= 10250))
THEN
414 ius= ifunc - 10248 + 1
417 func(el2fa(nn3+nft+i)) = elbuf_tab(ng)%BUFLY(ius)%LBUF(1,1,1)%VOL(i) / gbuf%VOL(i)
421 func(el2fa(nn3+nft+i)) = zero
426 ELSEIF(ifunc == 10252)
THEN
427 IF(elbuf_tab(ng)%GBUF%G_BFRAC > 0 .AND. n2d > 0)
THEN
429 func(el2fa(nn3+nft+i)) = elbuf_tab(ng)%GBUF%BFRAC(i)
433 func(el2fa(nn3+nft+i)) = zero
437 ELSEIF(ifunc == 10671)
THEN
440 func(el2fa(nn3+nft+i)) = multi_fvm%SOUND_SPEED(i + nft)
443 l = elbuf_tab(ng)%BUFLY(1)%L_SSP
444 IF(elbuf_tab(ng)%BUFLY(1)%L_SSP /= 0)
THEN
445 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
447 func(el2fa(nn3+nft+i)) = lbuf%SSP(i)
452 ELSEIF(ifunc == 10672)
THEN
453 ialel=iparg(7,ng)+iparg(11,ng)
456 func(el2fa(nn3+nft+i)) = zero
462 2 iparg , wa_l , elbuf_tab , ale_connectivity
464 ELSEIF(ity == 7 .AND. n2d /= 0)
THEN
467 2 iparg , wa_l , elbuf_tab , ale_connectivity
471 func(el2fa(nn3+nft+i)) = evar(i)
475 ELSEIF (ifunc == 10677)
THEN
477 IF (gbuf%G_SEQ > 0)
THEN
482 bufly => elbuf_tab(ng)%BUFLY(il)
483 npgt = npgt + bufly%NPTT*nptr*npts
489 bufly => elbuf_tab(ng)%BUFLY(il)
493 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
494 evar_tmp = evar_tmp + lbuf%SEQ(i)/npgt
499 func(el2fa(nn3+nft+i)) = evar_tmp
504 p = - (gbuf%SIG(jj(1) + i)
505 . + gbuf%SIG(jj(2) + i)
506 . + gbuf%SIG(jj(3) + i))*third
507 s1 = gbuf%SIG(jj(1) + i) + p
508 s2 = gbuf%SIG(jj(2) + i) + p
509 s3 = gbuf%SIG(jj(3) + i) + p
510 vonm2 = three*(gbuf%SIG(jj(4) + i)**2
511 . + half*(s1**2+s2**2+s3**2))
512 func(el2fa(nn3+nft+i)) = sqrt(vonm2)
517 ELSEIF(ifunc == 11888)
THEN
518 IF (gbuf%G_QVIS > 0)
THEN
520 func(el2fa(nn3+nft+i)) = gbuf%QVIS(i)
524 func(el2fa(nn3+nft+i)) = zero
528 ELSEIF (ifunc == 11889)
THEN
529 IF (gbuf%G_TB > 0)
THEN
531 func(el2fa(nn3+nft+i)) = -gbuf%TB(i)
535 func(el2fa(nn3+nft+i)) = zero
540 ELSEIF(ifunc>=11890 .AND. ifunc<=11893)
THEN
542 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
546 itrimat = ifunc - 11890 + 1
548 k = llt * (m51_n0phas + (itrimat - 1) * m51_nvphas + ipos -
549 VALUE = mbuf%VAR(k + i)
550 func(el2fa(nn3+n)) =
VALUE
556 ialel = iparg(7,ng)+iparg(11,ng)
557 IF(ialel /= 0 .AND. mlw == 20)
THEN
558 lbuf1 => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
559 lbuf2 => elbuf_tab(ng)%BUFLY(2)%LBUF(1,1,1)
560 value1 = lbuf1%RHO(i)
561 value2 = lbuf2%RHO(i)
563 IF(ifunc == 11890)
VALUE=value1
564 IF(ifunc == 11891)
VALUE=value2
566 func(el2fa(nn3+n)) =
VALUE
570 ELSEIF(ifunc>=11894 .AND. ifunc<=11897)
THEN
572 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
576 itrimat = ifunc - 11894 + 1
578 k = llt * (m51_n0phas + (itrimat - 1) * m51_nvphas + ipos - 1)
579 k2 = llt * ((m51_n0phas + (itrimat-1)*m51_nvphas )+12-1)
580 VALUE = mbuf%VAR(k + i) / mbuf%VAR(k2+i)
581 func(el2fa(nn3+n)) =
VALUE
587 ialel = iparg(7,ng)+iparg(11,ng)
588 IF(ialel /= 0 .AND. mlw == 20)
THEN
589 lbuf1 => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
590 lbuf2 => elbuf_tab(ng)%BUFLY(2)%LBUF(1,1,1)
591 value1 = lbuf1%EINT(i)/
max(em30,lbuf1%RHO(i))
592 value2 = lbuf2%EINT(i)/
max(em30,lbuf2%RHO(i))
594 IF(ifunc == 11894)
VALUE=value1
595 IF(ifunc == 11895)
VALUE=value2
597 func(el2fa(nn3+n)) =
VALUE
601 ELSEIF(ifunc>=11898 .AND. ifunc<=11901)
THEN
603 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
607 itrimat = ifunc - 11898 + 1
609 k = llt * (m51_n0phas + (itrimat - 1) * m51_nvphas + ipos - 1)
610 VALUE = mbuf%VAR(k + i)
611 func(el2fa(nn3+n)) =
VALUE
617 ialel = iparg(7,ng)+iparg(11,ng)
618 IF(ialel /= 0 .AND. mlw == 20)
THEN
619 lbuf1 => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
620 lbuf2 => elbuf_tab(ng)%BUFLY(2)%LBUF(1,1,1)
621 IF(elbuf_tab(ng)%BUFLY(1)%L_TEMP>0)value1 = lbuf1%TEMP(i)
622 IF(elbuf_tab(ng)%BUFLY(2)%L_TEMP>0)value2 = lbuf2%TEMP(i)
624 IF(ifunc == 11898)
VALUE=value1
625 IF(ifunc == 11899)
VALUE=value2
627 func(el2fa(nn3+n)) =
VALUE
631 ELSEIF(ifunc>=11902 .AND. ifunc<=11905)
THEN
633 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
637 itrimat = ifunc - 11902 + 1
639 k = llt * (m51_n0phas + (itrimat - 1) * m51_nvphas + ipos - 1)
640 VALUE = mbuf%VAR(k + i)
641 func(el2fa(nn3+n)) =
VALUE
647 ialel = iparg(7,ng)+iparg(11,ng)
648 IF(ialel /= 0 .AND. mlw == 20)
THEN
649 lbuf1 => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
650 lbuf2 => elbuf_tab(ng)%BUFLY(2)%LBUF(1,1,1)
651 value1 = - (lbuf1%SIG(jj(1) + i) +
652 . lbuf1%SIG(jj(2) + i) +
653 . lbuf1%SIG(jj(3) + i))*third
654 value2 = - (lbuf2%SIG(jj(1) + i) +
655 . lbuf2%SIG(jj(2) + i) +
656 . lbuf2%SIG(jj(3) + i))*third
658 IF(ifunc == 11902)
VALUE=value1
659 IF(ifunc == 11903)
VALUE=value2
661 func(el2fa(nn3+n)) =
VALUE
665 ELSEIF(ifunc>=11906 .AND. ifunc<=11909)
THEN
671 ialel = iparg(7,ng)+iparg(11,ng)
672 IF(ialel /= 0 .AND. mlw == 20)
THEN
673 lbuf1 => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
674 lbuf2 => elbuf_tab(ng)%BUFLY(2)%LBUF(1,1,1)
675 IF(elbuf_tab(ng)%BUFLY(1)%L_PLA>0)value1 = lbuf1%PLA(i)
676 IF(elbuf_tab(ng)%BUFLY(2)%L_PLA>0)value2 = lbuf2%PLA(i)
678 IF(ifunc == 11906)
VALUE=value1
679 IF(ifunc == 11907)
VALUE=value2
681 func(el2fa(nn3+n)) =
VALUE
684 ELSEIF(ifunc>=11910 .AND. ifunc<=11913)
THEN
686 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
690 itrimat = ifunc - 11910 + 1
692 k = llt * (m51_n0phas + (itrimat - 1) * m51_nvphas + ipos - 1)
693 VALUE = mbuf%VAR(k + i)
694 func(el2fa(nn3+n)) =
VALUE
700 ialel = iparg(7,ng)+iparg(11,ng)
701 IF(ialel /= 0 .AND. mlw == 20)
THEN
702 lbuf1 => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
703 lbuf2 => elbuf_tab(ng)%BUFLY(2)%LBUF(1,1,1)
704 value1 = lbuf1%SSP(i)
705 value2 = lbuf2%SSP(i)
707 IF(ifunc == 11910)
VALUE=value1
708 IF(ifunc == 11911)
VALUE=value2
710 func(el2fa(nn3+n)) =
VALUE
714 ELSEIF(ifunc>=11914 .AND. ifunc<=11917)
THEN
716 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
720 itrimat = ifunc - 11914 + 1
722 k = llt * (m51_n0phas + (itrimat - 1) * m51_nvphas + ipos - 1)
723 VALUE = mbuf%VAR(k + i)
724 func(el2fa(nn3+n)) =
VALUE
730 ialel = iparg(7,ng)+iparg(11,ng)
731 IF(ialel /= 0 .AND. mlw == 20)
THEN
732 lbuf1 => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
733 lbuf2 => elbuf_tab(ng)%BUFLY(2)%LBUF(1,1,1)
734 value1 = lbuf1%VOL(i)
735 value2 = lbuf2%VOL(i)
737 IF(ifunc == 11914)
VALUE=value1
738 IF(ifunc == 11915)
VALUE=value2
740 func(el2fa(nn3+n)) =
VALUE
744 ELSEIF(ifunc>=11918 .AND. ifunc<=11921)
THEN
746 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
750 itrimat = ifunc - 11918 + 1
752 k = llt * (m51_n0phas + (itrimat - 1) *
753 VALUE = mbuf%VAR(k + i)
754 func(el2fa(nn3+n)) =
VALUE
760 ialel = iparg(7,ng)+iparg(11,ng)
761 IF(ialel /= 0 .AND. mlw == 20)
THEN
762 lbuf1 => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
763 lbuf2 => elbuf_tab(ng)%BUFLY(2)%LBUF(1,1,1)
764 value1 = lbuf1%VOL(i) * lbuf1%RHO(i)
765 value2 = lbuf2%VOL(i) * lbuf2%RHO(i)
767 IF(ifunc == 11918)
VALUE=value1
768 IF(ifunc == 11919)
VALUE=value2
770 func(el2fa(nn3+n)) =
VALUE
774 ELSEIF(ifunc>=11922 .AND. ifunc<=11925)
THEN
778 ialel = iparg(7,ng)+iparg(11,ng)
779 IF(ialel /= 0 .AND. mlw == 20)
THEN
780 lbuf1 => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
781 lbuf2 => elbuf_tab(ng)%BUFLY(2)%LBUF(1,1,1)
782 value1 = lbuf1%QVIS(i)
783 value2 = lbuf2%QVIS(i)
785 IF(ifunc == 11922)
VALUE=value1
786 IF(ifunc == 11923)
VALUE=value2
788 func(el2fa(nn3+n)) =
VALUE
790 ELSEIF(ifunc == 13242 + 4*mx_ply_anim )
THEN
793 func(el2fa(nn3+nft+i)) = gbuf%DT(i)
797 ELSEIF(ifunc == 13547 + 4*mx_ply_anim + 1000 + 2)
THEN
800 vel(1) = multi_fvm%VEL(1, i + nft)
801 vel(2) = multi_fvm%VEL(2, i + nft)
802 vel(3) = multi_fvm%VEL(3, i + nft)
803 vel(0) = sqrt(vel(1)*vel(1)+vel(2)*vel(2)+vel(3)*vel(3))
804 func(el2fa(nn3+nft+i)) = vel(0)/multi_fvm%SOUND_SPEED(i + nft)
807 l = elbuf_tab(ng)%BUFLY(1)%L_SSP
808 IF(elbuf_tab(ng)%BUFLY(1)%L_SSP /= 0)
THEN
809 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
811 vel(1) = gbuf%MOM(jj(1) + i) / gbuf%RHO(i)
812 vel(2) = gbuf%MOM(jj(2) + i) / gbuf%RHO(i)
813 vel(3) = gbuf%MOM(jj(3) + i) / gbuf%RHO(i)
814 vel(0) = sqrt(vel(1)*vel(1)+vel(2)*vel(2)+vel(3)*vel(3))
815 func(el2fa(nn3+nft+i)) = vel(0)/lbuf%SSP(i)
819 l = elbuf_tab(ng)%BUFLY(1)%L_SSP
820 IF(elbuf_tab(ng)%BUFLY(1)%L_SSP /= 0)
THEN
821 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
825 tmp(1,1:4)=v(1,ixq(2:5,i+nft))-w(1,ixq(2:5,i+nft))
826 tmp(2,1:4)=v(2,ixq(2:5,i+nft))-w(2,ixq(2:5,i+nft))
827 tmp(3,1:4)=v(3,ixq(2:5,i+nft))-w(3,ixq(2:5,i+nft))
828 vel(1) = sum(tmp(1,1:4))*fourth
829 vel(2) = sum(tmp(2,1:4))*fourth
830 vel(3) = sum(tmp(3,1:4))*fourth
831 func(el2fa(nn3+nft+i)) = sqrt(vel(1)*vel(1)+vel(2)*vel(2)+vel(3)*vel(3))/lbuf%SSP(i)
836 tmp(1,1:4)=v(1,ixq(2:5,i+nft))
837 tmp(2,1:4)=v(2,ixq(2:5,i+nft))
838 tmp(3,1:4)=v(3,ixq(2:5,i+nft))
839 vel(1) = sum(tmp(1,1:4))*fourth
840 vel(2) = sum(tmp(2,1:4))*fourth
841 vel(3) = sum(tmp(3,1:4))*fourth
842 func(el2fa(nn3+nft+i)) = sqrt(vel(1)*vel(1)+vel(2)*vel(2)+vel(3)*vel(3))/lbuf%SSP(i)
848 ELSEIF(ifunc == 13547 + 4*mx_ply_anim + 1000 + 3)
THEN
849 gbuf => elbuf_tab(ng)%GBUF
853 lbuf => elbuf_tab(ng)%BUFLY(imat)%LBUF(1,1,1)
855 vfrac(i,imat) = lbuf%VOL(i) / gbuf%VOL(i)
858 ELSEIF(mlw == 20)
THEN
861 vfrac(i,1) = elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)%VOL(i) / gbuf%VOL(i)
862 vfrac(i,2) = elbuf_tab(ng)%BUFLY(2)%LBUF(1,1,1)%VOL(i) / gbuf%VOL(i)
864 ELSEIF(mlw == 37)
THEN
865 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
868 vfrac(i,1) = mbuf%VAR(i+3*nel)
869 vfrac(i,2) = mbuf%VAR(i+4*nel)
871 ELSEIF(mlw == 51)
THEN
876 uparam => bufmat(iadbuf:iadbuf+nuparam-1)
878 isubmat = uparam(276+1); iu(1)=m51_n0phas+(isubmat-1)*m51_nvphas
879 isubmat = uparam(276+2); iu(2)=m51_n0phas+(isubmat-1)*m51_nvphas
880 isubmat = uparam(276+3); iu(3)=m51_n0phas+(isubmat-1)*m51_nvphas
881 isubmat = uparam(276+4); iu(4)=m51_n0phas+(isubmat-1)*m51_nvphas
882 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
885 vfrac(i,1) = mbuf%VAR(i+iu(1)*nel)
886 vfrac(i,2) = mbuf%VAR(i+iu(2)*nel)
887 vfrac(i,3) = mbuf%VAR(i+iu(3)*nel)
888 vfrac(i,4) = mbuf%VAR(i+iu(4)*nel)
892 vfrac(1:nel,1:21)=zero
898 values(i) = values(i) + vfrac(i,imat)*imat
900 func(el2fa(nn3+nft+i))=values(i)
904 func(el2fa(nn3+nft+i))=zero
907 ELSEIF(ifunc == 4*mx_ply_anim + 14566)
THEN
909 fac = two*3.141592653589793238
915 func(el2fa(nn3+n)) = fac*gbuf%VOL(i)
922 ELSE IF (ifunc == 10676)
THEN
926 func(el2fa(nn3+nft+i)) = ispmd
929 ELSEIF (ifunc == 14595 + 4*mx_ply_anim .AND. (gbuf%G_TSAIWU > 0))
THEN
932 bufly => elbuf_tab(ng)%BUFLY(1)
937 func(el2fa(nn3+nft+i)) =
938 . func(el2fa(nn3+nft+i))
939 . + bufly%LBUF(ir,is,it)%TSAIWU(i)/(nptt*nptr*npts)
946 ELSEIF( ifunc == 15898 + 4*mx_ply_anim )
THEN
948 func(el2fa(nn3+nft+i)) = zero
952 nlay = elbuf_tab(ng)%NLAY
956 ieos = ipm(4, mat_param(mt)%MULTIMAT%MID(imat) )
958 ntillotson = ntillotson + 1
959 imat_tillotson = imat
963 IF(ntillotson > 1)
THEN
966 ieos = ipm(4, mat_param(mt)%MULTIMAT%MID(imat) )
968 ebuf => elbuf_tab(ng)%BUFLY(imat)%EOS(1,1,1)
969 nvareos = elbuf_tab(ng)%BUFLY(imat)%NVAR_EOS
971 func(el2fa(nn3+nft+i)) = func(el2fa(nn3+nft+i)) + ebuf%VAR(i) * fac
977 ELSEIF(ntillotson == 1)
THEN
978 ebuf => elbuf_tab(ng)%BUFLY(imat_tillotson)%EOS(1,1,1)
979 nvareos = elbuf_tab(ng)%BUFLY(imat_tillotson)%NVAR_EOS
981 func(el2fa(nn3+nft+i)) = ebuf%VAR(i)
988 ebuf => elbuf_tab(ng)%BUFLY(1)%EOS(1,1,1)
989 nvareos = elbuf_tab(ng)%BUFLY(1)%NVAR_EOS
991 func(el2fa(nn3+nft+i)) = ebuf%VAR(i)
997 elseif(ifunc == 15899 + 4*mx_ply_anim .and. n2d > 0)
then
1000 func(el2fa(nn3+nft+i)) = zero
1005 elseif(ity == 7 .and. n2d > 0)
then
1014 do ilay=1,multi_fvm%nbmat
1015 mid = mat_param(mt)%multimat%mid(ilay)
1016 rho0i(ilay) = pm(89,mid)
1017 vi(ilay) = multi_fvm%phase_alpha(ilay,i+nft) * gbuf%vol(i)
1018 v0i(ilay) = multi_fvm%phase_rho(ilay,i+nft) * vi(ilay) / rho0i(ilay)
1022 do ilay=1,multi_fvm%nbmat
1023 rho0g = rho0g + rho0i(ilay)*v0i(ilay)
1026 func(el2fa(nn3+nft+i)) = multi_fvm%rho(i+nft) / rho0g - one
1028 elseif(mlw == 51)
then
1030 iadbuf = ipm(7,imat)
1031 nuparam= ipm(9,imat)
1032 uparam => bufmat(iadbuf:iadbuf+nuparam-1)
1033 mbuf => elbuf_tab(ng)%bufly(1)%mat(1,1,1)
1036 isubmat = nint(uparam(276+1)); iu(1)=m51_n0phas+(isubmat-1)*m51_nvphas + ipos-1
1037 isubmat = nint(uparam(276+2)); iu(2)=m51_n0phas+(isubmat-1)*m51_nvphas + ipos-1
1038 isubmat = nint(uparam(276+3)); iu(3)=m51_n0phas+(isubmat-1)*m51_nvphas + ipos-1
1039 isubmat = nint(uparam(276+4)); iu(4)=m51_n0phas+(isubmat-1)*m51_nvphas + ipos-1
1040 vfrac(i,1) = mbuf%var(i+iu(1)*nel)
1041 vfrac(i,2) = mbuf%var(i+iu(2)*nel)
1042 vfrac(i,3) = mbuf%var(i+iu(3)*nel)
1043 vfrac(i,4) = mbuf%var(i+iu(4)*nel)
1047 isubmat = nint(uparam(276+2)); iu(2)=m51_n0phas+(isubmat-1)*m51_nvphas + ipos-1
1048 isubmat = nint(uparam(276+3)); iu(3)=m51_n0phas+(isubmat-1)*m51_nvphas + ipos-1
1049 isubmat = nint(uparam(276+4)); iu(4)=m51_n0phas+(isubmat-1)*m51_nvphas + ipos
1050 rhoi(1) = mbuf%var(i+iu(1)*nel)
1051 rhoi(2) = mbuf%var(i+iu(2)*nel)
1052 rhoi(3) = mbuf%var(i+iu(3)*nel)
1053 rhoi(4) = mbuf%var(i+iu(4)*nel)
1055 mid = mat_param(mt)%multimat%mid(ilay)
1056 rho0i(ilay) = pm(89,mid)
1057 vi(ilay) = vfrac(i,ilay) * gbuf%vol(i)
1059 v0i(ilay) = rhoi(ilay) * vi(ilay) / rho0i(ilay)
1064 rho0g = rho0g + rho0i(ilay)*v0i(ilay)
1067 func(el2fa(nn3+nft+i))= gbuf%rho(i) / rho0g - one
1069 elseif(mlw == 37)
then
1071 iadbuf = ipm(7,imat)
1072 nuparam= ipm(9,imat)
1073 uparam => bufmat(iadbuf:iadbuf+nuparam-1)
1074 mbuf => elbuf_tab(ng)%bufly(1)%mat(1,1,1)
1075 rho0i(1) = uparam(11)
1076 rho0i(2) = uparam(12)
1077 vi(1) = mbuf%var(i+3*nel) * gbuf%vol(i)
1078 vi(2) = mbuf%var(i+4*nel) * gbuf%vol(i)
1079 rhoi(1) = mbuf%var(i+2*nel)
1080 rhoi(2) = mbuf%var(i+1*nel)
1081 v0i(1) = rhoi(1) * vi(1) / rho0i(1)
1082 v0i(2) = rhoi(2) * vi(2) / rho0i(2)
1086 rho0g = rho0g + rho0i(ilay)*v0i(ilay)
1089 func(el2fa(nn3+nft+i)) = gbuf%rho(i) / rho0g - one
1091 elseif(mlw == 20)
then
1093 lbuf1 => elbuf_tab(ng)%bufly(1)%lbuf(1,1,1)
1094 lbuf2 => elbuf_tab(ng)%bufly(2)%lbuf(1,1,1)
1095 mid = mat_param(mt)%multimat%mid(1)
1096 rho0i(1) = pm(89,mid)
1097 mid = mat_param(mt)%multimat%mid(2)
1098 rho0i(2) = pm(89,mid)
1099 vi(1) = lbuf1%vol(i)
1100 vi(2) = lbuf2%vol(i)
1101 rhoi(1) = lbuf1%rho(i)
1102 rhoi(2) = lbuf2%rho(i)
1103 v0i(1) = rhoi(1) * vi(1) / rho0i(1)
1104 v0i(2) = rhoi(2) * vi(2) / rho0i(2)
1108 rho0g = rho0g + rho0i(ilay)*v0i(ilay)
1111 func(el2fa(nn3+nft+i)) = gbuf%rho(i) / rho0g - one
1115 if(pm(89,mt) > zero)
then
1116 func(el2fa(nn3+nft+i))= gbuf%rho(i) / pm(89,mt) - one
1122 elseif( ifunc >= 15899 + 4*mx_ply_anim +1
1123 . .and. ifunc <= 15899 + 4*mx_ply_anim +10
1124 . .and. n2d > 0)
then
1127 ilay = ifunc - (15899 + 4*mx_ply_anim)
1128 if(mlw == 151 .and. ilay <=
min(10,multi_fvm%nbmat))detected = .true.
1129 if(mlw == 51 .and. ilay <= 4 )detected = .true.
1130 if(mlw == 37 .and. ilay <= 2 )detected = .true.
1131 if(mlw == 20 .and. ilay <= 2 )detected = .true.
1137 elseif(ity == 7 .and. n2d > 0)
then
1146 mid = mat_param(mt)%multimat%mid(ilay)
1147 rho0i(ilay) = pm(89,mid)
1148 vi(ilay) = multi_fvm%phase_alpha(ilay,i+nft) * gbuf%vol(i)
1149 v0i(ilay) = multi_fvm%phase_rho(ilay,i+nft) * vi(ilay) / rho0i(ilay)
1150 func(el2fa(nn3+nft+i)) = multi_fvm%phase_rho(ilay,i+nft) / rho0i(ilay) - one
1152 elseif(mlw == 51)
then
1154 iadbuf = ipm(7,imat)
1155 nuparam= ipm(9,imat)
1156 uparam => bufmat(iadbuf:iadbuf+nuparam-1)
1157 mbuf => elbuf_tab(ng)%bufly(1)%mat(1,1,1)
1158 mid = mat_param(mt)%multimat%mid(ilay)
1159 rho0i(ilay) = pm(89,mid)
1162 isubmat = nint(uparam(276+ilay)); iu(1)=m51_n0phas+(isubmat-1)*m51_nvphas + ipos-1
1163 vfrac(i,ilay) = mbuf%var(i+iu(ilay)*nel)
1164 vi(ilay) = vfrac(i,ilay) * gbuf%vol(i)
1167 isubmat = nint(uparam(276+ilay)); iu(ilay)=m51_n0phas+(isubmat-1)*m51_nvphas + ipos-1
1168 rhoi(ilay) = mbuf%var(i+iu(ilay)*nel)
1169 v0i(ilay) = rhoi(ilay) * vi(ilay) / rho0i(ilay)
1170 func(el2fa(nn3+nft+i)) = rhoi(ilay) / rho0i(ilay) - one
1172 elseif(mlw == 37)
then
1174 iadbuf = ipm(7,imat)
1175 nuparam= ipm(9,imat)
1176 uparam => bufmat(iadbuf:iadbuf+nuparam-1)
1177 mbuf => elbuf_tab(ng)%bufly(1)%mat(1,1,1)
1178 rho0i(ilay) = uparam(10+ilay)
1179 vi(ilay) = mbuf%var(i+(ilay+2)*nel) * gbuf%vol(i)
1180 rhoi(ilay) = mbuf%var(i+(3-ilay)*nel)
1181 v0i(ilay) = rhoi(ilay) * vi(ilay) / rho0i(ilay)
1182 func(el2fa(nn3+nft+i)) = rhoi(ilay) / rho0i(ilay) - one
1184 elseif(mlw == 20)
then
1186 lbuf => elbuf_tab(ng)%bufly(ilay)%lbuf(1,1,1)
1187 mid = mat_param(mt)%multimat%mid(ilay)
1188 rho0i(ilay) = pm(89,mid)
1189 vi(ilay) = lbuf%vol(i)
1190 rhoi(ilay) = lbuf%rho(i)
1191 v0i(ilay) = rhoi(ilay) * vi(ilay) / rho0i(ilay)
1192 func(el2fa(nn3+nft+i)) = rhoi(ilay) / rho0i(ilay) - one
1196 func(el2fa(nn3+nft+i)) = zero
1203 elseif( ifunc >= idx0 .AND. ifunc <= idx0+10)
then
1205 IF(mlw == 151 .AND. ilay == 0)
THEN
1207 vel(1) = multi_fvm%VEL(1, i + nft)
1208 vel(2) = multi_fvm%VEL(2, i + nft)
1209 vel(3) = multi_fvm%VEL(3, i + nft)
1210 func(el2fa(nn3+nft+i)) = sqrt(vel(1)*vel(1)+vel(2)*vel(2)+vel(3)*vel(3))
1214 func(el2fa(nn3+nft+i)) = zero
1218 elseif( ifunc >= idx1 .AND. ifunc <= idx1+10)
then
1220 IF(mlw == 151 .AND. ilay == 0)
THEN
1222 vel(2) = multi_fvm%VEL(2, i + nft)
1223 func(el2fa(nn3+nft+i)) = vel(2)
1227 func(el2fa(nn3+nft+i)) = zero
1231 elseif( ifunc >= idx2 .AND. ifunc <= idx2+10)
then
1233 IF(mlw == 151 .AND. ilay == 0)
THEN
1235 vel(3) = multi_fvm%VEL(3, i + nft)
1236 func(el2fa(nn3+nft+i)) = vel(3)
1240 func(el2fa(nn3+nft+i)) = zero
1246 func(el2fa(nn3+nft+i)) = zero
1252 ELSEIF (ity == 3.OR.(ity == 7.AND.n2d==0))
THEN
1258 gbuf => elbuf_tab(ng)%GBUF
1262 igtyp = iparg(38,ng)
1265 nptr = elbuf_tab(ng)%NPTR
1266 npts = elbuf_tab(ng)%NPTS
1267 nptt = elbuf_tab(ng)%NPTT
1268 nlay = elbuf_tab(ng)%NLAY
1271 ipinch= iparg(90,ng)
1272 IF (ihbe==3.AND.ish3nfram==0)
THEN
1278 IF (igtyp == 51 .OR. igtyp == 52)
THEN
1281 npt_all = npt_all + elbuf_tab(ng)%BUFLY(ipt)%NPTT
1283 IF (nlay == 1) mpt =
max(1,npt_all)
1291 IF (mlw == 0 .OR. mlw == 13)
THEN
1293 ELSEIF (ifunc == 1 .AND. (mlw /= 15 .AND. mlw /= 25))
THEN
1295 IF (gbuf%G_PLA > 0)
THEN
1297 IF (nlay > 1) ilay = iabs(nlay)/2 + 1
1298 bufly => elbuf_tab(ng)%BUFLY(ilay)
1299 IF (bufly%L_PLA > 0)
THEN
1302 IF(igtyp == 51 .OR. igtyp == 52)
THEN
1308 evar(i) = evar(i) + fourth*bufly%LBUF(ir,is,it)%PLA(i)/nptt
1315 evar(i) = fourth*(bufly%LBUF(1,1,1)%PLA(i) + bufly%LBUF(2,1,1)%PLA(i) +
1316 . bufly%LBUF(1,2,1)%PLA(i) + bufly%LBUF(2,2,1)%PLA(i)
1320 IF(igtyp == 51 .OR. igtyp == 52)
THEN
1325 evar(i) = evar(i) + third*bufly%LBUF(ir,1,it)%PLA(i)/nptt
1331 evar(i) = third*(bufly%LBUF(1,1,1)%PLA(i) + bufly%LBUF(1,1,1)%PLA(i) +
1332 . bufly%LBUF(1,1,1)%PLA(i))
1337 IF(igtyp == 51 .OR. igtyp == 52)
THEN
1341 evar(i) = evar(i) + abs(bufly%LBUF(1,1,it)%PLA(i))/nptt
1346 ipt = iabs(nptt)/2 + 1
1348 evar(i) = abs(bufly%LBUF(1,1,ipt)%PLA(i))
1356 ELSEIF (ifunc == 2)
THEN
1357 IF (mlw == 151)
THEN
1359 evar(i) = gbuf%RHO(i)
1364 evar(i) = pm(1,ixc(1,nft+i))
1366 ELSEIF (ity == 7)
THEN
1368 evar(i) = pm(1,ixtg(1,nft+i))
1373 ELSEIF (ifunc == 3 .AND. mlw == 151)
THEN
1375 evar(i) = gbuf%EINT(i) / gbuf%RHO(i)
1378 ELSEIF (ifunc == 3 .OR. ifunc == ish_eint)
THEN
1384 evar(i) = gbuf%EINT(i) + gbuf%EINT(i+llt)
1387 ELSEIF (ifunc == 4)
THEN
1389 evar(1:nel) = gbuf%TEMP(1:nel)
1394 IF (elbuf_tab(ng)%BUFLY(il)%L_TEMP > 0)
THEN
1395 nptt = nptt + elbuf_tab(ng)%BUFLY(il)%NPTT
1398 npg = nptr*npts*nptt
1400 IF (elbuf_tab(ng)%BUFLY(il)%L_TEMP > 0)
THEN
1401 DO it=1,elbuf_tab(ng)%BUFLY(il)%NPTT
1404 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
1405 evar(1:nel) = evar(1:nel) + lbuf%TEMP(1:nel)/npg
1413 ELSEIF (ifunc == 5)
THEN
1416 evar(i) = gbuf%THK(i)
1421 evar(i) = thke(nft+i)
1423 ELSEIF (ity == 7)
THEN
1425 evar(i) = thke(nft+i+numelc)
1430 ELSEIF (ifunc == 6 .AND. mlw == 151)
THEN
1432 evar(i) = - third * (gbuf%SIG(i) + gbuf%SIG(i + nel) + gbuf%SIG(i + 2 * nel))
1435 ELSEIF (ifunc == 7)
THEN
1437 s1 = gbuf%FOR(jj(1)+i)
1438 s2 = gbuf%FOR(jj(2)+i)
1439 s12= gbuf%FOR(jj(3)+i)
1440 vonm2= s1*s1 + s2*s2 - s1*s2 + three*s12*s12
1441 evar(i) = sqrt(vonm2)
1444 ELSEIF (ifunc == 11)
THEN
1460 ELSEIF(ifunc == 12)
THEN
1476 ELSEIF(ifunc == 13)
THEN
1485 ELSEIF (ifunc >= 14 .AND. ifunc <= 15)
THEN
1488 evar(i) = gbuf%FOR(jj(ius)+i)
1491 ELSEIF (ifunc == 16 .AND. ihbe == 11 .AND. ipinch == 1)
THEN
1495 evar(i) = evar(i) + fourth*gbuf%FORPGPINCH(nel*(ipg-1)+i)
1499 ELSEIF (ifunc >= 17 .AND. ifunc <= 19)
THEN
1502 evar(i) = gbuf%FOR(jj(ius)+i)
1505 ELSEIF (ifunc == 26)
THEN
1506 evar(lft:llt) = gbuf%EPSD(lft:llt)
1508 ELSEIF(ifunc == 2155)
THEN
1510 evar(i) = hundred *(gbuf%THK_I
1513 ELSEIF (ifunc>=20 .AND. ifunc<=24)
THEN
1516 IF (mlw==29 .OR. mlw==30 .OR. mlw==31 .OR. mlw>=33)
THEN
1521 il = iabs(nlay)/2 + 1
1525 ipt = iabs(npt)/2 + 1
1527 nuvar = elbuf_tab(ng)%BUFLY(il)%NVAR_MAT
1529 IF (mlw == 58 .or. mlw == 158)
THEN
1533 uvar=>elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,ipt)%VAR
1534 IF (ius==4 .OR. ius==5)
THEN
1535 evar(i) = evar(i) + exp(uvar(i1+i) - one) / npg
1537 evar(i) = evar(i) + uvar(i1 + i) / npg
1544 IF (nuvar > ius)
THEN
1547 uvar=>elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,ipt)%VAR
1548 evar(i) = evar(i) + uvar(i1 + i)/npg
1556 ELSEIF(ifunc >= 27 .AND. ifunc < 40)
THEN
1559 IF (mlw == 29.OR.mlw == 30.OR.mlw == 31.OR.mlw>=33)
THEN
1562 il = iabs(nlay)/2 + 1
1566 ipt = iabs(npt)/2 + 1
1568 nuvar = elbuf_tab(ng)%BUFLY(il)%NVAR_MAT
1569 IF (nuvar > ius .and. npt >= ipt*il)
THEN
1574 uvar=>elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,ipt)%VAR
1575 evar(i) = evar(i) + uvar(i1 + i)/npg
1582 ELSEIF((ifunc > 39 .AND. ifunc < 2040) .OR.
1583 . (ifunc > 2239 .AND. ifunc < 10140))
THEN
1585 IF (ifunc > 39 .and. ifunc < 2040)
THEN
1586 ius = (ifunc - 39)/100
1587 ipt = mod((ifunc - 39), 100)
1588 ELSEIF (ifunc > 2239 .AND. ifunc < 10140)
THEN
1589 ius = ((ifunc - 2239)/100) + 20
1590 ipt = mod((ifunc - 2239), 100)
1602 nuvar = elbuf_tab(ng)%BUFLY(il)%NVAR_MAT
1603 IF (nuvar > ius .and. (npt >= ipt*il))
THEN
1608 uvar=>elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,ipt)%VAR
1609 evar(i) = evar(i) + uvar(i1 + i)/npg
1615 ELSEIF( (ifunc>=10140.AND.ifunc<=10239)
1616 . .OR. ifunc == 10673.OR. ifunc == 10674
1617 . .OR. ifunc == 10675 )
THEN
1618 IF (ifunc == 10673)
THEN
1619 il = iabs(nlay)/2 + 1
1620 ELSEIF (ifunc == 10674)
THEN
1622 ELSEIF (ifunc == 10675)
THEN
1629 IF (il <= nlay)
THEN
1630 bufly => elbuf_tab(ng)%BUFLY(il)
1632 IF (igtyp == 9 .OR. igtyp == 10 .OR.igtyp == 11 .OR.
1633 . igtyp == 16 .OR. igtyp == 17 .OR. igtyp == 51 .OR.
1634 . igtyp == 52 )
THEN
1635 IF (mlw /= 0 .AND. mlw /= 13)
THEN
1637 IF(idrape > 0 .AND. (igtyp == 51 .OR. igtyp == 52))
THEN
1638 lbuf_dir => elbuf_tab(ng)%BUFLY(il)%LBUF_DIR(1)
1641 x21 = x(1,ixc(3,n))-x(1,ixc(2,n))
1642 x32 = x(1,ixc(4,n))-x(1,ixc(3,n))
1643 x34 = x(1,ixc(4,n))-x(1,ixc(5,n))
1644 x41 = x(1,ixc(5,n))-x(1,ixc(2,n))
1646 y21 = x(2,ixc(3,n))-x(2,ixc(2,n))
1647 y32 = x(2,ixc(4,n))-x(2,ixc(3,n))
1648 y34 = x(2,ixc(4,n))-x(2,ixc(5,n))
1649 y41 = x(2,ixc(5,n))-x(2,ixc
1651 z21 = x(3,ixc(3,n))-x(3,ixc(2,n))
1652 z32 = x(3,ixc(4,n))-x(3,ixc(3,n))
1653 z34 = x(3,ixc(4,n))-x(3,ixc(5,n))
1654 z41 = x(3,ixc(5,n))-x(3,ixc(2,n))
1664 e3x = e1y*e2z-e1z*e2y
1665 e3y = e1z*e2x-e1x*e2z
1666 e3z = e1x*e2y-e1y*e2x
1675 IF (ishfram == 0 )
THEN
1677 suma = e3x*e3x+e3y*e3y+e3z*e3z
1678 suma = one /
max(sqrt(suma),em20)
1683 s1 = e1x*e1x+e1y*e1y+e1z*e1z
1684 s2 = e2x*e2x+e2y*e2y+e2z*e2z
1686 e1x = e1x + (e2y*e3z-e2z*e3y)*suma
1687 e1y = e1y + (e2z*e3x-e2x*e3z)*suma
1688 e1z = e1z + (e2x*e3y-e2y*e3x)*suma
1690 suma = e1x*e1x+e1y*e1y+e1z*e1z
1691 suma = one /
max(sqrt(suma),em20)
1696 e2x = e3y * e1z - e3z * e1y
1697 e2y = e3z * e1x - e3x * e1z
1698 e2z = e3x * e1y - e3y * e1x
1699 ELSEIF (ishfram == 2)
THEN
1701 suma = e2x*e2x+e2y*e2y+e2z*e2z
1702 e1x = e1x*suma + e2y*e3z-e2z*e3y
1703 e1y = e1y*suma + e2z*e3x-e2x*e3z
1704 e1z = e1z*suma + e2x*e3y-e2y*e3x
1705 suma = e1x*e1x+e1y*e1y+e1z*e1z
1706 suma = one/
max(sqrt(suma),em20)
1711 suma = e3x*e3x+e3y*e3y+e3z*e3z
1712 suma = one /
max(sqrt(suma),em20)
1717 e2x = e3y*e1z-e3z*e1y
1718 e2y = e3z*e1x-e3x*e1z
1719 e2z = e3x*e1y-e3y*e1x
1720 suma = e2x*e2x+e2y*e2y+e2z*e2z
1721 suma = one/
max(sqrt(suma),em20)
1727 aa = lbuf_dir%DIRA(i)
1728 bb = lbuf_dir%DIRA(i+nel)
1732 vr = v1*e1x+ v2*e1y + v3*e1z
1733 vs = v1*e2x+ v2*e2y + v3*e2z
1734 suma=sqrt(vr*vr + vs*vs)
1738 dir1_1 = lbuf_dir%DIRA(i)
1739 dir1_2 = lbuf_dir%DIRA(i+nel)
1742 phi =(hundred80/pi)*atan2(dir1_2,dir1_1)
1743 err = (abs(phi) - ninety)/ninety
1745 IF(abs(err) < em02) evar(i) = sign(ninety,phi)
1746 IF(abs(evar(i)) < one) evar(i) = zero
1752 x21 = x(1,ixc(3,n))-x(1,ixc(2,n))
1753 x32 = x(1,ixc(4,n))-x(1,ixc(3,n))
1754 x34 = x(1,ixc(4,n))-x(1,ixc(5,n))
1755 x41 = x(1,ixc(5,n))-x(1,ixc(2,n))
1757 y21 = x(2,ixc(3,n))-x(2,ixc(2,n))
1758 y32 = x(2,ixc(4,n))-x(2,ixc(3,n))
1759 y34 = x(2,ixc(4,n))-x(2,ixc(5,n))
1760 y41 = x(2,ixc(5,n))-x(2,ixc(2,n))
1762 z21 = x(3,ixc(3,n))-x(3,ixc(2,n))
1763 z32 = x(3,ixc(4,n))-x(3,ixc(3,n))
1764 z34 = x(3,ixc(4,n))-x(3,ixc(5,n))
1765 z41 = x(3,ixc(5,n))-x(3,ixc(2,n))
1775 e3x = e1y*e2z-e1z*e2y
1776 e3y = e1z*e2x-e1x*e2z
1777 e3z = e1x*e2y-e1y*e2x
1786 IF (ishfram == 0 .OR. igtyp == 16 )
THEN
1788 suma = e3x*e3x+e3y*e3y+e3z*e3z
1789 suma = one /
max(sqrt(suma),em20)
1794 s1 = e1x*e1x+e1y*e1y+e1z*e1z
1795 s2 = e2x*e2x+e2y*e2y+e2z*e2z
1797 e1x = e1x + (e2y*e3z-e2z*e3y)*suma
1798 e1y = e1y + (e2z*e3x-e2x*e3z)*suma
1799 e1z = e1z + (e2x*e3y-e2y*e3x)*suma
1801 suma = e1x*e1x+e1y*e1y+e1z*e1z
1802 suma = one /
max(sqrt(suma),em20)
1807 e2x = e3y * e1z - e3z * e1y
1808 e2y = e3z * e1x - e3x * e1z
1809 e2z = e3x * e1y - e3y * e1x
1810 ELSEIF (ishfram == 2)
THEN
1812 suma = e2x*e2x+e2y*e2y+e2z*e2z
1813 e1x = e1x*suma + e2y*e3z-e2z*e3y
1814 e1y = e1y*suma + e2z*e3x-e2x*e3z
1815 e1z = e1z*suma + e2x*e3y-e2y*e3x
1816 suma = e1x*e1x+e1y*e1y+e1z*e1z
1817 suma = one/
max(sqrt(suma),em20)
1822 suma = e3x*e3x+e3y*e3y+e3z*e3z
1823 suma = one /
max(sqrt(suma),em20)
1828 e2x = e3y*e1z-e3z*e1y
1829 e2y = e3z*e1x-e3x*e1z
1830 e2z = e3x*e1y-e3y*e1x
1831 suma = e2x*e2x+e2y*e2y+e2z*e2z
1832 suma = one/
max(sqrt(suma),em20)
1839 bb = bufly%DIRA(i+nel)
1843 vr = v1*e1x+ v2*e1y + v3*e1z
1844 vs = v1*e2x+ v2*e2y + v3*e2z
1845 suma=sqrt(vr*vr + vs*vs)
1849 dir1_1 = bufly%DIRA(i)
1850 dir1_2 = bufly%DIRA(i+nel)
1853 phi =(hundred80/pi)*atan2(dir1_2,dir1_1)
1854 err = (abs(phi) - ninety)/ninety
1856 IF(abs(err) < em02) evar(i) = sign(ninety,phi)
1857 IF(abs(evar(i)) < one) evar(i) = zero
1864 ELSEIF (ity == 7)
THEN
1866 IF (igtyp == 9 .OR. igtyp == 10 .OR. igtyp == 11 .OR.
1867 . igtyp == 16 .OR. igtyp == 17 .OR. igtyp == 51 .OR.
1868 . igtyp == 52 )
THEN
1869 IF (mlw /= 0 .AND. mlw /= 13)
THEN
1870 IF(idrape > 0 .AND. (igtyp == 51 .OR. igtyp == 52))
THEN
1871 lbuf_dir => elbuf_tab(ng)%BUFLY(il)%LBUF_DIR(1)
1874 x21 = x(1,ixtg(3,n))-x(1,ixtg(2,n))
1875 x31 = x(1,ixtg(4,n))-x(1,ixtg(2,n))
1876 x32 = x(1,ixtg(4,n))-x(1,ixtg(3,n))
1878 y21 = x(2,ixtg(3,n))-x(2,ixtg(2,n))
1879 y31 = x(2,ixtg(4,n))-x(2,ixtg(2,n))
1880 y32 = x(2,ixtg(4,n))-x(2,ixtg(3,n))
1882 z21 = x(3,ixtg(3,n))-x(3,ixtg(2,n))
1883 z31 = x(3,ixtg(4,n))-x(3,ixtg(2,n))
1884 z32 = x(3,ixtg(4,n))-x(3,ixtg(3,n))
1893 IF(ifram_old ==0 )
THEN
1894 CALL clsconv3(x21,y21,z21,x31,y31,z31,
1895 + e1x,e1y,e1z,e2x,e2y,e2z,e3x,e3y,e3z)
1900 x2l = sqrt(e1x*e1x+e1y*e1y+e1z*e1z)
1908 sum_ = sqrt(e3x*e3x+e3y*e3y+e3z*e3z)
1916 sum_ = sqrt(e2x*e2x+e2y*e2y+e2z*e2z)
1922 aa = lbuf_dir%DIRA(i)
1923 bb = lbuf_dir%DIRA(i+nel)
1924 v1 = aa*e11 + bb*e21
1925 v2 = aa*e12 + bb*e22
1926 v3 = aa*e13 + bb*e23
1927 vr = v1*e1x + v2*e1y + v3*e1z
1928 vs = v1*e2x + v2*e2y + v3*e2z
1929 suma=sqrt(vr*vr + vs*vs)
1933 dir1_1 = lbuf_dir%DIRA(i)
1934 dir1_2 = lbuf_dir%DIRA(i+nel)
1936 phi =(hundred80/pi)*atan2(dir1_2,dir1_1)
1937 err = (abs(phi) - ninety)/ninety
1939 IF(abs(err) < em02) evar(i) = sign(ninety,phi)
1940 IF(abs(evar(i)) < one) evar(i) = zero
1945 x21 = x(1,ixtg(3,n))-x(1,ixtg(2,n))
1946 x31 = x(1,ixtg(4,n))-x(1,ixtg(2,n))
1947 x32 = x(1,ixtg(4,n))-x(1,ixtg(3,n))
1949 y21 = x(2,ixtg(3,n))-x(2,ixtg(2,n))
1950 y31 = x(2,ixtg(4,n))-x(2,ixtg(2,n))
1951 y32 = x(2,ixtg(4,n))-x(2,ixtg(3,n))
1953 z21 = x(3,ixtg(3,n))-x(3,ixtg(2,n))
1954 z31 = x(3,ixtg(4,n))-x(3,ixtg(2,n))
1955 z32 = x(3,ixtg(4,n))-x(3,ixtg(3,n))
1964 IF(ifram_old ==0 )
THEN
1965 CALL clsconv3(x21,y21,z21,x31,y31,z31,
1966 + e1x,e1y,e1z,e2x,e2y,e2z,e3x,e3y,e3z)
1971 x2l = sqrt(e1x*e1x+e1y*e1y+e1z*e1z)
1979 sum_ = sqrt(e3x*e3x+e3y*e3y+e3z*e3z)
1987 sum_ = sqrt(e2x*e2x+e2y*e2y+e2z*e2z)
1994 bb = bufly%DIRA(i+nel)
1995 v1 = aa*e11 + bb*e21
1996 v2 = aa*e12 + bb*e22
1997 v3 = aa*e13 + bb*e23
1999 vs = v1*e2x + v2*e2y + v3*e2z
2000 suma=sqrt(vr*vr + vs*vs)
2004 dir1_1 = bufly%DIRA(i)
2005 dir1_2 = bufly%DIRA(i+nel)
2007 phi =(hundred80/pi)*atan2(dir1_2,dir1_1)
2008 err = (abs(phi) - ninety)/ninety
2010 IF(abs(err) < em02) evar(i) = sign(ninety,phi)
2011 IF(abs(evar(i)) < one) evar(i) = zero
2023 ELSEIF (ifunc == 2040 .AND. mlw /= 15 .AND. mlw /= 25)
THEN
2032 bufly => elbuf_tab(ng)%BUFLY(il)
2033 IF (bufly%L_PLA > 0)
THEN
2035 IF (igtyp == 51 .OR. igtyp == 52) ipt = bufly%NPTT
2039 lbuf => bufly%LBUF(ir,is,ipt)
2040 evar(i) = evar(i) + abs(lbuf%PLA(i))/npg
2045 IF (igtyp == 51 .OR. igtyp == 52) ipt = bufly%NPTT
2047 evar(i) = abs(bufly%LBUF(1,1,ipt)%PLA(i))
2052 ELSEIF (ifunc == 2041 .AND. mlw /= 15 .AND. mlw /= 25)
THEN
2054 bufly => elbuf_tab(ng)%BUFLY(1)
2055 IF (bufly%L_PLA > 0)
THEN
2060 lbuf => bufly%LBUF(ir,is,1)
2061 evar(i) = evar(i) + abs(lbuf%PLA(i))/npg
2067 evar(i) = abs(bufly%LBUF(1,1,1)%PLA(i))
2072 ELSEIF (ifunc > 2041 .AND. ifunc < 2142 .AND. mlw /= 15 .AND. mlw /= 25)
THEN
2074 ilay = mod((ifunc - 2041), 100)
2075 IF (ilay == 0) ilay = 100
2076 IF ((ilay <= nlay .or. ilay <= mpt) .and. gbuf%G_PLA > 0)
THEN
2080 ELSEIF (nlay > 1)
THEN
2087 bufly => elbuf_tab(ng)%BUFLY(il)
2088 IF (bufly%L_PLA > 0)
THEN
2090 IF (igtyp == 51 .OR. igtyp == 52)
THEN
2098 lbuf => bufly%LBUF(ir,is,it)
2099 evar(i) = evar(i) + abs(lbuf%PLA(i))/npgt
2108 lbuf => bufly%LBUF(ir,is,ipt)
2109 evar(i) = evar(i) + abs(lbuf%PLA(i))/npg
2115 IF (igtyp == 51 .OR. igtyp == 52)
THEN
2119 evar(i) = evar(i) + abs(bufly%LBUF(1,1,it)%PLA(i))/nptt
2124 evar(i) = abs(bufly%LBUF(1,1,ipt)%PLA(i))
2131 ELSEIF (ifunc == 10253.OR.ifunc == 10254.OR.ifunc == 10255)
THEN
2135 IF (ifunc == 10253)
THEN
2137 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
2141 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,it)
2143 IF (fbuf%FLOC(ifail)%ILAWF == 25)
THEN
2145 evar(i) =
max(evar(i),fbuf%FLOC(ifail)%DAM(i))
2153 ELSEIF (ifunc == 10254)
THEN
2155 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
2159 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,it)
2161 IF (fbuf%FLOC(ifail)%ILAWF == 25)
THEN
2162 nvarf = fbuf%FLOC(ifail)%NVAR
2164 var = fbuf%FLOC(ifail)%VAR(nvarf*(i-1)+1)
2165 evar(i) =
max(evar(i), var)
2173 ELSEIF (ifunc == 10255)
THEN
2175 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
2179 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,it)
2181 IF (fbuf%FLOC(ifail)%ILAWF == 25)
THEN
2182 nvarf = fbuf%FLOC(ifail)%NVAR
2184 var = fbuf%FLOC(ifail)%VAR(nvarf*(i-1)+2)
2185 evar(i) =
max(evar(i), var)
2195 ELSE IF (ifunc >= 10360 .and. ifunc <= 10668)
THEN
2200 IF (ifunc == 10360)
THEN
2209 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
2210 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
2215 IF (nlay == 1) ipt = nptt
2216 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,ipt)
2218 IF (fbuf%FLOC(ifail)%ILAWF == 25)
THEN
2220 evar(i) =
max(evar(i),fbuf%FLOC(ifail)%DAM(i))
2228 ELSEIF (ifunc == 10361)
THEN
2232 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
2237 IF (nlay == 1) ipt = 1
2238 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,ipt)
2240 IF (fbuf%FLOC(ifail)%ILAWF == 25)
THEN
2242 evar(i) =
max(evar(i),fbuf%FLOC(ifail)%DAM(i))
2250 ELSEIF (ifunc == 10362)
THEN
2256 ipt = iabs(nptt) / 2
2259 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
2264 IF (nlay == 1) ipt = iabs(nptt) / 2
2265 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,ipt)
2267 IF (fbuf%FLOC(ifail)%ILAWF == 25)
THEN
2269 evar(i) =
max(evar(i),fbuf%FLOC(ifail)%DAM(i))
2277 ELSEIF (ifunc == 10363)
THEN
2286 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
2289 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,ipt)
2291 IF (fbuf%FLOC(ifail)%ILAWF == 25)
THEN
2292 nvarf = fbuf%FLOC(ifail)%NVAR
2295 evar(i) =
max(evar(i), var)
2302 ELSEIF (ifunc == 10364)
THEN
2306 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
2309 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,ipt)
2311 IF (fbuf%FLOC(ifail)%ILAWF == 25)
THEN
2312 nvarf = fbuf%FLOC(ifail)%NVAR
2314 var = fbuf%FLOC(ifail)%VAR(nvarf*(i-1)+1)
2315 evar(i) =
max(evar(i), var)
2322 ELSEIF (ifunc == 10365)
THEN
2331 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
2334 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,ipt)
2336 IF (fbuf%FLOC(ifail)%ILAWF == 25)
THEN
2337 nvarf = fbuf%FLOC(ifail)%NVAR
2339 var = fbuf%FLOC(ifail)%VAR(nvarf*(i-1)+1)
2340 evar(i) =
max(evar(i), var)
2347 ELSEIF (ifunc == 10366)
THEN
2356 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
2359 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,ipt)
2361 IF (fbuf%FLOC(ifail)%ILAWF == 25)
THEN
2362 nvarf = fbuf%FLOC(ifail)%NVAR
2364 var = fbuf%FLOC(ifail)%VAR(nvarf*(i-1)+2)
2365 evar(i) =
max(evar(i), var)
2372 ELSEIF (ifunc == 10367)
THEN
2376 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
2379 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,ipt)
2381 IF (fbuf%FLOC(ifail)%ILAWF == 25)
THEN
2382 nvarf = fbuf%FLOC(ifail)%NVAR
2384 var = fbuf%FLOC(ifail)%VAR(nvarf*(i-1)+2)
2385 evar(i) =
max(evar(i), var)
2392 ELSEIF (ifunc == 10368)
THEN
2401 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
2404 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,ipt)
2406 IF (fbuf%FLOC(ifail)%ILAWF == 25)
THEN
2407 nvarf = fbuf%FLOC(ifail)%NVAR
2409 var = fbuf%FLOC(ifail)%VAR(nvarf*(i-1)+2)
2410 evar(i) =
max(evar(i), var)
2419 ELSE IF (ifunc == 2142)
THEN
2421 IF (igtyp == 10.OR.igtyp == 11.OR.igtyp == 17.OR. igtyp == 51
2422 . .OR. igtyp == 52)
THEN
2437 mat(i)=ixtg(1,nft+i)
2438 pid(i)=ixtg(5,nft+i)
2441 IF (igtyp == 11)
THEN
2447 matly(j) = igeo(ipmat+n,pid(i))
2450 ELSEIF (igtyp == 10)
THEN
2458 ELSEIF (igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52)
THEN
2465 matly(j) = stack%IGEO(ipmat+n,isubstack)
2470 IF (ihbe == 11)
THEN
2472 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
2473 bufly => elbuf_tab(ng)%BUFLY(il)
2482 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
2484 IF (bufly%L_DAM > 0 .OR. bufly%L_OFF > 0 )
THEN
2487 IF(ipm(2,matly(j)) == 15)
THEN
2488 dam1(i)=lbuf%DAM(jj(1)+i)
2489 dam2(i)=lbuf%DAM(jj(2)+i)
2490 wpla(i) = wpla(i) + abs(lbuf%PLA(i))/npg
2491 dmax(i) = pm(64,matly(j))
2492 wpmax(i)= pm(41,matly(j))
2493 IF (dam1(i) >= dmax(i).OR.dam2(i) >= dmax(i)
2494 . .OR.wpla(i) < zero.OR.wpla(i) >= wpmax(i)
2495 . .OR.offl(i) < one) failg(i) = failg(i) + 1
2496 IF (failg(i) == npg )
THEN
2497 fail(i) = fail(i) + one
2499 ELSEIF (ipm(2,matly(j)) == 25)
THEN
2500 dam1(i)=lbuf%DMG(jj(2)+i)
2501 dam2(i)=lbuf%DMG(jj(3)+i)
2502 wpla(i) = wpla(i) + abs(lbuf%PLA(i))/npg
2503 dmax(i) = pm(64,matly(j))
2504 wpmax(i)= pm(41,matly(j))
2505 IF (dam1(i) >= dmax(i).OR.dam2(i) >= dmax(i)
2506 . .OR.wpla(i) < zero.OR.wpla(i) >= wpmax(i)
2507 . .OR.offl(i) < one) failg(i) = failg(i) + 1
2508 IF (failg(i) == npg )
THEN
2509 fail(i) = fail(i) + one
2512 IF (offl(i) < one) failg(i)= failg(i) + 1
2513 IF (failg(i) == npg )
THEN
2514 fail(i) = fail(i) + one
2528 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
2529 bufly => elbuf_tab(ng)%BUFLY(il)
2533 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(1,1,it)
2535 IF (bufly%L_DAM > 0 .OR.bufly%L_OFF > 0 )
THEN
2538 IF (ipm(2,matly(j)) == 15)
THEN
2539 dam1(i) = lbuf%DAM(jj(1)+i)
2540 dam2(i) = lbuf%DAM(jj(2)+i)
2541 wpla(i) = abs(lbuf%PLA(i))
2542 dmax(i) = pm(64,matly(j))
2543 wpmax(i)= pm(41,matly(j))
2544 IF (dam1(i) >= dmax(i).OR.dam2(i) >= dmax(i).OR.
2545 . wpla(i) < zero.OR.wpla(i) >= wpmax(i) .OR.
2546 . offl(i) < one ) fail(i) = fail(i) + one
2547 ELSEIF (ipm(2,matly(j)) == 25)
THEN
2548 dam1(i) = lbuf%DMG(jj(2)+i)
2549 dam2(i) = lbuf%DMG(jj(3)+i)
2550 wpla(i) = abs(lbuf%PLA(i))
2551 dmax(i) = pm(64,matly(j))
2552 wpmax(i)= pm(41,matly(j))
2553 IF (dam1(i) >= dmax(i).OR.dam2(i) >= dmax(i).OR.
2554 . wpla(i) < zero.OR.wpla(i) >= wpmax(i) .OR.
2555 . offl(i) < one ) fail(i) = fail(i) + one
2557 IF (offl(i) < one ) fail(i) = fail
2628 ELSE IF (ifunc >= 10256 .and. ifunc <= 10359)
THEN
2630 IF (ifunc == 10257)
THEN
2632 ELSEIF (ifunc == 10258)
THEN
2634 ELSEIF (ifunc == 10259)
THEN
2635 ipt = iabs(npt)/2 + 1
2636 ELSEIF (ifunc >= 10260 .AND. ifunc <= 10359)
THEN
2637 ipt = mod((ifunc - 10259), 100)
2638 IF (ipt == 0) ipt = 100
2645 IF(ifailure > 0)
THEN
2647 IF (ifunc == 10256)
THEN
2654 nptt = elbuf_tab(ng)%BUFLY(n)%NPTT
2660 fbuf => elbuf_tab(ng)%BUFLY(n)%FAIL(ir,is,it
2661 DO ifail = 1,elbuf_tab(ng)%BUFLY(n)%NFAIL
2662 dmgmx =
max(dmgmx,fbuf%FLOC(ifail)%DAMMX(i))
2666 dmgmx_ly = dmgmx_ly + dmgmx / nptt
2668 evar(i) = evar(i) + dmgmx_ly
2670 evar(i) = evar(i) / nlay
2672 ELSEIF (mpt > 0)
THEN
2673 nptt = elbuf_tab(ng)%BUFLY(1)%NPTT
2679 fbuf => elbuf_tab(ng)%BUFLY(1)%FAIL(ir,is,it)
2680 DO ifail = 1,elbuf_tab(ng)%BUFLY(1)%NFAIL
2681 dmgmx =
max(dmgmx, fbuf%FLOC(ifail)%DAMMX(i))
2685 evar(i) = evar(i) + dmgmx
2687 evar(i) = evar(i) / nptt
2691 ELSEIF (npt >= ipt)
THEN
2695 IF (nlay > 1 .AND. ipt <= nlay)
THEN
2696 nptt = elbuf_tab(ng)%BUFLY(ipt)%NPTT
2702 fbuf => elbuf_tab(ng)%BUFLY(ipt)%FAIL(ir,is,it)
2703 DO ifail = 1,elbuf_tab(ng)%BUFLY(ipt)%NFAIL
2704 dmgmx =
max(dmgmx,fbuf%FLOC(ifail)%DAMMX(i))
2708 evar(i) = evar(i) + dmgmx
2710 evar(i) = evar(i) / nptt
2712 ELSEIF (mpt > 0)
THEN
2716 fbuf => elbuf_tab(ng)%BUFLY(1)%FAIL(ir,is,ipt)
2717 DO ifail = 1, elbuf_tab(ng)%BUFLY(1)%NFAIL
2718 evar(i) =
max(evar(i), fbuf%FLOC(ifail)%DAMMX(i))
2729 IF(mlw == 25 .AND. (igtyp == 10 .OR. igtyp == 11 .OR.
2730 . igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52 ))
THEN
2738 mat(i)=ixtg(1,nft+i)
2739 pid(i)=ixtg(5,nft+i)
2742 IF (igtyp == 11)
THEN
2748 matly(j) = igeo(ipmat+n,pid(i))
2751 ELSEIF (igtyp == 10)
THEN
2759 ELSEIF (igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52)
THEN
2765 matly(j) = stack%IGEO(ipmat+n,isubstack)
2771 IF (ifunc == 10256)
THEN
2775 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
2776 bufly => elbuf_tab(ng)%BUFLY(il)
2784 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
2785 dmax(i) = one/pm(64,matly(j))
2786 wpmax(i)= one/pm(41,matly(j))
2787 epst1(i)= pm(60,matly(j))
2788 epst2(i)= pm(61,matly(j))
2789 epsf1(i)= one/pm(98,matly(j))
2790 epsf2(i)= one/pm(99,matly(j))
2792 vg(1) =
max(vg(1),lbuf%DMG(jj(2)+i)*dmax(i))
2793 vg(2) =
max(vg(2),lbuf%DMG
2794 vg(3)=
max(vg(3),abs(lbuf%PLA(i))*wpmax(i))
2795 IF(lbuf%CRAK(jj(1)+i) > zero) vg(4)=
max(vg(4),
2796 . (lbuf%CRAK(jj(1)+i)+epst1(i))*epsf1(i))
2797 IF(lbuf%CRAK(jj(2)+i) > zero )vg(5) =
max(vg(5),
2798 . (lbuf%CRAK(jj(2)+i)+epst2(i))*epsf2(i))
2801 vly(1) = vly(1) + vg(1)
2802 vly(2) = vly(2) + vg(2)
2803 vly(3) = vly(3) + vg(3)
2804 vly(4) = vly(4) + vg(4)
2805 vly(5) = vly(5) + vg(5)
2808 ve(2) = ve(2) + vly(2)/nptt
2809 ve(3) = ve(3) + vly(3)/nptt
2810 ve(4) = ve(4) + vly(4)/nptt
2811 ve(5) = ve(5) + vly(5)/nptt
2818 evar(i) =
max(evar(i),ve(1),ve(2),ve(3),
2821 ELSEIF(ipt <= nlay)
THEN
2824 nptt = elbuf_tab(ng)%BUFLY(ipt)%NPTT
2825 bufly => elbuf_tab(ng)%BUFLY(ipt)
2826 iadr = (ipt - 1)*nel
2833 lbuf => elbuf_tab(ng)%BUFLY(ipt)%LBUF(ir,is,it)
2834 dmax(i) = one/pm(64,matly(j)
2835 wpmax(i)= one/pm(41,matly(j))
2836 epst1(i)= pm(60,matly(j))
2837 epst2(i)= pm(61,matly(j))
2838 epsf1(i)= one/pm(98,matly(j))
2839 epsf2(i)= one/pm(99,matly(j))
2841 vg(1) =
max(vg(1),lbuf%DMG(jj(2)+i)*dmax(i))
2842 vg(2) =
max(vg(2),lbuf%DMG(jj(3)+i)*dmax(i
2843 vg(3)=
max(vg(3),abs(lbuf%PLA(i))*wpmax(i))
2844 IF(lbuf%CRAK(jj(1)+i) > zero) vg(4)=
max(vg(4),
2845 . (lbuf%CRAK(jj(1)+i)+epst1(i))*epsf1(i))
2846 IF(lbuf%CRAK(jj(2)+i) > zero )vg(5) =
max(vg(
2847 . (lbuf%CRAK(jj(2)+i)+epst2(i))*epsf2(i))
2850 vly(1) =vly(1) + vg(1)
2851 vly(2) =vly(2) + vg(2)
2852 vly(3) =vly(3) + vg(3)
2853 vly(4) =vly(4) + vg(4)
2854 vly(5) =vly(5) + vg(5)
2862 evar(i) =
max(evar(i),vly(1),vly(2),vly(3),
2869 ELSE IF (ifunc == 10670)
THEN
2877 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
2881 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,it)
2884 evar(i) =
max(evar(i),fbuf%FLOC(ifail)%TDEL(i))
2892 ELSE IF (ifunc == 10671)
THEN
2896 l = elbuf_tab(ng)%BUFLY(1)%L_SSP
2902 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
2904 evar(i) = lbuf%SSP(i)
2908 ELSE IF (ifunc == 10672)
THEN
2916 ELSE IF (ifunc == 2156)
THEN
2920 evar(i) = err_thk_sh4(nft+i)
2924 evar(i) = err_thk_sh3(nft+i)
2928 ELSE IF (ifunc == 10676)
THEN
2935 ELSEIF (ifunc == 10677)
THEN
2938 IF (gbuf%G_SEQ > 0)
THEN
2943 bufly => elbuf_tab(ng)%BUFLY(il)
2944 npgt = npgt + bufly%NPTT*nptr*npts
2950 bufly => elbuf_tab(ng)%BUFLY(il)
2954 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
2955 evar_tmp = evar_tmp + lbuf%SEQ(i)/npgt
2965 s1 = gbuf%FOR(jj(1)+i)
2966 s2 = gbuf%FOR(jj(2)+i)
2967 s12= gbuf%FOR(jj(3)+i)
2968 vonm2 = s1*s1 + s2*s2 - s1*s2 + three*s12*s12
2969 evar(i) = sqrt(vonm2)
2973 ELSEIF (ifunc > 10677 .AND. ifunc < 10778 .AND.
2974 . (igtyp == 51 .OR. igtyp == 52).AND.
2975 . mlw /= 15 .AND. mlw /= 25 )
THEN
2979 ilay = mod((ifunc - 10677), 100)
2980 IF (ilay == 0) ilay = 100
2986 bufly => elbuf_tab(ng)%BUFLY(il)
2989 IF (bufly%L_PLA > 0 .AND.
2990 . (il <= nlay .AND. ipt <= nptt))
THEN
2995 lbuf => bufly%LBUF(ir,is,ipt)
2996 evar(i) = evar(i) + abs(lbuf%PLA(i))/npg
3001 lbuf => bufly%LBUF(1,1,ipt)
3003 evar(i) = abs(lbuf%PLA(i))
3008 ELSEIF (ifunc > 10777 .AND. ifunc < 10878 .AND.
3009 . (igtyp == 51 .OR. igtyp == 52) .AND.
3010 . mlw /= 15 .AND. mlw /= 25)
THEN
3014 ilay = mod((ifunc - 10777), 100)
3015 IF (ilay == 0) ilay = 100
3022 bufly => elbuf_tab(ng)%BUFLY(il)
3024 IF (bufly%L_PLA > 0 .AND.
3025 . (il <= nlay .AND. ipt <= nptt))
THEN
3030 lbuf => bufly%LBUF(ir,is,ipt)
3031 evar(i) = evar(i) + abs(lbuf%PLA(i))/npg
3036 lbuf => bufly%LBUF(1,1,ipt)
3038 evar(i) = abs(lbuf%PLA(i))
3043 ELSEIF (ifunc > 10877 .AND. ifunc < 11888 .AND.
3044 . (igtyp == 51 .OR. igtyp == 52).AND.
3045 . mlw /= 15 .AND. mlw /= 25)
THEN
3052 il = int((ius - 1)/10)
3054 IF (il <= nlay )
THEN
3055 bufly => elbuf_tab(ng)%BUFLY(il)
3057 IF (bufly%L_PLA > 0 .AND. ipt <= nptt)
THEN
3062 lbuf => bufly%LBUF(ir,is,ipt)
3063 evar(i) = evar(i) + abs(lbuf%PLA(i))/npg
3068 lbuf => bufly%LBUF(1,1,ipt)
3070 evar(i) = abs(lbuf%PLA(i))
3076 ELSEIF(ifunc == 11888)
THEN
3079 IF (gbuf%G_QVIS > 0)
THEN
3081 func(el2fa(nn3+nft+i)) = gbuf%QVIS(i)
3085 func(el2fa(nn3+nft+i)) = zero
3089 ELSEIF (ifunc == 11889)
THEN
3090 IF (mlw /= 51 .AND. gbuf%G_TB > 0)
THEN
3092 func(el2fa(nn3+nft+i)) = -gbuf%TB(i)
3094 ELSEIF (mlw == 51)
THEN
3095 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
3099 k = llt * ((m51_n0phas + (itrimat-1)*m51_nvphas )+ipos-1)
3101 func(el2fa(nn3+nft+i)) = -mbuf%VAR(k+i)
3105 func(el2fa(nn3+nft+i)) = zero
3109 ELSE IF (ifunc>11925 .AND. ifunc < 11925+mx_ply_anim+1)
THEN
3112 iply = ifunc - 11925
3113 IF (igtyp == 17 .OR. igtyp == 51)
THEN
3114 IF (ply_anim( 3 * (iply - 1) + 2) == 1 )
THEN
3116 bufly => elbuf_tab(ng)%BUFLY(j)
3118 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
3119 IF (id_ply == ply_anim( 3 * (iply - 1) + 1) )
THEN
3125 lbuf => elbuf_tab(ng)%BUFLY(j)%LBUF(ir,is,it)
3126 IF (lbuf%OFF(i) == zero) nb_plyoff = nb_plyoff + 1
3130 IF ( nb_plyoff == nptr * npts * nptt )
THEN
3139 ELSEIF (igtyp == 52)
THEN
3140 IF (ply_anim( 3 * (iply - 1) + 2) == 1 )
THEN
3142 bufly => elbuf_tab(ng)%BUFLY(j)
3144 id_ply = ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
3145 IF (id_ply == ply_anim( 3 * (iply - 1) + 1) )
THEN
3151 lbuf => elbuf_tab(ng)%BUFLY(j)%LBUF(ir,is,it)
3152 IF (lbuf%OFF(i) == zero) nb_plyoff = nb_plyoff + 1
3156 IF ( nb_plyoff == nptr * npts * nptt )
THEN
3167 ELSE IF (ifunc> 11925+mx_ply_anim .AND. ifunc < 11925+(2*mx_ply_anim)+1)
THEN
3170 ivar = ifunc - (11925+mx_ply_anim)
3171 iply = ply_anim_phi( 3 * (ivar - 1) + 1)
3172 ipt = ply_anim_phi( 3 * (ivar - 1) + 3)
3176 IF (igtyp == 17 .OR. igtyp == 51)
THEN
3177 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
3178 ELSEIF (igtyp == 52)
THEN
3179 id_ply = ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
3182 IF (id_ply == iply )
THEN
3183 bufly => elbuf_tab(ng)%BUFLY(j)
3185 IF(idrape > 0 .AND. (igtyp == 51 .OR. igtyp == 52))
THEN
3186 IF(ipt <= bufly%NPTT )
THEN
3187 lbuf_dir => elbuf_tab(ng)%BUFLY(j)%LBUF_DIR(ipt)
3189 lbuf_dir => elbuf_tab(ng)%BUFLY(j)%LBUF_DIR(1)
3191 IF (mlw /= 0 .AND. mlw /= 13)
THEN
3194 x21 = x(1,ixc(3,n))-x(1,ixc(2,n))
3195 x32 = x(1,ixc(4,n))-x(1,ixc(3,n))
3196 x34 = x(1,ixc(4,n))-x(1,ixc(5,n))
3197 x41 = x(1,ixc(5,n))-x(1,ixc(2,n))
3199 y21 = x(2,ixc(3,n))-x(2,ixc(2,n))
3200 y32 = x(2,ixc(4,n))-x(2,ixc(3,n))
3201 y34 = x(2,ixc(4,n))-x(2,ixc(5,n))
3202 y41 = x(2,ixc(5,n))-x(2,ixc(2,n))
3204 z21 = x(3,ixc(3,n))-x(3,ixc(2,n))
3205 z32 = x(3,ixc(4,n))-x(3,ixc(3,n))
3206 z34 = x(3,ixc(4,n))-x(3,ixc(5,n))
3207 z41 = x(3,ixc(5,n))-x(3,ixc(2,n))
3217 e3x = e1y*e2z-e1z*e2y
3218 e3y = e1z*e2x-e1x*e2z
3219 e3z = e1x*e2y-e1y*e2x
3228 IF (ishfram == 0 .OR. igtyp == 16 )
THEN
3230 suma = e3x*e3x+e3y*e3y+e3z*e3z
3231 suma = one /
max(sqrt(suma),em20)
3236 s1 = e1x*e1x+e1y*e1y+e1z*e1z
3237 s2 = e2x*e2x+e2y*e2y+e2z*e2z
3239 e1x = e1x + (e2y*e3z-e2z*e3y)*suma
3240 e1y = e1y + (e2z*e3x-e2x*e3z)*suma
3241 e1z = e1z + (e2x*e3y-e2y*e3x)*suma
3243 suma = e1x*e1x+e1y*e1y+e1z*e1z
3244 suma = one /
max(sqrt(suma),em20)
3249 e2x = e3y * e1z - e3z * e1y
3250 e2y = e3z * e1x - e3x * e1z
3251 e2z = e3x * e1y - e3y * e1x
3252 ELSEIF (ishfram == 2)
THEN
3254 suma = e2x*e2x+e2y*e2y+e2z*e2z
3255 e1x = e1x*suma + e2y*e3z-e2z*e3y
3256 e1y = e1y*suma + e2z*e3x-e2x*e3z
3257 e1z = e1z*suma + e2x*e3y-e2y*e3x
3258 suma = e1x*e1x+e1y*e1y+e1z*e1z
3259 suma = one/
max(sqrt(suma),em20)
3264 suma = e3x*e3x+e3y*e3y+e3z*e3z
3265 suma = one /
max(sqrt(suma),em20)
3270 e2x = e3y*e1z-e3z*e1y
3271 e2y = e3z*e1x-e3x*e1z
3272 e2z = e3x*e1y-e3y*e1x
3273 suma = e2x*e2x+e2y*e2y+e2z*e2z
3274 suma = one/
max(sqrt(suma),em20)
3280 aa = lbuf_dir%DIRA(i)
3281 bb = lbuf_dir%DIRA(i+nel)
3285 vr = v1*e1x+ v2*e1y + v3*e1z
3286 vs = v1*e2x+ v2*e2y + v3*e2z
3287 suma=sqrt(vr*vr + vs*vs)
3291 dir1_1 = lbuf_dir%DIRA(i)
3292 dir1_2 = lbuf_dir%DIRA(i+nel)
3295 phi =(hundred80/pi)*atan2(dir1_2,dir1_1)
3296 err = (abs(phi) - ninety)/ninety
3298 IF(abs(err) < em02) evar(i) = sign(ninety,phi)
3299 IF(abs(evar(i)) < one) evar(i) = zero
3302 ELSEIF (igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52 )
THEN
3303 bufly => elbuf_tab(ng)%BUFLY(j)
3304 IF (mlw /= 0 .AND. mlw /= 13)
THEN
3307 x21 = x(1,ixc(3,n))-x(1,ixc(2,n))
3308 x32 = x(1,ixc(4,n))-x(1,ixc(3,n))
3309 x34 = x(1,ixc(4,n))-x(1,ixc(5,n))
3310 x41 = x(1,ixc(5,n))-x(1,ixc(2,n))
3312 y21 = x(2,ixc(3,n))-x(2,ixc(2,n))
3313 y32 = x(2,ixc(4,n))-x(2,ixc(3,n))
3314 y34 = x(2,ixc(4,n))-x(2,ixc(5,n))
3315 y41 = x(2,ixc(5,n))-x(2,ixc(2,n))
3317 z21 = x(3,ixc(3,n))-x(3,ixc(2,n))
3318 z32 = x(3,ixc(4,n))-x(3,ixc(3,n))
3319 z34 = x(3,ixc(4,n))-x(3,ixc(5,n))
3320 z41 = x(3,ixc(5,n))-x(3,ixc(2,n))
3330 e3x = e1y*e2z-e1z*e2y
3331 e3y = e1z*e2x-e1x*e2z
3332 e3z = e1x*e2y-e1y*e2x
3341 IF (ishfram == 0 .OR. igtyp == 16 )
THEN
3343 suma = e3x*e3x+e3y*e3y+e3z*e3z
3344 suma = one /
max(sqrt(suma),em20)
3349 s1 = e1x*e1x+e1y*e1y+e1z*e1z
3350 s2 = e2x*e2x+e2y*e2y+e2z*e2z
3352 e1x = e1x + (e2y*e3z-e2z*e3y)*suma
3353 e1y = e1y + (e2z*e3x-e2x*e3z)*suma
3354 e1z = e1z + (e2x*e3y-e2y*e3x)*suma
3356 suma = e1x*e1x+e1y*e1y+e1z*e1z
3357 suma = one /
max(sqrt(suma),em20)
3362 e2x = e3y * e1z - e3z * e1y
3363 e2y = e3z * e1x - e3x * e1z
3364 e2z = e3x * e1y - e3y * e1x
3365 ELSEIF (ishfram == 2)
THEN
3367 suma = e2x*e2x+e2y*e2y+e2z*e2z
3368 e1x = e1x*suma + e2y*e3z-e2z*e3y
3369 e1y = e1y*suma + e2z*e3x-e2x*e3z
3370 e1z = e1z*suma + e2x*e3y-e2y*e3x
3371 suma = e1x*e1x+e1y*e1y+e1z*e1z
3372 suma = one/
max(sqrt(suma),em20)
3377 suma = e3x*e3x+e3y*e3y+e3z*e3z
3378 suma = one /
max(sqrt(suma),em20)
3383 e2x = e3y*e1z-e3z*e1y
3384 e2y = e3z*e1x-e3x*e1z
3385 e2z = e3x*e1y-e3y*e1x
3386 suma = e2x*e2x+e2y*e2y+e2z*e2z
3387 suma = one/
max(sqrt(suma),em20)
3394 bb = bufly%DIRA(i+nel)
3398 vr = v1*e1x+ v2*e1y + v3*e1z
3399 vs = v1*e2x+ v2*e2y + v3*e2z
3400 suma=sqrt(vr*vr + vs*vs)
3404 dir1_1 = bufly%DIRA(i)
3405 dir1_2 = bufly%DIRA(i+nel)
3408 phi =(hundred80/pi)*atan2(dir1_2,dir1_1)
3409 err = (abs(phi) - ninety)/ninety
3411 IF(abs(err) < em02) evar(i) = sign(ninety,phi)
3412 IF(abs(evar(i)) < one) evar(i) = zero
3417 ELSEIF (ity == 7)
THEN
3418 IF(idrape > 0 .AND. (igtyp == 51 .OR. igtyp == 52))
THEN
3419 IF(ipt <= bufly%NPTT )
THEN
3420 lbuf_dir => elbuf_tab(ng)%BUFLY(j)%LBUF_DIR(ipt)
3422 lbuf_dir => elbuf_tab(ng)%BUFLY(j)%LBUF_DIR(1)
3424 IF (mlw /= 0 .AND. mlw /= 13)
THEN
3427 x21 = x(1,ixtg(3,n))-x(1,ixtg(2,n))
3428 x31 = x(1,ixtg(4,n))-x(1,ixtg(2,n))
3429 x32 = x(1,ixtg(4,n))-x(1,ixtg(3,n))
3431 y21 = x(2,ixtg(3,n))-x(2,ixtg(2,n))
3432 y31 = x(2,ixtg(4,n))-x(2,ixtg(2,n))
3433 y32 = x(2,ixtg(4,n))-x(2,ixtg(3,n))
3435 z21 = x(3,ixtg(3,n))-x(3,ixtg(2,n))
3436 z31 = x(3,ixtg(4,n))-x(3,ixtg(2,n))
3437 z32 = x(3,ixtg(4,n))-x(3,ixtg(3,n))
3446 IF(ifram_old ==0 )
THEN
3447 CALL clsconv3(x21,y21,z21,x31,y31,z31,
3448 + e1x,e1y,e1z,e2x,e2y,e2z,e3x,e3y,e3z)
3453 x2l = sqrt(e1x*e1x+e1y*e1y+e1z*e1z)
3461 sum_ = sqrt(e3x*e3x+e3y*e3y+e3z*e3z)
3469 sum_ = sqrt(e2x*e2x+e2y*e2y+e2z*e2z)
3475 aa = lbuf_dir%DIRA(i)
3476 bb = lbuf_dir%DIRA(i+nel)
3477 v1 = aa*e11 + bb*e21
3478 v2 = aa*e12 + bb*e22
3479 v3 = aa*e13 + bb*e23
3480 vr = v1*e1x + v2*e1y + v3*e1z
3481 vs = v1*e2x + v2*e2y + v3*e2z
3482 suma=sqrt(vr*vr + vs
3486 dir1_1 = lbuf_dir%DIRA(i)
3487 dir1_2 = lbuf_dir%DIRA(i+nel)
3489 phi =(hundred80/pi)*atan2(dir1_2,dir1_1)
3490 err = (abs(phi) - ninety)/ninety
3492 IF(abs(err) < em02) evar(i) = sign(ninety,phi)
3493 IF(abs(evar(i)) < one) evar(i) = zero
3496 ELSEIF (igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52 )
THEN
3497 bufly => elbuf_tab(ng)%BUFLY(j)
3498 IF (mlw /= 0 .AND. mlw /= 13)
THEN
3501 x21 = x(1,ixtg(3,n))-x(1,ixtg(2,n))
3502 x31 = x(1,ixtg(4,n))-x(1,ixtg(2,n))
3503 x32 = x(1,ixtg(4,n))-x(1,ixtg(3,n))
3505 y21 = x(2,ixtg(3,n))-x(2,ixtg(2,n))
3506 y31 = x(2,ixtg(4,n))-x(2,ixtg(2,n))
3507 y32 = x(2,ixtg(4,n))-x(
3509 z21 = x(3,ixtg(3,n))-x(3,ixtg(2,n))
3510 z31 = x(3,ixtg(4,n))-x(3,ixtg(2,n
3511 z32 = x(3,ixtg(4,n))-x(3,ixtg(3,n))
3520 IF(ifram_old ==0 )
THEN
3521 CALL clsconv3(x21,y21,z21,x31,y31,z31,
3522 + e1x,e1y,e1z,e2x,e2y,e2z,e3x,e3y,e3z)
3527 x2l = sqrt(e1x*e1x+e1y*e1y+e1z*e1z)
3535 sum_ = sqrt(e3x*e3x+e3y*e3y+e3z*e3z)
3543 sum_ = sqrt(e2x*e2x+e2y*e2y+e2z*e2z)
3550 bb = bufly%DIRA(i+nel)
3551 v1 = aa*e11 + bb*e21
3553 v3 = aa*e13 + bb*e23
3554 vr = v1*e1x + v2*e1y + v3*e1z
3555 vs = v1*e2x + v2*e2y + v3*e2z
3556 suma=sqrt(vr*vr + vs*vs)
3560 dir1_1 = bufly%DIRA(i)
3561 dir1_2 = bufly%DIRA(i+nel)
3563 phi =(hundred80/pi)*atan2(dir1_2,dir1_1)
3564 err = (abs(phi) - ninety)/ninety
3567 IF(abs(evar(i)) < one) evar(i) = zero
3576 ELSE IF (ifunc> 11925+(2*mx_ply_anim) .AND. ifunc < 11925+(3*mx_ply_anim)+1)
THEN
3579 iply = ifunc - (11925+ 2*mx_ply_anim)
3580 ipt = ply_anim_epsp( 3 * (iply - 1) + 3)
3584 IF (igtyp == 17 .OR. igtyp == 51)
THEN
3585 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
3586 ELSEIF (igtyp == 52)
THEN
3587 id_ply = ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
3590 IF (id_ply == ply_anim_epsp( 3 * (iply - 1) + 1) )
THEN
3591 bufly => elbuf_tab(ng)%BUFLY(j)
3592 IF (igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52 )
THEN
3594 IF( ipt <= nptt)
THEN
3599 evar(i) = evar(i) + abs(bufly%LBUF(ir,is,ipt)%PLA(i))/npg
3605 evar(i) = abs(bufly%LBUF(1,1,ipt)%PLA(i))
3622 ELSE IF (ifunc> 11925+(3*mx_ply_anim) .AND. ifunc < 11925+(4*mx_ply_anim)+1)
THEN
3625 iply = ifunc - (11925+ 3*mx_ply_anim)
3626 ipt = ply_anim_dama( 3 * (iply - 1) + 3)
3628 IF(ifailure > 0)
THEN
3630 nptt = elbuf_tab(ng)%BUFLY(j)%NPTT
3632 IF (igtyp == 17 .OR. igtyp == 51)
THEN
3633 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
3634 ELSEIF (igtyp == 52)
THEN
3635 id_ply=ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
3637 IF (id_ply == ply_anim_dama( 3 *(iply - 1) + 1) )
THEN
3638 IF (ipt <= nptt)
THEN
3642 fbuf => elbuf_tab(ng)%BUFLY(j)%FAIL(ir,is,ipt)
3643 DO ifail = 1, elbuf_tab(ng)%BUFLY(j)%NFAIL
3644 evar(i) =
max(evar(i), fbuf%FLOC(ifail)%DAMMX(i))
3654 IF(mlw == 25 .AND. (igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52))
THEN
3662 mat(i)=ixtg(1,nft+i)
3663 pid(i)=ixtg(5,nft+i)
3672 matly(j) = stack%IGEO(ipmat+n,isubstack)
3678 IF (igtyp == 17 .OR. igtyp == 51)
THEN
3679 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
3680 ELSEIF (igtyp == 52)
THEN
3681 id_ply=ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
3684 IF (id_ply == ply_anim_dama( 3 *(iply - 1) + 1) )
THEN
3685 bufly => elbuf_tab(ng)%BUFLY(j)
3687 nptt = elbuf_tab(ng)%BUFLY(j)%NPTT
3688 IF (ipt <= nptt)
THEN
3694 lbuf=> elbuf_tab(ng)%BUFLY(j)%LBUF(ir,is,ipt)
3695 dmax(i) = one/pm(64,matly(iadr + i))
3696 wpmax(i)= one/pm(41,matly(iadr + i))
3697 epst1(i)= pm(60,matly(iadr + i))
3698 epst2(i)= pm(61,matly(iadr + i))
3699 epsf1(i)= one/pm(98,matly(iadr + i))
3700 epsf2(i)= one/pm(99,matly(iadr + i))
3702 vg(1) =
max(vg(1),lbuf%DMG(jj(2)+i)*dmax(i))
3703 vg(2) =
max(vg(2),lbuf%DMG(jj(3)+i)*dmax(i))
3704 vg(3)=
max(vg(3),abs(lbuf%PLA(i))*wpmax(i))
3705 IF(lbuf%CRAK(jj(1)+i) > zero) vg(4)=
max(vg(4),
3706 . (lbuf%CRAK(jj(1)+i)+epst1(i))*epsf1(i))
3707 IF(lbuf%CRAK(jj(2)+i) > zero )vg(5) =
max(vg(5),
3708 . (lbuf%CRAK(jj(2)+i)+epst2(i))*epsf2(i))
3718 evar(i) =
max(evar(i),vly(1),vly(2),vly(3),vly(4),vly(5))
3725 ELSEIF (ifunc > 11925+4*mx_ply_anim .and.
3726 . ifunc < 11925+4*mx_ply_anim + 4)
THEN
3728 idx = 11925+4*mx_ply_anim
3729 IF (ifunc == idx+1)
THEN
3737 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
3738 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
3743 IF (nlay == 1) ipt =
3744 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,ipt)
3746 IF (fbuf%FLOC(ifail)%ILAWF == 7)
THEN
3748 evar(i) =
max(evar(i),fbuf%FLOC(ifail)%DAM(i))
3756 ELSEIF (ifunc == idx+2)
THEN
3759 bufly => elbuf_tab(ng)%BUFLY(il)
3761 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
3762 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
3765 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,ipt)
3767 IF (fbuf%FLOC(ifail)%ILAWF == 7)
THEN
3769 evar(i) =
max(evar(i),fbuf%FLOC(ifail)%DAM(i))
3776 ELSEIF (ifunc == idx+3)
THEN
3778 bufly => elbuf_tab(ng)%BUFLY(il)
3780 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
3781 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
3785 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,ipt)
3787 IF (fbuf%FLOC(ifail)%ILAWF == 7)
THEN
3789 evar(i) =
max(evar(i),fbuf%FLOC(ifail)%DAM(i))
3797 ELSEIF (ifunc > 11925+4*mx_ply_anim + 3.and.
3798 . ifunc < 11925+4*mx_ply_anim + 7)
THEN
3800 idx = 11925+4*mx_ply_anim + 3
3801 IF (ifunc == idx+1)
THEN
3809 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
3810 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
3815 IF (nlay == 1) ipt = nptt
3816 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,ipt)
3818 IF (fbuf%FLOC(ifail)%ILAWF == 7)
THEN
3820 rindx = fbuf%FLOC(ifail)%INDX(i)
3821 evar(i) =
max(evar(i),rindx)
3829 ELSEIF (ifunc == idx+2)
THEN
3832 bufly => elbuf_tab(ng)%BUFLY(il)
3834 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
3835 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
3838 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,ipt)
3840 IF (fbuf%FLOC(ifail)%ILAWF == 7)
THEN
3842 rindx = fbuf%FLOC(ifail)%INDX(i)
3843 evar(i) =
max(evar(i),rindx)
3850 ELSEIF (ifunc == idx+3)
THEN
3852 bufly => elbuf_tab(ng)%BUFLY(il)
3854 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
3855 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
3859 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,ipt)
3861 IF (fbuf%FLOC(ifail)%ILAWF == 7)
THEN
3863 rindx = fbuf%FLOC(ifail)%INDX(i)
3864 evar(i) =
max(evar(i),rindx)
3874 ELSEIF (ifunc > 11925+4*mx_ply_anim+6 .AND. ifunc < 11925+4*mx_ply_anim+107
3875 . .AND. (igtyp == 51 .OR. igtyp == 52))
THEN
3879 idx = 11925+4*mx_ply_anim+6
3880 ilay = mod((ifunc - idx
3881 IF (ilay == 0) ilay = 100
3887 bufly => elbuf_tab(ng)%BUFLY(il)
3895 IF (ifailure > 0)
THEN
3896 IF (il <= nlay .AND. it <= nptt)
THEN
3900 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,it)
3901 DO ifail = 1, elbuf_tab(ng)%BUFLY(il)%NFAIL
3902 evar(i) =
max(evar(i), fbuf%FLOC(ifail)%DAMMX(i))
3912 IF (mlw == 25 .AND. (igtyp == 51 .OR. igtyp == 52))
THEN
3920 mat(i)=ixtg(1,nft+i)
3921 pid(i)=ixtg(5,nft+i)
3930 matly(j) = stack%IGEO(ipmat+n,isubstack)
3934 IF (il <= nlay .AND. it <= nptt)
THEN
3941 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
3942 dmax(i) = one/pm(64,matly(j))
3943 wpmax(i)= one/pm(41,matly(j))
3944 epst1(i)= pm(60,matly(j))
3945 epst2(i)= pm(61,matly(j))
3946 epsf1(i)= one/pm(98,matly(j))
3947 epsf2(i)= one/pm(99,matly(j))
3949 vg(1) =
max(vg(1),lbuf%DMG(jj(2)+i)*dmax(i))
3950 vg(2) =
max(vg(2),lbuf%DMG(jj(3)+i)*dmax(i))
3951 vg(3) =
max(vg(3),abs(lbuf%PLA(i))*wpmax(i))
3952 IF (lbuf%CRAK(jj(1)+i) > zero) vg(4) =
max(vg(4),
3953 . (lbuf%CRAK(jj(1)+i)+epst1(i))*epsf1(i))
3954 IF (lbuf%CRAK(jj(2)+i) > zero) vg(5) =
max(vg(5),
3955 . (lbuf%CRAK(jj(2)+i)+epst2(i))*epsf2(i))
3958 evar(i) =
max(evar(i),vg(1),vg(2),vg(3),vg(4),vg(5))
3963 ELSEIF (ifunc > 11925+4*mx_ply_anim+106 .AND. ifunc < 11925+4*mx_ply_anim+207
3964 . .AND. (igtyp == 51 .OR. igtyp == 52))
THEN
3968 idx = 11925+4*mx_ply_anim+106
3969 ilay = mod((ifunc - idx), 100)
3970 IF (ilay == 0) ilay = 100
3977 bufly => elbuf_tab(ng)%BUFLY(il)
3984 IF (ifailure > 0)
THEN
3985 IF (il <= nlay .AND. it <= nptt)
THEN
3990 DO ifail = 1, elbuf_tab(ng)%BUFLY(il)%NFAIL
3991 evar(i) =
max(evar(i), fbuf%FLOC(ifail)%DAMMX(i))
4001 IF (mlw == 25 .AND. (igtyp == 51 .OR. igtyp == 52))
THEN
4009 mat(i)=ixtg(1,nft+i)
4010 pid(i)=ixtg(5,nft+i)
4019 matly(j) = stack%IGEO(ipmat+n,isubstack)
4023 IF (il <= nlay .AND. it <= nptt)
THEN
4030 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
4031 dmax(i) = one/pm(64,matly(j))
4032 wpmax(i)= one/pm(41,matly(j))
4033 epst1(i)= pm(60,matly(j))
4034 epst2(i)= pm(61,matly(j))
4035 epsf1(i)= one/pm(98,matly(j))
4036 epsf2(i)= one/pm(99,matly(j))
4038 vg(1) =
max(vg(1),lbuf%DMG(jj(2)+i)*dmax(i))
4039 vg(2) =
max(vg(2),lbuf%DMG(jj(3)+i)*dmax(i))
4040 vg(3) =
max(vg(3),abs(lbuf%PLA(i))*wpmax(i))
4041 IF (lbuf%CRAK(jj(1)+i) > zero) vg(4) =
max(vg(4),
4042 . (lbuf%CRAK(jj(1)+i)+epst1(i))*epsf1(i))
4043 IF (lbuf%CRAK(jj(2)+i) > zero) vg(5) =
max(vg(5),
4044 . (lbuf%CRAK(jj(2)+i)+epst2(i))*epsf2(i))
4047 evar(i) =
max(evar(i),vg(1),vg(2),vg(3),vg(4),vg(5))
4052 ELSEIF (ifunc > 11925+4*mx_ply_anim+206 .AND. ifunc < 11925+4*mx_ply_anim+307
4053 . .AND. (igtyp == 51 .OR. igtyp == 52))
THEN
4057 idx = 11925+4*mx_ply_anim+206
4058 ilay = mod((ifunc - idx), 100)
4064 bufly => elbuf_tab(ng)%BUFLY(il)
4072 IF (ifailure > 0)
THEN
4073 IF (il <= nlay .AND. it <= nptt)
THEN
4077 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,it)
4078 DO ifail = 1, elbuf_tab(ng)%BUFLY(il)%NFAIL
4079 evar(i) =
max(evar(i), fbuf%FLOC(ifail)%DAMMX(i))
4089 IF (mlw == 25 .AND. (igtyp == 51 .OR. igtyp == 52))
THEN
4097 mat(i)=ixtg(1,nft+i)
4098 pid(i)=ixtg(5,nft+i)
4107 matly(j) = stack%IGEO(ipmat+n,isubstack)
4111 IF (il <= nlay .AND. it <= nptt)
THEN
4118 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
4119 dmax(i) = one/pm(64,matly(j))
4120 wpmax(i)= one/pm(41,matly(j))
4121 epst1(i)= pm(60,matly(j))
4122 epst2(i)= pm(61,matly(j))
4123 epsf1(i)= one/pm(98,matly(j))
4124 epsf2(i)= one/pm(99,matly(j))
4126 vg(1) =
max(vg(1),lbuf%DMG(jj(2)+i)*dmax(i))
4127 vg(2) =
max(vg(2),lbuf%DMG(jj(3)+i)*dmax(i))
4128 vg(3) =
max(vg(3),abs(lbuf%PLA(i))*wpmax(i))
4129 IF (lbuf%CRAK(jj(1)+i) > zero) vg(4) =
max(vg(4),
4130 . (lbuf%CRAK(jj(1)+i)+epst1(i))*epsf1(i))
4131 IF (lbuf%CRAK(jj(2)+i) > zero) vg(5) =
max(vg(5),
4132 . (lbuf%CRAK(jj(2)+i)+epst2(i))*epsf2(i))
4135 evar(i) =
max(evar(i),vg(1),vg(2),vg(3),vg(4),vg(5))
4140 ELSEIF (ifunc > 11925+4*mx_ply_anim+306 .AND. ifunc < 11925+4*mx_ply_anim+1317
4141 . .AND. (igtyp == 51 .OR. igtyp == 52))
THEN
4145 idx = 11925+4*mx_ply_anim+306
4147 il = int((ius - 1)/10)
4154 IF (ifailure > 0)
THEN
4155 IF (il <= nlay)
THEN
4156 bufly => elbuf_tab(ng)%BUFLY(il)
4158 IF (it <= nptt)
THEN
4162 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,it)
4163 DO ifail = 1, elbuf_tab(ng)%BUFLY(il)%NFAIL
4164 evar(i) =
max(evar(i), fbuf%FLOC(ifail)%DAMMX(i))
4175 IF (mlw == 25 .AND. (igtyp == 51 .OR. igtyp == 52))
THEN
4183 mat(i)=ixtg(1,nft+i)
4184 pid(i)=ixtg(5,nft+i)
4193 matly(j) = stack%IGEO(ipmat+n,isubstack)
4197 IF (il <= nlay)
THEN
4198 bufly => elbuf_tab(ng)%BUFLY(il)
4200 IF (it <= nptt)
THEN
4207 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
4208 dmax(i) = one/pm(64,matly(j))
4209 wpmax(i)= one/pm(41,matly(j))
4210 epst1(i)= pm(60,matly(j))
4211 epst2(i)= pm(61,matly(j))
4212 epsf1(i)= one/pm(98,matly(j))
4213 epsf2(i)= one/pm(99,matly(j))
4215 vg(1) =
max(vg(1),lbuf%DMG(jj(2)+i)*dmax(i))
4216 vg(2) =
max(vg(2),lbuf%DMG(jj(3)+i)*dmax(i))
4217 vg(3) =
max(vg(3),abs(lbuf%PLA(i))*wpmax(i))
4218 IF (lbuf%CRAK(jj(1)+i) > zero) vg(4) =
max(vg(4),
4219 . (lbuf%CRAK(jj(1)+i)+epst1(i))*epsf1(i))
4220 IF (lbuf%CRAK(jj(2)+i) > zero) vg(5) =
max(vg(5),
4221 . (lbuf%CRAK(jj(2)+i)+epst2(i))*epsf2(i))
4224 evar(i) =
max(evar(i),vg(1),vg(2),vg(3),vg(4),vg(5))
4230 ELSEIF(ifunc == 13242 + 4*mx_ply_anim )
THEN
4233 evar(i) = gbuf%DT(i)
4237 ELSEIF(ifunc == 13243 + 4*mx_ply_anim )
THEN
4238 IF(gbuf%G_ISMS>0)
THEN
4240 evar(i) = gbuf%ISMS(i)
4244 ELSEIF(ifunc == 13245 + 4*mx_ply_anim .AND. (mlw == 15 .OR. mlw == 25))
THEN
4246 IF (gbuf%G_PLA > 0)
THEN
4249 IF (nlay > 1) ilay = iabs(nlay)/2 + 1
4250 bufly => elbuf_tab(ng)%BUFLY(ilay)
4251 IF (bufly%L_PLA > 0)
THEN
4254 IF(igtyp == 51 .OR. igtyp == 52)
THEN
4260 evar(i) = evar(i) + fourth*bufly%LBUF(ir,is,it)%PLA(i)/nptt
4267 evar(i) = fourth*(bufly%LBUF(1,1,1)%PLA(i) + bufly%LBUF(2,1,1)%PLA(i) +
4268 . bufly%LBUF(1,2,1)%PLA(i) + bufly%LBUF(2,2,1)%PLA(i))
4272 IF(igtyp == 51 .OR. igtyp == 52)
THEN
4277 evar(i) = evar(i) + third*bufly%LBUF(ir,1,it)%PLA(i)/nptt
4283 evar(i) = third*(bufly%LBUF(1,1,1)%PLA(i) + bufly%LBUF(1,1,1)%PLA(i) +
4284 . bufly%LBUF(1,1,1)%PLA(i))
4289 IF(igtyp == 51 .OR. igtyp == 52)
THEN
4293 evar(i) = evar(i) + abs(bufly%LBUF(1,1,it)%PLA(i))/nptt
4298 ipt = iabs(nptt)/2 + 1
4300 evar(i) = abs(bufly%LBUF(1,1,ipt)%PLA(i))/nptt
4307 ELSEIF (ifunc == 13246 + 4*mx_ply_anim .AND. (mlw == 15 .OR. mlw == 25))
THEN
4316 bufly => elbuf_tab(ng)%BUFLY(il)
4317 IF (bufly%L_PLA > 0)
THEN
4319 IF (igtyp == 51 .OR. igtyp == 52) ipt = bufly%NPTT
4323 lbuf => bufly%LBUF(ir,is,ipt)
4324 evar(i) = evar(i) + abs(lbuf%PLA(i))/npg
4329 IF (igtyp == 51 .OR. igtyp == 52) ipt = bufly%NPTT
4331 evar(i) = abs(bufly%LBUF(1,1,ipt)%PLA(i))
4336 ELSEIF (ifunc == 13247 + 4*mx_ply_anim .AND. (mlw == 15 .OR. mlw == 25 ))
THEN
4338 bufly => elbuf_tab(ng)%BUFLY(1)
4339 IF (bufly%L_PLA > 0)
THEN
4344 lbuf => bufly%LBUF(ir,is,1)
4345 evar(i) = evar(i) + abs(lbuf%PLA(i))/npg
4351 evar(i) = abs(bufly%LBUF(1,1,1)%PLA(i))
4356 ELSEIF (ifunc > 13247 + 4*mx_ply_anim .AND. ifunc <= 13347 + 4*mx_ply_anim
4357 . (mlw == 15 .OR. mlw == 25))
THEN
4359 ilay = mod((ifunc - 13247 - 4*mx_ply_anim), 100)
4360 IF (ilay == 0) ilay = 100
4361 IF ((ilay <= nlay .or. ilay <= mpt) .and. gbuf%G_PLA
THEN
4365 ELSEIF (nlay > 1)
THEN
4372 bufly => elbuf_tab(ng)%BUFLY(il)
4373 IF (bufly%L_PLA > 0)
THEN
4375 IF (igtyp == 51 .OR. igtyp == 52)
THEN
4383 lbuf => bufly%LBUF(ir,is,it)
4384 evar(i) = evar(i) + abs(lbuf%PLA(i))/npgt
4393 lbuf => bufly%LBUF(ir,is,ipt)
4394 evar(i) = evar(i) + abs(lbuf%PLA(i))/npg
4400 IF (igtyp == 51 .OR. igtyp == 52)
THEN
4404 evar(i) = evar(i) + abs(bufly%LBUF(1,1,it)%PLA(i))/nptt
4409 evar(i) = abs(bufly%LBUF(1,1,ipt)%PLA(i))
4416 ELSEIF (ifunc > 13347 + 4*mx_ply_anim .AND. ifunc <= 13447 + 4*mx_ply_anim .AND.
4417 . (igtyp == 51 .OR. igtyp == 52) .AND. (mlw == 15 .OR. mlw == 25) )
THEN
4421 ilay = mod((ifunc - 13347 - 4*mx_ply_anim), 100)
4422 IF (ilay == 0) ilay = 100
4428 bufly => elbuf_tab(ng)%BUFLY(il)
4431 IF (bufly%L_PLA > 0 .AND.
4432 . (il <= nlay .AND. ipt <= nptt))
THEN
4437 lbuf => bufly%LBUF(ir,is,ipt)
4438 evar(i) = evar(i) + abs(lbuf%PLA(i))/npg
4443 lbuf => bufly%LBUF(1,1,ipt)
4445 evar(i) = abs(lbuf%PLA(i))
4450 ELSEIF (ifunc > 13447 + 4*mx_ply_anim .AND. ifunc <= 13547 + 4*mx_ply_anim .AND.
4451 . (igtyp == 51 .OR. igtyp == 52) .AND. (mlw == 15 .OR. mlw == 25) )
THEN
4455 ilay = mod((ifunc - 13447 - 4*mx_ply_anim), 100)
4456 IF (ilay == 0) ilay = 100
4463 bufly => elbuf_tab(ng)%BUFLY(il)
4465 IF (bufly%L_PLA > 0 .AND.
4466 . (il <= nlay .AND. ipt <= nptt))
THEN
4471 lbuf => bufly%LBUF(ir,is,ipt)
4472 evar(i) = evar(i) + abs(lbuf%PLA(i))/npg
4477 lbuf => bufly%LBUF(1,1,ipt)
4479 evar(i) = abs(lbuf%PLA(i))
4484 ELSEIF (ifunc > 13547 + 4*mx_ply_anim .AND. ifunc <= 14547 + 4*mx_ply_anim .AND.
4485 . (igtyp == 51 .OR. igtyp == 52) .AND. (mlw == 15 .OR. mlw == 25) )
THEN
4491 ius = ifunc - 13547 - 4*mx_ply_anim
4492 il = int((ius - 1)/10)
4495 IF (il <= nlay )
THEN
4496 bufly => elbuf_tab(ng)%BUFLY(il)
4498 IF (bufly%L_PLA > 0 .AND. ipt <= nptt)
THEN
4503 lbuf => bufly%LBUF(ir,is,ipt)
4504 evar(i) = evar(i) + abs(lbuf%PLA(i))/npg
4509 lbuf => bufly%LBUF(1,1,ipt)
4511 evar(i) = abs(lbuf%PLA(i))
4518 ELSEIF (ifunc == 13547 + 4*mx_ply_anim + 1000 + 1)
THEN
4520 IF (gbuf%G_OFF > 0)
THEN
4521 IF(gbuf%OFF(i) > one)
THEN
4522 evar(i) = gbuf%OFF(i) - one
4523 ELSEIF((gbuf%OFF(i) >= zero .AND. gbuf%OFF(i) <= one))
THEN
4524 evar(i) = gbuf%OFF(i)
4532 ELSEIF(ifunc == 13547 + 4*mx_ply_anim + 1000 + 2)
THEN
4533 IF (mlw == 151)
THEN
4535 vel(1) = multi_fvm%VEL(1, i + nft)
4536 vel(2) = multi_fvm%VEL(2, i + nft)
4537 vel(3) = multi_fvm%VEL(3, i + nft)
4538 vel(0) = sqrt(vel(1)*vel(1)+vel(2)*vel(2)+vel(3)*vel(3))
4539 evar(i) = vel(0)/multi_fvm%SOUND_SPEED(i + nft)
4541 ELSEIF(alefvm_param%ISOLVER>1)
THEN
4542 l = elbuf_tab(ng)%BUFLY(1)%L_SSP
4543 IF(elbuf_tab(ng)%BUFLY(1)%L_SSP /= 0)
THEN
4544 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
4546 vel(1) = gbuf%MOM(jj(1) + i) / gbuf%RHO(i)
4547 vel(2) = gbuf%MOM(jj(2) + i) / gbuf%RHO(i)
4548 vel(3) = gbuf%MOM(jj(3) + i) / gbuf%RHO(i)
4549 vel(0) = sqrt(vel(1)*vel(1)+vel(2)*vel(2)+vel(3)*vel(3))
4554 l = elbuf_tab(ng)%BUFLY(1)%L_SSP
4555 IF(n2d/=0.AND.elbuf_tab(ng)%BUFLY(1)%L_SSP /= 0)
THEN
4556 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
4560 tmp(1,1:3)=v(1,ixtg(2:4,i+nft))-w(1,ixtg(2:4,i+nft))
4561 tmp(2,1:3)=v(2,ixtg(2:4,i+nft))-w(2,ixtg(2:4,i+nft))
4562 tmp(3,1:3)=v(3,ixtg(2:4,i+nft))-w(3,ixtg(2:4,i+nft))
4563 vel(1) = sum(tmp(1,1:3))*third
4564 vel(2) = sum(tmp(2,1:3))*third
4565 vel(3) = sum(tmp(3,1:3))*third
4566 evar(i) = sqrt(vel(1)*vel(1)+vel(2)*vel(2)+vel(3)*vel(3))/lbuf%SSP(i)
4570 tmp(1,1:4)=v(1,ixq(2:5,i+nft))-w(1,ixq(2:5,i+nft))
4571 tmp(2,1:4)=v(2,ixq(2:5,i+nft))-w(2,ixq(2:5,i+nft))
4572 tmp(3,1:4)=v(3,ixq(2:5,i+nft))-w(3,ixq(2:5,i+nft))
4573 vel(1) = sum(tmp(1,1:4))*fourth
4574 vel(2) = sum(tmp(2,1:4))*fourth
4575 vel(3) = sum(tmp(3,1:4))*fourth
4576 evar(i) = sqrt(vel(1)*vel(1)+vel(2)*vel(2)+vel(3)*vel(3))/lbuf%SSP(i)
4582 tmp(1,1:3)=v(1,ixtg(2:4,i+nft))
4583 tmp(2,1:3)=v(2,ixtg(2:4,i+nft))
4584 tmp(3,1:3)=v(3,ixtg(2:4,i+nft))
4585 vel(1) = sum(tmp(1,1:3))*third
4586 vel(2) = sum(tmp(2,1:3))*third
4587 vel(3) = sum(tmp(3,1:3))*third
4588 evar(i) = sqrt(vel(1)*vel(1)+vel(2)*vel(2)+vel(3)*vel(3))/lbuf%SSP(i)
4592 tmp(1,1:4)=v(1,ixq(2:5,i+nft))
4593 tmp(2,1:4)=v(2,ixq(2:5,i+nft))
4594 tmp(3,1:4)=v(3,ixq(2:5,i+nft))
4595 vel(1) = sum(tmp(1,1:4))*fourth
4596 vel(2) = sum(tmp(2,1:4))*fourth
4597 vel(3) = sum(tmp(3,1:4))*fourth
4598 evar(i) = sqrt(vel(1)*vel(1)+vel(2)*vel(2)+vel(3)*vel(3))/lbuf%SSP(i)
4605 ELSEIF((ifunc >= 13547 + 4*mx_ply_anim + 1000 + 4).AND.
4606 . (ifunc <= 13547 + 4*mx_ply_anim + 1000 + 18).AND.gbuf%G_DMG > 0)
THEN
4607 idx = 13547 + 4*mx_ply_anim + 1000 + 4
4609 IF (ifunc == idx)
THEN
4618 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
4620 evar(i) = evar(i) + lbuf%DMG(i)/npgt
4627 ELSEIF (ifunc == idx + 1)
THEN
4634 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,nptt)
4636 evar(i) = evar(i) + lbuf%DMG(i)/(npg*nlay)
4642 ELSEIF (ifunc == idx + 2)
THEN
4649 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,1)
4651 evar(i) = evar(i) + lbuf%DMG(i)/(npg*nlay)
4657 ELSEIF (ifunc == idx + 3)
THEN
4662 IF ((mod(nptt,2)/=0).AND.(nptt>1))
THEN
4666 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,ceiling(nptt/two))
4668 evar(i) = evar(i) + lbuf%DMG(i)/(npg*nlay)
4674 ELSEIF ((mod(nptt,2)==0).AND.(nptt>1))
THEN
4678 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,nptt/2)
4680 evar(i) = evar(i) + lbuf%DMG(i)/(two*npg*nlay)
4682 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,nptt/2+1)
4684 evar(i) = evar(i) + lbuf%DMG(i)/(two*npg*nlay)
4694 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,1)
4696 evar(i) = evar(i) + lbuf%DMG(i)/(npg*nlay)
4703 ELSEIF((ifunc >= idx + 3 + 1).AND.(ifunc <= idx + 3 + 11))
THEN
4707 it = ifunc - (idx+3)
4712 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
4714 evar(i) = evar(i) + lbuf%DMG(i)/(npg*nlay)
4722 ELSEIF((ifunc >= 14567 + 4*mx_ply_anim).AND.
4723 . (ifunc <= 14580 + 4*mx_ply_anim).AND.
4724 . gbuf%G_PLANL > 0)
THEN
4725 idx = 14567 + 4*mx_ply_anim
4727 IF (ifunc == idx)
THEN
4736 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,it)
4738 evar(i) = evar(i) + lbuf%PLANL(i)/npgt
4744 ELSEIF (ifunc == idx + 1)
THEN
4751 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,nptt)
4753 evar(i) = evar(i) + lbuf%PLANL(i)/npg
4758 ELSEIF (ifunc == idx + 2)
THEN
4765 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,1)
4767 evar(i) = evar(i) + lbuf%PLANL(i)/npg
4772 ELSEIF((ifunc >= idx + 2 + 1).AND.(ifunc <= idx + 2 + 11))
THEN
4776 it = ifunc - (idx+2)
4781 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,it)
4783 evar(i) = evar(i) + lbuf%PLANL(i)/npg
4790 ELSEIF((ifunc >= 14581 + 4*mx_ply_anim).AND.
4791 . (ifunc <= 14594 + 4*mx_ply_anim).AND.
4792 . gbuf%G_EPSDNL > 0)
THEN
4793 idx = 14581 + 4*mx_ply_anim
4795 IF (ifunc == idx)
THEN
4804 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,it)
4806 evar(i) = evar(i) + lbuf%EPSDNL(i)/npgt
4812 ELSEIF (ifunc == idx + 1)
THEN
4821 evar(i) = evar(i) + lbuf%EPSDNL(i)/npg
4826 ELSEIF (ifunc == idx + 2)
THEN
4833 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,1)
4835 evar(i) = evar(i) + lbuf%EPSDNL(i)/npg
4840 ELSEIF((ifunc >= idx + 2 + 1).AND.(ifunc <= idx + 2 + 11))
THEN
4844 it = ifunc - (idx+2)
4849 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,it)
4851 evar(i) = evar(i) + lbuf%EPSDNL(i)/npg
4858 ELSEIF (ifunc == 14595 + 4*mx_ply_anim .AND. (gbuf%G_TSAIWU > 0))
THEN
4861 ipt = iabs(nlay)/2 + 1
4862 bufly => elbuf_tab(ng)%BUFLY(ipt)
4868 evar(i) = evar(i) + bufly%LBUF(ir,is,it)%TSAIWU(i)/(nptt*nptr*npts)
4874 bufly => elbuf_tab(ng)%BUFLY(1)
4875 IF (bufly%L_TSAIWU > 0)
THEN
4881 evar(i) = evar(i) + bufly%LBUF(ir,is,ipt)%TSAIWU(i)
4888 ELSEIF (ifunc == 14596 + 4*mx_ply_anim .AND. (gbuf%G_TSAIWU > 0))
THEN
4897 bufly => elbuf_tab(ng)%BUFLY(il)
4898 IF (bufly%L_TSAIWU > 0)
THEN
4900 IF (igtyp == 51 .OR. igtyp == 52) ipt = bufly%NPTT
4904 lbuf => bufly%LBUF(ir,is,ipt)
4905 evar(i) = evar(i) + lbuf%TSAIWU(i)/npg
4910 IF (igtyp == 51 .OR. igtyp == 52) ipt = bufly%NPTT
4912 evar(i) = bufly%LBUF(1,1,ipt)%TSAIWU(i)
4917 ELSEIF (ifunc == 14597 + 4*mx_ply_anim .AND. (gbuf%G_TSAIWU > 0))
THEN
4919 bufly => elbuf_tab(ng)%BUFLY(1)
4920 IF (bufly%L_TSAIWU > 0)
THEN
4925 lbuf => bufly%LBUF(ir,is,1)
4926 evar(i) = evar(i) + lbuf%TSAIWU(i)/npg
4932 evar(i) = bufly%LBUF(1,1,1)%TSAIWU(i)
4937 ELSEIF (ifunc > 14597 + 4*mx_ply_anim .AND. ifunc <= 14697 + 4*mx_ply_anim .AND.
4938 . (gbuf%G_TSAIWU > 0))
THEN
4940 ilay = mod((ifunc - 14597 - 4*mx_ply_anim), 100)
4941 IF (ilay == 0) ilay = 100
4942 IF ((ilay <= nlay .OR. ilay <= mpt) .AND. gbuf%G_TSAIWU > 0)
THEN
4946 ELSEIF (nlay > 1)
THEN
4953 bufly => elbuf_tab(ng)%BUFLY(il)
4954 IF (bufly%L_TSAIWU > 0)
THEN
4956 IF (igtyp == 51 .OR. igtyp == 52)
THEN
4964 lbuf => bufly%LBUF(ir,is,it)
4965 evar(i) = evar(i) + lbuf%TSAIWU(i)/npgt
4974 lbuf => bufly%LBUF(ir,is,ipt)
4975 evar(i) = evar(i) + lbuf%TSAIWU(i)/npg
4981 IF (igtyp == 51 .OR. igtyp == 52)
THEN
4985 evar(i) = evar(i) + bufly%LBUF(1,1,it)%TSAIWU(i)/nptt
4990 evar(i) = bufly%LBUF(1,1,ipt)%TSAIWU(i)
4997 ELSEIF (ifunc > 14697 + 4*mx_ply_anim .AND. ifunc <= 14797 +
4998 . (igtyp == 51 .OR. igtyp == 52) .AND. (gbuf%G_TSAIWU > 0) )
THEN
5002 ilay = mod((ifunc - 14697 - 4*mx_ply_anim), 100)
5003 IF (ilay == 0) ilay = 100
5009 bufly => elbuf_tab(ng)%BUFLY(il)
5012 IF (bufly%L_TSAIWU > 0 .AND.
5013 . (il <= nlay .AND. ipt <= nptt))
THEN
5018 lbuf => bufly%LBUF(ir,is,ipt)
5019 evar(i) = evar(i) + lbuf%TSAIWU(i)/npg
5024 lbuf => bufly%LBUF(1,1,ipt)
5026 evar(i) = lbuf%TSAIWU(i)
5031 ELSEIF (ifunc > 14797 + 4*mx_ply_anim .AND. ifunc <= 14897 + 4*mx_ply_anim .AND.
5032 . (igtyp == 51 .OR. igtyp == 52) .AND. (gbuf%G_TSAIWU > 0) )
THEN
5036 ilay = mod((ifunc - 14797 - 4*mx_ply_anim), 100)
5037 IF (ilay == 0) ilay = 100
5044 bufly => elbuf_tab(ng)%BUFLY(il)
5046 IF (bufly%L_TSAIWU > 0 .AND.
5047 . (il <= nlay .AND. ipt <= nptt))
THEN
5052 lbuf => bufly%LBUF(ir,is,ipt)
5053 evar(i) = evar(i) + lbuf%TSAIWU(i)/npg
5058 lbuf => bufly%LBUF(1,1,ipt)
5060 evar(i) = lbuf%TSAIWU(i)
5065 ELSEIF (ifunc > 14897 + 4*mx_ply_anim .AND. ifunc <= 15897 + 4*mx_ply_anim .AND.
5066 . (igtyp == 51 .OR. igtyp == 52) .AND. (gbuf%G_TSAIWU > 0) )
THEN
5072 ius = ifunc - 14897 - 4*mx_ply_anim
5073 il = int((ius - 1)/10)
5076 IF (il <= nlay )
THEN
5077 bufly => elbuf_tab(ng)%BUFLY(il)
5079 IF (bufly%L_TSAIWU > 0 .AND. ipt <= nptt)
THEN
5084 lbuf => bufly%LBUF(ir,is,ipt)
5085 evar(i) = evar(i) + lbuf%TSAIWU(i)/npg
5090 lbuf => bufly%LBUF(1,1,ipt)
5092 evar(i) = lbuf%TSAIWU(i)
5102 IF (mlw == 0 .OR. mlw == 13)
THEN
5106 func(el2fa(nn4+n)) = zero
5111 func(el2fa(nn5+n)) = zero
5115 ELSEIF (ifunc == 3 .AND. mlw /= 151)
THEN
5121 func(el2fa(nn4+n)) = evar(i)/
5122 .
max(em30,mass(el2fa(nn4+n)))
5127 func(el2fa(nn5+n)) = evar(i)/
5128 .
max(em30,mass(el2fa(nn5+n)))
5132 ELSEIF (ifunc == 25.AND.ity == 3)
THEN
5137 func(el2fa(nn4+n)) = ehour(n+numels)/
5138 .
max(em30,mass(el2fa(nn4+n)))
5147 func(el2fa(nn4+n)) = evar(i)
5152 func(el2fa(nn5+n)) = evar(i)
5163 IF (nspmd == 1)
THEN
5173 IF (ispmd == 0)
THEN
5174 buf = (numelqg+numelcg+numeltgg)*4
5181 IF(
ALLOCATED(wa_l))
DEALLOCATE(wa_l)