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

Go to the source code of this file.

Functions/Subroutines

subroutine admnorm4 (n, ixc, x)
subroutine admnorm3 (n, ixtg, x)

Function/Subroutine Documentation

◆ admnorm3()

subroutine admnorm3 ( integer n,
integer, dimension(nixtg,*) ixtg,
x )

Definition at line 109 of file admnorm.F.

110C-----------------------------------------------
111C M o d u l e s
112C-----------------------------------------------
113 USE remesh_mod
114 use element_mod , only : nixtg
115C-----------------------------------------------
116C I m p l i c i t T y p e s
117C-----------------------------------------------
118#include "implicit_f.inc"
119#include "comlock.inc"
120C-----------------------------------------------
121C D u m m y A r g u m e n t s
122C-----------------------------------------------
123 INTEGER N, IXTG(NIXTG,*)
124 my_real
125 . x(3,*)
126C-----------------------------------------------
127C L o c a l V a r i a b l e s
128C-----------------------------------------------
129 INTEGER N1,N2,N3
130 my_real
131 . x12,y12,z12,x13,y13,z13,nx,ny,nz,aaa
132C-----------------------------------------------
133 n1=ixtg(2,n)
134 n2=ixtg(3,n)
135 n3=ixtg(4,n)
136
137 tagnod(n1)=1
138 tagnod(n2)=1
139 tagnod(n3)=1
140
141 x13 = x(1,n3) - x(1,n1)
142 y13 = x(2,n3) - x(2,n1)
143 z13 = x(3,n3) - x(3,n1)
144
145 x12 = x(1,n2) - x(1,n1)
146 y12 = x(2,n2) - x(2,n1)
147 z12 = x(3,n2) - x(3,n1)
148
149 nx = y12*z13 - z12*y13
150 ny = z12*x13 - x12*z13
151 nz = x12*y13 - y12*x13
152
153 aaa=one/max(em30,sqrt(nx*nx+ny*ny+nz*nz))
154 nx = nx * aaa
155 ny = ny * aaa
156 nz = nz * aaa
157
158 nodnorm(1,n1)=nodnorm(1,n1)+nx
159 nodnorm(2,n1)=nodnorm(2,n1)+ny
160 nodnorm(3,n1)=nodnorm(3,n1)+nz
161C
162 nodnorm(1,n2)=nodnorm(1,n2)+nx
163 nodnorm(2,n2)=nodnorm(2,n2)+ny
164 nodnorm(3,n2)=nodnorm(3,n2)+nz
165C
166 nodnorm(1,n3)=nodnorm(1,n3)+nx
167 nodnorm(2,n3)=nodnorm(2,n3)+ny
168 nodnorm(3,n3)=nodnorm(3,n3)+nz
169
170 RETURN
#define my_real
Definition cppsort.cpp:32
#define max(a, b)
Definition macros.h:21
integer, dimension(:), allocatable tagnod
Definition remesh_mod.F:77

◆ admnorm4()

subroutine admnorm4 ( integer n,
integer, dimension(nixc,*) ixc,
x )

Definition at line 31 of file admnorm.F.

32C-----------------------------------------------
33C M o d u l e s
34C-----------------------------------------------
35 USE remesh_mod
36 use element_mod , only : nixc
37C-----------------------------------------------
38C I m p l i c i t T y p e s
39C-----------------------------------------------
40#include "implicit_f.inc"
41#include "comlock.inc"
42C-----------------------------------------------
43C D u m m y A r g u m e n t s
44C-----------------------------------------------
45 INTEGER N, IXC(NIXC,*)
47 . x(3,*)
48C-----------------------------------------------
49C L o c a l V a r i a b l e s
50C-----------------------------------------------
51 INTEGER SON,LEVEL,IP,NLEV,N1,N2,N3,N4
53 . x13,y13,z13,x24,y24,z24,nx,ny,nz,aaa
54C-----------------------------------------------
55 n1=ixc(2,n)
56 n2=ixc(3,n)
57 n3=ixc(4,n)
58 n4=ixc(5,n)
59
60 tagnod(n1)=1
61 tagnod(n2)=1
62 tagnod(n3)=1
63 tagnod(n4)=1
64
65 x13 = x(1,n3) - x(1,n1)
66 y13 = x(2,n3) - x(2,n1)
67 z13 = x(3,n3) - x(3,n1)
68
69 x24 = x(1,n4) - x(1,n2)
70 y24 = x(2,n4) - x(2,n2)
71 z24 = x(3,n4) - x(3,n2)
72
73 nx = y13*z24 - z13*y24
74 ny = z13*x24 - x13*z24
75 nz = x13*y24 - y13*x24
76
77 aaa=one/max(em30,sqrt(nx*nx+ny*ny+nz*nz))
78 nx = nx * aaa
79 ny = ny * aaa
80 nz = nz * aaa
81
82 nodnorm(1,n1)=nodnorm(1,n1)+nx
83 nodnorm(2,n1)=nodnorm(2,n1)+ny
84 nodnorm(3,n1)=nodnorm(3,n1)+nz
85C
86 nodnorm(1,n2)=nodnorm(1,n2)+nx
87 nodnorm(2,n2)=nodnorm(2,n2)+ny
88 nodnorm(3,n2)=nodnorm(3,n2)+nz
89C
90 nodnorm(1,n3)=nodnorm(1,n3)+nx
91 nodnorm(2,n3)=nodnorm(2,n3)+ny
92 nodnorm(3,n3)=nodnorm(3,n3)+nz
93C
94 nodnorm(1,n4)=nodnorm(1,n4)+nx
95 nodnorm(2,n4)=nodnorm(2,n4)+ny
96 nodnorm(3,n4)=nodnorm(3,n4)+nz
97
98 RETURN