48 . FSAV,FV,MS,STIFN,IPARG,ELBUF_TAB,EBCS_TAB,MULTI_FVM,IXQ,IXS,IXTG,
49 . FSKY,FSAVSURF,TIME,DT1,
50 . NSENSOR,SENSOR_TAB,PYTHON,
61 USE sensor_mod,
ONLY : sensor_str_
66#include "implicit_f.inc"
80 INTEGER IPARG(NPARG,NGROUP)
81 INTEGER,
INTENT(IN) :: IXQ(NIXQ,NUMELQ),IXS(NIXS,NUMELS),IXTG(NIXTG,NUMELTG)
82 my_real volmon(*),v(3,numnod),w(3,numnod),a(3,numnod),x(3,numnod),fsav(nthvki,*),
84 my_real,
intent(inout) :: ms(numnod)
85 TYPE(elbuf_struct_),
DIMENSION(NGROUP) :: ELBUF_TAB
86 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
87 TYPE(t_ebcs_tab),
TARGET,
INTENT(INOUT) :: EBCS_TAB
88 TYPE(multi_fvm_struct),
INTENT(IN) :: MULTI_FVM
89 my_real,
DIMENSION(8,LSKY),
INTENT(INOUT) :: fsky
90 INTEGER,
INTENT(IN) :: NSENSOR
91 TYPE (SENSOR_STR_) ,
DIMENSION(NSENSOR) ,
INTENT(IN) :: SENSOR_TAB
92 TYPE (PYTHON_),
INTENT(IN) :: PYTHON
93 INTEGER,
INTENT(IN) :: SNPC, STF
94 INTEGER,
INTENT(IN) :: NPC(SNPC)
100 INTEGER I,TYP,ISU,NSEG,VOLU,NOD
101 CLASS(t_ebcs),
POINTER :: EBCS
109 IF(.NOT.ebcs_tab%need_to_compute(i)) cycle
110 ebcs => ebcs_tab%tab(i)%poly
114 fsavsurf(1:5,isu) = zero
115 ! fsavsurf(6,isu) is cumulative
value : not reset
120 IF(.NOT.ebcs_tab%need_to_compute(i)) cycle
121 ebcs => ebcs_tab%tab(i)%poly
122 IF(ebcs%is_multifluid)
return
128 select type (twf => ebcs_tab%tab(i)%poly)
129 type is (t_ebcs_gradp0)
130 CALL ebcs0(nseg, ebcs%iseg, segvar,
132 . ebcs%node_list, nod, ebcs%elem_list,ebcs%ielem,
133 . ebcs%vold, ebcs%pold, ebcs%p0,
134 . ebcs%la, fv, ms, stifn, iparg, elbuf_tab, twf)
136 ELSE IF (typ <= 3)
THEN
137 CALL ebcs1(nseg,ebcs%iseg,segvar,
139 . ebcs%node_list,nod,ebcs%elem_list,
140 . ebcs%vold,ebcs%pold,ebcs%la,
141 . fv,ms,stifn,ebcs_tab, i)
142 ELSE IF (typ == 4)
THEN
143 select type (twf => ebcs_tab%tab(i)%poly)
145 CALL ebcs4(nseg,ebcs%iseg,segvar,
147 . ebcs%node_list,nod,ebcs%elem_list,
148 . ebcs%la,fv,ms,stifn,twf)
150 ELSE IF (typ == 5)
THEN
151 select type (twf => ebcs_tab%tab(i)%poly)
152 type is (t_ebcs_normv)
153 CALL ebcs5(nseg,ebcs%iseg,segvar,
155 . ebcs%node_list,nod,ebcs%elem_list,
156 . ebcs%la,fv,ms,stifn,twf)
158 ELSE IF (typ == 6)
THEN
159 select type (twf => ebcs_tab%tab(i)%poly)
160 type is (t_ebcs_inip)
161 CALL ebcs6(nseg,ebcs%iseg,segvar,
163 . ebcs%node_list,nod,ebcs%elem_list,
164 . ebcs%ro0,ebcs%en0,ebcs%p0,
165 . ebcs%vold,ebcs%pold,ebcs%la,
168 ELSE IF (typ == 7)
THEN
169 select type (twf => ebcs_tab%tab(i)%poly)
170 type is (t_ebcs_iniv)
171 CALL ebcs7(nseg,ebcs%iseg,segvar,
173 . ebcs%node_list,nod,ebcs%elem_list,
174 . ebcs%ro0,ebcs%en0,ebcs%v0,
175 . ebcs%la,ms,stifn,twf)
177 ELSE IF (typ == 10)
THEN
178 select type (twf => ebcs)
180 CALL ebcs10(nseg,twf%iseg,segvar,
182 . twf%node_list,nod,twf%elem_list,twf%ielem,twf%iface,
183 . twf%la,twf,iparg,elbuf_tab,multi_fvm,ixq,ixs,ixtg,
184 . ebcs_parithon(i)%ELEM_ADRESS,fsky,fsavsurf)
186 ELSE IF (typ == 11)
THEN
187 select type (twf => ebcs)
188 type is (t_ebcs_propellant)
189 call ebcs11(nseg,twf%iseg,segvar,
191 . twf%node_list,nod,twf%elem_list,twf%ielem,twf%iface,
192 . twf%la,ms,stifn,twf,iparg,elbuf_tab,ixq,ixs,ixtg,
193 . fsavsurf,time,iparit,dt1,
194 . numels, numelq, numeltg,numnod, nparg, ngroup, nixs, nixq, nixtg, nsurf, iale, n2d,
195 . nfunct, npc, tf ,snpc, stf, python,
196 . nsensor, sensor_tab)
198 ELSE IF (typ == 100)
THEN
200 TYPE IS (t_ebcs_monvol)
201 volu = ebcs%monvol_id
202 CALL ebcs_vol2seg(nseg,igrsurf(isu)%NODES,ebcs%iseg,segvar,a,v,x,volmon(nrvolu*(volu-1)+1),fsav(1,volu))
subroutine ebcs10(nseg, iseg, segvar, a, v, w, x, liste, nod, irect, ielem, iface, la, ebcs, iparg, elbuf_tab, multi_fvm, ixq, ixs, ixtg, elem_adress, fsky, fsavsurf)
subroutine ebcs_main(igrsurf, segvar, volmon, a, v, w, x, fsav, fv, ms, stifn, iparg, elbuf_tab, ebcs_tab, multi_fvm, ixq, ixs, ixtg, fsky, fsavsurf, time, dt1, nsensor, sensor_tab, python, npc, tf, snpc, stf)