29
30
31
32#include "implicit_f.inc"
33
34
35
36 INTEGER,INTENT(IN) :: NN,NUMNOD
37 INTEGER,INTENT(IN) :: SURF_NODES(NN,4)
38 my_real,
INTENT(IN) :: x(3,numnod)
40 INTEGER,INTENT(IN) :: N2D
41
42
43
44 INTEGER :: I,NOD1,NOD2,NOD3,NOD4
45 my_real :: x13, y13, z13, x24, y24, z24,n1, n2, n3
47
48
49
51 IF(n2d == 0)THEN
52 DO i=1,nn
53 nod1=surf_nodes(i,1)
54 nod2=surf_nodes(i,2)
55 nod3=surf_nodes(i,3)
56 nod4=surf_nodes(i,4)
57 x13= x(1,nod3)-x(1,nod1)
58 y13= x(2,nod3)-x(2,nod1)
59 z13= x(3,nod3)-x(3,nod1)
60 x24= x(1,nod4)-x(1,nod2)
61 y24= x(2,nod4)-x(2,nod2)
62 z24= x(3,nod4)-x(3,nod2)
63 n1 = y13*z24-y24*z13
64 n2 = z13*x24-z24*x13
65 n3 = x13*y24-x24*y13
66 area =
area + sqrt(n1*n1+n2*n2+n3*n3)
67 ENDDO
69 ELSE
70
71 DO i=1,nn
72 nod1=surf_nodes(i,1)
73 nod2=surf_nodes(i,2)
74
75 y12= x(2,nod1)-x(2,nod2)
76 z12= x(3,nod1)-x(3,nod2)
78 ENDDO
79 ENDIF
80
81 RETURN
subroutine area(d1, x, x2, y, y2, eint, stif0)