39 2 V ,X ,SKEW ,MS,WFEXTT,
40 3 NSENSOR,SENSOR_TAB,WEIGHT,IB,ITASK,
41 4 NRBYAC,IRBYAC,NPBY ,RBY , PYTHON)
51#include "implicit_f.inc"
64 INTEGER ,
INTENT(IN) :: NSENSOR
66 INTEGER IGRV(NIGRV,*),IB(*)
67 INTEGER WEIGHT(*),ITASK,NRBYAC,IRBYAC(*),NPBY(NNPBY,*)
70 . agrv(lfacgrv,*), tf(*), a(3,*), v(3,*), ms(*),
71 . x(3,*), skew(lskew,*), wfextt, rby(nrby,*)
72 TYPE (SENSOR_STR_) ,
DIMENSION(NSENSOR) ,
INTENT(IN) :: SENSOR_TAB
73 TYPE(PYTHON_),
INTENT(INOUT) :: PYTHON
77 INTEGER NL, N1, ISK, N2, IFUNC, K1, K2, K3, ISENS,K,NN
81 EXTERNAL finter,finter_smooth
100 IF (ifunc > 0) ismooth = npc(2*nfunct+ifunc+1)
103 iadl = iad-1+(itask+1)*nn
106 IF(igrv(6,nl)== sensor_tab(k)%SENS_ID) isens=k
111 ts = tt - sensor_tab(isens)%TSTART
116 IF (ismooth <= 0)
THEN
117 a0 = agrv(1,nl)*finter_mixed(python,nfunct,ifunc,(ts-dt1)*agrv(2,nl),npc,tf)
118 gama = agrv(1,nl)*finter_mixed(python,nfunct,ifunc,ts*agrv(2,nl),npc,tf)
120 a0 = agrv(1,nl)*finter_smooth
121 gama = agrv(1,nl)*finter_smooth(ifunc,ts*agrv(2,nl),npc,tf,dydx)
130 IF(n2d==1.AND.isk<=1)
THEN
137 IF(ib(j)>0) wfextt=wfextt+half*(a0+aa)*ms(n1)*v(n2,n1)*axi*weight(n1)
139 ELSEIF(n2d==1.AND.isk>1)
THEN
147 vv = skew(k1,isk)*v(1,n1)+skew(k2,isk)*v(2,n1)+skew(k3,isk)*v(3,n1)
150 a(2,n1)=a(2,n1)+skew(k2,isk)*ma
151 a(3,n1)=a(3,n1)+skew(k3,isk)*ma
152 IF(ib(j)>0) wfextt=wfextt+half*(a0+aa)*ms(n1)*vv*axi*weight(n1)
160 IF(ib(j)>0) wfextt=wfextt+half*(a0+aa)*ms(n1)*v(n2,n1)*weight(n1)
166#include "vectorize.inc"
170 vv = skew(k1,isk)*v(1,n1)+skew(k2,isk)*v(2,n1)+skew(k3,isk)*v
171 a(1,n1)=a(1,n1)+skew(k1,isk)*ma
172 a(2,n1)=a(2,n1)+skew(k2,isk)*ma
173 a(3,n1)=a(3,n1)+skew(k3,isk)*ma
174 IF(ib(j)>0) wfextt=wfextt+half*(a0+aa)*ms(n1)*vv*weight(n1)
subroutine gravit_imp(igrv, agrv, npc, tf, a, v, x, skew, ms, wfextt, nsensor, sensor_tab, weight, ib, itask, nrbyac, irbyac, npby, rby, python)