35 2 V ,X ,SKEW ,MS ,SENSOR_TAB,
36 3 WEIGHT,IB ,ITASK,TAGSLV_RBY_SMS,NSENSOR, WFEXT,python)
40 USE python_funct_mod,
ONLY : python_
41 use finter_mixed_mod,
only : finter_mixed
46#include "implicit_f.inc"
59 INTEGER NPC(*),NDDIM,NVDIM,NSENSOR
60 INTEGER IGRV(NIGRV,*),IB(*)
61 INTEGER WEIGHT(*), ITASK, TAGSLV_RBY_SMS(*)
63 . agrv(lfacgrv,*), tf(*), a(3,*), v(3,*), ms(*),
64 . x(3,*), skew(lskew,*)
65 TYPE (SENSOR_STR_) ,
DIMENSION(NSENSOR) ,
INTENT(IN) :: SENSOR_TAB
66 DOUBLE PRECISION,
INTENT(INOUT) :: WFEXT
67 TYPE(python_),
intent(inout) :: python
71 INTEGER NL, N1, ISK, N2, IFUNC, K1, K2, K3, ISENS,K,NN,IAD,J, IADF, IADL
72 my_real NX, NY, NZ, AXI, A0, AA, VV, FX, FY, FZ, AX, TS,GAMA, WFEXTT,FCX,FCY
73 my_real,
EXTERNAL :: finter
86 iadl = iad-1+(itask+1)*nn/nthread
90 IF(igrv(6,nl)== sensor_tab(k)%SENS_ID) isens=k
95 ts = tt-sensor_tab(isens)%TSTART
100 a0 = fcy*finter_mixed(python,nfunct,ifunc,(ts-dt1)*fcx,npc,tf)
101 gama = fcy*finter_mixed(python,nfunct,ifunc,ts*fcx,npc,tf)
109#include "vectorize.inc"
112 IF(tagslv_rby_sms(n1)/=0) cycle
113 a(n2,n1)=a(n2,n1)+ms(n1)*aa
120#include "vectorize.inc"
123 IF(tagslv_rby_sms(n1)/=0) cycle
124 vv = skew(k1,isk)*v(1,n1)+skew(k2,isk)*v(2,n1)+skew(k3,isk)*v(3,n1)
125 a(1,n1)=a(1,n1)+skew(k1,isk)*ms(n1)*aa
126 a(2,n1)=a(2,n1)+skew(k2,isk)*ms(n1)*aa
127 a(3,n1)=a(3,n1)+skew(k3,isk)*ms(n1)*aa
128 IF(ib(j)>0) wfextt=wfextt+half*(a0+aa)*ms(n1)*vv*dt1*weight(n1)
134 wfext = wfext + wfextt
subroutine sms_gravit(igrv, agrv, npc, tf, a, v, x, skew, ms, sensor_tab, weight, ib, itask, tagslv_rby_sms, nsensor, wfext, python)