47 . ELBUF_TAB ,SHELL_SCALAR ,IPARG ,GEO ,
48 . IXC ,IXTG ,PM ,BUFMAT ,
50 . IPM ,IGEO ,THKE ,ERR_THK_SH4 ,ERR_THK_SH3,
51 . X ,V ,W ,ALE_CONNECT,
52 . STACK ,ID_ELEM ,ITY_ELEM ,
53 . IS_WRITTEN_SHELL,IPARTC ,IPARTTG ,LAYER_INPUT ,IPT_INPUT ,
54 . PLY_INPUT ,IUVAR_INPUT ,H3D_PART ,KEYWORD ,
55 . D ,NG ,MULTI_FVM ,IDMDS ,IMDSVAR ,
56 . MDS_MATID ,ID ,MODE ,MATPARAM ,
57 . H3D_LIGHT ,SHELL_STACK ,MAX_SHELL_STACKSIZE ,SHELL_STACKSIZE)
70 USE multimat_param_mod ,
ONLY : m51_n0phas, m51_nvphas
71 use element_mod ,
only : nixc,nixtg
75#include "implicit_f.inc"
79#include "vect01_c.inc"
85#include "tabsiz_c.inc"
89 logical,
intent(in) :: CALLED_FROM_PYTHON
90 my_real,
INTENT(IN),
TARGET :: BUFMAT(*)
92 . SHELL_SCALAR(*),X(3,NUMNOD),V(3,NUMNOD),W(3,NUMNOD),D(3,NUMNOD),THKE(*),EHOUR(*),GEO(NPROPG,NUMGEO),
93 . PM(NPROPM,NUMMAT),ERR_THK_SH4(*), ERR_THK_SH3(NUMELTG)
94 INTEGER (NPARG,NGROUP),IXC(NIXC,NUMELC),IXTG(NIXTG,NUMELTG),
95 . IPM(NPROPMI,NUMMAT),
96 . IGEO(NPROPGI,NUMGEO), ID_ELEM(*),ITY_ELEM(*),
97 . IS_WRITTEN_SHELL(*),IPARTC(NUMELC),IPARTTG(NUMELTG),H3D_PART(*),
98 . LAYER_INPUT ,IPT_INPUT,PLY_INPUT,IUVAR_INPUT,NG,IDMDS,ID,
99 . MDS_MATID(*),IMDSVAR
100 INTEGER ,
INTENT(INOUT):: SHELL_STACKSIZE
101 INTEGER,
INTENT(IN) :: MAX_SHELL_STACKSIZE
102 REAL(KIND=4),dimension(max_shell_stacksize),
INTENT(INOUT) :: shell_stack
103 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
104 TYPE (STACK_PLY) :: STACK
105 CHARACTER(NCHARLINE100)::KEYWORD
106 TYPE (MULTI_FVM_STRUCT),
INTENT(IN) :: MULTI_FVM
107 TYPE(t_ale_connectivity),
INTENT(IN) :: ALE_CONNECT
108 INTEGER ,
INTENT(IN) :: MODE
109 TYPE (MATPARAM_STRUCT_) ,
DIMENSION(NUMMAT) ,
INTENT(IN) :: MATPARAM
110 INTEGER ,
INTENT(IN) :: H3D_LIGHT
115 . epst1(mvsiz),epst2(mvsiz),epsf1(mvsiz),epsf2(mvsiz),value(mvsiz),vg(5),vly(5),ve(5),mass(mvsiz),
116 . vonm2,s1,s2,s12,dmgmx,a1,a2,a3,a4,dir1_1,dir1_2,aa,bb,v1,v2,v3,x21,x32,x34,
117 . x41,y21,y32,y34,y41,z21,z32,z34,z41,suma,vr,vs,x31,y31,z31,e11,e12
118 . e1x,e1y,e1z,e2x,e2y,e2z,e3x,e3y,e3z
119 . rindx,vfrac(mvsiz,1:21),tmp(3,3),cumul(3),vx,vy,vz,surf,nx,ny,nz,phi,err,pres(mvsiz),vel(0:3),maxdamini
121 INTEGER I,I1,II,J,NEL,NPTR,NPTS,NPTT,NLAY,L,IFAIL,ILAY,
122 . IR,IS,IT,IL,MLW, NUVAR,NFAIL,
124 . OFFSET,IHBE,NPG, MPT,IPT,IADR,IPMAT,
125 . isubstack,ithk,id_ply,iok,n1,n2,n3,n4,
126 . imat,iu(4),nfrac,ipos,itrimat,ns,iad2,idrape,nlay_fail,ilay0,submatlaw,
128 INTEGER PID(MVSIZ),MAT(MVSIZ),MATLY(MVSIZ*100),FAILG(100,MVSIZ),
130 . IOK_PART(MVSIZ),JJ(5),NPTG,IUVAR,
131 . IS_WRITTEN_VALUE(MVSIZ),IV,KFACE,NB_FACE,IADBUF,NUPARAM,ISUBMAT,IS_EULER
136 TYPE(G_BUFEL_) ,
POINTER :: GBUF
137 TYPE(L_BUFEL_) ,
POINTER :: LBUF
138 TYPE(BUF_LAY_) ,
POINTER :: BUFLY
139 TYPE(buf_fail_) ,
POINTER :: FBUF,FBUF1,FBUF2
140 TYPE(L_BUFEL_) ,
POINTER :: LBUF1,LBUF2,LBUF3,LBUF4
141 TYPE(BUF_MAT_) ,
POINTER :: MBUF
142 TYPE(L_BUFEL_DIR_) ,
POINTER :: LBUF_DIR
143 my_real,
DIMENSION(:),
POINTER :: UVAR
144 my_real,
DIMENSION(:) ,
POINTER :: uparam
156 2 mlw ,nel ,nft ,iad ,ity ,
157 3 npt ,jale ,ismstr ,jeul ,jturb ,
158 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
159 5 mid ,jpor ,jcvt ,jclose ,jplasol ,
160 6 irep ,iint ,igtyp ,israt ,isrot ,
161 7 icsen ,isorth ,isorthg ,ifailure,jsms )
167 isubstack = iparg(71,ng)
168 is_euler = iparg(11,ng)
180 is_written_value(i) = 0
185 IF (ity == 3.OR.ity == 7)
THEN
187 gbuf => elbuf_tab(ng)%GBUF
194 nptr = elbuf_tab(ng)%NPTR
195 npts = elbuf_tab(ng)%NPTS
196 nptt = elbuf_tab(ng)%NPTT
197 nlay = elbuf_tab(ng)%NLAY
198 idrape = elbuf_tab(ng)%IDRAPE
204 IF (ity == 3) offset = 0
205 IF (ity == 7) offset = numelc
207 IF(.NOT. called_from_python)
THEN
210 id_elem(offset+nft+i) = ixc(nixc,nft+i)
211 ity_elem(offset+nft+i) = 3
212 IF( h3d_part(ipartc(nft+i)) == 1) iok_part(i) = 1
213 ELSEIF (ity == 7)
THEN
214 id_elem(offset+nft+i) = ixtg(nixtg,nft+i)
215 ity_elem(offset+nft+i) = 7
216 IF( h3d_part(iparttg(nft+i)) == 1) iok_part(i) = 1
221 IF( igtyp == 10 .OR. igtyp == 11 .OR. igtyp == 16 .OR. igtyp == 17)
THEN
224 ELSEIF (igtyp == 51 .OR. igtyp == 52)
THEN
225 IF(layer_input == -2)
THEN
226 npt= elbuf_tab(ng)%BUFLY(1)%NPTT
227 ELSEIF(layer_input == -3)
THEN
228 npt= elbuf_tab(ng)%BUFLY(nlay)%NPTT
229 ELSEIF(layer_input > 0 .AND. layer_input <= nlay)
THEN
230 npt= elbuf_tab(ng)%BUFLY(layer_input)%NPTT
232 IF( ply_input > 0)
THEN
235 IF (igtyp == 51)
THEN
236 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
237 ELSEIF (igtyp == 52)
THEN
238 id_ply =
ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
240 IF (id_ply == ply_input )
THEN
241 npt= elbuf_tab(ng)%BUFLY(j)%NPTT
256 IF (keyword ==
'MDS') iuvar = imdsvar
257 IF (igtyp == 51 .OR. igtyp == 52)
THEN
258 IF (ilay == -2) ilay = 1
259 IF (ilay == -3) ilay = nlay
260 IF (ipt == -2) ipt = 1
261 IF (ipt == -3 .AND. ilay > 0 ) ipt =
max(1,elbuf_tab(ng)%BUFLY(ilay)%NPTT)
263 IF (ilay == -2) ilay = 1
264 IF (ilay == -3) ilay = nlay
265 IF (ipt == -2) ipt = 1
266 IF (ipt == -3) ipt =
max(1,npt)
271 IF(.NOT. called_from_python)
THEN
272 shell_stack(offset+nft+i) = zero
274 shell_scalar(1:mvsiz) = zero
280 IF (keyword ==
'MASS' .OR. keyword ==
'HOURGLASS' .OR. keyword ==
'ENER' .OR. keyword(1:4) ==
'EINT')
THEN
286 IF(igtyp /= 17 . and. igtyp /= 51 .AND. igtyp /= 52)
THEN
289 rho0(i) = pm(1,ixc(1,n))
290 thk0 = geo(1,ixc(6,n))
295 xx1 = x(1,n3)-d(1,n3)-x(1,n1)+d(1,n1)
296 yy1 = x(2,n3)-d(2,n3)-x(2,n1)+d(2,n1)
297 zz1 = x(3,n3)-d(3,n3)-x(3,n1)+d(3,n1)
298 xx2 = x(1,n4)-d(1,n4)-x(1,n2)+d(1,n2)
299 yy2 = x(2,n4)-d(2,n4)-x(2,n2)+d(2,n2)
300 zz2 = x(3,n4)-d(3,n4)-x(3,n2)+d(3,n2)
301 xx3 = yy1*zz2 - zz1*yy2
302 yy3 = zz1*xx2 - xx1*zz2
303 zz3 = xx1*yy2 - yy1*xx2
304 a0 = half*sqrt(xx3*xx3 + yy3*yy3 + zz3*zz3)
305 mass(i) = rho0(i)*thk0*a0
310 rho0(i) = pm(1,ixc(1,n))
311 thk0 = stack%GEO(1,isubstack)
316 xx1 = x(1,n3)-d(1,n3)-x(1,n1)+d(1,n1)
317 yy1 = x(2,n3)-d(2,n3)-x(2,n1)+d(2,n1)
318 zz1 = x(3,n3)-d(3,n3)-x(3,n1)+d(3,n1)
319 xx2 = x(1,n4)-d(1,n4)-x(1,n2)+d(1,n2)
320 yy2 = x(2,n4)-d(2,n4)-x(2,n2)+d(2,n2)
321 zz2 = x(3,n4)-d(3,n4)-x(3,n2)+d(3,n2)
322 xx3 = yy1*zz2 - zz1*yy2
323 yy3 = zz1*xx2 - xx1*zz2
324 zz3 = xx1*yy2 - yy1*xx2
325 a0 = half*sqrt(xx3*xx3 + yy3*yy3 + zz3*zz3)
326 mass(i) = rho0(i)*thk0*a0
334 IF(igtyp /= 17 . and. igtyp /= 51 .AND. igtyp /= 52)
THEN
337 rho0(i) = pm(1,ixtg(1,n))
338 thk0 = geo(1,ixtg(5,n))
342 xx1 = x(1,n2)-d(1,n2)-x(1,n1)+d(1,n1)
343 yy1 = x(2,n2)-d(2,n2)-x(2,n1)+d(2,n1)
344 zz1 = x(3,n2)-d(3,n2)-x(3,n1)+d(3,n1)
345 xx2 = x(1,n3)-d(1,n3)-x(1,n1)+d(1,n1)
346 yy2 = x(2,n3)-d(2,n3)-x(2,n1)+d(2,n1)
347 zz2 = x(3,n3)-d(3,n3)-x(3,n1)+d(3,n1)
348 xx3 = yy1*zz2 - zz1*yy2
349 yy3 = zz1*xx2 - xx1*zz2
350 zz3 = xx1*yy2 - yy1*xx2
351 a0 = half*sqrt(xx3*xx3 + yy3*yy3 + zz3*zz3)
352 mass(i) = rho0(i)*thk0*a0
357 rho0(i) = pm(1,ixtg(1,n))
358 thk0 = stack%GEO(1,isubstack)
362 xx1 = x(1,n2)-d(1,n2)-x(1,n1)+d(1,n1)
363 yy1 = x(2,n2)-d(2,n2)-x(2,n1)+d(2,n1)
364 zz1 = x(3,n2)-d(3,n2)-x(3,n1)+d(3,n1)
365 xx2 = x(1,n3)-d(1,n3)-x(1,n1)+d(1,n1)
366 yy2 = x(2,n3)-d(2,n3)-x(2,n1)+d(2,n1)
367 zz2 = x(3,n3)-d(3,n3)-x(3,n1)+d(3,n1)
368 xx3 = yy1*zz2 - zz1*yy2
370 zz3 = xx1*yy2 - yy1*xx2
371 a0 = half*sqrt(xx3*xx3 + yy3*yy3 + zz3*zz3)
372 mass(i) = rho0(i)*thk0*a0
380 IF (mlw == 0 .OR. mlw == 13)
THEN
383 ELSEIF (keyword ==
'MASS')
THEN
387 is_written_value(i) = 1
390 ELSEIF (keyword ==
'DENS')
THEN
396 value(i) = pm(1,ixc(1,n))
397 is_written_value(i) = 1
399 ELSEIF(ity == 7)
THEN
402 value(i) = pm(1,ixtg(1,n))
403 is_written_value(i) = 1
408 value(i) = multi_fvm%RHO(i + nft)
409 is_written_value(i) = 1
413 ELSEIF (keyword ==
'ENER')
THEN
417 value(i) = (gbuf%EINT(i)+ gbuf%EINT(i+nel))/
max(em20,mass(i))
418 is_written_value(i) = 1
422 value(i) = multi_fvm%EINT(i + nft) / multi_fvm%RHO(i + nft)
423 is_written_value(i) = 1
428 ELSEIF (keyword ==
'EINT')
THEN
432 value(i) = multi_fvm%EINT(i + nft) * gbuf%VOL(i)
433 is_written_value(i) = 1
439 value(i) = (gbuf%EINT(i) + gbuf%EINT(i+nel))
441 value(i) = gbuf%EINT(i)*gbuf%VOL(i)
443 is_written_value(i) = 1
448 ELSEIF (keyword ==
'EINTM')
THEN
453 value(i) = multi_fvm%EINT(i + nft) / multi_fvm%RHO(i + nft)
454 is_written_value(i) = 1
459 value(i) = (gbuf%EINT(i)+ gbuf%EINT(i+nel))/
max(em20,mass(i))
460 is_written_value(i) = 1
464 value(i) = gbuf%EINT(i)/gbuf%RHO(i)
465 is_written_value(i) = 1
471 ELSEIF (keyword ==
'EINTV')
THEN
475 value(i) = multi_fvm%EINT(i + nft
476 is_written_value(i) = 1
481 value(i) = (gbuf%EINT(i)+ gbuf%EINT(i+nel))*rho0(i)/mass(i)
482 is_written_value(i) = 1
486 value(i) = gbuf%EINT(i)
487 is_written_value(i) = 1
494 ELSEIF (keyword(1:4) ==
'ENTH')
THEN
498 pres(i) = multi_fvm%PRES(i + nft)
502 IF(gbuf%G_SIG > 0)
THEN
503 pres(i) = - (gbuf%SIG(jj(1) + i)+ gbuf%SIG(jj
510 IF(keyword ==
'ENTH')
THEN
513 value(i) = multi_fvm%EINT(i + nft) / multi_fvm%RHO(i + nft) + pres(i)*gbuf%VOL(i)
514 is_written_value(i) = 1
518 IF(gbuf%G_RHO > 0 .AND. gbuf%G_VOL > 0 )
THEN
520 value(i) = gbuf%EINT(i)/gbuf%RHO(i) + pres(i)*gbuf%VOL(i)
521 is_written_value(i) = 1
526 ELSEIF(keyword ==
'ENTHV')
THEN
529 value(i) = multi_fvm%EINT(i + nft) / multi_fvm%RHO(i + nft)/gbuf%VOL(i) + pres
530 is_written_value(i) = 1
534 if(gbuf%G_EINT > 0 .AND. gbuf%G_RHO > 0 .AND. gbuf%G_VOL > 0)
THEN
536 value(i) = gbuf%EINT(i)/gbuf%VOL(i)/gbuf%RHO(i) + pres(i)
537 is_written_value(i) = 1
542 ELSEIF(keyword ==
'ENTHM')
THEN
545 mass(i) = multi_fvm%RHO(i + nft)*gbuf%VOL(i)
546 value(i) = (multi_fvm%EINT(i + nft) / multi_fvm%RHO
547 is_written_value(i) = 1
551 IF(gbuf%G_RHO > 0 .AND. gbuf%G_VOL > 0 .AND. gbuf%G_EINT > 0)
THEN
553 mass(i)=gbuf%RHO(i)*gbuf%VOL(i)
554 value(i) = (gbuf%EINT(i)/gbuf%RHO(i) + pres(i)*gbuf%VOL(i))/mass(i)
555 is_written_value(i) = 1
562 ELSEIF(keyword ==
'P')
THEN
566 value(i) = multi_fvm%PRES(i + nft)
567 is_written_value(i) = 1
571 ELSEIF (keyword ==
'THICK')
THEN
575 value(i) = gbuf%THK(i)
576 is_written_value(i) = 1
581 value(i) = thke(nft+i)
582 is_written_value(i) = 1
584 ELSEIF (ity == 7)
THEN
586 value(i) = thke(nft+i+numelc)
587 is_written_value(i) = 1
592 ELSEIF (keyword ==
'VONM')
THEN
595 s1 = gbuf%FOR(jj(1)+i)
596 s2 = gbuf%FOR(jj(2)+i)
597 s12= gbuf%FOR(jj(3)+i)
598 vonm2= s1*s1 + s2*s2 - s1*s2 + three*s12*s12
599 value(i) = sqrt(vonm2)
600 is_written_value(i) = 1
603 ELSEIF (keyword ==
'DAM1')
THEN
613 IF (ilay == -1 .AND. ipt == -1 .AND.
THEN
619 nptt = elbuf_tab(ng)%BUFLY(n)%NPTT
623 lbuf => elbuf_tab(ng)%BUFLY(n)%LBUF(ir,is,it)
624 value(i) = value(i) + lbuf%DAM(jj(1)+i)/(nptt*nptr*npts)
629 value(i) = value(i) / nlay
630 is_written_value(i) = 1
634 ELSEIF (mpt > 0)
THEN
640 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,it)
641 value(i) = value(i) + lbuf%DAM(jj(1)+i)/(nptt*nptr*npts)
645 is_written_value(i) = 1
651 ELSEIF (iply > 0 .AND. ipt <= mpt .AND. ipt > 0)
THEN
653 nptt = elbuf_tab(ng)%BUFLY(j)%NPTT
655 IF (igtyp == 17 .OR. igtyp == 51)
THEN
656 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
657 ELSEIF (igtyp == 52)
THEN
658 id_ply =
ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
660 IF (id_ply == iply)
THEN
661 IF (ipt <= nptt)
THEN
665 lbuf => elbuf_tab(ng)%BUFLY(j)%LBUF(ir,is,ipt)
666 value(i) = value(i) + lbuf%DAM(jj(1)+i)/(nptr*npts)
669 is_written_value(i) = 1
677 ELSEIF (iply > 0 .AND. ipt == -1)
THEN
679 nptt = elbuf_tab(ng)%BUFLY(j)%NPTT
681 IF (igtyp == 17 .OR. igtyp == 51)
THEN
682 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
683 ELSEIF (igtyp == 52)
THEN
684 id_ply =
ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
686 IF (id_ply == iply)
THEN
691 lbuf => elbuf_tab(ng)%BUFLY(j)%LBUF(ir,is,it)
692 value(i) = value(i) + lbuf%DAM(jj(1)+i)/(nptr*npts*nptt
696 is_written_value(i) = 1
703 ELSEIF (ilay <= nlay .AND. ilay > 0)
THEN
705 IF (igtyp == 10 .OR. igtyp == 11 .OR. igtyp == 16)
THEN
709 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,1)
710 value(i) = value(i) + lbuf%DAM(jj(1)+i)/(nptr*npts)
713 is_written_value(i) = 1
719 ELSEIF (ipt <= npt .AND. ipt > 0)
THEN
720 IF (igtyp == 1 .OR. igtyp == 9)
THEN
724 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,ipt)
725 value(i) = value(i) + lbuf%DAM(jj(1)+i)/(nptr*npts)
728 is_written_value(i) = 1
734 ELSEIF(keyword ==
'DAM2')
THEN
744 IF (ilay == -1 .AND. ipt == -1 .AND. iply == -1)
THEN
750 nptt = elbuf_tab(ng)%BUFLY(n)%NPTT
754 lbuf => elbuf_tab(ng)%BUFLY(n)%LBUF(ir,is,it)
755 value(i) = value(i) + lbuf%DAM(jj(2)+i)/(nptt*nptr*npts)
760 value(i) = value(i) / nlay
761 is_written_value(i) = 1
765 ELSEIF (mpt > 0)
THEN
766 nptt = elbuf_tab(ng)%BUFLY(1)%NPTT
771 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,it)
772 value(i) = value(i) + lbuf%DAM(jj(2)+i)/(nptt*nptr*npts)
776 is_written_value(i) = 1
782 ELSEIF (iply > 0 .AND. ipt <= mpt .AND. ipt > 0)
THEN
784 nptt = elbuf_tab(ng)%BUFLY(j)%NPTT
786 IF (igtyp == 17 .OR. igtyp == 51)
THEN
787 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
788 ELSEIF (igtyp == 52)
THEN
789 id_ply =
ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
791 IF (id_ply == iply)
THEN
792 IF (ipt <= nptt)
THEN
796 lbuf => elbuf_tab(ng)%BUFLY(j)%LBUF(ir,is,ipt)
800 is_written_value(i) = 1
808 ELSEIF (iply > 0 .AND. ipt == -1)
THEN
812 IF (igtyp == 17 .OR. igtyp == 51)
THEN
813 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
814 ELSEIF (igtyp == 52)
THEN
815 id_ply =
ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
817 IF (id_ply == iply)
THEN
823 value(i) = value(i) + lbuf%DAM(jj(2)+i)/(nptr*npts*nptt)
827 is_written_value(i) = 1
834 ELSEIF (ilay <= nlay .AND. ilay > 0)
THEN
836 IF (igtyp == 10 .OR. igtyp == 11 .OR. igtyp == 16)
THEN
840 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,1)
841 value(i) = value(i) + lbuf%DAM(jj(2)+i)/(nptr*npts)
844 is_written_value(i) = 1
850 ELSEIF (ipt <= npt .AND. ipt > 0)
THEN
851 IF (igtyp == 1 .OR. igtyp == 9)
THEN
855 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,ipt)
859 is_written_value(i) = 1
865 ELSEIF(keyword ==
'DAM3')
THEN
875 IF (ilay == -1 .AND. ipt == -1 .AND. iply == -1)
THEN
881 nptt = elbuf_tab(ng)%BUFLY(n)%NPTT
885 lbuf => elbuf_tab(ng)%BUFLY(n)%LBUF(ir,is,it)
886 value(i) = value(i) + lbuf%DAM(jj(3)+i)/(nptt*nptr*npts)
891 value(i) = value(i) / nlay
892 is_written_value(i) = 1
896 ELSEIF (mpt > 0)
THEN
897 nptt = elbuf_tab(ng)%BUFLY(1)%NPTT
902 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,it)
903 value(i) = value(i) + lbuf%DAM(jj(3)+i)/(nptt*nptr*npts)
907 is_written_value(i) = 1
913 ELSEIF (iply > 0 .AND. ipt <= mpt .AND. ipt > 0)
THEN
915 nptt = elbuf_tab(ng)%BUFLY(j)%NPTT
917 IF (igtyp == 17 .OR. igtyp == 51)
THEN
918 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
919 ELSEIF (igtyp == 52)
THEN
920 id_ply =
ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
922 IF (id_ply == iply)
THEN
923 IF (ipt <= nptt)
THEN
927 lbuf => elbuf_tab(ng)%BUFLY(j)%LBUF(ir,is,ipt)
928 value(i) = value(i) + lbuf%DAM(jj(3)+i)/(nptr*npts)
931 is_written_value(i) = 1
941 nptt = elbuf_tab(ng)%BUFLY(j)%NPTT
943 IF (igtyp == 17 .OR. igtyp == 51)
THEN
945 ELSEIF (igtyp == 52)
THEN
948 IF (id_ply == iply)
THEN
953 lbuf => elbuf_tab(ng)%BUFLY(j)%LBUF(ir,is,it)
954 value(i) = value(i) + lbuf%DAM(jj(3)+i)/(nptr*npts*nptt)
958 is_written_value(i) = 1
965 ELSEIF (ilay <= nlay .AND. ilay > 0)
THEN
967 IF (igtyp == 10 .OR. igtyp == 11 .OR. igtyp == 16)
THEN
971 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,1)
972 value(i) = value(i) + lbuf%DAM(jj(3)+i)/(nptr*npts)
975 is_written_value(i) = 1
981 ELSEIF (ipt <= npt .AND. ipt > 0)
THEN
982 IF (igtyp == 1 .OR. igtyp == 9)
THEN
986 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,ipt)
987 value(i) = value(i) + lbuf%DAM(jj(3)+i)/(nptr*npts)
990 is_written_value(i) = 1
996 ELSEIF (keyword ==
'SIGX')
THEN
999 value(i) = gbuf%FOR(jj(1)+i)
1000 is_written_value(i) = 1
1003 ELSEIF (keyword ==
'SIGY')
THEN
1006 value(i) = gbuf%FOR(jj(2)+i)
1007 is_written_value(i) = 1
1010 ELSEIF (keyword ==
'SIGZ')
THEN
1012 IF(ihbe == 11 .AND. ipinch == 1)
THEN
1016 value(i) = value(i) + fourth*gbuf%FORPGPINCH(nel*(ipg-1)+i)
1018 is_written_value(i) = 1
1022 ELSEIF (keyword ==
'SIGXY')
THEN
1025 value(i) = gbuf%FOR(jj(3)+i)
1026 is_written_value(i) = 1
1029 ELSEIF (keyword ==
'SIGYZ')
THEN
1032 value(i) = gbuf%FOR(jj(4)+i)
1033 is_written_value(i) = 1
1036 ELSEIF (keyword ==
'SIGZX')
THEN
1039 value(i) = gbuf%FOR(jj(5)+i)
1040 is_written_value(i) = 1
1043 ELSEIF (keyword ==
'HOURGLASS')
THEN
1047 value(i) = ehour(nft+i+numels)/
max(em20,mass(i))
1048 is_written_value(i) = 1
1052 ELSEIF (keyword ==
'EPSD')
THEN
1054 value(1:nel) = gbuf%EPSD(1:nel)
1055 is_written_value(1:nel) = 1
1057 ELSEIF(keyword(1:9) ==
'M151VFRAC')
THEN
1059 IF (mlw == 151)
THEN
1060 READ(keyword,
'(A9,I10)') buff, imat
1061 IF (imat > 0 .AND. imat <= nlay)
THEN
1062 gbuf => elbuf_tab(ng)%GBUF
1063 lbuf => elbuf_tab(ng)%BUFLY(imat)%LBUF(1,1,1)
1065 value(i) = lbuf%VOL(i) / gbuf%VOL(i)
1066 is_written_value(i) = 1
1071 ELSEIF(keyword(1:8) ==
'M151ENER')
THEN
1073 IF (mlw == 151)
THEN
1074 READ(keyword,
'(A8,I10)') buff, imat
1075 IF (imat > 0 .AND. imat <= nlay)
THEN
1077 value(i) = multi_fvm%PHASE_EINT(imat, i + nft) /
1078 . multi_fvm%PHASE_RHO(imat, i + nft)
1079 is_written_value(i) = 1
1084 ELSEIF(keyword(1:8) ==
'M151PRES')
THEN
1086 IF (mlw == 151)
THEN
1087 READ(keyword,
'(A8,I10)') buff, imat
1088 IF (imat > 0 .AND. imat <= nlay)
THEN
1090 value(i) = multi_fvm%PHASE_PRES(imat, i + nft)
1091 is_written_value(i) = 1
1096 ELSEIF(keyword(1:8) ==
'M151DENS')
THEN
1098 IF (mlw == 151)
THEN
1099 READ(keyword,
'(A8,I10)') buff, imat
1100 IF (imat > 0 .AND. imat <= nlay)
THEN
1102 value(i) = multi_fvm%PHASE_RHO(imat, i + nft)
1103 is_written_value(i) = 1
1108 ELSEIF(keyword ==
'THIN')
THEN
1111 value(i) = hundred *(gbuf%THK_I(i)-gbuf%THK(i))/gbuf%THK_I(i)
1112 is_written_value(i) = 1
1115 ELSEIF (keyword ==
'USER' .OR. keyword ==
'MDS')
THEN
1119 IF(ipt == -1 .AND. ilay == -1 .AND. iply == -1 .AND. iuvar > 0 )
THEN
1120 IF (mlw==29 .OR. mlw==30 .OR. mlw==31 .OR. mlw>=33)
THEN
1123 il = iabs(nlay)/2 + 1
1124 npt = elbuf_tab(ng)%BUFLY(il)%NPTT
1125 ipt = iabs(npt)/2 + 1
1128 ipt = iabs(npt)/2 + 1
1130 imat = elbuf_tab(ng)%BUFLY(il)%IMAT
1131 mat_id = matparam(imat)%MAT_ID
1132 nuvar = elbuf_tab(ng)%BUFLY(il)%NVAR_MAT
1134 IF(keyword ==
'USER') user_ok = 1
1136 IF(mat_id == mds_matid(idmds))user_ok = 1
1139 IF(user_ok == 1)
THEN
1140 IF(iuvar <= nuvar)
THEN
1141 IF (mlw == 58 .or. mlw == 158)
THEN
1144 uvar=>elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,ipt)%VAR
1145 IF(iuvar==4.OR.iuvar==5)
THEN
1147 value(i) = value(i) + log(uvar(i1 + i)+one)/npg
1148 is_written_value(i) = 1
1152 value(i) = value(i) + uvar(i1 + i)/npg
1153 is_written_value(i) = 1
1161 uvar=>elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,ipt)%VAR
1163 value(i) = value(i) + uvar(i1 + i)/npg
1164 is_written_value(i) = 1
1173 ELSEIF ( iply > 0 .AND. ipt <= mpt .AND. ipt > 0 .AND. iuvar >
THEN
1176 nuvar = elbuf_tab(ng)%BUFLY(j)%NVAR_MAT
1177 IF(iuvar <= nuvar)
THEN
1179 IF (igtyp == 17 .OR. igtyp == 51)
THEN
1180 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
1181 ELSEIF (igtyp == 52)
THEN
1182 id_ply =
ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
1185 IF (id_ply == iply )
THEN
1186 imat = elbuf_tab(ng)%BUFLY(j)%IMAT
1187 mat_id = matparam(imat)%MAT_ID
1189 IF(keyword ==
'USER') user_ok = 1
1191 IF(mat_id == mds_matid(idmds))user_ok = 1
1194 IF(user_ok == 1)
THEN
1195 bufly => elbuf_tab(ng)%BUFLY(j)
1196 IF (igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52 )
THEN
1198 IF( ipt <= nptt)
THEN
1202 uvar=>elbuf_tab(ng)%BUFLY(j)%MAT(ir,is,ipt)%VAR
1204 value(i) = value(i) + uvar(i1 + i)/npg
1205 is_written_value(i) = 1
1210 uvar=>elbuf_tab(ng)%BUFLY(j)%MAT(1,1,ipt)%VAR
1212 value(i) = uvar(i1 + i)
1213 is_written_value(i) = 1
1223 ELSEIF ( iply > 0 .AND. ipt ==-1 .AND. iuvar > 0)
THEN
1226 nuvar = elbuf_tab(ng)%BUFLY(j)%NVAR_MAT
1227 IF(iuvar <= nuvar)
THEN
1229 IF (igtyp == 17 .OR. igtyp == 51)
THEN
1230 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
1231 ELSEIF (igtyp == 52)
THEN
1232 id_ply =
ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
1235 IF (id_ply == iply )
THEN
1236 bufly => elbuf_tab(ng)%BUFLY(j)
1237 imat = elbuf_tab(ng)%BUFLY(j)%IMAT
1238 mat_id = matparam(imat)%MAT_ID
1240 IF(keyword ==
'USER') user_ok = 1
1242 IF(mat_id == mds_matid(idmds))user_ok = 1
1245 IF(user_ok == 1)
THEN
1246 IF (igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52 )
THEN
1252 uvar=>elbuf_tab(ng)%BUFLY(j)%MAT(ir,is,ipt)%VAR
1254 value(i) = value(i) + uvar(i1 + i) / (npg * nptt)
1255 is_written_value(i) = 1
1260 uvar=>elbuf_tab(ng)%BUFLY(j)%MAT(1,1,ipt)%VAR
1262 value(i) = value(i) + uvar(i1 + i) / nptt
1263 is_written_value(i) = 1
1273 ELSEIF ( ilay <= nlay .AND. ilay > 0 .AND. ipt <= mpt .AND. ipt > 0 .AND.
THEN
1274 IF(iuvar <= nuvar)
THEN
1275 IF (igtyp == 51 .OR. igtyp == 52)
THEN
1276 nuvar = elbuf_tab(ng)%BUFLY(ilay)%NVAR_MAT
1277 bufly => elbuf_tab(ng)%BUFLY(ilay)
1278 imat = elbuf_tab(ng)%BUFLY(ilay)%IMAT
1279 mat_id = matparam(imat)%MAT_ID
1281 IF(keyword ==
'USER') user_ok = 1
1283 IF(mat_id == mds_matid(idmds))user_ok = 1
1286 IF(user_ok == 1)
THEN
1289 uvar=>elbuf_tab(ng)%BUFLY(ilay)%MAT(ir,is,ipt)%VAR
1291 value(i) = value(i) + uvar(i1 + i)/npg
1292 is_written_value(i) = 1
1300 ELSEIF ( ilay <= nlay .AND. ilay > 0 .AND. iuvar >
THEN
1301 nuvar = elbuf_tab(ng)%BUFLY(ilay)%NVAR_MAT
1302 imat = elbuf_tab(ng)%BUFLY(ilay)%IMAT
1303 mat_id = matparam(imat)%MAT_ID
1305 IF(keyword ==
'USER') user_ok = 1
1307 IF(mat_id == mds_matid(idmds))user_ok = 1
1310 IF(user_ok == 1)
THEN
1311 IF(iuvar <= nuvar)
THEN
1312 IF (igtyp == 10 .OR. igtyp == 11 .OR. igtyp == 16 .OR. igtyp == 17)
THEN
1313 bufly => elbuf_tab(ng)%BUFLY(ilay)
1316 uvar=>elbuf_tab(ng)%BUFLY(ilay)%MAT(ir,is,1)%VAR
1318 value(i) = value(i) + uvar(i1 + i)/npg
1319 is_written_value(i) = 1
1323 ELSEIF (igtyp == 51 .OR. igtyp == 52)
THEN
1324 bufly => elbuf_tab(ng)%BUFLY(ilay)
1328 uvar=>elbuf_tab(ng)%BUFLY(ilay)%MAT(ir,is,it)%VAR
1330 value(i) = value(i) + uvar(i1 + i)/(npg * nptt)
1331 is_written_value(i) = 1
1340 ELSEIF ( ipt <= mpt .AND. ipt > 0 .AND. iuvar > 0)
THEN
1341 IF (igtyp == 1 .OR. igtyp == 9)
THEN
1342 nuvar = elbuf_tab(ng)%BUFLY(1)%NVAR_MAT
1343 bufly => elbuf_tab(ng)%BUFLY(1)
1344 IF(iuvar <= nuvar)
THEN
1347 uvar=>elbuf_tab(ng)%BUFLY(1)%MAT(ir,is,ipt)%VAR
1349 value(i) = value(i) + uvar(i1 + i)/npg
1350 is_written_value(i) = 1
1358 ELSEIF( keyword ==
'PHI' )
THEN
1361 IF (ilay <= nlay .AND. ilay > 0 .AND. iply == -1)
THEN
1362 bufly => elbuf_tab(ng)%BUFLY(ilay)
1364 IF (igtyp == 9 .OR. igtyp == 10 .OR.igtyp == 11 .OR.
1365 . igtyp == 16 .OR. igtyp == 17 .OR. igtyp == 51 .OR.
1366 . igtyp == 52 )
THEN
1367 IF (mlw /= 0 .AND. mlw /= 13)
THEN
1368 IF(idrape > 0 .AND. (igtyp == 51 .OR. igtyp == 52))
THEN
1369 IF(ipt <= bufly%NPTT .AND. ipt > 0 )
THEN
1370 lbuf_dir => elbuf_tab(ng)%BUFLY(ilay)%LBUF_DIR(ipt)
1372 lbuf_dir => elbuf_tab(ng)%BUFLY(ilay)%LBUF_DIR(1)
1376 x21 = x(1,ixc(3,n))-x(1,ixc(2,n
1377 x32 = x(1,ixc(4,n))-x(1,ixc(3,n))
1378 x34 = x(1,ixc(4,n))-x(1,ixc(5,n))
1379 x41 = x(1,ixc(5,n))-x(1,ixc(2,n))
1380 y21 = x(2,ixc(3,n))-x(2,ixc(2,n))
1382 y34 = x(2,ixc(4,n))-x(2,ixc(5,n))
1383 y41 = x(2,ixc(5,n))-x(2,ixc(2,n))
1385 z21 = x(3,ixc(3,n))-x(3,ixc(2,n))
1386 z32 = x(3,ixc(4,n))-x(3,ixc(3,n))
1387 z34 = x(3,ixc(4,n))-x(3,ixc(5,n))
1388 z41 = x(3,ixc(5,n))-x(3,ixc(2,n))
1398 e3x = e1y*e2z-e1z*e2y
1399 e3y = e1z*e2x-e1x*e2z
1400 e3z = e1x*e2y-e1y*e2x
1409 IF (ishfram == 0 )
THEN
1411 suma = e3x*e3x+e3y*e3y+e3z*e3z
1412 suma = one /
max(sqrt(suma),em20)
1417 s1 = e1x*e1x+e1y*e1y+e1z*e1z
1418 s2 = e2x*e2x+e2y*e2y+e2z*e2z
1420 e1x = e1x + (e2y*e3z-e2z*e3y)*suma
1421 e1y = e1y + (e2z*e3x-e2x*e3z)*suma
1422 e1z = e1z + (e2x*e3y-e2y*e3x)*suma
1424 suma = e1x*e1x+e1y*e1y+e1z*e1z
1425 suma = one /
max(sqrt(suma),em20)
1430 e2x = e3y * e1z - e3z * e1y
1431 e2y = e3z * e1x - e3x * e1z
1432 e2z = e3x * e1y - e3y * e1x
1433 ELSEIF (ishfram == 2)
THEN
1435 suma = e2x*e2x+e2y*e2y+e2z*e2z
1436 e1x = e1x*suma + e2y*e3z-e2z*e3y
1437 e1y = e1y*suma + e2z*e3x-e2x*e3z
1438 e1z = e1z*suma + e2x*e3y-e2y*e3x
1439 suma = e1x*e1x+e1y*e1y+e1z*e1z
1440 suma = one/
max(sqrt(suma),em20)
1445 suma = e3x*e3x+e3y*e3y+e3z*e3z
1446 suma = one /
max(sqrt(suma),em20)
1451 e2x = e3y*e1z-e3z*e1y
1452 e2y = e3z*e1x-e3x*e1z
1453 e2z = e3x*e1y-e3y*e1x
1454 suma = e2x*e2x+e2y*e2y+e2z*e2z
1455 suma = one/
max(sqrt(suma),em20)
1461 aa = lbuf_dir%DIRA(i)
1462 bb = lbuf_dir%DIRA(i+nel)
1466 vr = v1*e1x+ v2*e1y + v3*e1z
1467 vs = v1*e2x+ v2*e2y + v3*e2z
1468 suma=sqrt(vr*vr + vs*vs)
1472 dir1_1 = lbuf_dir%DIRA(i)
1473 dir1_2 = lbuf_dir%DIRA(i+nel)
1476 phi =(hundred80/pi)*atan2(dir1_2,dir1_1)
1477 err = (abs(phi) - ninety)/ninety
1479 IF(abs(err) < em02) value(i) = sign(ninety,phi)
1480 IF(abs(value(i)) < one) value(i) = zero
1481 is_written_value(i) = 1
1486 x21 = x(1,ixc(3,n))-x(1,ixc(2,n))
1487 x32 = x(1,ixc(4,n))-x(1,ixc(3,n))
1488 x34 = x(1,ixc(4,n))-x(1,ixc(5,n))
1489 x41 = x(1,ixc(5,n))-x(1,ixc(2,n))
1491 y21 = x(2,ixc(3,n))-x(2,ixc(2,n))
1492 y32 = x(2,ixc(4,n))-x(2,ixc(3,n))
1493 y34 = x(2,ixc(4,n))-x(2,ixc(5,n))
1494 y41 = x(2,ixc(5,n))-x(2,ixc(2,n))
1496 z21 = x(3,ixc(3,n))-x(3,ixc(2,n))
1497 z32 = x(3,ixc(4,n))-x(3,ixc(3,n))
1498 z34 = x(3,ixc(4,n))-x(3,ixc(5,n))
1499 z41 = x(3,ixc(5,n))-x(3,ixc(2,n))
1509 e3x = e1y*e2z-e1z*e2y
1510 e3y = e1z*e2x-e1x*e2z
1511 e3z = e1x*e2y-e1y*e2x
1520 IF (ishfram == 0 .OR. igtyp == 16 )
THEN
1522 suma = e3x*e3x+e3y*e3y+e3z*e3z
1523 suma = one /
max(sqrt(suma),em20)
1528 s1 = e1x*e1x+e1y*e1y+e1z*e1z
1529 s2 = e2x*e2x+e2y*e2y+e2z*e2z
1531 e1x = e1x + (e2y*e3z-e2z*e3y)*suma
1532 e1y = e1y + (e2z*e3x-e2x*e3z)*suma
1533 e1z = e1z + (e2x*e3y-e2y*e3x)*suma
1535 suma = e1x*e1x+e1y*e1y+e1z*e1z
1536 suma = one /
max(sqrt(suma),em20)
1541 e2x = e3y * e1z - e3z * e1y
1542 e2y = e3z * e1x - e3x * e1z
1543 e2z = e3x * e1y - e3y * e1x
1544 ELSEIF (ishfram == 2)
THEN
1546 suma = e2x*e2x+e2y*e2y+e2z*e2z
1547 e1x = e1x*suma + e2y*e3z-e2z*e3y
1548 e1y = e1y*suma + e2z*e3x-e2x*e3z
1549 e1z = e1z*suma + e2x*e3y-e2y*e3x
1550 suma = e1x*e1x+e1y*e1y+e1z*e1z
1551 suma = one/
max(sqrt(suma),em20)
1556 suma = e3x*e3x+e3y*e3y+e3z*e3z
1557 suma = one /
max(sqrt(suma),em20)
1562 e2x = e3y*e1z-e3z*e1y
1563 e2y = e3z*e1x-e3x*e1z
1564 e2z = e3x*e1y-e3y*e1x
1565 suma = e2x*e2x+e2y*e2y+e2z*e2z
1566 suma = one/
max(sqrt(suma),em20)
1573 bb = bufly%DIRA(i+nel)
1577 vr = v1*e1x+ v2*e1y + v3*e1z
1578 vs = v1*e2x+ v2*e2y + v3*e2z
1579 suma=sqrt(vr*vr + vs*vs)
1583 dir1_1 = bufly%DIRA(i)
1584 dir1_2 = bufly%DIRA(i+nel)
1586 phi =(hundred80/pi)*atan2(dir1_2,dir1_1)
1587 err = (abs(phi) - ninety)/ninety
1589 IF(abs(err) < em02) value(i) = sign(ninety,phi)
1590 IF(abs(value(i)) < one) value(i) = zero
1591 is_written_value(i) = 1
1597 ELSEIF (ity == 7)
THEN
1599 IF (igtyp == 9 .OR. igtyp == 10 .OR. igtyp == 11 .OR.
1600 . igtyp == 16 .OR. igtyp == 17 .OR. igtyp == 51 .OR.
1601 . igtyp == 52 )
THEN
1602 IF (mlw /= 0 .AND. mlw /= 13)
THEN
1603 IF(idrape > 0 . and. (igtyp == 51 .OR. igtyp == 52))
THEN
1604 IF(ipt <= bufly%NPTT .AND. ipt > 0)
THEN
1605 lbuf_dir => elbuf_tab(ng)%BUFLY(ilay)%LBUF_DIR(ipt)
1607 lbuf_dir => elbuf_tab(ng)%BUFLY(ilay)%LBUF_DIR(1)
1611 x21 = x(1,ixtg(3,n))-x(1,ixtg(2,n))
1612 x31 = x(1,ixtg(4,n))-x(1,ixtg(2,n))
1613 x32 = x(1,ixtg(4,n))-x(1,ixtg(3,n))
1615 y21 = x(2,ixtg(3,n))-x(2,ixtg(2,n))
1616 y31 = x(2,ixtg(4,n))-x(2,ixtg(2,n))
1617 y32 = x(2,ixtg(4,n))-x(2,ixtg(3,n))
1619 z21 = x(3,ixtg(3,n))-x(3,ixtg(2,n))
1620 z31 = x(3,ixtg(4,n))-x(3,ixtg(2,n))
1621 z32 = x(3,ixtg(4,n))-x(3,ixtg(3,n))
1633 x2l = sqrt(e1x*e1x+e1y*e1y+e1z*e1z)
1641 sum_ = sqrt(e3x*e3x+e3y*e3y+e3z*e3z)
1649 sum_ = sqrt(e2x*e2x+e2y*e2y+e2z*e2z)
1654 aa = lbuf_dir%DIRA(i)
1655 bb = lbuf_dir%DIRA(i+nel)
1656 v1 = aa*e11 + bb*e21
1657 v2 = aa*e12 + bb*e22
1658 v3 = aa*e13 + bb*e23
1659 vr = v1*e1x + v2*e1y + v3*e1z
1660 vs = v1*e2x + v2*e2y + v3*e2z
1661 suma=sqrt(vr*vr + vs*vs)
1665 dir1_1 = lbuf_dir%DIRA(i)
1666 dir1_2 = lbuf_dir%DIRA(i+nel)
1668 phi =(hundred80/pi)*atan2(dir1_2,dir1_1)
1669 err = (abs(phi) - ninety)/ninety
1671 IF(abs(err) < em02) value(i) = sign(ninety,phi)
1672 IF(abs(value(i)) < one) value(i) = zero
1673 is_written_value(i) = 1
1678 x21 = x(1,ixtg(3,n))-x(1,ixtg(2,n))
1679 x31 = x(1,ixtg(4,n))-x(1,ixtg(2,n))
1680 x32 = x(1,ixtg(4,n))-x(1,ixtg(3,n))
1682 y21 = x(2,ixtg(3,n))-x(2,ixtg(2,n))
1683 y31 = x(2,ixtg(4,n))-x(2,ixtg(2,n))
1684 y32 = x(2,ixtg(4,n))-x(2,ixtg(3,n))
1686 z21 = x(3,ixtg(3,n))-x(3,ixtg(2,n))
1687 z31 = x(3,ixtg(4,n))-x(3,ixtg(2,n))
1688 z32 = x(3,ixtg(4,n))-x(3,ixtg(3,n))
1700 x2l = sqrt(e1x*e1x+e1y*e1y+e1z*e1z)
1708 sum_ = sqrt(e3x*e3x+e3y*e3y+e3z*e3z)
1716 sum_ = sqrt(e2x*e2x+e2y*e2y+e2z*e2z)
1722 bb = bufly%DIRA(i+nel)
1723 v1 = aa*e11 + bb*e21
1724 v2 = aa*e12 + bb*e22
1725 v3 = aa*e13 + bb*e23
1726 vr = v1*e1x + v2*e1y + v3
1727 vs = v1*e2x + v2*e2y + v3*e2z
1728 suma=sqrt(vr*vr + vs*vs)
1732 dir1_1 = bufly%DIRA(i)
1733 dir1_2 = bufly%DIRA(i+nel
1735 phi =(hundred80/pi)*atan2(dir1_2,dir1_1)
1736 err = (abs(phi) - ninety)/ninety
1738 IF(abs(err) < em02) value(i) = sign(ninety,phi)
1739 IF(abs(value(i)) < one) value(i) = zero
1740 is_written_value(i) = 1
1747 ELSEIF (iply > 0)
THEN
1750 IF (igtyp == 17 .OR. igtyp == 51)
THEN
1751 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
1752 ELSEIF (igtyp == 52)
THEN
1753 id_ply =
ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
1756 IF (id_ply == iply )
THEN
1757 bufly => elbuf_tab(ng)%BUFLY(j)
1759 IF (igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52 )
THEN
1760 IF (mlw /= 0 .AND. mlw /= 13)
THEN
1761 IF(idrape > 0 .AND. (igtyp == 51 .OR. igtyp == 52))
THEN
1762 IF(ipt <= bufly%NPTT .AND. ipt > 0)
THEN
1763 lbuf_dir => elbuf_tab(ng
1765 lbuf_dir => elbuf_tab(ng)%BUFLY(j)%LBUF_DIR(1)
1769 x21 = x(1,ixc(3,n))-x(1,ixc(2,n))
1770 x32 = x(1,ixc(4,n))-x(1,ixc(3,n))
1771 x34 = x(1,ixc(4,n))-x(1,ixc(5,n))
1772 x41 = x(1,ixc(5,n))-x(1,ixc(2,n))
1774 y21 = x(2,ixc(3,n))-x(2,ixc(2,n))
1775 y32 = x(2,ixc(4,n))-x(2,ixc(3,n))
1776 y34 = x(2,ixc(4,n))-x(2,ixc(5,n))
1777 y41 = x(2,ixc(5,n))-x(2,ixc(2,n))
1779 z21 = x(3,ixc(3,n))-x(3,ixc(2,n
1780 z32 = x(3,ixc(4,n))-x(3,ixc(3,n))
1781 z34 = x(3,ixc(4,n))-x(3,ixc(5,n))
1782 z41 = x(3,ixc(5,n))-x(3,ixc(2,n))
1792 e3x = e1y*e2z-e1z*e2y
1793 e3y = e1z*e2x-e1x*e2z
1794 e3z = e1x*e2y-e1y*e2x
1804 IF (ishfram == 0 )
THEN
1806 suma = e3x*e3x+e3y*e3y+e3z*e3z
1807 suma = one /
max(sqrt(suma),em20)
1812 s1 = e1x*e1x+e1y*e1y+e1z*e1z
1813 s2 = e2x*e2x+e2y*e2y+e2z*e2z
1815 e1x = e1x + (e2y*e3z-e2z*e3y)*suma
1816 e1y = e1y + (e2z*e3x-e2x*e3z)*suma
1817 e1z = e1z + (e2x*e3y-e2y*e3x)*suma
1819 suma = e1x*e1x+e1y*e1y+e1z*e1z
1820 suma = one /
max(sqrt(suma),em20)
1825 e2x = e3y * e1z - e3z * e1y
1826 e2y = e3z * e1x - e3x * e1z
1827 e2z = e3x * e1y - e3y * e1x
1828 ELSEIF (ishfram == 2)
THEN
1830 suma = e2x*e2x+e2y*e2y+e2z*e2z
1831 e1x = e1x*suma + e2y*e3z-e2z*e3y
1832 e1y = e1y*suma + e2z
1833 e1z = e1z*suma + e2x*e3y-e2y*e3x
1834 suma = e1x*e1x+e1y*e1y+e1z*e1z
1835 suma = one/
max(sqrt(suma),em20)
1840 suma = e3x*e3x+e3y*e3y+e3z*e3z
1841 suma = one /
max(sqrt(suma),em20)
1846 e2x = e3y*e1z-e3z*e1y
1847 e2y = e3z*e1x-e3x*e1z
1848 e2z = e3x*e1y-e3y*e1x
1849 suma = e2x*e2x+e2y*e2y+e2z*e2z
1850 suma = one/
max(sqrt(suma),em20)
1856 aa = lbuf_dir%DIRA(i)
1857 bb = lbuf_dir%DIRA(i+nel)
1861 vr = v1*e1x+ v2*e1y + v3*e1z
1862 vs = v1*e2x+ v2*e2y + v3*e2z
1863 suma=sqrt(vr*vr + vs*vs)
1867 dir1_1 = lbuf_dir%DIRA(i)
1868 dir1_2 = lbuf_dir%DIRA(i+nel)
1871 phi =(hundred80/pi)*atan2(dir1_2,dir1_1)
1872 err = (abs(phi) - ninety)/ninety
1874 IF(abs(err) < em02) value(i) = sign(ninety,phi)
1875 IF(abs(value(i)) < one) value(i) = zero
1876 is_written_value(i) = 1
1881 x21 = x(1,ixc(3,n))-x(1,ixc(2,n))
1882 x32 = x(1,ixc(4,n))-x(1,ixc(3,n))
1883 x34 = x(1,ixc(4,n))-x(1,ixc(5,n))
1884 x41 = x(1,ixc(5,n))-x(1,ixc(2,n))
1886 y21 = x(2,ixc(3,n))-x(2,ixc(2,n))
1887 y32 = x(2,ixc(4,n))-x(2,ixc(3,n))
1888 y34 = x(2,ixc(4,n))-x(2,ixc(5,n))
1889 y41 = x(2,ixc(5,n))-x(2,ixc(2,n))
1891 z21 = x(3,ixc(3,n))-x(3,ixc(2,n))
1892 z32 = x(3,ixc(4,n))-x(3,ixc(3,n))
1893 z34 = x(3,ixc(4,n))-x(3,ixc(5,n))
1894 z41 = x(3,ixc(5,n))-x(3,ixc(2,n))
1904 e3x = e1y*e2z-e1z*e2y
1905 e3y = e1z*e2x-e1x*e2z
1906 e3z = e1x*e2y-e1y*e2x
1916 IF (ishfram == 0 .OR. igtyp == 16 )
THEN
1918 suma = e3x*e3x+e3y*e3y+e3z*e3z
1919 suma = one /
max(sqrt(suma),em20)
1924 s1 = e1x*e1x+e1y*e1y+e1z*e1z
1925 s2 = e2x*e2x+e2y*e2y+e2z*e2z
1927 e1x = e1x + (e2y*e3z-e2z*e3y)*suma
1928 e1y = e1y + (e2z*e3x-e2x*e3z)*suma
1929 e1z = e1z + (e2x*e3y-e2y*e3x)*suma
1931 suma = e1x*e1x+e1y*e1y+e1z*e1z
1932 suma = one /
max(sqrt(suma),em20)
1937 e2x = e3y * e1z - e3z * e1y
1938 e2y = e3z * e1x - e3x * e1z
1939 e2z = e3x * e1y - e3y * e1x
1940 ELSEIF (ishfram == 2)
THEN
1942 suma = e2x*e2x+e2y*e2y+e2z*e2z
1943 e1x = e1x*suma + e2y*e3z-e2z*e3y
1944 e1y = e1y*suma + e2z*e3x-e2x*e3z
1945 e1z = e1z*suma + e2x*e3y-e2y*e3x
1946 suma = e1x*e1x+e1y*e1y+e1z*e1z
1947 suma = one/
max(sqrt(suma),em20)
1952 suma = e3x*e3x+e3y*e3y+e3z*e3z
1953 suma = one /
max(sqrt(suma),em20)
1958 e2x = e3y*e1z-e3z*e1y
1959 e2y = e3z*e1x-e3x*e1z
1960 e2z = e3x*e1y-e3y*e1x
1961 suma = e2x*e2x+e2y*e2y+e2z*e2z
1962 suma = one/
max(sqrt(suma),em20)
1969 bb = bufly%DIRA(i+nel)
1973 vr = v1*e1x+ v2*e1y + v3*e1z
1974 vs = v1*e2x+ v2*e2y + v3*e2z
1975 suma=sqrt(vr*vr + vs*vs)
1979 dir1_1 = bufly%DIRA(i)
1980 dir1_2 = bufly%DIRA(i+nel)
1983 phi =(hundred80/pi)*atan2(dir1_2,dir1_1)
1984 err = (abs(phi) - ninety)/ninety
1986 IF(abs(err) < em02) value(i) = sign(ninety,phi)
1987 IF(abs(value(i)) < one) value(i) = zero
1988 is_written_value(i) = 1
1994 ELSEIF (ity == 7)
THEN
1995 IF (igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52 )
THEN
1996 IF (mlw /= 0 .AND. mlw /= 13)
THEN
1997 IF(idrape > 0 .AND. (igtyp == 51 .OR. igtyp == 52))
THEN
1998 IF(ipt <= bufly%NPTT .AND. ipt > 0 )
THEN
1999 lbuf_dir => elbuf_tab(ng)%BUFLY(j)%LBUF_DIR(ipt)
2001 lbuf_dir => elbuf_tab(ng)%BUFLY(j)%LBUF_DIR(1)
2005 x21 = x(1,ixtg(3,n))-x(1,ixtg
2006 x31 = x(1,ixtg(4,n))-x(1,ixtg(2,n))
2007 x32 = x(1,ixtg(4,n))-x(1,ixtg(3,n))
2009 y21 = x(2,ixtg(3,n))-x(2,ixtg(2,n
2010 y31 = x(2,ixtg(4,n))-x(2,ixtg(2,n))
2011 y32 = x(2,ixtg(4,n))-x(2,ixtg(3,n))
2013 z21 = x(3,ixtg(3,n))-x(3,ixtg(2,n))
2014 z31 = x(3,ixtg(4,n))-x(3,ixtg(2,n))
2015 z32 = x(3,ixtg(4,n))-x(3,ixtg(3,n))
2027 x2l = sqrt(e1x*e1x+e1y*e1y+e1z*e1z)
2035 sum_ = sqrt(e3x*e3x+e3y*e3y+e3z*e3z)
2043 sum_ = sqrt(e2x*e2x+e2y*e2y+e2z*e2z)
2048 dir1_1 = lbuf_dir%DIRA(i)
2049 dir1_2 = lbuf_dir%DIRA(i+nel)
2050 v1 = aa*e11 + bb*e21
2051 v2 = aa*e12 + bb*e22
2052 v3 = aa*e13 + bb*e23
2053 vr = v1*e1x + v2*e1y + v3*e1z
2054 vs = v1*e2x + v2*e2y + v3*e2z
2055 suma=sqrt(vr*vr + vs*vs)
2059 dir1_1 = lbuf_dir%DIRA(i)
2060 dir1_2 = lbuf_dir%DIRA(i+nel)
2062 phi =(hundred80/pi)*atan2(dir1_2,dir1_1)
2063 err = (abs(phi) - ninety)/ninety
2065 IF(abs(err) < em02) value(i) = sign(ninety,phi)
2066 IF(abs(value(i)) < one) value(i) = zero
2067 is_written_value(i) = 1
2072 x21 = x(1,ixtg(3,n))-x(1,ixtg(2,n))
2073 x31 = x(1,ixtg(4,n))-x(1,ixtg(2,n))
2074 x32 = x(1,ixtg(4,n))-x(1,ixtg(3,n))
2076 y21 = x(2,ixtg(3,n))-x(2,ixtg(2,n))
2077 y31 = x(2,ixtg(4,n))-x(2,ixtg(2,n))
2078 y32 = x(2,ixtg(4,n))-x(2,ixtg(3,n))
2080 z21 = x(3,ixtg(3,n))-x(3,ixtg(2,n))
2081 z31 = x(3,ixtg(4,n))-x(3,ixtg(2,n))
2082 z32 = x(3,ixtg(4,n))-x(3,ixtg(3,n))
2094 x2l = sqrt(e1x*e1x+e1y*e1y+e1z*e1z)
2115 dir1_1 = bufly%DIRA(i)
2116 dir1_2 = bufly%DIRA(i+nel)
2117 v1 = aa*e11 + bb*e21
2118 v2 = aa*e12 + bb*e22
2119 v3 = aa*e13 + bb*e23
2120 vr = v1*e1x + v2*e1y + v3*e1z
2121 vs = v1*e2x + v2*e2y + v3*e2z
2122 suma=sqrt(vr*vr + vs*vs)
2126 dir1_1 = bufly%DIRA(i)
2127 dir1_2 = bufly%DIRA(i+nel)
2129 phi =(hundred80/pi)*atan2(dir1_2,dir1_1)
2130 err = (abs(phi) - ninety)/ninety
2132 IF(abs(err) < em02) value(i) = sign(ninety,phi)
2133 IF(abs(value(i)) < one) value(i) = zero
2134 is_written_value(i) = 1
2145 ELSEIF (keyword ==
'EPSP' .AND. mlw /= 15 .AND. mlw /= 25 )
THEN
2148 IF(mpt == 0 .AND.gbuf%G_PLA > 0 .AND. ipt == 1)
THEN
2149 IF (igtyp == 1 .OR. igtyp == 9)
THEN
2150 bufly => elbuf_tab(ng)%BUFLY(1)
2151 IF (bufly%L_PLA > 0)
THEN
2154 lbuf => bufly%LBUF(ir,is,1)
2156 value(i) = value(i) + abs(lbuf%PLA(i))/npg
2157 is_written_value(i) = 1
2163 ELSEIF ( ilay == -1 .AND. ipt == -1 .AND. iply == -1.and. gbuf%G_PLA > 0)
THEN
2166 IF (nlay > 1) ilay0 = iabs(nlay)/2 + 1
2167 bufly => elbuf_tab(ng)%BUFLY(ilay0)
2168 IF (bufly%L_PLA > 0)
THEN
2171 IF(igtyp == 51 .OR. igtyp == 52)
THEN
2177 value(i) = value(i) + fourth*bufly%LBUF(ir,is,it)%PLA(i)/nptt
2178 is_written_value(i) = 1
2185 value(i) = fourth*(bufly%LBUF(1,1,1)%PLA(i) + bufly%LBUF(2,1,1)%PLA(i) +
2186 . bufly%LBUF(1,2,1)%PLA(i) + bufly%LBUF(2,2,1)%PLA(i))
2187 is_written_value(i) = 1
2191 IF(igtyp == 51 .OR. igtyp == 52)
THEN
2196 VALUE(i) = value(i) + third*bufly%LBUF(ir,1,it)%PLA(i)/nptt
2197 is_written_value(i) = 1
2203 value(i) = third*(bufly%LBUF(1,1,1)%PLA(i) + bufly%LBUF(1,1,1)%PLA(i) +
2204 . bufly%LBUF(1,1,1)%PLA(i))
2205 is_written_value(i) = 1
2210 IF(igtyp == 51 .OR. igtyp == 52)
THEN
2214 value(i) = value(i) + abs(bufly%LBUF(1,1,it)%PLA(i))/nptt
2215 is_written_value(i) = 1
2222 value(i) = abs(bufly%LBUF(
2223 is_written_value(i) = 1
2229 ELSEIF ( iply > 0 .AND. (ipt <= mpt .AND. ipt > 0 ) .AND. gbuf%G_PLA > 0)
THEN
2233 IF (igtyp == 17 .OR. igtyp == 51)
THEN
2234 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
2235 ELSEIF (igtyp == 52)
THEN
2236 id_ply =
ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
2239 IF (id_ply == iply )
THEN
2240 bufly => elbuf_tab(ng)%BUFLY(j)
2241 IF (igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52 )
THEN
2243 IF( ipt <= nptt)
THEN
2248 value(i) = value(i) + abs(bufly%LBUF(ir,is,ipt)%PLA(i))/npg
2249 is_written_value(i) = 1
2255 value(i) = abs(bufly%LBUF(1,1,ipt)%PLA(i))
2256 is_written_value(i) = 1
2265 ELSEIF ( iply > 0 .AND. ipt == -1 .AND. gbuf%G_PLA > 0)
THEN
2269 IF (igtyp == 17 .OR. igtyp == 51)
THEN
2270 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
2271 ELSEIF (igtyp == 52)
THEN
2272 id_ply =
ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
2275 IF (id_ply == iply )
THEN
2276 bufly => elbuf_tab(ng)%BUFLY(j)
2277 IF (igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52 )
THEN
2280 IF( ipt <= nptt)
THEN
2285 value(i) = value(i) + abs(bufly%LBUF(ir,is,ipt)%PLA(i))/npg
2286 is_written_value(i) = 1
2292 value(i) = value(i) + abs(bufly%LBUF(1,1,ipt)%PLA(i))
2293 is_written_value(i) = 1
2304 ELSEIF ( (ilay <= nlay .AND. ilay > 0) .AND. (ipt <= mpt .AND. ipt > 0 ) .AND. gbuf%G_PLA > 0)
THEN
2305 IF (igtyp == 51 .OR. igtyp == 52)
THEN
2306 bufly => elbuf_tab(ng)%BUFLY(ilay)
2307 IF (bufly%L_PLA > 0)
THEN
2310 lbuf => bufly%LBUF(ir,is,ipt)
2312 value(i) = value(i) + abs(lbuf%PLA(i))/npg
2313 is_written_value(i) = 1
2320 ELSEIF ( ilay <= nlay .AND. ilay > 0 .AND. gbuf%G_PLA > 0)
THEN
2321 IF (igtyp == 10 .OR. igtyp == 11 .OR. igtyp == 16 .OR. igtyp == 17)
THEN
2322 bufly => elbuf_tab(ng)%BUFLY(ilay)
2323 IF (bufly%L_PLA > 0)
THEN
2326 lbuf => bufly%LBUF(ir,is,1)
2328 value(i) = value(i) + abs(lbuf%PLA(i))/npg
2329 is_written_value(i) = 1
2334 ELSEIF (igtyp == 51 .OR. igtyp == 52)
THEN
2335 bufly => elbuf_tab(ng)%BUFLY(ilay)
2336 IF (bufly%L_PLA > 0)
THEN
2340 lbuf => bufly%LBUF(ir,is,it)
2342 value(i) = value(i) + abs(lbuf%PLA(i))/npg
2343 is_written_value(i) = 1
2352 ELSEIF ( ipt <= mpt .AND. ipt > 0 .AND. gbuf%G_PLA > 0)
THEN
2353 IF (igtyp == 1 .OR. igtyp == 9)
THEN
2354 bufly => elbuf_tab(ng)%BUFLY(1)
2355 IF (bufly%L_PLA > 0)
THEN
2358 lbuf => bufly%LBUF(ir,is,ipt)
2360 value(i) = value(i) + abs(lbuf%PLA(i))/npg
2361 is_written_value(i) = 1
2433 ELSEIF (keyword ==
'WPLA' .AND.(mlw == 15 .OR. mlw == 25) )
THEN
2436 IF ( ilay == -1 .AND. ipt == -1 .AND. iply == -1.and. gbuf%G_PLA > 0)
THEN
2439 IF (nlay > 1) ilay0 = iabs(nlay)/2 + 1
2440 bufly => elbuf_tab(ng)%BUFLY(ilay0)
2441 IF (bufly%L_PLA > 0)
THEN
2444 IF(igtyp == 51 .OR. igtyp == 52)
THEN
2450 value(i) = value(i) + fourth*bufly%LBUF(ir,is,it)%PLA(i)/nptt
2451 is_written_value(i) = 1
2458 value(i) = fourth*(bufly%LBUF(1,1,1)%PLA(i) + bufly%LBUF(2,1,1)%PLA(i) +
2459 . bufly%LBUF(1,2,1)%PLA(i) + bufly%LBUF(2,2,1)%PLA(i))
2460 is_written_value(i) = 1
2468 value(i) = value(i) + third*bufly%LBUF(ir,1,it)%PLA(i)/nptt
2469 is_written_value(i) = 1
2475 IF(igtyp == 51 .OR. igtyp == 52)
THEN
2479 value(i) = value(i) + abs(bufly%LBUF(1,1,it)%PLA(i))/nptt
2480 is_written_value(i) = 1
2485 ipt = iabs(nptt/2) + 1
2487 value(i) = abs(bufly%LBUF(1,1,ipt)%PLA(i))
2488 is_written_value(i) = 1
2494 ELSEIF ( iply > 0 .AND. (ipt <= mpt .AND. ipt > 0 ) .AND. gbuf%G_PLA > 0)
THEN
2498 IF (igtyp == 17 .OR. igtyp == 51)
THEN
2499 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
2500 ELSEIF (igtyp == 52)
THEN
2501 id_ply =
ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
2504 IF (id_ply == iply )
THEN
2505 bufly => elbuf_tab(ng)%BUFLY(j)
2506 IF (igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52 )
THEN
2508 IF( ipt <= nptt)
THEN
2513 value(i) = value(i) + abs(bufly%LBUF(ir,is,ipt)%PLA(i))/npg
2514 is_written_value(i) = 1
2520 value(i) = abs(bufly%LBUF(1,1,ipt)%PLA(i))
2521 is_written_value(i) = 1
2530 ELSEIF ( iply > 0 .AND. ipt == -1 .AND. gbuf%G_PLA > 0)
THEN
2534 IF (igtyp == 17 .OR. igtyp == 51)
THEN
2535 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
2536 ELSEIF (igtyp == 52)
THEN
2537 id_ply =
ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
2540 IF (id_ply == iply )
THEN
2541 bufly => elbuf_tab(ng)%BUFLY(j)
2542 IF (igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52 )
THEN
2545 IF( ipt <= nptt)
THEN
2550 value(i) = value(i) + abs(bufly%LBUF(ir,is,ipt)%PLA(i))/npg
2551 is_written_value(i) = 1
2557 value(i) = value(i) + abs(bufly%LBUF(1,1,ipt)%PLA(i))
2558 is_written_value(i) = 1
2569 ELSEIF ( (ilay <= nlay .AND. ilay > 0) .AND. (ipt <= mpt .AND. ipt > 0 ) .AND. gbuf%G_PLA > 0)
THEN
2570 IF (igtyp == 51 .OR. igtyp == 52)
THEN
2571 bufly => elbuf_tab(ng)%BUFLY(ilay)
2573 IF ((bufly%L_PLA > 0).AND.(ipt <= nptt))
THEN
2576 lbuf => bufly%LBUF(ir,is,ipt)
2578 value(i) = value(i) + abs(lbuf%PLA(i))/npg
2579 is_written_value(i) = 1
2586 ELSEIF ( ilay <= nlay .AND. ilay > 0 .AND. gbuf%G_PLA > 0)
THEN
2587 IF (igtyp == 10 .OR. igtyp == 11 .OR. igtyp == 16 .OR. igtyp == 17)
THEN
2588 bufly => elbuf_tab(ng)%BUFLY(ilay)
2589 IF (bufly%L_PLA > 0)
THEN
2592 lbuf => bufly%LBUF(ir,is,1)
2594 value(i) = value(i) + abs(lbuf%PLA(i))/npg
2595 is_written_value(i) = 1
2600 ELSEIF (igtyp == 51 .OR. igtyp == 52)
THEN
2601 bufly => elbuf_tab(ng)%BUFLY(ilay
2606 lbuf => bufly%LBUF(ir,is,it)
2608 value(i) = value(i) + abs(lbuf%PLA(i))/npg
2609 is_written_value(i) = 1
2618 ELSEIF ( ipt <= mpt .AND. ipt > 0 .AND. gbuf%G_PLA > 0)
THEN
2619 IF (igtyp == 1 .OR. igtyp == 9)
THEN
2620 bufly => elbuf_tab(ng)%BUFLY(1)
2621 IF (bufly%L_PLA > 0)
THEN
2624 lbuf => bufly%LBUF(ir,is,ipt)
2626 value(i) = value(i) + abs(lbuf%PLA(i))/npg
2627 is_written_value(i) = 1
2635 ELSEIF (keyword ==
'NXTF')
THEN
2639 IF ( ilay == -1 .AND. ipt == -1)
THEN
2640 nfail = elbuf_tab(ng)%BUFLY(1)%NFAIL
2641 nptt = elbuf_tab(ng)%BUFLY(1)%NPTT
2646 fbuf => elbuf_tab(ng)%BUFLY(1)%FAIL(ir,is,ipt)
2648 IF (fbuf%FLOC(ifail)%ILAWF == 25)
THEN
2651 value(i) =
max(value(i),fbuf%FLOC(ifail)%DAM(i))
2652 is_written_value(i) = 1
2660 ELSEIF (ilay <= nlay .AND. ilay > 0 .AND. ipt <= mpt .AND. ipt > 0 )
THEN
2661 IF (igtyp == 51 .OR. igtyp == 52)
THEN
2662 nfail = elbuf_tab(ng)%BUFLY(ilay)%NFAIL
2663 nptt = elbuf_tab(ng)%BUFLY(ilay)%NPTT
2666 fbuf => elbuf_tab(ng)%BUFLY(ilay)%FAIL(ir,is,ipt)
2668 IF (fbuf%FLOC(ifail)%ILAWF == 25)
THEN
2671 value(i) =
max(value(i),fbuf%FLOC(ifail)%DAM(i))
2672 is_written_value(i) = 1
2680 ELSEIF ( ilay <= nlay .AND. ilay > 0)
THEN
2681 IF (igtyp == 10 .OR. igtyp == 11 .OR. igtyp == 16 .OR. igtyp == 17)
THEN
2682 nfail = elbuf_tab(ng)%BUFLY(ilay)%NFAIL
2683 nptt = elbuf_tab(ng)%BUFLY(ilay)%NPTT
2686 fbuf => elbuf_tab(ng)%BUFLY(ilay)%FAIL(ir,is,1)
2688 IF (fbuf%FLOC(ifail)%ILAWF == 25)
THEN
2691 value(i) =
max(value(i),fbuf%FLOC(ifail)%DAM(i))
2692 is_written_value(i) = 1
2698 ELSEIF (igtyp == 51 .OR. igtyp == 52)
THEN
2699 nfail = elbuf_tab(ng)%BUFLY(ilay)%NFAIL
2700 nptt = elbuf_tab(ng)%BUFLY(ilay)%NPTT
2704 fbuf => elbuf_tab(ng)%BUFLY(ilay)%FAIL(ir,is,ipt)
2706 IF (fbuf%FLOC(ifail)%ILAWF == 25)
THEN
2709 value(i) =
max(value(i),fbuf%FLOC(ifail)%DAM(i))
2710 is_written_value(i) = 1
2719 ELSEIF ( ipt <= mpt .AND. ipt > 0)
THEN
2720 IF (igtyp == 1 .OR. igtyp == 9)
THEN
2721 nfail = elbuf_tab(ng)%BUFLY(1)%NFAIL
2722 nptt = elbuf_tab(ng)%BUFLY(1)%NPTT
2725 fbuf => elbuf_tab(ng)%BUFLY
2727 IF (fbuf%FLOC(ifail)%ILAWF == 25)
THEN
2730 value(i) =
max(value(i),fbuf%FLOC(ifail)%DAM(i))
2731 is_written_value(i) = 1
2740 ELSEIF (keyword ==
'NXTF/MEMB')
THEN
2748 ipt = iabs(nptt) / 2
2750 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
2755 IF (nlay == 1) ipt = iabs(nptt) / 2
2756 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,ipt)
2758 IF (fbuf%FLOC(ifail)%ILAWF == 25)
THEN
2761 value(i) =
max(value(i),fbuf%FLOC(ifail)%DAM(i))
2762 is_written_value(i) = 1
2770 ELSE IF (keyword ==
'FAIL')
THEN
2772 IF (igtyp == 10. or.igtyp == 11.OR.igtyp == 17.OR.igtyp == 51 .OR.
2782 IF (ihbe == 11)
THEN
2784 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
2785 bufly => elbuf_tab(ng)%BUFLY(il)
2786 imat = elbuf_tab(ng)%BUFLY(il)%IMAT
2788 mlw_lay = elbuf_tab(ng)%BUFLY(il)%ILAW
2796 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
2799 IF (mlw_lay == 25)
THEN
2800 dam1(i)=lbuf%DMG(jj(1)+i)
2801 dam2(i)=lbuf%DMG(jj(2)+i)
2802 wpla(i) = wpla(i) + abs(lbuf%PLA(i))/npg
2803 dmax(i) = pm(64,imat)
2804 wpmax(i)= pm(41,imat)
2805 IF (dam1(i) >= dmax(i).OR.dam2(i) >= dmax(i)
2806 . .OR.wpla(i) < zero.OR.wpla(i) >= wpmax(i))
2807 . failg(il,i) = failg(il,i) + 1
2808 IF (failg(il,i) == npg )
THEN
2809 fail(i) = fail(i) + one
2810 failg(il,i) = npg + 1
2812 ELSEIF (mlw_lay == 15)
THEN
2813 dam1(i)=lbuf%DAM(jj(1)+i)
2814 dam2(i)=lbuf%DAM(jj(2)+i)
2815 wpla(i) = wpla(i) + abs(lbuf%PLA(i))/npg
2816 dmax(i) = pm(64,imat)
2817 wpmax(i)= pm(41,imat)
2818 IF (dam1(i) >= dmax(i).OR.dam2(i) >= dmax(i)
2819 . .OR.wpla(i) < zero.OR.wpla(i) >= wpmax(i))
2820 . failg(il,i) = failg(il,i) + 1
2821 IF (failg(il,i) == npg )
THEN
2822 fail(i) = fail(i) + one
2823 failg(il,i) = npg + 1
2826 IF(lbuf%OFF(i) < one) tag= 1
2830 fail(i) = fail(i) + tag
2836 is_written_value(i) = 1
2840 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
2841 bufly => elbuf_tab(ng)%BUFLY(il)
2842 imat = elbuf_tab(ng)%BUFLY(il)%IMAT
2844 mlw_lay = elbuf_tab(ng)%BUFLY(il)%ILAW
2846 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(1,1,it)
2849 IF (mlw_lay == 25)
THEN
2850 dam1(i)=lbuf%DMG(jj(1)+i)
2851 dam2(i)=lbuf%DMG(jj(2)+i)
2852 wpla(i) = abs(lbuf%PLA(i))
2853 dmax(i) = pm(64,imat)
2854 wpmax(i)= pm(41,imat)
2855 IF (dam1(i) >= dmax(i).OR.dam2
2856 . wpla(i) < zero.OR.wpla(i) >= wpmax(i))
2857 . fail(i) = fail(i) + one
2858 ELSEIF (mlw_lay == 15)
THEN
2859 dam1(i)=lbuf%DAM(jj(1)+i)
2860 dam2(i)=lbuf%DAM(jj(2)+i)
2861 wpla(i) = abs(lbuf%PLA(i))
2862 dmax(i) = pm(64,imat)
2863 wpmax(i)= pm(41,imat)
2864 IF (dam1(i) >= dmax(i).OR.dam2(i) >= dmax(i).OR.
2865 . wpla(i) < zero.OR.wpla(i) >= wpmax(i))
2866 . fail(i) = fail(i) + one
2868 IF(lbuf%OFF(i) < one) fail(i) = fail(i) + 1
2875 is_written_value(i) = 1
2880 ELSE IF (keyword ==
'DAMA')
THEN
2882 IF( igtyp == 10 .OR. igtyp == 11 .OR.
2883 . igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52 )
THEN
2891 mat(i)=ixtg(1,nft+i)
2892 pid(i)=ixtg(5,nft+i)
2895 IF (igtyp == 11)
THEN
2901 matly(j) = igeo(ipmat+n,pid(i))
2904 ELSEIF (igtyp == 10)
THEN
2912 ELSEIF (igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52)
THEN
2918 matly(j) = stack%IGEO(ipmat+n,isubstack)
2925 IF ( ilay == -1 .AND. ipt == -1 .AND. iply == -1)
THEN
2926 IF(ifailure > 0)
THEN
2930 nptt = elbuf_tab(ng)%BUFLY(n)%NPTT
2935 fbuf => elbuf_tab(ng)%BUFLY(n)%FAIL(ir,is,it)
2936 DO ifail = 1,elbuf_tab(ng)%BUFLY(n)%NFAIL
2937 dmgmx =
max(dmgmx,fbuf%FLOC(ifail)%DAMMX(i))
2941 value(i) = value(i) + dmgmx/nptt
2944 value(i) = value(i) / nlay
2945 is_written_value(i) = 1
2948 ELSEIF (mpt > 0)
THEN
2949 nptt = elbuf_tab(ng)%BUFLY(1)%NPTT
2955 fbuf => elbuf_tab(ng)%BUFLY(1)%FAIL(ir,is,it)
2956 DO ifail = 1,elbuf_tab(ng)%BUFLY(1)%NFAIL
2957 dmgmx =
max(dmgmx, fbuf%FLOC(ifail)%DAMMX(i))
2961 value(i) = value(i) + dmgmx
2963 value(i) = value(i) / nptt
2964 is_written_value(i) = 1
2968 IF (igtyp == 10 .OR. igtyp == 11 .OR. igtyp == 17 .OR.
2969 . igtyp == 51 .OR. igtyp == 52 )
THEN
2975 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
2976 bufly => elbuf_tab(ng)%BUFLY(il)
2979 mlw_lay = matparam(matly(j))%ILAW
2980 IF (mlw_lay == 25)
THEN
2981 nlay_count = nlay_count + 1
2987 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
2988 dmax(i) = one/pm(64,matly(j))
2989 wpmax(i)= one/pm(41,matly(j))
2990 epst1(i)= pm(60,matly(j))
2991 epst2(i)= pm(61,matly(j))
2992 epsf1(i)= one/pm(98,matly(j))
2993 epsf2(i)= one/pm(99,matly(j))
2995 vg(1) =
max(vg(1),lbuf%DMG(jj(1)+i)*dmax(i))
2996 vg(2) =
max(vg(2),lbuf%DMG(jj(2)+i)*dmax(i))
2997 vg(3)=
max(vg(3),abs(lbuf%PLA(i))*wpmax(i))
2998 IF(lbuf%CRAK(jj(1)+i) > zero) vg(4)=
max(vg(4),
2999 . (lbuf%CRAK(jj(1)+i)+epst1(i))*epsf1(i))
3000 IF(lbuf%CRAK(jj(2)+i) > zero )vg(5) =
max(vg(5),
3001 . (lbuf%CRAK(jj(2)+i)+epst2(i))*epsf2(i))
3004 vly(1) = vly(1) + vg(1)
3005 vly(2) = vly(2) + vg(2)
3006 vly(3) = vly(3) + vg(3)
3007 vly(4) = vly(4) + vg(4)
3008 vly(5) = vly(5) + vg(5)
3010 ve(1) = ve(1) + vly(1)/nptt
3011 ve(2) = ve(2) + vly(2)/nptt
3012 ve(3) = ve(3) + vly(3)/nptt
3013 ve(4) = ve(4) + vly(4)/nptt
3014 ve(5) = ve(5) + vly(5)/nptt
3017 IF (nlay_count > 0)
THEN
3018 ve(1) = ve(1)/nlay_count
3019 ve(2) = ve(2)/nlay_count
3020 ve(3) = ve(3)/nlay_count
3021 ve(4) = ve(4)/nlay_count
3022 ve(5) = ve(5)/nlay_count
3024 value(i) =
max(value(i),ve(1),ve(2),ve(3),
3026 is_written_value(i) = 1
3029 ELSEIF ( iply > 0 .AND. ipt <= mpt .AND. ipt > 0 )
THEN
3031 IF(ifailure > 0)
THEN
3033 nptt = elbuf_tab(ng)%BUFLY(j)%NPTT
3035 IF (igtyp == 17 .OR. igtyp == 51)
THEN
3036 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
3037 ELSEIF (igtyp == 52)
THEN
3038 id_ply=
ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
3040 IF (id_ply == iply )
THEN
3041 IF (ipt <= nptt)
THEN
3045 fbuf => elbuf_tab(ng)%BUFLY(j)%FAIL(ir,is,ipt)
3046 DO ifail = 1, elbuf_tab(ng)%BUFLY(j)%NFAIL
3051 is_written_value(i) = 1
3058 IF (igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52)
THEN
3061 IF (igtyp == 17 .OR. igtyp == 51)
THEN
3062 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
3063 ELSEIF (igtyp == 52)
THEN
3064 id_ply=
ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
3067 IF (id_ply == iply )
THEN
3068 bufly => elbuf_tab(ng)%BUFLY(j)
3070 nptt = elbuf_tab(ng)%BUFLY(j)%NPTT
3072 mlw_lay = matparam(matly(iadr + i))%ILAW
3073 IF (mlw_lay == 25)
THEN
3078 lbuf=> elbuf_tab(ng)%BUFLY(j)%LBUF(ir,is,ipt)
3079 dmax(i) = one/pm(64,matly(iadr + i
3080 wpmax(i)= one/pm(41,matly(iadr + i))
3081 epst1(i)= pm(60,matly(iadr + i))
3082 epst2(i)= pm(61,matly(iadr + i))
3083 epsf1(i)= one/pm(98,matly(iadr + i))
3084 epsf2(i)= one/pm(99,matly(iadr + i))
3086 vg(1) =
max(vg(1),lbuf%DMG(jj(1)+i)*dmax(i))
3087 vg(2) =
max(vg(2),lbuf%DMG(jj(2)+i)*dmax(i))
3088 vg(3)=
max(vg(3),abs(lbuf%PLA(i))*wpmax(i
3089 IF(lbuf%CRAK(jj(1)+i) > zero) vg(4)=
max(vg(4),
3090 . (lbuf%CRAK(jj(1)+i)+epst1(i))*epsf1(i))
3091 IF(lbuf%CRAK(jj(2)+i) > zero )vg(5) =
max(vg(5),
3092 . (lbuf%CRAK(jj(2)+i)+epst2(i))*epsf2(i))
3101 value(i) =
max(value(i),vly(1),vly(2),vly(3),vly(4),vly(5))
3102 is_written_value(i) = 1
3109 ELSEIF ( iply > 0 .AND. ipt == -1 )
THEN
3111 IF(ifailure > 0)
THEN
3115 IF (igtyp == 17 .OR. igtyp == 51)
THEN
3116 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
3117 ELSEIF (igtyp == 52)
THEN
3118 id_ply=
ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
3120 IF (id_ply == iply )
THEN
3125 fbuf => elbuf_tab(ng)%BUFLY(j)%FAIL(ir,is,it)
3126 DO ifail = 1, elbuf_tab(ng)%BUFLY(j)%NFAIL
3127 value(i) =
max(value(i) , fbuf%FLOC(ifail)%DAMMX(i))
3132 is_written_value(i) = 1
3138 IF (igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52)
THEN
3141 IF (igtyp == 17 .OR. igtyp == 51)
THEN
3142 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
3143 ELSEIF (igtyp == 52)
THEN
3144 id_ply=
ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
3147 IF (id_ply == iply )
THEN
3148 bufly => elbuf_tab(ng)%BUFLY(j)
3150 nptt = elbuf_tab(ng)%BUFLY(j)%NPTT
3152 mlw_lay = matparam(matly(iadr + i))%ILAW
3153 IF (mlw_lay == 25)
THEN
3159 lbuf=> elbuf_tab(ng)%BUFLY(j)%LBUF(ir,is,it)
3160 dmax(i) = one/pm(64,matly(iadr + i))
3161 wpmax(i)= one/pm(41,matly(iadr + i))
3162 epst1(i)= pm(60,matly(iadr + i))
3163 epst2(i)= pm(61,matly(iadr + i))
3164 epsf1(i)= one/pm(98,matly(iadr + i))
3165 epsf2(i)= one/pm(99,matly(iadr + i))
3167 vg(1) =
max(vg(1),lbuf%DMG(jj(1)+i)*dmax(i))
3168 vg(2) =
max(vg(2),lbuf%DMG(jj(2)+i)*dmax(i))
3169 vg(3)=
max(vg(3),abs(lbuf%PLA(i))*wpmax(i))
3170 IF(lbuf%CRAK(jj(1)+i) > zero) vg(4)=
max(vg(4),
3171 . (lbuf%CRAK(jj(1)+i)+epst1(i))*epsf1(i))
3172 IF(lbuf%CRAK(jj(2)+i) > zero )vg(5) =
max(vg(5),
3173 . (lbuf%CRAK(jj(2)+i)+epst2(i))*epsf2(i))
3183 value(i) =
max(value(i),vly(1),vly(2),vly(3),vly(4),vly(5))
3184 is_written_value(i) = 1
3191 ELSEIF (ilay <= nlay .AND. ilay > 0 .AND. ipt <= mpt .AND. ipt > 0 )
THEN
3192 IF (igtyp == 51 .OR. igtyp == 52)
THEN
3193 nptt = elbuf_tab(ng)%BUFLY(ilay)%NPTT
3198 fbuf => elbuf_tab(ng)%BUFLY(ilay)%FAIL(ir,is,ipt)
3199 DO ifail = 1,elbuf_tab(ng)%BUFLY(ilay)%NFAIL
3200 value(i) =
max(value(i),fbuf%FLOC(ifail)%DAMMX(i))
3201 is_written_value(i) = 1
3205 value(i) = value(i) + dmgmx
3211 nptt = elbuf_tab(ng)%BUFLY(ilay)%NPTT
3212 bufly => elbuf_tab(ng)%BUFLY(ilay)
3213 iadr = (ipt - 1)*nel
3215 mlw_lay = matparam(matly(iadr + i))%ILAW
3216 IF (mlw_lay == 25)
THEN
3221 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,ipt)
3222 dmax(i) = one/pm(64,matly(j))
3223 wpmax(i)= one/pm(41,matly(j))
3224 epst1(i)= pm(60,matly(j))
3225 epst2(i)= pm(61,matly(j))
3226 epsf1(i)= one/pm(98,matly(j))
3227 epsf2(i)= one/pm(99,matly(j))
3229 vg(1) =
max(vg(1),lbuf%DMG(jj(1)+i)*dmax(i))
3230 vg(2) =
max(vg(2),lbuf%DMG(jj(2)+i)*dmax(i))
3231 vg(3)=
max(vg(3),abs(lbuf%PLA(i))*wpmax(i))
3232 IF(lbuf%CRAK(jj(1)+i)
3234 IF(lbuf%CRAK(jj(2)+i) > zero )vg(5) =
max(vg(5),
3235 . (lbuf%CRAK(jj(2)+i)+epst2(i))*epsf2(i))
3238 vly(1) =vly(1) + vg(1)
3239 vly(2) =vly(2) + vg(2)
3240 vly(3) =vly(3) + vg(3)
3241 vly(4) =vly(4) + vg(4)
3242 vly(5) =vly(5) + vg(5)
3244 value(i) =
max(value(i),vly(1),vly(2),vly(3),vly(4),vly(5))
3245 is_written_value(i) = 1
3250 ELSEIF ( ilay <= nlay .AND. ilay > 0)
THEN
3252 IF (igtyp == 10 .OR. igtyp == 11 .OR. igtyp == 16 .OR. igtyp == 17)
THEN
3257 fbuf => elbuf_tab(ng)%BUFLY(ilay)%FAIL(ir,is,1)
3258 DO ifail = 1,elbuf_tab(ng)%BUFLY(ilay)%NFAIL
3259 dmgmx =
max(dmgmx,fbuf%FLOC(ifail)%DAMMX(i))
3260 is_written_value(i) = 1
3264 value(i) = value(i) + dmgmx
3270 bufly => elbuf_tab(ng)%BUFLY(ilay)
3271 iadr = (ipt - 1)*nel
3273 mlw_lay = matparam(matly(j))%ILAW
3274 IF (mlw_lay == 25)
THEN
3279 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,1)
3280 dmax(i) = one/pm(64,matly(j))
3281 wpmax(i)= one/pm(41,matly(j))
3282 epst1(i)= pm(60,matly(j))
3283 epst2(i)= pm(61,matly(j))
3284 epsf1(i)= one/pm(98,matly(j))
3285 epsf2(i)= one/pm(99,matly(j))
3287 vg(1) =
max(vg(1),lbuf%DMG(jj(1)+i)*dmax(i))
3288 vg(2) =
max(vg(2),lbuf%DMG(jj(2)+i)*dmax(i))
3289 vg(3)=
max(vg(3),abs(lbuf%PLA(i))*wpmax(i))
3290 IF(lbuf%CRAK(jj(1)+i) > zero) vg(4)=
max(vg(4),
3291 . (lbuf%CRAK(jj(1)+i)+epst1(i))*epsf1(i))
3292 IF(lbuf%CRAK(jj(2)+i) > zero )vg(5) =
max(vg(5),
3293 . (lbuf%CRAK(jj(2)+i)+epst2(i))*epsf2(i))
3296 vly(1) =vly(1) + vg(1)
3297 vly(2) =vly(2) + vg(2)
3298 vly(3) =vly(3) + vg(3)
3299 vly(4) =vly(4) + vg(4)
3300 vly(5) =vly(5) + vg(5)
3307 value(i) =
max(value(i),vly(1),vly(2),vly(3),
3309 is_written_value(i) = 1
3313 ELSEIF (igtyp == 51 .OR. igtyp == 52)
THEN
3314 nptt = elbuf_tab(ng)%BUFLY(ilay)%NPTT
3320 fbuf => elbuf_tab(ng)%BUFLY(ilay)%FAIL(ir,is,it)
3321 DO ifail = 1,elbuf_tab(ng)%BUFLY(ilay)%NFAIL
3322 dmgmx =
max(dmgmx,fbuf%FLOC(ifail)%DAMMX(i))
3326 value(i) = value(i) + dmgmx
3327 is_written_value(i) = 1
3329 value(i) = value(i) / nptt
3335 nptt = elbuf_tab(ng)%BUFLY(ilay)%NPTT
3336 bufly => elbuf_tab(ng)%BUFLY(ilay)
3337 iadr = (ipt - 1)*nel
3339 mlw_lay = matparam(matly(j))%ILAW
3340 IF (mlw_lay == 25)
THEN
3346 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,it)
3347 dmax(i) = one/pm(64,matly(j))
3348 wpmax(i)= one/pm(41,matly(j))
3349 epst1(i)= pm(60,matly(j))
3350 epst2(i)= pm(61,matly(j))
3351 epsf1(i)= one/pm(98,matly(j))
3352 epsf2(i)= one/pm(99,matly(j))
3354 vg(1) =
max(vg(1),lbuf%DMG(jj(1)+i)*dmax(i))
3355 vg(2) =
max(vg(2),lbuf%DMG(jj(2)+i)*dmax(i))
3356 vg(3)=
max(vg(3),abs(lbuf%PLA(i))*wpmax(i))
3357 IF(lbuf%CRAK(jj(1)+i) > zero) vg(4)=
max(vg(4),
3358 . (lbuf%CRAK(jj(1)+i)+epst1(i))*epsf1(i))
3359 IF(lbuf%CRAK(jj(2)+i) > zero )vg(5) =
max(vg(5),
3360 . (lbuf%CRAK(jj(2)+i)+epst2(i))*epsf2(i))
3363 vly(1) =vly(1) + vg(1)
3364 vly(2) =vly(2) + vg(2)
3365 vly(3) =vly(3) + vg(3)
3366 vly(4) =vly(4) + vg(4)
3367 vly(5) =vly(5) + vg(5)
3375 value(i) =
max(value(i),vly(1),vly(2),vly(3),
3377 is_written_value(i) = 1
3382 ELSEIF ( ipt <= npt .AND. ipt > 0)
THEN
3383 IF (igtyp == 1 .OR. igtyp == 9 )
THEN
3388 fbuf => elbuf_tab(ng)%BUFLY(1)%FAIL(ir,is,ipt)
3389 DO ifail = 1,elbuf_tab(ng)%BUFLY(1)%NFAIL
3390 dmgmx =
max(dmgmx,fbuf%FLOC(ifail)%DAMMX(i))
3391 is_written_value(i) = 1
3395 value(i) = value(i) + dmgmx
3401 bufly => elbuf_tab(ng)%BUFLY(1)
3402 iadr = (ipt - 1)*nel
3409 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,ipt)
3410 dmax(i) = one/pm(64,mid)
3411 wpmax(i)= one/pm(41,mid)
3412 epst1(i)= pm(60,mid)
3413 epst2(i)= pm(61,mid)
3414 epsf1(i)= one/pm(98,mid)
3415 epsf2(i)= one/pm(99,mid)
3417 vg(1) =
max(vg(1),lbuf%DMG(jj(1)+i)*dmax(i))
3418 vg(2) =
max(vg(2),lbuf%DMG(jj(2)+i)*dmax(i))
3419 vg(3)=
max(vg(3),abs(lbuf%PLA(i))*wpmax
3420 IF(lbuf%CRAK(jj(1)+i) > zero) vg(4)=
max(vg(4),
3421 . (lbuf%CRAK(jj(1)+i)+epst1(i))*epsf1(i))
3422 IF(lbuf%CRAK(jj(2)+i) > zero )vg(5) =
max(vg(5),
3423 . (lbuf%CRAK(jj(2)+i)+epst2(i))*epsf2(i))
3426 vly(1) =vly(1) + vg(1)
3427 vly(2) =vly(2) + vg(2)
3428 vly(3) =vly(3) + vg(3)
3429 vly(4) =vly(4) + vg(4)
3430 vly(5) =vly(5) + vg(5)
3437 value(i) =
max(value(i),vly(1),vly(2),vly(3),
3439 is_written_value(i) = 1
3445 ELSE IF (keyword ==
'DAMA/MEMB')
THEN
3447 ipt = iabs(npt)/2 + 1
3449 IF(ifailure > 0)
THEN
3451 nptt = elbuf_tab(ng)%BUFLY(ipt)%NPTT
3457 fbuf => elbuf_tab(ng)%BUFLY(ipt)%FAIL(ir,is,it)
3458 DO ifail = 1,elbuf_tab(ng)%BUFLY(ipt)%NFAIL
3459 value(i) =
max(value(i),fbuf%FLOC(ifail)%DAMMX(i))
3460 is_written_value(i) = 1
3464 value(i) = value(i) + dmgmx
3466 value(i) = value(i) / nptt
3468 ELSEIF (mpt > 0)
THEN
3472 fbuf => elbuf_tab(ng)%BUFLY(1)%FAIL(ir,is,ipt)
3473 DO ifail = 1, elbuf_tab(ng)%BUFLY(1)%NFAIL
3474 value(i) =
max(value(i), fbuf%FLOC(ifail)%DAMMX(i))
3475 is_written_value(i) = 1
3485 IF (igtyp == 10 .OR. igtyp == 11 .OR.
3486 . igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52 )
THEN
3494 mat(i)=ixtg(1,nft+i)
3495 pid(i)=ixtg(5,nft+i)
3498 IF (igtyp == 11)
THEN
3504 matly(j) = igeo(ipmat+n,pid(i))
3507 ELSEIF (igtyp == 10)
THEN
3515 ELSEIF (igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52)
THEN
3521 matly(j) = stack%IGEO(ipmat+n,isubstack)
3526 IF(mpt >= ipt .AND. ipt > 0)
THEN
3531 nptt = elbuf_tab(ng)%BUFLY(ipt)%NPTT
3532 bufly => elbuf_tab(ng)%BUFLY(ipt)
3533 iadr = (ipt - 1)*nel
3535 mlw_lay = matparam(matly(j))%ILAW
3536 IF (mlw_lay == 25)
THEN
3542 lbuf => elbuf_tab(ng)%BUFLY(ipt)%LBUF(ir,is,it)
3543 dmax(i) = one/pm(64,matly(j))
3544 wpmax(i)= one/pm(41,matly(j))
3545 epst1(i)= pm(60,matly(j))
3546 epst2(i)= pm(61,matly(j))
3547 epsf1(i)= one/pm(98,matly(j))
3548 epsf2(i)= one/pm(99,matly(j))
3550 vg(1) =
max(vg(1),lbuf%DMG(jj(1)+i)*dmax(i))
3551 vg(2) =
max(vg(2),lbuf%DMG(jj(2)+i)*dmax(i))
3552 vg(3)=
max(vg(3),abs(lbuf%PLA(i))*wpmax(i))
3553 IF(lbuf%CRAK(jj(1)+i) > zero) vg(4)=
max(vg(4),
3554 . (lbuf%CRAK(jj(1)+i)+epst1(i))*epsf1(i))
3555 IF(lbuf%CRAK(jj(2)+i) > zero )vg(5) =
max(vg(5),
3556 . (lbuf%CRAK(jj(2)+i)+epst2(i))*epsf2(i))
3559 vly(1) =vly(1) + vg(1)
3560 vly(2) =vly(2) + vg(2)
3561 vly(3) =vly(3) + vg(3)
3562 vly(4) =vly(4) + vg(4)
3563 vly(5) =vly(5) + vg(5)
3571 value(i) =
max(value(i),vly(1),vly(2),vly(3),vly(4),vly(5))
3572 is_written_value(i) = 1
3578 ELSE IF (keyword ==
'FAILURE')
THEN
3584 IF (mode == -1)
THEN
3586 IF ( ilay == -1 .AND. ipt == -1 .AND. iply == -1)
THEN
3587 IF(ifailure > 0)
THEN
3592 nptt = elbuf_tab(ng)%BUFLY(n)%NPTT
3596 fbuf => elbuf_tab(ng)%BUFLY(n)%FAIL(ir,is,it)
3598 DO ifail = 1,elbuf_tab(ng)%BUFLY(n)%NFAIL
3599 IF (fbuf%FLOC(ifail)%IDFAIL == id)
THEN
3600 dmgmx = fbuf%FLOC(ifail)%DAMMX(i)
3601 is_written_value(i) = 1
3602 nlay_fail = nlay_fail + 1
3605 value(i) = value(i) + dmgmx/(nptt*npts*nptr)
3610 value(i) = value(i) / nlay_fail
3612 ELSEIF (mpt > 0)
THEN
3613 nptt = elbuf_tab(ng)%BUFLY(1)%NPTT
3618 fbuf => elbuf_tab(ng)%BUFLY(1)%FAIL(ir,is,it)
3620 DO ifail = 1,elbuf_tab(ng)%BUFLY(1)%NFAIL
3621 IF (fbuf%FLOC(ifail)%IDFAIL == id)
THEN
3622 dmgmx = fbuf%FLOC(ifail)%DAMMX(i)
3623 is_written_value(i) = 1
3626 value(i) = value(i) + dmgmx/(nptt*npts*nptr)
3633 ELSEIF ( iply > 0 .AND. ipt <= mpt .AND. ipt > 0 )
THEN
3635 IF (ifailure > 0)
THEN
3637 nptt = elbuf_tab(ng)%BUFLY(j)%NPTT
3639 IF (igtyp == 17 .OR. igtyp == 51)
THEN
3640 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
3641 ELSEIF (igtyp == 52)
THEN
3642 id_ply=
ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
3644 IF (id_ply == iply )
THEN
3645 IF (ipt <= nptt)
THEN
3649 fbuf => elbuf_tab(ng)%BUFLY(j)%FAIL(ir,is,ipt)
3650 DO ifail = 1,elbuf_tab(ng)%BUFLY(j)%NFAIL
3651 IF (fbuf%FLOC(ifail)%IDFAIL == id)
THEN
3652 value(i) = value(i) + fbuf%FLOC(ifail)%DAMMX(i)/(nptr*npts)
3653 is_written_value(i) = 1
3664 ELSEIF ( iply > 0 .AND. ipt == -1 )
THEN
3666 IF (ifailure > 0)
THEN
3668 nptt = elbuf_tab(ng)%BUFLY(j)%NPTT
3670 IF (igtyp == 17 .OR. igtyp == 51)
THEN
3671 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
3672 ELSEIF (igtyp == 52)
THEN
3673 id_ply=
ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
3675 IF (id_ply == iply )
THEN
3680 fbuf => elbuf_tab(ng)%BUFLY(j)%FAIL(ir,is,it)
3681 DO ifail = 1,elbuf_tab(ng)%BUFLY(j)%NFAIL
3682 IF (fbuf%FLOC(ifail)%IDFAIL == id)
THEN
3683 value(i) = value(i) +
3684 . fbuf%FLOC(ifail)%DAMMX(i)/(nptr*npts*nptt)
3685 is_written_value(i) = 1
3696 ELSEIF ( iply > 0 .AND. ipt == -4 )
THEN
3698 nptt = elbuf_tab(ng)%BUFLY(j)%NPTT
3700 IF (igtyp == 17 .OR. igtyp == 51)
THEN
3701 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
3702 ELSEIF (igtyp == 52)
THEN
3703 id_ply=
ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
3705 IF (id_ply == iply )
THEN
3706 IF (mod(nptt,2) == 0)
THEN
3710 fbuf1 => elbuf_tab(ng)%BUFLY(j)%FAIL(ir,is,nint(half*nptt))
3711 fbuf2 => elbuf_tab(ng)%BUFLY(j)%FAIL(ir,is,nint(half*nptt)+1)
3713 DO ifail = 1,elbuf_tab(ng)%BUFLY(j)%NFAIL
3714 IF (fbuf1%FLOC(ifail)%IDFAIL == id)
THEN
3715 dmgmx = half*(fbuf1%FLOC(ifail)%DAMMX(i) +
3716 . fbuf2%FLOC(ifail)%DAMMX(i))
3717 value(i) = value(i) + dmgmx/(nptr*npts)
3718 is_written_value(i) = 1
3728 fbuf => elbuf_tab(ng)%BUFLY(j)%FAIL(ir,is,nint(half*nptt))
3730 DO ifail = 1,elbuf_tab(ng)%BUFLY(j)%NFAIL
3731 IF (fbuf%FLOC(ifail)%IDFAIL == id)
THEN
3732 dmgmx = fbuf%FLOC(ifail)%DAMMX(i)
3733 value(i) = value(i) + dmgmx/(nptr*npts)
3734 is_written_value(i) = 1
3745 ELSEIF (ilay <= nlay .AND. ilay > 0 .AND. ipt <= mpt .AND. ipt > 0 )
THEN
3746 IF (ifailure > 0)
THEN
3747 IF (igtyp == 51 .OR. igtyp == 52)
THEN
3748 nptt = elbuf_tab(ng)%BUFLY(ilay)%NPTT
3749 IF (ipt <= nptt)
THEN
3753 fbuf => elbuf_tab(ng)%BUFLY(ilay)%FAIL(ir,is,ipt)
3755 DO ifail = 1,elbuf_tab(ng)%BUFLY(ilay)%NFAIL
3756 IF (fbuf%FLOC(ifail)%IDFAIL == id)
THEN
3757 dmgmx = fbuf%FLOC(ifail)%DAMMX(i)
3758 is_written_value(i) = 1
3761 value(i) = value(i) + dmgmx/(nptr*npts)
3769 ELSEIF (ilay <= nlay .AND. ilay > 0 .AND. ipt == -1)
THEN
3770 IF (ifailure > 0)
THEN
3772 IF (igtyp == 10 .OR. igtyp == 11 .OR. igtyp == 16 .OR. igtyp == 17)
THEN
3776 fbuf => elbuf_tab(ng)%BUFLY(ilay)%FAIL(ir,is,1)
3778 DO ifail = 1,elbuf_tab(ng)%BUFLY(ilay)%NFAIL
3779 IF (fbuf%FLOC(ifail)%IDFAIL == id)
THEN
3780 dmgmx = fbuf%FLOC(ifail)%DAMMX(i)
3781 is_written_value(i) = 1
3784 value(i) = value(i) + dmgmx/(nptr*npts)
3789 ELSEIF (igtyp == 51 .OR. igtyp == 52)
THEN
3790 nptt = elbuf_tab(ng)%BUFLY(ilay)%NPTT
3795 fbuf => elbuf_tab(ng)%BUFLY(ilay)%FAIL(ir,is,it)
3797 DO ifail = 1,elbuf_tab(ng)%BUFLY(ilay)%NFAIL
3798 IF (fbuf%FLOC(ifail)%IDFAIL == id)
THEN
3799 dmgmx = fbuf%FLOC(ifail)%DAMMX(i)
3800 is_written_value(i) = 1
3803 value(i) = value(i) + dmgmx/(nptt*nptr*npts)
3811 ELSEIF ( ipt <= npt .AND. ipt > 0)
THEN
3812 IF (ifailure > 0)
THEN
3813 IF (igtyp == 1 .OR. igtyp == 9 )
THEN
3817 fbuf => elbuf_tab(ng)%BUFLY(1)%FAIL(ir,is,ipt)
3819 DO ifail = 1,elbuf_tab(ng)%BUFLY(1)%NFAIL
3820 IF (fbuf%FLOC(ifail)%IDFAIL == id)
THEN
3821 dmgmx = fbuf%FLOC(ifail)%DAMMX(i)
3822 is_written_value(i) = 1
3825 value(i) = value(i) + dmgmx/(nptr*npts)
3832 ELSEIF (ipt == -4)
THEN
3833 IF (ifailure > 0)
THEN
3834 IF (igtyp == 1 .OR. igtyp == 9 )
THEN
3835 IF (mod(npt,2) == 0)
THEN
3839 fbuf1 => elbuf_tab(ng)%BUFLY(1)%FAIL(ir,is,nint(half*npt))
3840 fbuf2 => elbuf_tab(ng)%BUFLY(1)%FAIL(ir,is,nint(half*npt)+1)
3842 DO ifail = 1,elbuf_tab(ng)%BUFLY(1)%NFAIL
3843 IF (fbuf1%FLOC(ifail)%IDFAIL == id)
THEN
3844 dmgmx = half*(fbuf1%FLOC(ifail)%DAMMX(i) +
3845 . fbuf2%FLOC(ifail)%DAMMX(i))
3846 is_written_value(i) = 1
3849 value(i) = value(i) + dmgmx/(nptr*npts)
3857 fbuf => elbuf_tab(ng)%BUFLY(1)%FAIL(ir,is,nint(half*npt))
3859 DO ifail = 1,elbuf_tab(ng)%BUFLY(1)%NFAIL
3860 IF (fbuf%FLOC(ifail)%IDFAIL == id)
THEN
3861 dmgmx = fbuf%FLOC(ifail)%DAMMX(i)
3862 is_written_value(i) = 1
3865 value(i) = value(i) + dmgmx/(nptr*npts)
3876 IF (ilay == -1 .AND. ipt == -1 .AND. iply == -1)
THEN
3877 IF(ifailure > 0)
THEN
3882 nptt = elbuf_tab(ng)%BUFLY(n)%NPTT
3886 fbuf => elbuf_tab(ng)%BUFLY(n)%FAIL(ir,is,it)
3888 DO ifail = 1,elbuf_tab(ng)%BUFLY(n)%NFAIL
3889 IF (fbuf%FLOC(ifail)%IDFAIL == id)
THEN
3890 dmgmx = fbuf%FLOC(ifail
3891 is_written_value(i) = 1
3892 nlay_fail = nlay_fail + 1
3895 value(i) = value(i) + dmgmx/(nptt*npts*nptr)
3900 value(i) = value(i) / nlay_fail
3902 ELSEIF (mpt > 0)
THEN
3903 nptt = elbuf_tab(ng)%BUFLY(1)%NPTT
3908 fbuf => elbuf_tab(ng)%BUFLY(1)%FAIL(ir,is,it)
3910 DO ifail = 1,elbuf_tab(ng)%BUFLY(1)%NFAIL
3911 IF (fbuf%FLOC(ifail)%IDFAIL == id)
THEN
3912 dmgmx = fbuf%FLOC(ifail)%DAMMX(nel*mode+i)
3913 is_written_value(i) = 1
3916 value(i) = value(i) + dmgmx/(nptt*npts*nptr)
3923 ELSEIF ( iply > 0 .AND. ipt <= mpt .AND. ipt > 0 )
THEN
3925 IF (ifailure > 0)
THEN
3927 nptt = elbuf_tab(ng)%BUFLY(j)%NPTT
3929 IF (igtyp == 17 .OR. igtyp == 51)
THEN
3930 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
3931 ELSEIF (igtyp == 52)
THEN
3932 id_ply=
ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
3934 IF (id_ply == iply )
THEN
3935 IF (ipt <= nptt)
THEN
3939 fbuf => elbuf_tab(ng)%BUFLY(j)%FAIL(ir,is,ipt)
3940 DO ifail = 1,elbuf_tab(ng)%BUFLY(j)%NFAIL
3941 IF (fbuf%FLOC(ifail)%IDFAIL == id)
THEN
3942 value(i) = value(i) + fbuf%FLOC(ifail)%DAMMX(nel*mode+i)/(nptr*npts)
3943 is_written_value(i) = 1
3954 ELSEIF ( iply > 0 .AND. ipt == -1 )
THEN
3956 IF (ifailure > 0)
THEN
3958 nptt = elbuf_tab(ng)%BUFLY(j)%NPTT
3960 IF (igtyp == 17 .OR. igtyp == 51)
THEN
3961 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
3962 ELSEIF (igtyp == 52)
THEN
3963 id_ply=
ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
3965 IF (id_ply == iply )
THEN
3970 fbuf => elbuf_tab(ng)%BUFLY(j)%FAIL(ir,is,it)
3971 DO ifail = 1,elbuf_tab(ng)%BUFLY(j)%NFAIL
3972 IF (fbuf%FLOC(ifail)%IDFAIL == id)
THEN
3973 value(i) = value(i) +
3974 . fbuf%FLOC(ifail)%DAMMX(nel*mode+i)/(nptr*npts*nptt)
3975 is_written_value(i) = 1
3986 ELSEIF ( iply > 0 .AND. ipt == -4 )
THEN
3988 nptt = elbuf_tab(ng)%BUFLY(j)%NPTT
3990 IF (igtyp == 17 .OR. igtyp == 51)
THEN
3991 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
3992 ELSEIF (igtyp == 52)
THEN
3993 id_ply=
ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
3995 IF (id_ply == iply )
THEN
3996 IF (mod(nptt,2) == 0)
THEN
4000 fbuf1 => elbuf_tab(ng)%BUFLY(j)%FAIL(ir,is,nint(half*nptt))
4001 fbuf2 => elbuf_tab(ng)%BUFLY(j)%FAIL(ir,is,nint(half*nptt)+1)
4003 DO ifail = 1,elbuf_tab(ng)%BUFLY(j)%NFAIL
4004 IF (fbuf1%FLOC(ifail)%IDFAIL == id)
THEN
4005 dmgmx = half*(fbuf1%FLOC(ifail)%DAMMX(nel*mode+i) +
4006 . fbuf2%FLOC(ifail)%DAMMX(nel*mode+i))
4007 value(i) = value(i) + dmgmx/(nptr*npts)
4008 is_written_value(i) = 1
4018 fbuf => elbuf_tab(ng)%BUFLY(j)%FAIL(ir,is,nint(half*nptt))
4020 DO ifail = 1,elbuf_tab(ng)%BUFLY(j)%NFAIL
4021 IF (fbuf%FLOC(ifail)%IDFAIL == id)
THEN
4022 dmgmx = fbuf%FLOC(ifail)%DAMMX(nel*mode+i)
4023 value(i) = value(i) + dmgmx/(nptr*npts)
4024 is_written_value(i) = 1
4035 ELSEIF (ilay <= nlay .AND. ilay > 0 .AND. ipt <= mpt .AND. ipt > 0 )
THEN
4036 IF (ifailure > 0)
THEN
4037 IF (igtyp == 51 .OR. igtyp == 52)
THEN
4038 nptt = elbuf_tab(ng)%BUFLY(ilay)%NPTT
4039 IF (ipt <= nptt)
THEN
4043 fbuf => elbuf_tab(ng)%BUFLY(ilay)%FAIL(ir,is,ipt)
4045 DO ifail = 1,elbuf_tab(ng)%BUFLY(ilay)%NFAIL
4046 IF (fbuf%FLOC(ifail)%IDFAIL == id)
THEN
4047 dmgmx = fbuf%FLOC(ifail)%DAMMX(nel
4048 is_written_value(i) = 1
4051 value(i) = value(i) + dmgmx/(nptr*npts)
4059 ELSEIF (ilay <= nlay .AND. ilay > 0 .AND. ipt == -1)
THEN
4060 IF (ifailure > 0)
THEN
4062 IF (igtyp == 10 .OR. igtyp == 11 .OR. igtyp == 16 .OR. igtyp == 17)
THEN
4066 fbuf => elbuf_tab(ng)%BUFLY(ilay)%FAIL(ir,is,1)
4068 DO ifail = 1,elbuf_tab(ng)%BUFLY(ilay)%NFAIL
4069 IF (fbuf%FLOC(ifail)%IDFAIL == id)
THEN
4070 dmgmx = fbuf%FLOC(ifail)%DAMMX(nel*mode+i)
4071 is_written_value(i) = 1
4074 value(i) = value(i) + dmgmx/(nptr*npts)
4079 ELSEIF (igtyp == 51 .OR. igtyp == 52)
THEN
4080 nptt = elbuf_tab(ng)%BUFLY(ilay)%NPTT
4085 fbuf => elbuf_tab(ng)%BUFLY(ilay)%FAIL(ir,is,it)
4087 DO ifail = 1,elbuf_tab(ng)%BUFLY(ilay)%NFAIL
4088 IF (fbuf%FLOC(ifail)%IDFAIL == id)
THEN
4089 dmgmx = fbuf%FLOC(ifail)%DAMMX(nel*mode+i)
4090 is_written_value(i) = 1
4093 value(i) = value(i) + dmgmx/(nptt*nptr*npts)
4101 ELSEIF ( ipt <= npt .AND. ipt > 0)
THEN
4102 IF (ifailure > 0)
THEN
4103 IF (igtyp == 1 .OR. igtyp == 9 )
THEN
4107 fbuf => elbuf_tab(ng)%BUFLY(1)%FAIL(ir,is,ipt)
4109 DO ifail = 1,elbuf_tab(ng)%BUFLY(1)%NFAIL
4110 IF (fbuf%FLOC(ifail)%IDFAIL == id)
THEN
4111 dmgmx = fbuf%FLOC(ifail)%DAMMX(nel*mode+i)
4112 is_written_value(i) = 1
4115 value(i) = value(i) + dmgmx/(nptr*npts)
4122 ELSEIF (ipt == -4)
THEN
4123 IF (ifailure > 0)
THEN
4124 IF (igtyp == 1 .OR. igtyp == 9 )
THEN
4125 IF (mod(npt,2) == 0)
THEN
4129 fbuf1 => elbuf_tab(ng)%BUFLY(1)%FAIL(ir,is,nint(half*npt))
4130 fbuf2 => elbuf_tab(ng)%BUFLY(1)%FAIL(ir,is,nint(half*npt)+1)
4132 DO ifail = 1,elbuf_tab(ng)%BUFLY(1)%NFAIL
4133 IF (fbuf1%FLOC(ifail)%IDFAIL == id)
THEN
4134 dmgmx = half*(fbuf1%FLOC(ifail)%DAMMX(nel*mode+i) +
4135 . fbuf2%FLOC(ifail)%DAMMX(nel*mode+i))
4136 is_written_value(i) = 1
4139 value(i) = value(i) + dmgmx/(nptr*npts)
4147 fbuf => elbuf_tab(ng)%BUFLY(1)%FAIL(ir,is,nint(half*npt))
4149 DO ifail = 1,elbuf_tab(ng)%BUFLY(1)%NFAIL
4150 IF (fbuf%FLOC(ifail)%IDFAIL == id)
THEN
4151 dmgmx = fbuf%FLOC(ifail)%DAMMX(nel*mode+i)
4152 is_written_value(i) = 1
4155 value(i) = value(i) + dmgmx/(nptr*npts)
4166 ELSEIF (keyword ==
'DAMG/MEMB')
THEN
4170 IF (gbuf%G_DMG > 0)
THEN
4179 ipt = iabs(nlay)/2 + 1
4180 IF (elbuf_tab(ng)%BUFLY(ipt)%L_DMG > 0)
THEN
4181 nptt = elbuf_tab(ng)%BUFLY(ipt)%NPTT
4186 lbuf => elbuf_tab(ng)%BUFLY(ipt)%LBUF(ir,is,it)
4187 value(i) = value(i) + lbuf%DMG(i)/(nptr*npts*nptt)
4191 is_written_value(i) = 1
4195 ELSEIF (mpt > 0)
THEN
4196 ipt = iabs(npt)/2 + 1
4197 IF (elbuf_tab(ng)%BUFLY(1)%L_DMG > 0)
THEN
4201 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,ipt
4202 value(i) = value(i) + lbuf%DMG(i)/(nptr*npts)
4205 is_written_value(i) = 1
4211 ELSEIF (keyword ==
'DAMG')
THEN
4218 IF (gbuf%G_DMG > 0)
THEN
4226 IF (mode == -1)
THEN
4228 IF (ilay == -1 .AND. ipt == -1 .AND. iply == -1)
THEN
4234 imat = elbuf_tab(ng)%BUFLY(n)%IMAT
4235 mat_id = matparam(imat)%MAT_ID
4236 IF ((id == -1) .OR. ((id > 0).AND.(mat_id == id)))
THEN
4237 IF (elbuf_tab(ng)%BUFLY(n)%L_DMG > 0)
THEN
4238 nptt = elbuf_tab(ng)%BUFLY(n)%NPTT
4242 lbuf => elbuf_tab(ng)%BUFLY(n)%LBUF(ir,is,it
4243 value(i) = value(i) + lbuf%DMG(i)/(nptt*nptr*npts)
4248 is_written_value(i) = 1
4251 value(i) = value(i) / nlay
4255 ELSEIF (mpt > 0)
THEN
4256 IF (elbuf_tab(ng)%BUFLY(1)%L_DMG > 0)
THEN
4257 nptt = elbuf_tab(ng)%BUFLY(1)%NPTT
4258 imat = elbuf_tab(ng)%BUFLY(1)%IMAT
4259 mat_id = matparam(imat)%MAT_ID
4260 IF ((id == -1) .OR. ((id > 0).AND.(mat_id == id)))
THEN
4265 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,it)
4266 value(i) = value(i) + lbuf%DMG(i)/(nptt*nptr*npts)
4270 is_written_value(i) = 1
4278 ELSEIF (iply > 0 .AND. ipt <= mpt .AND. ipt > 0)
THEN
4280 imat = elbuf_tab(ng)%BUFLY(j)%IMAT
4281 mat_id = matparam(imat)%MAT_ID
4282 IF ((id == -1) .OR. ((id > 0).AND.(mat_id == id)))
THEN
4283 IF (elbuf_tab(ng)%BUFLY(j)%L_DMG > 0)
THEN
4284 nptt = elbuf_tab(ng)%BUFLY(j)%NPTT
4286 IF (igtyp == 17 .OR. igtyp == 51)
THEN
4287 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
4288 ELSEIF (igtyp == 52)
THEN
4291 IF (id_ply == iply)
THEN
4292 IF (ipt <= nptt)
THEN
4296 lbuf => elbuf_tab(ng)%BUFLY(j)%LBUF(ir,is,ipt)
4297 value(i) = value(i) + lbuf%DMG(i)/(nptr
4300 is_written_value(i) = 1
4310 ELSEIF (iply > 0 .AND. ipt == -1)
THEN
4312 imat = elbuf_tab(ng)%BUFLY(j)%IMAT
4313 mat_id = matparam(imat)%MAT_ID
4314 IF ((id == -1) .OR. ((id > 0).AND.(mat_id == id)))
THEN
4315 IF (elbuf_tab(ng)%BUFLY(j)%L_DMG > 0)
THEN
4316 nptt = elbuf_tab(ng)%BUFLY(j)%NPTT
4318 IF (igtyp == 17 .OR. igtyp == 51)
THEN
4319 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
4320 ELSEIF (igtyp == 52)
THEN
4321 id_ply =
ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
4323 IF (id_ply == iply)
THEN
4328 lbuf => elbuf_tab(ng)%BUFLY(j)%LBUF
4329 value(i) = value(i) + lbuf%DMG(i)/(nptr*npts*nptt)
4333 is_written_value(i) = 1
4342 ELSEIF ( iply > 0 .AND. ipt == -4 )
THEN
4344 imat = elbuf_tab(ng)%BUFLY(j)%IMAT
4345 mat_id = matparam(imat)%MAT_ID
4346 IF ((id == -1) .OR. ((id > 0).AND.(mat_id == id)))
THEN
4347 IF (elbuf_tab(ng)%BUFLY(j)%L_DMG > 0)
THEN
4348 nptt = elbuf_tab(ng)%BUFLY(j)%NPTT
4350 IF (igtyp == 17 .OR. igtyp == 51)
THEN
4351 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
4352 ELSEIF (igtyp == 52)
THEN
4353 id_ply=
ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
4355 IF (id_ply == iply )
THEN
4356 IF (mod(nptt,2) == 0)
THEN
4360 lbuf1 => elbuf_tab(ng)%BUFLY(j)%LBUF(ir,is
4361 lbuf2 => elbuf_tab(ng)%BUFLY(j)%LBUF(ir,is,nint(half*nptt)+1)
4362 value(i) = value(i) + half*(lbuf1%DMG(i) + lbuf2%DMG(i)
4364 is_written_value(i) = 1
4373 lbuf => elbuf_tab(ng)%BUFLY(j)%LBUF(ir,is,nint(half*nptt))
4374 value(i) = value(i) + lbuf%DMG(i)/(nptr*npts)
4375 is_written_value(i) = 1
4386 ELSEIF (ilay <= nlay .AND. ilay > 0)
THEN
4388 IF (igtyp == 10 .OR. igtyp == 11 .OR. igtyp == 16)
THEN
4389 imat = elbuf_tab(ng)%BUFLY(ilay)%IMAT
4390 mat_id = matparam(imat)%MAT_ID
4391 IF ((id == -1) .OR. ((id > 0).AND.(mat_id == id)))
THEN
4392 IF (elbuf_tab(ng)%BUFLY(ilay)%L_DMG > 0)
THEN
4396 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,1)
4397 value(i) = value(i) + lbuf%DMG(i)/(nptr*npts
4400 is_written_value(i) = 1
4408 ELSEIF (ipt <= npt .AND. ipt > 0)
THEN
4409 IF (igtyp == 1 .OR. igtyp == 9)
THEN
4410 imat = elbuf_tab(ng)%BUFLY(1)%IMAT
4411 mat_id = matparam(imat)%MAT_ID
4412 IF ((id == -1) .OR. ((id > 0).AND.(mat_id == id)))
THEN
4413 IF (elbuf_tab(ng)%BUFLY(1)%L_DMG > 0)
THEN
4417 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,ipt)
4418 value(i) = value(i) + lbuf%DMG(i)/(nptr*npts)
4421 is_written_value(i) = 1
4427 ELSEIF (ipt == -4)
THEN
4428 IF (igtyp == 1 .OR. igtyp == 9 )
THEN
4429 imat = elbuf_tab(ng)%BUFLY(1)%IMAT
4430 mat_id = matparam(imat)%MAT_ID
4431 IF ((id == -1) .OR. ((id > 0).AND.(mat_id == id)))
THEN
4432 IF (elbuf_tab(ng)%BUFLY(1)%L_DMG > 0)
THEN
4433 IF (mod(npt,2) == 0)
THEN
4437 lbuf1 => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,nint(half*npt))
4438 lbuf2 => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,nint(half*npt)+1)
4439 value(i) = value(i) + half*(lbuf1%DMG(i) + lbuf2%DMG(i))/(nptr*npts)
4442 is_written_value(i) = 1
4448 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,nint(half*npt))
4449 value(i) = value(i) + lbuf%DMG(i)/(nptr*npts)
4452 is_written_value(i) = 1
4463 IF (ilay == -1 .AND. ipt == -1 .AND. iply == -1)
THEN
4469 imat = elbuf_tab(ng)%BUFLY(n)%IMAT
4470 nmod = matparam(imat)%NMOD
4471 mat_id = matparam(imat)%MAT_ID
4472 IF ((nmod > 0 .AND. mode <= nmod) .AND. (mat_id == id))
THEN
4473 IF (elbuf_tab(ng)%BUFLY(n)%L_DMG > 0)
THEN
4474 nptt = elbuf_tab(ng)%BUFLY(n)%NPTT
4478 lbuf => elbuf_tab(ng)%BUFLY(n)%LBUF(ir,is,it)
4479 value(i) = value(i) + lbuf%DMG(nel*mode+i)/(nptt*nptr*npts)
4484 is_written_value(i) = 1
4487 value(i) = value(i) / nlay
4491 ELSEIF (mpt > 0)
THEN
4492 imat = elbuf_tab(ng)%BUFLY(1)%IMAT
4493 nmod = matparam(imat)%NMOD
4494 mat_id = matparam(imat)%MAT_ID
4495 IF ((nmod > 0 .AND. mode <= nmod) .AND. (mat_id == id))
THEN
4496 IF (elbuf_tab(ng)%BUFLY(1)%L_DMG > 0)
THEN
4497 nptt = elbuf_tab(ng)%BUFLY(1)%NPTT
4502 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,it)
4507 is_written_value(i) = 1
4515 ELSEIF (iply > 0 .AND. ipt <= mpt .AND. ipt > 0)
THEN
4517 imat = elbuf_tab(ng)%BUFLY(j)%IMAT
4518 nmod = matparam(imat)%NMOD
4519 mat_id = matparam(imat)%MAT_ID
4520 IF ((nmod > 0 .AND. mode <= nmod) .AND. (mat_id == id))
THEN
4521 IF (elbuf_tab(ng)%BUFLY(j)%L_DMG > 0)
THEN
4522 nptt = elbuf_tab(ng)%BUFLY(j)%NPTT
4524 IF (igtyp == 17 .OR. igtyp == 51)
THEN
4525 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
4526 ELSEIF (igtyp == 52)
THEN
4527 id_ply =
ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
4529 IF (id_ply == iply)
THEN
4530 IF (ipt <= nptt)
THEN
4534 lbuf => elbuf_tab(ng)%BUFLY(j)%LBUF(ir,is,ipt)
4535 value(i) = value(i) + lbuf%DMG(nel*mode+i)/(nptr*npts)
4538 is_written_value(i) = 1
4548 ELSEIF (iply > 0 .AND. ipt == -1)
THEN
4550 imat = elbuf_tab(ng)%BUFLY(j)%IMAT
4551 nmod = matparam(imat)%NMOD
4552 mat_id = matparam(imat)%MAT_ID
4553 IF ((nmod > 0 .AND. mode <= nmod) .AND. (mat_id == id))
THEN
4554 IF (elbuf_tab(ng)%BUFLY(j)%L_DMG > 0)
THEN
4555 nptt = elbuf_tab(ng)%BUFLY(j)%NPTT
4557 IF (igtyp == 17 .OR. igtyp == 51)
THEN
4558 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
4559 ELSEIF (igtyp == 52)
THEN
4560 id_ply =
ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
4562 IF (id_ply == iply)
THEN
4567 lbuf => elbuf_tab(ng)%BUFLY(j)%LBUF(ir,is,it)
4568 value(i) = value(i) + lbuf%DMG(nel*mode+i)/(nptr*npts*nptt)
4572 is_written_value(i) = 1
4581 ELSEIF ( iply > 0 .AND. ipt == -4 )
THEN
4583 imat = elbuf_tab(ng)%BUFLY(j)%IMAT
4584 mat_id = matparam(imat)%MAT_ID
4585 IF ((id == -1) .OR. ((id > 0).AND.(mat_id == id)))
THEN
4586 IF (elbuf_tab(ng)%BUFLY(j)%L_DMG > 0)
THEN
4587 nptt = elbuf_tab(ng)%BUFLY(j)%NPTT
4589 IF (igtyp == 17 .OR. igtyp == 51)
THEN
4590 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
4591 ELSEIF (igtyp == 52)
THEN
4592 id_ply=
ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
4594 IF (id_ply == iply )
THEN
4595 IF (mod(nptt,2) == 0)
THEN
4599 lbuf1 => elbuf_tab(ng)%BUFLY(j)%LBUF(ir,is,nint(half*nptt))
4600 lbuf2 => elbuf_tab(ng)%BUFLY(j)%LBUF(ir,is,nint(half*nptt)+1)
4601 value(i) = value(i) + half*(lbuf1%DMG(nel*mode+i) +
4602 . lbuf2%DMG(nel*mode+i)/(nptr*npts))
4603 is_written_value(i) = 1
4611 lbuf => elbuf_tab(ng)%BUFLY(j)%LBUF(ir,is,nint(half*nptt))
4612 value(i) = value(i) + lbuf%DMG(nel*mode+i)/(nptr*npts)
4613 is_written_value(i) = 1
4625 ELSEIF (ilay <= nlay .AND. ilay > 0)
THEN
4627 IF (igtyp == 10 .OR. igtyp == 11 .OR. igtyp == 16)
THEN
4628 imat = elbuf_tab(ng)%BUFLY(ilay)%IMAT
4629 nmod = matparam(imat)%NMOD
4630 mat_id = matparam(imat)%MAT_ID
4631 IF ((nmod > 0 .AND. mode <= nmod) .AND. (mat_id == id))
THEN
4632 IF (elbuf_tab(ng)%BUFLY(ilay)%L_DMG > 0)
THEN
4636 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,1)
4637 value(i) = value(i) + lbuf%DMG(nel*mode+i)/(nptr*npts)
4640 is_written_value(i) = 1
4648 ELSEIF (ipt <= npt .AND. ipt > 0)
THEN
4649 IF (igtyp == 1 .OR. igtyp == 9)
THEN
4650 imat = elbuf_tab(ng)%BUFLY(1)%IMAT
4651 nmod = matparam(imat)%NMOD
4652 mat_id = matparam(imat)%MAT_ID
4653 IF ((nmod > 0 .AND. mode <= nmod) .AND. (mat_id == id))
THEN
4654 IF (elbuf_tab(ng)%BUFLY(1)%L_DMG > 0)
THEN
4658 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,ipt)
4659 value(i) = value(i) + lbuf%DMG(nel*mode+i)/(nptr*npts)
4662 is_written_value(i) = 1
4668 ELSEIF (ipt == -4)
THEN
4669 IF (igtyp == 1 .OR. igtyp == 9)
THEN
4670 imat = elbuf_tab(ng)%BUFLY(1)%IMAT
4671 nmod = matparam(imat)%NMOD
4672 mat_id = matparam(imat)%MAT_ID
4673 IF ((nmod > 0 .AND. mode <= nmod) .AND. (mat_id == id))
THEN
4674 IF (elbuf_tab(ng)%BUFLY(1)%L_DMG > 0)
THEN
4675 IF (mod(npt,2) == 0)
THEN
4679 lbuf1 => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,nint(half*npt))
4680 lbuf2 => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,nint(half*npt)+1)
4681 value(i) = value(i) + half*(lbuf1%DMG(nel*mode+i) +
4682 . lbuf2%DMG(nel*mode+i))/(nptr*npts)
4685 is_written_value(i) = 1
4691 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,nint(half*npt))
4692 value(i) = value(i) + lbuf%DMG(nel*mode+i)/(nptr*npts)
4695 is_written_value(i) = 1
4705 ELSEIF (keyword ==
'DAMINI')
THEN
4707 IF (ifailure > 0)
THEN
4715 IF ( ilay == -1 .AND. ipt == -1 .AND. iply == -1)
THEN
4719 nptt = elbuf_tab(ng)%BUFLY(n)%NPTT
4723 fbuf => elbuf_tab(ng)%BUFLY(n)%FAIL(ir,is,it)
4725 DO ifail = 1,elbuf_tab(ng)%BUFLY(n)%NFAIL
4726 IF (fbuf%FLOC(ifail)%LF_DAMINI > 0)
THEN
4727 maxdamini =
max(maxdamini,fbuf%FLOC(ifail)%DAMINI(i))
4730 value(i) = value(i) + maxdamini/(nptt*nptr*npts)
4735 value(i) = value(i) / nlay
4736 is_written_value(i) = 1
4738 ELSEIF (mpt > 0)
THEN
4739 nptt = elbuf_tab(ng)%BUFLY(1)%NPTT
4744 fbuf => elbuf_tab(ng)%BUFLY(1)%FAIL(ir,is,it)
4746 DO ifail = 1,elbuf_tab(ng)%BUFLY(1)%NFAIL
4747 IF (fbuf%FLOC(ifail)%LF_DAMINI > 0)
THEN
4748 maxdamini =
max(maxdamini,fbuf%FLOC(ifail)%DAMINI(i))
4751 value(i) = value(i) + maxdamini/(nptt*nptr*npts)
4755 is_written_value(i) = 1
4759 ELSEIF ( iply > 0 .AND. ipt <= mpt .AND. ipt > 0 )
THEN
4761 nptt = elbuf_tab(ng)%BUFLY(j)%NPTT
4763 IF (igtyp == 17 .OR. igtyp == 51)
THEN
4764 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
4765 ELSEIF (igtyp == 52)
THEN
4766 id_ply =
ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
4768 IF (id_ply == iply)
THEN
4769 IF (ipt <= nptt)
THEN
4773 fbuf => elbuf_tab(ng)%BUFLY(j)%FAIL(ir,is,ipt)
4775 DO ifail = 1, elbuf_tab(ng)%BUFLY(j)%NFAIL
4776 IF (fbuf%FLOC(ifail)%LF_DAMINI > 0)
THEN
4777 maxdamini =
max(maxdamini,fbuf%FLOC(ifail)%DAMINI(i))
4780 value(i) = value(i) + maxdamini/(nptr*npts)
4783 is_written_value(i) = 1
4789 ELSEIF ( iply > 0 .AND. ipt == -1 )
THEN
4791 nptt = elbuf_tab(ng)%BUFLY(j)%NPTT
4793 IF (igtyp == 17 .OR. igtyp == 51)
THEN
4794 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
4795 ELSEIF (igtyp == 52)
THEN
4796 id_ply =
ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
4798 IF (id_ply == iply)
THEN
4803 fbuf => elbuf_tab(ng)%BUFLY(j)%FAIL(ir,is,it)
4805 DO ifail = 1, elbuf_tab(ng)%BUFLY(j)%NFAIL
4806 IF (fbuf%FLOC(ifail)%LF_DAMINI > 0)
THEN
4807 maxdamini =
max(maxdamini,fbuf%FLOC(ifail)%DAMINI(i))
4810 value(i) = value(i) + maxdamini/(nptr*npts
4814 is_written_value(i) = 1
4819 ELSEIF (ilay <= nlay .AND. ilay > 0 .AND. ipt <= mpt .AND. ipt
THEN
4820 IF (igtyp == 51 .OR. igtyp == 52)
THEN
4824 fbuf => elbuf_tab(ng)%BUFLY(ilay)%FAIL(ir,is,ipt)
4826 DO ifail = 1,elbuf_tab(ng)%BUFLY(ilay)%NFAIL
4827 IF (fbuf%FLOC(ifail)%LF_DAMINI > 0)
THEN
4828 maxdamini =
max(maxdamini,fbuf%FLOC(ifail)%DAMINI(i
4831 value(i) = value(i) + maxdamini/(nptr*npts)
4832 is_written_value(i) = 1
4838 ELSEIF ( ilay <= nlay .AND. ilay > 0)
THEN
4840 IF (igtyp == 10 .OR. igtyp == 11 .OR. igtyp == 16 .OR. igtyp == 17)
THEN
4844 fbuf => elbuf_tab(ng)%BUFLY(ilay)%FAIL(ir,is,1)
4846 DO ifail = 1,elbuf_tab(ng)%BUFLY(ilay)%NFAIL
4847 IF (fbuf%FLOC(ifail)%LF_DAMINI > 0)
THEN
4848 maxdamini =
max(maxdamini,fbuf%FLOC(ifail)%DAMINI(i))
4851 value(i) = value(i) + maxdamini/(nptr*npts)
4854 is_written_value(i) = 1
4856 ELSEIF (igtyp == 51 .OR. igtyp == 52)
THEN
4857 nptt = elbuf_tab(ng)%BUFLY(ilay)%NPTT
4862 fbuf => elbuf_tab(ng)%BUFLY(ilay)%FAIL(ir,is,it)
4864 DO ifail = 1,elbuf_tab(ng)%BUFLY(ilay)%NFAIL
4865 IF (fbuf%FLOC(ifail)%LF_DAMINI >
THEN
4866 maxdamini =
max(maxdamini,fbuf%FLOC(ifail)%DAMINI(i))
4869 value(i) = value(i) + maxdamini/(nptt*nptr*npts)
4873 is_written_value(i) = 1
4877 ELSEIF ( ipt <= npt .AND. ipt > 0)
THEN
4878 IF (igtyp == 1 .OR. igtyp == 9 )
THEN
4882 fbuf => elbuf_tab(ng)%BUFLY(1)%FAIL(ir,is,ipt)
4884 DO ifail = 1,elbuf_tab(ng)%BUFLY(1)%NFAIL
4885 IF (fbuf%FLOC(ifail)%LF_DAMINI > 0)
THEN
4886 maxdamini =
max(maxdamini,fbuf%FLOC(ifail)%DAMINI(i))
4889 value(i) = value(i) + maxdamini/(nptr*npts)
4890 is_written_value(i) = 1
4898 ELSE IF (keyword ==
'TDEL')
THEN
4903 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
4907 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,it)
4910 value(i) =
max(value(i),fbuf%FLOC(ifail)%TDEL(i))
4911 is_written_value(i) = 1
4919 ELSE IF (keyword ==
'SSP')
THEN
4923 IF (mlw == 151)
THEN
4925 value(i) = multi_fvm%SOUND_SPEED(i + nft)
4926 is_written_value(i) = 1
4929 l = elbuf_tab(ng)%BUFLY(1)%L_SSP
4931 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
4933 value(i) = lbuf%SSP(i)
4934 is_written_value(i) = 1
4939 ELSEIF(keyword ==
'SCHLIEREN')
THEN
4941 ialel=iparg(7,ng)+iparg(11,ng)
4943 IF(ity ==7 .AND. n2d /= 0)
THEN
4949 2 iparg , wa_l , elbuf_tab , ale_connect , gbuf%VOL,
4953 is_written_value(i) = 1
4958 ELSE IF ( keyword ==
'ERROR/THICK')
THEN
4962 value(i) = err_thk_sh4(i)
4963 is_written_value(i) = 1
4967 value(i) = err_thk_sh3(i)
4972 ELSE IF (keyword ==
'DOMAIN')
THEN
4977 is_written_value(i) = 1
4980 ELSEIF (keyword ==
'SIGEQ')
THEN
4983 IF (gbuf%G_SEQ > 0)
THEN
4988 bufly => elbuf_tab(ng)%BUFLY(il)
4989 nptg = nptg + bufly%NPTT*nptr*npts
4994 bufly => elbuf_tab(ng)%BUFLY(il)
4998 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
5000 value(i) = value(i) + lbuf%SEQ(i)/nptg
5001 is_written_value(i) = 1
5010 s1 = gbuf%FOR(jj(1)+i)
5011 s2 = gbuf%FOR(jj(2)+i)
5012 s12= gbuf%FOR(jj(3)+i)
5013 vonm2= s1*s1 + s2*s2 - s1*s2 + three*s12*s12
5014 value(i) = sqrt(vonm2)
5015 is_written_value(i) = 1
5019 ELSEIF (keyword ==
'NL_EPSP')
THEN
5020 IF (gbuf%G_PLANL > 0)
THEN
5027 nptt = elbuf_tab(ng)%BUFLY(1)%NPTT
5028 nptg = nptr*npts*nptt
5033 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,it)
5034 value(i) = value(i) + lbuf%PLANL(i)/nptg
5038 is_written_value(i) = 1
5041 ELSEIF ( ipt <= npt .AND. ipt > 0)
THEN
5046 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,ipt)
5047 value(i) = value(i) + lbuf%PLANL(i)/nptg
5050 is_written_value(i) = 1
5055 ELSEIF (keyword ==
'NL_EPSD')
THEN
5057 IF (gbuf%G_EPSDNL > 0)
THEN
5065 nptt = elbuf_tab(ng)%BUFLY(1)%NPTT
5066 nptg = nptr*npts*nptt
5071 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,it)
5072 value(i) = value(i) + lbuf%EPSDNL(i)/nptg
5076 is_written_value(i) = 1
5079 ELSEIF ( ipt <= npt .AND. ipt > 0)
THEN
5084 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,ipt)
5085 value(i) = value(i) + lbuf%EPSDNL(i)/nptg
5088 is_written_value(i) = 1
5093 ELSEIF (keyword ==
'TSAIWU')
THEN
5095 IF ( ilay == -1 .AND. ipt == -1 .AND. iply == -1 .AND. gbuf%G_TSAIWU > 0)
THEN
5097 ipt = iabs(nlay)/2 + 1
5098 bufly => elbuf_tab(ng)%BUFLY(ipt)
5099 IF (bufly%L_TSAIWU > 0)
THEN
5105 value(i) = value(i) + bufly%LBUF(ir,is,it)%TSAIWU(i)/(nptt*nptr*npts)
5106 is_written_value(i) = 1
5113 bufly => elbuf_tab(ng)%BUFLY(1)
5114 IF (bufly%L_TSAIWU > 0)
THEN
5116 ipt = iabs(nptt)/2 + 1
5120 value(i) = value(i) + bufly%LBUF(ir,is,ipt)%TSAIWU(i
5121 is_written_value(i) = 1
5129 ELSEIF ( iply > 0 .AND. (ipt <= mpt .AND. ipt > 0 ) .AND. gbuf%G_TSAIWU > 0)
THEN
5133 IF (igtyp == 17 .OR. igtyp == 51)
THEN
5134 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
5135 ELSEIF (igtyp == 52)
THEN
5136 id_ply =
ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
5139 IF (id_ply == iply )
THEN
5140 bufly => elbuf_tab(ng)%BUFLY(j)
5141 IF (igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52 )
THEN
5143 IF( ipt <= nptt)
THEN
5148 value(i) = value(i) + bufly%LBUF(ir,is,ipt)%TSAIWU(i)/npg
5149 is_written_value(i) = 1
5155 value(i) = bufly%LBUF(1,1,ipt)%TSAIWU(i)
5156 is_written_value(i) = 1
5165 ELSEIF ( iply > 0 .AND. ipt == -1 .AND. gbuf%G_TSAIWU > 0)
THEN
5169 IF (igtyp == 17 .OR. igtyp == 51)
THEN
5170 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
5171 ELSEIF (igtyp == 52)
THEN
5172 id_ply =
ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
5175 IF (id_ply == iply )
THEN
5176 bufly => elbuf_tab(ng)%BUFLY(j)
5177 IF (igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52 )
THEN
5180 IF (ipt <= nptt)
THEN
5185 value(i) = value(i) + bufly%LBUF(ir,is,ipt)%TSAIWU(i)/(npg*nptt)
5186 is_written_value(i) = 1
5193 is_written_value(i) = 1
5203 ELSEIF ( (ilay <= nlay .AND. ilay > 0) .AND. (ipt <= mpt .AND. ipt > 0 ) .AND. gbuf%G_TSAIWU > 0)
THEN
5204 IF (igtyp == 51 .OR. igtyp == 52)
THEN
5205 bufly => elbuf_tab(ng)%BUFLY(ilay)
5207 IF ((bufly%L_TSAIWU > 0).AND.(ipt <= nptt))
THEN
5210 lbuf => bufly%LBUF(ir,is,ipt)
5212 value(i) = value(i) + lbuf%TSAIWU(i)/npg
5213 is_written_value(i) = 1
5221 ELSEIF ( ilay <= nlay .AND. ilay > 0 .AND. gbuf%G_TSAIWU > 0)
THEN
5222 IF (igtyp == 10 .OR. igtyp == 11 .OR. igtyp == 16 .OR. igtyp == 17)
THEN
5223 bufly => elbuf_tab(ng)%BUFLY(ilay)
5224 IF (bufly%L_TSAIWU > 0)
THEN
5227 lbuf => bufly%LBUF(ir,is,1)
5229 value(i) = value(i) + lbuf%TSAIWU(i)/npg
5230 is_written_value(i) = 1
5235 ELSEIF (igtyp == 51 .OR. igtyp == 52)
THEN
5236 bufly => elbuf_tab(ng)%BUFLY(ilay)
5238 IF (bufly%L_TSAIWU > 0)
THEN
5242 lbuf => bufly%LBUF(ir,is,it)
5244 value(i) = value(i) + lbuf%TSAIWU(i)/(npg*nptt)
5245 is_written_value(i) = 1
5254 ELSEIF ( ipt <= mpt .AND. ipt > 0 .AND. gbuf%G_TSAIWU > 0)
THEN
5255 IF (igtyp == 1 .OR. igtyp == 9)
THEN
5256 bufly => elbuf_tab(ng)%BUFLY(1)
5257 IF (bufly%L_TSAIWU > 0)
THEN
5260 lbuf => bufly%LBUF(ir,is,ipt)
5262 value(i) = value(i) + lbuf%TSAIWU(i)/npg
5263 is_written_value(i) = 1
5271 ELSEIF (keyword ==
'TEMP')
THEN
5273 value(1:nel) = elbuf_tab(ng)%GBUF%TEMP(1:nel)
5274 is_written_value(1:nel) = 1
5279 IF (elbuf_tab(ng)%BUFLY(il)%L_TEMP > 0)
THEN
5280 nptt = nptt + elbuf_tab(ng)%BUFLY(il)%NPTT
5283 nptg = nptr*npts*nptt
5285 IF (elbuf_tab(ng)%BUFLY(il)%L_TEMP > 0)
THEN
5286 is_written_value(1:nel) = 1
5287 DO it=1,elbuf_tab(ng)%BUFLY(il)%NPTT
5290 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
5291 value(1:nel) = value(1:nel) + lbuf%TEMP(1:nel)/nptg
5299 ELSEIF(keyword ==
'BULK')
THEN
5302 IF (gbuf%G_QVIS > 0)
THEN
5304 value(i) = gbuf%QVIS(i)
5305 is_written_value(i) = 1
5309 ELSEIF(keyword ==
'DT' )
THEN
5313 value(i) = gbuf%DT(i)
5314 is_written_value(i) = 1
5318 ELSEIF(keyword ==
'AMS' )
THEN
5320 IF(gbuf%G_ISMS>0)
THEN
5322 value(i) = gbuf%ISMS(i)
5323 is_written_value(i) = 1
5327 ELSEIF(keyword ==
'TDET' )
THEN
5329 IF (gbuf%G_TB > 0)
THEN
5331 value(i) = -gbuf%TB(i
5332 is_written_value(i) = 1
5336 ELSEIF(keyword ==
'BFRAC' )
THEN
5338 IF(gbuf%G_BFRAC>0)
THEN
5340 value(i) = gbuf%BFRAC(i)
5345 ELSEIF (keyword ==
'ALPHA')
THEN
5347 IF ( iply == -1 .and. ilay
THEN
5349 il = iabs(nlay)/2 + 1
5353 ipt = iabs(npt)/2 + 1
5355 bufly => elbuf_tab(ng)%BUFLY(il)
5357 IF (bufly%L_ANG > 0)
THEN
5359 lbuf1 => bufly%LBUF(1,1,ipt)
5360 lbuf2 => bufly%LBUF(2,1,ipt)
5361 lbuf3 => bufly%LBUF(1,2,ipt)
5362 lbuf4 => bufly%LBUF(2,2,ipt)
5364 a1 = abs( atand(lbuf1%ANG(i) ))
5365 a2 = abs( atand(lbuf2%ANG(i) ))
5366 a3 = abs( atand(lbuf3%ANG(i) ))
5367 a4 = abs( atand(lbuf4%ANG(i) ))
5368 value(i) = fourth*(a1 + a2 + a3 + a4)
5369 is_written_value(i) = 1
5373 value(i) = abs( atand(bufly%LBUF(1,1,ipt)%ANG(i) ))
5374 is_written_value(i) = 1
5379 ELSEIF (iply > 0)
THEN
5382 IF (igtyp == 17 .OR. igtyp == 51)
THEN
5383 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
5384 ELSEIF (igtyp == 52)
THEN
5385 id_ply =
ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
5388 IF (id_ply == iply )
THEN
5389 bufly => elbuf_tab(ng)%BUFLY(j)
5390 IF (bufly%L_ANG > 0)
THEN
5391 IF (igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52 )
THEN
5393 ipt = iabs(nptt)/2 + 1
5395 lbuf1 => bufly%LBUF(1,1,ipt)
5396 lbuf2 => bufly%LBUF(2,1,ipt)
5397 lbuf3 => bufly%LBUF(1,2,ipt)
5398 lbuf4 => bufly%LBUF(2,2,ipt)
5400 a1 = abs( atand(lbuf1%ANG(i) ))
5401 a2 = abs( atand(lbuf2%ANG(i) ))
5402 a3 = abs( atand(lbuf3%ANG(i) ))
5403 a4 = abs( atand(lbuf4%ANG(i) ))
5404 value(i) = fourth*(a1 + a2 + a3 + a4)
5405 is_written_value(i) = 1
5409 value(i) = abs( atand(bufly%LBUF(1,1,ipt)%ANG(i) ))
5410 is_written_value(i) = 1
5418 ELSEIF (iply == -1 .AND. ilay <= nlay .AND. ilay > 0)
THEN
5419 bufly => elbuf_tab(ng)%BUFLY(ilay)
5420 IF (bufly%L_ANG > 0)
THEN
5422 ipt = iabs(nptt)/2 + 1
5424 lbuf1 => bufly%LBUF(1,1,ipt)
5425 lbuf2 => bufly%LBUF(2,1,ipt)
5426 lbuf3 => bufly%LBUF(1,2,ipt)
5427 lbuf4 => bufly%LBUF(2,2,ipt)
5429 a1 = abs( atand(lbuf1%ANG(i) ))
5430 a2 = abs( atand(lbuf2%ANG(i) ))
5431 a3 = abs( atand(lbuf3%ANG(i) ))
5432 a4 = abs( atand(lbuf4%ANG(i) ))
5433 value(i) = fourth*(a1 + a2 + a3 + a4)
5434 is_written_value(i) = 1
5438 value(i) = abs( atand(bufly%LBUF(1,1,ipt)%ANG(i) ))
5439 is_written_value(i) = 1
5446 ELSEIF (keyword ==
'FLDF/MEMB')
THEN
5449 bufly => elbuf_tab(ng)%BUFLY(il)
5451 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
5452 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
5456 fbuf => bufly%FAIL(ir,is,ipt)
5458 IF (fbuf%FLOC(ifail)%ILAWF == 7)
THEN
5460 value(i) =
max(value(i),fbuf%FLOC(ifail)%DAM(i))
5461 is_written_value(i) = 1
5468 ELSEIF (keyword ==
'FLDF')
THEN
5471 IF (iply == -1 .AND. ilay <= nlay .AND. ilay > 0 .AND. ipt == -1 )
THEN
5472 IF (igtyp == 10 .OR. igtyp == 11 .OR. igtyp == 16 .OR. igtyp == 17)
THEN
5473 nfail = elbuf_tab(ng)%BUFLY(ilay)%NFAIL
5474 nptt = elbuf_tab(ng)%BUFLY(ilay)%NPTT
5479 fbuf => elbuf_tab(ng)%BUFLY(ilay)%FAIL(ir,is,ipt)
5481 IF (fbuf%FLOC(ifail)%ILAWF == 7)
THEN
5483 value(i) =
max(value(i),fbuf%FLOC(ifail)%DAM(i))
5484 is_written_value(i) = 1
5493 ELSEIF ( ipt <= mpt .AND. ipt > 0)
THEN
5494 IF (igtyp == 1 .OR. igtyp == 9)
THEN
5495 nfail = elbuf_tab(ng)%BUFLY(1)%NFAIL
5496 nptt = elbuf_tab(ng)%BUFLY(1)%NPTT
5499 fbuf => elbuf_tab(ng)%BUFLY(1)%FAIL(ir,is,ipt)
5501 IF (fbuf%FLOC(ifail)%ILAWF == 7)
THEN
5503 value(i) =
max(value(i),fbuf%FLOC(ifail)%DAM(i))
5504 is_written_value(i) = 1
5514 ELSEIF (keyword ==
'FLDZ/MEMB')
THEN
5517 bufly => elbuf_tab(ng)%BUFLY(il)
5519 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
5520 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
5524 fbuf => bufly%FAIL(ir,is,ipt)
5526 IF (fbuf%FLOC(ifail)%ILAWF == 7)
THEN
5528 rindx = fbuf%FLOC(ifail)%INDX(i)
5529 value(i) =
max(value(i),rindx)
5530 is_written_value(i) = 1
5537 ELSEIF (keyword ==
'FLDZ')
THEN
5540 IF (iply == -1 .AND. ilay <= nlay .AND. ilay > 0 .AND. ipt == -1 )
THEN
5541 IF (igtyp == 10 .OR. igtyp == 11 .OR. igtyp == 16 .OR. igtyp == 17)
THEN
5542 nfail = elbuf_tab(ng)%BUFLY(ilay)%NFAIL
5543 nptt = elbuf_tab(ng)%BUFLY(ilay)%NPTT
5548 fbuf => elbuf_tab(ng)%BUFLY(ilay)%FAIL(ir,is,ipt)
5550 IF (fbuf%FLOC(ifail)%ILAWF == 7)
THEN
5552 rindx = fbuf%FLOC(ifail)%INDX(i)
5553 VALUE(i) =
max(value(i),rindx)
5554 is_written_value(i) = 1
5563 ELSEIF ( ipt <= mpt .AND. ipt > 0)
THEN
5564 IF (igtyp == 1 .OR. igtyp == 9)
THEN
5565 nfail = elbuf_tab(ng)%BUFLY(1)%NFAIL
5566 nptt = elbuf_tab(ng)%BUFLY(1)%NPTT
5569 fbuf => elbuf_tab(ng)%BUFLY(1)%FAIL(ir,is,ipt)
5571 IF (fbuf%FLOC(ifail)%ILAWF == 7)
THEN
5573 rindx = fbuf%FLOC(ifail)%INDX(i)
5574 value(i) =
max(value(i),rindx)
5575 is_written_value(i) = 1
5585 ELSEIF (keyword ==
'HC_DSSE_F/MEMB')
THEN
5589 ipt = iabs(nlay)/2 + 1
5590 bufly => elbuf_tab(ng)%BUFLY(ipt)
5597 fbuf => bufly%FAIL(ir,is,it)
5599 IF (fbuf%FLOC(ifail)%ILAWF == 32)
THEN
5600 value(i) =
max(value(i),fbuf%FLOC(ifail)%DAM(i))
5601 is_written_value(i) = 1
5609 ELSEIF (mpt > 0)
THEN
5610 ipt = iabs(npt)/2 + 1
5611 bufly => elbuf_tab(ng)%BUFLY(1)
5616 fbuf => bufly%FAIL(ir,is,ipt)
5618 IF (fbuf%FLOC(ifail)%ILAWF == 32)
THEN
5619 value(i) =
max(value(i),fbuf%FLOC(ifail)%DAM(i))
5620 is_written_value(i) = 1
5629 ELSEIF (keyword ==
'HC_DSSE_F')
THEN
5632 IF (ilay == -1 .AND. ipt == -1 .AND. iply == -1)
THEN
5638 bufly => elbuf_tab(ng)%BUFLY(n)
5644 fbuf => bufly%FAIL(ir,is,it)
5646 IF (fbuf%FLOC(ifail)%ILAWF == 32)
THEN
5647 value(i) =
max(value(i),fbuf%FLOC(ifail)%DAM(i))
5648 is_written_value(i) = 1
5658 ELSEIF (mpt > 0)
THEN
5659 bufly => elbuf_tab(ng)%BUFLY(1)
5666 fbuf => bufly%FAIL(ir,is,it)
5668 IF (fbuf%FLOC(ifail)%ILAWF == 32)
THEN
5669 value(i) =
max(value(i),fbuf%FLOC(ifail)%DAM(i))
5670 is_written_value(i) = 1
5680 ELSEIF (iply > 0 .AND. ipt <= mpt .AND. ipt > 0)
THEN
5682 bufly => elbuf_tab(ng)%BUFLY(j)
5686 IF (igtyp == 17 .OR. igtyp == 51)
THEN
5687 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
5688 ELSEIF (igtyp == 52)
THEN
5689 id_ply =
ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
5691 IF (id_ply == iply)
THEN
5692 IF (ipt <= nptt)
THEN
5696 fbuf => bufly%FAIL(ir,is,ipt)
5698 IF (fbuf%FLOC(ifail)%ILAWF == 32)
THEN
5699 value(i) =
max(value(i),fbuf%FLOC
5700 is_written_value(i) = 1
5711 ELSEIF (iply > 0 .AND. ipt == -1)
THEN
5713 bufly => elbuf_tab(ng)%BUFLY(j)
5717 IF (igtyp == 17 .OR. igtyp == 51)
THEN
5718 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
5719 ELSEIF (igtyp == 52)
THEN
5720 id_ply =
ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
5722 IF (id_ply == iply)
THEN
5727 fbuf => bufly%FAIL(ir,is,it)
5729 IF (fbuf%FLOC(ifail)%ILAWF == 32)
THEN
5730 value(i) =
max(value(i),fbuf%FLOC(ifail)%DAM(i))
5731 is_written_value(i) = 1
5742 ELSEIF (ilay <= nlay .AND. ilay > 0)
THEN
5744 IF (igtyp == 10 .OR. igtyp == 11 .OR. igtyp == 16)
THEN
5745 bufly => elbuf_tab(ng)%BUFLY(ilay)
5750 fbuf => bufly%FAIL(ir,is,1)
5752 IF (fbuf%FLOC(ifail)%ILAWF == 32)
THEN
5753 value(i) =
max(value(i),fbuf%FLOC(ifail)%DAM(i))
5754 is_written_value(i) = 1
5763 ELSEIF (ipt <= npt .AND. ipt > 0)
THEN
5764 IF (igtyp == 1 .OR. igtyp == 9)
THEN
5765 bufly => elbuf_tab(ng)%BUFLY(1)
5770 fbuf => bufly%FAIL(ir,is,ipt)
5772 IF (fbuf%FLOC(ifail)%ILAWF == 32)
THEN
5773 value(i) =
max(value(i),fbuf%FLOC(ifail)%DAM(i))
5774 is_written_value(i) = 1
5783 ELSEIF (keyword ==
'HC_DSSE_Z/MEMB')
THEN
5787 ipt = iabs(nlay)/2 + 1
5788 bufly => elbuf_tab(ng)%BUFLY(ipt)
5795 fbuf => bufly%FAIL(ir,is,it)
5797 IF (fbuf%FLOC(ifail)%ILAWF == 32)
THEN
5798 rindx = fbuf%FLOC(ifail)%INDX(i)
5799 value(i) =
max(value(i),rindx)
5800 is_written_value(i) = 1
5808 ELSEIF (mpt > 0)
THEN
5809 ipt = iabs(npt)/2 + 1
5810 bufly => elbuf_tab(ng)%BUFLY(1)
5815 fbuf => bufly%FAIL(ir,is,ipt)
5817 IF (fbuf%FLOC(ifail)%ILAWF == 32)
THEN
5818 rindx = fbuf%FLOC(ifail)%INDX(i)
5819 value(i) =
max(value(i),rindx)
5820 is_written_value(i) = 1
5829 ELSEIF (keyword ==
'HC_DSSE_Z')
THEN
5831 !
If no specific input ply=null layer=null npt=null
5832 IF (ilay == -1 .AND. ipt == -1 .AND. iply == -1)
THEN
5838 bufly => elbuf_tab(ng)%BUFLY(n)
5844 fbuf => bufly%FAIL(ir,is,it)
5846 IF (fbuf%FLOC(ifail)%ILAWF == 32)
THEN
5847 rindx = fbuf%FLOC(ifail)%INDX(i)
5848 value(i) =
max(value(i),rindx)
5849 is_written_value(i) = 1
5859 ELSEIF (mpt > 0)
THEN
5860 bufly => elbuf_tab(ng)%BUFLY(1)
5867 fbuf => bufly%FAIL(ir,is,it)
5869 IF (fbuf%FLOC(ifail)%ILAWF == 32)
THEN
5870 rindx = fbuf%FLOC(ifail)%INDX(i)
5871 value(i) =
max(value(i),rindx)
5872 is_written_value(i) = 1
5882 ELSEIF (iply > 0 .AND. ipt <= mpt .AND. ipt > 0)
THEN
5884 bufly => elbuf_tab(ng)%BUFLY(j)
5888 IF (igtyp == 17 .OR. igtyp == 51)
THEN
5889 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
5890 ELSEIF (igtyp == 52)
THEN
5891 id_ply =
ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
5893 IF (id_ply == iply)
THEN
5894 IF (ipt <= nptt)
THEN
5898 fbuf => bufly%FAIL(ir,is,ipt)
5900 IF (fbuf%FLOC(ifail)%ILAWF == 32)
THEN
5901 rindx = fbuf%FLOC(ifail)%INDX(i)
5902 value(i) =
max(value(i),rindx)
5903 is_written_value(i) = 1
5914 ELSEIF (iply > 0 .AND. ipt == -1)
THEN
5916 bufly => elbuf_tab(ng)%BUFLY(j)
5920 IF (igtyp == 17 .OR. igtyp == 51)
THEN
5921 id_ply = igeo(1,stack%IGEO(2+j,isubstack))
5922 ELSEIF (igtyp == 52)
THEN
5923 id_ply =
ply_info(1,stack%IGEO(2+j,isubstack)-numstack)
5925 IF (id_ply == iply)
THEN
5930 fbuf => bufly%FAIL(ir,is,it)
5932 IF (fbuf%FLOC(ifail)%ILAWF == 32)
THEN
5933 rindx = fbuf%FLOC(ifail)%INDX(i)
5934 value(i) =
max(value(i),rindx)
5935 is_written_value(i) = 1
5946 ELSEIF (ilay <= nlay .AND. ilay > 0)
THEN
5948 IF (igtyp == 10 .OR. igtyp == 11 .OR. igtyp == 16)
THEN
5949 bufly => elbuf_tab(ng)%BUFLY(ilay)
5954 fbuf => bufly%FAIL(ir,is,1)
5956 IF (fbuf%FLOC(ifail)%ILAWF == 32)
THEN
5957 rindx = fbuf%FLOC(ifail)%INDX(i)
5958 value(i) =
max(value(i),rindx)
5959 is_written_value(i) = 1
5968 ELSEIF (ipt <= npt .AND. ipt > 0)
THEN
5969 IF (igtyp == 1 .OR. igtyp == 9)
THEN
5970 bufly => elbuf_tab(ng)%BUFLY(1)
5975 fbuf => bufly%FAIL(ir,is,ipt)
5977 IF (fbuf%FLOC(ifail)%ILAWF == 32)
THEN
5978 rindx = fbuf%FLOC(ifail)%INDX(i)
5979 value(i) =
max(value(i),rindx)
5980 is_written_value(i) = 1
6022 ELSEIF(keyword ==
'OFF')
THEN
6025 IF (gbuf%G_OFF > 0)
THEN
6026 IF(gbuf%OFF(i) > one)
THEN
6027 value(i) = gbuf%OFF(i) - one
6028 ELSEIF((gbuf%OFF(i) >= zero .AND. gbuf%OFF(i) <= one))
THEN
6029 value(i) = gbuf%OFF(i)
6034 is_written_value(i) = 1
6037 ELSEIF(keyword ==
'MACH')
THEN
6041 IF (mlw == 151)
THEN
6043 vel(1) = multi_fvm%VEL(1, i + nft)
6044 vel(2) = multi_fvm%VEL(2, i + nft)
6045 vel(3) = multi_fvm%VEL(3, i + nft)
6046 vel(0) = sqrt(vel(1)*vel(1)+vel(2)*vel(2)+vel(3)*vel(3))
6047 value(i) = vel(0)/multi_fvm%SOUND_SPEED(i + nft)
6048 is_written_value(i) = 1
6051 l = elbuf_tab(ng)%BUFLY(1)%L_SSP
6052 IF(elbuf_tab(ng)%BUFLY(1)%L_SSP /= 0)
THEN
6053 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
6055 vel(1) = gbuf%MOM(jj(1) + i) / gbuf%RHO(i)
6056 vel(2) = gbuf%MOM(jj(2) + i) / gbuf%RHO(i)
6057 vel(3) = gbuf%MOM(jj(3) + i) / gbuf%RHO(i)
6058 vel(0) = sqrt(vel(1)*vel(1)+vel(2)*vel(2)+vel(3)*vel(3))
6059 value(i) = vel(0)/lbuf%SSP(i)
6060 is_written_value(i) = 1
6064 l = elbuf_tab(ng)%BUFLY(1)%L_SSP
6065 IF(elbuf_tab(ng)%BUFLY(1)%L_SSP /= 0)
THEN
6066 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
6070 tmp(1,1:3)=v(1,ixtg(2:4,i+nft))-w(1,ixtg(2:4
6071 tmp(2,1:3)=v(2,ixtg(2:4,i+nft))-w(2,ixtg(2:4,i+nft))
6072 tmp(3,1:3)=v(3,ixtg(2:4,i+nft))-w(3,ixtg(2:4,i+nft))
6073 vel(1) = sum(tmp(1,1:3))*third
6074 vel(2) = sum(tmp(2,1:3))*third
6075 vel(3) = sum(tmp(3,1:3))*third
6076 value(i) = sqrt(vel(1)*vel(1)+vel(2)*vel(2)+vel(3)*vel(3))/lbuf%SSP(i)
6077 is_written_value(i) = 1
6082 tmp(1,1:3)=v(1,ixtg(2:4,i+nft))
6084 tmp(3,1:3)=v(3,ixtg(2:4,i+nft))
6085 vel(1) = sum(tmp(1,1:3))*third
6086 vel(2) = sum(tmp(2,1:3))*third
6087 vel(3) = sum(tmp(3,1:3))*third
6088 value(i) = sqrt(vel(1)*vel(1)+vel(2)*vel(2)+vel(3)*vel(3))/lbuf%SSP(i)
6089 is_written_value(i) = 1
6096 ELSEIF(keyword ==
'COLOR')
THEN
6099 gbuf => elbuf_tab(ng)%GBUF
6100 IF (mlw == 151)
THEN
6101 nfrac=multi_fvm%NBMAT
6103 lbuf => elbuf_tab(ng)%BUFLY(imat)%LBUF(1,1,1)
6105 vfrac(i,imat) = lbuf%VOL(i) / gbuf%VOL(i)
6108 ELSEIF(mlw == 20)
THEN
6111 vfrac(i,1) = elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)%VOL(i) / gbuf%VOL(i)
6112 vfrac(i,2) = elbuf_tab(ng)%BUFLY(2)%LBUF(1,1,1)%VOL(i) / gbuf%VOL(i)
6114 ELSEIF(mlw == 37)
THEN
6115 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
6118 vfrac(i,1) = mbuf%VAR(i+3*nel)
6119 vfrac(i,2) = mbuf%VAR(i+4*nel)
6121 ELSEIF(mlw == 51)
THEN
6123 imat = ixtg(1,nft+1)
6124 iadbuf = ipm(7,imat)
6125 nuparam= ipm(9,imat)
6126 uparam => bufmat(iadbuf:iadbuf+nuparam-1)
6128 isubmat = uparam(276+1); iu(1)=m51_n0phas+(isubmat-1)*m51_nvphas
6129 isubmat = uparam(276+2); iu(2)=m51_n0phas+(isubmat-1)*m51_nvphas
6130 isubmat = uparam(276+3); iu(3)=m51_n0phas+(isubmat-1)*m51_nvphas
6131 isubmat = uparam(276+4); iu(4)=m51_n0phas+(isubmat-1)*m51_nvphas
6132 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
6135 vfrac(i,1) = mbuf%VAR(i+iu(1)*nel)
6136 vfrac(i,2) = mbuf%VAR(i+iu(2)*nel)
6137 vfrac(i,3) = mbuf%VAR(i+iu(3)*nel)
6138 vfrac(i,4) = mbuf%VAR(i+iu(4)*nel)
6148 value(i) = value(i) + vfrac(i,imat)*imat
6150 is_written_value(i) = 1
6154 ELSEIF(keyword ==
'VORTX')
THEN
6156 IF (mlw == 6 .OR. mlw == 17)
THEN
6158 value(i) = elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)%VK(i)
6159 is_written_value(i) = 1
6161 ELSEIF(mlw == 46 .OR. mlw == 47)
THEN
6163 value(i) = uvar(nel+i)
6164 is_written_value(i) = 1
6166 ELSEIF(mlw == 151)
THEN
6171 iad2 = ale_connect%ee_connect%iad_connect(ii)
6173 DO kface = 1, nb_face
6174 iv = ale_connect%ee_connect%connected(iad2 + kface - 1)
6176 ny = multi_fvm%FACE_DATA%NORMAL(2, kface, ii)
6177 nz = multi_fvm%FACE_DATA%NORMAL(3, kface, ii)
6178 surf = multi_fvm%FACE_DATA%SURF(kface, ii)
6180 vy = multi_fvm%VEL(2, ii)
6181 vz = multi_fvm%VEL(3, ii)
6184 vy = half*(vy + multi_fvm%VEL(2, iv))
6185 vz = half*(vz + multi_fvm%VEL(3, iv))
6187 cumul(1)=cumul(1)+surf*(ny*vz-nz*vy)
6191 cumul(1)=cumul(1)/gbuf%VOL(i)
6193 is_written_value(i) = 1
6197 ELSEIF(keyword ==
'GROUP')
THEN
6201 is_written_value(i) = 1
6204 ELSEIF(keyword ==
'INTERNAL.ID')
THEN
6208 is_written_value(i) = 1
6211 ELSEIF(keyword ==
'LOCAL.ID')
THEN
6215 is_written_value(i) = 1
6219 ELSEIF(keyword ==
'VONM/TMAX')
THEN
6222 value(i) = gbuf%TM_YIELD(i)
6223 is_written_value(i) = 1
6226 ELSEIF(keyword ==
'SIGEQ/TMAX')
THEN
6229 value(i) = gbuf%TM_SEQ(i)
6230 is_written_value(i) = 1
6233 ELSEIF(keyword ==
'ENER/TMAX')
THEN
6236 value(i) = gbuf%TM_EINT(i)
6237 is_written_value(i) = 1
6240 ELSEIF(keyword ==
'DAMA/TMAX')
THEN
6243 value(i) = gbuf%TM_DMG(i)
6244 is_written_value(i) = 1
6247 ELSEIF(keyword ==
'DIV(U)')
THEN
6250 ialel=iparg(7,ng)+iparg(11,ng)
6253 1 evar ,ixtg ,x ,v ,iparg ,elbuf_tab ,ng ,nixtg ,7,
6257 is_written_value(i) = 1
6261 elseif(keyword ==
'VSTRAIN' .and. n2d > 0)
then
6268 mid = matparam(mt)%multimat%mid(ilay)
6269 rho0i(ilay) = pm(89,mid)
6270 vi(ilay) = multi_fvm%phase_alpha(ilay,i+nft) * gbuf%vol(i)
6271 v0i(ilay) = multi_fvm%phase_rho(ilay,i+nft) * vi(ilay) / rho0i(ilay)
6276 rho0g = rho0g + rho0i(ilay)*v0i(ilay)
6279 value(i) = multi_fvm%rho(i+nft) / rho0g - one
6280 is_written_value(i) = 1
6282 elseif(mlw == 51)
then
6284 imat = ixtg(1,nft+1)
6285 iadbuf = ipm(7,imat)
6286 nuparam= ipm(9,imat)
6287 uparam => bufmat(iadbuf:iadbuf+nuparam-1)
6288 mbuf => elbuf_tab(ng)%bufly(1)%mat(1,1,1)
6291 isubmat = nint(uparam(276+1)); iu(1)=m51_n0phas+(isubmat-1)*m51_nvphas + ipos-1
6292 isubmat = nint(uparam(276+2)); iu(2)=m51_n0phas+(isubmat-1)*m51_nvphas + ipos-1
6293 isubmat = nint(uparam(276+3)); iu(3)=m51_n0phas+(isubmat-1)*m51_nvphas + ipos-1
6294 isubmat = nint(uparam(276+4)); iu(4)=m51_n0phas+(isubmat-1)*m51_nvphas + ipos-1
6295 vfrac(i,1) = mbuf%var(i+iu(1)*nel)
6296 vfrac(i,2) = mbuf%var(i+iu(2)*nel)
6297 vfrac(i,3) = mbuf%var(i+iu(3)*nel)
6298 vfrac(i,4) = mbuf%var(i+iu(4)*nel)
6301 isubmat = nint(uparam(276+1)); iu(1)=m51_n0phas+(isubmat-1)*m51_nvphas + ipos-1
6302 isubmat = nint(uparam(276+2)); iu(2)=m51_n0phas+(isubmat-1)*m51_nvphas
6303 isubmat = nint(uparam(276+3)); iu(3)=m51_n0phas+(isubmat-1)*m51_nvphas + ipos-1
6304 isubmat = nint(uparam(276+4)); iu(4)=m51_n0phas+(isubmat-1)*m51_nvphas + ipos-1
6305 rhoi(1) = mbuf%var(i+iu(1)*nel)
6306 rhoi(2) = mbuf%var(i+iu(2)*nel)
6307 rhoi(3) = mbuf%var(i+iu(3)*nel)
6308 rhoi(4) = mbuf%var(i+iu(4)*nel)
6310 mid = matparam(mt)%multimat%mid(ilay)
6311 rho0i(ilay) = pm(89,mid)
6312 vi(ilay) = vfrac(i,ilay) * gbuf%vol(i)
6314 v0i(ilay) = rhoi(ilay) * vi(ilay) / rho0i(ilay)
6319 rho0g = rho0g + rho0i(ilay)*v0i(ilay)
6322 value(i) = gbuf%rho(i) / rho0g - one
6323 is_written_value(i) = 1
6325 elseif(mlw == 37)
then
6327 imat = ixtg(1,nft+1)
6328 iadbuf = ipm(7,imat)
6329 nuparam= ipm(9,imat)
6330 uparam => bufmat(iadbuf:iadbuf+nuparam-1)
6331 mbuf => elbuf_tab(ng)%bufly(1)%mat(1,1,1)
6332 rho0i(1) = uparam(11)
6333 rho0i(2) = uparam(12)
6334 vi(1) = mbuf%var(i+3*nel) * gbuf%vol(i)
6335 vi(2) = mbuf%var(i+4*nel) * gbuf%vol(i)
6336 rhoi(1) = mbuf%var(i+2*nel)
6337 rhoi(2) = mbuf%var(i+1*nel)
6338 v0i(1) = rhoi(1) * vi(1) / rho0i(1)
6339 v0i(2) = rhoi(2) * vi(2) / rho0i(2)
6343 rho0g = rho0g + rho0i(ilay)*v0i(ilay)
6346 value(i) = gbuf%rho(i) / rho0g - one
6347 is_written_value(i) = 1
6349 elseif(mlw == 20)
then
6351 lbuf1 => elbuf_tab(ng)%bufly(1)%lbuf(1,1,1)
6352 lbuf2 => elbuf_tab(ng)%bufly(2)%lbuf(1,1,1)
6353 mid = matparam(mt)%multimat%mid(1)
6354 rho0i(1) = pm(89,mid)
6355 mid = matparam(mt)%multimat%mid(2)
6356 rho0i(2) = pm(89,mid)
6357 vi(1) = lbuf1%vol(i)
6358 vi(2) = lbuf2%vol(i)
6359 rhoi(1) = lbuf1%rho(i)
6360 rhoi(2) = lbuf2%rho(i)
6361 v0i(1) = rhoi(1) * vi(1) / rho0i(1)
6362 v0i(2) = rhoi(2) * vi(2) / rho0i(2)
6366 rho0g = rho0g + rho0i(ilay)*v0i(ilay)
6369 value(i) = gbuf%rho(i) / rho0g - one
6370 is_written_value(i) = 1
6374 if(pm(89,mt) > zero)
then
6375 value(i) = gbuf%rho(i) / pm(89,mt) - one
6376 is_written_value(i) = 1
6382 elseif(keyword(1:8) ==
'VSTRAIN/' .and. n2d > 0)
then
6385 read(keyword(9:),
'(I2)', iostat=ierr) ilay
6386 if(ierr == 0 .and. ilay > 0)
then
6387 if(mlw == 151 .and. ilay <=
min(10,multi_fvm%nbmat))detected = .true.
6388 if(mlw == 51 .and. ilay <= 4 )detected = .true.
6389 if(mlw == 37 .and. ilay <= 2 )detected = .true.
6390 if(mlw == 20 .and. ilay <= 2 )detected = .true.
6398 mid = matparam(mt)%multimat%mid(ilay)
6399 rho0i(ilay) = pm(89,mid)
6400 vi(ilay) = multi_fvm%phase_alpha(ilay,i+nft) * gbuf%vol(i)
6401 v0i(ilay) = multi_fvm%phase_rho(ilay,i+nft) * vi(ilay) / rho0i(ilay)
6402 value(i) = multi_fvm%phase_rho(ilay,i+nft) / rho0i(ilay) - one
6403 is_written_value(i) = 1
6405 elseif(mlw == 51)
then
6407 imat = ixtg(1,nft+1)
6408 iadbuf = ipm(7,imat)
6409 nuparam= ipm(9,imat)
6410 uparam => bufmat(iadbuf:iadbuf+nuparam-1)
6411 mbuf => elbuf_tab(ng)%bufly(1)%mat(1,1,1)
6412 mid = matparam(mt)%multimat%mid(ilay)
6413 rho0i(ilay) = pm(89,mid)
6416 isubmat = nint(uparam(276+ilay)); iu(1)=m51_n0phas+(isubmat-1)*m51_nvphas + ipos-1
6417 vfrac(i,ilay) = mbuf%var(i+iu(ilay)*nel)
6418 vi(ilay) = vfrac(i,ilay) * gbuf%vol(i)
6421 isubmat = nint(uparam(276+ilay)); iu(ilay)=m51_n0phas+(isubmat-1)*m51_nvphas + ipos-1
6422 rhoi(ilay) = mbuf%var(i+iu(ilay)*nel)
6423 v0i(ilay) = rhoi(ilay) * vi(ilay) / rho0i(ilay)
6424 value(i) = rhoi(ilay) / rho0i(ilay) - one
6425 is_written_value(i) = 1
6427 elseif(mlw == 37)
then
6429 imat = ixtg(1,nft+1)
6430 iadbuf = ipm(7,imat)
6431 nuparam= ipm(9,imat)
6432 uparam => bufmat(iadbuf:iadbuf+nuparam-1)
6433 mbuf => elbuf_tab(ng)%bufly(1)%mat(1,1,1)
6434 rho0i(ilay) = uparam(10+ilay)
6435 vi(ilay) = mbuf%var(i+(ilay+2)*nel) * gbuf%vol(i)
6436 rhoi(ilay) = mbuf%var(i+(3-ilay)*nel)
6437 v0i(ilay) = rhoi(ilay) * vi(ilay) / rho0i(ilay)
6438 value(i) = rhoi(ilay) / rho0i(ilay) - one
6439 is_written_value(i) = 1
6441 elseif(mlw == 20)
then
6443 lbuf => elbuf_tab(ng)%bufly(ilay)%lbuf(1,1,1)
6444 mid = matparam(mt)%multimat%mid(ilay)
6445 rho0i(ilay) = pm(89,mid)
6446 vi(ilay) = lbuf%vol(i)
6447 rhoi(ilay) = lbuf%rho(i)
6448 v0i(ilay) = rhoi(ilay) * vi(ilay) / rho0i(ilay)
6449 value(i) = rhoi(ilay) / rho0i(ilay) - one
6450 is_written_value(i) = 1
6454 is_written_value(i) = 0
6463 IF(called_from_python)
THEN
6464 shell_scalar(1:mvsiz) = value(1:mvsiz)
6467 IF ((h3d_light > 0).AND.(is_lighter))
THEN
6469 IF (value(i) /= zero)
THEN
6470 is_written_value(i) = 1
6472 is_written_value(i) = 0
6477 * is_written_value,shell_stacksize)