OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
iqel02.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| iqel02 ../engine/source/ale/ale2d/iqel02.F
25!||--- called by ------------------------------------------------------
26!|| intal2 ../engine/source/ale/inter/intal2.F
27!||====================================================================
28 SUBROUTINE iqel02(X,IRECT,LMSR,MSR,NSV,ILOC,IRTL,
29 + NSN,NSEG,CRST,NOR)
30C-----------------------------------------------
31C I m p l i c i t T y p e s
32C-----------------------------------------------
33#include "implicit_f.inc"
34C-----------------------------------------------
35C C o m m o n B l o c k s
36C-----------------------------------------------
37#include "com04_c.inc"
38C-----------------------------------------------
39C D u m m y A r g u m e n t s
40C-----------------------------------------------
41 INTEGER,INTENT(IN) :: NSN
42 INTEGER,INTENT(IN) :: IRECT(4,*), LMSR(*), MSR(*), NSV(*), ILOC(*), IRTL(*),NSEG(*)
43 my_real,INTENT(IN) :: x(3,numnod), crst(2,*)
44 my_real,INTENT(INOUT) :: nor(3,*)
45C-----------------------------------------------
46C L o c a l V a r i a b l e s
47C-----------------------------------------------
48 INTEGER II, I, J, L, M1, M2, LK, NUM, NPT, JJ
49 my_real n2, n3, ym1, ym2, zm1, zm2, ss, sck, xmg
50C-----------------------------------------------
51C S o u r c e L i n e s
52C-----------------------------------------------
53 DO ii=1,nsn
54 i = nsv(ii)
55 j = iloc(ii)
56 l = irtl(ii)
57 m1 = msr(irect(1,l))
58 m2 = msr(irect(2,l))
59 ym1 = x(2,m1)
60 ym2 = x(2,m2)
61 zm1 = x(3,m1)
62 zm2 = x(3,m2)
63 !C-------------------------
64 !C NORMAL VECTOR
65 !C-------------------------
66 n2 = zm1-zm2
67 n3 = ym2-ym1
68 ss = crst(1,ii)
69 sck = abs(ss)-one
70 IF(abs(sck) <= fiveem2) THEN
71 !C----------------------------------
72 !C EXTREMITIES
73 !C WEIGHTED MEAN VALUES FROM NORMAL VECTORS
74 !C----------------------------------
75 lk=l
76 num=nseg(j+1)-nseg(j)
77 IF(num == 2) THEN
78 npt=nseg(j)-1
79 DO jj=1,num
80 l=lmsr(npt+jj)
81 IF(l /= lk) THEN
82 m1 = msr(irect(1,l))
83 m2 = msr(irect(2,l))
84 ym1 = x(2,m1)
85 ym2 = x(2,m2)
86 zm1 = x(3,m1)
87 zm2 = x(3,m2)
88 n2 = n2+zm1-zm2
89 n3 = n3+ym2-ym1
90 ENDIF
91 ENDDO !next JJ
92 ENDIF
93 ENDIF
94 xmg = sqrt(n2*n2+n3*n3)
95 n2 = n2/xmg
96 n3 = n3/xmg
97 nor(1,ii) = zero
98 nor(2,ii) = n2
99 nor(3,ii) = n3
100 ENDDO !next II
101C-----------------------------------------------
102 RETURN
103 END
#define my_real
Definition cppsort.cpp:32
subroutine iqel02(x, irect, lmsr, msr, nsv, iloc, irtl, nsn, nseg, crst, nor)
Definition iqel02.F:30