31
32
33
34#include "implicit_f.inc"
35
36
37
38 my_real x(3,*),al(*) ,vel(3,*),v(3,*)
39 INTEGER NC(5,*),NODCUT,NELCUT,IVOIS(2,*)
40
41 my_real x13,y13,z13,x24,y24,z24,xx,yy,zz,s,un6
42 INTEGER I,J,N1,N2,N3,N4
43 REAL R4
44
45 un6=one_over_6
46
47 DO i=1,nodcut
48 n1=ivois(1,i)
49 n2=ivois(2,i)
50 DO j=1,3
51 v(j,i)=al(i)*vel(j,n2)+(1.-al(i))*vel(j,n1)
52 ENDDO
53 ENDDO
54
55 DO i=1,nodcut
56 al(i)=zero
57 ENDDO
58 DO i=1,nelcut
59 n1=nc(1,i)
60 n2=nc(2,i)
61 n3=nc(3,i)
62 n4=nc(4,i)
63 x13=x(1,n3)-x(1,n1)
64 y13=x(2,n3)-x(2,n1)
65 z13=x(3,n3)-x(3,n1)
66 x24=x(1,n4)-x(1,n2)
67 y24=x(2,n4)-x(2,n2)
68 z24=x(3,n4)-x(3,n2)
69 xx=y13*z24-z13*y24
70 yy=z13*x24-x13*z24
71 zz=x13*y24-y13*x24
72 IF(n3==n4)THEN
73 s=un6
74 ELSE
75 s=one_over_8
76 ENDIF
77
78 al(n1)=al(n1)+s*(v(1,n1)*xx+v(2,n1)*yy+v(3,n1)*zz)
79 al(n2)=al(n2)+s*(v(1,n2)*xx+v(2,n2)*yy+v(3,n2)*zz)
80 al(n3)=al(n3)+s*(v(1,n3)*xx+v(2,n3)*yy+v(3,n3)*zz)
81 IF(n3/=n4)al(n4)=al(n4)+s*(v(1,n4)*xx+v(2,n4)*yy+v(3,n4)*zz)
82 ENDDO
83 DO i=1,nodcut
84 r4 = al(i)
86 ENDDO
87
88 RETURN
void write_r_c(float *w, int *len)