50
51
52
54 USE elbufdef_mod
58
59
60
61#include "implicit_f.inc"
62
63
64
65#include "com01_c.inc"
66#include "com04_c.inc"
67#include "com08_c.inc"
68#include "vect01_c.inc"
69#include "param_c.inc"
70#include "task_c.inc"
71#include "inter22.inc"
72
73
74
76 INTEGER IPARG(NPARG,NGROUP), IXS(NIXS,NUMELS), IXQ(7,NUMELQ), IPM(NPROPMI,NUMMAT)
77 INTEGER ITASK,NV46
78 my_real flux(*), flu2(*), veul(*), fill(numnod,*),dfill(numnod,*), vol(*), alph(2,*)
79 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP), TARGET :: ELBUF_STR
80 TYPE(t_ale_connectivity), INTENT(IN) :: ALE_CONNECT
81
82
83
84 INTEGER NG, I, NF1,ISOLNOD,NSG,NEL
86 TYPE(G_BUFEL_) ,POINTER :: GBUF
87 TYPE(L_BUFEL_) ,POINTER :: LBUF1,LBUF2
88
89
90
91 IF(itask == 0) THEN
92 IF (nmult /= 0) THEN
93 DO ng=1,ngroup
94
95 IF (iparg(76, ng) == 1) cycle
97 2 mtn ,llt ,nft ,iad ,ity ,
98 3 npt ,jale ,ismstr ,jeul ,jtur ,
99 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
100 5 nvaux ,jpor ,jcvt ,jclose ,jplasol ,
101 6 irep ,iint ,igtyp ,israt ,isrot ,
102 7 icsen ,isorth ,isorthg ,ifailure,jsms )
103 IF (jmult == 0) cycle
104 gbuf => elbuf_str(ng)%GBUF
105 lbuf1 => elbuf_str(ng)%BUFLY(1)%LBUF(1,1,1)
106 lbuf2 => elbuf_str(ng)%BUFLY(2)%LBUF(1,1,1)
107 lft=1
108 IF (dt1 > zero)THEN
109 udt=one/dt1
110 ELSE
111 udt=zero
112 ENDIF
113 DO i=lft,llt
114 alph(1,i+nft)=lbuf1%FRAC(i)
115 alph(2,i+nft)=lbuf2%FRAC(i)
116 vol(i+nft)=gbuf%VOL(i)*udt
117 ENDDO
118 ENDDO
119
120 ENDIF
121 ENDIF
122
124
125 DO ng=itask+1,ngroup,nthread
126
127 IF (iparg(76, ng) == 1) cycle
129 2 mtn ,llt ,nft ,iad ,ity ,
130 3 npt ,jale ,ismstr ,jeul ,jtur ,
131 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
132 5 nvaux ,jpor ,jcvt ,jclose ,jplasol ,
133 6 irep ,iint ,igtyp ,israt ,isrot ,
134 7 icsen ,isorth ,isorthg ,ifailure,jsms )
135 IF (jale+jeul == 0) cycle
136 IF (iparg(8,ng) == 1) cycle
137 gbuf => elbuf_str(ng)%GBUF
138 nsg = iparg(10,ng)
139 isolnod = iparg(28,ng)
140 lft=1
141 nf1=nft+1
142 nel = llt
143
144 IF(n2d == 0.AND.jeul == 0.AND. isolnod == 4)THEN
145 CALL a4flux3(pm,ixs,v,w,x,flux(6*nft+1),flu2(nf1),ale_connect)
146 ELSEIF(n2d == 0.AND.jeul == 0)THEN
148 CALL aflux3(pm,ixs,v,w,x,flux(6*nft+1),flu2(nf1),ale_connect,nsg,gbuf%TAG22)
149 ELSE
151 2 flu2(nf1),ale_connect,
152 3 ipm ,nv46 ,x ,
153 4 nel )
154 ENDIF
155 ELSEIF(n2d /= 0.AND.jeul == 0)THEN
157 . flux(4*nft+1),flu2(nf1),
158 . fill,dfill,vol,ale_connect,alph)
159 ELSEIF(n2d == 0.AND.jeul /= 0)THEN
161 CALL eflux3(pm,ixs,v,flux(6*nft+1),flu2(nf1),veul,ale_connect,gbuf%TAG22)
162 ELSE
164 2 veul ,ale_connect ,ipm ,
165 3 nv46 ,x ,nel )
166 ENDIF
167 ELSEIF(n2d /= 0.AND.jeul /= 0)THEN
168 CALL eflux2(pm,ixq,v,x,flux(4*nft+1),flu2(nf1),fill,dfill,vol,ale_connect,alph)
169 ENDIF
170 ENDDO
171
172
174
175
176 IF(int22 > 0)THEN
177 IF(i22_aleul == 2)THEN
179 . pm , ixs , flux(1) ,
180 . iparg , elbuf_str , itask ,
181 . nv46 , ipm , x)
182 ELSE
184 . pm , ixs , flux(1) , flu2(1) ,
185 . iparg , elbuf_str , itask ,
186 . nv46 , ipm , x , w)
187 ENDIF
188 ENDIF
189
190
192
193
194 RETURN
subroutine a4flux3(pm, ixs, v, w, x, flux, flu1, ale_connect)
subroutine aflux2(pm, ixq, v, w, x, flux, flu1, fill, dfill, vol, ale_connect, alph)
subroutine aflux3(pm, ixs, v, w, x, flux, flu1, ale_connect, nsg, tag22)
subroutine aflux3_int22_fvm(pm, ixs, flux, flu1, iparg, elbuf_tab, itask, nv46, ipm, x, w)
subroutine alefvm_aflux3(pm, ixs, w, flux, flu1, ale_connect, ipm, nv46, x, nel)
subroutine alefvm_eflux3(pm, ixs, flux, flu1, veul, ale_connect, ipm, nv46, x, nel)
subroutine eflux2(pm, ixq, v, x, flux, flu1, fill, dfill, vol, ale_connect, alph)
subroutine eflux3(pm, ixs, v, flux, flu1, veul, ale_connect, tag22)
subroutine eflux3_int22_fvm(pm, ixs, flux, flu1, iparg, elbuf_tab, itask, nv46, ipm, x)
type(alefvm_param_), target alefvm_param
subroutine initbuf(iparg, ng, mtn, llt, nft, iad, ity, npt, jale, ismstr, jeul, jtur, jthe, jlag, jmult, jhbe, jivf, mid, jpor, jcvt, jclose, jpla, irep, iint, igtyp, israt, isrot, icsen, isorth, isorthg, ifailure, jsms)