31 SUBROUTINE dfuncs(ELBUF_TAB,FUNC ,IFUNC ,IPARG ,
32 2 IXS ,PM ,EL2FA ,NBF ,ISPH3D )
40#include "implicit_f.inc"
44#include "vect01_c.inc"
54 . func(*), pm(npropm,*)
55 INTEGER IPARG(NPARG,*),EL2FA(*),
56 . ixs(nixs,*),ifunc,nbf,isph3d
57 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
65 . off, p, vonm2, vonm, s1, s2, s12, s3,
VALUE
66 INTEGER I, , NEL,N, J, MLW,NN, JTURB,MT, IALEL,
68 . jhbe, jivf, jclose, jplasol, irep, igtyp,
69 . icsen, isorthg, ifailure, iint
70 TYPE(g_bufel_) ,
POINTER :: GBUF
81 2 mlw ,nel ,nft ,iad ,ity ,
82 3 npt ,jale ,ismstr ,jeul ,jtur ,
83 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
84 5 jpor ,jcvt ,jclose ,jplasol ,
85 6 irep ,iint ,igtyp ,israt ,isrot ,
86 7 icsen ,isorth ,isorthg ,ifailure)
87 DO offset = 0,nel-1,nvsiz
88 nft =iparg(3,ng) + offset
89 isolnod = iparg(28,ng)
91 llt=
min(nvsiz,nel-offset)
102 gbuf => elbuf_tab(ng)%GBUF
104 IF (mlw == 0 .OR. mlw == 13 . or. igtyp == 0)
THEN
109 jturb=iparg(12,ng)*(iparg(7,ng)+iparg(11,ng))
113 IF (gbuf%G_PLA > 0)
THEN
114 evar(i) = gbuf%PLA(i)
117 ELSEIF(ifunc == 2)
THEN
119 evar(i) = gbuf%RHO(i)
121 ELSEIF(ifunc == 3)
THEN
124 ialel=iparg(7,ng)+iparg(11,ng)
127 evar(i) = gbuf%EINT(i)/
max(em30,pm(1,mt))
129 evar(i) = gbuf%EINT(i)/
max(em30,gbuf%RHO(i))
132 ELSEIF (ifunc == 4)
THEN
134 IF (gbuf%G_TEMP > 0)
THEN
135 evar(i) = gbuf%TEMP(i)
138 ELSEIF(ifunc == 6 .OR. ifunc == 7)
THEN
141 p = - (gbuf%SIG(ii(1) + i)
142 . + gbuf%SIG(ii(2) + i)
143 . + gbuf%SIG(ii(3) + i)) * third
146 s1=gbuf%SIG(ii(1) + i)+p
147 s2=gbuf%SIG(ii(2) + i)+p
148 s3=gbuf%SIG(ii(3) + i)+p
149 vonm2= three*(gbuf%SIG(ii(4) + i)**2 +
150 . gbuf%SIG(ii(5) + i)**2 +
151 . gbuf%SIG(ii(6) + i)**2 +
152 . half*(s1*s1+s2*s2+s3*s3) )
159 ELSEIF(ifunc >= 14 .AND. ifunc <= 19)
THEN
161 evar(i) = gbuf%SIG(ii(ifunc-13) + i)
165 IF (isolnod == 16)
THEN
169 func(el2fa(n)) = evar(i)
170 func(el2fa(n)+1) = evar(i)
171 func(el2fa(n)+2) = evar(i)
172 func(el2fa(n)+3) = evar(i)
179 func(el2fa(n)) = evar(i)
186 ELSEIF (isph3d == 1.AND.ity == 51)
THEN
189 gbuf => elbuf_tab(ng)%GBUF
190 IF (ifunc >= 14 .AND. ifunc <= 19)
THEN
193 IF (el2fa(nn3+n)/=0)
THEN
194 func(el2fa(nn3+n)) = gbuf%SIG(ii(ifunc-13) + i)
200 IF(el2fa(nn3+n)/=0)
THEN
201 func(el2fa(nn3+n)) = zero
subroutine initbuf(iparg, ng, mtn, llt, nft, iad, ity, npt, jale, ismstr, jeul, jtur, jthe, jlag, jmult, jhbe, jivf, jpor, jcvt, jclose, jpla, irep, iint, igtyp, israt, isrot, icsen, isorth, isorthg, ifailure)