31
32
33
34
35
36
37
38
39#include "implicit_f.inc"
40
41
42
43#include "param_c.inc"
44#include "com04_c.inc"
45#include "com08_c.inc"
46
47
48
49 INTEGER NODPOR(*), NALE(*), NPORGEO(*)
50 my_real geo(npropg,numgeo),x(3,numnod),v(3,numnod),vr(3,numnod),w(3,numnod)
51
52
53
54 INTEGER NAD,IG,N,IR,M,I,
55 my_real vg(3),v1x2,v2x1,v2x3,v3x2,v3x1,v1x3
56
57
58
59 nad=0
60 DO ig=1,numgeo
61 IF(int(geo(12,ig)) /= 15)cycle
62 n = nporgeo(ig)
63 IF(n == 0)cycle
64 ir=int(geo(33,ig))
65 IF(ir > 0)THEN
66 m=int(geo(29,ig))
67 vg(1)=vr(1,m)
68 vg(2)=vr(2,m)
69 vg(3)=vr(3,m)
70 DO i=nad+1,nad+n
71 jp=nodpor(i)
72 IF(iabs(nale(jp)) == 1)THEN
73 v1x2=vg(1)*(x(2,jp)-x(2,m))
74 v2x1=vg(2)*(x(1,jp)-x(1,m))
75 v2x3=vg(2)*(x(3,jp)-x(3,m))
76 v3x2=vg(3)*(x(2,jp)-x(2,m))
77 v3x1=vg(3)*(x(1,jp)-x(1,m))
78 v1x3=vg(1)*(x(3,jp)-x(3,m))
79 w(1,jp)= v(1,m) + v2x3-v3x2-half*dt12*(vg(2)*v2x1+vg(3)*v3x1)
80 w(2,jp)= v(2,m) + v3x1-v1x3-half*dt12*(vg(3)*v3x2+vg(1)*v1x2)
81 w(3,jp)= v(3,m) + v1x2-v2x1-half*dt12*(vg(1)*v1x3+vg(2)*v2x3)
82 ENDIF
83 ENDDO
84 ENDIF
85 nad=nad+n
86 enddo
87
88 RETURN