48
49
50
51 USE python_funct_mod, ONLY : python_
52 USE elbufdef_mod
53 USE sensor_mod
55
56
57
58#include "implicit_f.inc"
59
60
61
62#include "com01_c.inc"
63#include "com04_c.inc"
64#include "com08_c.inc"
65#include "scr03_c.inc"
66#include "scr07_c.inc"
67#include "scr18_c.inc"
68#include "param_c.inc"
69#include "fxbcom.inc"
70#include "task_c.inc"
71#include "parit_c.inc"
72
73
74
75 INTEGER ,INTENT(IN) :: NSENSOR
76 INTEGER FXBIPM(NBIPM,*), FXBNOD(*), FXBELM(*), ITYPTST, NELTST,
77 . FXBGRVI(*), IGRV(NIGRV,*), NPC(*), IPARG(NPARG,*),
78 . IAD_ELEM(2,*), FR_ELEM(*)
80 . fxbrpm(*), fxbmod(*), fxbglm(*), fxbcpm(*), fxbcps(*),
81 . fxblm(*), fxbfls(*), fxbdls(*), fxbdep(*), fxbvit(*),
82 . fxbacc(*), a(3,*), ar(3,*), x(3,*), fxbmvn(*),
83 . fxbmcd(*), fxbse(*), fxbsv(*), fxbsig(*), elbuf(*) ,
84 . partsav(*),fsav(nthvki,*), fxbfp(*),fxbefw(*),
85 . fxbfc(*), d(3,*), dt2t, fxbgrvr(*), tf(*), fxbgrp(*),
86 . fxbgrw(*), agrv(lfacgrv,*)
87 TYPE (), DIMENSION (NGROUP) :: ELBUF_TAB
88 TYPE (SENSOR_STR_) ,DIMENSION(NSENSOR) :: SENSOR_TAB
89 TYPE(python_) :: python
90
91
92
93 INTEGER NFX,ANOD,AMOD,AGLM,ACP,ALM,,ADLS,AVAR,ARPM,
94 . NME,NMOD,AMCD,ASE,ITN,NCYCLP1,AELM,,N2,NN2,
95 . AGRVI,AGRVR,NLGRAV,NSN,I,PMAIN
97 INTEGER NSNT, NMMAX, IAD(NFXBODY), ANOD2, J
98 my_real,
DIMENSION(:,:),
ALLOCATABLE :: fskyfxb
99
100 n2=ninter+nrwall+nrbody+nsect+njoint+nrbag+nvolu
101 itn=0
102 IF(tt<tanim) itn=1
103 ncyclp1=ncycle+1
104 IF((ncyclp1/ncrst)*ncrst==ncyclp1.OR.mrest/=0) itn=0
105 DO i=1,lenvar
106 mfextp(i)=zero
107 ENDDO
108 IF (iparit/=0) THEN
109 nsnt=0
110 nmmax=0
111 DO nfx=1,nfxbody
112 nmod=fxbipm(4,nfx)
113 nme=fxbipm(17,nfx)
114 nsn=fxbipm(18,nfx)
115 nmmax=
max(nmmax,nme+nmod)
116 iad(nfx)=nsnt
117 nsnt=nsnt+nsn
118 ENDDO
119 ALLOCATE(fskyfxb(nsnt,1+nmmax))
120 DO i=1,nsnt
121 DO j=1,nmmax
122 fskyfxb(i,j)=zero
123 ENDDO
124 ENDDO
125 ELSE
126 ALLOCATE(fskyfxb(0,0))
127 ENDIF
128 DO nfx=1,nfxbody
129 nmod=fxbipm(4,nfx)
130 anod=fxbipm(6,nfx)
131 amod=fxbipm(7,nfx)
132 avar=fxbipm(13,nfx)
133 arpm=fxbipm(14,nfx)
134 nme=fxbipm(17,nfx)
135 aelm=fxbipm(19,nfx)
136 asig=fxbipm(20,nfx)
137 nsn=fxbipm(18,nfx)
138 anod2=anod+fxbipm(3,nfx)
139 IF (nsn+fxbipm(3,nfx)>0)
141 .fxbipm(1,nfx),fxbrpm(arpm),fxbnod(anod),fxbmod(amod),fxbdep(avar),
142 .fxbvit(avar) ,fxbacc(avar),a ,ar ,nme ,
143 .nmod ,itn ,fxbelm ,fxbsig ,elbuf ,
144 .partsav ,x ,d ,iparg ,nfx ,
145 .nsn ,mfextp(avar),iad_elem ,fr_elem ,nsnt ,
146 .fskyfxb ,iad(nfx) ,fxbnod(anod2),elbuf_tab )
147 ENDDO
148
149 IF (iparit==0) THEN
151 ELSE
153 ENDIF
154 DEALLOCATE(fskyfxb)
155
156 DO nfx=1,nfxbody
157 nn2=n2+nfx
158 nmod=fxbipm(4,nfx)
159 aglm=fxbipm(8,nfx)
160 acp =fxbipm(9,nfx)
161 alm =fxbipm(10,nfx)
162 afls=fxbipm(11,nfx)
163 adls=fxbipm(12,nfx)
164 avar=fxbipm(13,nfx)
165 arpm=fxbipm(14,nfx)
166 amcd=fxbipm(15,nfx)
167 ase =(nfx-1)*15+1
168 nme=fxbipm(17,nfx)
169 nlgrav=fxbipm(25,nfx)
170 agrvi=fxbipm(26,nfx)
171 agrvr=fxbipm(27,nfx)
172 pmain=fxbipm(39,nfx)
173 IF (ispmd==pmain) THEN
174 IF (dt2t>dtfac1(11)*fxbrpm(arpm)) THEN
175 dt2t=dtfac1(11)*fxbrpm(arpm)
176 ityptst=11
177 neltst=fxbipm(2,nfx)
178 ENDIF
180 .fxbipm(1,nfx),fxbrpm(arpm),fxbglm(aglm),fxbcpm(acp) ,fxbcps(acp) ,
181 .fxblm(alm) ,fxbfls(afls),fxbdls(adls),fxbdep(avar),fxbvit(avar),
182 .nme ,nmod ,fxbmvn(acp) ,fxbmcd(amcd),fxbse(ase) ,
183 .fxbsv(alm) ,fsav(1,nn2) ,fxbfp(avar) ,fxbefw(nfx) ,fxbfc(alm) ,
184 .fxbgrvi(agrvi),fxbgrvr(agrvr),nlgrav ,igrv ,npc ,
185 .tf ,fxbgrp(avar),fxbgrw(nfx) ,sensor_tab ,nsensor ,
186 .mfextp(avar) ,agrv ,python )
187 ENDIF
188 ENDDO
189
190 RETURN
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 spmd_fxb_for(fxbipm, mfextp)
subroutine spmd_fxb_for_pon(fxbipm, mfextp, fskyfxb, dsky, iadn)