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