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