44
45
46
48 USE elbufdef_mod
52
53
54
55#include "implicit_f.inc"
56
57
58
59#include "com01_c.inc"
60#include "com04_c.inc"
61#include "vect01_c.inc"
62#include "param_c.inc"
63#include "task_c.inc"
64#include "inter22.inc"
65
66
67
68 TYPE(ELBUF_STRUCT_), TARGET, DIMENSION(NGROUP) :: ELBUF_TAB
69 my_real pm(npropm,nummat), x(3,numnod),
70 . flux(nv46,*), flu2(*),
71 . flux_sav(nv46,*), qmv(*)
72 INTEGER IPARG(NPARG,NGROUP), IXS(NIXS,NUMELS), IXQ(7,NUMELQ), ITASK, NV46, J
73 TYPE(), INTENT(IN) :: ALE_CONNECT
74
75
76
77 INTEGER :: NG, K, II, NF1
79 INTEGER :: NIN, IB, NBF, NBL, IE, MLW
80
81
82
83
85
86
87
88
89 DO ng=itask+1,ngroup,nthread
90
91 IF (iparg(76, ng) == 1) cycle
93 2 mtn ,llt ,nft ,iad ,ity ,
94 3 npt ,jale ,ismstr ,jeul ,jtur ,
95 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
96 5 nvaux ,jpor ,jcvt ,jclose ,jplasol ,
97 6 irep ,iint ,igtyp ,israt ,isrot ,
98 7 icsen ,isorth ,isorthg ,ifailure,jsms )
99
100
101
102 IF(jale+jeul == 0) cycle
103 IF(iparg(8,ng) == 1) cycle
104 IF(iparg(1,ng) /= 51) cycle
105
106 lft=1
107 DO k=1,nv46
108 DO ii=nft+lft,nft+llt
109 flux_sav(k,ii)=flux(k,ii)
110 ENDDO
111 ENDDO
112 END DO
113
114
116
117
118
119
120
121 DO ng=itask+1,ngroup,nthread
122
123 IF (iparg(76, ng) == 1) cycle
125 2 mtn ,llt ,nft ,iad ,ity ,
126 3 npt ,jale ,ismstr ,jeul ,jtur ,
127 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
128 5 nvaux ,jpor ,jcvt ,jclose ,jplasol ,
129 6 irep ,iint ,igtyp ,israt ,isrot ,
130 7 icsen ,isorth ,isorthg ,ifailure,jsms )
131 IF(jale+jeul == 0) cycle
132 IF(iparg(8,ng) == 1) cycle
133 IF(iparg(1,ng) /= 51) cycle
134 lft=1
135 nf1=nft+1
136
137
138
139 IF(n2d == 0)THEN
141 + 0 ,bid,qmv(12*nft+1),1,
142 + nv46 )
143 ELSE
144 CALL ale51_upwind2(pm,x,ixq,flux(1,nf1),flu2(nf1),ale_connect,
145 + 0,bid,qmv(8*nft+1),1)
146 ENDIF
147 END DO
148
149
151
152
153 IF(int22 /= 0)THEN
154
155 nin = 1
156 nbf = 1+itask*
nb/nthread
157 nbl = (itask+1)*
nb/nthread
159 DO ib=nbf,nbl
162 IF(mlw /= 51)cycle
163 DO j=1,6
164 brick_list(nin,ib)%POLY(1:9)%FACE(j)%Adjacent_UpwFLUX(1) =
brick_list(nin,ib)%POLY(1:9)%FACE(j)%Adjacent_FLUX(1)
165 brick_list(nin,ib)%POLY(1:9)%FACE(j)%Adjacent_UpwFLUX(2) =
brick_list(nin,ib)%POLY(1:9)%FACE(j)%Adjacent_FLUX(2)
166 brick_list(nin,ib)%POLY(1:9)%FACE(j)%Adjacent_UpwFLUX(3) =
brick_list(nin,ib)%POLY(1:9)%FACE(j)%Adjacent_FLUX(3)
167 brick_list(nin,ib)%POLY(1:9)%FACE(j)%Adjacent_UpwFLUX(4) =
brick_list(nin,ib)%POLY(1:9)%FACE(j)%Adjacent_FLUX(4)
168 brick_list(nin,ib)%POLY(1:9)%FACE(j)%Adjacent_UpwFLUX(5) =
brick_list(nin,ib)%POLY(1:9)%FACE(j)%Adjacent_FLUX(5)
169 ENDDO
170 ENDDO
171
172
174 + (pm , ixs ,0 , 1,
175 + iparg, elbuf_tab ,itask )
176 ENDIF
177
178
179 RETURN
subroutine ale51_upwind2(pm, x, ixq, flux, flu1, ale_connect, itrimat, ddvol, qmv, iflg)
subroutine ale51_upwind3(pm, ixs, flux, flu1, ale_connect, itrimat, ddvol, qmv, iflg, nv46)
subroutine ale51_upwind3_int22(pm, ixs, itrimat, iflg, iparg, elbuf_tab, itask)
type(brick_entity), dimension(:,:), allocatable, target brick_list
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)