61 3 PM ,XLAS ,MS ,FSAV ,
64 6 IPARG ,IXS ,IXQ ,NODPOR ,
65 7 ISKEW ,ICODT ,ELBUF_TAB ,
66 8 NPF ,LINALE ,NPRW ,LAS ,
67 9 IPARI ,NODFT ,NODLT ,ITASK ,
68 A IAD_ELEM ,FR_ELEM ,NBRCVOIS ,NBSDVOIS ,LNRCVOIS ,
69 B LNSDVOIS ,WEIGHT ,ADSKY ,FSKY ,IADS ,
70 C FR_WALL ,NPORGEO ,PROCNE ,
71 D FR_NBCC ,IADQ ,XDP ,IGRNOD ,
72 E DR ,INTBUF_TAB ,MULTI_FVM ,
73 F ALE_CONNECTIVITY,DDP ,NE_NERCVOIS,NE_NESDVOIS,
74 G NE_LERCVOIS ,NE_LESDVOIS ,XCELL ,XFACE ,WFEXT)
107 USE alew8_mod ,
ONLY : alew8
111#include "implicit_f.inc"
115#include "com01_c.inc"
116#include "com04_c.inc"
117#include "com06_c.inc"
118#include
"com08_c.inc"
119#include "param_c.inc"
120#include "scr03_c.inc"
121#include "scr05_c.inc"
122#include "timeri_c.inc"
123#include "parit_c.inc"
124#include
"tabsiz_c.inc"
128 TYPE(timer_),
INTENT(inout) :: TIMERS
129 TYPE(PYTHON_),
INTENT(inout) :: PYTHON
130 TYPE(MULTI_FVM_STRUCT) :: MULTI_FVM
131 INTEGER ISKEW(*), (NIXS,NUMELS),IXQ(NIXQ,NUMELQ),
132 . (*),LAS(*), IPARG(NPARG,NGROUP), IPARI(NPARI,NINTER),
133 . NPRW(*), ICODT(*), LINALE(*),
134 . NODPOR(*), NBRCVOIS(*),NBSDVOIS(*), PROCNE(*),FR_NBCC(*),
135 . LNRCVOIS(*),LNSDVOIS(*), NODFT ,NODLT, ITASK,
136 . WEIGHT(*), FR_ELEM(*), IAD_ELEM(*), ADSKY(*), NPORGEO(*),
137 . IADS(*) ,FR_WALL(*),
139 DOUBLE PRECISION :: XDP(3,*),DDP(3,*)
140 my_real X(3,SX/3) ,D(3,SD/3), V(3,SV/3) ,VR(3,SVR/3) ,A(3,SA/3) , FSKY(*),
141 . MS(*) ,PM(NPROPM,NUMMAT),SKEW(LSKEW,*),GEO(NPROPG,NUMGEO),
142 . W(3,SW/3), WB(*), TF(*), FSAV(NTHVKI,*) ,XLAS(*),
143 . WA(3,*),DR(3,SDR/3),XCELL(3,SXCELL), XFACE(3,6,*)
144 my_real :: rwbuf(nrwlp,*)
146 TYPE(elbuf_struct_),
DIMENSION(NGROUP) :: ELBUF_TAB
147 TYPE(intbuf_struct_) INTBUF_TAB(*)
148 TYPE (GROUP_) ,
DIMENSION(NGRNOD) :: IGRNOD
149 TYPE(t_ale_connectivity),
INTENT(IN) :: ALE_CONNECTIVITY
150 INTEGER,
INTENT(IN) :: NE_NERCVOIS(*), NE_NESDVOIS(*), NE_LERCVOIS(*), NE_LESDVOIS(*)
151 DOUBLE PRECISION,
INTENT(INOUT) :: WFEXT
155 INTEGER I, N, ISK, LCOD, NINDX1, NINDX2,INDX1(1024), INDX2(1024), SIZEN
156 DOUBLE PRECISION VDT2
161 IF(imon > 0 .AND. itask == 0)
THEN
167 IF(
ale%SUB%IFSUB == 0)
THEN
171 IF(
ale%SUB%IALESUB /= 0)dt2=int(dt2s/dt2save)*dt2save
173 IF(iparit == 0)sizen = numnod
176 SELECT CASE (
ale%GRID%NWALE)
185 2 ale_connectivity%NN_CONNECT ,ale_connectivity%NALE ,nodft ,nodlt ,
186 3 nbrcvois,nbsdvois,lnrcvois ,lnsdvois )
195 2 ale_connectivity%NN_CONNECT ,ale_connectivity%NALE ,nodft ,nodlt ,
196 3 nbrcvois ,nbsdvois,lnrcvois,lnsdvois )
206 2 ale_connectivity%NALE ,iparg ,ixs ,wb ,
207 3 iad_elem,fr_elem,fr_nbcc ,sizen,adsky,
208 4 procne ,fsky ,fsky ,iads )
216 CALL wlag(v,w,ale_connectivity%NALE)
228 2 ale_connectivity%NALE ,iparg ,ixs ,wb ,
229 3 iad_elem,fr_elem,fr_nbcc ,sizen,adsky ,
230 4 procne ,fsky ,fsky ,iads ,wb(1+3*numnod),
236 2 ale_connectivity%NALE ,iparg ,ixq ,wb ,
237 3 iad_elem ,fr_elem ,fr_nbcc ,sizen ,adsky ,
238 4 procne ,fsky ,fsky ,iadq ,wb(1+3*numnod),
250 2 ale_connectivity%NN_CONNECT ,ale_connectivity%NALE ,nodft , nodlt ,
251 3 nbrcvois ,nbsdvois ,lnrcvois, lnsdvois,
252 4 skew ,iskew ,icodt)
263 2 ale_connectivity%NE_CONNECT, ale_connectivity%NALE ,nodft , nodlt ,itask ,
264 3 ne_nercvois , ne_nesdvois ,ne_lercvois
265 4 elbuf_tab , iparg ,ixs , ixq)
274 1 x ,v ,w ,ms ,ale_connectivity%NALE,
275 2 nodft ,nodlt ,weight ,numnod ,dt1 ,
276 3 sx ,sv ,sw ,nspmd )
284 CALL alew8(sv, sw, v ,w, nodft, nodlt, numnod, ale_connectivity%NALE)
293 IF (itask == 0)
CALL wlag(v,w,ale_connectivity%NALE)
298 IF(imon > 0 .AND. itask == 0)
CALL stoptime(timers,5)
302 1
CALL wpor(geo,nodpor ,x ,v ,vr ,
303 2 w ,ale_connectivity%NALE,nporgeo )
307 IF(imon > 0 .AND. itask == 0)
CALL startime(timers
311 DO n = i,
min(numnod,i+1023)
312 IF(ale_connectivity%NALE(n) /= 0)
THEN
319 lcod=icodt(n+numnod+numnod)
327 CALL bcs2v(nindx1,indx1,iskew,icodt(numnod+1),w,skew)
330 CALL bcs3v(nindx2,indx2,iskew,icodt(2*numnod+1),w
333 IF(imon > 0 .AND. itask == 0)
CALL stoptime(timers,4)
338 IF(imon > 0 .AND. itask == 0)
CALL startime(timers,2)
343 4 pm ,ale_connectivity%NALE ,intbuf_tab)
344 IF(imon > 0 .AND. itask == 0)
CALL stoptime(timers,2)
350 IF(imon > 0 .AND. itask == 0)
CALL startime(timers,5)
352 IF(x(2,i)+dt2*w(2,i) >= zero)cycle
356 IF(imon > 0 .AND. itask == 0)
CALL stoptime(timers,5)
362 IF(imon > 0 .AND. itask == 0)
CALL startime(timers,4)
363 CALL alelin(nalelk,linale,w,weight,igrnod)
364 IF(imon > 0 .AND. itask == 0)
CALL stoptime(timers,4)
370 IF(imon > 0 .AND. itask == 0)
CALL startime(timers,5)
372 IF(x(2,i)+dt2*w(2,i) >= zero)cycle
376 IF(imon > 0 .AND. itask == 0)
CALL stoptime(timers,5)
382 IF(imon > 0 .AND. itask == 0)
CALL startime(timers,4)
385 2 rwbuf ,nprw(1+nnprw*nrwall),nprw ,python ,
386 3 ms ,fsav(1,ninter+1),
387 4 ixs ,ixq ,elbuf_tab ,iparg ,
388 5 pm ,tf ,npf ,weight ,
389 6 iad_elem ,fr_elem ,fr_wall )
390 IF(imon > 0.AND. itask == 0)
CALL stoptime(timers,4)
396 CALL laser1(las ,xlas ,ms ,x ,v ,
397 . w ,wa ,iparg ,ixq ,pm ,
398 . tf ,npf ,elbuf_tab,wfext)
406 IF(impose_dr /= 0 .AND. iroddl /= 0)
THEN
407#include "vectorize.inc"
409 dr(1,n)=dr(1,n)+dt2*vr(1,n)
410 dr(2,n)=dr(2,n)+dt2*vr(2,n)
411 dr(3,n)=dr(3,n)+dt2*vr(3,n)
418 IF(imon > 0 .AND. itask == 0)
CALL startime(timers,5)
422 IF (.NOT. multi_fvm%IS_USED)
THEN
424#include "vectorize.inc"
427 ddp(1,n) = ddp(1,n)+vdt2
429 xdp(1,n) = xdp(1,n)+vdt2
433 ddp(2,n) = ddp(2,n)+vdt2
435 xdp(2,n) = xdp(2,n)+vdt2
439 ddp(3,n) = ddp(3,n)+vdt2
441 xdp(3,n) = xdp(3,n)+vdt2
445#include "vectorize.inc"
464 IF(imon > 0 .AND. itask
THEN
subroutine alewdx(timers, geo, x, d, v, vr, w, wa, wb, skew, pm, xlas, ms, fsav, a, tf, rwbuf, dt2save, python, iparg, ixs, ixq, nodpor, iskew, icodt, elbuf_tab, npf, linale, nprw, las, ipari, nodft, nodlt, itask, iad_elem, fr_elem, nbrcvois, nbsdvois, lnrcvois, lnsdvois, weight, adsky, fsky, iads, fr_wall, nporgeo, procne, fr_nbcc, iadq, xdp, igrnod, dr, intbuf_tab, multi_fvm, ale_connectivity, ddp, ne_nercvois, ne_nesdvois, ne_lercvois, ne_lesdvois, xcell, xface, wfext)