34 SUBROUTINE fxbodfp1(FXBIPM , FXBRPM, FXBNOD , FXBMOD , FXBDEP ,
35 . FXBVIT , FXBACC, A , AR , NME ,
36 . NMOD , ITN , FXBELM , FXBSIG , ELBUF ,
37 . PARTSAV, X , D , IPARG , NFX ,
38 . NSN , MFEXT , IAD_ELEM, FR_ELEM , NSNT ,
39 . FSKYFXB, IADN , IADSKY ,ELBUF_TAB)
47#include "implicit_f.inc"
59 INTEGER FXBIPM(*), FXBNOD(*), NME, NMOD, , FXBELM(*),
60 . IPARG(NPARG,*), NFX, NSN, IAD_ELEM(2,*), FR_ELEM(*),
63 . FXBRPM(*), FXBMOD(*), FXBDEP(*), FXBVIT(*), FXBACC(*),
64 . a(3,*), ar(3,*), fxbsig(*), elbuf(*), partsav(npsav,*),
65 . x(3,*), d(3,*), mfext(*), fskyfxb(nsnt,*)
66 TYPE (ELBUF_STRUCT_),
DIMENSION (NGROUP) :: ELBUF_TAB
70 INTEGER IFILE, LMOD, ISH, NELS, , NELT, NELP, NELTG, LVSIG,
71 . ircs, dn, ircm, i, iad, ii, n, ifac(numnod), j, jj
76 CALL fxbmajp1(fxbdep, fxbvit, fxbacc, fxbrpm, dt1 ,
82 ELSEIF (ifile==1)
THEN
92 lvsig=nels*7+nelc*10+nelt*2+nelp*8+neltg*10
94 CALL fxbsgmaj(elbuf, fxbelm, fxbsig, fxbdep, fxbipm,
95 . fxbrpm(15), partsav, rt , itn , iparg ,
96 . nfx , lvsig , ircs ,elbuf_tab)
98 dn=fxbipm(3)-fxbipm(18)
101 . nsn, fxbnod, nme, nmod, fxbmod,
102 . ish , ifile , nfx, ircm)
112 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
125 mfext(i)=mfext(i)+(a(1,n)*fxbmod(iad+1)
126 . +a(2,n)*fxbmod(iad+2)
127 . +a(3,n)*fxbmod(iad+3))/ifac(n)
137 mfext(i)=mfext(i)+(ar(1,n)*fxbmod(iad+4)
138 . +ar(2,n)*fxbmod(iad+5)
139 . +ar(3,n)*fxbmod(iad+6))/ifac(n)
151 mfext(nme+i)=mfext(nme+i)+
152 . (a(1,n)*(fxbrpm(2)*fxbmod(iad+1)+fxbrpm(3)*fxbmod(iad+2)+
153 . fxbrpm(4)*fxbmod(iad+3))
154 . +a(2,n)*(fxbrpm(5)*fxbmod(iad+1)+fxbrpm(6)*fxbmod(iad+2)+
155 . fxbrpm(7)*fxbmod(iad+3))
156 . +a(3,n)*(fxbrpm(8)*fxbmod(iad+1)+fxbrpm(9)*fxbmod(iad+2)+
157 . fxbrpm(10)*fxbmod(iad+3))
158 . +ar(1,n)*(fxbrpm(2)*fxbmod(iad+4)+fxbrpm(3)*fxbmod(iad+5)+
159 . fxbrpm(4)*fxbmod(iad+6))
160 . +ar(2,n)*(fxbrpm(5)*fxbmod(iad+4)+fxbrpm(6)*fxbmod(iad+5)+
161 . fxbrpm(7)*fxbmod(iad+6))
162 . +ar(3,n)*(fxbrpm(8)*fxbmod(iad+4)+fxbrpm(9)*fxbmod(iad+5)+
163 . fxbrpm(10)*fxbmod(iad+6)))/ifac(n)
170 fskyfxb(iadn+i,1)=iadsky(i)
177 fskyfxb(iadn+ii,1+i)=a(1,n)*fxbmod(iad+1)
178 . +a(2,n)*fxbmod(iad+2)
179 . +a(3,n)*fxbmod(iad+3)
188 fskyfxb(iadn+ii,1+i)=ar(1,n)*fxbmod(iad+4)
189 . +ar(2,n)*fxbmod(iad+5)
190 . +ar(3,n)*fxbmod(iad+6)
201 fskyfxb(iadn+ii,1+nme+i)=
202 . a(1,n)*(fxbrpm(2)*fxbmod(iad+1)+fxbrpm(3)*fxbmod(iad+2)+
203 . fxbrpm(4)*fxbmod(iad+3))
204 . +a(2,n)*(fxbrpm(5)*fxbmod(iad+1)+fxbrpm(6)*fxbmod(iad+2)+
205 . fxbrpm(7)*fxbmod(iad+3))
206 . +a(3,n)*(fxbrpm(8)*fxbmod(iad+1)+fxbrpm(9)*fxbmod(iad+2)+
207 . fxbrpm(10)*fxbmod(iad+3))
208 . +ar(1,n)*(fxbrpm(2)*fxbmod(iad+4)+fxbrpm(3)*fxbmod(iad+5)+
209 . fxbrpm(4)*fxbmod(iad+6))
210 . +ar(2,n)*(fxbrpm(5)*fxbmod(iad+4)+fxbrpm(6)*fxbmod(iad+5)+
211 . fxbrpm(7)*fxbmod(iad+6))
212 . +ar(3,n)*(fxbrpm(8)*fxbmod(iad+4)+fxbrpm(9)*fxbmod(iad+5)+
213 . fxbrpm(10)*fxbmod(iad+6))
233 SUBROUTINE fxbodfp2(FXBIPM , FXBRPM , FXBGLM, FXBCPM, FXBCPS ,
234 . FXBLM , FXBFLS , FXBDLS, FXBDEP, FXBVIT ,
235 . NME , NMOD , MVN , MCD , SE ,
236 . SV , FSAV , FXBFP , WFEXT , FXBFC ,
237 . FXBGRVI, FXBGRVR, NLGRAV, IGRV , NPC ,
238 . TF , FXBGRP , TFGRAV, SENSOR_TAB, NSENSOR,
239 . MFEXT , AGRV ,PYTHON )
243 USE python_funct_mod,
ONLY : python_
244 use finter_mixed_mod,
ONLY : finter_mixed
249#include "implicit_f.inc"
253#include "com04_c.inc"
254#include "com08_c.inc"
255#include "param_c.inc"
259 INTEGER ,
INTENT(IN) :: NSENSOR
260 INTEGER FXBIPM(*), NME, NMOD, FXBGRVI(*), NLGRAV, (NIGRV,*),
263 . FXBRPM(*), FXBGLM(*), FXBCPM(*), FXBCPS(*), FXBLM(*),
264 . FXBFLS(*), FXBDLS(*), FXBDEP(*), FXBVIT(*), MVN(*),
265 . MCD(NME,*), SE(*), SV(*), FSAV(*), FXBFP(*), WFEXT,
266 . FXBFC(*), FXBGRVR(*), TF(*), FXBGRP(*), TFGRAV,
267 . MFEXT(*), AGRV(LFACGRV,*)
268 TYPE (SENSOR_STR_) ,
DIMENSION(NSENSOR) :: SENSOR_TAB
269 TYPE(python_),
intent(inout) :: python
273 INTEGER IBLO, I, IADG, IADGR, IG, NL, IFUNC, ISENS, K, IIM, NMST,
276 . MC(NME*NMOD), RC(NME*NMOD), TS, FI, ALPHA, BETA,
277 . MFINT(NME+NMOD), FDALPHA(NMOD), ENINT,
281 IF (nmod>0)
CALL fxbmajp2(mc, rc, mvn, nme, nmod,
282 . dt1, fxbcpm, fxbcps, fxblm, fxbrpm)
298 IF (igrv(6,nl)==sensor_tab(k)%SENS_ID) isens=k
303 ts=tt-sensor_tab(isens)%TSTART
307 fi=agrv(1,nl)*finter_mixed(python,nfunct,ifunc
312 mfgrav(i)=mfgrav(i)+fi*fxbgrvr(iadgr+i)
316 mfgrav(nme+i)=mfgrav(nme+i)
317 . +fxbrpm(2)*fi*fxbgrvr(iadgr+nme+iim+1)
318 . +fxbrpm(3)*fi*fxbgrvr(iadgr+nme+iim+2)
319 . +fxbrpm(4)*fi*fxbgrvr(iadgr+nme+iim+3)
320 . +fxbrpm(5)*fi*fxbgrvr(iadgr+nme+iim+4)
321 . +fxbrpm(6)*fi*fxbgrvr(iadgr+nme+iim+5)
322 . +fxbrpm(7)*fi*fxbgrvr(iadgr+nme+iim+6)
323 . +fxbrpm(8)*fi*fxbgrvr(iadgr+nme+iim+7)
324 . +fxbrpm(9)*fi*fxbgrvr(iadgr+nme+iim+8)
325 . +fxbrpm(10)*fi*fxbgrvr(iadgr+nme
328 iadg=iadg+2+fxbgrvi(iadg+2)
329 iadgr=iadgr+nme+9*nmod
337 tfgrav=tfgrav+half*(fxbgrp(i)+mfgrav(i))*fxbvit(i)*dt1
338 mfext(i)=mfext(i)+mfgrav(i)
339 wfext=wfext+half*(fxbfp(i)+mfext(i))*fxbvit(i)*dt1
349 IF (nmod>0.AND.iblo==0)
THEN
354 mfint(i)=mfint(i)+rc(iad+ii)*fxbdep(nme+ii)
367 iad=(ii-1)*(2*nmod-ii+2)/2+(i-ii+1)
368 mfint(nme+i)=mfint(nme+i)+fxbfls(iad)*fxbdep(nme+ii)
369 fxbfc(i)=fxbfc(i)+fxbfls(iad)*beta*fxbvit(nme+ii)
372 iad=(i-1)*(2*nmod-i+2)/2+(ii-i+1)
373 mfint(nme+i)=mfint(nme+i)+fxbfls(iad)*fxbdep(nme+ii)
374 fxbfc(i)=fxbfc(i)+fxbfls(iad)*beta*fxbvit(nme+ii)
376 fdalpha(i)=alpha*fxblm(i)*fxbvit(nme+i)
379 IF ((nmod-nmst)>0)
THEN
386 iad=(ii-1)*(2*nmod-ii+2)/2+(iii-ii+1)
387 mfint(nme+iii)=mfint(nme+iii)+fxbfls(iad)*
389 fxbfc(iii)=fxbfc(iii)+fxbfls(iad)*beta*fxbvit
392 mfint(nme+iii)=mfint(nme+iii)+fxbdls(i)*fxbdep(nme+iii)
393 fxbfc(iii)=fxbfc(iii)+fxbdls(i)*beta*fxbvit(nme+iii)
394 fdalpha(iii)=alpha*fxblm(iii)*fxbvit(nme+iii)
400 enint=enint+half*fxbdep(nme+i)*mfint(nme+i)
410 se(i)=mfext(i)-mfint(i)
414 sv(i)=mfext(nme+i)-mfint(nme+i)-fxbfc(i)-fdalpha(i)
420 se(i)=se(i)-mvn(iad+ii)*sv(ii)
430 mcd(i,ii)=fxbglm(iii)
431 IF (i/=ii) mcd(ii,i)=mcd(i,ii)
440 mcd(i,ii)=mcd(i,ii)-mvn(iad+iii)*mc(iiad+iii)
subroutine fxbodfp2(fxbipm, fxbrpm, fxbglm, fxbcpm, fxbcps, fxblm, fxbfls, fxbdls, fxbdep, fxbvit, nme, nmod, mvn, mcd, se, sv, fsav, fxbfp, wfext, fxbfc, fxbgrvi, fxbgrvr, nlgrav, igrv, npc, tf, fxbgrp, tfgrav, sensor_tab, nsensor, mfext, agrv, python)
subroutine fxbodfp1(fxbipm, fxbrpm, fxbnod, fxbmod, fxbdep, fxbvit, fxbacc, a, ar, nme, nmod, itn, fxbelm, fxbsig, elbuf, partsav, x, d, iparg, nfx, nsn, mfext, iad_elem, fr_elem, nsnt, fskyfxb, iadn, iadsky, elbuf_tab)
subroutine fxbyfor(fxbipm, fxbrpm, fxbnod, fxbmod, fxbglm, fxbcpm, fxbcps, fxblm, fxbfls, fxbdls, fxbdep, fxbvit, fxbacc, a, ar, x, fxbmvn, fxbmcd, fxbse, fxbsv, fxbelm, fxbsig, elbuf, partsav, elbuf_tab, fsav, fxbfp, fxbefw, fxbfc, d, dt2t, ityptst, neltst, fxbgrvi, fxbgrvr, igrv, npc, tf, fxbgrp, fxbgrw, iparg, nsensor, sensor_tab, iad_elem, fr_elem, agrv, python)