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

Go to the source code of this file.

Functions/Subroutines

subroutine qrcoor2 (x, ixq, ngl, mxt, pid, ix1, ix2, ix3, ix4, y1, y2, y3, y4, z1, z2, z3, z4, sy, sz, ty, tz, e1y, e1z, e2y, e2z)

Function/Subroutine Documentation

◆ qrcoor2()

subroutine qrcoor2 ( x,
integer, dimension(nixq,*) ixq,
integer, dimension(*) ngl,
integer, dimension(*) mxt,
integer, dimension(*) pid,
integer, dimension(*) ix1,
integer, dimension(*) ix2,
integer, dimension(*) ix3,
integer, dimension(*) ix4,
y1,
y2,
y3,
y4,
z1,
z2,
z3,
z4,
sy,
sz,
ty,
tz,
e1y,
e1z,
e2y,
e2z )

Definition at line 29 of file qrcoor2.F.

35 use element_mod , only : nixq
36C-----------------------------------------------
37C I m p l i c i t T y p e s
38C-----------------------------------------------
39#include "implicit_f.inc"
40C-----------------------------------------------
41C G l o b a l P a r a m e t e r s
42C-----------------------------------------------
43#include "mvsiz_p.inc"
44C-----------------------------------------------
45C C o m m o n B l o c k s
46C-----------------------------------------------
47#include "vect01_c.inc"
48C-----------------------------------------------
49C D u m m y A r g u m e n t s
50C-----------------------------------------------
51 INTEGER IXQ(NIXQ,*), NGL(*), MXT(*), PID(*)
52 INTEGER IX1(*), IX2(*), IX3(*), IX4(*)
53C REAL
55 . x(3,*),e1y(*),e1z(*),e2y(*),e2z(*)
57 . y1(*), y2(*), y3(*), y4(*),
58 . z1(*), z2(*), z3(*), z4(*)
59C-----------------------------------------------
60C L o c a l V a r i a b l e s
61C-----------------------------------------------
62 INTEGER I
63C REAL
65 . sy(mvsiz) ,sz(mvsiz) ,
66 . ty(mvsiz) ,tz(mvsiz), suma,cs,ct
67C--------------------------------------------------
68C connectivities and material
69C--------------------------------------------------
70 DO i=lft,llt
71 mxt(i)=ixq(1,i)
72 ix1(i)=ixq(2,i)
73 ix2(i)=ixq(3,i)
74 ix3(i)=ixq(4,i)
75 ix4(i)=ixq(5,i)
76 pid(i)=ixq(6,i)
77 ngl(i)=ixq(nixq,i)
78 END DO
79C
80C----------------------------
81C NODE COORDINATES |
82C----------------------------
83 DO i=lft,llt
84 y1(i)=x(2,ix1(i))
85 z1(i)=x(3,ix1(i))
86 y2(i)=x(2,ix2(i))
87 z2(i)=x(3,ix2(i))
88 y3(i)=x(2,ix3(i))
89 z3(i)=x(3,ix3(i))
90 y4(i)=x(2,ix4(i))
91 z4(i)=x(3,ix4(i))
92 END DO
93C---------------------------------------
94C LOCAL REFERENCE FRAME (ISOPARAMETRIC)
95C---------------------------------------
96 DO i=lft,llt
97 sy(i)=half*(y2(i)+y3(i)-y1(i)-y4(i))
98 sz(i)=half*(z2(i)+z3(i)-z1(i)-z4(i))
99 ty(i)=half*(y3(i)+y4(i)-y1(i)-y2(i))
100 tz(i)=half*(z3(i)+z4(i)-z1(i)-z2(i))
101 END DO
102C-----------
103C convected frame ORTHOGONALIZED
104C full integ: Same than the shell
105C-----------
106 DO i=lft,llt
107 ct = ty(i)*ty(i)+tz(i)*tz(i)
108 cs = sy(i)*sy(i)+sz(i)*sz(i)
109 IF(cs /= zero) THEN
110 suma = sqrt(ct/max(em20,cs))
111 e1y(i) = sy(i)*suma + tz(i)
112 e1z(i) = sz(i)*suma - ty(i)
113 ELSEIF(ct /= zero)THEN
114 suma = sqrt(cs/max(em20,ct))
115 e1y(i) = sy(i) + tz(i)*suma
116 e1z(i) = sz(i) - ty(i)*suma
117 END IF
118 suma=sqrt(e1y(i)**2+e1z(i)**2)
119 suma=one/max(suma,em20)
120 e1y(i)=e1y(i)*suma
121 e1z(i)=e1z(i)*suma
122 e2y(i)=-e1z(i)
123 e2z(i)= e1y(i)
124 ENDDO
125C-----------
126 RETURN
#define my_real
Definition cppsort.cpp:32
#define max(a, b)
Definition macros.h:21