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 28 of file qrcoor2.F.

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