OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
smallg3.F File Reference
#include "implicit_f.inc"
#include "scr18_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine smallg3 (sav, offg, wxx, wyy, wzz, r11, r12, r13, r21, r22, r23, r31, r32, r33, nel, ismstr, jcvt)

Function/Subroutine Documentation

◆ smallg3()

subroutine smallg3 ( double precision, dimension(nel,21) sav,
offg,
wxx,
wyy,
wzz,
r11,
r12,
r13,
r21,
r22,
r23,
r31,
r32,
r33,
integer nel,
integer, intent(in) ismstr,
integer, intent(in) jcvt )

Definition at line 30 of file smallg3.F.

36C-----------------------------------------------
37C I m p l i c i t T y p e s
38C-----------------------------------------------
39#include "implicit_f.inc"
40C-----------------------------------------------
41C C o m m o n B l o c k s
42C-----------------------------------------------
43#include "scr18_c.inc"
44C-----------------------------------------------
45C D u m m y A r g u m e n t s
46C-----------------------------------------------
47 INTEGER, INTENT(IN) :: ISMSTR
48 INTEGER, INTENT(IN) :: JCVT
49 INTEGER NEL
51 . r11(*),r12(*),r13(*),
52 . r21(*),r22(*),r23(*),
53 . r31(*),r32(*),r33(*),
54 . offg(*),wxx(*),wyy(*),wzz(*)
55 double precision
56 . sav(nel,21)
57C-----------------------------------------------
58C L o c a l V a r i a b l e s
59C-----------------------------------------------
60 INTEGER I,j
61C REAL
62 double precision
63 . x , y, z ,dv ,wxxg,wyyg,wzzg
64C-----------------------------------------------
65C-----------------------------
66C ROTATION RBY DES COORDONNEES POUR SMALL STRAIN
67C-----------------------------
68C------------Wxx,y,z from local system to global
69 IF (jcvt > 0 ) THEN
70 DO i=1,nel
71 wxxg=r11(i)*wxx(i)+r12(i)*wyy(i)+r13(i)*wzz(i)
72 wyyg=r21(i)*wxx(i)+r22(i)*wyy(i)+r23(i)*wzz(i)
73 wzzg=r31(i)*wxx(i)+r32(i)*wyy(i)+r33(i)*wzz(i)
74 wxx(i) = wxxg
75 wyy(i) = wyyg
76 wzz(i) = wzzg
77 END DO
78 END IF
79 IF (ismstr==11) THEN
80C IF(ISMSTR==11.AND.NCYCLE>1)THEN
81C----SAV : (ismstr=10,11) is differently saved to Ismstr=1
82 DO i=1,nel
83C-----------------------------------------------
84 IF(offg(i)==zero) cycle
85 x=sav(i,1)
86 y=sav(i,8)
87 z=sav(i,15)
88 sav(i,1) = x - y*wzz(i) + z*wyy(i)
89 sav(i,8) = y - z*wxx(i) + x*wzz(i)
90 sav(i,15)= z - x*wyy(i) + y*wxx(i)
91C
92 x=sav(i,2)
93 y=sav(i,9)
94 z=sav(i,16)
95 sav(i,2) = x - y*wzz(i) + z*wyy(i)
96 sav(i,9) = y - z*wxx(i) + x*wzz(i)
97 sav(i,16)= z - x*wyy(i) + y*wxx(i)
98C
99 x=sav(i,3)
100 y=sav(i,10)
101 z=sav(i,17)
102 sav(i,3) = x - y*wzz(i) + z*wyy(i)
103 sav(i,10) = y - z*wxx(i) + x*wzz(i)
104 sav(i,17) = z - x*wyy(i) + y*wxx(i)
105C
106 x=sav(i,4)
107 y=sav(i,11)
108 z=sav(i,18)
109 sav(i,4) = x - y*wzz(i) + z*wyy(i)
110 sav(i,11) = y - z*wxx(i) + x*wzz(i)
111 sav(i,18) = z - x*wyy(i) + y*wxx(i)
112C
113 x=sav(i,5)
114 y=sav(i,12)
115 z=sav(i,19)
116 sav(i,5) = x - y*wzz(i) + z*wyy(i)
117 sav(i,12) = y - z*wxx(i) + x*wzz(i)
118 sav(i,19) = z - x*wyy(i) + y*wxx(i)
119C
120 x=sav(i,6)
121 y=sav(i,13)
122 z=sav(i,20)
123 sav(i,6) = x - y*wzz(i) + z*wyy(i)
124 sav(i,13) = y - z*wxx(i) + x*wzz(i)
125 sav(i,20) = z - x*wyy(i) + y*wxx(i)
126C
127 x=sav(i,7)
128 y=sav(i,14)
129 z=sav(i,21)
130 sav(i,7) = x - y*wzz(i) + z*wyy(i)
131 sav(i,14) = y - z*wxx(i) + x*wzz(i)
132 sav(i,21) = z - x*wyy(i) + y*wxx(i)
133 ENDDO
134 ELSEIF(ismstr==1.OR.
135 . ((ismstr==2.OR.ismstr==12).AND.idtmin(1)==3))THEN
136 DO i=1,nel
137 IF(offg(i)>one)THEN
138C-----------------------------------------------
139 x=sav(i,1)
140 y=sav(i,2)
141 z=sav(i,3)
142 sav(i,1) = x - y*wzz(i) + z*wyy(i)
143 sav(i,2) = y - z*wxx(i) + x*wzz(i)
144 sav(i,3) = z - x*wyy(i) + y*wxx(i)
145C
146 x=sav(i,4)
147 y=sav(i,5)
148 z=sav(i,6)
149 sav(i,4) = x - y*wzz(i) + z*wyy(i)
150 sav(i,5) = y - z*wxx(i) + x*wzz(i)
151 sav(i,6) = z - x*wyy(i) + y*wxx(i)
152C
153 x=sav(i,7)
154 y=sav(i,8)
155 z=sav(i,9)
156 sav(i,7) = x - y*wzz(i) + z*wyy(i)
157 sav(i,8) = y - z*wxx(i) + x*wzz(i)
158 sav(i,9) = z - x*wyy(i) + y*wxx(i)
159C
160 x=sav(i,10)
161 y=sav(i,11)
162 z=sav(i,12)
163 sav(i,10) = x - y*wzz(i) + z*wyy(i)
164 sav(i,11) = y - z*wxx(i) + x*wzz(i)
165 sav(i,12) = z - x*wyy(i) + y*wxx(i)
166C
167 x=sav(i,13)
168 y=sav(i,14)
169 z=sav(i,15)
170 sav(i,13) = x - y*wzz(i) + z*wyy(i)
171 sav(i,14) = y - z*wxx(i) + x*wzz(i)
172 sav(i,15) = z - x*wyy(i) + y*wxx(i)
173C
174 x=sav(i,16)
175 y=sav(i,17)
176 z=sav(i,18)
177 sav(i,16) = x - y*wzz(i) + z*wyy(i)
178 sav(i,17) = y - z*wxx(i) + x*wzz(i)
179 sav(i,18) = z - x*wyy(i) + y*wxx(i)
180C
181 x=sav(i,19)
182 y=sav(i,20)
183 z=sav(i,21)
184 sav(i,19) = x - y*wzz(i) + z*wyy(i)
185 sav(i,20) = y - z*wxx(i) + x*wzz(i)
186 sav(i,21) = z - x*wyy(i) + y*wxx(i)
187C
188 ENDIF
189 ENDDO
190 ENDIF
191C
192 RETURN
#define my_real
Definition cppsort.cpp:32