46 SUBROUTINE dfuncc(ELBUF_TAB ,FUNC ,IFUNC ,IPARG ,GEO ,
47 . IXQ ,IXC ,IXTG ,MASS ,PM ,
48 . EL2FA ,NBF ,IADP ,ITHERM ,
49 . NBF_L ,EHOUR ,ANIM ,NBPART ,IADG ,
50 . IPM ,IGEO ,THKE ,ERR_THK_SH4 ,ERR_THK_SH3,
51 . INVERT ,X ,V ,W ,ALE_CONNECTIVITY,
52 . NV46 ,NERCVOIS ,NESDVOIS ,LERCVOIS ,LESDVOIS,
53 . STACK ,BUFMAT ,MULTI_FVM ,MAT_PARAM)
64 USE multimat_param_mod ,
ONLY : m51_n0phas, m51_nvphas
65 USE matparam_def_mod ,
ONLY : matparam_struct_
70#include "implicit_f.inc"
74#include "vect01_c.inc"
86 . func(*),mass(*),x(3,numnod),v(3,numnod),w(3,numnod),thke(*),ehour(*),geo(npropg,numgeo),
87 . anim(*),pm(npropm,nummat),err_thk_sh4(*), err_thk_sh3(*),bufmat(*)
88 INTEGER IPARG(NPARG,NGROUP),IXC(NIXC,NUMELC),IXTG(NIXTG,NUMELTG),EL2FA(*)
90,IADG(NSPMD,*),IPM(NPROPMI,NUMMAT),
91 . IGEO(NPROPGI,NUMGEO),INVERT(*), NV46
92 INTEGER,
INTENT(IN) :: ITHERM
93 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
94 TYPE (STACK_PLY) :: STACK
95 TYPE(buf_mat_) ,
POINTER :: MBUF
96 TYPE(MULTI_FVM_STRUCT),
INTENT(IN) :: MULTI_FVM
97 TYPE (MATPARAM_STRUCT_) ,
DIMENSION(NUMMAT) ,
INTENT(IN) :: MAT_PARAM
102 . evar(mvsiz),dam1(mvsiz),dam2(mvsiz),
103 . wpla(mvsiz),dmax(mvsiz),wpmax(mvsiz),fail(mvsiz),
104 . epst1(mvsiz),epst2(mvsiz),epsf1(mvsiz),epsf2(mvsiz),
105 . sig1(mvsiz),sig2(mvsiz),sig3(mvsiz),
106 . a002(mvsiz),values(mvsiz)
108 . off, p,vonm2,s1,s2,s12,s3,
VALUE,value1,value2,dmgmx,fac,
109 . dir1_1,dir1_2,dir2_1,dir2_2,aa,bb,v1,v2,v3,x21,x32,x34,
110 . x41,y21,y32,y34,y41,z21,z32,z34,z41,suma,vr,vs,x31,y31,
111 . z31,e11,e12,e13,e21,e22,e23,sum_,
area,x2l,var,rindx,
112 . e1x,e1y,e1z,e2x,e2y,e2z,e3x,e3y,e3z,rx,ry,rz,sx,sy,sz,
113 . vg(5),vly(5),ve(5),dmgmx_ly,evar_tmp,a01,a02,a03,a12,a,
115 . vel(0:3),vfrac(mvsiz,21),phi,err,ninty
116 INTEGER I,IDX,I1,II,J,NG,NEL,NPTR,NPTS,NPTT,NLAY,L,IFAIL,ILAY,
117 . IR,IS,IT,IL,MLW, NUVAR,IUS,PTF,PTM,PTS,NFAIL,
118 . N,K,K1,K2,JTURB,MT,IMID,IALEL,IPID,ISH3N,NNI,
119 . NN1,NN2,NN3,NN4,NN5,NN6,NN9,NF,BUF,NVARF,
120 . OFFSET,IHBE,NPTM,NPG, MPT,IPT,IADD,IADR,IPMAT,IFAILT,
121 . IIGEO,IADI,,ITHK,NERCVOIS(*),NESDVOIS(*),
122 . LERCVOIS(*),LESDVOIS(*),ID_PLY,NB_PLYOFF,IFRAM_OLD,
123 . jj(6),npgt,iadbuf,nuparam,imat,ns,nrate,expa,ivisc,iu(4),nfrac
124 INTEGER PID(MVSIZ),MAT(MVSIZ),MATLY(MVSIZ*100),FAILG(MVSIZ),
125 . PTE(4),PTP(4),PTMAT(4),PTVAR(4),LENCOM,NPT_ALL,IPLY,ITRIMAT,IPOS,
126 . ISUBMAT, ISH_EINT, IS_ALE, IS_EULER,IPG,IPINCH,
127 . IMAT_TILLOTSON, NTILLOTSON,NVAREOS,IEOS,IDRAPE,IVAR
128 REAL,
DIMENSION(:),
ALLOCATABLE:: WAL
130 TYPE(G_BUFEL_) ,
POINTER :: GBUF
131 TYPE(l_bufel_) ,
POINTER :: LBUF
132 TYPE(BUF_LAY_) ,
POINTER :: BUFLY
133 TYPE(BUF_FAIL_) ,
POINTER :: FBUF
134 TYPE(BUF_EOS_) ,
POINTER :: EBUF
135 TYPE(l_bufel_dir_) ,
POINTER :: LBUF_DIR
137 my_real,
DIMENSION(:),
POINTER :: uvar,offl
138 TYPE(l_bufel_) ,
POINTER :: LBUF1,LBUF2
139 my_real,
DIMENSION(:) ,
POINTER :: uparam
153 CALL my_alloc(wal,nbf_l)
161 ish_eint = 13242 + 4*mx_ply_anim + 2
174 2 mlw ,nel ,nft ,iad ,ity ,
175 3 npt ,jale ,ismstr ,jeul ,jturb ,
176 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
177 5 nvaux ,jpor ,jcvt ,jclose ,jplasol ,
178 6 irep ,iint ,igtyp ,israt ,isrot ,
179 7 icsen ,isorth ,isorthg ,ifailure,jsms )
181 DO offset = 0,nel-1,nvsiz
182 nft =iparg(3,ng) + offset
185 llt=
min(nvsiz,nel-offset)
186 isubstack = iparg(71,ng)
189 is_euler=iparg(11,ng)
190 idrape = elbuf_tab(ng)%IDRAPE
207 IF (ity == 2 .OR.(ity == 7.AND.n2d/=0) )
THEN
208 gbuf => elbuf_tab(ng)%GBUF
209 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
210 uvar => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)%VAR
211 jale=(iparg(7,ng)+iparg(11,ng))
212 jturb=iparg(12,ng)*jale
213 nptr = elbuf_tab(ng)%NPTR
214 npts = elbuf_tab(ng)%NPTS
215 nptt = elbuf_tab(ng)%NPTT
216 nlay = elbuf_tab(ng)%NLAY
217 nuvar = elbuf_tab(ng)%BUFLY(1)%NVAR_MAT
220 func(el2fa(nn3+nft+i))= zero
224 IF (mlw == 10 .OR.
THEN
226 func(el2fa(nn3+nft+i)) = lbuf%EPSQ(i)
228 ELSEIF (mlw == 24)
THEN
230 func(el2fa(nn3+nft+i)) = lbuf%VK(i)
232 ELSEIF (mlw == 6 .OR. mlw == 17 .OR. mlw == 11)
THEN
234 func(el2fa(nn3+nft+i)) = lbuf%RK(i)
236 ELSEIF (mlw >=28 .AND. mlw /= 49 .and. nuvar > 0)
THEN
238 func(el2fa(nn3+nft+i)) = uvar(i)
241 IF (gbuf%G_PLA > 0)
THEN
243 func(el2fa(nn3+nft+i)) = gbuf%PLA(i)
247 ELSEIF(ifunc == 2)
THEN
249 func(el2fa(nn3+nft+i)) = gbuf%RHO(i)
251 ELSEIF(ifunc == 3)
THEN
254 ialel=iparg(7,ng)+iparg(11,ng)
257 VALUE = gbuf%EINT(i)/
max(em30,pm(1,mt))
259 VALUE = gbuf%EINT(i)/
max(em30,gbuf%RHO(i))
261 func(el2fa(nn3+n)) =
VALUE
263 ELSEIF(ifunc == 4)
THEN
264 IF(gbuf%G_TEMP > 0)
THEN
266 func(el2fa(nn3+nft+i)) = gbuf%TEMP(i)
270 func(el2fa(nn3+nft+i)) = zero
273 ELSEIF(ifunc == 6)
THEN
275 p = - (gbuf%SIG(jj(1) + i)
276 . + gbuf%SIG(jj(2) + i)
277 . + gbuf%SIG(jj(3) + i))*third
278 func(el2fa(nn3+nft+i)) = p
280 ELSEIF(ifunc == 7)
THEN
282 p = - (gbuf%SIG(jj(1) + i)
283 . + gbuf%SIG(jj(2) + i)
284 . + gbuf%SIG(jj(3) + i) )*third
285 s1 = gbuf%SIG(jj(1) + i) + p
286 s2 = gbuf%SIG(jj(2) + i) + p
287 s3 = gbuf%SIG(jj(3) + i) + p
288 vonm2 = three*(gbuf%SIG(jj(4) + i)**2
289 . + half*(s1**2+s2**2+s3**2) )
290 func(el2fa(nn3+nft+i)) = sqrt(vonm2)
292 ELSEIF(ifunc == 8 .AND. jturb/=0)
THEN
294 func(el2fa(nn3+nft+i)) = gbuf%RK(i)
296 ELSEIF(ifunc == 9 )
THEN
297 IF (mlw == 6 .OR. mlw == 17.AND.jturb/=0)
THEN
301 func(el2fa(nn3+n))=pm(81,mt)*gbuf%RK(i)**2/
302 .
max(em15,gbuf%RE(i))
304 ELSEIF(mlw == 46 .OR. mlw == 47)
THEN
306 func(el2fa(nn3+nft+i))= uvar(i)
309 ELSEIF(ifunc == 10 )
THEN
310 IF (mlw == 6 .OR. mlw == 17)
THEN
312 func(el2fa(nn3+nft+i)) = lbuf%VK(i)
316 func(el2fa(nn3+nft+i)) = uvar(nel+i)
319 ELSEIF((ifunc == 11.OR.ifunc == 12.OR.ifunc == 13)
320 . .AND.mlw == 24)
THEN
322 func(el2fa(nn3+nft+i)) = lbuf%DAM(jj(ifunc-10) + i)
324 ELSEIF(ifunc == 14)
THEN
326 func(el2fa(nn3+nft+i)) = gbuf%SIG(jj(3) + i)
328 ELSEIF(ifunc == 15)
THEN
330 func(el2fa(nn3+nft+i)) = gbuf%SIG(jj(1) + i)
332 ELSEIF(ifunc == 16)
THEN
334 func(el2fa(nn3+nft+i)) = gbuf%SIG(jj(2) + i)
336 ELSEIF(ifunc == 17.OR.ifunc == 18)
THEN
338 func(el2fa(nn3+nft+i)) = gbuf%SIG(jj(4) + i)
341 ELSEIF(ifunc>=20.AND.ifunc<=24.AND.
342 . (mlw == 28.OR.mlw == 29.OR.mlw == 30.OR.
343 . mlw == 31.OR.mlw == 52.OR.mlw == 79))
THEN
351 IF (nuvar > ius) func(el2fa(nn3+n)) = uvar(ius*nel + i)
353 ELSEIF(ifunc == 25)
THEN
356 func(el2fa(nn3+nft+i)) = ehour(n)
359 ELSEIF (ifunc == 26)
THEN
360 IF (gbuf%G_EPSD > 0)
THEN
362 func(el2fa(nn3+nft+i)) = gbuf%EPSD(i)
366 ELSEIF (ifunc>=27 .AND. ifunc<=39 .AND.
367 . (mlw == 28.OR.mlw == 29.OR.mlw == 30.OR.mlw == 31.OR.
375 IF (nuvar>ius) func(el2fa(nn3+n)) = uvar(ius*nel + i)
379 ELSEIF(mlw == 20 .AND. (ifunc == 10248.OR.ifunc == 10249))
THEN
381 func(el2fa(nn3+nft+i)) =
382 . elbuf_tab(ng)%BUFLY(ifunc-10248+1)%LBUF(1,1,1)%VOL(i)
383 . / elbuf_tab(ng)%GBUF%VOL(i)
387 ELSEIF(mlw == 37 .AND. (ifunc == 10248.OR.ifunc == 10249))
THEN
389 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
391 func(el2fa(nn3+nft+i)) = mbuf%VAR(i+ius*nel)
395 ELSEIF(mlw == 51 .AND. (ifunc >= 10248.AND.ifunc <= 10251))
THEN
399 uparam => bufmat(iadbuf:iadbuf+nuparam)
400 isubmat = (ifunc-10247)
401 isubmat = uparam(276+isubmat)
402 ius=m51_n0phas+(isubmat-1)*m51_nvphas
403 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
405 func(el2fa(nn3+nft+i)) = mbuf%VAR(i+ius*nel)
408 ELSEIF(mlw == 151 .AND. (ifunc >= 10248.AND.ifunc <= 10250))
THEN
409 ius= ifunc - 10248 + 1
412 func(el2fa(nn3+nft+i)) = elbuf_tab(ng)%BUFLY(ius)%LBUF(1,1,1)%VOL(i) / gbuf%VOL(i)
416 func(el2fa(nn3+nft+i)) = zero
421 ELSEIF(ifunc == 10252)
THEN
422 IF(elbuf_tab(ng)%GBUF%G_BFRAC > 0 .AND. n2d > 0)
THEN
424 func(el2fa(nn3+nft+i)) = elbuf_tab(ng)%GBUF%BFRAC(i)
428 func(el2fa(nn3+nft+i)) = zero
432 ELSEIF(ifunc == 10671)
THEN
435 func(el2fa(nn3+nft+i)) = multi_fvm%SOUND_SPEED(i + nft)
438 l = elbuf_tab(ng)%BUFLY(1)%L_SSP
439 IF(elbuf_tab(ng)%BUFLY(1)%L_SSP /= 0)
THEN
440 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
442 func(el2fa(nn3+nft+i)) = lbuf%SSP(i)
447 ELSEIF(ifunc == 10672)
THEN
448 ialel=iparg(7,ng)+iparg(11,ng)
451 func(el2fa(nn3+nft+i)) = zero
457 2 iparg , wa_l , elbuf_tab , ale_connectivity , gbuf%VOL,
459 ELSEIF(ity == 7 .AND. n2d /= 0)
THEN
462 2 iparg , wa_l , elbuf_tab , ale_connectivity , gbuf%VOL,
466 func(el2fa(nn3+nft+i)) = evar(i)
470 ELSEIF (ifunc == 10677)
THEN
472 IF (gbuf%G_SEQ > 0)
THEN
477 bufly => elbuf_tab(ng)%BUFLY(il)
478 npgt = npgt + bufly%NPTT*nptr*npts
484 bufly => elbuf_tab(ng)%BUFLY(il)
488 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
489 evar_tmp = evar_tmp + lbuf%SEQ(i)/npgt
494 func(el2fa(nn3+nft+i)) = evar_tmp
499 p = - (gbuf%SIG(jj(1) + i)
500 . + gbuf%SIG(jj(2) + i)
501 . + gbuf%SIG(jj(3) + i))*third
502 s1 = gbuf%SIG(jj(1) + i) + p
503 s2 = gbuf%SIG(jj(2) + i) + p
504 s3 = gbuf%SIG(jj(3) + i) + p
505 vonm2 = three*(gbuf%SIG(jj(4) + i)**2
506 . + half*(s1**2+s2**2+s3**2))
507 func(el2fa(nn3+nft+i)) = sqrt(vonm2)
512 ELSEIF(ifunc == 11888)
THEN
513 IF (gbuf%G_QVIS > 0)
THEN
515 func(el2fa(nn3+nft+i)) = gbuf%QVIS(i)
519 func(el2fa(nn3+nft+i)) = zero
523 ELSEIF (ifunc == 11889)
THEN
524 IF (gbuf%G_TB > 0)
THEN
526 func(el2fa(nn3+nft+i)) = -gbuf%TB(i)
530 func(el2fa(nn3+nft+i)) = zero
535 ELSEIF(ifunc>=11890 .AND. ifunc<=11893)
THEN
537 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
541 itrimat = ifunc - 11890 + 1
543 k = llt * (m51_n0phas + (itrimat - 1) * m51_nvphas + ipos - 1)
544 VALUE = mbuf%VAR(k + i)
545 func(el2fa(nn3+n)) =
VALUE
551 ialel = iparg(7,ng)+iparg(11,ng)
552 IF(ialel /= 0 .AND. mlw == 20)
THEN
553 lbuf1 => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
554 lbuf2 => elbuf_tab(ng)%BUFLY(2)%LBUF(1,1,1)
555 value1 = lbuf1%RHO(i)
556 value2 = lbuf2%RHO(i)
558 IF(ifunc == 11890)
VALUE=value1
559 IF(ifunc == 11891)
VALUE=value2
561 func(el2fa(nn3+n)) =
VALUE
565 ELSEIF(ifunc>=11894 .AND. ifunc<=11897)
THEN
567 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
571 itrimat = ifunc - 11894 + 1
573 k = llt * (m51_n0phas + (itrimat - 1) * m51_nvphas + ipos - 1)
574 k2 = llt * ((m51_n0phas + (itrimat-1)*m51_nvphas )+12-1)
575 VALUE = mbuf%VAR(k + i) / mbuf%VAR(k2+i)
576 func(el2fa(nn3+n)) =
VALUE
582 ialel = iparg(7,ng)+iparg
583 IF(ialel /= 0 .AND. mlw == 20)
THEN
584 lbuf1 => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
585 lbuf2 => elbuf_tab(ng)%BUFLY(2)%LBUF(1,1,1)
586 value1 = lbuf1%EINT(i)/
max(em30,lbuf1%RHO(i))
587 value2 = lbuf2%EINT(i)/
max(em30,lbuf2%RHO(i))
589 IF(ifunc == 11894)
VALUE=value1
590 IF(ifunc == 11895)
VALUE=value2
592 func(el2fa(nn3+n)) =
VALUE
596 ELSEIF(ifunc>=11898 .AND. ifunc<=11901)
THEN
598 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
602 itrimat = ifunc - 11898 + 1
604 k = llt * (m51_n0phas + (itrimat - 1) * m51_nvphas + ipos -
605 VALUE = mbuf%VAR(k + i)
606 func(el2fa(nn3+n)) =
VALUE
612 ialel = iparg(7,ng)+iparg(11,ng)
613 IF(ialel /= 0 .AND. mlw == 20)
THEN
614 lbuf1 => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
615 lbuf2 => elbuf_tab(ng)%BUFLY(2)%LBUF(1,1,1)
616 IF(elbuf_tab(ng)%BUFLY(1)%L_TEMP>0)value1 = lbuf1%TEMP(i)
617 IF(elbuf_tab(ng)%BUFLY(2)%L_TEMP>0)value2 = lbuf2%TEMP(i)
619 IF(ifunc == 11898)
VALUE=value1
620 IF(ifunc == 11899)
VALUE=value2
622 func(el2fa(nn3+n)) =
VALUE
626 ELSEIF(ifunc>=11902 .AND. ifunc<=11905)
THEN
628 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
632 itrimat = ifunc - 11902 + 1
634 k = llt * (m51_n0phas + (itrimat - 1) * m51_nvphas + ipos - 1)
635 VALUE = mbuf%VAR(k + i)
636 func(el2fa(nn3+n)) =
VALUE
642 ialel = iparg(7,ng)+iparg(11,ng)
643 IF(ialel /= 0 .AND. mlw == 20)
THEN
644 lbuf1 => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
645 lbuf2 => elbuf_tab(ng)%BUFLY(2)%LBUF(1,1,1)
646 value1 = - (lbuf1%SIG(jj(1) + i) +
647 . lbuf1%SIG(jj(2) + i) +
648 . lbuf1%SIG(jj(3) + i))*third
649 value2 = - (lbuf2%SIG(jj(1) + i) +
650 . lbuf2%SIG(jj(2) + i) +
651 . lbuf2%SIG(jj(3) + i))*third
653 IF(ifunc == 11902)
VALUE=value1
654 IF(ifunc == 11903)
VALUE=value2
656 func(el2fa(nn3+n)) =
VALUE
660 ELSEIF(ifunc>=11906 .AND. ifunc<=11909)
THEN
666 ialel = iparg(7,ng)+iparg(11,ng)
667 IF(ialel /= 0 .AND. mlw == 20)
THEN
668 lbuf1 => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
669 lbuf2 => elbuf_tab(ng)%BUFLY(2)%LBUF(1,1,1)
670 IF(elbuf_tab(ng)%BUFLY(1)%L_PLA>0)value1 = lbuf1%PLA(i)
671 IF(elbuf_tab(ng)%BUFLY(2)%L_PLA>0)value2 = lbuf2%PLA(i)
673 IF(ifunc == 11906)
VALUE=value1
674 IF(ifunc == 11907)
VALUE=value2
676 func(el2fa(nn3+n)) =
VALUE
679 ELSEIF(ifunc>=11910 .AND. ifunc<=11913)
THEN
681 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
685 itrimat = ifunc - 11910 + 1
687 k = llt * (m51_n0phas + (itrimat - 1) * m51_nvphas + ipos - 1)
688 VALUE = mbuf%VAR(k + i)
689 func(el2fa(nn3+n)) =
VALUE
695 ialel = iparg(7,ng)+iparg(11,ng)
696 IF(ialel /= 0 .AND. mlw == 20)
THEN
697 lbuf1 => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
698 lbuf2 => elbuf_tab(ng)%BUFLY(2)%LBUF(1,1,1)
699 value1 = lbuf1%SSP(i)
700 value2 = lbuf2%SSP(i)
702 IF(ifunc == 11910)
VALUE=value1
703 IF(ifunc == 11911)
VALUE=value2
705 func(el2fa(nn3+n)) =
VALUE
709 ELSEIF(ifunc>=11914 .AND. ifunc<=11917)
THEN
711 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
715 itrimat = ifunc - 11914 + 1
717 k = llt * (m51_n0phas + (itrimat - 1) * m51_nvphas + ipos - 1)
718 VALUE = mbuf%VAR(k + i)
719 func(el2fa(nn3+n)) =
VALUE
725 ialel = iparg(7,ng)+iparg(11,ng)
726 IF(ialel /= 0 .AND. mlw == 20)
THEN
727 lbuf1 => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
728 lbuf2 => elbuf_tab(ng)%BUFLY(2)%LBUF(1,1,1)
729 value1 = lbuf1%VOL(i)
730 value2 = lbuf2%VOL(i)
732 IF(ifunc == 11914)
VALUE=value1
733 IF(ifunc == 11915)
VALUE=value2
735 func(el2fa(nn3+n)) =
VALUE
739 ELSEIF(ifunc>=11918 .AND. ifunc<=11921)
THEN
741 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
745 itrimat = ifunc - 11918 + 1
748 VALUE = mbuf%VAR(k + i)
755 ialel = iparg(7,ng)+iparg(11,ng)
756 IF(ialel /= 0 .AND. mlw == 20)
THEN
757 lbuf1 => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
758 lbuf2 => elbuf_tab(ng)%BUFLY(2)%LBUF(1,1,1)
759 value1 = lbuf1%VOL(i) * lbuf1%RHO(i)
760 value2 = lbuf2%VOL(i) * lbuf2%RHO(i)
762 IF(ifunc == 11918)
VALUE=value1
763 IF(ifunc == 11919)
VALUE=value2
765 func(el2fa(nn3+n)) =
VALUE
769 ELSEIF(ifunc>=11922 .AND. ifunc<=11925)
THEN
773 ialel = iparg(7,ng)+iparg(11,ng)
774 IF(ialel /= 0 .AND. mlw == 20)
THEN
775 lbuf1 => elbuf_tab(ng)%BUFLY(
777 value1 = lbuf1%QVIS(i)
778 value2 = lbuf2%QVIS(i)
780 IF(ifunc == 11922)
VALUE=value1
781 IF(ifunc == 11923)
VALUE=value2
783 func(el2fa(nn3+n)) =
VALUE
785 ELSEIF(ifunc == 13242 + 4*mx_ply_anim )
THEN
788 func(el2fa(nn3+nft+i)) = gbuf%DT(i)
792 ELSEIF(ifunc == 13547 + 4*mx_ply_anim + 1000 + 2)
THEN
795 vel(1) = multi_fvm%VEL(1, i + nft)
796 vel(2) = multi_fvm%VEL(2, i + nft)
797 vel(3) = multi_fvm%VEL(3, i + nft)
798 vel(0) = sqrt(vel(1)*vel(1)+vel(2)*vel(2)+vel(3)*vel(3))
799 func(el2fa(nn3+nft+i)) = vel(0)/multi_fvm%SOUND_SPEED(i + nft)
802 l = elbuf_tab(ng)%BUFLY(1)%L_SSP
803 IF(elbuf_tab(ng)%BUFLY(1)%L_SSP /= 0)
THEN
804 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
806 vel(1) = gbuf%MOM(jj(1) + i) / gbuf%RHO(i)
807 vel(2) = gbuf%MOM(jj(2) + i) / gbuf%RHO(i)
808 vel(3) = gbuf%MOM(jj(3) + i) / gbuf%RHO(i)
809 vel(0) = sqrt(vel(1)*vel(1)+vel(2)*vel(2)+vel(3)*vel(3))
814 l = elbuf_tab(ng)%BUFLY(1)%L_SSP
815 IF(elbuf_tab(ng)%BUFLY(1)%L_SSP /= 0)
THEN
816 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
820 tmp(1,1:4)=v(1,ixq(2:5,i+nft))-w(1,ixq(2:5,i+nft))
821 tmp(2,1:4)=v(2,ixq(2:5,i+nft))-w(2,ixq(2:5,i+nft))
822 tmp(3,1:4)=v(3,ixq(2:5,i+nft))-w(3,ixq(2:5,i+nft))
823 vel(1) = sum(tmp(1,1:4))*fourth
824 vel(2) = sum(tmp(2,1:4))*fourth
825 vel(3) = sum(tmp(3,1:4))*fourth
826 func(el2fa(nn3+nft+i)) = sqrt(vel(1)*vel(1)+vel(2)*vel(2)+vel(3)*vel(3))/lbuf%SSP(i)
831 tmp(1,1:4)=v(1,ixq(2:5,i+nft))
832 tmp(2,1:4)=v(2,ixq(2:5,i+nft))
833 tmp(3,1:4)=v(3,ixq(2:5,i+nft))
834 vel(1) = sum(tmp(1,1:4))*fourth
835 vel(2) = sum(tmp(2,1:4))*fourth
836 vel(3) = sum(tmp(3,1:4))*fourth
837 func(el2fa(nn3+nft+i)) = sqrt(vel(1)*vel(1)+vel(2)*vel(2)+vel(3)*vel(3))/lbuf%SSP(i)
843 ELSEIF(ifunc == 13547 + 4*mx_ply_anim + 1000 + 3)
THEN
844 gbuf => elbuf_tab(ng)%GBUF
848 lbuf => elbuf_tab(ng)%BUFLY(imat)%LBUF(1,1,1)
850 vfrac(i,imat) = lbuf%VOL(i) / gbuf%VOL(i
853 ELSEIF(mlw == 20)
THEN
856 vfrac(i,1) = elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)%VOL(i) / gbuf%VOL(i)
857 vfrac(i,2) = elbuf_tab(ng)%BUFLY(2)%LBUF(1,1,1)%VOL(i) / gbuf%VOL(i)
859 ELSEIF(mlw == 37)
THEN
860 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
863 vfrac(i,1) = mbuf%VAR(i+3*nel)
864 vfrac(i,2) = mbuf%VAR(i+4*nel)
866 ELSEIF(mlw == 51)
THEN
871 uparam => bufmat(iadbuf:iadbuf+nuparam)
873 isubmat = uparam(276+1); iu(1)=m51_n0phas+(isubmat-1)*m51_nvphas
874 isubmat = uparam(276+2); iu(2)=m51_n0phas+(isubmat-1)*m51_nvphas
875 isubmat = uparam(276+3); iu(3)=m51_n0phas+(isubmat-1)*m51_nvphas
876 isubmat = uparam(276+4); iu(4)=m51_n0phas+(isubmat-1)*m51_nvphas
877 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
880 vfrac(i,1) = mbuf%VAR(i+iu(1)*nel)
881 vfrac(i,2) = mbuf%VAR(i+iu(2)*nel)
882 vfrac(i,3) = mbuf%VAR(i+iu(3)*nel)
883 vfrac(i,4) = mbuf%VAR(i+iu(4)*nel)
887 vfrac(1:nel,1:21)=zero
893 values(i) = values(i) + vfrac(i,imat)*imat
895 func(el2fa(nn3+nft+i))=values(i)
899 func(el2fa(nn3+nft+i))=zero
902 ELSEIF(ifunc == 4*mx_ply_anim + 14566)
THEN
904 fac = two*3.141592653589793238
910 func(el2fa(nn3+n)) = fac*gbuf%VOL(i)
917 ELSE IF (ifunc == 10676)
THEN
921 func(el2fa(nn3+nft+i)) = ispmd
924 ELSEIF (ifunc == 14595 + 4*mx_ply_anim .AND. (gbuf%G_TSAIWU > 0))
THEN
927 bufly => elbuf_tab(ng)%BUFLY(1)
932 func(el2fa(nn3+nft+i)) =
933 . func(el2fa(nn3+nft+i))
934 . + bufly%LBUF(ir,is,it)%TSAIWU(i)/(nptt*nptr*npts)
941 ELSEIF( ifunc == 15898 + 4*mx_ply_anim )
THEN
943 func(el2fa(nn3+nft+i)) = zero
947 nlay = elbuf_tab(ng)%NLAY
951 ieos = ipm(4, mat_param(mt)%MULTIMAT%MID(imat) )
953 ntillotson = ntillotson + 1
954 imat_tillotson = imat
958 IF(ntillotson > 1)
THEN
961 ieos = ipm(4, mat_param(mt)%MULTIMAT%MID(imat) )
963 ebuf => elbuf_tab(ng)%BUFLY(imat)%EOS(1,1,1)
964 nvareos = elbuf_tab(ng)%BUFLY(imat)%NVAR_EOS
966 func(el2fa(nn3+nft+i)) = func(el2fa(nn3+nft+i)) + ebuf%VAR(i) * fac
972 ELSEIF(ntillotson == 1)
THEN
973 ebuf => elbuf_tab(ng)%BUFLY(imat_tillotson)%EOS(1,1,1)
974 nvareos = elbuf_tab(ng)%BUFLY(imat_tillotson)%NVAR_EOS
976 func(el2fa(nn3+nft+i)) = ebuf%VAR(i)
983 ebuf => elbuf_tab(ng)%BUFLY(1)%EOS(1,1,1)
984 nvareos = elbuf_tab(ng)%BUFLY(1)%NVAR_EOS
986 func(el2fa(nn3+nft+i)) = ebuf%VAR(i)
992 elseif(ifunc == 15899 + 4*mx_ply_anim .and. n2d > 0)
then
993!--------------------------------------------------
995 func(el2fa(nn3+nft+i)) = zero
1000 elseif(ity == 7 .and. n2d > 0)
then
1009 do ilay=1,multi_fvm%nbmat
1010 mid = mat_param(mt)%multimat%mid(ilay)
1011 rho0i(ilay) = pm(89,mid)
1012 vi (ilay) = multi_fvm%phase_alpha(ilay,i+nft) * gbuf%vol(i)
1013 v0i(ilay) = multi_fvm%phase_rho(ilay,i+nft) * vi(ilay) / rho0i(ilay)
1017 do ilay=1,multi_fvm%nbmat
1021 func(el2fa(nn3+nft+i)) = multi_fvm%rho(i+nft) / rho0g - one
1023 elseif(mlw == 51)
then
1025 iadbuf = ipm(7,imat)
1026 nuparam= ipm(9,imat)
1027 uparam => bufmat(iadbuf:iadbuf+nuparam)
1028 mbuf => elbuf_tab(ng)%bufly(1)%mat(1,1,1)
1031 isubmat = nint(uparam(276+1)); iu(1)=m51_n0phas+(isubmat-1)*m51_nvphas + ipos-1
1032 isubmat = nint(uparam(276+2)); iu(2)=m51_n0phas+(isubmat-1)*m51_nvphas + ipos-1
1033 isubmat = nint(uparam(276+3)); iu(3)=m51_n0phas+(isubmat-1)*m51_nvphas + ipos-1
1034 isubmat = nint(uparam(276
1035 vfrac(i,1) = mbuf%var(i+iu(1)*nel)
1036 vfrac(i,2) = mbuf%var(i+iu(2)*nel)
1037 vfrac(i,3) = mbuf%var(i+iu(3)*nel)
1038 vfrac(i,4) = mbuf%var(i+iu(4)*nel)
1041 isubmat = nint(uparam(276+1)); iu(1)=m51_n0phas+(isubmat-1)*m51_nvphas + ipos-1
1042 isubmat = nint(uparam(276+2)); iu(2)=m51_n0phas+(isubmat-1)*m51_nvphas + ipos-1
1043 isubmat = nint(uparam(276+3)); iu(3)=m51_n0phas+(isubmat-1)*m51_nvphas + ipos-1
1044 isubmat = nint(uparam(276+4)); iu(4)=m51_n0phas+(isubmat-1)*m51_nvphas + ipos-1
1045 rhoi(1) = mbuf%var(i+iu(1)*nel)
1046 rhoi(2) = mbuf%var(i+iu(2)*nel)
1047 rhoi(3) = mbuf%var(i+iu(3)*nel)
1048 rhoi(4) = mbuf%var(i+iu(4)*nel)
1050 mid = mat_param(mt)%multimat%mid(ilay)
1051 rho0i(ilay) = pm(89,mid)
1052 vi(ilay) = vfrac(i,ilay) * gbuf%vol(i)
1054 v0i(ilay) = rhoi(ilay) * vi(ilay) / rho0i(ilay)
1059 rho0g = rho0g + rho0i(ilay)*v0i(ilay)
1062 func(el2fa(nn3+nft+i))= gbuf%rho(i) / rho0g - one
1064 elseif(mlw == 37)
then
1066 iadbuf = ipm(7,imat)
1067 nuparam= ipm(9,imat)
1068 uparam => bufmat(iadbuf:iadbuf+nuparam)
1069 mbuf => elbuf_tab(ng)%bufly(1)%mat(1,1,1)
1070 rho0i(1) = uparam(11)
1071 rho0i(2) = uparam(12)
1072 vi(1) = mbuf%var(i+3*nel) * gbuf%vol(i)
1073 vi(2) = mbuf%var(i+4*nel) * gbuf%vol(i)
1074 rhoi(1) = mbuf%var(i+2*nel)
1075 rhoi(2) = mbuf%var(i+1*nel)
1076 v0i(1) = rhoi(1) * vi(1) / rho0i(1)
1077 v0i(2) = rhoi(2) * vi(2) / rho0i(2)
1081 rho0g = rho0g + rho0i(ilay)*v0i(ilay)
1084 func(el2fa(nn3+nft+i)) = gbuf%rho(i) / rho0g - one
1086 elseif(mlw == 20)
then
1088 lbuf1 => elbuf_tab(ng)%bufly(1)%lbuf(1,1,1)
1089 lbuf2 => elbuf_tab(ng)%bufly(2)%lbuf(1,1,1)
1090 mid = mat_param(mt)%multimat%mid(1)
1091 rho0i(1) = pm(89,mid)
1092 mid = mat_param(mt)%multimat%mid(2)
1093 rho0i(2) = pm(89,mid)
1094 vi(1) = lbuf1%vol(i)
1095 vi(2) = lbuf2%vol(i)
1096 rhoi(1) = lbuf1%rho(i)
1097 rhoi(2) = lbuf2%rho(i)
1098 v0i(1) = rhoi(1) * vi(1) / rho0i(1)
1099 v0i(2) = rhoi(2) * vi(2) / rho0i(2)
1103 rho0g = rho0g + rho0i(ilay)*v0i(ilay)
1106 func(el2fa(nn3+nft+i)) = gbuf%rho(i) / rho0g - one
1110 if(pm(89,mt) > zero)
then
1111 func(el2fa(nn3+nft+i))= gbuf%rho(i) / pm(89,mt) - one
1117 elseif( ifunc >= 15899 + 4*mx_ply_anim +1
1118 . .and. ifunc <= 15899 + 4*mx_ply_anim +10
1119 . .and. n2d > 0)
then
1122 ilay = ifunc - (15899 + 4*mx_ply_anim)
1123 if(mlw == 151 .and. ilay <=
min(10,multi_fvm%nbmat))detected = .true.
1124 if(mlw == 51 .and. ilay <= 4 )detected = .true.
1125 if(mlw == 37 .and. ilay <= 2 )detected = .true.
1126 if(mlw == 20 .and. ilay <= 2 )detected = .true.
1132 elseif(ity == 7 .and. n2d > 0)
then
1141 mid = mat_param(mt)%multimat%mid(ilay)
1142 rho0i(ilay) = pm(89,mid)
1143 vi(ilay) = multi_fvm%phase_alpha(ilay,i+nft) * gbuf%vol(i)
1144 v0i(ilay) = multi_fvm%phase_rho(ilay,i+nft) * vi(ilay) / rho0i(ilay)
1145 func(el2fa(nn3+nft+i)) = multi_fvm%phase_rho(ilay,i+nft) / rho0i(ilay) - one
1147 elseif(mlw == 51)
then
1149 iadbuf = ipm(7,imat)
1150 nuparam= ipm(9,imat)
1151 uparam => bufmat(iadbuf:iadbuf+nuparam)
1152 mbuf => elbuf_tab(ng)%bufly(1)%mat(1,1,1)
1153 mid = mat_param(mt)%multimat%mid(ilay)
1154 rho0i(ilay) = pm(89,mid)
1157 isubmat = nint(uparam(276+ilay)); iu(1)=m51_n0phas+(isubmat-1)*m51_nvphas + ipos-1
1158 vfrac(i,ilay) = mbuf%var(i+iu(ilay)*nel)
1159 vi(ilay) = vfrac(i,ilay) * gbuf%vol(i)
1162 isubmat = nint(uparam
1163 rhoi(ilay) = mbuf%var(i+iu(ilay)*nel)
1164 v0i(ilay) = rhoi(ilay) * vi(ilay) / rho0i(ilay)
1165 func(el2fa(nn3+nft+i)) = rhoi(ilay) / rho0i(ilay) - one
1167 elseif(mlw == 37)
then
1169 iadbuf = ipm(7,imat)
1170 nuparam= ipm(9,imat)
1171 uparam => bufmat(iadbuf:iadbuf+nuparam)
1172 mbuf => elbuf_tab(ng)%bufly(1)%mat(1,1,1)
1173 rho0i(ilay) = uparam(10+ilay)
1174 vi(ilay) = mbuf%var(i+(ilay+2)*nel) * gbuf%vol(i)
1175 rhoi(ilay) = mbuf%var(i+(3-ilay)*nel)
1176 v0i(ilay) = rhoi(ilay) * vi(ilay) / rho0i(ilay)
1177 func(el2fa(nn3+nft+i)) = rhoi(ilay) / rho0i(ilay) - one
1179 elseif(mlw == 20)
then
1181 lbuf => elbuf_tab(ng)%bufly(ilay)%lbuf(1,1,1)
1182 mid = mat_param(mt)%multimat%mid(ilay)
1183 rho0i(ilay) = pm(89,mid)
1184 vi(ilay) = lbuf%vol(i)
1185 rhoi(ilay) = lbuf%rho(i)
1186 v0i(ilay) = rhoi(ilay) * vi(ilay) / rho0i(ilay)
1187 func(el2fa(nn3+nft+i)) = rhoi(ilay) / rho0i(ilay) - one
1191 func(el2fa(nn3+nft+i)) = zero
1202 func(el2fa(nn3+nft+i)) = zero
1208 ELSEIF (ity == 3.OR.(ity == 7.AND.n2d==0))
THEN
1214 gbuf => elbuf_tab(ng)%GBUF
1218 igtyp = iparg(38,ng)
1221 nptr = elbuf_tab(ng)%NPTR
1222 npts = elbuf_tab(ng)%NPTS
1223 nptt = elbuf_tab(ng)%NPTT
1224 nlay = elbuf_tab(ng)%NLAY
1227 ipinch= iparg(90,ng)
1228 IF (ihbe==3.AND.ish3nfram==0)
THEN
1234 IF (igtyp == 51 .OR. igtyp == 52)
THEN
1237 npt_all = npt_all + elbuf_tab(ng)%BUFLY(ipt)%NPTT
1239 IF (nlay == 1) mpt =
max(1,npt_all)
1247 IF (mlw == 0 .OR. mlw == 13)
THEN
1249 ELSEIF (ifunc == 1 .AND. (mlw /= 15 .AND. mlw /= 25))
THEN
1251 IF (gbuf%G_PLA > 0)
THEN
1253 IF (nlay > 1) ilay = iabs(nlay)/2 + 1
1254 bufly => elbuf_tab(ng)%BUFLY(ilay)
1255 IF (bufly%L_PLA > 0)
THEN
1258 IF(igtyp == 51 .OR. igtyp == 52)
THEN
1271 evar(i) = fourth*(bufly%LBUF(1,1,1)%PLA(i) + bufly%LBUF(2,1,1)%PLA(i) +
1272 . bufly%LBUF(1,2,1)%PLA(i) + bufly%LBUF(2,2,1)%PLA(i))
1276 IF(igtyp == 51 .OR. igtyp == 52)
THEN
1281 evar(i) = evar(i) + third*bufly%LBUF(ir,1,it)%PLA(i)/nptt
1287 evar(i) = third*(bufly%LBUF(1,1,1)%PLA(i) + bufly%LBUF(1,1,1)%PLA(i) +
1288 . bufly%LBUF(1,1,1)%PLA(i))
1293 IF(igtyp == 51 .OR. igtyp == 52)
THEN
1297 evar(i) = evar(i) + abs(bufly%LBUF(1,1,it)%PLA(i))/nptt
1302 ipt = iabs(nptt)/2 + 1
1304 evar(i) = abs(bufly%LBUF(1,1,ipt)%PLA(i))
1312 ELSEIF (ifunc == 2)
THEN
1313 IF (mlw == 151)
THEN
1315 evar(i) = gbuf%RHO(i)
1320 evar(i) = pm(1,ixc(1,nft+i))
1322 ELSEIF (ity == 7)
THEN
1324 evar(i) = pm(1,ixtg(1,nft+i))
1329 ELSEIF (ifunc == 3 .AND. mlw == 151)
THEN
1331 evar(i) = gbuf%EINT(i) / gbuf%RHO(i)
1334 ELSEIF (ifunc == 3 .OR. ifunc == ish_eint)
THEN
1340 evar(i) = gbuf%EINT(i) + gbuf%EINT(i+llt)
1343 ELSEIF (ifunc == 4)
THEN
1345 evar(1:nel) = gbuf%TEMP(1:nel)
1350 IF (elbuf_tab(ng)%BUFLY(il)%L_TEMP > 0)
THEN
1351 nptt = nptt + elbuf_tab(ng)%BUFLY(il)%NPTT
1354 npg = nptr*npts*nptt
1356 IF (elbuf_tab(ng)%BUFLY(il)%L_TEMP > 0)
THEN
1357 DO it=1,elbuf_tab(ng)%BUFLY(il)%NPTT
1360 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
1361 evar(1:nel) = evar(1:nel) + lbuf%TEMP(1:nel)/npg
1369 ELSEIF (ifunc == 5)
THEN
1372 evar(i) = gbuf%THK(i)
1377 evar(i) = thke(nft+i)
1379 ELSEIF (ity == 7)
THEN
1381 evar(i) = thke(nft+i+numelc)
1386 ELSEIF (ifunc == 6 .AND. mlw == 151)
THEN
1388 evar(i) = - third * (gbuf%SIG(i) + gbuf%SIG(i + nel) + gbuf%SIG(i + 2 * nel))
1391 ELSEIF (ifunc == 7)
THEN
1393 s1 = gbuf%FOR(jj(1)+i)
1394 s2 = gbuf%FOR(jj(2)+i)
1395 s12= gbuf%FOR(jj(3)+i)
1396 vonm2= s1*s1 + s2*s2 - s1*s2 + three*s12*s12
1397 evar(i) = sqrt(vonm2)
1400 ELSEIF (ifunc == 11)
THEN
1416 ELSEIF(ifunc == 12)
THEN
1432 ELSEIF(ifunc == 13)
THEN
1441 ELSEIF (ifunc >= 14 .AND. ifunc <= 15)
THEN
1444 evar(i) = gbuf%FOR(jj(ius)+i)
1447 ELSEIF (ifunc == 16 .AND. ihbe == 11 .AND. ipinch == 1)
THEN
1451 evar(i) = evar(i) + fourth*gbuf%FORPGPINCH(nel*(ipg-1)+i)
1455 ELSEIF (ifunc >= 17 .AND. ifunc <= 19)
THEN
1458 evar(i) = gbuf%FOR(jj(ius)+i)
1461 ELSEIF (ifunc == 26)
THEN
1462 evar(lft:llt) = gbuf%EPSD(lft:llt)
1464 ELSEIF(ifunc == 2155)
THEN
1466 evar(i) = hundred *(gbuf%THK_I(i)-gbuf%THK(i))/gbuf%THK_I(i)
1469 ELSEIF (ifunc>=20 .AND. ifunc<=24)
THEN
1472 IF (mlw==29 .OR. mlw==30 .OR. mlw==31 .OR. mlw>=33)
THEN
1477 il = iabs(nlay)/2 + 1
1481 ipt = iabs(npt)/2 + 1
1483 nuvar = elbuf_tab(ng)%BUFLY(il)%NVAR_MAT
1485 IF (mlw == 58 .or. mlw == 158)
THEN
1489 uvar=>elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,ipt)%VAR
1490 IF (ius==4 .OR. ius==5)
THEN
1491 evar(i) = evar(i) + exp(uvar(i1+i) - one) / npg
1493 evar(i) = evar(i) + uvar(i1 + i) / npg
1500 IF (nuvar > ius)
THEN
1503 uvar=>elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,ipt)%VAR
1504 evar(i) = evar(i) + uvar(i1 + i)/npg
1512 ELSEIF(ifunc >= 27 .AND. ifunc < 40)
THEN
1515 IF (mlw == 29.OR.mlw == 30.OR.mlw == 31.OR.mlw>=33)
THEN
1518 il = iabs(nlay)/2 + 1
1522 ipt = iabs(npt)/2 + 1
1524 nuvar = elbuf_tab(ng)%BUFLY(il)%NVAR_MAT
1525 IF (nuvar > ius .and. npt >= ipt*il)
THEN
1530 uvar=>elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,ipt)%VAR
1531 evar(i) = evar(i) + uvar(i1 + i)/npg
1538 ELSEIF((ifunc > 39 .AND. ifunc < 2040) .OR.
1539 . (ifunc > 2239 .AND. ifunc < 10140))
THEN
1541 IF (ifunc > 39 .and. ifunc < 2040)
THEN
1542 ius = (ifunc - 39)/100
1543 ipt = mod((ifunc - 39), 100)
1545 ius = ((ifunc - 2239)/100) + 20
1546 ipt = mod((ifunc - 2239), 100)
1558 nuvar = elbuf_tab(ng)%BUFLY(il)%NVAR_MAT
1559 IF (nuvar > ius .and. (npt >= ipt*il))
THEN
1564 uvar=>elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,ipt)%VAR
1565 evar(i) = evar(i) + uvar(i1 + i)/npg
1571 ELSEIF( (ifunc>=10140.AND.ifunc<=10239)
1572 . .OR. ifunc == 10673.OR. ifunc == 10674
1573 . .OR. ifunc == 10675 )
THEN
1574 IF (ifunc == 10673)
THEN
1575 il = iabs(nlay)/2 + 1
1576 ELSEIF (ifunc == 10674)
THEN
1578 ELSEIF (ifunc == 10675)
THEN
1585 IF (il <= nlay)
THEN
1586 bufly => elbuf_tab(ng)%BUFLY(il)
1588 IF (igtyp == 9 .OR. igtyp == 10 .OR.igtyp == 11 .OR.
1589 . igtyp == 16 .OR. igtyp == 17 .OR. igtyp == 51 .OR.
1590 . igtyp == 52 )
THEN
1591 IF (mlw /= 0 .AND. mlw /= 13)
THEN
1593 IF(idrape > 0 .AND. (igtyp == 51 .OR. igtyp == 52))
THEN
1594 lbuf_dir => elbuf_tab(ng)%BUFLY(il)%LBUF_DIR(1)
1597 x21 = x(1,ixc(3,n))-x(1,ixc(2,n))
1598 x32 = x(1,ixc(4,n))-x(1,ixc(3,n))
1599 x34 = x(1,ixc(4,n))-x(1,ixc(5,n))
1600 x41 = x(1,ixc(5,n))-x(1,ixc(2,n))
1602 y21 = x(2,ixc(3,n))-x(2,ixc(2,n))
1603 y32 = x(2,ixc(4,n))-x(2,ixc(3,n))
1604 y34 = x(2,ixc(4,n))-x(2,ixc(5,n))
1605 y41 = x(2,ixc(5,n))-x(2,ixc(2,n))
1607 z21 = x(3,ixc(3,n))-x(3,ixc(2,n))
1608 z32 = x(3,ixc(4,n))-x(3,ixc(3,n))
1609 z34 = x(3,ixc(4,n))-x(3,ixc(5,n))
1610 z41 = x(3,ixc(5,n))-x(3,ixc(2,n))
1620 e3x = e1y*e2z-e1z*e2y
1621 e3y = e1z*e2x-e1x*e2z
1622 e3z = e1x*e2y-e1y*e2x
1631 IF (ishfram == 0 )
THEN
1633 suma = e3x*e3x+e3y*e3y+e3z*e3z
1634 suma = one /
max(sqrt(suma),em20)
1639 s1 = e1x*e1x+e1y*e1y+e1z*e1z
1640 s2 = e2x*e2x+e2y*e2y+e2z*e2z
1642 e1x = e1x + (e2y*e3z-e2z*e3y)*suma
1643 e1y = e1y + (e2z*e3x-e2x*e3z)*suma
1644 e1z = e1z + (e2x*e3y-e2y*e3x)*suma
1646 suma = e1x*e1x+e1y*e1y+e1z*e1z
1647 suma = one /
max(sqrt(suma),em20)
1652 e2x = e3y * e1z - e3z * e1y
1653 e2y = e3z * e1x - e3x * e1z
1654 e2z = e3x * e1y - e3y * e1x
1655 ELSEIF (ishfram == 2)
THEN
1657 suma = e2x*e2x+e2y*e2y+e2z*e2z
1658 e1x = e1x*suma + e2y*e3z-e2z*e3y
1659 e1y = e1y*suma + e2z*e3x-e2x*e3z
1660 e1z = e1z*suma + e2x*e3y-e2y*e3x
1661 suma = e1x*e1x+e1y*e1y+e1z*e1z
1662 suma = one/
max(sqrt(suma),em20)
1667 suma = e3x*e3x+e3y*e3y
1668 suma = one /
max(sqrt(suma
1673 e2x = e3y*e1z-e3z*e1y
1674 e2y = e3z*e1x-e3x*e1z
1675 e2z = e3x*e1y-e3y*e1x
1676 suma = e2x*e2x+e2y*e2y+e2z*e2z
1677 suma = one/
max(sqrt(suma),em20)
1683 aa = lbuf_dir%DIRA(i)
1684 bb = lbuf_dir%DIRA(i+nel)
1690 suma=sqrt(vr*vr + vs*vs)
1694 dir1_1 = lbuf_dir%DIRA(i)
1695 dir1_2 = lbuf_dir%DIRA(i+nel)
1698 phi =(hundred80/pi)*atan2(dir1_2,dir1_1)
1699 err = (abs(phi) - ninty)/ninty
1701 IF(abs(err) < em02) evar(i) = sign(ninty,phi)
1702 IF(abs(evar(i)) < one) evar(i) = zero
1708 x21 = x(1,ixc(3,n))-x(1,ixc(2,n))
1709 x32 = x(1,ixc(4,n))-x(1,ixc(3,n))
1710 x34 = x(1,ixc(4,n))-x(1,ixc(5,n))
1711 x41 = x(1,ixc(5,n))-x(1,ixc(2,n))
1713 y21 = x(2,ixc(3,n))-x(2,ixc(2,n))
1714 y32 = x(2,ixc(4,n))-x(2,ixc(3,n))
1715 y34 = x(2,ixc(4,n))-x(2,ixc(5,n))
1716 y41 = x(2,ixc(5,n))-x(2,ixc(2,n))
1718 z21 = x(3,ixc(3,n))-x(3,ixc(2,n))
1719 z32 = x(3,ixc(4,n))-x(3,ixc(3,n))
1720 z34 = x(3,ixc(4,n))-x(3,ixc(5,n))
1721 z41 = x(3,ixc(5,n))-x(3,ixc(2,n))
1731 e3x = e1y*e2z-e1z*e2y
1732 e3y = e1z*e2x-e1x*e2z
1733 e3z = e1x*e2y-e1y*e2x
1742 IF (ishfram == 0 .OR. igtyp == 16 )
THEN
1744 suma = e3x*e3x+e3y*e3y+e3z*e3z
1745 suma = one /
max(sqrt(suma),em20)
1750 s1 = e1x*e1x+e1y*e1y+e1z*e1z
1751 s2 = e2x*e2x+e2y*e2y+e2z*e2z
1753 e1x = e1x + (e2y*e3z-e2z*e3y)*suma
1754 e1y = e1y + (e2z*e3x-e2x
1755 e1z = e1z + (e2x*e3y-e2y*e3x
1757 suma = e1x*e1x+e1y*e1y+e1z*e1z
1758 suma = one /
max(sqrt(suma),em20)
1763 e2x = e3y * e1z - e3z * e1y
1764 e2y = e3z * e1x - e3x * e1z
1765 e2z = e3x * e1y - e3y * e1x
1766 ELSEIF (ishfram == 2)
THEN
1768 suma = e2x*e2x+e2y*e2y+e2z*e2z
1769 e1x = e1x*suma + e2y*e3z-e2z*e3y
1770 e1y = e1y*suma + e2z*e3x-e2x*e3z
1771 e1z = e1z*suma + e2x*e3y-e2y*e3x
1772 suma = e1x*e1x+e1y*e1y+e1z*e1z
1773 suma = one/
max(sqrt(suma),em20)
1778 suma = e3x*e3x+e3y*e3y+e3z*e3z
1779 suma = one /
max(sqrt(suma),em20)
1784 e2x = e3y*e1z-e3z*e1y
1785 e2y = e3z*e1x-e3x*e1z
1786 e2z = e3x*e1y-e3y*e1x
1787 suma = e2x*e2x+e2y*e2y+e2z*e2z
1788 suma = one/
max(sqrt(suma),em20)
1795 bb = bufly%DIRA(i+nel)
1799 vr = v1*e1x+ v2*e1y + v3*e1z
1800 vs = v1*e2x+ v2*e2y + v3*e2z
1801 suma=sqrt(vr*vr + vs*vs)
1805 dir1_1 = bufly%DIRA(i)
1806 dir1_2 = bufly%DIRA(i+nel)
1809 phi =(hundred80/pi)*atan2(dir1_2,dir1_1)
1810 err = (abs(phi) - ninty)/ninty
1812 IF(abs(err) < em02) evar(i
1813 IF(abs(evar(i)) < one) evar(i) = zero
1820 ELSEIF (ity == 7)
THEN
1822 IF (igtyp == 9 .OR. igtyp == 10 .OR. igtyp == 11 .OR.
1823 . igtyp == 16 .OR. igtyp == 17 .OR. igtyp == 51 .OR.
1824 . igtyp == 52 )
THEN
1825 IF (mlw /= 0 .AND. mlw /= 13)
THEN
1826 IF(idrape > 0 .AND. (igtyp == 51 .OR. igtyp == 52))
THEN
1827 lbuf_dir => elbuf_tab(ng)%BUFLY(il)%LBUF_DIR(1)
1830 x21 = x(1,ixtg(3,n))-x(1,ixtg(2,n))
1831 x31 = x(1,ixtg(4,n))-x(1,ixtg(2,n))
1832 x32 = x(1,ixtg(4,n))-x(1,ixtg(3,n))
1834 y21 = x(2,ixtg(3,n))-x(2,ixtg(2,n))
1835 y31 = x(2,ixtg(4,n))-x(2,ixtg(2,n))
1836 y32 = x(2,ixtg(4,n))-x(2,ixtg(3,n))
1838 z21 = x(3,ixtg(3,n))-x(3,ixtg(2,n))
1839 z31 = x(3,ixtg(4,n))-x(3,ixtg(2,n))
1840 z32 = x(3,ixtg(4,n))-x(3,ixtg(3,n))
1849 IF(ifram_old ==0 )
THEN
1850 CALL clsconv3(x21,y21,z21,x31,y31,z31,
1851 + e1x,e1y,e1z,e2x,e2y,e2z,e3x,e3y,e3z)
1856 x2l = sqrt(e1x*e1x+e1y*e1y+e1z*e1z)
1864 sum_ = sqrt(e3x*e3x+e3y*e3y+e3z*e3z)
1872 sum_ = sqrt(e2x*e2x+e2y*e2y+e2z*e2z)
1878 aa = lbuf_dir%DIRA(i)
1879 bb = lbuf_dir%DIRA(i+nel)
1880 v1 = aa*e11 + bb*e21
1881 v2 = aa*e12 + bb*e22
1882 v3 = aa*e13 + bb*e23
1883 vr = v1*e1x + v2*e1y + v3*e1z
1884 vs = v1*e2x + v2*e2y + v3*e2z
1885 suma=sqrt(vr*vr + vs*vs)
1889 dir1_1 = lbuf_dir%DIRA(i)
1890 dir1_2 = lbuf_dir%DIRA(i+nel)
1892 phi =(hundred80/pi)*atan2(dir1_2,dir1_1)
1893 err = (abs(phi) - ninty)/ninty
1895 IF(abs(err) < em02) evar(i) = sign(ninty,phi)
1896 IF(abs(evar(i)) < one) evar(i) = zero
1901 x21 = x(1,ixtg(3,n))-x(1,ixtg(2,n))
1902 x31 = x(1,ixtg(4,n))-x(1,ixtg(2,n))
1903 x32 = x(1,ixtg(4,n))-x(1,ixtg(3,n))
1905 y21 = x(2,ixtg(3,n))-x(2,ixtg(2,n))
1906 y31 = x(2,ixtg(4,n))-x(2,ixtg(2,n))
1907 y32 = x(2,ixtg(4,n))-x(2,ixtg(3,n))
1909 z21 = x(3,ixtg(3,n))-x(3,ixtg(2,n))
1910 z31 = x(3,ixtg(4,n))-x(3,ixtg(2,n))
1911 z32 = x(3,ixtg(4,n))-x(3,ixtg(3,n))
1920 IF(ifram_old ==0 )
THEN
1921 CALL clsconv3(x21,y21,z21,x31,y31,z31,
1927 x2l = sqrt(e1x*e1x+e1y*e1y+e1z*e1z)
1935 sum_ = sqrt(e3x*e3x+e3y*e3y+e3z*e3z)
1943 sum_ = sqrt(e2x*e2x+e2y*e2y+e2z*e2z)
1950 bb = bufly%DIRA(i+nel)
1951 v1 = aa*e11 + bb*e21
1952 v2 = aa*e12 + bb*e22
1953 v3 = aa*e13 + bb*e23
1954 vr = v1*e1x + v2*e1y + v3*e1z
1955 vs = v1*e2x + v2*e2y + v3*e2z
1956 suma=sqrt(vr*vr + vs*vs)
1960 dir1_1 = bufly%DIRA(i)
1961 dir1_2 = bufly%DIRA(i+nel)
1963 phi =(hundred80/pi)*atan2(dir1_2,dir1_1)
1964 err = (abs(phi) - ninty)/ninty
1966 IF(abs(err) < em02) evar(i) = sign(ninty,phi)
1967 IF(abs(evar(i)) < one) evar(i) = zero
1979 ELSEIF (ifunc == 2040 .AND. mlw /= 15 .AND. mlw /= 25)
THEN
1988 bufly => elbuf_tab(ng)%BUFLY(il)
1989 IF (bufly%L_PLA > 0)
THEN
1991 IF (igtyp == 51 .OR. igtyp == 52) ipt = bufly%NPTT
1995 lbuf => bufly%LBUF(ir,is,ipt)
1996 evar(i) = evar(i) + abs(lbuf%PLA(i))/npg
2001 IF (igtyp == 51 .OR. igtyp == 52) ipt = bufly%NPTT
2003 evar(i) = abs(bufly%LBUF(1,1,ipt)%PLA(i))
2008 ELSEIF (ifunc == 2041 .AND. mlw /= 15 .AND. mlw /= 25)
THEN
2010 bufly => elbuf_tab(ng)%BUFLY(1)
2011 IF (bufly%L_PLA > 0)
THEN
2016 lbuf => bufly%LBUF(ir,is,1)
2017 evar(i) = evar(i) + abs
2023 evar(i) = abs(bufly%LBUF(1,1,1)%PLA(i))
2028 ELSEIF (ifunc > 2041 .AND. ifunc < 2142 .AND. mlw /= 15 .AND. mlw /= 25)
THEN
2030 ilay = mod((ifunc - 2041), 100)
2031 IF (ilay == 0) ilay = 100
2032 IF ((ilay <= nlay .or. ilay <= mpt) .and. gbuf%G_PLA > 0)
THEN
2036 ELSEIF (nlay > 1)
THEN
2043 bufly => elbuf_tab(ng)%BUFLY(il)
2044 IF (bufly%L_PLA > 0)
THEN
2046 IF (igtyp == 51 .OR. igtyp == 52)
THEN
2054 lbuf => bufly%LBUF(ir,is,it)
2055 evar(i) = evar(i) + abs(lbuf%PLA(i))/npgt
2064 lbuf => bufly%LBUF(ir,is,ipt)
2071 IF (igtyp == 51 .OR. igtyp == 52)
THEN
2075 evar(i) = evar(i) + abs(bufly%LBUF(1,1,it)%PLA(i))/nptt
2080 evar(i) = abs(bufly%LBUF(1,1,ipt)%PLA(i))
2087 ELSEIF (ifunc == 10253.OR.ifunc == 10254.OR.ifunc == 10255)
THEN
2091 IF (ifunc == 10253)
THEN
2093 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
2097 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,it)
2099 IF (fbuf%FLOC(ifail)%ILAWF == 25)
THEN
2101 evar(i) =
max(evar(i),fbuf%FLOC(ifail)%DAM(i))
2109 ELSEIF (ifunc == 10254)
THEN
2111 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
2115 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,it)
2117 IF (fbuf%FLOC(ifail)%ILAWF == 25)
THEN
2118 nvarf = fbuf%FLOC(ifail)%NVAR
2120 var = fbuf%FLOC(ifail)%VAR(nvarf*(i-1)+1)
2121 evar(i) =
max(evar(i), var)
2129 ELSEIF (ifunc == 10255)
THEN
2131 nfail = elbuf_tab(ng)%BUFLY
2135 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,it)
2137 IF (fbuf%FLOC(ifail)%ILAWF == 25)
THEN
2138 nvarf = fbuf%FLOC(ifail)%NVAR
2140 var = fbuf%FLOC(ifail)%VAR(nvarf*(i-
2141 evar(i) =
max(evar(i), var)
2151 ELSE IF (ifunc >= 10360 .and. ifunc <= 10668)
THEN
2156 IF (ifunc == 10360)
THEN
2165 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
2166 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
2171 IF (nlay == 1) ipt = nptt
2172 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,ipt)
2174 IF (fbuf%FLOC(ifail)%ILAWF == 25)
THEN
2176 evar(i) =
max(evar(i),fbuf%FLOC(ifail)%DAM(i))
2184 ELSEIF (ifunc == 10361)
THEN
2188 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
2193 IF (nlay == 1) ipt = 1
2194 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,ipt)
2196 IF (fbuf%FLOC(ifail)%ILAWF == 25)
THEN
2198 evar(i) =
max(evar(i),fbuf%FLOC(ifail)%DAM(i))
2206 ELSEIF (ifunc == 10362)
THEN
2212 ipt = iabs(nptt) / 2
2215 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
2220 IF (nlay == 1) ipt = iabs(nptt) / 2
2221 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,ipt)
2223 IF (fbuf%FLOC(ifail)%ILAWF == 25)
THEN
2225 evar(i) =
max(evar(i),fbuf%FLOC(ifail)%DAM(i))
2233 ELSEIF (ifunc == 10363)
THEN
2242 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
2245 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,ipt)
2247 IF (fbuf%FLOC(ifail)%ILAWF == 25)
THEN
2248 nvarf = fbuf%FLOC(ifail)%NVAR
2250 var = fbuf%FLOC(ifail)%VAR(nvarf*(i-1)+1)
2258 ELSEIF (ifunc == 10364)
THEN
2262 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
2265 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,ipt)
2267 IF (fbuf%FLOC(ifail)%ILAWF == 25)
THEN
2268 nvarf = fbuf%FLOC(ifail)%NVAR
2270 var = fbuf%FLOC(ifail)%VAR(nvarf*(i-1)+1)
2271 evar(i) =
max(evar(i), var)
2278 ELSEIF (ifunc == 10365)
THEN
2287 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
2290 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,ipt)
2292 IF (fbuf%FLOC(ifail)%ILAWF == 25)
THEN
2293 nvarf = fbuf%FLOC(ifail)%NVAR
2295 var = fbuf%FLOC(ifail)%VAR(nvarf*(i-1)+1)
2296 evar(i) =
max(evar(i), var)
2303 ELSEIF (ifunc == 10366)
THEN
2312 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
2315 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,ipt)
2317 IF (fbuf%FLOC(ifail)%ILAWF == 25)
THEN
2318 nvarf = fbuf%FLOC(ifail)%NVAR
2320 var = fbuf%FLOC(ifail)%VAR(nvarf*(i-1)+2) ! sig2
2321 evar(i) =
max(evar(i), var)
2328 ELSEIF (ifunc == 10367)
THEN
2332 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
2335 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,ipt)
2337 IF (fbuf%FLOC(ifail)%ILAWF == 25)
THEN
2338 nvarf = fbuf%FLOC(ifail)%NVAR
2340 var = fbuf%FLOC(ifail)%VAR(nvarf*(i-1)+2)
2341 evar(i) =
max(evar(i), var)
2348 ELSEIF (ifunc == 10368)
THEN
2357 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
2360 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,ipt)
2362 IF (fbuf%FLOC(ifail)%ILAWF == 25)
THEN
2363 nvarf = fbuf%FLOC(ifail)%NVAR
2365 var = fbuf%FLOC(ifail)%VAR(nvarf*(i-1)+2)
2366 evar(i) =
max(evar(i), var)
2375 ELSE IF (ifunc == 2142)
THEN
2377 IF (igtyp == 10.OR.igtyp == 11.OR.igtyp == 17.OR. igtyp == 51
2378 . .OR. igtyp == 52)
THEN
2393 mat(i)=ixtg(1,nft+i)
2394 pid(i)=ixtg(5,nft+i)
2397 IF (igtyp == 11)
THEN
2403 matly(j) = igeo(ipmat+n,pid(i))
2406 ELSEIF (igtyp == 10)
THEN
2414 ELSEIF (igtyp == 17 .OR. igtyp == 51 .OR. igtyp
THEN
2421 matly(j) = stack%IGEO(ipmat+n,isubstack)
2426 IF (ihbe == 11)
THEN
2428 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
2429 bufly => elbuf_tab(ng)%BUFLY(il)
2438 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
2440 IF (bufly%L_DAM > 0 .OR. bufly%L_OFF > 0 )
THEN
2443 IF(ipm(2,matly(j)) == 15)
THEN
2444 dam1(i)=lbuf%DAM(jj(1)+i)
2445 dam2(i)=lbuf%DAM(jj(2)+i)
2446 wpla(i) = wpla(i) + abs(lbuf%PLA(i))/npg
2447 dmax(i) = pm(64,matly(j))
2448 wpmax(i)= pm(41,matly(j))
2450 . .OR.wpla(i) < zero.OR.wpla(i) >= wpmax(i)
2451 . .OR.offl(i) < one) failg(i) = failg(i) + 1
2452 IF (failg(i) == npg )
THEN
2453 fail(i) = fail(i) + one
2455 ELSEIF (ipm(2,matly(j)) == 25)
THEN
2456 dam1(i)=lbuf%DMG(jj(2)+i)
2457 dam2(i)=lbuf%DMG(jj(3)+i)
2458 wpla(i) = wpla(i) + abs
2459 dmax(i) = pm(64,matly(j))
2460 wpmax(i)= pm(41,matly(j))
2461 IF (dam1(i) >= dmax(i).OR.dam2
2462 . .OR.wpla(i) < zero.OR.wpla(i) >= wpmax
2463 . .OR.offl(i) < one) failg(i) = failg(i) + 1
2464 IF (failg(i) == npg )
THEN
2465 fail(i) = fail(i) + one
2468 IF (offl(i) < one) failg(i)= failg(i) + 1
2469 IF (failg(i) == npg )
THEN
2470 fail(i) = fail(i) + one
2484 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
2485 bufly => elbuf_tab(ng)%BUFLY(il)
2489 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(1,1,it)
2491 IF (bufly%L_DAM > 0 .OR.bufly%L_OFF > 0 )
THEN
2494 IF (ipm(2,matly(j)) == 15)
THEN
2495 dam1(i) = lbuf%DAM(jj(1)+i)
2496 dam2(i) = lbuf%DAM(jj(2)+i)
2497 wpla(i) = abs(lbuf%PLA(i))
2498 dmax(i) = pm(64,matly(j))
2499 wpmax(i)= pm(41,matly(j))
2500 IF (dam1(i) >= dmax(i).OR.dam2(i) >= dmax(i).OR.
2501 . wpla(i) < zero.OR.wpla(i) >= wpmax(i) .OR.
2502 . offl(i) < one ) fail(i) = fail(i) + one
2503 ELSEIF (ipm(2,matly(j)) == 25)
THEN
2504 dam1(i) = lbuf%DMG(jj(2)+i)
2505 dam2(i) = lbuf%DMG(jj(3)+i)
2506 wpla(i) = abs(lbuf%PLA(i))
2507 dmax(i) = pm(64,matly(j))
2508 wpmax(i)= pm(41,matly(j))
2509 IF (dam1(i) >= dmax(i).OR.dam2(i) >= dmax(i).OR.
2510 . wpla(i) < zero.OR.wpla(i) >= wpmax(i) .OR.
2511 . offl(i) < one ) fail(i) = fail(i) + one
2513 IF (offl(i) < one ) fail(i) = fail(i) + one
2584 ELSE IF (ifunc >= 10256 .and. ifunc <= 10359)
THEN
2586 IF (ifunc == 10257)
THEN
2588 ELSEIF (ifunc == 10258)
THEN
2590 ELSEIF (ifunc == 10259)
THEN
2591 ipt = iabs(npt)/2 + 1
2592 ELSEIF (ifunc >= 10260 .AND. ifunc <= 10359)
THEN
2593 ipt = mod((ifunc - 10259), 100)
2594 IF (ipt == 0) ipt = 100
2601 IF(ifailure > 0)
THEN
2603 IF (ifunc == 10256)
THEN
2610 nptt = elbuf_tab(ng)%BUFLY(n)%NPTT
2616 fbuf => elbuf_tab(ng)%BUFLY(n)%FAIL(ir,is
2617 DO ifail = 1,elbuf_tab(ng)%BUFLY
2618 dmgmx =
max(dmgmx,fbuf%FLOC(ifail)%DAMMX(i))
2622 dmgmx_ly = dmgmx_ly + dmgmx / nptt
2624 evar(i) = evar(i) + dmgmx_ly
2626 evar(i) = evar(i) / nlay
2628 ELSEIF (mpt > 0)
THEN
2629 nptt = elbuf_tab(ng)%BUFLY(1)%NPTT
2635 fbuf => elbuf_tab(ng)%BUFLY(1)%FAIL(ir,is,it)
2636 DO ifail = 1,elbuf_tab(ng)%BUFLY(1)%NFAIL
2637 dmgmx =
max(dmgmx, fbuf%FLOC(ifail)%DAMMX(i))
2641 evar(i) = evar(i) + dmgmx
2643 evar(i) = evar(i) / nptt
2647 ELSEIF (npt >= ipt)
THEN
2651 IF (nlay > 1 .AND. ipt <= nlay)
THEN
2652 nptt = elbuf_tab(ng)%BUFLY(ipt)%NPTT
2658 fbuf => elbuf_tab(ng)%BUFLY(ipt)%FAIL(ir,is,it)
2659 DO ifail = 1,elbuf_tab(ng)%BUFLY(ipt)%NFAIL
2660 dmgmx =
max(dmgmx,fbuf%FLOC(ifail)%DAMMX(i))
2664 evar(i) = evar(i) + dmgmx
2666 evar(i) = evar(i) / nptt
2668 ELSEIF (mpt > 0)
THEN
2672 fbuf => elbuf_tab(ng)%BUFLY(1)%FAIL(ir,is,ipt)
2673 DO ifail = 1, elbuf_tab(ng)%BUFLY(1
2674 evar(i) =
max(evar(i), fbuf%FLOC(ifail)%DAMMX(i))
2685 IF(mlw == 25 .AND. (igtyp == 10 .OR. igtyp == 11 .OR.
2686 . igtyp == 17 .OR. igtyp
THEN
2694 mat(i)=ixtg(1,nft+i)
2695 pid(i)=ixtg(5,nft+i)
2698 IF (igtyp == 11)
THEN
2707 ELSEIF (igtyp == 10)
THEN
2715 ELSEIF (igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52)
THEN
2721 matly(j) = stack%IGEO(ipmat+n,isubstack)
2727 IF (ifunc == 10256)
THEN
2731 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
2732 bufly => elbuf_tab(ng
2740 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
2741 dmax(i) = one/pm(64,matly(j))
2742 wpmax(i)= one/pm(41,matly(j))
2743 epst1(i)= pm(60,matly(j))
2744 epst2(i)= pm(61,matly(j))
2745 epsf1(i)= one/pm(98,matly(j))
2746 epsf2(i)= one/pm(99,matly(j))
2748 vg(1) =
max(vg(1),lbuf%DMG(jj(2)+i)*dmax(i))
2749 vg(2) =
max(vg(2),lbuf%DMG
2751 IF(lbuf%CRAK(jj(1)+i) > zero) vg
2752 . (lbuf%CRAK(jj(1)+i)+epst1(i))*epsf1(i))
2753 IF(lbuf%CRAK(jj(2)+i) > zero )vg(5) =
max(vg(5),
2754 . (lbuf%CRAK(jj(2)+i)+epst2(i))*epsf2(i))
2757 vly(1) = vly(1) + vg(1)
2758 vly(2) = vly(2) + vg(2)
2759 vly(3) = vly(3) + vg(3)
2760 vly(4) = vly(4) + vg(4)
2761 vly(5) = vly(5) + vg(5)
2763 ve(1) = ve(1) + vly(1)/nptt
2764 ve(2) = ve(2) + vly(2)/nptt
2765 ve(3) = ve(3) + vly(3)/nptt
2766 ve(4) = ve(4) + vly(4)/nptt
2767 ve(5) = ve(5) + vly(5)/nptt
2774 evar(i) =
max(evar(i),ve(1),ve(2),ve(3),
2777 ELSEIF(ipt <= nlay)
THEN
2780 nptt = elbuf_tab(ng)%BUFLY(ipt)%NPTT
2781 bufly => elbuf_tab(ng)%BUFLY(ipt)
2782 iadr = (ipt - 1)*nel
2789 lbuf => elbuf_tab(ng)%BUFLY(ipt)%LBUF(ir,is,it)
2790 dmax(i) = one/pm(64,matly(j))
2791 wpmax(i)= one/pm(41,matly(j)
2792 epst1(i)= pm(60,matly(j))
2793 epst2(i)= pm(61,matly(j))
2794 epsf1(i)= one/pm(98,matly(j))
2795 epsf2(i)= one/pm(99,matly(j))
2797 vg(1) =
max(vg(1),lbuf%DMG(jj(2)+i)*dmax(i))
2798 vg(2) =
max(vg(2),lbuf%DMG(jj(3)+i)*dmax(i))
2799 vg(3)=
max(vg(3),abs(lbuf%PLA(i))*wpmax(i))
2800 IF(lbuf%CRAK(jj(1)+i) > zero) vg(4)=
max(vg(4),
2802 IF(lbuf%CRAK(jj(2)+i) > zero )vg(5) =
max(vg(5),
2803 . (lbuf%CRAK(jj(2)+i)+epst2(i))*epsf2(i))
2806 vly(1) =vly(1) + vg(1)
2807 vly(2) =vly(2) + vg(2)
2808 vly(3) =vly(3) + vg(3)
2809 vly(4) =vly(4) + vg(4)
2810 vly(5) =vly(5) + vg(5)
2818 evar(i) =
max(evar(i),vly(1),vly(2),vly(3),
2825 ELSE IF (ifunc == 10670)
THEN
2833 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
2837 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,it)
2840 evar(i) =
max(evar(i),fbuf%FLOC(ifail)%TDEL(i))
2848 ELSE IF (ifunc == 10671)
THEN
2852 l = elbuf_tab(ng)%BUFLY(1)%L_SSP
2858 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
2860 evar(i) = lbuf%SSP(i)
2864 ELSE IF (ifunc == 10672)
THEN
2872 ELSE IF (ifunc == 2156)
THEN
2876 evar(i) = err_thk_sh4(nft+i)
2880 evar(i) = err_thk_sh3(nft+i)
2884 ELSE IF (ifunc == 10676)
THEN
2891 ELSEIF (ifunc == 10677)
THEN
2894 IF (gbuf%G_SEQ > 0)
THEN
2899 bufly => elbuf_tab(ng)%BUFLY(il)
2900 npgt = npgt + bufly%NPTT*nptr*npts
2906 bufly => elbuf_tab(ng)%BUFLY(il)
2910 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
2911 evar_tmp = evar_tmp + lbuf%SEQ(i)/npgt
2921 s1 = gbuf%FOR(jj(1)+i)
2922 s2 = gbuf%FOR(jj(2)+i)
2923 s12= gbuf%FOR(jj(3)+i)
2924 vonm2 = s1*s1 + s2*s2 - s1*s2 + three*s12*s12
2925 evar(i) = sqrt(vonm2)
2929 ELSEIF (ifunc > 10677 .AND. ifunc < 10778 .AND.
2930 . (igtyp == 51 .OR. igtyp == 52).AND.
2931 . mlw /= 15 .AND. mlw /= 25 )
THEN
2935 ilay = mod((ifunc - 10677), 100)
2936 IF (ilay == 0) ilay = 100
2942 bufly => elbuf_tab(ng)%BUFLY(il)
2945 IF (bufly%L_PLA > 0 .AND.
2946 . (il <= nlay .AND. ipt <= nptt))
THEN
2951 lbuf => bufly%LBUF(ir,is,ipt)
2952 evar(i) = evar(i) + abs(lbuf%PLA(i))/npg
2957 lbuf => bufly%LBUF(1,1,ipt)
2959 evar(i) = abs(lbuf%PLA(i))
2964 ELSEIF (ifunc > 10777 .AND. ifunc < 10878 .AND.
2965 . (igtyp == 51 .OR. igtyp == 52) .AND.
2966 . mlw /= 15 .AND. mlw /= 25)
THEN
2970 ilay = mod((ifunc - 10777), 100)
2971 IF (ilay == 0) ilay = 100
2978 bufly => elbuf_tab(ng)%BUFLY(il)
2980 IF (bufly%L_PLA > 0 .AND.
2981 . (il <= nlay .AND. ipt <= nptt))
THEN
2986 lbuf => bufly%LBUF(ir,is,ipt)
2987 evar(i) = evar(i) + abs(lbuf%PLA(i))/npg
2992 lbuf => bufly%LBUF(1,1,ipt)
2994 evar(i) = abs(lbuf%PLA(i))
2999 ELSEIF (ifunc > 10877 .AND. ifunc < 11888 .AND.
3000 . (igtyp == 51 .OR. igtyp == 52).AND.
3001 . mlw /= 15 .AND. mlw /= 25)
THEN
3008 il = int((ius - 1)/10)
3010 IF (il <= nlay )
THEN
3011 bufly => elbuf_tab(ng)%BUFLY(il)
3013 IF (bufly%L_PLA > 0 .AND. ipt <= nptt)
THEN
3018 lbuf => bufly%LBUF(ir,is,ipt)
3019 evar(i) = evar(i) + abs(lbuf%PLA(i))/npg
3024 lbuf => bufly%LBUF(1,1,ipt)
3026 evar(i) = abs(lbuf%PLA(i))
3032 ELSEIF(ifunc == 11888)
THEN
3035 IF (gbuf%G_QVIS > 0)
THEN
3037 func(el2fa(nn3+nft+i)) = gbuf%QVIS(i)
3041 func(el2fa(nn3+nft+i)) = zero
3045 ELSEIF (ifunc == 11889)
THEN
3046 IF (mlw /= 51 .AND. gbuf%G_TB > 0)
THEN
3048 func(el2fa(nn3+nft+i)) = -gbuf%TB(i)
3050 ELSEIF (mlw == 51)
THEN
3051 mbuf => elbuf_tab(ng)%BUFLY
3055 k = llt * ((m51_n0phas + (itrimat-1)*m51_nvphas )+ipos-1)
3057 func(el2fa(nn3+nft+i)) = -mbuf%VAR(k+i)
3061 func(el2fa(nn3+nft+i)) = zero
3065 ELSE IF (ifunc>11925 .AND. ifunc < 11925+mx_ply_anim+1)
THEN
3068 iply = ifunc - 11925
3069 IF (igtyp == 17 .OR. igtyp == 51)
THEN
3070 IF (ply_anim( 3 * (iply - 1) + 2) == 1 )
THEN
3072 bufly => elbuf_tab(ng)%BUFLY(j)
3074 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
3075 IF (id_ply == ply_anim( 3 * (iply - 1) + 1) )
THEN
3081 lbuf => elbuf_tab(ng)%BUFLY(j)%LBUF(ir,is,it)
3082 IF (lbuf%OFF(i) == zero) nb_plyoff = nb_plyoff + 1
3086 IF ( nb_plyoff == nptr * npts * nptt )
THEN
3095 ELSEIF (igtyp == 52)
THEN
3096 IF (ply_anim( 3 * (iply - 1) + 2) == 1 )
THEN
3098 bufly => elbuf_tab(ng)%BUFLY(j)
3100 id_ply = ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
3101 IF (id_ply == ply_anim( 3 * (iply - 1) + 1) )
THEN
3107 lbuf => elbuf_tab(ng)%BUFLY(j)%LBUF(ir,is,it)
3108 IF (lbuf%OFF(i) == zero) nb_plyoff = nb_plyoff + 1
3112 IF ( nb_plyoff == nptr * npts * nptt )
THEN
3123 ELSE IF (ifunc> 11925+mx_ply_anim .AND. ifunc < 11925+(2*mx_ply_anim)+1)
THEN
3126 ivar = ifunc - (11925+mx_ply_anim)
3127 iply = ply_anim_phi( 3 * (ivar - 1) + 1)
3128 ipt = ply_anim_phi( 3 * (ivar - 1) + 3)
3132 IF (igtyp == 17 .OR. igtyp == 51)
THEN
3133 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
3134 ELSEIF (igtyp == 52)
THEN
3135 id_ply = ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
3138 IF (id_ply == iply )
THEN
3139 bufly => elbuf_tab(ng)%BUFLY(j)
3141 IF(idrape > 0 .AND. (igtyp == 51 .OR. igtyp == 52))
THEN
3142 IF(ipt <= bufly%NPTT )
THEN
3143 lbuf_dir => elbuf_tab(ng)%BUFLY(j)%LBUF_DIR(ipt)
3145 lbuf_dir => elbuf_tab(ng)%BUFLY(j)%LBUF_DIR(1)
3147 IF (mlw /= 0 .AND. mlw /= 13)
THEN
3150 x21 = x(1,ixc(3,n))-x(1,ixc(2,n))
3151 x32 = x(1,ixc(4,n))-x(1,ixc(3,n))
3152 x34 = x(1,ixc(4,n))-x(1,ixc(5,n))
3153 x41 = x(1,ixc(5,n))-x(1,ixc(2,n))
3155 y21 = x(2,ixc(3,n))-x(2,ixc(2,n))
3156 y32 = x(2,ixc(4,n))-x(2,ixc(3,n))
3157 y34 = x(2,ixc(4,n))-x(2,ixc(5,n))
3158 y41 = x(2,ixc(5,n))-x(2,ixc(2,n))
3160 z21 = x(3,ixc(3,n))-x(3,ixc(2,n))
3161 z32 = x(3,ixc(4,n))-x(3,ixc(3,n))
3162 z34 = x(3,ixc(4,n))-x(3,ixc(5,n))
3163 z41 = x(3,ixc(5,n))-x(3,ixc(2,n))
3173 e3x = e1y*e2z-e1z*e2y
3174 e3y = e1z*e2x-e1x*e2z
3175 e3z = e1x*e2y-e1y*e2x
3184 IF (ishfram == 0 .OR. igtyp == 16 )
THEN
3186 suma = e3x*e3x+e3y*e3y+e3z*e3z
3187 suma = one /
max(sqrt(suma),em20)
3192 s1 = e1x*e1x+e1y*e1y+e1z*e1z
3193 s2 = e2x*e2x+e2y*e2y+e2z*e2z
3195 e1x = e1x + (e2y*e3z-e2z*e3y)*suma
3196 e1y = e1y + (e2z*e3x-e2x*e3z)*suma
3197 e1z = e1z + (e2x*e3y-e2y*e3x)*suma
3199 suma = e1x*e1x+e1y*e1y+e1z*e1z
3200 suma = one /
max(sqrt(suma),em20)
3205 e2x = e3y * e1z - e3z * e1y
3206 e2y = e3z * e1x - e3x * e1z
3207 e2z = e3x * e1y - e3y * e1x
3208 ELSEIF (ishfram == 2)
THEN
3210 suma = e2x*e2x+e2y*e2y+e2z*e2z
3211 e1x = e1x*suma + e2y*e3z-e2z*e3y
3212 e1y = e1y*suma + e2z*e3x-e2x*e3z
3213 e1z = e1z*suma + e2x*e3y-e2y*e3x
3214 suma = e1x*e1x+e1y*e1y+e1z*e1z
3215 suma = one/
max(sqrt(suma),em20)
3220 suma = e3x*e3x+e3y*e3y+e3z*e3z
3221 suma = one /
max(sqrt(suma),em20)
3226 e2x = e3y*e1z-e3z*e1y
3227 e2y = e3z*e1x-e3x*e1z
3228 e2z = e3x*e1y-e3y*e1x
3229 suma = e2x*e2x+e2y*e2y+e2z*e2z
3230 suma = one/
max(sqrt(suma),em20)
3236 aa = lbuf_dir%DIRA(i)
3237 bb = lbuf_dir%DIRA(i+nel)
3241 vr = v1*e1x+ v2*e1y + v3*e1z
3242 vs = v1*e2x+ v2*e2y + v3*e2z
3243 suma=sqrt(vr*vr + vs*vs)
3247 dir1_1 = lbuf_dir%DIRA(i)
3251 phi =(hundred80/pi)*atan2(dir1_2,dir1_1)
3252 err = (abs(phi) - ninty)/ninty
3254 IF(abs(err) < em02) evar(i) = sign(ninty,phi)
3255 IF(abs(evar(i)) < one) evar(i) = zero
3258 ELSEIF (igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52 )
THEN
3259 bufly => elbuf_tab(ng)%BUFLY(j)
3260 IF (mlw /= 0 .AND. mlw /= 13)
THEN
3263 x21 = x(1,ixc(3,n))-x(1,ixc(2,n))
3264 x32 = x(1,ixc(4,n))-x(1,ixc(3,n))
3265 x34 = x(1,ixc(4,n))-x(1,ixc(5,n))
3266 x41 = x(1,ixc(5,n))-x(1,ixc(2,n))
3268 y21 = x(2,ixc(3,n))-x(2,ixc(2,n))
3269 y32 = x(2,ixc(4,n))-x(2,ixc(3,n))
3270 y34 = x(2,ixc(4,n))-x(2,ixc(5,n))
3271 y41 = x(2,ixc(5,n))-x(2,ixc(2,n))
3273 z21 = x(3,ixc(3,n))-x(3,ixc(2,n))
3274 z32 = x(3,ixc(4,n))-x(3,ixc(3,n))
3275 z34 = x(3,ixc(4,n))-x(3,ixc(5,n))
3276 z41 = x(3,ixc(5,n))-x(3,ixc(2,n))
3286 e3x = e1y*e2z-e1z*e2y
3287 e3y = e1z*e2x-e1x*e2z
3288 e3z = e1x*e2y-e1y*e2x
3297 IF (ishfram == 0 .OR. igtyp == 16 )
THEN
3299 suma = e3x*e3x+e3y*e3y+e3z*e3z
3300 suma = one /
max(sqrt(suma),em20)
3305 s1 = e1x*e1x+e1y*e1y+e1z*e1z
3306 s2 = e2x*e2x+e2y*e2y+e2z*e2z
3308 e1x = e1x + (e2y*e3z-e2z*e3y)*suma
3309 e1y = e1y + (e2z*e3x-e2x*e3z)*suma
3310 e1z = e1z + (e2x*e3y-e2y*e3x)*suma
3312 suma = e1x*e1x+e1y*e1y+e1z*e1z
3313 suma = one /
max(sqrt(suma),em20)
3318 e2x = e3y * e1z - e3z * e1y
3319 e2y = e3z * e1x - e3x * e1z
3320 e2z = e3x * e1y - e3y * e1x
3321 ELSEIF (ishfram == 2)
THEN
3323 suma = e2x*e2x+e2y*e2y+e2z*e2z
3324 e1x = e1x*suma + e2y*e3z-e2z*e3y
3325 e1y = e1y*suma + e2z*e3x-e2x*e3z
3326 e1z = e1z*suma + e2x*e3y-e2y*e3x
3327 suma = e1x*e1x+e1y*e1y+e1z*e1z
3328 suma = one/
max(sqrt(suma),em20)
3333 suma = e3x*e3x+e3y*e3y+e3z*e3z
3334 suma = one /
max(sqrt(suma),em20)
3339 e2x = e3y*e1z-e3z*e1y
3340 e2y = e3z*e1x-e3x*e1z
3341 e2z = e3x*e1y-e3y*e1x
3342 suma = e2x*e2x+e2y*e2y+e2z*e2z
3343 suma = one/
max(sqrt(suma),em20)
3350 bb = bufly%DIRA(i+nel)
3354 vr = v1*e1x+ v2*e1y + v3*e1z
3355 vs = v1*e2x+ v2*e2y + v3*e2z
3356 suma=sqrt(vr*vr + vs*vs)
3360 dir1_1 = bufly%DIRA(i)
3361 dir1_2 = bufly%DIRA(i+nel)
3364 phi =(hundred80/pi)*atan2(dir1_2,dir1_1)
3365 err = (abs(phi) - ninty)/ninty
3367 IF(abs(err) < em02) evar(i) = sign(ninty,phi)
3368 IF(abs(evar(i)) < one) evar(i) = zero
3373 ELSEIF (ity == 7)
THEN
3374 IF(idrape > 0 .AND. (igtyp == 51 .OR. igtyp == 52))
THEN
3375 IF(ipt <= bufly%NPTT )
THEN
3376 lbuf_dir => elbuf_tab(ng)%BUFLY(j)%LBUF_DIR(ipt)
3378 lbuf_dir => elbuf_tab(ng)%BUFLY(j)%LBUF_DIR(1)
3380 IF (mlw /= 0 .AND. mlw /= 13)
THEN
3383 x21 = x(1,ixtg(3,n))-x(1,ixtg(2,n))
3384 x31 = x(1,ixtg(4,n))-x(1,ixtg(2,n))
3385 x32 = x(1,ixtg(4,n))-x(1,ixtg(3,n))
3387 y21 = x(2,ixtg(3,n))-x(2,ixtg(2,n))
3388 y31 = x(2,ixtg(4,n))-x(2,ixtg(2,n))
3389 y32 = x(2,ixtg(4,n))-x(2,ixtg(3,n))
3391 z21 = x(3,ixtg(3,n))-x(3,ixtg(2,n))
3392 z31 = x(3,ixtg(4,n))-x(3,ixtg(2,n))
3393 z32 = x(3,ixtg(4,n))-x(3,ixtg(3,n))
3402 IF(ifram_old ==0 )
THEN
3403 CALL clsconv3(x21,y21,z21,x31,y31,z31,
3404 + e1x,e1y,e1z,e2x,e2y,e2z,e3x,e3y,e3z)
3409 x2l = sqrt(e1x*e1x+e1y*e1y+e1z*e1z)
3417 sum_ = sqrt(e3x*e3x+e3y*e3y+e3z*e3z)
3425 sum_ = sqrt(e2x*e2x+e2y*e2y+e2z*e2z)
3431 aa = lbuf_dir%DIRA(i)
3432 bb = lbuf_dir%DIRA(i+nel)
3433 v1 = aa*e11 + bb*e21
3434 v2 = aa*e12 + bb*e22
3435 v3 = aa*e13 + bb*e23
3436 vr = v1*e1x + v2*e1y + v3*e1z
3437 vs = v1*e2x + v2*e2y + v3*e2z
3438 suma=sqrt(vr*vr + vs*vs)
3442 dir1_1 = lbuf_dir%DIRA(i)
3443 dir1_2 = lbuf_dir%DIRA(i+nel)
3445 phi =(hundred80/pi)*atan2(dir1_2,dir1_1)
3446 err = (abs(phi) - ninty)/ninty
3448 IF(abs(err) < em02) evar(i) = sign(ninty,phi)
3449 IF(abs(evar(i)) < one) evar(i) = zero
3452 ELSEIF (igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52 )
THEN
3453 bufly => elbuf_tab(ng)%BUFLY(j)
3454 IF (mlw /= 0 .AND. mlw /= 13)
THEN
3457 x21 = x(1,ixtg(3,n))-x(1,ixtg(2,n))
3458 x31 = x(1,ixtg(4,n))-x(1,ixtg(2,n))
3459 x32 = x(1,ixtg(4,n))-x(1,ixtg(3,n))
3461 y21 = x(2,ixtg(3,n))-x(2,ixtg(2,n))
3462 y31 = x(2,ixtg(4,n))-x(2,ixtg(2,n))
3463 y32 = x(2,ixtg(4,n))-x(2,ixtg(3,n))
3465 z21 = x(3,ixtg(3,n))-x(3,ixtg(2,n))
3466 z31 = x(3,ixtg(4,n))-x(3,ixtg(2,n))
3467 z32 = x(3,ixtg(4,n))-x(3,ixtg(3,n))
3476 IF(ifram_old ==0 )
THEN
3477 CALL clsconv3(x21,y21,z21,x31,y31,z31,
3478 + e1x,e1y,e1z,e2x,e2y,e2z,e3x,e3y,e3z)
3483 x2l = sqrt(e1x*e1x+e1y*e1y+e1z*e1z)
3491 sum_ = sqrt(e3x*e3x+e3y*e3y+e3z*e3z)
3499 sum_ = sqrt(e2x*e2x+e2y*e2y+e2z*e2z)
3506 bb = bufly%DIRA(i+nel)
3507 v1 = aa*e11 + bb*e21
3508 v2 = aa*e12 + bb*e22
3509 v3 = aa*e13 + bb*e23
3510 vr = v1*e1x + v2*e1y + v3*e1z
3511 vs = v1*e2x + v2*e2y + v3*e2z
3512 suma=sqrt(vr*vr + vs*vs)
3516 dir1_1 = bufly%DIRA(i)
3517 dir1_2 = bufly%DIRA(i+nel)
3519 phi =(hundred80/pi)*atan2(dir1_2,dir1_1)
3520 err = (abs(phi) - ninty)/ninty
3522 IF(abs(err) < em02) evar(i) = sign(ninty,phi)
3523 IF(abs(evar(i)) < one) evar(i) = zero
3532 ELSE IF (ifunc> 11925+(2*mx_ply_anim) .AND. ifunc < 11925+(3*mx_ply_anim)+1)
THEN
3535 iply = ifunc - (11925+ 2*mx_ply_anim)
3536 ipt = ply_anim_epsp( 3 * (iply - 1) + 3)
3540 IF (igtyp == 17 .OR. igtyp == 51)
THEN
3541 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
3542 ELSEIF (igtyp == 52)
THEN
3543 id_ply = ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
3546 IF (id_ply == ply_anim_epsp( 3 * (iply - 1) + 1) )
THEN
3547 bufly => elbuf_tab(ng)%BUFLY(j)
3550 IF( ipt <= nptt)
THEN
3555 evar(i) = evar(i) + abs(bufly%LBUF(ir,is,ipt)%PLA(i))/npg
3561 evar(i) = abs(bufly%LBUF(1,1,ipt)%PLA(i))
3578 ELSE IF (ifunc> 11925+(3*mx_ply_anim) .AND. ifunc < 11925+(4*mx_ply_anim)+1)
THEN
3581 iply = ifunc - (11925+ 3*mx_ply_anim)
3582 ipt = ply_anim_dama( 3 * (iply - 1) + 3)
3584 IF(ifailure > 0)
THEN
3586 nptt = elbuf_tab(ng)%BUFLY(j)%NPTT
3588 IF (igtyp == 17 .OR. igtyp == 51)
THEN
3589 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
3590 ELSEIF (igtyp == 52)
THEN
3591 id_ply=ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
3593 IF (id_ply == ply_anim_dama( 3 *(iply - 1) + 1) )
THEN
3594 IF (ipt <= nptt)
THEN
3598 fbuf => elbuf_tab(ng)%BUFLY(j)%FAIL(ir,is,ipt)
3599 DO ifail = 1, elbuf_tab(ng)%BUFLY(j)%NFAIL
3600 evar(i) =
max(evar(i), fbuf%FLOC(ifail)%DAMMX(i))
3610 IF(mlw == 25 .AND. (igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52))
THEN
3618 mat(i)=ixtg(1,nft+i)
3619 pid(i)=ixtg(5,nft+i)
3628 matly(j) = stack%IGEO(ipmat+n,isubstack)
3634 IF (igtyp == 17 .OR. igtyp == 51)
THEN
3635 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
3636 ELSEIF (igtyp == 52)
THEN
3637 id_ply=ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
3640 IF (id_ply == ply_anim_dama( 3 *(iply - 1) + 1) )
THEN
3641 bufly => elbuf_tab(ng)%BUFLY(j)
3643 nptt = elbuf_tab(ng)%BUFLY(j)%NPTT
3644 IF (ipt <= nptt)
THEN
3650 lbuf=> elbuf_tab(ng)%BUFLY(j)%LBUF(ir,is,ipt)
3651 dmax(i) = one/pm(64,matly(iadr + i))
3652 wpmax(i)= one/pm(41,matly(iadr + i))
3653 epst1(i)= pm(60,matly(iadr
3654 epst2(i)= pm(61,matly(iadr + i))
3655 epsf1(i)= one/pm(98,matly(iadr + i))
3656 epsf2(i)= one/pm(99,matly(iadr + i))
3658 vg(1) =
max(vg(1),lbuf%DMG(jj(2)+i)*dmax(i))
3659 vg(2) =
max(vg(2),lbuf%DMG(jj(3)+i)*dmax(i))
3660 vg(3)=
max(vg(3),abs(lbuf%PLA(i))*wpmax(i))
3661 IF(lbuf%CRAK(jj(1)+i) > zero) vg(4)=
max(vg(4),
3662 . (lbuf%CRAK(jj(1)+i)+epst1
3663 IF(lbuf%CRAK(jj(2)+i) > zero )vg(5) =
max(vg(5),
3664 . (lbuf%CRAK(jj(2)+i)+epst2(i))*epsf2(i))
3674 evar(i) =
max(evar(i),vly(1),vly(2),vly(3),vly(4),vly(5))
3681 ELSEIF (ifunc > 11925+4*mx_ply_anim .and.
3682 . ifunc < 11925+4*mx_ply_anim + 4)
THEN
3684 idx = 11925+4*mx_ply_anim
3685 IF (ifunc == idx+1)
THEN
3693 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
3694 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
3699 IF (nlay == 1) ipt = nptt
3700 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,ipt)
3702 IF (fbuf%FLOC(ifail)%ILAWF == 7)
THEN
3704 evar(i) =
max(evar(i),fbuf%FLOC(ifail)%DAM(i))
3712 ELSEIF (ifunc == idx+2)
THEN
3715 bufly => elbuf_tab(ng)%BUFLY(il)
3717 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
3721 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,ipt)
3723 IF (fbuf%FLOC(ifail)%ILAWF == 7)
THEN
3725 evar(i) =
max(evar(i),fbuf%FLOC(ifail)%DAM(i))
3732 ELSEIF (ifunc == idx+3)
THEN
3734 bufly => elbuf_tab(ng)%BUFLY(il)
3736 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
3737 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
3741 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,ipt)
3743 IF (fbuf%FLOC(ifail)%ILAWF == 7)
THEN
3745 evar(i) =
max(evar(i),fbuf%FLOC(ifail)%DAM(i))
3753 ELSEIF (ifunc > 11925+4*mx_ply_anim + 3.and.
3754 . ifunc < 11925+4*mx_ply_anim + 7)
THEN
3756 idx = 11925+4*mx_ply_anim + 3
3757 IF (ifunc == idx+1)
THEN
3765 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
3766 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
3771 IF (nlay == 1) ipt = nptt
3772 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,ipt)
3774 IF (fbuf%FLOC(ifail)%ILAWF == 7)
THEN
3776 rindx = fbuf%FLOC(ifail)%INDX(i)
3777 evar(i) =
max(evar(i),rindx)
3785 ELSEIF (ifunc == idx+2)
THEN
3788 bufly => elbuf_tab(ng)%BUFLY(il)
3794 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,ipt)
3796 IF (fbuf%FLOC(ifail
THEN
3798 rindx = fbuf%FLOC(ifail)%INDX(i)
3799 evar(i) =
max(evar(i),rindx)
3806 ELSEIF (ifunc == idx+3)
THEN
3808 bufly => elbuf_tab(ng)%BUFLY(il)
3810 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
3815 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is
3817 IF (fbuf%FLOC(ifail)%ILAWF == 7)
THEN
3820 evar(i) =
max(evar(i),rindx)
3831 . .AND. (igtyp == 51 .OR. igtyp ==
THEN
3836 ilay = mod((ifunc - idx), 100)
3837 IF (ilay == 0) ilay = 100
3843 bufly => elbuf_tab(ng)%BUFLY(il)
3851 IF (ifailure > 0)
THEN
3852 IF (il <= nlay .AND. it <= nptt)
THEN
3856 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL
3857 DO ifail = 1, elbuf_tab(ng)%BUFLY(il)%NFAIL
3858 evar(i) =
max(evar(i), fbuf%FLOC(ifail)%DAMMX(i))
3868 IF (mlw == 25 .AND. (igtyp == 51 .OR. igtyp
THEN
3876 mat(i)=ixtg(1,nft+i)
3877 pid(i)=ixtg(5,nft+i)
3886 matly(j) = stack%IGEO(ipmat+n,isubstack)
3897 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
3898 dmax(i) = one/pm(64,matly(j))
3902 epsf1(i)= one/pm(98,matly(j))
3903 epsf2(i)= one/pm(99,matly(j))
3905 vg(1) =
max(vg(1),lbuf%DMG(jj(2)+i)*dmax(i))
3908 IF (lbuf%CRAK(jj(1)+i) > zero) vg(4) =
max(vg(4),
3909 . (lbuf%CRAK(jj(1)+i)+epst1(i))*epsf1(i))
3910 IF (lbuf%CRAK(jj(2)+i) > zero) vg(5) =
max(vg(5),
3911 . (lbuf%CRAK(jj(2)+i)+epst2(i))*epsf2(i))
3914 evar(i) =
max(evar(i),vg(1),vg(2),vg(3),vg(4),vg(5))
3919 ELSEIF (ifunc > 11925+4*mx_ply_anim+106 .AND. ifunc < 11925+4*mx_ply_anim+207
3920 . .AND. (igtyp == 51 .OR. igtyp == 52))
THEN
3925 ilay = mod((ifunc - idx), 100)
3933 bufly => elbuf_tab(ng)%BUFLY(il)
3940 IF (ifailure > 0)
THEN
3941 IF (il <= nlay .AND. it <= nptt)
THEN
3945 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,it)
3946 DO ifail = 1, elbuf_tab(ng)%BUFLY(il)%NFAIL
3965 mat(i)=ixtg(1,nft+i)
3966 pid(i)=ixtg(5,nft+i)
3975 matly(j) = stack%IGEO(ipmat+n,isubstack)
3979 IF (il <= nlay .AND. it <= nptt)
THEN
3986 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
3987 dmax(i) = one/pm(64,matly(j))
3988 wpmax(i)= one/pm(41,matly(j))
3989 epst1(i)= pm(60,matly(j))
3990 epst2(i)= pm(61,matly(j))
3991 epsf1(i)= one/pm(98,matly(j))
3992 epsf2(i)= one/pm(99,matly(j))
3994 vg(1) =
max(vg(1),lbuf%DMG(jj(2)+i)*dmax(i))
3995 vg(2) =
max(vg(2),lbuf%DMG(jj(3)+i)*dmax(i))
3996 vg(3) =
max(vg(3),abs(lbuf%PLA(i))*wpmax(i))
3997 IF (lbuf%CRAK(jj(1)+i) > zero) vg(4) =
max(vg(4),
3998 . (lbuf%CRAK(jj(1)+i)+epst1(i))*epsf1(i))
3999 IF (lbuf%CRAK(jj(2)+i) > zero) vg(5) =
max(vg(5),
4000 . (lbuf%CRAK(jj(2)+i)+epst2(i))*epsf2(i))
4003 evar(i) =
max(evar(i),vg(1),vg(2),vg(3),vg(4),vg(5))
4008 ELSEIF (ifunc > 11925+4*mx_ply_anim+206 .AND. ifunc < 11925+4*mx_ply_anim+307
4009 . .AND. (igtyp == 51 .OR. igtyp == 52))
THEN
4013 idx = 11925+4*mx_ply_anim+206
4014 ilay = mod((ifunc - idx), 100)
4020 bufly => elbuf_tab(ng)%BUFLY(il)
4028 IF (ifailure > 0)
THEN
4029 IF (il <= nlay .AND. it <= nptt)
THEN
4033 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,it)
4034 DO ifail = 1, elbuf_tab(ng)%BUFLY(il)%NFAIL
4035 evar(i) =
max(evar(i), fbuf%FLOC(ifail)%DAMMX(i))
4045 IF (mlw == 25 .AND. (igtyp == 51 .OR. igtyp == 52))
THEN
4053 mat(i)=ixtg(1,nft+i)
4054 pid(i)=ixtg(5,nft+i)
4063 matly(j) = stack%IGEO(ipmat+n,isubstack)
4067 IF (il <= nlay .AND. it <= nptt)
THEN
4074 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
4075 dmax(i) = one/pm(64,matly(j))
4076 wpmax(i)= one/pm(41,matly(j))
4077 epst1(i)= pm(60,matly(j))
4078 epst2(i)= pm(61,matly(j))
4079 epsf1(i)= one/pm(98,matly(j))
4080 epsf2(i)= one/pm(99,matly(j))
4082 vg(1) =
max(vg(1),lbuf%DMG(jj(2)+i)*dmax(i))
4083 vg(2) =
max(vg(2),lbuf%DMG(jj(3)+i)*dmax(i))
4084 vg(3) =
max(vg(3),abs(lbuf%PLA(i))*wpmax(i))
4085 IF (lbuf%CRAK(jj(1)+i) > zero) vg(4) =
max(vg(4),
4086 . (lbuf%CRAK(jj(1)+i)+epst1(i))*epsf1(i))
4087 IF (lbuf%CRAK(jj(2)+i) > zero) vg(5) =
max(vg(5),
4088 . (lbuf%CRAK(jj(2)+i)+epst2(i))*epsf2(i))
4091 evar(i) =
max(evar(i),vg(1),vg(2),vg(3),vg(4),vg(5))
4096 ELSEIF (ifunc > 11925+4*mx_ply_anim+306 .AND. ifunc < 11925+4*mx_ply_anim+1317
4097 . .AND. (igtyp == 51 .OR. igtyp == 52))
THEN
4101 idx = 11925+4*mx_ply_anim+306
4103 il = int((ius - 1)/10)
4110 IF (ifailure > 0)
THEN
4111 IF (il <= nlay)
THEN
4112 bufly => elbuf_tab(ng)%BUFLY(il)
4114 IF (it <= nptt)
THEN
4118 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,it)
4119 DO ifail = 1, elbuf_tab(ng)%BUFLY(il)%NFAIL
4120 evar(i) =
max(evar(i), fbuf%FLOC(ifail)%DAMMX(i))
4131 IF (mlw == 25 .AND. (igtyp == 51 .OR. igtyp == 52))
THEN
4139 mat(i)=ixtg(1,nft+i)
4140 pid(i)=ixtg(5,nft+i)
4149 matly(j) = stack%IGEO(ipmat+n,isubstack)
4154 bufly => elbuf_tab(ng)%BUFLY(il)
4156 IF (it <= nptt)
THEN
4165 wpmax(i)= one/pm(41,matly(j))
4166 epst1(i)= pm(60,matly(j))
4167 epst2(i)= pm(61,matly(j))
4169 epsf2(i)= one/pm(99,matly(j))
4171 vg(1) =
max(vg(1),lbuf%DMG(jj(2)+i)*dmax(i))
4172 vg(2) =
max(vg(2),lbuf%DMG(jj(3)+i)*dmax(i))
4173 vg(3) =
max(vg(3),abs(lbuf%PLA(i))*wpmax(i))
4174 IF (lbuf%CRAK(jj(1)+i) > zero) vg(4) =
max(vg(4),
4175 . (lbuf%CRAK(jj(1)+i)+epst1(i))*epsf1(i))
4176 IF (lbuf%CRAK(jj(2)+i) > zero) vg(5) =
max(vg(5),
4177 . (lbuf%CRAK(jj(2)+i)+epst2(i))*epsf2(i))
4180 evar(i) =
max(evar(i),vg(1),vg(2),vg(3),vg(4),vg(5))
4186 ELSEIF(ifunc == 13242 + 4*mx_ply_anim )
THEN
4189 evar(i) = gbuf%DT(i)
4193 ELSEIF(ifunc == 13243 + 4*mx_ply_anim )
THEN
4194 IF(gbuf%G_ISMS>0)
THEN
4196 evar(i) = gbuf%ISMS(i)
4200 ELSEIF(ifunc == 13245 + 4*mx_ply_anim .AND. (mlw == 15 .OR. mlw == 25))
THEN
4202 IF (gbuf%G_PLA > 0)
THEN
4205 IF (nlay > 1) ilay = iabs(nlay)/2 + 1
4206 bufly => elbuf_tab(ng)%BUFLY(ilay)
4207 IF (bufly%L_PLA > 0)
THEN
4210 IF(igtyp == 51 .OR. igtyp == 52)
THEN
4216 evar(i) = evar(i) + fourth*bufly%LBUF(ir,is,it)%PLA(i)/nptt
4223 evar(i) = fourth*(bufly%LBUF(1,1,1)%PLA(i) + bufly%LBUF(2,1,1)%PLA(i) +
4224 . bufly%LBUF(1,2,1)%PLA(i) + bufly%LBUF(2,2,1)%PLA(i))
4228 IF(igtyp == 51 .OR. igtyp == 52)
THEN
4233 evar(i) = evar(i) + third*bufly%LBUF(ir,1,it)%PLA(i)/nptt
4239 evar(i) = third*(bufly%LBUF(1,1,1)%PLA(i) + bufly%LBUF(1,1,1)%PLA(i) +
4240 . bufly%LBUF(1,1,1)%PLA(i))
4245 IF(igtyp == 51 .OR. igtyp == 52)
THEN
4249 evar(i) = evar(i) + abs(bufly%LBUF(1,1,it)%PLA(i))/nptt
4254 ipt = iabs(nptt)/2 + 1
4256 evar(i) = abs(bufly%LBUF(1,1,ipt)%PLA(i))/nptt
4263 ELSEIF (ifunc == 13246 + 4*mx_ply_anim .AND. (mlw == 15 .OR. mlw == 25))
THEN
4272 bufly => elbuf_tab(ng)%BUFLY(il)
4273 IF (bufly%L_PLA > 0)
THEN
4275 IF (igtyp == 51 .OR. igtyp == 52) ipt = bufly%NPTT
4279 lbuf => bufly%LBUF(ir,is,ipt)
4280 evar(i) = evar(i) + abs(lbuf%PLA(i))/npg
4285 IF (igtyp == 51 .OR. igtyp == 52) ipt = bufly%NPTT
4287 evar(i) = abs(bufly%LBUF
4292 ELSEIF (ifunc == 13247 + 4*mx_ply_anim .AND. (mlw == 15 .OR. mlw ==
THEN
4294 bufly => elbuf_tab(ng)%BUFLY(1)
4295 IF (bufly%L_PLA > 0)
THEN
4300 lbuf => bufly%LBUF(ir,is,1)
4301 evar(i) = evar(i) + abs(lbuf%PLA(i))/npg
4307 evar(i) = abs(bufly%LBUF(1,1,1)%PLA(i))
4312 ELSEIF (ifunc > 13247 + 4*mx_ply_anim .AND. ifunc <= 13347 + 4*mx_ply_anim .AND.
4313 . (mlw == 15 .OR. mlw == 25))
THEN
4315 ilay = mod((ifunc - 13247 - 4*mx_ply_anim), 100)
4317 IF ((ilay <= nlay .or. ilay <
THEN
4321 ELSEIF (nlay > 1)
THEN
4328 bufly => elbuf_tab(ng)%BUFLY(il)
4329 IF (bufly%L_PLA > 0)
THEN
4331 IF (igtyp == 51 .OR. igtyp == 52)
THEN
4339 lbuf => bufly%LBUF(ir,is,it)
4340 evar(i) = evar(i) + abs
4350 evar(i) = evar(i) + abs(lbuf%PLA(i))/npg
4356 IF (igtyp == 51 .OR. igtyp == 52)
THEN
4360 evar(i) = evar(i) + abs(bufly%LBUF(1,1,it)%PLA(i))/nptt
4365 evar(i) = abs(bufly%LBUF(1,1,ipt)%PLA(i))
4372 ELSEIF (ifunc > 13347 + 4*mx_ply_anim .AND. ifunc <= 13447 + 4*mx_ply_anim .AND.
4373 . (igtyp == 51 .OR. igtyp == 52) .AND. (mlw == 15 .OR. mlw == 25) )
THEN
4377 ilay = mod((ifunc - 13347 - 4*mx_ply_anim), 100)
4378 IF (ilay == 0) ilay = 100
4384 bufly => elbuf_tab(ng)%BUFLY(il)
4387 IF (bufly%L_PLA > 0 .AND.
4388 . (il <= nlay .AND. ipt <= nptt))
THEN
4393 lbuf => bufly%LBUF(ir,is,ipt)
4394 evar(i) = evar(i) + abs(lbuf%PLA(i)
4399 lbuf => bufly%LBUF(1,1,ipt)
4401 evar(i) = abs(lbuf%PLA(i))
4406 ELSEIF (ifunc > 13447 + 4*mx_ply_anim .AND. ifunc <= 13547 + 4*mx_ply_anim .AND.
4407 . (igtyp == 51 .OR. igtyp == 52) .AND. (mlw == 15 .OR. mlw == 25) )
THEN
4411 ilay = mod((ifunc - 13447 - 4*mx_ply_anim), 100)
4412 IF (ilay == 0) ilay = 100
4419 bufly => elbuf_tab(ng)%BUFLY(il)
4421 IF (bufly%L_PLA > 0 .AND.
4422 . (il <= nlay .AND. ipt <= nptt))
THEN
4427 lbuf => bufly%LBUF(ir,is,ipt)
4428 evar(i) = evar(i) + abs(lbuf%PLA(i))/npg
4433 lbuf => bufly%LBUF(1,1,ipt)
4435 evar(i) = abs(lbuf%PLA
4440 ELSEIF (ifunc > 13547 + 4*mx_ply_anim .AND. ifunc <= 14547 + 4*mx_ply_anim .AND.
4441 . (igtyp == 51 .OR. igtyp == 52) .AND. (mlw == 15 .OR. mlw == 25) )
THEN
4447 ius = ifunc - 13547 - 4*mx_ply_anim
4448 il = int((ius - 1)/10)
4451 IF (il <= nlay )
THEN
4452 bufly => elbuf_tab(ng)%BUFLY(il)
4454 IF (bufly%L_PLA > 0 .AND. ipt <= nptt)
THEN
4460 evar(i) = evar(i) + abs(lbuf%PLA(i))/npg
4465 lbuf => bufly%LBUF(1,1,ipt)
4467 evar(i) = abs(lbuf%PLA(i))
4474 ELSEIF (ifunc == 13547 + 4*mx_ply_anim + 1000 + 1)
THEN
4476 IF (gbuf%G_OFF > 0)
THEN
4477 IF(gbuf%OFF(i) > one)
THEN
4478 evar(i) = gbuf%OFF(i) - one
4479 ELSEIF((gbuf%OFF(i) >= zero .AND. gbuf%OFF(i) <= one))
THEN
4480 evar(i) = gbuf%OFF(i)
4488 ELSEIF(ifunc == 13547 + 4*mx_ply_anim + 1000 + 2)
THEN
4489 IF (mlw == 151)
THEN
4491 vel(1) = multi_fvm%VEL(1, i + nft)
4492 vel(2) = multi_fvm%VEL(2, i + nft)
4493 vel(3) = multi_fvm%VEL(3, i + nft)
4494 vel(0) = sqrt(vel(1)*vel(1)+vel(2)*vel(2)+vel(3)*vel(3))
4495 evar(i) = vel(0)/multi_fvm%SOUND_SPEED(i + nft)
4497 ELSEIF(alefvm_param%ISOLVER>1)
THEN
4498 l = elbuf_tab(ng)%BUFLY(1)%L_SSP
4499 IF(elbuf_tab(ng)%BUFLY(1)%L_SSP /= 0)
THEN
4500 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
4502 vel(1) = gbuf%MOM(jj(1) + i) / gbuf%RHO(i)
4503 vel(2) = gbuf%MOM(jj(2) + i) / gbuf%RHO(i)
4504 vel(3) = gbuf%MOM(jj(3) + i) / gbuf%RHO(i)
4505 vel(0) = sqrt(vel(1)*vel(1)+vel(2)*vel(2)+vel(3)*vel(3))
4506 evar(i) = vel(0)/lbuf%SSP(i)
4510 l = elbuf_tab(ng)%BUFLY(1)%L_SSP
4511 IF(n2d/=0.AND.elbuf_tab(ng)%BUFLY(1)%L_SSP /= 0)
THEN
4512 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
4516 tmp(1,1:3)=v(1,ixtg(2:4,i+nft))-w(1,ixtg(2:4,i+nft))
4517 tmp(2,1:3)=v(2,ixtg(2:4,i+nft))-w(2,ixtg(2:4,i+nft))
4518 tmp(3,1:3)=v(3,ixtg(2:4,i+nft))-w(3,ixtg(2:4,i+nft))
4519 vel(1) = sum(tmp(1,1:3))*third
4520 vel(2) = sum(tmp(2,1:3))*third
4521 vel(3) = sum(tmp(3,1:3))*third
4522 evar(i) = sqrt(vel(1)*vel(1)+vel(2)*vel(2)+vel(3)*vel(3))/lbuf%SSP(i)
4526 tmp(1,1:4)=v(1,ixq(2:5,i+nft))-w(1,ixq(2:5,i+nft))
4527 tmp(2,1:4)=v(2,ixq(2:5,i+nft))-w(2,ixq(2:5,i+nft))
4528 tmp(3,1:4)=v(3,ixq(2:5,i+nft))-w(3,ixq(2:5,i+nft))
4529 vel(1) = sum(tmp(1,1:4))*fourth
4530 vel(2) = sum(tmp(2,1:4))*fourth
4531 vel(3) = sum(tmp(3,1:4))*fourth
4532 evar(i) = sqrt(vel(1)*vel(1)+vel(2)*vel(2)+vel(3)*vel(3))/lbuf%SSP(i)
4538 tmp(1,1:3)=v(1,ixtg(2:4,i+nft))
4539 tmp(2,1:3)=v(2,ixtg(2:4,i+nft))
4540 tmp(3,1:3)=v(3,ixtg(2:4,i+nft))
4541 vel(1) = sum(tmp(1,1:3))*third
4543 vel(3) = sum(tmp(3,1:3))*third
4544 evar(i) = sqrt(vel(1)*vel(1)+vel(2)*vel(2)+vel(3)*vel(3))/lbuf%SSP(i)
4548 tmp(1,1:4)=v(1,ixq(2:5,i+nft))
4549 tmp(2,1:4)=v(2,ixq(2:5,i+nft))
4550 tmp(3,1:4)=v(3,ixq(2:5,i+nft))
4551 vel(1) = sum(tmp(1,1:4))*fourth
4552 vel(2) = sum(tmp(2,1:4))*fourth
4553 vel(3) = sum(tmp(3,1:4))*fourth
4554 evar(i) = sqrt(vel(1)*vel(1)+vel(2)*vel(2)+vel(3)*vel(3))/lbuf%SSP(i)
4561 ELSEIF((ifunc >= 13547 + 4*mx_ply_anim + 1000 + 4).AND.
4562 . (ifunc <= 13547 + 4*mx_ply_anim + 1000 + 18).AND.gbuf%G_DMG > 0)
THEN
4563 idx = 13547 + 4*mx_ply_anim + 1000 + 4
4565 IF (ifunc == idx)
THEN
4583 ELSEIF (ifunc == idx + 1)
THEN
4590 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is
4592 evar(i) = evar(i) + lbuf%DMG(i)/(npg*nlay)
4598 ELSEIF (ifunc == idx + 2)
THEN
4605 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,1)
4607 evar(i) = evar(i) + lbuf%DMG(i)/(npg*nlay)
4613 ELSEIF (ifunc == idx + 3)
THEN
4618 IF ((mod(nptt,2)/=0).AND.(nptt>1))
THEN
4622 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,ceiling(nptt/two))
4624 evar(i) = evar(i) + lbuf%DMG(i)/(npg*nlay)
4630 ELSEIF ((mod(nptt,2)==0).AND.(nptt>1))
THEN
4634 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,nptt/2)
4636 evar(i) = evar(i) + lbuf%DMG(i)/(two*npg*nlay)
4638 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,nptt/2+1)
4640 evar(i) = evar(i) + lbuf%DMG(i)/(two*npg*nlay)
4650 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,1)
4652 evar(i) = evar(i) + lbuf%DMG(i)/(npg*nlay)
4659 ELSEIF((ifunc >= idx + 3 + 1).AND.(ifunc <= idx + 3 + 11))
THEN
4663 it = ifunc - (idx+3)
4668 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
4670 evar(i) = evar(i) + lbuf%DMG(i)/(npg*nlay)
4678 ELSEIF((ifunc >= 14567 + 4*mx_ply_anim).AND.
4679 . (ifunc <= 14580 + 4*mx_ply_anim).AND.
4680 . gbuf%G_PLANL > 0)
THEN
4681 idx = 14567 + 4*mx_ply_anim
4683 IF (ifunc == idx)
THEN
4692 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,it)
4694 evar(i) = evar(i) + lbuf%PLANL(i)/npgt
4700 ELSEIF (ifunc == idx + 1)
THEN
4707 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,nptt)
4709 evar(i) = evar(i) + lbuf%PLANL(i)/npg
4714 ELSEIF (ifunc == idx + 2)
THEN
4721 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,1)
4723 evar(i) = evar(i) + lbuf%PLANL(i)/npg
4728 ELSEIF((ifunc >= idx + 2 + 1).AND.(ifunc <= idx + 2 + 11))
THEN
4732 it = ifunc - (idx+2)
4737 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,it)
4739 evar(i) = evar(i) + lbuf%PLANL(i)/npg
4746 ELSEIF((ifunc >= 14581 + 4*mx_ply_anim).AND.
4747 . (ifunc <= 14594 + 4*mx_ply_anim).AND.
4748 . gbuf%G_EPSDNL > 0)
THEN
4749 idx = 14581 + 4*mx_ply_anim
4751 IF (ifunc == idx)
THEN
4760 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,it)
4762 evar(i) = evar(i) + lbuf%EPSDNL(i)/npgt
4768 ELSEIF (ifunc == idx + 1)
THEN
4775 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,nptt)
4777 evar(i) = evar(i) + lbuf%EPSDNL(i)/npg
4782 ELSEIF (ifunc == idx + 2)
THEN
4789 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,1)
4791 evar(i) = evar(i) + lbuf%EPSDNL(i)/npg
4796 ELSEIF((ifunc >= idx + 2 + 1).AND.(ifunc <= idx + 2 + 11))
THEN
4800 it = ifunc - (idx+2)
4805 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,it)
4807 evar(i) = evar(i) + lbuf%EPSDNL(i)/npg
4814 ELSEIF (ifunc == 14595 + 4*mx_ply_anim .AND. (gbuf%G_TSAIWU > 0))
THEN
4817 ipt = iabs(nlay)/2 + 1
4818 bufly => elbuf_tab(ng)%BUFLY(ipt)
4824 evar(i) = evar(i) + bufly%LBUF(ir,is,it)%TSAIWU(i)/(nptt*nptr*npts)
4830 bufly => elbuf_tab(ng)%BUFLY(1)
4831 IF (bufly%L_TSAIWU > 0)
THEN
4833 ipt = iabs(nptt)/2 + 1
4837 evar(i) = evar(i) + bufly%LBUF(ir,is,ipt)%TSAIWU(i)/(nptr*npts)
4844 ELSEIF (ifunc == 14596 + 4*mx_ply_anim .AND. (gbuf%G_TSAIWU > 0))
THEN
4853 bufly => elbuf_tab(ng)%BUFLY(il)
4854 IF (bufly%L_TSAIWU > 0)
THEN
4856 IF (igtyp == 51 .OR. igtyp == 52) ipt = bufly%NPTT
4860 lbuf => bufly%LBUF(ir,is,ipt)
4861 evar(i) = evar(i) + lbuf%TSAIWU(i)/npg
4866 IF (igtyp == 51 .OR. igtyp == 52) ipt = bufly%NPTT
4868 evar(i) = bufly%LBUF(1,1,ipt)%TSAIWU(i)
4873 ELSEIF (ifunc == 14597 + 4*mx_ply_anim .AND. (gbuf%G_TSAIWU > 0))
THEN
4875 bufly => elbuf_tab(ng)%BUFLY(1)
4876 IF (bufly%L_TSAIWU > 0)
THEN
4881 lbuf => bufly%LBUF(ir,is,1)
4882 evar(i) = evar(i) + lbuf%TSAIWU(i)/npg
4888 evar(i) = bufly%LBUF(1,1,1)%TSAIWU(i)
4893 ELSEIF (ifunc > 14597 + 4*mx_ply_anim .AND. ifunc <= 14697 + 4*mx_ply_anim .AND.
4894 . (gbuf%G_TSAIWU > 0))
THEN ! anim/shell/tsaiwu/layer
4896 ilay = mod((ifunc - 14597 - 4*mx_ply_anim), 100)
4897 IF (ilay == 0) ilay = 100
4898 IF ((ilay <= nlay .OR. ilay <= mpt) .AND. gbuf%G_TSAIWU > 0)
THEN
4902 ELSEIF (nlay > 1)
THEN
4909 bufly => elbuf_tab(ng)%BUFLY(il)
4910 IF (bufly%L_TSAIWU > 0)
THEN
4912 IF (igtyp == 51 .OR. igtyp == 52)
THEN
4920 lbuf => bufly%LBUF(ir,is,it)
4921 evar(i) = evar(i) + lbuf%TSAIWU(i)/npgt
4930 lbuf => bufly%LBUF(ir,is,ipt)
4931 evar(i) = evar(i) + lbuf%TSAIWU(i)/npg
4937 IF (igtyp == 51 .OR. igtyp == 52)
THEN
4941 evar(i) = evar(i) + bufly%LBUF(1,1,it)%TSAIWU(i)/nptt
4946 evar(i) = bufly%LBUF(1,1,ipt)%TSAIWU(i)
4953 ELSEIF (ifunc > 14697 + 4*mx_ply_anim .AND. ifunc <= 14797 + 4*mx_ply_anim .AND.
4954 . (igtyp == 51 .OR. igtyp == 52) .AND. (gbuf%G_TSAIWU > 0) )
THEN
4958 ilay = mod((ifunc - 14697 - 4*mx_ply_anim), 100)
4959 IF (ilay == 0) ilay = 100
4965 bufly => elbuf_tab(ng)%BUFLY(il)
4968 IF (bufly%L_TSAIWU > 0 .AND.
4969 . (il <= nlay .AND. ipt <= nptt))
THEN
4974 lbuf => bufly%LBUF(ir,is,ipt)
4975 evar(i) = evar(i) + lbuf%TSAIWU(i)/npg
4980 lbuf => bufly%LBUF(1,1,ipt)
4982 evar(i) = lbuf%TSAIWU(i)
4987 ELSEIF (ifunc > 14797 + 4*mx_ply_anim .AND. ifunc <= 14897 + 4*mx_ply_anim .AND.
4988 . (igtyp == 51 .OR. igtyp == 52) .AND. (gbuf%G_TSAIWU > 0) )
THEN
4992 ilay = mod((ifunc - 14797 - 4*mx_ply_anim), 100)
4993 IF (ilay == 0) ilay = 100
5000 bufly => elbuf_tab(ng)%BUFLY(il)
5002 IF (bufly%L_TSAIWU > 0 .AND.
5003 . (il <= nlay .AND. ipt <= nptt))
THEN
5008 lbuf => bufly%LBUF(ir,is,ipt)
5009 evar(i) = evar(i) + lbuf%TSAIWU(i)/npg
5014 lbuf => bufly%LBUF(1,1,ipt
5016 evar(i) = lbuf%TSAIWU(i)
5021 ELSEIF (ifunc > 14897 + 4*mx_ply_anim .AND. ifunc <= 15897 + 4*mx_ply_anim .AND.
5022 . (igtyp == 51 .OR. igtyp == 52) .AND. (gbuf%G_TSAIWU > 0) )
THEN
5028 ius = ifunc - 14897 - 4*mx_ply_anim
5029 il = int((ius - 1)/10)
5032 IF (il <= nlay )
THEN
5033 bufly => elbuf_tab(ng)%BUFLY(il)
5035 IF (bufly%L_TSAIWU > 0 .AND. ipt <= nptt)
THEN
5040 lbuf => bufly%LBUF(ir,is,ipt)
5041 evar(i) = evar(i) + lbuf%TSAIWU(i)/npg
5046 lbuf => bufly%LBUF(1,1,ipt)
5048 evar(i) = lbuf%TSAIWU(i)
5058 IF (mlw == 0 .OR. mlw == 13)
THEN
5062 func(el2fa(nn4+n)) = zero
5067 func(el2fa(nn5+n)) = zero
5071 ELSEIF (ifunc == 3 .AND. mlw /= 151)
THEN
5077 func(el2fa(nn4+n)) = evar(i)/
5078 .
max(em30,mass(el2fa(nn4+n)))
5083 func(el2fa(nn5+n)) = evar(i)/
5084 .
max(em30,mass(el2fa(nn5+n)))
5088 ELSEIF (ifunc == 25.AND.ity == 3)
THEN
5093 func(el2fa(nn4+n)) = ehour(n+numels)/
5094 .
max(em30,mass(el2fa(nn4+n)))
5103 func(el2fa(nn4+n)) = evar(i)
5108 func(el2fa(nn5+n)) = evar(i)
5119 IF (nspmd == 1)
THEN
5129 IF (ispmd == 0)
THEN
5130 buf = (numelqg+numelcg+numeltgg)*4
5137 IF(
ALLOCATED(wa_l))
DEALLOCATE(wa_l)