30 SUBROUTINE dfuncc(ELBUF_TAB,BUFEL,FUNC ,IFUNC,IPARG,
31 . IXQ ,IXC ,IXTG ,PM ,EL2FA,
40#include "implicit_f.inc"
44#include "vect01_c.inc"
54 . bufel(*),func(*),pm(npropm,*)
55 INTEGER IPARG(NPARG,*),IXC(NIXC,*),IXTG(NIXTG,*),EL2FA(*),
56 . IXQ(NIXQ,*),IFUNC,NBF
57 TYPE (ELBUF_STRUCT_),
TARGET,
DIMENSION(NGROUP) :: ELBUF_TAB
64 . off, p, vonm2, vonm, s1, s2, s12, s3,
VALUE
65 INTEGER I,II(6), NG, NEL, N, MLW, IUS,MT,IALEL,
66 . NN1,NN2,NN3,NN4,NN5,NN6,NN7,NN8,NN9,
68 TYPE(g_bufel_) ,
POINTER :: GBUF
86 DO offset = 0,nel-1,nvsiz
88 llt=
min(nvsiz,nel-offset)
98 gbuf => elbuf_tab(ng)%GBUF
103 ialel=iparg(7,ng)+iparg(11,ng)
106 VALUE = gbuf%EINT(i)/
max(em30,pm(1,mt))
108 VALUE = gbuf%EINT(i)/
max(em30,gbuf%RHO(i))
110 func(el2fa(nn3+n)) =
VALUE
113 ELSEIF (ifunc == 6 .or. ifunc == 7)
THEN
116 p = -(gbuf%SIG(ii(1) + i)
117 . + gbuf%SIG(ii(2) + i)
118 . + gbuf%SIG(ii(3) + i))*third
119 func(el2fa(nn3+nft+i)) = p
122 s1 = gbuf%SIG(ii(1) + i) + p
123 s2 = gbuf%SIG(ii(2) + i) + p
124 s3 = gbuf%SIG(ii(3) + i) + p
125 vonm2 = three*(gbuf%SIG(ii(4) + i)**2
126 . + half*(s1**2+s2**2+s3**2))
129 func(el2fa(nn3+n)) =
VALUE
132 ELSEIF(ifunc == 14)
THEN
135 func(el2fa(nn3+n)) = gbuf%SIG(ii(3) + i)
138 ELSEIF(ifunc == 15)
THEN
141 func(el2fa(nn3+n)) = gbuf%SIG(ii(1) + i)
144 ELSEIF(ifunc == 16)
THEN
147 func(el2fa(nn3+n)) = gbuf%SIG(ii(2) + i)
150 ELSEIF(ifunc == 17.OR.ifunc == 18)
THEN
153 func(el2fa(nn3+n)) = gbuf%SIG(ii(4) + i)
159 func(el2fa(nn3+n)) = zero
163 ELSEIF (ity == 3 .OR. ity == 7)
THEN
166 gbuf => elbuf_tab(ng)%GBUF
173 ELSEIF (ifunc == 3)
THEN
175 evar(i) = gbuf%EINT(i) + gbuf%EINT(i+llt)
178 ELSEIF(ifunc == 7)
THEN
180 s1 = gbuf%FOR(ii(1)+i)
181 s2 = gbuf%FOR(ii(2)+i)
182 s12= gbuf%FOR(ii(3)+i)
183 vonm2= s1*s1 + s2*s2 - s1*s2 + three*s12*s12
184 evar(i) = sqrt(vonm2)
187 ELSEIF(ifunc>=14 .and. ifunc<=15)
THEN
190 evar(i) = gbuf%FOR(ii(ius)+i)
193 ELSEIF(ifunc>=17 .and. ifunc<=19)
THEN
196 evar(i) = gbuf%FOR(ii(ius)+i)
203 func(el2fa(nn4+n)) = evar(i)
208 func(el2fa(nn5+n)) = evar(i)
subroutine dfuncc(elbuf_tab, bufel, func, ifunc, iparg, ixq, ixc, ixtg, pm, el2fa, nbf)