52 2 NPC ,TF ,V ,NORMAL ,
53 3 FSAV ,NSENSOR ,SENSOR_TAB,IGRSURF,
54 4 FR_MV ,IADMV ,SICONTACT,SPORO,
55 5 FSKY ,ICONTACT,PORO ,IPARG ,
56 6 ELBUF_TAB,GEO ,IGEO ,
57 7 PM ,IPM ,IPART ,IPARTC ,
58 8 IPARTTG ,IGROUPC ,IGROUPTG,FEXT ,
59 9 FLAG ,H3D_DATA ,T_MONVOL,frontier_global_mv,
64 USE python_funct_mod,
only : python_
70 use get_volume_area_mod ,
only : get_volume_area
71 use output_mod ,
only : output_
75#include "implicit_f.inc"
87 INTEGER ,
INTENT(IN) :: NSENSOR
88 INTEGER,
INTENT(in) :: SICONTACT
89 INTEGER,
INTENT(in) :: SPORO
90 INTEGER NPC(*),MONVOL(*),FR_MV(NSPMD+2,NVOLU),IADMV(4,*),ICONTACT(SICONTACT),IPARG(NPARG,*),
91 . IGEO(NPROPGI,*),IPART(*),IPARTC(*), IPARTTG(*),IPM(NPROPMI,*),IGROUPC(*), IGROUPTG(*)
93 INTEGER,
DIMENSION(NSPMD+2),
INTENT(in) :: FRONTIER_GLOBAL_MV
94 my_real X(3,*), A(3,*), TF(*), (3,*), NORMAL(3,*), PORO(*),
95 . VOLMON(*),FSAV(NTHVKI,*),FSKY(*),GEO(NPROPG,*),PM(NPROPM,*),FEXT(*)
96 TYPE(elbuf_struct_),
DIMENSION(NGROUP) :: ELBUF_TAB
98 TYPE (SURF_) ,
DIMENSION(NSURF)
100 TYPE (SENSOR_STR_)
DIMENSION(NSENSOR),
INTENT(IN) :: SENSOR_TAB
101 TYPE(output_),
INTENT(INOUT) :: OUTPUT
102 TYPE(python_),
INTENT(IN) ::
109 INTEGER I,ITYP,NCA,NN,IS,K1,K2,K6,KK1,KK2,PMAIN,KIBJET,KRBJET,KIBHOL,KRBHOL,NJET,IADJET,RADJET,NVENT,IADHOL,RADHOL
110 my_real,
dimension(nvolu) :: vol
118 IF(ityp==4.OR.ityp==5.OR.ityp==7.OR.ityp==9)
THEN
119 volmon(kk1+31-1)=volmon(kk1+12-1)
127 call get_volume_area(ispmd,nspmd,numelc,numeltg,
128 . nvolu,nsurf,intbag,sporo,
129 . numnod,sicontact,nimv,nrvolu,
130 . monvol,volmon,vol,x,
131 . normal,icontact,poro,fr_mv,
132 . frontier_global_mv, t_monvol,igrsurf )
140 kk2 = 1 + nrvolu * nvolu
142 kibhol = kibjet + libagjet
143 krbjet = kk2 + lrcbag
144 krbhol = krbjet + lrbagjet
151 nn = igrsurf(is)%NSEG
153 njet = monvol(k1 + 7)
154 iadjet= kibjet+monvol(k1+ 8)
155 radjet= krbjet+monvol(k1+ 9)
156 nvent = monvol(k1 +10)
157 iadhol= kibhol+monvol(k1+11)
158 radhol= krbhol+monvol(k1+12)
159 IF(fr_mv(ispmd+1,i)/=0 .OR. fr_mv(nspmd+2,i)==ispmd+1)
THEN
160 pmain = fr_mv(nspmd+2,i)
165 IF(ityp == 6 .OR. ityp == 8)
GO TO 100
168 IF(flag == 1 .AND. (ityp == 6 .OR. ityp == 8))
GOTO 100
169 IF(flag == 2 .AND. .NOT.(ityp
GOTO 100
175 CALL volout(volmon(kk1),vol(i),fsav(1,i),pmain)
180 CALL volpfv(monvol(k1),volmon(kk1),vol(i),fsav(1,i),npc,
181 2 tf ,pmain , output%TH%WFEXT, python, nfunct)
186 CALL volpvga(monvol(k1),volmon(kk1),vol(i),fsav(1,i),nvent ,
187 2 monvol(iadhol) ,volmon(radhol),pmain, output%TH%WFEXT )
188 ELSEIF(ityp==4.OR.ityp==5)
THEN
192 CALL airbaga(monvol(k1),njet ,monvol(iadjet),nvent ,monvol(iadhol),
193 2 monvol(k2),volmon(kk1),volmon(radjet),volmon(radhol),volmon(kk2),
194 3 volmon ,npc ,tf ,nsensor ,sensor_tab ,
195 4 vol(i) ,pmain ,output%TH%WFEXT, python)
196 ELSEIF(ityp==7.OR.ityp==9)
THEN
200 CALL airbaga1(monvol(k1),njet ,monvol(iadjet),nvent ,monvol(iadhol),
201 2 monvol(k2),volmon(kk1),volmon(radjet),volmon(radhol),volmon(kk2),
202 3 volmon ,npc ,tf ,nsensor ,sensor_tab ,
203 4 vol(i) ,pmain ,geo ,igeo ,pm, output%TH%WFEXT,python)
208 CALL volp_lfluid(monvol(k1),volmon(kk1),vol(i),fsav(1,i),npc,
209 2 tf ,pmain, output ,python,nfunct)
214 CALL volpre(monvol(k1),volmon(kk1),njet ,monvol(iadjet),volmon(radjet),
215 2 nsensor ,sensor_tab ,x ,v ,a ,
216 3 t_monvol(i)%normal ,npc ,tf ,nn ,igrsurf(is)%NODES,
217 4 fext ,h3d_data,igrsurf(is)%ELTYP,igrsurf(is)%ELEM, output%TH%WFEXT,python)
219 CALL volprep(monvol(k1),volmon(kk1),njet ,monvol(iadjet),volmon(radjet),
220 2 nsensor ,sensor_tab ,x ,v ,a ,
221 3 t_monvol(i)%normal ,npc ,tf ,nn ,igrsurf(is)%NODES,
222 4 iadmv(1,k6),fsky ,fsky ,fext, h3d_data ,
223 5 igrsurf(is)%ELTYP,igrsurf(is)%ELEM,
224 5 t_monvol(i)%OMP_OUTPUT%NODE_NUMBER,t_monvol(i)%OMP_OUTPUT%TOTAL_CONTRIBUTION_NUMBER,
225 6 t_monvol(i)%OMP_OUTPUT%CONTRIBUTION_INDEX,t_monvol(i)%OMP_OUTPUT%CONTRIBUTION_NUMBER,
226 7 t_monvol(i)%OMP_OUTPUT%NODE_ID,t_monvol(i)%OMP_OUTPUT%CONTRIBUTION,output%TH%WFEXT,python)
229 t_monvol(i)%UID = uid
230 t_monvol(i)%volume = vol(i)
231 t_monvol(i)%pressure = volmon(kk1+12-1)
232 t_monvol(i)%temperature = volmon(kk1+13-1)
233 t_monvol(i)%area = volmon(kk1+18-1)
240 kk2= kk2 + nrcbag*nca
247 k2 = 1 + nimv * nvolu
249 kk2 = 1 + nrvolu * nvolu
254 nn = igrsurf(is)%NSEG
256 iadjet=kibjet+monvol(k1+ 8)
257 radjet=krbjet+monvol(k1+ 9)
258 nvent =monvol(k1 +10)
259 iadhol=kibhol+monvol(k1+11)
260 radhol=krbhol+monvol(k1+12)
261 IF(fr_mv(ispmd+1,i)==0.AND.nca==0)
THEN
264 IF(flag == 1 .AND. (ityp == 6 .OR. ityp == 8))
GOTO 200
265 IF(flag == 2 .AND. .NOT.(ityp == 6 .OR. ityp == 8))
GOTO 200
272 1 monvol(k1) ,volmon(kk1) ,vol(i) ,fsav(1,i) ,nvent ,
273 2 monvol(iadhol),volmon(radhol),normal,nn ,igrsurf,
274 3 iparg ,elbuf_tab,fr_mv(1,i), igroupc, igrouptg)
278 ELSEIF(ityp==4.OR.ityp==5.OR.ityp==7.OR.ityp==9)
THEN
279 IF(nca>0.AND.nspmd>1)
THEN
281 1 fr_mv ,i ,nca,volmon(kk1),volmon,
282 2 monvol(k2),njet ,monvol ,volmon(krbjet),1,ityp,100 )
283 IF(fr_mv(ispmd+1,i)==0)
GOTO 150
288 IF (ityp==7.OR.ityp==9)
THEN
289 CALL airbagb1(monvol(k1),monvol(k2),njet ,monvol(iadjet),nvent,
290 2 monvol(iadhol),volmon(kk1),volmon ,volmon(kk2),volmon(radjet),
291 3 volmon(radhol),fsav(1,i) ,normal ,nn ,
292 4 igrsurf ,poro ,monvol ,volmon(krbjet),
293 5 fr_mv(1,i) ,iparg ,ipart ,ipartc ,iparttg,
294 6 ipm ,pm ,elbuf_tab,igroupc ,igrouptg,
300 CALL airbagb(monvol(k1),monvol(k2),njet ,monvol(iadjet),nvent,
301 2 monvol(iadhol),volmon(kk1),volmon ,volmon(kk2),volmon(radjet),
302 3 volmon(radhol),fsav(1,i) ,normal ,nn ,
303 4 igrsurf ,poro ,monvol ,volmon(krbjet),
308 IF(nca>0.AND.nspmd>1)
THEN
310 1 fr_mv ,i ,nca,volmon(kk1),volmon,
311 2 monvol(k2),njet ,monvol ,volmon(krbjet),2,ityp,100)
316 k2 = k2 + nicbag * nca
318 kk2 = kk2 + nrcbag * nca