OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
surf_area.F File Reference
#include "implicit_f.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine surf_area (x, nn, surf_nodes, area, numnod, n2d)

Function/Subroutine Documentation

◆ surf_area()

subroutine surf_area ( dimension(3,numnod), intent(in) x,
integer, intent(in) nn,
integer, dimension(nn,4), intent(in) surf_nodes,
intent(inout) area,
integer, intent(in) numnod,
integer, intent(in) n2d )
Parameters
[in]surf_nodesFACE NODES (NN FACES, 3D:4nodes, 2D:2nodes only are used)

Definition at line 28 of file surf_area.F.

29C-----------------------------------------------
30C I m p l i c i t T y p e s
31C-----------------------------------------------
32#include "implicit_f.inc"
33C-----------------------------------------------
34C D u m m y A r g u m e n t s
35C-----------------------------------------------
36 INTEGER,INTENT(IN) :: NN,NUMNOD
37 INTEGER,INTENT(IN) :: SURF_NODES(NN,4) !< FACE NODES (NN FACES, 3D:4nodes, 2D:2nodes only are used)
38 my_real,INTENT(IN) :: x(3,numnod) !< coordinates x,y,z for each node
39 my_real,INTENT(INOUT) :: area !< surface area
40 INTEGER,INTENT(IN) :: N2D !0:3D, 1:2d-axi 2:2d-plane
41C-----------------------------------------------
42C L o c a l V a r i a b l e s
43C-----------------------------------------------
44 INTEGER :: I,NOD1,NOD2,NOD3,NOD4
45 my_real :: x13, y13, z13, x24, y24, z24,n1, n2, n3
46 my_real :: y12, z12
47C-----------------------------------------------
48C S o u r c e L i n e s
49C-----------------------------------------------
50 area = zero
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
68 area = area * half
69 ELSE
70 !2D case
71 DO i=1,nn
72 nod1=surf_nodes(i,1)
73 nod2=surf_nodes(i,2)
74 !vector N1-N2 (2d:0,y,z)
75 y12= x(2,nod1)-x(2,nod2)
76 z12= x(3,nod1)-x(3,nod2)
77 area = area + sqrt(y12*y12+z12*z12)
78 ENDDO
79 ENDIF
80C-----------------------------------------------
81 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine area(d1, x, x2, y, y2, eint, stif0)