200#include "implicit_f.inc"
211! gives
the function points x + function value f(x)
219 INTEGER :: i,j,point_nbr
220 INTEGER :: first, last, middle
223 my_real :: dx1,dx2,dx2_first,dx2_last,dx2_middle
224 my_real :: product_fm,product_ml
230 dx2 = tf(npf(ifunc)) - xx
232 IF ((npf(ifunc+1)-npf(ifunc))==2)
THEN
234 finter = tf(npf(ifunc)+1)
243 point_nbr = ( npf(ifunc+1)-2 - (npf(ifunc)+2) ) / 2 + 1
244 IF(point_nbr<min_gap)
THEN
247 DO i=npf(ifunc)+2,npf(ifunc+1)-2,2
250 IF(dx2>=zero.OR.i==npf(ifunc+1)-2)
THEN
251 div0 = tf(i) - tf(i-2)
252 div =
max(abs(div0),em16)
254 deri = (tf(i+1) - tf(i-1)) / div
256 finter = tf(i-1) + dx1 * deri
258 finter = tf(i+1) - dx2 * deri
269 dx2 = tf(npf(ifunc)) - xx
273 IF(dx2>=zero.OR.i==npf(ifunc+1)-2)
THEN
274 div0 = tf(i) - tf(i-2)
275 div =
max(abs(div0),em16)
277 deri = (tf(i+1) - tf(i-1)) / div
279 finter = tf(i-1) + dx1 * deri
281 finter = tf(i+1) - dx2 * deri
287 dx2 = tf(npf(ifunc+1)-2) - xx
292 div0 = tf(i) - tf(i-2)
293 div =
max(abs(div0),em16)
295 deri = (tf(i+1) - tf(i-1)) / div
296 IF(dx1 == zero .AND. dx2 == zero)
THEN
299 finter = tf(i-1) + dx1 * deri
301 finter = tf(i+1) - dx2 * deri
312 dx2 = tf(npf(ifunc)) - xx
316 middle = (last - first) / 2 + first
317 dx2_first= tf(npf(ifunc)+2*first) - xx
318 dx2_last= tf(npf(ifunc)+2*last) - xx
319 dx2_middle= tf(npf(ifunc)+2*middle) - xx
322 product_fm = dx2_first*dx2_middle
323 product_ml = dx2_middle*dx2_last
325 IF(product_fm<0)
THEN
327 ELSEIF(product_ml<0)
THEN
332 IF( (last-first)<min_gap) bool=.false.
335 counter = counter + 1
336 IF( counter>point_nbr )
THEN
349 IF( counter == -1 )
THEN
354 dx2 = tf(npf(ifunc)+2*first-2) - xx
359 IF(dx2>=zero.OR.j==last)
THEN
360 div0 = tf(i) - tf(i-2)
361 div =
max(abs(div0),em16)
364 deri = (tf(i+1) - tf(i-1)) / div
366 finter = tf(i-1) + dx1 * deri
368 finter = tf(i+1) - dx2 * deri
end diagonal values have been computed in the(sparse) matrix id.SOL
subroutine h3d_skin_vector(skin_vector, nodal_ipart, nsensor, is_written_skin, h3d_part, info1, keyword, ib, iloadp, lloadp, fac, npc, tf, sensor_tab, tagncont, loadp_hyd_inter, forc, xframe, x, v, imapskp, loads, table, iframe, dis, pblast)
subroutine sigeps44p(nel, ngl, mat, pid, nuparam, uparam, geo, off, pla, al, exx, exy, exz, kxx, kyy, kzz, fa1, fa2, fa3, ma1, ma2, ma3, for, mom, pm, nuvar, uvar, nfunc, ifunc, tf, npf, sigy)
subroutine sigeps68(nel, nuparam, nuvar, nfunc, ifunc, npf, tf, time, timestep, uparam, rho0, rho, volume, eint, fr_wav, epspxx, epspyy, epspzz, epspxy, epspyz, epspzx, depsxx, depsyy, depszz, depsxy, depsyz, depszx, epsxx, epsyy, epszz, epsxy, epsyz, epszx, sigoxx, sigoyy, sigozz, sigoxy, sigoyz, sigozx, signxx, signyy, signzz, signxy, signyz, signzx, sigvxx, sigvyy, sigvzz, sigvxy, sigvyz, sigvzx, soundsp, viscmax, uvar, off, ngl, ipt, ipm, mat, amu)