42 2 V ,X ,SKEW ,AR ,VR ,
43 3 NSENSOR,SENSOR_TAB ,WEIGHT ,TFEXC ,IADC ,
44 4 FSKY ,FSKYV ,FEXT ,H3D_DATA,
45 5 APINCH ,VPINCH, PYTHON, WFEXT)
56#include "implicit_f.inc"
71 INTEGER GET_U_NUMSENS,GET_U_SENS_FPAR,GET_U_SENS_IPAR,
72 . GET_U_SENS_VALUE,SET_U_SENS_VALUE
73 EXTERNAL GET_U_NUMSENS,GET_U_SENS_FPAR,GET_U_SENS_IPAR,
74 . GET_U_SENS_VALUE,SET_U_SENS_VALUE
78 INTEGER ,
INTENT(IN) :: NSENSOR
81 INTEGER WEIGHT(*), IADC(4,*)
83 . fac(lfaccld,*), tf(*), a(3,*), v(3,*), ar(3,*), vr(3,*),
84 . x(3,*), skew(lskew,*), tfexc,
85 . fsky(8,lsky), fskyv(lsky,8),fext(3,*),
86 . apinch(3,*),vpinch(3,*)
88 TYPE (SENSOR_STR_) ,
DIMENSION(NSENSOR) :: SENSOR_TAB
89 TYPE(PYTHON_) :: PYTHON
90 DOUBLE PRECISION,
INTENT(INOUT) :: WFEXT
94 INTEGER NL, N1, ISK, N2, N3, N4, N5, K1, K2, K3, ISENS,K,LL,IERR,
95 . ICODE,IAD,N_OLD, Bric(2), Face(2), NumBric, IBRIC, IANIM,I,
98 . nx, ny, nz, axi, aa, a0, vv, fx, fy, fz, ax, dydx, ts,
99 . sixth,wfextt,x_old, f1, f2,xsens,fcx,fcy
100 my_real finter, zfx,zfy,zfz, zzfx,zzfy,zzfz,ps, zx,zy,zz,finter_smooth
102 . fcypinch, fxpinch, fypinch, fzpinch, aapinch
103 EXTERNAL finter,finter_smooth
111 ianim = anim_v(5)+outp_v(5)+h3d_data%N_VECT_FINT+
112 . anim_v(6)+outp_v(6)+h3d_data%N_VECT_FEXT
127 IF(ib(6,nl)==sensor_tab(k)%SENS_ID) isens=k
132 ts = tt-sensor_tab(isens)%TSTART
133 IF(ts < zero)
GOTO 10
138 IF(n_old/=n5.OR.x_old/=ts)
THEN
141 IF (n5 > 0) ismooth = npc(2*nfunct+n5+1)
143 IF (ismooth == 0)
THEN
145 ELSE IF(ismooth > 0)
THEN
146 f1 = finter_smooth(n5,ts*fcx,npc,tf,dydx)
149 CALL python_call_funct1d(python, ismooth,(ts)*fcx, f1)
154 aapinch = fcypinch*f1*xsens
157 nx = (x(2,n3)-x(2,n1))*(x(3,n4)-x(3,n2)) - (x(3,n3)-x(3,n1))*(x(2,n4)-x(2,n2))
158 ny = (x(3,n3)-x(3,n1))*(x(1,n4)-x(1,n2)) - (x(1,n3)-x(1,n1))*(x(3,n4)-x(3,n2))
159 nz = (x(1,n3)-x(1,n1))*(x(2,n4)-x(2,n2)) - (x(2,n3)-x(2,n1))*(x(1,n4)-x(1,n2))
161 fxpinch = aapinch*nx*one_over_8
162 fypinch = aapinch*ny*one_over_8
163 fzpinch = aapinch*nz*one_over_8
165 apinch(1,n1) = apinch(1,n1) + fxpinch
166 apinch(2,n1) = apinch(2,n1) + fypinch
167 apinch(3,n1) = apinch(3,n1) + fzpinch
169 apinch(1,n2) = apinch(1,n2) + fxpinch
170 apinch(2,n2) = apinch(2,n2) + fypinch
171 apinch(3,n2) = apinch(3,n2) + fzpinch
173 apinch(1,n3) = apinch(1,n3) + fxpinch
174 apinch(2,n3) = apinch(2,n3) + fypinch
175 apinch(3,n3) = apinch(3,n3) + fzpinch
177 apinch(1,n4) = apinch(1,n4) + fxpinch
178 apinch(2,n4) = apinch(2,n4) + fypinch
179 apinch(3,n4) = apinch(3,n4) + fzpinch
182 wfextt=wfextt+dt1*(fxpinch*(vpinch(1,n1)+vpinch(1,n2)+vpinch(1,n3)+vpinch(1,n4))
183 1 +fypinch*(vpinch(2,n1)+vpinch(2,n2)+vpinch(2,n3)+vpinch(2,n4))
184 2 +fzpinch*(vpinch(3,n1)+vpinch(3,n2)+vpinch(3,n3)+vpinch(3,n4)))
188 nx = (x(2,n3)-x(2,n1))*(x(3,n3)-x(3,n2)) - (x(3,n3)-x(3,n1))*(x(2,n3)-x(
189 ny = (x(3,n3)-x(3,n1))*(x(1,n3)-x(1,n2)) - (x(1,n3)-x(1,n1))*(x(3,n3)-x(3,n2))
190 nz = (x(1,n3)-x(1,n1))*(x(2,n3)-x(2,n2)) - (x(2,n3)-x(2,n1))*(x(1,n3)-x(1,n2))
192 fxpinch = aapinch*nx*sixth
193 fypinch = aapinch*ny*sixth
194 fzpinch = aapinch*nz*sixth
196 apinch(1,n1)=apinch(1,n1)+fxpinch
197 apinch(2,n1)=apinch(2,n1)+fypinch
198 apinch(3,n1)=apinch(3,n1)+fzpinch
200 apinch(1,n2)=apinch(1,n2)+fxpinch
201 apinch(2,n2)=apinch(2,n2)+fypinch
202 apinch(3,n2)=apinch(3,n2)+fzpinch
204 apinch(1,n3)=apinch(1,n3)+fxpinch
205 apinch(2,n3)=apinch(2,n3)+fypinch
206 apinch(3,n3)=apinch(3,n3)+fzpinch
212 wfext = wfext + wfextt