31 USE ebcs_mod
32
33
34
35#include "implicit_f.inc"
36
37
38
39#include "com08_c.inc"
40
41
42
43 INTEGER LISTE(*),NOD
45 . v(3,*),a(3,*),v0(3,nod),reso(3,nod)
46 TYPE(t_ebcs_iniv), INTENT(IN) :: EBCS
47
48
49
50 INTEGER I,N
51 my_real lcar,alp,alpdt,ax,ay,az,c
52
53 IF(tt==zero)THEN
54 DO i=1,nod
55 n=liste(i)
56 reso(1,i)=a(1,n)
57 reso(2,i)=a(2,n)
58 reso(3,i)=a(3,n)
59 ENDDO
60 ENDIF
61
62 c=ebcs%c
63 lcar=ebcs%lcar
64 alp=zero
65 IF(lcar>zero)alp=c/lcar
66 alpdt=alp*dt1
67
68 IF(alp>zero)THEN
69 DO i=1,nod
70 n=liste(i)
71 ax=reso(1,i)+alpdt*(a(1,n)-reso(1,i))
72 ay=reso(2,i)+alpdt*(a(2,n)-reso(2,i))
73 az=reso(3,i)+alpdt*(a(3,n)-reso(3,i))
74
75 reso(1,i)=ax
76 reso(2,i)=ay
77 reso(3,i)=az
78
79
80
81
82
83
84
85
86 a(1,n)=a(1,n)-ax+alp*(v0(1,i)-v(1,n))
87 a(2,n)=a(2,n)-ay+alp*(v0(2,i)-v(2,n))
88 a(3,n)=a(3,n)-az+alp*(v0(3,i)-v(3,n))
89 ENDDO
90 ELSE
91 DO i=1,nod
92 n=liste(i)
93 a(1,n)=zero
94 a(2,n)=zero
95 a(3,n)=zero
96 v(1,n)=v0(1,i)
97 v(2,n)=v0(2,i)
98 v(3,n)=v0(3,i)
99 ENDDO
100 ENDIF
101 RETURN