48 SUBROUTINE dfuncs(ELBUF_TAB ,FUNC ,IFUNC ,IPARG ,GEO ,
49 2 IXS ,MASS ,PM ,EL2FA ,NBF ,
50 3 IPM ,IGEO ,NBPART ,EHOUR ,ANIM ,
51 4 IADG ,SPBUF ,IPART ,IPARTSP ,ISPH3D ,
52 5 X ,V ,W ,ALE_CONNECTIVITY,
53 6 NERCVOIS ,NESDVOIS ,LERCVOIS ,LESDVOIS ,BUFMAT ,
54 7 FANI_CELL ,MULTI_FVM ,MAT_PARAM ,ITHERM )
67 USE multimat_param_mod ,
ONLY : m51_n0phas, m51_nvphas
68 USE matparam_def_mod ,
ONLY : matparam_struct_
73#include "implicit_f.inc"
77#include "vect01_c.inc"
89#include "tabsiz_c.inc"
93 my_real func(*), mass(*) ,pm(npropm,nummat), geo(npropg,numgeo),
94 . ehour(*),anim(*), spbuf(*),x(3,numnod),v(3,numnod), w(3,numnod),bufmat(*)
96 INTEGER IPARG(NPARG,*),EL2FA(*),IXS(NIXS,NUMELS),IFUNC,NBF,ISPH3D,
97 . NBPART,IADG(NSPMD,*),IPM(NPROPMI,NUMMAT),
98 . IPART(LIPART1,*),IPARTSP(*),BUF,IGEO(NPROPGI,NUMGEO)
99 INTEGER,
INTENT(IN) :: ITHERM
100 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
101 TYPE(),
INTENT(IN) :: MULTI_FVM
103 TYPE (MATPARAM_STRUCT_) ,
DIMENSION(NUMMAT) ,
INTENT(IN) :: MAT_PARAM
107 INTEGER I,J,,N, NG, NEL, MLW,
108 . nn, k1, k2,jturb,mt, imid, ialel,irupt,
110 . offset,k,ii, ius, nuvar,tshell,tsh_ort,
111 . isolnod, iprt, liad, nptr, npts, nptt, nlay, ipt,
112 . il,is,ir,it, nptg, icsig,
113 . pid, npg_plane,nfail,numlay,ijk,iir,ioff,ialefvm_flg,
114 . nercvois(*),nesdvois(*),lercvois(*),lesdvois(*),
115 . ideb, ipos, itrimat,ivisc,jj(6),ifrac,imat,iadbuf,
116 . nuparam,idx,isubmat,iu(4),nfrac,is_ale,is_euler,
117 . imat_tillotson,ntillotson,fac,nvareos,ieos
118 my_real evar(mvsiz), user(mvsiz),
119 . off, p, vonm2, vonm, s1, s2, s3,
VALUE,values(mvsiz),gama(6),
120 . t11,t21,t31,t12,t22,t32,t13,t23,t33,
121 . phi,teta,psi,dammax,s11,s22,s33,s4,s5,s6,
122 . sig1(mvsiz),sig2(mvsiz),sig3(mvsiz),sig4(mvsiz),sig5(mvsiz),
123 . sig6(mvsiz),ff0,gg0,hh0,ll0,mm0,nn0,crit,vel(0:4),vfrac(mvsiz,21),tmp(3,8)
125 REAL,
DIMENSION(:),
ALLOCATABLE::WAL
126 TYPE(G_BUFEL_) ,
POINTER :: GBUF
127 TYPE() ,
POINTER :: LBUF,LBUF1,LBUF2
128 TYPE(BUF_MAT_) ,
POINTER :: MBUF
129 TYPE(BUF_EOS_) ,
POINTER ::
131 my_real,
DIMENSION(:),
POINTER :: uvarf, damf,dfmax,tdele
132 my_real,
DIMENSION(:) ,
POINTER :: uparam
144 CALL my_alloc(wal,nbf)
148 nn4 = nn3 + isph3d*(numsph+maxpjet)
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 )
171 DO offset = 0,nel-1,nvsiz
172 nft = iparg(3,ng) + offset
173 isolnod = iparg(28,ng)
176 llt=
min(nvsiz,nel-offset)
178 is_euler=iparg(11,ng)
187 IF (jcvt==1.AND.isorth/=0) jcvt=2
189 gbuf => elbuf_tab(ng)%GBUF
190 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
191 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
192 nlay = elbuf_tab(ng)%NLAY
193 nptr = elbuf_tab(ng)%NPTR
194 npts = elbuf_tab(ng)%NPTS
195 nptt = elbuf_tab(ng)%NPTT
196 nptg = nptt*npts*nptr*nlay
199 IF (igtyp==20 .OR. igtyp==21 .OR. igtyp==22) tshell = 1
200 IF (igtyp==21 .OR. igtyp==22) tsh_ort = 1
213 IF (mlw /= 0 .and. mlw /= 13 .and. igtyp /= 0)
THEN
214 jturb=iparg(12,ng)*(iparg(7,ng)+iparg(11,ng))
216 IF(ifunc == 1 .AND. (mlw /= 12 .AND. mlw /=14 .AND. mlw /= 25))
THEN
218 IF (gbuf%G_PLA > 0)
THEN
219 evar(i) = gbuf%PLA(i)
223 ELSEIF(ifunc == 2)
THEN
225 evar(i) = gbuf%RHO(i)
228 ELSEIF(ifunc == 3)
THEN
231 ialel=iparg(7,ng)+iparg(11,ng)
234 evar(i) = gbuf%EINT(i)/
max(em30,pm(1,mt))
236 evar(i) = gbuf%EINT(i)/
max(em30,gbuf%RHO(i))
238 IF( nfilsol /= 0 .AND. gbuf%G_FILL /= 0 )
239 . evar(i) = evar(i) * gbuf%FILL(i)
242 ELSEIF (ifunc == 4)
THEN
244 evar(1:nel) = elbuf_tab(ng)%GBUF%TEMP(1:nel)
248 IF (elbuf_tab(ng)%BUFLY(il)%L_TEMP > 0)
THEN
249 DO it=1,elbuf_tab(ng)%BUFLY(il)%NPTT
252 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
253 evar(1:nel) = evar(1:nel) + lbuf%TEMP(1:nel)/nptg
261 ELSEIF(ifunc == 6 .OR. ifunc == 7)
THEN
264 s11 = gbuf%SIG(jj(1) + i)
265 s22 = gbuf%SIG(jj(2) + i)
266 s33 = gbuf%SIG(jj(3) + i)
267 s4 = gbuf%SIG(jj(4) + i)
268 s5 = gbuf%SIG(jj(5) + i)
269 s6 = gbuf%SIG(jj(6) + i)
271 s11 = s11 + lbuf%VISC(jj(1) + i)
272 s22 = s22 + lbuf%VISC(jj(2) + i)
273 s33 = s33 + lbuf%VISC(jj(3) + i)
274 s4 = s4 + lbuf%VISC(jj(4) + i)
275 s5 = s5 + lbuf%VISC(jj(5) + i)
276 s6 = s6 + lbuf%VISC(jj(6) + i)
278 p = - (s11 + s22 + s33 ) * third
284 vonm2 = three*(s4*s4 + s5*s5 + s6*s6 +
285 . half*(s1*s1 + s2*s2 + s3*s3))
288 IF( nfilsol /= 0 .AND. gbuf%G_FILL /= 0 )
289 .
VALUE =
VALUE * gbuf%FILL(i)
295 ELSEIF(ifunc == 8 .and. jturb /= 0)
THEN
301 ELSEIF(ifunc == 9)
THEN
305 IF((mlw == 6 .OR. mlw == 17).AND.jturb/=0)
THEN
307 evar(i) = pm(81,mt) * gbuf%RK(i)**2
308 . /
max(em15,gbuf%RE(i))
309 ELSEIF(mlw == 46 .OR. mlw == 47)
THEN
310 evar(i) = mbuf%VAR(i)
316 ELSEIF(ifunc == 10)
THEN
319 evar(i) = fani_cell%VORT_X(i+nft)
323 ELSEIF((ifunc == 11.OR.ifunc == 12.OR.ifunc == 13) .AND.mlw == 24)
THEN
326 evar(i) = lbuf%DAM(jj(ifunc-10) + i)
330 ELSEIF(ifunc>=14.AND.ifunc<=19)
THEN
332 evar(i) = gbuf%SIG(jj(ifunc - 13) + i)
333 IF( nfilsol /= 0 .AND. gbuf%G_FILL /= 0 )
334 . evar(i) = evar(i) * gbuf%FILL(i)
338 evar(i) = evar(i) + lbuf%VISC(jj(ifunc - 13)+i)
342 ELSEIF(ifunc>=20 .AND. ifunc<=24)
THEN
349 IF (isolnod == 8 .AND. mlw == 59)
THEN
352 nfail = elbuf_tab(ng)%BUFLY(1)%NFAIL
355 IF (irupt == 20)
THEN
360 . elbuf_tab(ng)%BUFLY(1)%FAIL(ipt,1,1)%FLOC(ir)%VAR
362 user(i) =
max(user(i),uvarf(ius*nel + i))
373 mbuf => elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,it)
378 IF (nuvar > ius) user(i) = user(i)
379 . + mbuf%VAR(i+ius*nel)/nptg
390 IF (isolnod == 8 .AND. mlw == 59)
THEN
392 ELSEIF (nuvar > ius)
THEN
400 ELSEIF(ifunc == 25)
THEN
406 ELSEIF(ifunc == 26)
THEN
407 IF (gbuf%G_EPSD > 0)
THEN
409 evar(i) = gbuf%EPSD(i)
417 ELSEIF(ifunc == 28 .AND. int22>0)
THEN
419 evar(i) = int22_fcell_anim(i+nft)
422 ELSEIF(ifunc>=27.AND.ifunc<=81.AND.mlw>=28.AND.mlw/=51)
THEN
429 IF (isolnod == 8 .AND. mlw == 59)
THEN
432 nfail = elbuf_tab(ng)%BUFLY(1)%NFAIL
434 irupt = mat_param(mt)%FAIL(1)%IRUPT
435 IF (irupt == 20)
THEN
440 . elbuf_tab(ng)%BUFLY(1)%FAIL(ipt,1,1)%FLOC(ir)%VAR
442 user(i) =
max(user(i),uvarf(ius*nel + i))
453 mbuf => elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,it)
458 IF (nuvar > ius) user(i) = user(i)
459 . + mbuf%VAR(i+ius*nel)/nptg
470 IF (isolnod == 8 .AND. mlw == 59)
THEN
472 ELSEIF (nuvar > ius)
THEN
479 ELSEIF(ifunc>=283.AND.ifunc<=286)
THEN
491 uparam => bufmat(iadbuf:iadbuf+nuparam)
492 isubmat = (ifunc-282)
493 isubmat = uparam(276+isubmat)
494 ius=m51_n0phas+(isubmat-1)*m51_nvphas
501 IF (mlw==51 .OR. (mlw==37.AND.ifrac<=2))
THEN
506 mbuf => elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,it)
508 user(i) = user(i) + mbuf%VAR(i+ius*nel)/nptg
514 ELSEIF (mlw == 151)
THEN
516 lbuf => elbuf_tab(ng)%BUFLY(ifunc-282)%LBUF(1,1,1)
518 user(i) = lbuf%VOL(i) / gbuf%VOL(i)
529 evar(lft:llt) = user(lft:llt)
532 ELSEIF(ifunc>=82.AND.ifunc<=281.AND.mlw == 25)
THEN
539 IF (isolnod == 16.OR.isolnod == 20.OR.
540 . (isolnod == 8.AND.jhbe == 14).OR.
541 . ((isolnod == 6.OR.isolnod == 8).AND.jhbe == 15))
THEN
542 IF (ius <= nptg)
THEN
544 IF (elbuf_tab(ng)%BUFLY(il)%L_PLA > 0)
THEN
548 lbuf=>elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
550 evar(i) = evar(i) + lbuf%PLA(i)
560 ELSEIF (ifunc == 282 .AND. mlw == 25)
THEN
565 IF( isolnod == 16.OR.isolnod == 20.OR.
566 . (isolnod == 8.AND.jhbe == 14).OR.
567 . ((isolnod == 6 .OR. isolnod == 8).AND.jhbe == 15))
THEN
569 npg_plane = nptr * npts * nptt
576 lbuf=>elbuf_tab(ng)%BUFLY(il)%LBUF(j,k,l)
577 IF (lbuf%OFF(i) == 0)
VALUE =
VALUE + one
578 IF(int(
VALUE)>=npg_plane) evar(i)=evar(i)+one
586 ELSEIF (ifunc >= 287 .AND. ifunc < 88
THEN
588 numlay = ((ifunc - 287)/3)+1
589 IF(numlay <= nlay)
THEN
590 lbuf => elbuf_tab(ng)%BUFLY(numlay)%LBUF(1,1,1)
596 gama(1)= lbuf%GAMA(jj(1)+i)
597 gama(2)= lbuf%GAMA(jj(2)+i)
602 ELSEIF(igtyp == 21)
THEN
603 gama(1)= gbuf%GAMA(jj(1)+i)
604 gama(2)= gbuf%GAMA(jj(2)+i)
610 gama(1) = gbuf%GAMA(jj(1)+i)
611 gama(2) = gbuf%GAMA(jj(2)+i)
612 gama(3) = gbuf%GAMA(jj(3)+i)
613 gama(4) = gbuf%GAMA(jj(4)+i)
614 gama(5) = gbuf%GAMA(jj(5)+i)
615 gama(6) = gbuf%GAMA(jj(6)+i)
618 . gama,jhbe,igtyp,iparg(17,ng) )
629 IF (abs(t31) - one < em20)
THEN
633 my_value =
max(abs(cos(teta)),em20) * sign(my_one,cos(teta))
634 IF(t32==zero.AND.t33==zero)
THEN
637 psi = atan2( t32/my_value,t33/my_value )
639 IF(t21==zero.AND.t11==zero)
THEN
642 phi = atan2(t21/my_value,t11/my_value)
651 psi = atan2(-t12,-t13)
654 IF (mod(ifunc - 287,3) == 0)
655 . evar(i) = psi*hundred80/pi
656 IF (mod(ifunc - 287,3) == 1)
657 . evar(i) = teta*hundred80/pi
658 IF (mod(ifunc - 287,3) == 2)
659 . evar(i) = phi*hundred80/pi
670 ELSEIF (ifunc == 887 )
THEN
672 IF(gbuf%G_BFRAC > 0)
THEN
677 evar(i) =
max(evar(i),multi_fvm%BFRAC(ifrac,i+nft))
681 evar(lft:llt) = gbuf%BFRAC(lft:llt)
683 ELSEIF (mlw == 41)
THEN
685 evar(i) = mbuf%VAR(7 * nel + i)
691 ELSEIF(ifunc>= 888 .AND.ifunc<= 3888 .AND. mlw>=28)
THEN
697 IF (isolnod == 8 .AND. mlw == 83)
THEN
700 nfail = elbuf_tab(ng)%BUFLY(1)%NFAIL
702 irupt = mat_param(mt)%FAIL(1)%IRUPT
703 IF (irupt == 26)
THEN
704 IF(ifunc <= 890 )
THEN
711 . elbuf_tab(ng)%BUFLY(1)%FAIL(ipt,1,1)%FLOC(ir)%DAM
713 evar(i) =
max(evar(i) ,damf(ius*nel + i))
717 ELSEIF(ifunc <= 1890 )
THEN
720 is = (mod(ijk,100)-mod(ijk,10))/10
724 . elbuf_tab(ng)%BUFLY(1)%FAIL(iir,1,1)%FLOC(ir)%DAM
729 ELSEIF(ifunc <= 2890 )
THEN
732 is = (mod(ijk,100)-mod(ijk,10))/10
738 evar(i) = damf(nel+i)
748 . elbuf_tab(ng)%BUFLY(1)%FAIL(iir,1,1)%FLOC(ir)%DAM
750 evar(i) = damf(2*nel+i)
758 ELSEIF (ifunc >= 3891.AND.ifunc <= 4889 )
THEN
770 is = (mod(ijk,100)-mod(ijk,10))/10
776 IF (iir <= nptr.AND.is <= npts.AND.it <= nptt)
THEN
777 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
780 . elbuf_tab(ng)%BUFLY(il)%FAIL(iir,is,it)%FLOC(ir)%DAMMX
782 evar(i) =
max(evar(i),dfmax(i))
786 ELSEIF (ifunc >= 5911.AND.ifunc <= 9920 .AND. tshell>0)
THEN
791 IF ((isolnod == 6 .OR. isolnod == 8).AND.jhbe == 15)
THEN
792 il = mod(abs(ijk)/10,201)
796 ELSEIF (isolnod == 16.OR.(isolnod == 8 .AND.jhbe == 14))
THEN
800 il=mod(abs(ijk)/10,201)
805 IF (iir <= nptr.AND.is <= npts.AND.it <= nptt)
THEN
806 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
809 . elbuf_tab(ng)%BUFLY(il)%FAIL(iir,is,it)%FLOC(ir)%DAMMX
811 evar(i) =
max(evar(i),dfmax(i))
815 ELSEIF(ifunc == 3890)
THEN
821 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
827 . elbuf_tab(ng)%BUFLY(il)%FAIL(iir,is,it)%FLOC(ir)%DAMMX
829 evar(i) =
max(evar(i),dfmax(i))
836 ELSEIF(ifunc == 4890)
THEN
841 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
847 . elbuf_tab(ng)%BUFLY(il)%FAIL(iir,is
849 evar(i) =
max(evar(i),tdele(i))
857 ELSEIF(ifunc == 4891)
THEN
860 evar(i) = multi_fvm%SOUND_SPEED(i + nft)
863 l = elbuf_tab(ng)%BUFLY(1)%L_SSP
864 IF(elbuf_tab(ng)%BUFLY(1)%L_SSP /= 0)
THEN
865 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
867 evar(i) = lbuf%SSP(i)
871 ELSEIF(ifunc == 4892)
THEN
872 ialel=iparg(7,ng)+iparg(11,ng)
878 2 iparg ,wa_l ,elbuf_tab ,ale_connectivity ,gbuf%VOL,
882 ELSEIF(ifunc == 4893)
THEN
887 ELSEIF(ifunc == 4894)
THEN
889 evar(i) = gbuf%FILL(i)
892 ELSEIF (ifunc == 4895)
THEN
894 IF (gbuf%G_SEQ > 0)
THEN
939 uparam => bufmat(iadbuf:iadbuf+nuparam)
940 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
945 evar(i) = gbuf%SEQ(i)
948 ELSEIF (mlw == 74)
THEN
957 s11 = gbuf%SIG(jj(1) + i)
958 s22 = gbuf%SIG(jj(2) + i)
959 s33 = gbuf%SIG(jj(3) + i)
960 s4 = gbuf%SIG(jj(4) + i)
961 s5 = gbuf%SIG(jj(5) + i)
962 s6 = gbuf%SIG(jj(6) + i)
964 s11 = s11 + lbuf%VISC(jj(1) + i)
965 s22 = s22 + lbuf%VISC(jj(2) + i)
966 s33 = s33 + lbuf%VISC(jj(3) + i)
967 s4 = s4 + lbuf%VISC(jj(4) + i)
968 s5 = s5 + lbuf%VISC(jj(5) + i)
969 s6 = s6 + lbuf%VISC(jj(6) + i)
971 p = - (s11 + s22 + s33) * third
976 crit = ff0*(s2 - s3)**2
985 ELSEIF (mlw == 93)
THEN
990 ELSEIF (mlw == 104)
THEN
998 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
1000 evar(i) = evar(i) + lbuf%SEQ(i)/nptg
1006 ELSEIF (mlw == 115)
THEN
1009 evar(i) = gbuf%SEQ(i)
1014 lbuf => elbuf_tab(ng
1016 s11 = gbuf%SIG(jj(1) + i)
1017 s22 = gbuf%SIG(jj(2) + i)
1018 s33 = gbuf%SIG(jj(3) + i)
1019 s4 = gbuf%SIG(jj(4) + i)
1020 s5 = gbuf%SIG(jj(5) + i)
1021 s6 = gbuf%SIG(jj(6) + i)
1023 s11 = s11 + lbuf%VISC(jj(1) + i)
1024 s22 = s22 + lbuf%VISC(jj(2) + i)
1025 s33 = s33 + lbuf%VISC(jj(3) + i)
1026 s4 = s4 + lbuf%VISC(jj(4) + i)
1027 s5 = s5 + lbuf%VISC(jj(5) + i)
1028 s6 = s6 + lbuf%VISC(jj(6) + i)
1030 p = - (s11 + s22 + s33) * third
1034 vonm2 = three*(s4*s4 + s5*s5 + s6*s6 +
1038 ENDDO !
DO i=lft,llt
1041 ELSEIF (ifunc == 4896)
THEN
1042 IF (gbuf%G_QVIS > 0)
THEN
1044 evar(i) = gbuf%QVIS(i)
1051 ELSEIF (ifunc >= 4931 .AND. ifunc <= 4934
THEN
1056 iadbuf = ipm(7,imat)
1058 uparam => bufmat(iadbuf:iadbuf+nuparam)
1060 isubmat = uparam(276+isubmat)
1061 ius=m51_n0phas+(isubmat-1)*m51_nvphas
1065 k = llt * ((ius )+ipos-1)
1067 evar(i) = mbuf%VAR(k+i)
1075 ELSEIF (ifunc == 4921)
THEN
1076 IF (gbuf%G_VOL > 0)
THEN
1077 ialel=iparg(7,ng)+iparg(11,ng)
1081 evar(i) = pm(1,mt)*gbuf%VOL(i)
1082 IF(gbuf%RHO(i)>zero)evar(i)=evar(i)/gbuf%RHO(i)
1086 evar(i) = gbuf%VOL(i)
1095 ELSEIF(ifunc>=4897 .AND. ifunc<=4929 .AND. ifunc/=4921)
THEN
1099 IF( ifunc>=4897 .AND. ifunc<=4900)
THEN
1102 ELSEIF(ifunc>=4901 .AND. ifunc<=4904)
THEN
1105 ELSEIF(ifunc>=4905 .AND. ifunc<=4908)
THEN
1108 ELSEIF(ifunc>=4909 .AND. ifunc<=4912)
THEN
1111 ELSEIF(ifunc>=4913 .AND. ifunc<=4916)
THEN
1114 ELSEIF(ifunc>=4917 .AND. ifunc<=4920)
THEN
1117 ELSEIF(ifunc>=4922 .AND. ifunc<=4925)
THEN
1120 ELSEIF(ifunc>=4926 .AND. ifunc<=4929)
THEN
1125 iadbuf = ipm(7,imat)
1126 nuparam = ipm(9,imat)
1128 itrimat = ifunc - ideb
1131 isubmat = uparam(276+isubmat)
1132 ius = m51_n0phas+(isubmat-1)*m51_nvphas
1136 IF(ipos /=0 .AND. ipos /= 08 )
THEN
1137 k = llt * ((ius )+ipos-1)
1139 evar(i) = mbuf%VAR(k+i)
1142 ELSEIF(ipos == 08)
THEN
1143 k1 = llt * ((ius )+08-1)
1144 k2 = llt * ((ius )+12-1)
1145 evar(lft:llt) = zero
1147 IF(mbuf%VAR(k2+i) /= zero) evar(i) = mbuf%VAR(k1+i) / mbuf%VAR(k2+i)
1153 k1 = llt * ((ius )+12-1)
1154 k2 = llt * ((ius )+11-1)
1160 evar(lft:llt) = zero
1168 ELSEIF (ifunc == 4930)
THEN
1169 IF (gbuf%G_TB > 0)
THEN
1171 evar(i) = -gbuf%TB(i)
1179 ELSEIF (ifunc == 4935 .OR. ifunc == 4936)
THEN
1181 evar(lft:llt) = zero
1183 user(lft:llt) = zero
1189 mbuf => elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,it)
1191 user(i) = user(i) + mbuf%VAR(i+(ius-1)*nel)/nptg
1197 evar(lft:llt) = user(lft:llt)
1200 ELSEIF (ifunc == 4937)
THEN
1203 evar(i) = gbuf%DT(i)
1208 ELSEIF (ifunc>=4938 .AND. ifunc<=4944)
THEN
1210 ialefvm_flg = ipm(251,mt)
1211 IF(ialefvm_flg >= 2)
THEN
1212 IF (isolnod == 8)
THEN
1213 IF(ifunc>=4938 .AND. ifunc<=4940)
THEN
1215 evar(i) = gbuf%MOM(jj
1217 ELSEIF(ifunc==4941)
THEN
1220 evar(i) = sqrt( gbuf%MOM(jj(1)+i)*gbuf%MOM(jj(1)+i)+
1221 + gbuf%MOM(jj(2)+i)*gbuf%MOM(jj(2)+i) )
1223 ELSEIF(ifunc==4942)
THEN
1227 + gbuf%MOM(jj(3)+i)*gbuf%MOM(jj(3)+i) )
1229 ELSEIF(ifunc==4943)
THEN
1232 evar(i) = sqrt( gbuf%MOM(jj(1)+i)*gbuf%MOM(jj(1)+i)+
1233 + gbuf%MOM(jj(3)+i)*gbuf%MOM(jj(3)+i) )
1235 ELSEIF(ifunc==4944)
THEN
1238 evar(i) = sqrt( gbuf%MOM(jj(1)+i)*gbuf%MOM(jj(1)+i)+
1239 + gbuf%MOM(jj(2)+i)*gbuf%MOM(jj(2)+i)+
1240 + gbuf%MOM(jj(3)+i)*gbuf%MOM(jj(3)+i) )
1249 ELSEIF (ifunc>=4945 .AND. ifunc<=4951)
THEN
1251 ialefvm_flg = ipm(251,mt)
1252 IF(ialefvm_flg >= 2)
THEN
1253 IF (isolnod == 8)
THEN
1254 IF(ifunc>=4945 .AND. ifunc<=4947)
THEN
1256 evar(i) = gbuf%MOM(jj(ifunc-4944)+i) / gbuf%RHO(i)
1258 ELSEIF(ifunc==4948)
THEN
1261 evar(i) = sqrt( gbuf%MOM(jj(1)+i)*gbuf%MOM(jj(1)+i)+
1262 + gbuf%MOM(jj(2)+i)*gbuf%MOM(jj(2)+i) ) / gbuf%RHO(i)
1264 ELSEIF(ifunc==4949)
THEN
1267 evar(i) = sqrt( gbuf%MOM(jj(2)+i)*gbuf%MOM(jj(2)+i)+
1268 + gbuf%MOM(jj(3)+i)*gbuf%MOM(jj(3)+i) ) / gbuf%RHO(i)
1270 ELSEIF(ifunc==4950)
THEN
1273 evar(i) = sqrt( gbuf%MOM(jj(1)+i)*gbuf%MOM(jj(1)+i)+
1274 + gbuf%MOM(jj(3)+i)*gbuf%MOM(jj(3)+i) ) / gbuf%RHO(i)
1276 ELSEIF(ifunc==4951)
THEN
1279 evar(i) = sqrt( gbuf%MOM(jj(1)+i)*gbuf%MOM(jj(1)+i)+
1280 + gbuf%MOM(jj(2)+i)*gbuf%MOM(jj(2)+i)+
1281 + gbuf%MOM(jj(3)+i)*gbuf%MOM(jj(3)+i) ) / gbuf%RHO(i)
1290 ELSEIF (ifunc>=4952 .AND. ifunc<=4958)
THEN
1292 ialefvm_flg = ipm(251,mt)
1293 IF(ialefvm_flg >= 2)
THEN
1294 IF (isolnod == 8)
THEN
1295 IF(ifunc>=4952 .AND. ifunc<=4954)
THEN
1300 ELSEIF(ifunc==4955)
THEN
1306 ELSEIF(ifunc==4956)
THEN
1312 ELSEIF(ifunc==4957)
THEN
1318 ELSEIF(ifunc==4958)
THEN
1331 ELSEIF (ifunc == 4959)
THEN
1332 IF(gbuf%G_ISMS>0)
THEN
1334 evar(i) = gbuf%ISMS(i)
1338 ELSEIF(ifunc == 4960)
THEN
1341 evar(i) = fani_cell%VORT_Y(i+nft)
1344 ELSEIF(ifunc == 4961)
THEN
1347 evar(i) = fani_cell%VORT_Z(i+nft)
1350 ELSEIF(ifunc == 4962
THEN
1353 IF(mlw == 6 .OR. mlw == 17)
THEN
1354 evar(i) = lbuf%VK(i)
1355 ELSEIF(mlw == 46 .OR. mlw == 47)
THEN
1356 evar(i) = mbuf%VAR(nel+i)
1360 ELSEIF(ifunc == 4963)
THEN
1363 evar(i) = gbuf%EINT(i)*gbuf%VOL(i)
1366 ELSEIF(ifunc == 4964 .AND. (mlw == 12 .OR. mlw ==14 .OR. mlw == 25))
THEN
1371 IF (isolnod == 16.OR.isolnod == 20.OR.
1372 . (isolnod == 8.AND.jhbe == 14).OR.
1373 . ((isolnod == 6.OR.isolnod == 8).AND.jhbe == 15))
THEN
1375 IF (elbuf_tab(ng)%BUFLY(il)%L_PLA > 0)
THEN
1379 lbuf=>elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
1381 evar(i) = evar(i) + lbuf%PLA(i)/nptg
1390 IF (gbuf%G_PLA > 0) evar(i) = gbuf%PLA(i)
1394 ELSEIF(ifunc == 4965)
THEN
1396 IF (gbuf%G_OFF > 0)
THEN
1397 IF(gbuf%OFF(i) > one)
THEN
1398 evar(i) = gbuf%OFF(i) - one
1399 ELSEIF((gbuf%OFF(i) >= zero .AND. gbuf%OFF(i) <= one))
THEN
1400 evar(i) = gbuf%OFF(i)
1407 ELSEIF(ifunc == 4966)
THEN
1408 IF (mlw == 151)
THEN
1410 vel(1) = multi_fvm%VEL(1, i + nft)
1411 vel(2) = multi_fvm%VEL(2, i + nft)
1412 vel(3) = multi_fvm%VEL(3, i + nft)
1413 vel(0) = sqrt(vel(1)*vel(1)+vel(2)*vel(2)+vel(3)*vel(3))
1414 evar(i) = vel(0)/multi_fvm%SOUND_SPEED(i + nft)
1417 l = elbuf_tab(ng)%BUFLY(1)%L_SSP
1418 IF(elbuf_tab(ng)%BUFLY(1)%L_SSP /= 0)
THEN
1419 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
1421 vel(1) = gbuf%MOM(jj(1) + i) / gbuf%RHO(i)
1422 vel(2) = gbuf%MOM(jj(2) + i) / gbuf%RHO(i)
1423 vel(3) = gbuf%MOM(jj(3) + i) / gbuf%RHO(i)
1430 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
1434 tmp(1,1:8)=v(1,ixs(2:9,i+nft))-w(1,ixs(2:9,i+nft))
1435 tmp(2,1:8)=v(2,ixs(2:9,i+nft))-w(2,ixs(2:9,i+nft))
1436 tmp(3,1:8)=v(3,ixs(2:9,i+nft))-w(3,ixs(2:9,i+nft))
1437 vel(1) = sum(tmp(1,1:8))*one_over_8
1438 vel(2) = sum(tmp(2,1:8))*one_over_8
1439 vel(3) = sum(tmp(3,1:8))*one_over_8
1440 evar(i) = sqrt(vel(1)*vel(1)+vel(2)*vel(2)+vel(3)*vel(3))/lbuf%SSP(i)
1445 tmp(1,1:8)=v(1,ixs(2:9,i+nft))
1446 tmp(2,1:8)=v(2,ixs(2:9,i+nft))
1447 tmp(3,1:8)=v(3,ixs(2:9,i+nft))
1448 vel(1) = sum(tmp(1,1:8))*one_over_8
1449 vel(2) = sum(tmp(2,1:8))*one_over_8
1450 vel(3) = sum(tmp(3,1:8))*one_over_8
1451 evar(i) = sqrt(vel(1)*vel(1)+vel(2)*vel(2)+vel(3)*vel(3))/lbuf%SSP(i)
1457 ELSEIF(ifunc == 4967)
THEN
1458 gbuf => elbuf_tab(ng)%GBUF
1459 IF (mlw == 151)
THEN
1462 lbuf => elbuf_tab(ng)%BUFLY(imat
1464 vfrac(i,imat) = lbuf%VOL(i) / gbuf%VOL(i)
1467 ELSEIF(mlw == 20)
THEN
1470 vfrac(i,1) = elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)%VOL(i) / gbuf%VOL(i)
1471 vfrac(i,2) = elbuf_tab(ng)%BUFLY(2)%LBUF(1,1,1)%VOL(i) / gbuf%VOL(i)
1473 ELSEIF(mlw == 37)
THEN
1474 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
1477 vfrac(i,1) = mbuf%VAR(i+3*nel)
1478 vfrac(i,2) = mbuf%VAR(i+4*nel)
1480 ELSEIF(mlw == 51)
THEN
1483 iadbuf = ipm(7,imat)
1484 nuparam= ipm(9,imat)
1485 uparam => bufmat(iadbuf:iadbuf+nuparam)
1487 isubmat = uparam(276+1); iu(1)=m51_n0phas+(isubmat-1)*m51_nvphas
1488 isubmat = uparam(276+2); iu(2)=m51_n0phas+(isubmat-1)*m51_nvphas
1489 isubmat = uparam(276+3); iu(3)=m51_n0phas+(isubmat-1)*m51_nvphas
1490 isubmat = uparam(276+4); iu(4)=m51_n0phas+(isubmat-1)*m51_nvphas
1491 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
1494 vfrac(i,1) = mbuf%VAR(i+iu(1)*nel)
1495 vfrac(i,2) = mbuf%VAR(i+iu(2)*nel)
1496 vfrac(i,3) = mbuf%VAR(i+iu(3)*nel)
1497 vfrac(i,4) = mbuf%VAR(i+iu(4)*nel)
1501 vfrac(1:nel,1:21)=zero
1507 values(i) = values(i) + vfrac(i,imat)*imat
1515 ELSEIF ((ifunc == 4968).AND.gbuf%G_DMG>0)
THEN
1523 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
1525 evar(i) = evar(i) + lbuf%DMG(i)/nptg
1532 ELSEIF ((ifunc == 4969).AND.gbuf%G_PLANL>0)
THEN
1540 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,it)
1542 evar(i) = evar(i) + lbuf%PLANL(i)/nptg
1548 ELSEIF ((ifunc == 4970).AND.gbuf%G_EPSDNL>0)
THEN
1556 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,it)
1558 evar(i) = evar(i) + lbuf%EPSDNL(i)/nptg
1565 ELSEIF(ifunc == 4971 .AND. gbuf%G_TSAIWU > 0)
THEN
1571 IF (elbuf_tab(ng)%BUFLY(il)%L_TSAIWU > 0)
THEN
1575 lbuf=>elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
1577 evar(i) = evar(i) + lbuf%TSAIWU(i)/nptg
1586 ELSEIF(ifunc >= 4971+1 .AND. ifunc<= 4971+200 .AND. gbuf%G_TSAIWU > 0)
THEN
1591 IF (isolnod == 16.OR.isolnod == 20.OR.
1592 . (isolnod == 8.AND.jhbe == 14).OR.
1593 . ((isolnod == 6.OR.isolnod == 8).AND.jhbe == 15))
THEN
1594 IF (ius <= nptg)
THEN
1596 IF (elbuf_tab(ng)%BUFLY(il)%L_TSAIWU > 0)
THEN
1600 lbuf=>elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
1602 evar(i) = evar(i) + lbuf%TSAIWU(i)
1613 ELSEIF( ifunc == 5172 )
THEN
1616 IF (mlw == 151)
THEN
1617 nlay = elbuf_tab(ng)%NLAY
1621 ieos = ipm(4, mat_param(mt)%MULTIMAT%MID(imat) )
1623 ntillotson = ntillotson + 1
1624 imat_tillotson = imat
1628 IF(ntillotson > 1)
THEN
1631 ieos = ipm(4, mat_param(mt)%MULTIMAT%MID(imat) )
1633 ebuf => elbuf_tab(ng)%BUFLY(imat)%EOS(1,1,1)
1634 nvareos = elbuf_tab(ng)%BUFLY(imat)%NVAR_EOS
1636 evar(i) = evar(i) + ebuf%VAR(i) * fac
1642 ELSEIF(ntillotson == 1)
THEN
1643 ebuf => elbuf_tab(ng)%BUFLY(imat_tillotson)%EOS(1,1,1)
1644 nvareos = elbuf_tab(ng)%BUFLY(imat_tillotson)%NVAR_EOS
1646 evar(i) = ebuf%VAR(i)
1653 ebuf => elbuf_tab(ng)%BUFLY(1)%EOS(1,1,1)
1654 nvareos = elbuf_tab(ng)%BUFLY(1)%NVAR_EOS
1656 evar(i) = ebuf%VAR(i)
1662 elseif(ifunc == 5173)
then
1665 func(el2fa(nn1+nft+i)) = zero
1674 do ilay=1,multi_fvm%nbmat
1675 mid = mat_param(mt)%multimat%mid(ilay)
1676 rho0i(ilay) = pm(89,mid)
1677 vi(ilay) = multi_fvm%phase_alpha(ilay,i+nft) * gbuf%vol(i)
1678 v0i(ilay) = multi_fvm%phase_rho(ilay,i+nft) * vi(ilay) / rho0i(ilay)
1682 do ilay=1,multi_fvm%nbmat
1683 rho0g = rho0g + rho0i(ilay)*v0i(ilay)
1688 elseif(mlw == 51)
then
1691 iadbuf = ipm(7,imat)
1692 nuparam= ipm(9,imat)
1693 uparam => bufmat(iadbuf:iadbuf+nuparam)
1694 mbuf => elbuf_tab(ng)%bufly(1)%mat(1,1,1)
1697 isubmat = nint(uparam(276+1)); iu(1)=m51_n0phas+(isubmat-1)*m51_nvphas + ipos-1
1698 isubmat = nint(uparam(276+2)); iu(2)=m51_n0phas+(isubmat-1)*m51_nvphas + ipos-1
1699 isubmat = nint(uparam(276+3)); iu(3)=m51_n0phas+(isubmat-1)*m51_nvphas + ipos-1
1700 isubmat = nint(uparam(276+4)); iu(4)=m51_n0phas+(isubmat-1)*m51_nvphas + ipos-1
1701 vfrac(i,1) = mbuf%var(i+iu(1)*nel)
1702 vfrac(i,2) = mbuf%var(i+iu(2)*nel)
1703 vfrac(i,3) = mbuf%var(i+iu(3)*nel)
1704 vfrac(i,4) = mbuf%var(i+iu(4)*nel)
1707 isubmat = nint(uparam(276+1)); iu(1)=m51_n0phas+(isubmat-1)*m51_nvphas + ipos-1
1708 isubmat = nint(uparam(276+2)); iu(2)=m51_n0phas+(isubmat-1)*m51_nvphas + ipos-1
1709 isubmat = nint(uparam(276+3)); iu(3)=m51_n0phas+(isubmat-1)*m51_nvphas + ipos-1
1710 isubmat = nint(uparam(276+4)); iu(4)=m51_n0phas+(isubmat-1)*m51_nvphas + ipos-1
1711 rhoi(1) = mbuf%var(i+iu(1)*nel)
1712 rhoi(2) = mbuf%var(i+iu(2)*nel)
1713 rhoi(3) = mbuf%var(i+iu(3)*nel)
1714 rhoi(4) = mbuf%var(i+iu(4)*nel)
1716 mid = mat_param(mt)%multimat%mid(ilay)
1717 rho0i(ilay) = pm(89,mid)
1718 vi(ilay) = vfrac(i,ilay) * gbuf%vol(i)
1720 v0i(ilay) = rhoi(ilay) * vi(ilay) / rho0i(ilay)
1725 rho0g = rho0g + rho0i(ilay)*v0i(ilay)
1728 func(el2fa(nn1+nft+i)) = gbuf%rho(i) / rho0g - one
1730 elseif(mlw == 37)
then
1733 iadbuf = ipm(7,imat)
1734 nuparam= ipm(9,imat)
1735 uparam => bufmat(iadbuf:iadbuf+nuparam)
1736 mbuf => elbuf_tab(ng)%bufly(1)%mat(1,1,1)
1737 rho0i(1) = uparam(11)
1738 rho0i(2) = uparam(12)
1739 vi(1) = mbuf%var(i+3*nel) * gbuf%vol(i)
1740 vi(2) = mbuf%var(i+4*nel) * gbuf%vol(i)
1741 rhoi(1) = mbuf%var(i+2*nel)
1742 rhoi(2) = mbuf%var(i+1*nel)
1743 v0i(1) = rhoi(1) * vi(1) / rho0i(1)
1744 v0i(2) = rhoi(2) * vi(2) / rho0i(2)
1748 rho0g = rho0g + rho0i(ilay)*v0i(ilay)
1751 func(el2fa(nn1+nft+i)) = gbuf%rho(i) / rho0g - one
1753 elseif(mlw == 20)
then
1755 lbuf1 => elbuf_tab(ng)%bufly(1)%lbuf(1,1,1)
1756 lbuf2 => elbuf_tab(ng)%bufly(2)%lbuf(1,1,1)
1757 mid = mat_param(mt)%multimat%mid(1)
1758 rho0i(1) = pm(89,mid)
1759 mid = mat_param(mt)%multimat%mid(2)
1760 rho0i(2) = pm(89,mid)
1761 vi(1) = lbuf1%vol(i)
1762 vi(2) = lbuf2%vol(i)
1763 rhoi(1) = lbuf1%rho(i)
1764 rhoi(2) = lbuf2%rho(i)
1765 v0i(1) = rhoi(1) * vi(1) / rho0i(1)
1766 v0i(2) = rhoi(2) * vi(2) / rho0i(2)
1770 rho0g = rho0g + rho0i(ilay)*v0i(ilay)
1773 func(el2fa(nn1+nft+i)) = gbuf%rho(i) / rho0g - one
1777 if(pm(89,mt) > zero)
then
1778 func(el2fa(nn1+nft+i)) = gbuf%rho(i) / pm(89,mt) - one
1784 elseif(ifunc >= 5173+1 .and. ifunc <= 5173+10)
then
1787 ilay = ifunc - (15899 + 4*mx_ply_anim)
1788 if(mlw == 151 .and. ilay <=
min(10,multi_fvm%nbmat))detected = .true.
1789 if(mlw == 51 .and. ilay <= 4 )detected
1790 if(mlw == 37 .and. ilay <= 2 )detected = .true.
1791 if(mlw == 20 .and. ilay <= 2 )detected = .true.
1801 mid = mat_param(mt)%multimat%mid(ilay)
1802 rho0i(ilay) = pm(89,mid)
1803 vi(ilay) = multi_fvm%phase_alpha(ilay,i+nft) * gbuf%vol(i)
1804 v0i(ilay) = multi_fvm%phase_rho(ilay,i+nft) * vi(ilay) / rho0i(ilay)
1805 func(el2fa(nn1+nft+i)) = multi_fvm%phase_rho(ilay,i+nft) / rho0i(ilay) - one
1807 elseif(mlw == 51)
then
1810 iadbuf = ipm(7,imat)
1811 nuparam= ipm(9,imat)
1812 uparam => bufmat(iadbuf:iadbuf+nuparam
1813 mbuf => elbuf_tab(ng)%bufly(1)%mat(1,1,1)
1814 mid = mat_param(mt)%multimat%mid(ilay)
1815 rho0i(ilay) = pm(89,mid)
1818 isubmat = nint(uparam(276+ilay)); iu(1)=m51_n0phas+(isubmat-1)*m51_nvphas + ipos-1
1819 vfrac(i,ilay) = mbuf%var(i+iu(ilay)*nel)
1820 vi(ilay) = vfrac(i,ilay) * gbuf%vol(i)
1823 isubmat = nint(uparam(276+ilay)); iu(ilay)=m51_n0phas+(isubmat-1)*m51_nvphas + ipos-1
1824 rhoi(ilay) = mbuf%var(i+iu(ilay)*nel)
1825 v0i(ilay) = rhoi(ilay) * vi(ilay) / rho0i(ilay)
1826 func(el2fa(nn1+nft+i)) = rhoi(ilay) / rho0i(ilay) - one
1828 elseif(mlw == 37)
then
1831 iadbuf = ipm(7,imat)
1832 nuparam= ipm(9,imat)
1833 uparam => bufmat(iadbuf:iadbuf+nuparam)
1834 mbuf => elbuf_tab(ng)%bufly(1)%mat(1,1,1)
1835 rho0i(ilay) = uparam(10+ilay)
1836 vi(ilay) = mbuf%var(i+(ilay+2)*nel) * gbuf%vol(i)
1837 rhoi(ilay) = mbuf%var(i+(3-ilay)*nel)
1838 v0i(ilay) = rhoi(ilay) * vi(ilay) / rho0i(ilay)
1839 func(el2fa(nn1+nft+i)) = rhoi(ilay) / rho0i(ilay) - one
1841 elseif(mlw == 20)
then
1843 lbuf => elbuf_tab(ng)%bufly(ilay)%lbuf(1,1,1)
1844 mid = mat_param(mt)%multimat%mid(ilay)
1845 rho0i(ilay) = pm(89,mid)
1846 vi(ilay) = lbuf%vol(i)
1847 rhoi(ilay) = lbuf%rho(i)
1848 v0i(ilay) = rhoi(ilay) * vi(ilay) / rho0i(ilay)
1849 func(el2fa(nn1+nft+i)) = rhoi(ilay) / rho0i(ilay) - one
1853 func(el2fa(nn1+nft+i)) = zero
1870 IF (isolnod == 16)
THEN
1874 func(el2fa(n)) = evar(i)
1876 func(el2fa(n)+2) = evar(i)
1877 func(el2fa(n)+3) = evar(i)
1884 func(el2fa(n)) = evar(i)
1890 ELSEIF (isph3d == 1.AND.ity == 51)
THEN
1893 gbuf => elbuf_tab(ng)%GBUF
1894 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
1895 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
1896 nlay = elbuf_tab(ng)%NLAY
1897 nptr = elbuf_tab(ng)%NPTR
1898 npts = elbuf_tab(ng)%NPTS
1899 nptt = elbuf_tab(ng)%NPTT
1900 nptg = nptt*npts*nptr*nlay
1901 jturb= iparg(12,ng)*(iparg(7,ng)+iparg(11,ng))
1907 IF (el2fa(nn3+n)/=0)
THEN
1909 VALUE = lbuf%EPSQ(i)
1910 ELSEIF (gbuf%G_PLA > 0)
THEN
1913 func(el2fa(nn3+n
VALUE
1917 ELSEIF(ifunc == 2)
THEN
1920 IF(el2fa(nn3+n)/=0)
THEN
1922 func(el2fa(nn3+n)) =
VALUE
1926 ELSEIF(ifunc == 3)
THEN
1929 ialel=iparg(7,ng)+iparg(11,ng)
1933 VALUE = gbuf%EINT(i)/
max(em30,pm(1,mt))
1935 VALUE = gbuf%EINT(i)/
max(em30,gbuf%RHO(i))
1937 func(el2fa(nn3+n)) =
VALUE
1940 ELSEIF(ifunc == 4)
THEN
1943 IF(el2fa(nn3+n)/=0)
THEN
1944 IF (gbuf%G_TEMP > 0)
THEN
1945 VALUE = gbuf%TEMP(i)
1949 func(el2fa(nn3+n)) =
VALUE
1953 ELSEIF(ifunc == 6.OR.ifunc == 7)
THEN
1956 IF(el2fa(nn3+n)/=0)
THEN
1957 s11 = gbuf%SIG(jj(1) + i)
1958 s22 = gbuf%SIG(jj(2) + i)
1959 s33 = gbuf%SIG(jj(3) + i)
1960 s4 = gbuf%SIG(jj(4) + i)
1961 s5 = gbuf%SIG(jj(5) + i)
1962 s6 = gbuf%SIG(jj(6) + i)
1964 s11 =s11 + lbuf%VISC(jj(1) + i)
1965 s22 =s22 + lbuf%VISC(jj(2) + i)
1966 s33 =s33 + lbuf%VISC(jj(3) + i)
1967 s4 =s4 + lbuf%VISC(jj(4) + i)
1968 s5 =s5 + lbuf%VISC(jj(5) + i)
1969 s6 =s6 + lbuf%VISC(jj(6) + i)
1971 p = - (s11 + s22 + s33 ) * third
1977 vonm2= three*(s4*s4 + s5*s5 + s6*s6 +
1978 . half*(s1*s1+s2*s2+s3*s3) )
1982 func(el2fa(nn3+n)) =
VALUE
1986 ELSEIF(ifunc == 8.AND.jturb/=0)
THEN
1989 nn = el2fa(nn3 + i + nft
1991 func(nn) = gbuf%RK(i)
1995 ELSEIF(ifunc == 9)
THEN
1999 nn = el2fa(nn3 + i + nft)
2001 IF((mlw == 6 .OR. mlw == 17).AND.jturb/=0)
THEN
2004 VALUE=pm(81,mt)*gbuf%RK(i)**2/
2005 .
max(em15,gbuf%RE(i))
2006 ELSEIF(mlw == 46 .OR. mlw == 47)
THEN
2015 ELSEIF(ifunc == 10)
THEN
2018 nn = el2fa(nn3 + i + nft)
2020 IF(mlw == 6 .OR. mlw == 17)
THEN
2022 ELSEIF(mlw == 46 .OR. mlw == 47)
THEN
2023 VALUE = mbuf%VAR(nel+i)
2031 ELSEIF((ifunc == 11.OR.ifunc == 12.OR.ifunc == 13)
2032 . .AND.mlw == 24)
THEN
2035 func(el2fa(nn3+n)) = lbuf%DAM(jj(ifunc-10) + i)
2038 ELSEIF(ifunc>=14.AND.ifunc<=19)
THEN
2042 IF(el2fa(nn3+n)/=0)
THEN
2043 VALUE = gbuf%SIG(jj(ifunc - 13) + i)
2044 func(el2fa(nn3+n)) =
VALUE
2050 IF(el2fa(nn3+n)/=0)
THEN
2051 VALUE = gbuf%SIG(jj(ifunc - 13) + i) +
2052 . lbuf%VISC(jj(ifunc - 13) + i)
2053 func(el2fa(nn3+n)) =
VALUE
2059 ELSEIF(ifunc>=20.AND.ifunc<=24)
THEN
2065 IF(el2fa(nn3+n)/=0 . and. ius <= nuvar)
THEN
2066 VALUE = mbuf%VAR(i + ius*nel)
2072 ELSEIF(ifunc == 25)
THEN
2075 IF(el2fa(nn3+n)/=0)
THEN
2078 func(el2fa(nn3+n)) =
VALUE
2082 ELSEIF(ifunc == 887)
THEN
2086 IF (el2fa(nn3+n)/=0)
THEN
2087 IF (gbuf%G_BFRAC > 0)
THEN
2088 VALUE = gbuf%BFRAC(i)
2090 func(el2fa(nn3+n)) =
VALUE
2094 ELSEIF(ifunc == 3890)
THEN
2096 nfail = elbuf_tab(ng)%BUFLY(1)%NFAIL
2099 . elbuf_tab(ng)%BUFLY(1)%FAIL(1,1,1)%FLOC(ir)%DAMMX
2102 func(el2fa(nn3+n)) = dfmax(i)
2106 ELSEIF(ifunc == 4893)
THEN
2109 IF (el2fa(nn3+n)/=0)
THEN
2110 func(el2fa(nn3+n)) = ispmd
2114 ELSEIF(ifunc == 4894)
THEN
2117 IF (el2fa(nn3+n)/=0)
THEN
2118 func(el2fa(nn3+n)) = gbuf%FILL(i)
2122 ELSEIF (ifunc == 4895)
THEN
2124 IF (gbuf%G_SEQ > 0)
THEN
2150! s6 = s6 + lbuf%VISC(jj(6) + i)
2152! p = - (s11 + s22 + s33) * third
2169 iprt = ipartsp(nft+1)
2170 imat = ipart(1,iprt)
2171 iadbuf = ipm(7,imat)
2172 nuparam= ipm(9,imat)
2173 uparam => bufmat(iadbuf:iadbuf+nuparam)
2174 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
2181 func(el2fa(nn3+n)) = gbuf%SEQ(i)
2184 ELSEIF (mlw == 74)
THEN
2194 IF (el2fa(nn3+n) /= 0)
THEN
2195 s11 = gbuf%SIG(jj(1) + i)
2196 s22 = gbuf%SIG(jj(2) + i)
2197 s33 = gbuf%SIG(jj(3) + i)
2198 s4 = gbuf%SIG(jj(4) + i)
2199 s5 = gbuf%SIG(jj(5) + i)
2200 s6 = gbuf%SIG(jj(6) + i)
2202 s11 = s11 + lbuf%VISC(jj(1) + i)
2203 s22 = s22 + lbuf%VISC(jj(2) + i)
2204 s33 = s33 + lbuf%VISC(jj(3) + i)
2205 s4 = s4 + lbuf%VISC(jj(4) + i)
2206 s5 = s5 + lbuf%VISC(jj(5) + i)
2207 s6 = s6 + lbuf%VISC(jj(6) + i)
2209 p = - (s11 + s22 + s33) * third
2214 crit = ff0*(s2 - s3)**2
2215 . + gg0*(s3 - s1)**2
2216 . + hh0*(s1 - s2)**2
2221 func(el2fa(nn3+n)) = sqrt(crit)
2224 ELSEIF (mlw == 93)
THEN
2228 IF (el2fa(nn3+n) /= 0)
THEN
2229 func(el2fa(nn3+n)) = gbuf%SEQ(i)
2232 ELSEIF (mlw == 104)
THEN
2237 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
2240 IF (el2fa(nn3+n) /= 0)
THEN
2241 func(el2fa(nn3+n)) = func(el2fa(nn3+n)) + lbuf%SEQ(i)/nptg
2248 ELSEIF (mlw == 115)
THEN
2252 IF (el2fa(nn3+n) /= 0)
THEN
2253 func(el2fa(nn3+n)) = gbuf%SEQ(i)
2259 IF (ivisc == 0)
THEN
2262 IF (el2fa(nn3+n) /= 0)
THEN
2263 p = - (gbuf%SIG(jj(1) + i)
2264 . + gbuf%SIG(jj(2) + i)
2265 . + gbuf%SIG(jj(3) + i)) * third
2267 s2 = gbuf%SIG(jj(2) + i)+p
2268 s3 = gbuf%SIG(jj(3) + i)+p
2269 vonm2 = three*(gbuf%SIG(jj(4) + i)**2 +
2270 . gbuf%SIG(jj(5) + i)**2 +
2271 . gbuf%SIG(jj(6) + i)**2 +
2272 . half*(s1*s1+s2*s2+s3*s3))
2281 s11 = gbuf%SIG(jj(1) + i) + lbuf%VISC(jj(1) + i)
2282 s22 = gbuf%SIG(jj(2) + i) + lbuf%VISC(jj(2) + i)
2283 s33 = gbuf%SIG(jj(3) + i) + lbuf%VISC(jj
2284 s4 = gbuf%SIG(jj(4) + i) +
2285 s5 = gbuf%SIG(jj(5) + i) + lbuf%VISC(jj(5) + i)
2286 s6 = gbuf%SIG(jj(6) + i) + lbuf%VISC(jj(6) + i)
2287 p = - (s11 + s22 + s33) * third
2291 vonm2 = three*(s4*s4 + s5*s5 + s6*s6 +
2292 . half*(s1*s1 + s2*s2 + s3*s3))
2300 ELSEIF(ifunc == 4965)
THEN
2301 IF (gbuf%G_OFF > 0)
THEN
2304 IF(gbuf%OFF(i) > one)
THEN
2305 func(el2fa(nn3+n)) = gbuf%OFF(i) - one
2306 ELSEIF((gbuf%OFF(i) >= zero .AND. gbuf%OFF(i) <= one))
THEN
2307 func(el2fa(nn3+n)) = gbuf%OFF(i)
2309 func(el2fa(nn3+n)) = -one
2317 IF(el2fa(nn3+n)/=0)
THEN
2318 func(el2fa(nn3+n)) = zero
2323 ELSEIF (ity == 101)
THEN
2326 gbuf => elbuf_tab(ng)%GBUF
2330 IF (mlw == 10 .OR. mlw == 21)
THEN
2331 evar(i) = lbuf%EPSQ(i)
2332 ELSEIF (gbuf%G_PLA > 0)
THEN
2333 evar(i) = gbuf%PLA(i)
2337 ELSEIF(ifunc == 6 .OR. ifunc == 7)
THEN
2340 s11 = gbuf%SIG(jj(1) + i)
2341 s22 = gbuf%SIG(jj(2) + i)
2342 s33 = gbuf%SIG(jj(3) + i)
2345 s6 = gbuf%SIG(jj(6) + i)
2347 s11 = s11 + lbuf%VISC(jj(1) + i)
2348 s22 = s22 + lbuf%VISC(jj
2349 s33 = s33 + lbuf%VISC(jj(3) + i)
2350 s4 = s4 + lbuf%VISC(jj(4) + i)
2351 s5 = s5 + lbuf%VISC(jj(5) + i)
2352 s6 = s6 + lbuf%VISC(jj(6) + i)
2354 p = - (s11 + s22 + s33) * third
2360 vonm2= three*(s4*s4 + s5*s5 + s6*s6+
2361 . half*(s1*s1+s2*s2+s3*s3) )
2368 ELSEIF(ifunc==2)
THEN
2370 evar(i) = gbuf%RHO(i)
2373 ELSEIF(ifunc==3)
THEN
2375 VALUE = gbuf%EINT(i)/
max(em30,gbuf%RHO(i))
2379 ELSEIF (ifunc == 26)
THEN
2380 evar(lft:llt) = gbuf%EPSD(lft:llt)
2392 func(el2fa(nn4+n)+j-1) = evar(i)
2404 IF (nspmd == 1)
THEN
2413 IF (ispmd == 0)
THEN
2414 buf = numelsg+3*numels16g+numsphg
2421 IF(
ALLOCATED(wa_l))
DEALLOCATE(wa_l)