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 106 of file admnorm.F.

107C-----------------------------------------------
108C M o d u l e s
109C-----------------------------------------------
110 USE remesh_mod
111C-----------------------------------------------
112C I m p l i c i t T y p e s
113C-----------------------------------------------
114#include "implicit_f.inc"
115#include "comlock.inc"
116C-----------------------------------------------
117C D u m m y A r g u m e n t s
118C-----------------------------------------------
119 INTEGER N, IXTG(NIXTG,*)
120 my_real
121 . x(3,*)
122C-----------------------------------------------
123C L o c a l V a r i a b l e s
124C-----------------------------------------------
125 INTEGER N1,N2,N3
126 my_real
127 . x12,y12,z12,x13,y13,z13,nx,ny,nz,aaa
128C-----------------------------------------------
129 n1=ixtg(2,n)
130 n2=ixtg(3,n)
131 n3=ixtg(4,n)
132
133 tagnod(n1)=1
134 tagnod(n2)=1
135 tagnod(n3)=1
136
137 x13 = x(1,n3) - x(1,n1)
138 y13 = x(2,n3) - x(2,n1)
139 z13 = x(3,n3) - x(3,n1)
140
141 x12 = x(1,n2) - x(1,n1)
142 y12 = x(2,n2) - x(2,n1)
143 z12 = x(3,n2) - x(3,n1)
144
145 nx = y12*z13 - z12*y13
146 ny = z12*x13 - x12*z13
147 nz = x12*y13 - y12*x13
148
149 aaa=one/max(em30,sqrt(nx*nx+ny*ny+nz*nz))
150 nx = nx * aaa
151 ny = ny * aaa
152 nz = nz * aaa
153
154 nodnorm(1,n1)=nodnorm(1,n1)+nx
155 nodnorm(2,n1)=nodnorm(2,n1)+ny
156 nodnorm(3,n1)=nodnorm(3,n1)+nz
157c
158 nodnorm(1,n2)=nodnorm(1,n2)+nx
159 nodnorm(2,n2)=nodnorm(2,n2)+ny
160 nodnorm(3,n2)=nodnorm(3,n2)+nz
161c
162 nodnorm(1,n3)=nodnorm(1,n3)+nx
163 nodnorm(2,n3)=nodnorm(2,n3)+ny
164 nodnorm(3,n3)=nodnorm(3,n3)+nz
165
166 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 30 of file admnorm.F.

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