OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
fvinjnormal_mod Module Reference

Functions/Subroutines

subroutine fvinjnormal (ibuf, elem, ixc, ixtg, eltg, nel, ilvout, minus_sign_reverse)

Function/Subroutine Documentation

◆ fvinjnormal()

subroutine fvinjnormal_mod::fvinjnormal ( integer, dimension(*) ibuf,
integer, dimension(3,*) elem,
integer, dimension(nixc,*) ixc,
integer, dimension(nixtg,*) ixtg,
integer, dimension(*) eltg,
integer nel,
integer ilvout,
integer, dimension(nel) minus_sign_reverse )

Definition at line 35 of file fvinjnormal.F.

37C-----------------------------------------------
38C I m p l i c i t T y p e s
39C-----------------------------------------------
40#include "implicit_f.inc"
41C-----------------------------------------------
42C C o m m o n B l o c k s
43C-----------------------------------------------
44#include "com04_c.inc"
45#include "units_c.inc"
46C-----------------------------------------------
47C D u m m y A r g u m e n t s
48C-----------------------------------------------
49 INTEGER IXC(NIXC,*), IXTG(NIXTG,*)
50 INTEGER IBUF(*), ELEM(3,*), ELTG(*)
51 INTEGER NEL, ILVOUT
52 INTEGER MINUS_SIGN_REVERSE(NEL)
53C-----------------------------------------------
54C L o c a l V a r i a b l e s
55C-----------------------------------------------
56 INTEGER I, J, K, I1, I2, I3
57 INTEGER N1, N2, N3, N4, IEL, IREVERSE
58 CHARACTER*6 TITL
59C-----------------------------------------------------------------------
60C REDEFINE INTERNAL TRIANGLE FOR NORMAL CONSISTENCY FOR INJECTORS
61C-----------------------------------------------------------------------
62 IF (ilvout >= 2) WRITE(iout,1000)
63 DO i=1,nel
64 i1=elem(1,i)
65 i2=elem(2,i)
66 i3=elem(3,i)
67 i1=ibuf(i1)
68 i2=ibuf(i2)
69 i3=ibuf(i3)
70 iel=eltg(i)
71 ireverse=0
72 IF (iel<=numelc) THEN
73 n1 =ixc(2,iel)
74 n2 =ixc(3,iel)
75 n3 =ixc(4,iel)
76 n4 =ixc(5,iel)
77 k =ixc(nixc,iel)
78 titl='SHELL:'
79 IF(i1==n1) THEN
80 IF(i2==n3) THEN
81 IF(i3==n2) ireverse=1
82 ELSEIF(i2==n4) THEN
83 ireverse=1
84 ENDIF
85 ELSEIF(i1==n2) THEN
86 IF(i2==n4) THEN
87 IF(i3==n3) ireverse=1
88 ELSEIF(i2==n1) THEN
89 ireverse=1
90 ENDIF
91 ELSEIF(i1==n3) THEN
92 IF(i2==n1) THEN
93 IF(i3==n4) ireverse=1
94 ELSEIF(i2==n2) THEN
95 ireverse=1
96 ENDIF
97 ELSEIF(i1==n4) THEN
98 IF(i2==n2) THEN
99 IF(i3==n1) ireverse=1
100 ELSEIF(i2==n3) THEN
101 ireverse=1
102 ENDIF
103 ENDIF
104 ELSEIF (iel>numelc) THEN
105 j=iel-numelc
106 n1 =ixtg(2,j)
107 n2 =ixtg(3,j)
108 n3 =ixtg(4,j)
109 k =ixtg(nixtg,j)
110 titl='SH3N: '
111 IF(i1==n1.AND.i2==n3) ireverse=1
112 IF(i1==n2.AND.i2==n1) ireverse=1
113 IF(i1==n3.AND.i2==n2) ireverse=1
114 ENDIF
115C
116 IF(ireverse==1 .AND. minus_sign_reverse(i)==0) THEN
117 i2=elem(2,i)
118 i3=elem(3,i)
119 elem(2,i)=i3
120 elem(3,i)=i2
121 IF(ilvout >= 2) THEN
122 WRITE(iout,1100) i,titl,k
123 ENDIF
124 ENDIF
125C
126 ENDDO
127C---+----1----+----2----+----3----+----4----+----5----+----6----+----7--
128 1000 FORMAT(/5x,'FVMBAG INTERNAL SURFACE ELEMENTS RENUMBERED'
129 . /5x,'---------------------------------------------')
130 1100 FORMAT( 5x,'TRIANGLE',i8,5x,a,i8)
131 RETURN