52 . ELBUF_TAB ,SOLID_SCALAR ,IPARG ,
56 . X ,V ,W ,ALE_CONNECT ,
57 . ID_ELEM ,ITY_ELEM ,IPARTS ,LAYER_INPUT ,
58 . IR_INPUT ,IS_INPUT ,IT_INPUT ,IUVAR_INPUT , H3D_PART ,
59 . IS_WRITTEN_SOLID,INFO1 ,KEYWORD ,FANI_CELL ,
60 . MULTI_FVM ,NG ,IDMDS ,IMDSVAR ,
61 . ID ,MAT_PARAM ,MODE )
75 USE multimat_param_mod ,
ONLY : m51_n0phas, m51_nvphas
76 USE matparam_def_mod ,
ONLY : matparam_struct_
77 use element_mod ,
only : nixs
81#include "implicit_f.inc"
86#include "vect01_c.inc"
99 LOGICAL,
INTENT(IN) :: CALLED_FROM_PYTHON
101 . SOLID_SCALAR(*),X(3,*),V(3,*),W(3,*),EHOUR(*),
103 my_real,
INTENT(IN),
TARGET :: BUFMAT(*)
104 INTEGER IPARG(NPARG,*),IXS(NIXS,*),
106 . ID_ELEM(*),ITY_ELEM(*),IPARTS(*),ID,
107 . H3D_PART(*),IS_WRITTEN_SOLID(*),INFO1,LAYER_INPUT,IR_INPUT,IS_INPUT,IT_INPUT,
108 . IUVAR_INPUT,NG,IDMDS,IMDSVAR
109 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
110 CHARACTER(NCHARLINE100):: KEYWORD
111 TYPE(FANI_CELL_),
INTENT(IN) :: FANI_CELL
112 TYPE(MULTI_FVM_STRUCT),
INTENT(IN) :: MULTI_FVM
114 TYPE (MATPARAM_STRUCT_) ,
DIMENSION(NUMMAT) ,
INTENT(IN) :: MAT_PARAM
115 INTEGER ,
INTENT(IN) :: MODE
121 . value(mvsiz),mass(mvsiz),pres(mvsiz),mass0,vol
123 . off, p,vonm2,s1,s2,s3,dmgmx,fac,
124 . s11,s22,s33,s4,s5,s6,vonm,gama(6),
125 . t11,t21,t31,t12,t22,t32,t13,t23,t33,
126 . phi,theta,psi,dammax,vel(0:3),vfrac(mvsiz,1:21),
127 . cumul(3),vx,vy,vz,nx,ny,nz,surf,tmp_2(mvsiz,3),
130 . g1(mvsiz,3),g2(mvsiz,3),g3(mvsiz,3),voln(mvsiz),aream(mvsiz),
131 . rho0,det(mvsiz),ezz(mvsiz),maxdamini,e33
132 INTEGER ,II,J,NEL,NPTR,NPTS,NPTT,NLAY,L,IFAIL,ILAY,
133 . IR,IS,IT,IL,MLW, NUVAR,IUS,NFAIL,
137 . IUVAR,IPOS,ITRIMAT,
138 . IALEFVM_FLG, IMAT,IADBUF,NUPARAM,ICSIG,NC(8),IEOS,NMOD,MAT_ID,FAIL_ID
140 . isolnod,ivisc,nptg,tshell,tsh_ort,
141 . iok_part(mvsiz),jj(6),irupt,iok,npg_plane,iir,
142 . is_written_value(mvsiz),nfrac,iu(4),iv
146 TYPE(G_BUFEL_) ,
POINTER :: GBUF
147 TYPE(L_BUFEL_) ,
POINTER :: LBUF, LBUF1,LBUF2
148 TYPE(BUF_MAT_) ,
POINTER :: MBUF
149 TYPE(buf_fail_) ,
POINTER :: FBUF
150 TYPE(BUF_EOS_) ,
POINTER :: EBUF
151 my_real,
DIMENSION(:),
POINTER :: UVARF,DAMF,DFMAX,TDELE
152 my_real,
DIMENSION(:) ,
POINTER :: UPARAM
153 INTEGER :: ISUBMAT,NVAREOS,NTILLOTSON,IMAT_TILLOTSON
164 2 mlw ,nel ,nft ,iad ,ity ,
165 3 npt ,jale ,ismstr ,jeul ,jtur ,
166 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
167 5 nvaux ,jpor ,jcvt ,jclose ,jplasol ,
168 6 irep ,iint ,igtyp ,israt ,isrot ,
169 7 icsen ,isorth ,isorthg ,ifailure,jsms )
173 isolnod = iparg(28,ng)
178 is_euler=iparg(11,ng)
187 is_written_value(i) = 0
192 IF (jcvt==1.AND.isorth/=0) jcvt=2
194 gbuf => elbuf_tab(ng)%GBUF
195 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
196 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
197 ebuf => elbuf_tab(ng)%BUFLY(1)%EOS(1,1,1)
198 nlay = elbuf_tab(ng)%NLAY
199 nptr = elbuf_tab(ng)%NPTR
200 npts = elbuf_tab(ng)%NPTS
201 nptt = elbuf_tab(ng)%NPTT
202 nptg = nptt*npts*nptr*nlay
203 nvareos = elbuf_tab(ng)%BUFLY(1)%NVAR_EOS
206 IF (igtyp==20 .OR. igtyp==21 .OR. igtyp==22) tshell = 1
207 IF (igtyp==21 .OR. igtyp==22) tsh_ort = 1
209 IF (ity == 1) offset = 0
211 IF(.NOT. called_from_python)
THEN
214 id_elem(offset+nft+i) = ixs(nixs,nft+i)
215 ity_elem(offset+nft+i) = 1
216 IF( h3d_part(iparts(nft+i)) == 1) iok_part(i) = 1
223 IF (keyword ==
'MDS') iuvar = imdsvar
227 IF (ilay == -2) ilay = 1
228 IF (ilay == -3) ilay = nlay
229 IF (tshell == 1.AND.(ir_input/=-1.AND.is_input/=-1.AND.it_input/=-1))
THEN
235 ELSEIF (jhbe==14 )
THEN
241 ELSEIF (icsig==10)
THEN
245 ELSEIF (icsig==1)
THEN
257 IF (keyword ==
'MASS')
THEN
258 gbuf => elbuf_tab(ng)%GBUF
259 ialel=iparg(7,ng)+iparg(11,ng)
262 IF (mlw == 0 .or. mlw == 13 .or. igtyp == 0)
THEN
264 ELSEIF(ialel == 0)
THEN
266 mass(i)=pm(89,mt)*gbuf%VOL(i)
268 off =
min(gbuf%OFF(i),one)
269 mass(i)=gbuf%RHO(i)*gbuf%VOL(i)*off
271 IF( nfilsol /= 0 .AND. gbuf%G_FILL /= 0 )
272 . mass(i) = mass(i) * gbuf%FILL(i)
276 IF (mlw /= 0 .and. mlw /= 13 .and. igtyp /= 0)
THEN
277 jturb=iparg(12,ng)*(iparg(7,ng)+iparg(11,ng))
279 IF (keyword == 'mass
') THEN ! MASS
283 IS_WRITTEN_VALUE(I) = 1
286 ELSEIF(KEYWORD == 'dt
')THEN
290 VALUE(I) = GBUF%DT(I)
291 IS_WRITTEN_VALUE(I) = 1
295 ELSEIF(KEYWORD == 'epsp.AND..AND..AND.
' (MLW /= 12 MLW /=14 MLW /= 25))THEN
299.OR.
IF (MLW == 10 MLW == 21) THEN
300 VALUE(I) = LBUF%EPSQ(I)
301 IS_WRITTEN_VALUE(I) = 1
302 ELSEIF (GBUF%G_PLA > 0) THEN
303 VALUE(I) = GBUF%PLA(I)
304 IS_WRITTEN_VALUE(I) = 1
309 IF(ELBUF_TAB(NG)%BUFLY(ILAY)%L_PLA > 0) THEN
310 VALUE(I) = ELBUF_TAB(NG)%BUFLY(ILAY)%LBUF(1,1,1)%PLA(I)
311 IS_WRITTEN_VALUE(I) = 1
317 ELSEIF(KEYWORD == 'wpla.AND..OR..OR.
' (MLW == 12 MLW == 14 MLW == 25))THEN
322.OR..OR.
IF (ISOLNOD == 16 ISOLNOD == 20
323.AND..OR.
. (ISOLNOD == 8 JHBE == 14)
324.OR..AND..OR.
. ((ISOLNOD == 6 ISOLNOD == 8)JHBE == 15)
325.AND.
. ((ISOLNOD == 6)JHBE == 24))THEN
327 IF (ELBUF_TAB(NG)%BUFLY(IL)%L_PLA > 0) THEN
331 LBUF=>ELBUF_TAB(NG)%BUFLY(IL)%LBUF(IR,IS,IT)
333 VALUE(I) = VALUE(I) + LBUF%PLA(I)/NPTG
334 IS_WRITTEN_VALUE(I) = 1
343 IF (GBUF%G_PLA > 0)THEN
344 VALUE(I) = GBUF%PLA(I)
345 IS_WRITTEN_VALUE(I) = 1
350 ELSEIF (KEYWORD == 'tsaiwu.AND.
' GBUF%G_TSAIWU > 0) THEN
356 IF (ELBUF_TAB(NG)%BUFLY(IL)%L_TSAIWU > 0) THEN
360 LBUF=>ELBUF_TAB(NG)%BUFLY(IL)%LBUF(IR,IS,IT)
362 VALUE(I) = VALUE(I) + LBUF%TSAIWU(I)/NPTG
363 IS_WRITTEN_VALUE(I) = 1
371 ELSEIF(KEYWORD == 'dens
')THEN
375 VALUE(I) = MULTI_FVM%RHO(I + NFT)
376 IS_WRITTEN_VALUE(I) = 1
380 VALUE(I) = GBUF%RHO(I)
381 IS_WRITTEN_VALUE(I) = 1
385 ELSEIF(KEYWORD == 'temp
')THEN
388 VALUE(1:NEL) = ELBUF_TAB(NG)%GBUF%TEMP(1:NEL)
389 IS_WRITTEN_VALUE(1:NEL) = 1
393 IF (ELBUF_TAB(NG)%BUFLY(IL)%L_TEMP > 0) THEN
394 IS_WRITTEN_VALUE(1:NEL) = 1
395 DO IT=1,ELBUF_TAB(NG)%BUFLY(IL)%NPTT
398 LBUF => ELBUF_TAB(NG)%BUFLY(IL)%LBUF(IR,IS,IT)
399 VALUE(1:NEL) = VALUE(1:NEL) + LBUF%TEMP(1:NEL)/NPTG
407 ELSEIF(KEYWORD == 'p
')THEN
411 VALUE(I) = MULTI_FVM%PRES(I + NFT)
412 IS_WRITTEN_VALUE(I) = 1
418 S11 = GBUF%SIG(JJ(1) + I)
419 S22 = GBUF%SIG(JJ(2) + I)
420 S33 = GBUF%SIG(JJ(3) + I)
421 S4 = GBUF%SIG(JJ(4) + I)
422 S5 = GBUF%SIG(JJ(5) + I)
423 S6 = GBUF%SIG(JJ(6) + I)
425 S11 = S11 + LBUF%VISC(JJ(1) + I)
426 S22 = S22 + LBUF%VISC(JJ(2) + I)
427 S33 = S33 + LBUF%VISC(JJ(3) + I)
428 S4 = S4 + LBUF%VISC(JJ(4) + I)
429 S5 = S5 + LBUF%VISC(JJ(5) + I)
430 S6 = S6 + LBUF%VISC(JJ(6) + I)
432 P = - (S11 + S22 + S33 ) * THIRD
434 IS_WRITTEN_VALUE(I) = 1
438 ELSEIF(KEYWORD == 'vonm
')THEN
442 S11 = GBUF%SIG(JJ(1) + I)
443 S22 = GBUF%SIG(JJ(2) + I)
444 S33 = GBUF%SIG(JJ(3) + I)
445 S4 = GBUF%SIG(JJ(4) + I)
446 S5 = GBUF%SIG(JJ(5) + I)
447 S6 = GBUF%SIG(JJ(6) + I)
449 S11 = S11 + LBUF%VISC(JJ(1) + I)
450 S22 = S22 + LBUF%VISC(JJ(2) + I)
451 S33 = S33 + LBUF%VISC(JJ(3) + I)
452 S4 = S4 + LBUF%VISC(JJ(4) + I)
453 S5 = S5 + LBUF%VISC(JJ(5) + I)
454 S6 = S6 + LBUF%VISC(JJ(6) + I)
456 P = - (S11 + S22 + S33 ) * THIRD
460 VONM2= THREE*(S4*S4 + S5*S5 + S6*S6 +
461 . HALF*(S1*S1 + S2*S2 + S3*S3) )
464.AND.
IF( NFILSOL /= 0 GBUF%G_FILL /= 0 )
465 . VALUE(I) = VALUE(I) * GBUF%FILL(I)
466 IS_WRITTEN_VALUE(I) = 1
469 ELSEIF(KEYWORD == 'k.and.
' JTURB /= 0)THEN
473 VALUE(I) = GBUF%RK(I)
474 IS_WRITTEN_VALUE(I) = 1
477 ELSEIF(KEYWORD == 'tvis
')THEN
482.OR..AND.
IF((MLW == 6 MLW == 17)JTURB/=0)THEN
484 VALUE(I) = PM(81,MT) * GBUF%RK(I)**2
485 . / MAX(EM15,GBUF%RE(I))
486 IS_WRITTEN_VALUE(I) = 1
487.OR.
ELSEIF(MLW == 46 MLW == 47)THEN
488 VALUE(I) = MBUF%VAR(I)
489 IS_WRITTEN_VALUE(I) = 1
493 ELSEIF(KEYWORD == 'vortx
')THEN
498 VALUE(I) = FANI_CELL%VORT_X(I+NFT)
499 IS_WRITTEN_VALUE(I) = 1
501 ELSEIF(MLW == 151)THEN
506 IAD2 = ALE_CONNECT%ee_connect%iad_connect(II)
507 NB_FACE = ALE_CONNECT%ee_connect%iad_connect(II+1)-IAD2
509 DO KFACE = 1, NB_FACE
510 IV = ALE_CONNECT%ee_connect%connected(IAD2 + KFACE - 1)
511 NX = ZERO !MULTI_FVM%FACE_DATA%NORMAL(1, KFACE, II)
512 NY = MULTI_FVM%FACE_DATA%NORMAL(2, KFACE, II)
513 NZ = MULTI_FVM%FACE_DATA%NORMAL(3, KFACE, II)
514 SURF = MULTI_FVM%FACE_DATA%SURF(KFACE, II)
515 VX = ZERO !MULTI_FVM%VEL(1, II)
516 VY = MULTI_FVM%VEL(2, II)
517 VZ = MULTI_FVM%VEL(3, II)
519 VX = ZERO ! HALF(VX + MULTI_FVM%VEL(1, IV))
520 VY = HALF*(VY + MULTI_FVM%VEL(2, IV))
521 VZ = HALF*(VZ + MULTI_FVM%VEL(3, IV))
523 CUMUL(1)=CUMUL(1)+SURF*(NY*VZ-NZ*VY)
524 !CUMUL(2)=CUMUL(2)+NZ*VX-NX*VZ
525 !CUMUL(3)=CUMUL(3)+NX*VY-NY*VX
527 CUMUL(1)=CUMUL(1)/GBUF%VOL(I)
529 IS_WRITTEN_VALUE(I) = 1
533 ELSEIF(KEYWORD == 'vorty
')THEN
538 VALUE(I) = FANI_CELL%VORT_Y(I+NFT)
539 IS_WRITTEN_VALUE(I) = 1
541 ELSEIF(MLW == 151)THEN
547 IAD2 = ALE_CONNECT%ee_connect%iad_connect(II)
548 NB_FACE = ALE_CONNECT%ee_connect%iad_connect(II+1)-IAD2
550 DO KFACE = 1, NB_FACE
551 IV = ALE_CONNECT%ee_connect%connected(IAD2 + KFACE - 1)
552 NX = MULTI_FVM%FACE_DATA%NORMAL(1, KFACE, II)
553 NY = ZERO !MULTI_FVM%FACE_DATA%NORMAL(2, KFACE, II)
554 NZ = MULTI_FVM%FACE_DATA%NORMAL(3, KFACE, II)
555 SURF = MULTI_FVM%FACE_DATA%SURF(KFACE, II)
556 VX = MULTI_FVM%VEL(1, II)
557 VY = ZERO !MULTI_FVM%VEL(2, II)
558 VZ = MULTI_FVM%VEL(3, II)
560 VX = HALF*(VX + MULTI_FVM%VEL(1, IV))
561 VY = ZERO !HALF(VY + MULTI_FVM%VEL(2, IV))
562 VZ = HALF*(VZ + MULTI_FVM%VEL(3, IV))
564 !CUMUL(1)=CUMUL(1)+NY*VZ-NZ*VY
565 CUMUL(2)=CUMUL(2)+SURF*(NZ*VX-NX*VZ)
566 !CUMUL(3)=CUMUL(3)+NX*VY-NY*VX
568 CUMUL(2)=CUMUL(2)/GBUF%VOL(I)
570 IS_WRITTEN_VALUE(I) = 1
574 ELSEIF(KEYWORD == 'vortz
')THEN
579 VALUE(I) = FANI_CELL%VORT_Z(I+NFT)
580 IS_WRITTEN_VALUE(I) = 1
582 ELSEIF(MLW == 151)THEN
587 IAD2 = ALE_CONNECT%ee_connect%iad_connect(II)
588 NB_FACE = ALE_CONNECT%ee_connect%iad_connect(II+1)-IAD2
590 DO KFACE = 1, NB_FACE
591 IV = ALE_CONNECT%ee_connect%connected(IAD2 + KFACE - 1)
592 NX = MULTI_FVM%FACE_DATA%NORMAL(1, KFACE, II)
593 NY = MULTI_FVM%FACE_DATA%NORMAL(2, KFACE, II)
594 NZ = ZERO !MULTI_FVM%FACE_DATA%NORMAL(3, KFACE, II)
595 SURF = MULTI_FVM%FACE_DATA%SURF(KFACE, II)
596 VX = MULTI_FVM%VEL(1, II)
597 VY = MULTI_FVM%VEL(2, II)
598 VZ = ZERO !MULTI_FVM%VEL(3, II)
600 VX = HALF*(VX + MULTI_FVM%VEL(1, IV))
601 VY = HALF*(VY + MULTI_FVM%VEL(2, IV))
602 VZ = ZERO !HALF(VZ + MULTI_FVM%VEL(3, IV))
604 !CUMUL(1)=CUMUL(1)+NY*VZ-NZ*VY
605 !CUMUL(2)=CUMUL(2)+NZ*VX-NX*VZ
606 CUMUL(3)=CUMUL(3)+SURF*(NX*VY-NY*VX)
608 CUMUL(3)=CUMUL(3)/GBUF%VOL(I)
610 IS_WRITTEN_VALUE(I) = 1
614 ELSEIF(KEYWORD == 'vort
')THEN
618.OR.
IF(MLW == 6 MLW == 17)THEN
619 VALUE(I) = LBUF%VK(I)
620 IS_WRITTEN_VALUE(I) = 1
621.OR.
ELSEIF(MLW == 46 MLW == 47)THEN
622 VALUE(I) = MBUF%VAR(NEL+I) ! UVAR(I,2)
623 IS_WRITTEN_VALUE(I) = 1
627 ELSEIF(KEYWORD == 'dam1.AND.
' MLW == 24)THEN
631 VALUE(I) = LBUF%DAM(JJ(1) + I)
632 IS_WRITTEN_VALUE(I) = 1
635 ELSEIF(KEYWORD == 'dam2.AND.
' MLW == 24)THEN
639 VALUE(I) = LBUF%DAM(JJ(2) + I)
640 IS_WRITTEN_VALUE(I) = 1
643 ELSEIF(KEYWORD == 'dam3.AND.
' MLW == 24)THEN
647 VALUE(I) = LBUF%DAM(JJ(3) + I)
648 IS_WRITTEN_VALUE(I) = 1
651 ELSEIF(KEYWORD == 'sigx
')THEN
654 VALUE(I) = GBUF%SIG(JJ(1) + I)
655 IS_WRITTEN_VALUE(I) = 1
656.AND.
IF( NFILSOL /= 0 GBUF%G_FILL /= 0 )
657 . VALUE(I) = VALUE(I) * GBUF%FILL(I)
659 VALUE(I) = VALUE(I) + LBUF%VISC(JJ(1)+I)
663 ELSEIF(KEYWORD == 'sigy')
THEN
666 value(i) = gbuf%SIG(jj(2) + i)
667 is_written_value(i) = 1
668 IF( nfilsol /= 0 .AND. gbuf%G_FILL /= 0 )
669 . value(i) = value(i) * gbuf%FILL(i)
671 value(i) = value(i) + lbuf%VISC(jj(2)+i)
675 ELSEIF(keyword ==
'SIGZ')
THEN
678 value(i) = gbuf%SIG(jj(3) + i)
679 is_written_value(i) = 1
680 IF( nfilsol /= 0 .AND. gbuf%G_FILL /= 0 )
681 . value(i) = value(i) * gbuf%FILL(i)
683 value(i) = value(i) + lbuf%VISC(jj(3)+i)
687 ELSEIF(keyword ==
'SIGXY')
THEN
690 value(i) = gbuf%SIG(jj(4) + i)
691 is_written_value(i) = 1
692 IF( nfilsol /= 0 .AND. gbuf%G_FILL /= 0 )
693 . value(i) = value(i) * gbuf%FILL(i)
695 value(i) = value(i) + lbuf%VISC(jj(4)+i)
699 ELSEIF(keyword ==
'SIGYZ')
THEN
702 value(i) = gbuf%SIG(jj(5) + i)
703 is_written_value(i) = 1
704 IF( nfilsol /= 0 .AND. gbuf%G_FILL /= 0 )
705 . value(i) = value(i) * gbuf%FILL(i)
707 value(i) = value(i) + lbuf%VISC(jj(5)+i)
711 ELSEIF(keyword ==
'SIZX')
THEN
714 value(i) = gbuf%SIG(jj(6) + i)
715 is_written_value(i) = 1
716 IF( nfilsol /= 0 .AND. gbuf%G_FILL /= 0 )
717 . value(i) = value(i) * gbuf%FILL(i)
719 value(i) = value(i) + lbuf%VISC(jj(6)+i)
723 ELSEIF((keyword ==
'USER' .AND. mlw>=28 .AND. mlw/=51) .OR. keyword ==
'MDS')
THEN
727 IF( (keyword ==
'MDS' .AND. imat == idmds) .OR. keyword ==
'USER' )
THEN
729 IF (isolnod == 8 .AND. mlw == 59)
THEN
732 irupt = mat_param(mt)%FAIL(1)%IRUPT
733 nfail = elbuf_tab(ng)%BUFLY(1)%NFAIL
734 IF (irupt == 20)
THEN
739 . elbuf_tab(ng)%BUFLY(1)%FAIL(ipt,1,1)%FLOC(ir)%VAR
741 value(i) =
max(value(i),uvarf((iuvar-1)*nel + i))
742 is_written_value(i) = 1
752 mbuf => elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,it)
757 IF (iuvar <= nuvar)
THEN
759 . + mbuf%VAR(i+(iuvar-1)*nel)/nptg
760 is_written_value(i) = 1
771 ELSEIF(keyword ==
'HOURGLASS')
THEN
774 value(i) = ehour(nft+i)
775 is_written_value(i) = 1
778 ELSEIF(keyword ==
'EPSD')
THEN
780 value(1:nel) = gbuf%EPSD(1:nel)
781 is_written_value(1:nel) = 1
783 ELSEIF(keyword ==
'WPLA' .AND. mlw == 25)
THEN
791 IF (isolnod == 16.OR.isolnod == 20.OR.
792 . (isolnod == 8.AND.jhbe == 14).OR.
793 . ((isolnod == 6.OR.isolnod == 8).AND.jhbe == 15).OR.
794 . ((isolnod == 6).AND.jhbe == 24))
THEN
795 IF (ius <= nptg)
THEN
797 IF (elbuf_tab(ng)%BUFLY(il)%L_PLA > 0)
THEN
802 lbuf=>elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
804 value(i) = value(i) + lbuf%PLA(i)
805 is_written_value(i) = 1
815 ELSEIF (keyword ==
'FLAY' .AND. mlw == 25)
THEN
821 IF( isolnod == 16.OR.isolnod == 20.OR.
822 . (isolnod == 8.AND.jhbe == 14).OR.
823 . ((isolnod == 6 .OR. isolnod == 8).AND.jhbe == 15).OR.
824 . ((isolnod == 6).AND.jhbe == 24))
THEN
826 npg_plane = nptr * npts * nptt
833 lbuf=>elbuf_tab(ng)%BUFLY(il)%LBUF(j,k,l)
834 IF (lbuf%OFF(i) == 0) value(i) = value(i) + one
835 IF(int(value(i))>=npg_plane) evar(i)=evar(i)+one
836 is_written_value(i) = 1
844 ELSEIF(keyword ==
'VFRAC1')
THEN
852 uparam => bufmat(iadbuf:iadbuf+nuparam-1)
853 isubmat=uparam(276+1)
854 ius=m51_n0phas+(isubmat-1)*m51_nvphas
856 IF (mlw==51 .OR. mlw==37)
THEN
861 mbuf => elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,it)
863 value(i) = value(i) + mbuf%VAR(i+(ius)*nel)/nptg
864 is_written_value(i) = 1
872 ELSEIF(keyword ==
'VFRAC2')
THEN
880 uparam => bufmat(iadbuf:iadbuf+nuparam-1)
881 isubmat=uparam(276+2)
882 ius=m51_n0phas+(isubmat-1)*m51_nvphas
884 IF (mlw==51 .OR. mlw==37)
THEN
889 mbuf => elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,it)
891 value(i) = value(i) + mbuf%VAR(i+(ius)*nel)/nptg
892 is_written_value(i) = 1
900 ELSEIF(keyword ==
'VFRAC3')
THEN
908 uparam => bufmat(iadbuf:iadbuf+nuparam-1)
909 isubmat=uparam(276+3)
910 ius=m51_n0phas+(isubmat-1)*m51_nvphas
917 mbuf => elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,it)
919 value(i) = value(i) + mbuf%VAR(i+(ius)*nel)/nptg
920 is_written_value(i) = 1
928 ELSEIF(keyword ==
'VFRAC4')
THEN
936 uparam => bufmat(iadbuf:iadbuf+nuparam-1)
937 isubmat=uparam(276+4)
938 ius=m51_n0phas+(isubmat-1)*m51_nvphas
945 mbuf => elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,it)
947 value(i) = value(i) + mbuf%VAR(i+(ius)*nel)/nptg
948 is_written_value(i) = 1
956 ELSEIF(keyword(1:9) ==
'M151VFRAC')
THEN
958 IF (mlw == 151 .AND. multi_fvm%NBMAT > 1)
THEN
959 READ(keyword,
'(A9,I10)') buff, imat
960 IF (imat > 0 .AND. imat <= nlay)
THEN
962 value(i) = multi_fvm%PHASE_ALPHA(imat, i + nft)
963 is_written_value(i) = 1
968 ELSEIF(keyword(1:8) ==
'M151ENER')
THEN
970 IF (mlw == 151 .AND. multi_fvm%NBMAT > 1)
THEN
971 READ(keyword,
'(A8,I10)') buff, imat
972 IF (imat > 0 .AND. imat <= nlay)
THEN
974 IF (multi_fvm%PHASE_RHO(imat, i + nft) > 0)
THEN
975 value(i) = multi_fvm%PHASE_EINT(imat, i + nft) /
976 . multi_fvm%PHASE_RHO(imat, i + nft)
980 is_written_value(i) = 1
985 ELSEIF(keyword(1:8) ==
'M151PRES')
THEN
987 IF (mlw == 151 .AND. multi_fvm%NBMAT > 1)
THEN
988 READ(keyword,
'(A8,I10)') buff, imat
989 IF (imat > 0 .AND. imat <= nlay)
THEN
991 value(i) = multi_fvm%PHASE_PRES(imat, i + nft)
992 is_written_value(i) = 1
997 ELSEIF(keyword(1:8) ==
'M151DENS')
THEN
999 IF (mlw == 151 .AND. multi_fvm%NBMAT > 1)
THEN
1000 READ(keyword,
'(A8,I10)') buff, imat
1001 IF (imat > 0 .AND. imat <= nlay)
THEN
1003 value(i) = multi_fvm%PHASE_RHO(imat, i + nft)
1004 is_written_value(i) = 1
1009 ELSEIF (keyword ==
'ORTHD/PSI')
THEN
1013 IF ( (ilay <= nlay .AND. ilay > 0) .AND.
1014 . ir <= nptr .AND. ir > 0 .AND. is <= npts .AND. is > 0 .AND. it <= nptt .AND. it > 0)
THEN
1015 IF ( igtyp == 6 .OR. igtyp == 21 .OR. igtyp == 22 )
THEN
1016 lbuf => elbuf_tab(ng)%BUFLY(
max(1,ilay))%LBUF(1,1,1)
1021 IF(igtyp == 21 .OR. igtyp == 22)
THEN
1022 gama(1)= lbuf%GAMA(jj(1)+i)
1023 gama(2)= lbuf%GAMA(jj(2)+i)
1029 gama(1) = gbuf%GAMA(jj(1)+i)
1030 gama(2) = gbuf%GAMA(jj(2)+i)
1031 gama(3) = gbuf%GAMA(jj(3)+i)
1032 gama(4) = gbuf%GAMA(jj(4)+i)
1033 gama(5) = gbuf%GAMA(jj(5)+i)
1034 gama(6) = gbuf%GAMA(jj(6)+i)
1037 . gama,jhbe,igtyp,iparg(17,ng) )
1048 IF (abs(t31) - one < em20)
THEN
1050 psi = atan2(t32/cos(theta),t33/cos(theta))
1053 psi = atan2(t12,t13)
1055 psi = atan2(-t12,-t13)
1058 value(i) = psi*hundred80/pi
1059 is_written_value(i) = 1
1065 ELSEIF (keyword ==
'ORTHD/THETA')
THEN
1069 IF ( (ilay <= nlay .AND. ilay > 0) .AND.
1070 . ir <= nptr .AND. ir > 0 .AND. is <= npts .AND. is > 0 .AND. it <= nptt .AND. it > 0)
THEN
1071 IF ( igtyp == 6 .OR. igtyp == 21 .OR. igtyp == 22 )
THEN
1072 lbuf => elbuf_tab(ng)%BUFLY(
max(1,ilay))%LBUF(1,1,1)
1077 IF(igtyp == 21 .OR. igtyp == 22)
THEN
1078 gama(1)= lbuf%GAMA(jj(1)+i)
1079 gama(2)= lbuf%GAMA(jj(2)+i)
1085 gama(1) = gbuf%GAMA(jj(1)+i)
1086 gama(2) = gbuf%GAMA(jj(2)+i)
1087 gama(3) = gbuf%GAMA(jj(3)+i)
1088 gama(4) = gbuf%GAMA(jj(4)+i)
1089 gama(5) = gbuf%GAMA(jj(5)+i)
1090 gama(6) = gbuf%GAMA(jj(6)+i)
1093 . gama,jhbe,igtyp,iparg(17,ng) )
1104 IF (abs(t31) - one < em20)
THEN
1113 value(i) = theta*hundred80/pi
1114 is_written_value(i) = 1
1120 ELSEIF (keyword ==
'ORTHD/PHI')
THEN
1124 IF ( (ilay <= nlay .AND. ilay > 0) .AND.
1125 . ir <= nptr .AND. ir > 0 .AND. is <= npts .AND. is > 0 .AND. it <= nptt .AND. it > 0)
THEN
1126 IF ( igtyp == 6 .OR. igtyp == 21 .OR. igtyp == 22 )
THEN
1127 lbuf => elbuf_tab(ng)%BUFLY(
max(1,ilay))%LBUF(1,1,1)
1132 IF(igtyp == 21 .OR. igtyp == 22)
THEN
1133 gama(1)= lbuf%GAMA(jj(1)+i)
1134 gama(2)= lbuf%GAMA(jj(2)+i)
1140 gama(1) = gbuf%GAMA(jj(1)+i)
1141 gama(2) = gbuf%GAMA(jj(2)+i)
1142 gama(3) = gbuf%GAMA(jj(3)+i)
1143 gama(4) = gbuf%GAMA(jj(4)+i)
1144 gama(5) = gbuf%GAMA(jj(5)+i)
1145 gama(6) = gbuf%GAMA(jj(6)+i)
1148 . gama,jhbe,igtyp,iparg(17,ng) )
1159 IF (abs(t31) - one < em20)
THEN
1161 phi = atan2(t21/cos(theta),t11/cos(theta))
1165 value(i) = phi*hundred80/pi
1166 is_written_value(i) = 1
1172 ELSEIF (keyword ==
'BFRAC')
THEN
1175 IF(gbuf%G_BFRAC > 0)
THEN
1182 value(i) =
max(value(i),multi_fvm%BFRAC(ilay,i+nft))
1183 is_written_value(i) = 1
1187 value(1:nel) = gbuf%BFRAC(1:nel)
1188 is_written_value(1:nel) = 1
1192 ELSEIF (keyword ==
'VDAM1')
THEN
1195 IF ( ilay == -1 .AND. ir == -1 .AND. is == -1 .AND. it
THEN
1196 IF (isolnod == 8 .AND. mlw == 83)
THEN
1199 irupt = mat_param(mt)%FAIL(1)%IRUPT
1200 nfail = elbuf_tab(ng)%BUFLY(1)%NFAIL
1201 IF (irupt == 26)
THEN
1206 . elbuf_tab(ng)%BUFLY(1)%FAIL(ipt,1,1)%FLOC(ir)%DAM
1208 evar(i) =
max(evar(i) ,damf(i))
1214 is_written_value(i) = 1
1219 ELSEIF ( ilay == -1 .AND. ir >= 0 .AND. ir <= nptr .AND.
1220 . is >= 0 .AND. is <= npts .AND. it >= 0 .AND. it <= nptt)
THEN
1221 IF (isolnod == 8 .AND. mlw == 83)
THEN
1224 irupt = mat_param(mt)%FAIL(1)%IRUPT
1225 nfail = elbuf_tab(ng)%BUFLY(1)%NFAIL
1226 IF (irupt == 26)
THEN
1229 . elbuf_tab(ng)%BUFLY(1)%FAIL(ir,1,1)%FLOC(iir)%DAM
1236 is_written_value(i) = 1
1242 ELSEIF (keyword ==
'VDAM2')
THEN
1245 IF ( ilay == -1 .AND. ir == -1 .AND. is == -1 .AND.
THEN
1246 IF (isolnod == 8 .AND. mlw == 83)
THEN
1249 irupt = mat_param(mt)%FAIL(1)%IRUPT
1250 nfail = elbuf_tab(ng)%BUFLY(1)%NFAIL
1251 IF (irupt == 26)
THEN
1256 . elbuf_tab(ng)%BUFLY(1)%FAIL(ipt,1,1)%FLOC(ir)%DAM
1258 evar(i) =
max(evar(i) ,damf(nel + i))
1264 is_written_value(i) = 1
1269 ELSEIF ( ilay == -1 .AND. ir >= 0 .AND. ir <= nptr .AND.
1270 . is >= 0 .AND. is <= npts .AND. it >= 0 .AND. it
THEN
1271 IF (isolnod == 8 .AND. mlw == 83)
THEN
1274 irupt = mat_param(mt)%FAIL(1)%IRUPT
1275 nfail = elbuf_tab(ng)%BUFLY(1)%NFAIL
1276 IF (irupt == 26)
THEN
1279 . elbuf_tab(ng)%BUFLY(1)%FAIL(ir,1,1)%FLOC(iir)%DAM
1281 evar(i) = damf(nel+i)
1286 is_written_value(i) = 1
1292 ELSEIF (keyword ==
'VDAM3')
THEN
1295 IF ( ilay == -1 .AND. ir == -1 .AND. is == -1 .AND. it == -1)
THEN
1296 IF (isolnod == 8 .AND. mlw == 83)
THEN
1299 irupt = mat_param(mt)%FAIL(1)%IRUPT
1300 nfail = elbuf_tab(ng)%BUFLY(1)%NFAIL
1301 IF (irupt == 26)
THEN
1306 . elbuf_tab(ng)%BUFLY(1)%FAIL(ipt,1,1)%FLOC(ir)%DAM
1308 evar(i) =
max(evar(i) ,damf(2*nel + i))
1314 is_written_value(i) = 1
1319 ELSEIF ( ilay == -1 .AND. ir >= 0 .AND. ir <= nptr .AND.
1320 . is >= 0 .AND. is <= npts .AND. it >= 0 .AND. it <= nptt)
THEN
1321 IF (isolnod == 8 .AND. mlw == 83)
THEN
1324 irupt = mat_param(mt)%FAIL(
1325 nfail = elbuf_tab(ng)%BUFLY(1)%NFAIL
1326 IF (irupt == 26)
THEN
1329 . elbuf_tab(ng)%BUFLY(1)%FAIL(ir,1,1)%FLOC(iir)%DAM
1331 evar(i) = damf(2*nel+i)
1336 is_written_value(i) = 1
1342 ELSEIF(keyword ==
'DAMA')
THEN
1345 IF ( ilay == -1 .AND. ir == -1 .AND. is == -1 .AND. it == -1)
THEN
1349 IF (mlw == 120)
THEN
1357 value(i) =
max(value(i),dfmax(i))
1358 is_written_value(i) = 1
1366 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
1372 . elbuf_tab(ng)%BUFLY(il)%FAIL(iir,is,it)%FLOC(ir)%DAMMX
1374 value(i) =
max(value(i),dfmax(i))
1375 is_written_value(i) = 1
1384 ELSEIF ( ilay == -1 .AND. ir >= 0 .AND. ir <= nptr .AND.
1385 . is >= 0 .AND. is <= npts .AND. it >= 0 .AND. it <= nptt)
THEN
1386 IF (mlw == 120)
THEN
1388 ius = nlay*iir*is*it
1390 IF (iir <= nptr.AND.is <= npts.AND.it <= nptt)
THEN
1392 dfmax=>elbuf_tab(ng)%BUFLY(il)%LBUF(iir,is,it)%DMG
1394 value(i) =
max(value(i),dfmax(i))
1395 is_written_value(i) = 1
1401 ius = nlay*iir*is*it
1403 IF (iir <= nptr.AND.is <= npts.AND.it <= nptt)
THEN
1405 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
1408 . elbuf_tab(ng)%BUFLY(il)%FAIL(iir,is,it)%FLOC(ir)%DAMMX
1410 value(i) =
max(value(i),dfmax(i))
1411 is_written_value(i) = 1
1417 ELSEIF ( ilay > 0 .AND. ilay <= nlay .AND. ir >= 0 .AND. ir <= nptr .AND.
1418 . is >= 0 .AND. is <= npts)
THEN
1420 dfmax=>elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,it)%DMG
1422 value(i) =
max(value(i),dfmax(i))
1423 is_written_value(i) = 1
1426 nfail = elbuf_tab(ng)%BUFLY(ilay)%NFAIL
1429 . elbuf_tab(ng)%BUFLY(ilay)%FAIL(ir,is,it)%FLOC(iir)%DAMMX
1431 value(i) =
max(value(i),dfmax(i))
1432 is_written_value(i) = 1
1438 ELSEIF(keyword ==
'FAILURE')
THEN
1440 IF (mode == -1)
THEN
1442 IF ( ilay == -1 .AND. ir == -1 .AND. is == -1 .AND. it == -1)
THEN
1446 imat = elbuf_tab(ng)%BUFLY(il)%IMAT
1447 nfail = mat_param(imat)%NFAIL
1449 fail_id = mat_param(imat)%FAIL(ifail)%FAIL_ID
1450 IF (fail_id == id)
THEN
1454 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(iir,is,it)
1455 dmgmx = fbuf%FLOC(ifail)%DAMMX(i)
1456 value(i) = value(i) + dmgmx/(nptr*npts*nptt)
1457 is_written_value(i) = 1
1458 nlay_fail = nlay_fail + 1
1465 IF (nlay_fail > 0) value(i) = value(i)/nlay_fail
1468 ELSEIF ( ilay == -1 .AND. ir >= 0 .AND. ir <= nptr .AND.
1469 . is >= 0 .AND. is <= npts .AND. it >= 0 .AND. it <= nptt)
THEN
1471 IF (iir <= nptr.AND.is <= npts.AND.it <= nptt)
THEN
1475 imat = elbuf_tab(ng)%BUFLY(il)%IMAT
1476 nfail = mat_param(imat)%NFAIL
1478 fail_id = mat_param(imat)%FAIL(ifail)%FAIL_ID
1479 IF (fail_id == id)
THEN
1480 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(iir,is,it)
1481 value(i) = value(i) + fbuf%FLOC(ifail)%DAMMX(i)
1482 is_written_value(i) = 1
1483 nlay_fail = nlay_fail + 1
1487 IF (nlay_fail > 0) value(i) = value(i)/nlay_fail
1490 ELSEIF ( ilay > 0 .AND. ilay <= nlay .AND. ir >= 0 .AND. ir <= nptr .AND.
1491 . is >= 0 .AND. is <= npts)
THEN
1492 imat = elbuf_tab(ng)%BUFLY(ilay)%IMAT
1493 nfail = mat_param(imat)%NFAIL
1495 fail_id = mat_param(imat)%FAIL(ifail)%FAIL_ID
1496 IF (fail_id == id)
THEN
1499 value(i) = fbuf%FLOC(ifail)%DAMMX(i)
1500 is_written_value(i) = 1
1507 IF ( ilay == -1 .AND. ir == -1 .AND. is == -1 .AND. it == -1)
THEN
1511 imat = elbuf_tab(ng)%BUFLY(il)%IMAT
1512 nfail = mat_param(imat)%NFAIL
1514 fail_id = mat_param(imat)%FAIL(ifail)%FAIL_ID
1515 nmod = mat_param(imat)%FAIL(ifail)%NMOD
1516 IF ((fail_id == id).AND.(mode <= nmod))
THEN
1520 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(iir,is,it)
1521 dmgmx = fbuf%FLOC(ifail)%DAMMX(mode*nel + i)
1522 value(i) = value(i) + dmgmx/(nptr*npts*nptt)
1523 is_written_value(i) = 1
1524 nlay_fail = nlay_fail + 1
1531 IF (nlay_fail > 0) value(i) = value(i)/nlay_fail
1534 ELSEIF ( ilay == -1 .AND. ir >= 0 .AND. ir <= nptr .AND.
1535 . is >= 0 .AND. is <= npts .AND. it >= 0 .AND. it <= nptt)
THEN
1537 IF (iir <= nptr.AND.is <= npts.AND.it <= nptt)
THEN
1541 imat = elbuf_tab(ng)%BUFLY(il)%IMAT
1542 nfail = mat_param(imat)%NFAIL
1544 fail_id = mat_param(imat)%FAIL(ifail)%FAIL_ID
1545 nmod = mat_param(imat)%FAIL(ifail)%NMOD
1546 IF ((fail_id == id).AND.(mode <= nmod))
THEN
1547 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(iir,is,it)
1548 value(i) = value(i) + fbuf%FLOC(ifail)%DAMMX(mode*nel + i)
1549 is_written_value(i) = 1
1550 nlay_fail = nlay_fail + 1
1554 IF (nlay_fail > 0) value(i) = value(i)/nlay_fail
1557 ELSEIF ( ilay > 0 .AND. ilay <= nlay .AND. ir >= 0 .AND. ir <= nptr .AND.
1558 . is >= 0 .AND. is <= npts)
THEN
1559 imat = elbuf_tab(ng)%BUFLY(ilay)%IMAT
1560 nfail = mat_param(imat)%NFAIL
1562 fail_id = mat_param(imat)%FAIL(ifail)%FAIL_ID
1563 nmod = mat_param(imat)%FAIL(ifail)%NMOD
1564 IF ((fail_id == id).AND.(mode <= nmod))
THEN
1565 fbuf => elbuf_tab(ng)%BUFLY(ilay)%FAIL(ir,is,it)
1567 value(i) = fbuf%FLOC(ifail)%DAMMX(mode*nel + i)
1568 is_written_value(i) = 1
1575 ELSEIF (keyword ==
'DAMG')
THEN
1578 IF (gbuf%G_DMG > 0)
THEN
1588 IF (ir == -1 .AND. is == -1 .AND. it == -1 .AND. ilay == -1)
THEN
1592 imat = elbuf_tab(ng)%BUFLY(il)%IMAT
1593 mat_id = mat_param(imat)%MAT_ID
1594 IF ((id == -1) .OR. ((id > 0).AND.(mat_id == id)))
THEN
1598 lbuf=>elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
1600 value(i) = value(i) + lbuf%DMG(i)/nptg
1601 is_written_value(i) = 1
1610 ELSEIF ( ir >= 0 .AND. ir <= nptr .AND.
1611 . is >= 0 .AND. is <= npts .AND.
1612 . it >= 0 .AND. it <= nptt)
THEN
1616 imat = elbuf_tab(ng)%BUFLY(il)%IMAT
1617 mat_id = mat_param(imat)%MAT_ID
1618 IF ((id == -1) .OR. ((id > 0).AND.(mat_id == id)))
THEN
1619 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
1621 value(i) = value(i) + lbuf%DMG(i)/nlay
1622 is_written_value(i) = 1
1628 ELSEIF (ilay > 0 .AND. ilay <= nlay)
THEN
1629 imat = elbuf_tab(ng)%BUFLY(ilay)%IMAT
1630 mat_id = mat_param(imat)%MAT_ID
1631 IF ((id == -1) .OR. ((id > 0).AND.(mat_id == id)))
THEN
1635 lbuf=>elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,it)
1637 value(i) = value(i) + lbuf%DMG(i)/(nptr*npts*nptt)
1638 is_written_value(i) = 1
1649 IF (ir == -1 .AND. is == -1 .AND. it == -1 .AND. ilay == -1)
THEN
1653 imat = elbuf_tab(ng)%BUFLY(il)%IMAT
1654 nmod = mat_param(imat)%NMOD
1655 mat_id = mat_param(imat)%MAT_ID
1656 IF ((nmod > 0 .AND. mode <= nmod) .AND. (mat_id == id))
THEN
1660 lbuf=>elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
1662 value(i) = value(i) + lbuf%DMG(nel*mode+i)/nptg
1663 is_written_value(i) = 1
1672 ELSEIF ( ir >= 0 .AND. ir <= nptr .AND.
1673 . is >= 0 .AND. is <= npts .AND.
1674 . it >= 0 .AND. it <= nptt)
THEN
1678 imat = elbuf_tab(ng)%BUFLY(il)%IMAT
1679 nmod = mat_param(imat)%NMOD
1680 mat_id = mat_param(imat)%MAT_ID
1681 IF ((nmod > 0 .AND. mode <= nmod) .AND. (mat_id == id))
THEN
1682 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
1684 value(i) = value(i) + lbuf%DMG(nel*mode+i)/nlay
1685 is_written_value(i) = 1
1691 ELSEIF (ilay > 0 .AND. ilay <= nlay)
THEN
1692 imat = elbuf_tab(ng)%BUFLY(ilay)%IMAT
1693 nmod = mat_param(imat)%NMOD
1694 mat_id = mat_param(imat)%MAT_ID
1695 IF ((nmod > 0 .AND. mode <= nmod) .AND. (mat_id == id))
THEN
1699 lbuf=>elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,it)
1701 value(i) = value(i) + lbuf%DMG(nel*mode+i)/(nptr*npts*nptt)
1702 is_written_value(i) = 1
1713 ELSEIF (keyword ==
'DAMINI')
THEN
1720 IF ( ilay == -1 .AND. ir == -1 .AND. is == -1 .AND. it == -1)
THEN
1722 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
1726 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(iir,is,it)
1730 IF (fbuf%FLOC(ir)%LF_DAMINI > 0)
THEN
1731 maxdamini =
max(maxdamini,fbuf%FLOC(ir)%DAMINI(i))
1734 value(i) = value(i) + maxdamini/(npts*nptr*nptt*nlay)
1735 is_written_value(i) = 1
1742 ELSEIF ( ilay == -1 .AND. ir >= 0 .AND. ir <= nptr .AND.
1743 . is >= 0 .AND. is <= npts .AND. it >= 0 .AND. it <= nptt)
THEN
1745 IF (iir <= nptr .AND. is <= npts .AND. it <= nptt)
THEN
1747 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
1748 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(iir,is,it)
1752 IF (fbuf%FLOC(ir)%LF_DAMINI > 0)
THEN
1753 maxdamini =
max(maxdamini,fbuf%FLOC(ir)%DAMINI(i))
1756 value(i) = value(i) + maxdamini/nlay
1757 is_written_value(i) = 1
1762 ELSEIF ( ilay > 0 .AND. ilay <= nlay .AND. ir >= 0 .AND. ir <= nptr .AND.
1763 . is >= 0 .AND. is <= npts)
THEN
1764 nfail = elbuf_tab(ng)%BUFLY(ilay)%NFAIL
1765 fbuf => elbuf_tab(ng)%BUFLY(ilay)%FAIL(ir,is,it)
1769 IF (fbuf%FLOC(iir)%LF_DAMINI > 0)
THEN
1770 maxdamini =
max(maxdamini,fbuf%FLOC(iir)%DAMINI(i))
1773 value(i) = maxdamini
1774 is_written_value(i) = 1
1778 ELSEIF(keyword ==
'TDEL')
THEN
1781 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
1789 value(i) =
max(value(i),tdele(i))
1790 is_written_value(i) = 1
1798 ELSEIF(keyword ==
'SSP')
THEN
1800 IF (mlw == 151)
THEN
1802 value(i) = multi_fvm%SOUND_SPEED(i + nft)
1803 is_written_value(i) = 1
1806 l = elbuf_tab(ng)%BUFLY(1)%L_SSP
1809 value(i) = lbuf%SSP(i)
1810 is_written_value(i) = 1
1815 ELSEIF(keyword ==
'VOLU')
THEN
1817 IF (gbuf%G_VOL > 0)
THEN
1818 ialel=iparg(7,ng)+iparg(11,ng)
1822 value(i) = pm(1,mt)*gbuf%VOL(i)
1823 IF(gbuf%RHO(i)>zero)value(i) = value(i)/gbuf%RHO(i)
1824 is_written_value(i) = 1
1828 value(i) = gbuf%VOL(i)
1829 is_written_value(i) = 1
1834 ELSEIF(keyword ==
'SCHLIEREN')
THEN
1836 ialel=iparg(7,ng)+iparg(11,ng)
1840 2 iparg ,wa_l ,elbuf_tab ,ale_connect ,gbuf%VOL,
1844 is_written_value(i) = 1
1848 ELSEIF(keyword ==
'DOMAIN')
THEN
1852 is_written_value(i) = 1
1855 ELSEIF(keyword ==
'FILL')
THEN
1858 value(i) = gbuf%FILL(i)
1859 is_written_value(i) = 1
1862 ELSEIF (keyword ==
'SIGEQ')
THEN
1865 IF (gbuf%G_SEQ > 0)
THEN
1867 nptg = nlay*nptr*npts*nptt
1872 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
1873 IF (elbuf_tab(ng)%BUFLY(il)%L_SEQ > 0)
THEN
1875 VALUE(i) = value(i) + lbuf%SEQ(i)/nptg
1876 is_written_value(i) = 1
1880 s11 = lbuf%SIG(jj(1) + i)
1881 s22 = lbuf%SIG(jj(2) + i)
1882 s33 = lbuf%SIG(jj(3) + i)
1883 s4 = lbuf%SIG(jj(4) + i)
1884 s5 = lbuf%SIG(jj(5) + i
1885 s6 = lbuf%SIG(jj(6) + i)
1887 s11 = s11 + lbuf%VISC(jj(1) + i)
1888 s22 = s22 + lbuf%VISC(jj(2) + i)
1889 s33 = s33 + lbuf%VISC(jj(3) + i)
1890 s4 = s4 + lbuf%VISC(jj(4) + i)
1891 s5 = s5 + lbuf%VISC(jj(5) + i)
1892 s6 = s6 + lbuf%VISC(jj(6) + i)
1894 p = - (s11 + s22 + s33) * third
1898 vonm2 = three*(s4*s4 + s5*s5 + s6*s6 +
1899 . half*(s1*s1 + s2*s2 + s3*s3))
1901 value(i) = value(i) + vonm/nptg
1902 is_written_value(i) = 1
1911 s11 = gbuf%SIG(jj(1) + i)
1912 s22 = gbuf%SIG(jj(2) + i)
1913 s33 = gbuf%SIG(jj(3) + i)
1914 s4 = gbuf%SIG(jj(4) + i)
1915 s5 = gbuf%SIG(jj(5) + i)
1916 s6 = gbuf%SIG(jj(6) + i)
1918 s11 = s11 + lbuf%VISC(jj(1) + i)
1919 s22 = s22 + lbuf%VISC(jj(2) + i)
1920 s33 = s33 + lbuf%VISC(jj(3) + i)
1921 s4 = s4 + lbuf%VISC(jj(4) + i)
1922 s5 = s5 + lbuf%VISC(jj(5) + i)
1923 s6 = s6 + lbuf%VISC(jj(6) + i)
1925 p = - (s11 + s22 + s33) * third
1929 vonm2 = three*(s4*s4 + s5*s5 + s6*s6 +
1930 . half*(s1*s1 + s2*s2 + s3*s3))
1933 is_written_value(i) = 1
1937 ELSEIF (keyword ==
'NL_EPSP')
THEN
1939 IF (gbuf%G_PLANL > 0)
THEN
1943 IF (ilay == -1)
THEN
1945 IF (elbuf_tab(ng)%BUFLY(il)%L_PLANL > 0)
THEN
1949 lbuf=>elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
1951 value(i) = value(i) + lbuf%PLANL(i)/nptg
1952 is_written_value(i) = 1
1960 IF (elbuf_tab(ng)%BUFLY(ilay)%L_PLANL > 0)
THEN
1964 lbuf=>elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,it)
1966 value(i) = value(i) + lbuf%PLANL(i)/(nptr*npts*nptt)
1967 is_written_value(i) = 1
1976 ELSEIF (keyword ==
'NL_EPSD')
THEN
1978 IF (gbuf%G_EPSDNL > 0)
THEN
1983 IF (elbuf_tab(ng)%BUFLY(il)%L_EPSDNL > 0)
THEN
1987 lbuf=>elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
1989 value(i) = value(i) + lbuf%EPSDNL(i)/nptg
1990 is_written_value(i) = 1
1999 ELSEIF (keyword ==
'BULK')
THEN
2001 IF (gbuf%G_QVIS > 0)
THEN
2003 value(i) = gbuf%QVIS(i)
2004 is_written_value(i) = 1
2008 ELSEIF (keyword ==
'TDET')
THEN
2010 IF (gbuf%G_TB > 0)
THEN
2012 value(i) = -gbuf%TB(i)
2013 is_written_value(i) = 1
2017 ELSEIF (keyword ==
'MOMX')
THEN
2020 ialefvm_flg = ipm(251,mt)
2021 IF(ialefvm_flg >= 2)
THEN
2022 IF (isolnod == 8)
THEN
2024 value(i) = gbuf%MOM(jj(1) + i)
2025 is_written_value(i) = 1
2030 ELSEIF (keyword ==
'MOMY')
THEN
2033 ialefvm_flg = ipm(251,mt)
2034 IF(ialefvm_flg >= 2)
THEN
2035 IF (isolnod == 8)
THEN
2037 value(i) = gbuf%MOM(jj(2) + i)
2038 is_written_value(i) = 1
2043 ELSEIF (keyword ==
'MOMZ')
THEN
2046 ialefvm_flg = ipm(251,mt)
2047 IF(ialefvm_flg >= 2)
THEN
2048 IF (isolnod == 8)
THEN
2050 value(i) = gbuf%MOM(jj
2051 is_written_value(i) = 1
2056 ELSEIF (keyword ==
'MOMXY')
THEN
2059 ialefvm_flg = ipm(251,mt)
2060 IF(ialefvm_flg >= 2)
THEN
2061 IF (isolnod == 8)
THEN
2063 value(i) = sqrt( gbuf%MOM(jj(1)+i)*gbuf%MOM(jj(1)+i
2064 . gbuf%MOM(jj(2)+i)*gbuf%MOM(jj(2)+i) )
2065 is_written_value(i) = 1
2070 ELSEIF (keyword ==
'MOMYZ')
THEN
2073 ialefvm_flg = ipm(251,mt)
2074 IF(ialefvm_flg >= 2)
THEN
2075 IF (isolnod == 8)
THEN
2077 value(i) = sqrt( gbuf%MOM(jj(1)+i)*gbuf%MOM(jj(1)+i
2078 . gbuf%MOM(jj(3)+i)*gbuf%MOM(jj(3)+i
2079 is_written_value(i) = 1
2084 ELSEIF (keyword ==
'MOMXZ')
THEN
2087 ialefvm_flg = ipm(251,mt)
2088 IF(ialefvm_flg >= 2)
THEN
2089 IF (isolnod == 8)
THEN
2091 value(i) = sqrt( gbuf%MOM(jj(1)+i)*gbuf%MOM(jj(1)+i)+
2092 . gbuf%MOM(jj(3)+i)*gbuf%MOM(jj(3)+i) )
2093 is_written_value(i) = 1
2098 ELSEIF (keyword ==
'|MOM|')
THEN
2101 ialefvm_flg = ipm(251,mt)
2102 IF(ialefvm_flg >= 2)
THEN
2103 IF (isolnod == 8)
THEN
2105 value(i) = sqrt( gbuf%MOM(jj(1)+i)*gbuf%MOM(jj(1)+i)+
2106 . gbuf%MOM(jj(2)+i)*gbuf%MOM(jj(2)+i)+
2107 . gbuf%MOM(jj(3)+i)*gbuf%MOM(jj(3)+i) )
2108 is_written_value(i) = 1
2113 ELSEIF (keyword ==
'VELX')
THEN
2116 ialefvm_flg = ipm(251,mt)
2117 IF (mlw == 151)
THEN
2119 value(i) = multi_fvm%VEL(1, i + nft)
2120 is_written_value(i) = 1
2122 ELSEIF(ialefvm_flg >= 2)
THEN
2123 IF (isolnod == 8)
THEN
2125 value(i) = gbuf%MOM(jj(1) + i
2126 is_written_value(i) = 1
2131 ELSEIF (keyword ==
'VELY')
THEN
2134 ialefvm_flg = ipm(251,mt)
2135 IF (mlw == 151)
THEN
2137 value(i) = multi_fvm%VEL(2, i + nft)
2138 is_written_value(i) = 1
2140 ELSEIF(ialefvm_flg >= 2)
THEN
2141 IF (isolnod == 8)
THEN
2143 value(i) = gbuf%MOM(jj(2) + i) / gbuf%RHO(i)
2144 is_written_value(i) = 1
2149 ELSEIF (keyword ==
'VELZ')
THEN
2152 ialefvm_flg = ipm(251,mt)
2153 IF (mlw == 151)
THEN
2155 value(i) = multi_fvm%VEL(3, i + nft)
2156 is_written_value(i) = 1
2158 ELSEIF(ialefvm_flg >= 2)
THEN
2159 IF (isolnod == 8)
THEN
2161 value(i) = gbuf%MOM(jj(3) + i) / gbuf%RHO(i)
2162 is_written_value(i) = 1
2167 ELSEIF (keyword ==
'VELXY')
THEN
2170 ialefvm_flg = ipm(251,mt)
2171 IF(ialefvm_flg >= 2)
THEN
2172 IF (isolnod == 8)
THEN
2174 value(i) = sqrt( gbuf%MOM(jj(1)+i)*gbuf%MOM(jj(1)+i)+
2175 . gbuf%MOM(jj(2)+i)*gbuf%MOM(jj(2)+i) ) / gbuf%RHO(i)
2176 is_written_value(i) = 1
2181 ELSEIF (keyword ==
'VELYZ')
THEN
2184 ialefvm_flg = ipm(251,mt)
2185 IF(ialefvm_flg >= 2)
THEN
2186 IF (isolnod == 8)
THEN
2188 value(i) = sqrt( gbuf%MOM(jj(1)+i)*gbuf%MOM(jj(1)+i)+
2189 . gbuf%MOM(jj(3)+i)*gbuf%MOM(jj(3)+i) ) / gbuf%RHO(i)
2190 is_written_value(i) = 1
2195 ELSEIF (keyword ==
'VELXZ')
THEN
2198 ialefvm_flg = ipm(251,mt)
2199 IF(ialefvm_flg >= 2)
THEN
2200 IF (isolnod == 8)
THEN
2202 value(i) = sqrt( gbuf%MOM(jj(1)+i)*gbuf%MOM(jj(1)+i)+
2203 . gbuf%MOM(jj(3)+i)*gbuf%MOM(jj(3)+i) ) / gbuf%RHO(i)
2204 is_written_value(i) = 1
2209 ELSEIF (keyword ==
'|VEL|')
THEN
2212 ialefvm_flg = ipm(251,mt)
2213 IF(ialefvm_flg >= 2)
THEN
2214 IF (isolnod == 8)
THEN
2216 value(i) = sqrt( gbuf%MOM(jj(1)+i)*gbuf%MOM(jj(1)+i)+
2217 . gbuf%MOM(jj(2)+i)*gbuf%MOM(jj(2)+i)+
2218 . gbuf%MOM(jj(3)+i)*gbuf%MOM(jj(3)+i) ) / gbuf%RHO(i)
2224 ELSEIF (keyword ==
'AMS')
THEN
2226 IF(gbuf%G_ISMS > 0)
THEN
2228 value(i) = gbuf%ISMS(i)
2229 is_written_value(i) = 1
2233 ELSEIF (keyword ==
'EINTM' .OR. keyword ==
'ENER')
THEN
2236 IF (mlw == 151)
THEN
2238 value(i) = multi_fvm%EINT(i + nft) / multi_fvm%RHO(i + nft)
2239 is_written_value(i) = 1
2242 ialel=iparg(7,ng)+iparg(11,ng)
2247 value(i) = gbuf%EINT(i)/
max(em20,pm(89,mt))
2248 is_written_value(i) = 1
2252 value(i) = gbuf%EINT(i)/
max(em20,gbuf%RHO(i))
2253 is_written_value(i) = 1
2258 ELSEIF (keyword ==
'EINTV')
THEN
2260 IF (mlw == 151)
THEN
2262 value(i) = multi_fvm%EINT(i + nft)
2263 is_written_value(i) = 1
2266 ialel=iparg(7,ng)+iparg(11,ng)
2271 value(i) = gbuf%EINT(i)/
max(em20,pm(89,mt))*gbuf%RHO(i)
2272 is_written_value(i) = 1
2276 value(i) = gbuf%EINT(i)
2277 is_written_value(i) = 1
2282 ELSEIF (keyword ==
'EINT')
THEN
2284 IF (mlw == 151)
THEN
2286 value(i) = multi_fvm%EINT(i + nft) * gbuf%VOL(i)
2287 is_written_value(i) = 1
2290 ialel=iparg(7,ng)+iparg(11,ng)
2295 vol=gbuf%VOL(i)*pm(89,mt)/gbuf%RHO(i)
2296 value(i) = gbuf%EINT(i)/pm(89,mt)*gbuf%RHO(i)*vol
2297 is_written_value(i) = 1
2301 value(i) = gbuf%EINT(i)*gbuf%VOL(i)
2302 is_written_value(i) = 1
2307 ELSEIF (keyword(1:4) ==
'ENTH')
THEN
2309 IF (mlw == 151)
THEN
2311 pres(i) = multi_fvm%PRES(i + nft)
2315 pres(i) = - (gbuf%SIG(jj(1) + i)+ gbuf%SIG(jj(2) + i) + gbuf%SIG(jj(3) + i))*third
2320 IF(keyword ==
'ENTH')
THEN
2321 IF (mlw == 151)
THEN
2323 value(i) = multi_fvm%EINT(i + nft) / multi_fvm%RHO(i + nft) + pres(i)*gbuf%VOL(i)
2324 is_written_value(i) = 1
2327 ialel=iparg(7,ng)+iparg(11,ng)
2332 mass0=gbuf%VOL(i)*pm(89,mt)
2333 vol=mass0/
max(em20,gbuf%RHO(i))
2334 value(i) = gbuf%EINT(i)/
max(em20,pm(89,mt)) + pres(i)*vol
2335 is_written_value(i) = 1
2339 value(i) = gbuf%EINT(i)/gbuf%RHO(i) + pres(i)*gbuf%VOL(i)
2340 is_written_value(i) = 1
2345 ELSEIF(keyword ==
'ENTHV')
THEN
2346 IF (mlw == 151)
THEN
2348 VALUE(i) = multi_fvm%EINT(i + nft) / multi_fvm%RHO(i + nft)/gbuf%VOL(i) + pres(i)
2349 is_written_value(i) = 1
2352 ialel=iparg(7,ng)+iparg(11,ng)
2357 mass0=gbuf%VOL(i)*pm(89,mt)
2358 vol=mass0/
max(em20,gbuf%RHO(i))
2359 value(i) = gbuf%EINT(i)/
max(em20,pm(89,mt))/vol + pres(i)
2360 is_written_value(i) = 1
2364 value(i) = gbuf%EINT(i)/gbuf%VOL(i)/gbuf%RHO(i) + pres(i)
2365 is_written_value(i) = 1
2370 ELSEIF(keyword ==
'ENTHM')
THEN
2371 IF (mlw == 151)
THEN
2373 mass(i) = multi_fvm%RHO(i + nft)*gbuf%VOL(i)
2374 value(i) = (multi_fvm%EINT(i + nft) / multi_fvm%RHO(i + nft) + pres(i)*gbuf%VOL(i))/mass(i)
2375 is_written_value(i) = 1
2378 ialel=iparg(7,ng)+iparg(11,ng)
2383 mass0=gbuf%VOL(i)*pm(89,mt)
2384 vol=mass0/
max(em20,gbuf%RHO(i))
2386 value(i) = (gbuf%EINT(i)/
max(em20,pm(89,mt))
2387 is_written_value(i) = 1
2391 mass(i)=gbuf%RHO(i)*gbuf%VOL(i)
2392 value(i) = (gbuf%EINT(i)/gbuf%RHO(i) + pres(i)*gbuf%VOL(i))/mass(i)
2393 is_written_value(i) = 1
2399 ELSEIF(keyword ==
'OFF')
THEN
2402 IF (gbuf%G_OFF > 0)
THEN
2403 IF(gbuf%OFF(i) > one)
THEN
2404 value(i) = gbuf%OFF(i) - one
2405 ELSEIF((gbuf%OFF(i) >= zero .AND. gbuf%OFF(i) <= one))
THEN
2406 value(i) = gbuf%OFF(i)
2411 is_written_value(i) = 1
2414 ELSEIF(keyword ==
'MACH')
THEN
2416 IF (mlw == 151)
THEN
2418 vel(1) = multi_fvm%VEL(1, i + nft)
2419 vel(2) = multi_fvm%VEL(2, i + nft)
2420 vel(3) = multi_fvm%VEL(3, i + nft)
2421 vel(0) = sqrt(vel(1)*vel(1)+vel(2)*vel(2)+vel(3)*vel(3))
2422 value(i) = vel(0)/multi_fvm%SOUND_SPEED(i + nft)
2423 is_written_value(i) = 1
2426 l = elbuf_tab(ng)%BUFLY(1)%L_SSP
2427 IF(elbuf_tab(ng)%BUFLY(1)%L_SSP /= 0)
THEN
2428 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
2430 vel(1) = gbuf%MOM(jj(1) + i) / gbuf%RHO(i)
2431 vel(2) = gbuf%MOM(jj(2) + i) / gbuf%RHO(i)
2432 vel(3) = gbuf%MOM(jj(3) + i) / gbuf%RHO(i)
2433 vel(0) = sqrt(vel(1)*vel(1)+vel(2)*vel(2)+vel(3)*vel(3))
2434 value(i) = vel(0)/lbuf%SSP(i)
2435 is_written_value(i) = 1
2439 l = elbuf_tab(ng)%BUFLY(1)%L_SSP
2440 IF(elbuf_tab(ng)%BUFLY(1)%L_SSP /= 0)
THEN
2441 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
2444 tmp_2(1:nel,1:3) = zero
2447 tmp_2(i,1)=tmp_2(i,1) + v(1,ixs(j+1,i+nft))-w(1,ixs(j+1,i+nft))
2448 tmp_2(i,2)=tmp_2(i,2) + v(2,ixs(j+1,i+nft))-w(2,ixs(j+1,i+nft))
2449 tmp_2(i,3)=tmp_2(i,3) + v(3,ixs(j+1,i+nft))-w(3,ixs(j+1,i+nft))
2453 vel(1) = tmp_2(i,1)*one_over_8
2454 vel(2) = tmp_2(i,2)*one_over_8
2455 vel(3) = tmp_2(i,3)*one_over_8
2456 value(i) = sqrt(vel(1)*vel(1)+vel(2)*vel(2)+vel(3)*vel(3))/lbuf%SSP(i)
2457 is_written_value(i) = 1
2461 tmp_2(1:nel,1:3) = zero
2464 tmp_2(i,1)=tmp_2(i,1)+v(1,ixs(j+1,i+nft))
2465 tmp_2(i,2)=tmp_2(i,2)+v(2,ixs(j+1,i+nft))
2466 tmp_2(i,3)=tmp_2(i,3)+v(3,ixs(j+1,i+nft))
2470 vel(1) = tmp_2(i,1)*one_over_8
2471 vel(2) = tmp_2(i,2)*one_over_8
2472 vel(3) = tmp_2(i,3)*one_over_8
2473 value(i) = sqrt(vel(1)*vel(1)+vel(2)*vel(2)+vel(3)*vel(3))/lbuf%SSP(i)
2474 is_written_value(i) = 1
2480 ELSEIF(keyword ==
'GROUP')
THEN
2484 is_written_value(i) = 1
2487 ELSEIF(keyword ==
'INTERNAL.ID')
THEN
2491 is_written_value(i) = 1
2494 ELSEIF(keyword ==
'LOCAL.ID')
THEN
2498 is_written_value(i) = 1
2501 ELSEIF(keyword ==
'THICK' )
THEN
2506 IF (isolnod == 6 )
THEN
2510 nc(1:3) = ixs(2:4,n)
2511 nc(4:6) = ixs(6:8,n)
2512 g1(i,1:3) = x(1:3,nc(2))-x(1:3,nc(1))+x(1:3,nc(5))-x(1:3,nc(4))
2513 g2(i,1:3) = x(1:3,nc(3))-x(1:3,nc(1))+x(1:3,nc(6))-x(1:3,nc(4))
2515 CALL ths_marea(g1(1,1),g1(1,2),g1(1,3),g2(1,1),g2(1,2),g2(1,3),det,nel)
2517 voln(i)=gbuf%VOL(i)*rho0/gbuf%RHO(i)
2519 value(i) = voln(i)/aream(i)
2520 is_written_value(i) = 1
2522 ELSEIF (isolnod == 8 )
THEN
2527 nc(1:8) = ixs(2:9,n)
2529 . -x(1:3,nc(1))-x(1:3,nc(4))-x(1:3,nc(5))-x(1:
2530 g2(i,1:3) = x(1:3,nc(3))+x(1:3,nc(4))+x(1:3,nc(7))+x(1:3,nc(8))
2531 . -x(1:3,nc(1))-x(1:3,nc(2))-x(1:3,nc(5))-x(1:3,nc(6))
2532 g3(i,1:3) = x(1:3,nc(5))+x(1:3,nc(6))+x(1:3,nc(7))+x(1:3,nc(8))
2533 . -x(1:3,nc(1))-x(1:3,nc
2537 CALL ths_vol(g1(1,1),g1(1,2),g1(1,3),g2(1,1),g2(1,2),g2(1,3),
2538 . g3(1,1),g3(1,2),g3(1,3),det,nel)
2539 voln(1:nel)=zep015625*det(1:nel)
2541 voln(1:nel)=gbuf%VOL(1:nel)*rho0/gbuf%RHO(1:nel)
2543 icsig = iparg(17,ng)
2546 CALL ths_marea(g2(1,1),g2(1,2),g2(1,3),g3(1,1),g3(1,2),g3(1,3),det,nel)
2548 CALL ths_marea(g1(1,1),g1(1,2),g1(1,3),g2(1,1),g2(1,2),g2(1,3),det,nel)
2550 CALL ths_marea(g3(1,1),g3(1,2),g3(1,3),g1(1,1),g1(1,2),g1(1,3),det,nel)
2554 value(i) = voln(i)/aream(i)
2555 is_written_value(i) = 1
2560 nc(1:8) = ixs(2:9,n)
2561 g1(i,1:3) = x(1:3,nc(2))+x(1:3,nc(3))+x(1:3,nc(6))+x(1:3,nc(7))
2563 g2(i,1:3) = x(1:3,nc(3))+x(1:3,nc(4))+x(1:3,nc(7))+x(1:3,nc(8))
2564 . -x(1:3,nc(1))-x(1:3,nc(2))-x(1:3,nc(5))-x(1:3,nc(6))
2566 CALL ths_marea(g1(1,1),g1(1,2),g1(1,3),g2(1,1),g2(1,2),g2(1,3),det,nel)
2568 voln(i)=gbuf%VOL(i)*rho0/gbuf%RHO
2569 aream(i) =one_over_16*det(i)
2570 value(i) = voln(i)/aream(i)
2571 is_written_value(i) = 1
2574 ELSEIF (isolnod == 16 .OR. isolnod == 20)
THEN
2578 nc(1:8) = ixs(2:9,n)
2580 . -x(1:3,nc(1))-x(1:3,nc(4))-x(1:3,nc(5))-x(1:3,nc(8))
2581 g2(i,1:3) = x(1:3,nc(3))+x(1:3,nc(4))+x(1:3,nc(7))+x(1:3,nc(8))
2582 . -x(1:3,nc(1))-x(1:3,nc(2))-x(1:3,nc(5))-x(1:3,nc(6))
2584 CALL ths_marea(g1(1,1),g1(1,2),g1(1,3),g2(1,1),g2(1,2),g2(1,3),det,nel)
2586 voln(i)=gbuf%VOL(i)*rho0/gbuf%RHO(i)
2587 aream(i) =one_over_16*det(i)
2588 value(i) = voln(i)/aream(i)
2589 is_written_value(i) = 1
2591 ELSEIF (isolnod == 4 .OR. isolnod == 10)
THEN
2594 ELSEIF(keyword ==
'THIN')
THEN
2601 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(1,1,1)
2603 ezz(i) = ezz(i)+fac*lbuf%STRA(jj(3)+i)
2606 value(1:nel) = -hundred*(exp(ezz
2607 is_written_value(1:nel) = 1
2608 ELSEIF (jhbe==14 )
THEN
2609 fac = one/(nlay*nptr*npts)
2613 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,1)
2615 ezz(i) = ezz(i)+fac*lbuf%STRA(jj(3)+i)
2620 value(1:nel) = -hundred*(exp(ezz(1:nel))-one)
2621 is_written_value(1:nel) = 1
2622 ELSEIF (jhbe==16 )
THEN
2625 nc(1:8) = ixs(2:9,n)
2626 g3(i,1:3) = x(1:3,nc(5))+x(1:3,nc(6))+x(1:3,nc(7))+x(1:3,nc(8))
2627 . -x(1:3,nc(1))-x(1:3,nc(2))-x(1:3,nc(3))-x(1:3,nc(4))
2629 fac = one/(nlay*nptr*nptt)
2633 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,1,it)
2636 e33 = g3(i,1)*g3(i,1)*lbuf%STRA(jj(1)+i)
2637 . +g3(i,2)*g3(i,2)*lbuf%STRA(jj(2)+i)
2638 . +g3(i,3)*g3(i,3)*lbuf%STRA(jj(3)+i)
2639 . +g3(i,1)*g3(i,2)*lbuf%STRA(jj(4)+i)
2640 . +g3(i,2)*g3(i,3)*lbuf%STRA(jj(5)+i)
2641 . +g3(i,3)*g3(i,1)*lbuf%STRA(jj(6)+i)
2642 ezz(i) = ezz(i)+fac*e33
2647 value(1:nel) = hundred*ezz(1:nel)
2648 is_written_value(1:nel) = 1
2650 ELSEIF (isolnod == 8 .OR. isolnod == 20)
THEN
2654 nc(1:8) = ixs(2:9,n)
2655 g3(i,1:3) = x(1:3,nc(5))+x(1:3,nc(6))+x(1:3,nc
2656 . -x(1:3,nc(1))-x(1:3,nc(2))-x(1:3,nc(3))-x(1:3,nc(4))
2658 fac = one/(nptr*npts*nptt)
2662 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,it)
2664 e33 = g3(i,1)*g3(i,1)*lbuf%STRA(jj(1)+i)
2665 . +g3(i,2)*g3(i,2)*lbuf%STRA(jj(2)+i)
2666 . +g3(i,3)*g3(i,3)*lbuf%STRA(jj(3)+i)
2667 . +g3(i,1)*g3(i,2)*lbuf%STRA(jj(4)+i)
2668 . +g3(i,2)*g3(i,3)*lbuf%STRA(jj(5)+i)
2669 . +g3(i,3)*g3(i,1)*lbuf%STRA(jj(6)+i)
2670 ezz(i) = ezz(i)+fac*e33
2675 value(1:nel) = hundred*ezz(1:nel)
2676 is_written_value(1:nel) = 1
2678 fac = one/(nptr*npts*nptt)
2684 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,it)
2686 ezz(i) = ezz(i)+fac*lbuf%STRA(jj(2)+i)
2691 value(1:nel) = hundred*ezz(1:nel)
2692 is_written_value(1:nel) = 1
2697 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,it)
2699 ezz(i) = ezz(i)+fac*lbuf%STRA(jj(3)+i)
2704 value(1:nel) = hundred*ezz(1:nel)
2705 is_written_value(1:nel) = 1
2710 ELSEIF(keyword ==
'COLOR')
THEN
2712 gbuf => elbuf_tab(ng)%GBUF
2713 IF (mlw == 151)
THEN
2714 nfrac=multi_fvm%NBMAT
2716 lbuf => elbuf_tab(ng)%BUFLY(imat)%LBUF(1,1,1)
2718 vfrac(i,imat) = lbuf%VOL(i) / gbuf%VOL(i)
2721 ELSEIF(mlw == 20)
THEN
2724 vfrac(i,1) = elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)%VOL(i) / gbuf%VOL(i)
2725 vfrac(i,2) = elbuf_tab(ng)%BUFLY(2)%LBUF(1,1,1)%VOL(i) / gbuf%VOL(i)
2727 ELSEIF(mlw == 37)
THEN
2728 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
2731 vfrac(i,1) = mbuf%VAR(i+3*nel)
2732 vfrac(i,2) = mbuf%VAR(i+4*nel)
2734 ELSEIF(mlw == 51)
THEN
2737 iadbuf = ipm(7,imat)
2738 nuparam= ipm(9,imat)
2739 uparam => bufmat(iadbuf:iadbuf+nuparam-1)
2741 isubmat=uparam(276+1); iu(1)=m51_n0phas+(isubmat-1)*m51_nvphas
2742 isubmat=uparam(276+2); iu(2)=m51_n0phas+(isubmat-1)*m51_nvphas
2743 isubmat=uparam(276+3); iu(3)=m51_n0phas+(isubmat-1)*m51_nvphas
2744 isubmat=uparam(276+4); iu(4)=m51_n0phas+(isubmat-1)*m51_nvphas
2745 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
2748 vfrac(i,1) = mbuf%VAR(i+iu(1)*nel)
2749 vfrac(i,2) = mbuf%VAR(i+iu(2)*nel)
2750 vfrac(i,3) = mbuf%VAR(i+iu(3)*nel)
2751 vfrac(i,4) = mbuf%VAR(i+iu(4)*nel)
2761 value(i) = value(i) + vfrac(i,imat)*imat
2763 is_written_value(i) = 1
2769 ELSEIF(keyword ==
'VONM/TMAX')
THEN
2772 value(i) = gbuf%TM_YIELD(i)
2773 is_written_value(i) = 1
2776 ELSEIF(keyword ==
'SIGEQ/TMAX')
THEN
2779 value(i) = gbuf%TM_SEQ(i)
2780 is_written_value(i) = 1
2783 ELSEIF(keyword ==
'ENER/TMAX')
THEN
2786 value(i) = gbuf%TM_EINT(i)
2787 is_written_value(i) = 1
2790 ELSEIF(keyword ==
'DAMA/TMAX')
THEN
2793 value(i) = gbuf%TM_DMG(i)
2794 is_written_value(i) = 1
2797 ELSEIF(keyword ==
'TILLOTSON')
THEN
2800 IF (mlw == 151)
THEN
2804 ieos = ipm(4, mat_param(mt)%MULTIMAT%MID(imat) )
2806 ntillotson = ntillotson + 1
2807 imat_tillotson = imat
2811 IF(ntillotson > 1)
THEN
2814 ieos = ipm(4, mat_param(mt)%MULTIMAT%MID(imat) )
2816 ebuf => elbuf_tab(ng)%BUFLY(imat)%EOS(1,1,1)
2817 nvareos = elbuf_tab(ng)%BUFLY(imat)%NVAR_EOS
2819 value(i) = value(i) + ebuf%VAR(i) * fac
2820 is_written_value(i) = 1
2826 ELSEIF(ntillotson == 1)
THEN
2827 ebuf => elbuf_tab(ng)%BUFLY(imat_tillotson)%EOS(1,1,1)
2828 nvareos = elbuf_tab(ng)%BUFLY(imat_tillotson)%NVAR_EOS
2830 value(i) = ebuf%VAR(i)
2831 is_written_value(i) = 1
2838 ebuf => elbuf_tab(ng)%BUFLY(1)%EOS(1,1,1)
2839 nvareos = elbuf_tab(ng)%BUFLY(1)%NVAR_EOS
2841 value(i) = ebuf%VAR(i)
2842 is_written_value(i) = 1
2847 ELSEIF(keyword ==
'DIV(U)')
THEN
2849 ialel=iparg(7,ng)+iparg(11,ng)
2852 1 evar ,ixs ,x ,v , iparg ,elbuf_tab ,ng ,nixs ,1,
2853 2 numels ,nel ,numnod ,nparg , ngroup ,n2d , nft)
2856 is_written_value(i) = 1
2860 ELSEIF (keyword ==
'ECONTROL')
THEN
2862 IF (gbuf%G_EINT_DISTOR>0)
THEN
2864 value(i) = gbuf%EINT_DISTOR(i)
2865 is_written_value(i) = 1
2869 elseif(keyword ==
'VSTRAIN')
then
2876 mid = mat_param(mt)%multimat%mid(ilay)
2877 rho0i(ilay) = pm(89,mid)
2878 vi(ilay) = multi_fvm%phase_alpha(ilay,i+nft) * gbuf%vol(i)
2879 v0i(ilay) = multi_fvm%phase_rho(ilay,i+nft) * vi(ilay) / rho0i(ilay)
2884 rho0g = rho0g + rho0i(ilay)*v0i(ilay)
2887 value(i) = multi_fvm%rho(i+nft) / rho0g - one
2888 is_written_value(i) = 1
2890 elseif(mlw == 51)
then
2893 iadbuf = ipm(7,imat)
2894 nuparam= ipm(9,imat)
2895 uparam => bufmat(iadbuf:iadbuf+nuparam-1)
2896 mbuf => elbuf_tab(ng)%bufly(1)%mat(1,1,1)
2899 isubmat = nint(uparam(276+1)); iu(1)=m51_n0phas +(isubmat-1)*m51_nvphas + ipos-1
2900 isubmat = nint(uparam(276+2)); iu(2)=m51_n0phas +(isubmat-1)*m51_nvphas + ipos-1
2901 isubmat = nint(uparam(276+3)); iu(3)=m51_n0phas +(isubmat-1)*m51_nvphas + ipos-1
2902 isubmat = nint(uparam(276+4)); iu(4)=m51_n0phas +(isubmat-1)*m51_nvphas + ipos-1
2903 vfrac(i,1) = mbuf%var(i+iu(1)*nel)
2904 vfrac(i,2) = mbuf%var(i+iu(2)*nel)
2905 vfrac(i,3) = mbuf%var(i+iu(3)*nel)
2906 vfrac(i,4) = mbuf%var(i+iu(4)*nel)
2909 isubmat = nint(uparam(276+1)); iu(1)=m51_n0phas +(isubmat-1)*m51_nvphas + ipos-1
2910 isubmat = nint(uparam(276+2)); iu(2)=m51_n0phas +(isubmat-1)*m51_nvphas + ipos-1
2911 isubmat = nint(uparam(276+3)); iu(3)=m51_n0phas +(isubmat-1)*m51_nvphas + ipos
2912 isubmat = nint(uparam(276+4)); iu(4)=m51_n0phas +(isubmat-1)*m51_nvphas + ipos-1
2914 rhoi(2) = mbuf%var(i
2915 rhoi(3) = mbuf%var(i+iu(3)*nel)
2916 rhoi(4) = mbuf%var(i+iu(4)*nel)
2918 mid = mat_param(mt)%multimat%mid(ilay)
2919 rho0i(ilay) = pm(89,mid)
2920 vi(ilay) = vfrac(i,ilay) * gbuf%vol(i)
2922 v0i(ilay) = rhoi(ilay) * vi(ilay) / rho0i(ilay)
2927 rho0g = rho0g + rho0i(ilay)*v0i(ilay)
2930 value(i) = gbuf%rho(i) / rho0g - one
2931 is_written_value(i) = 1
2933 elseif(mlw == 37)
then
2936 iadbuf = ipm(7,imat)
2937 nuparam= ipm(9,imat)
2938 uparam => bufmat(iadbuf:iadbuf+nuparam-1)
2939 mbuf => elbuf_tab(ng)%bufly(1)%mat(1,1,1)
2940 rho0i(1) = uparam(11)
2941 rho0i(2) = uparam(12)
2942 vi(1) = mbuf%var(i+3*nel) * gbuf%vol(i)
2943 vi(2) = mbuf%var(i+4*nel) * gbuf%vol(i)
2944 rhoi(1) = mbuf%var(i+2*nel)
2945 rhoi(2) = mbuf%var(i+1*nel)
2946 v0i(1) = rhoi(1) * vi(1) / rho0i(1)
2947 v0i(2) = rhoi(2) * vi(2) / rho0i(2)
2951 rho0g = rho0g + rho0i(ilay)*v0i(ilay)
2954 value(i) = gbuf%rho(i) / rho0g - one
2955 is_written_value(i) = 1
2957 elseif(mlw == 20)
then
2959 lbuf1 => elbuf_tab(ng)%bufly(1)%lbuf(1,1,1)
2960 lbuf2 => elbuf_tab(ng)%bufly(2)%lbuf(1,1,1)
2961 mid = mat_param(mt)%multimat%mid(1)
2962 rho0i(1) = pm(89,mid)
2963 mid = mat_param(mt)%multimat%mid(2)
2964 rho0i(2) = pm(89,mid)
2965 vi(1) = lbuf1%vol(i)
2966 vi(2) = lbuf2%vol(i)
2967 rhoi(1) = lbuf1%rho(i)
2968 rhoi(2) = lbuf2%rho(i)
2969 v0i(1) = rhoi(1) * vi(1) / rho0i(1)
2970 v0i(2) = rhoi(2) * vi(2) / rho0i(2)
2974 rho0g = rho0g + rho0i(ilay)*v0i(ilay)
2977 value(i) = gbuf%rho(i) / rho0g - one
2978 is_written_value(i) = 1
2982 if(pm(89,mt) > zero)
then
2983 value(i) = gbuf%rho(i) / pm(89,mt) - one
2984 is_written_value(i) = 1
2990 elseif(keyword(1:8) ==
'VSTRAIN/')
then
2993 read(keyword(9:),
'(I2)', iostat=ierr) ilay
2994 if(ierr == 0 .and. ilay > 0)
then
2995 if(mlw == 151 .and. ilay <=
min(10,multi_fvm%nbmat))detected = .true.
2996 if(mlw == 51 .and. ilay <= 4 )detected = .true.
2997 if(mlw == 37 .and. ilay <= 2 )detected = .true.
2998 if(mlw == 20 .and. ilay <= 2 )detected = .true.
3006 mid = mat_param(mt)%multimat%mid(ilay)
3007 rho0i(ilay) = pm(89,mid)
3008 vi(ilay) = multi_fvm%phase_alpha(ilay,i+nft) * gbuf%vol(i)
3009 v0i(ilay) = multi_fvm%phase_rho(ilay,i+nft) * vi(ilay) / rho0i(ilay)
3010 value(i) = multi_fvm%phase_rho(ilay,i+nft) / rho0i(ilay) - one
3011 is_written_value(i) = 1
3013 elseif(mlw == 51)
then
3016 iadbuf = ipm(7,imat)
3017 nuparam= ipm(9,imat)
3018 uparam => bufmat(iadbuf:iadbuf+nuparam-1)
3019 mbuf => elbuf_tab(ng)%bufly(1)%mat(1,1,1)
3020 mid = mat_param(mt)%multimat%mid(ilay)
3021 rho0i(ilay) = pm(89,mid)
3024 isubmat = nint(uparam(276+ilay)); iu(1)=m51_n0phas +(isubmat-1)*m51_nvphas + ipos-1
3025 vfrac(i,ilay) = mbuf%var(i+iu(ilay)*nel)
3026 vi(ilay) = vfrac(i,ilay) * gbuf%vol(i)
3029 isubmat = nint(uparam(276+ilay)); iu(ilay)=m51_n0phas +(isubmat-1)*m51_nvphas + ipos-1
3030 rhoi(ilay) = mbuf%var(i+iu(ilay)*nel)
3031 v0i(ilay) = rhoi(ilay) * vi(ilay) / rho0i(ilay)
3032 value(i) = rhoi(ilay) / rho0i(ilay) - one
3033 is_written_value(i) = 1
3035 elseif(mlw == 37)
then
3038 iadbuf = ipm(7,imat)
3039 nuparam= ipm(9,imat)
3040 uparam => bufmat(iadbuf:iadbuf+nuparam-1)
3041 mbuf => elbuf_tab(ng)%bufly(1)%mat(1,1,1)
3042 rho0i(ilay) = uparam(10+ilay)
3043 vi(ilay) = mbuf%var(i+(ilay+2)*nel) * gbuf%vol(i)
3044 rhoi(ilay) = mbuf%var(i+(3-ilay)*nel)
3045 v0i(ilay) = rhoi(ilay) * vi(ilay) / rho0i(ilay)
3046 value(i) = rhoi(ilay) / rho0i(ilay) - one
3047 is_written_value(i) = 1
3049 elseif(mlw == 20)
then
3051 lbuf => elbuf_tab(ng)%bufly(ilay)%lbuf(1,1,1)
3052 mid = mat_param(mt)%multimat%mid(ilay)
3053 rho0i(ilay) = pm(89,mid)
3054 vi(ilay) = lbuf%vol(i)
3055 rhoi(ilay) = lbuf%rho(i)
3056 v0i(ilay) = rhoi(ilay) * vi(ilay) / rho0i(ilay)
3057 value(i) = rhoi(ilay) / rho0i(ilay) - one
3058 is_written_value(i) = 1
3062 is_written_value(i) = 0
3071 IF(called_from_python)
THEN
3072 solid_scalar(1:nel) = value(1:nel)
3074 CALL h3d_write_scalar(iok_part,is_written_solid,solid_scalar,nel,offset,nft
3075 .
VALUE,is_written_value)