OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
userin3.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!|| userin3 ../starter/source/elements/solid/solide/userin3.F
25!||--- called by ------------------------------------------------------
26!|| s4init3 ../starter/source/elements/solid/solide4/s4init3.F
27!|| sinit3 ../starter/source/elements/solid/solide/sinit3.F
28!||--- calls -----------------------------------------------------
29!|| srota6_m1 ../starter/source/output/anim/srota6_M1.F
30!||====================================================================
31 SUBROUTINE userin3(
32 . SIGSP ,SIGI ,UVAR ,EPS ,
33 . IX ,NIX ,NSIGI ,NUVAR ,NEL ,
34 . NSIGS ,IUSER ,IDEF ,STRAGLOB,JHBE ,
35 . IGTYP ,X ,BUFGAMA ,PT ,SIGB ,
36 . L_SIGB ,IMAT ,IPM ,BUFMAT ,PLA ,
37 . L_PLA )
38C-----------------------------------------------
39C I m p l i c i t T y p e s
40C-----------------------------------------------
41#include "implicit_f.inc"
42C-----------------------------------------------
43C C o m m o n B l o c k s
44C-----------------------------------------------
45#include "param_c.inc"
46#include "vect01_c.inc"
47#include "com01_c.inc"
48C-----------------------------------------------
49C D u m m y A r g u m e n t s
50C-----------------------------------------------
51 INTEGER IPM(NPROPMI,*)
52 INTEGER NIX, N, JPS,IUSER,NSIGS,IDEF,JHBE,IGTYP,L_SIGB,IMAT
53 INTEGER IX(NIX,*), NSIGI, NUVAR,NEL,STRAGLOB(*),PT(*)
54 INTEGER, INTENT(IN) :: L_PLA
55C REAL
56 my_real
57 . sigsp(nsigi,*),sigi(nsigs,nel),uvar(nel),
58 . eps(nel,6),x(3,*),bufgama(*),sigb(nel*l_sigb),bufmat(*)
59 my_real, INTENT(INOUT), DIMENSION(NEL*L_PLA) :: pla
60C-----------------------------------------------
61C L o c a l V a r i a b l e s
62C-----------------------------------------------
63 INTEGER I,J,IIP,JPT, II, JJ, IPT, IPP,IUS,IPSU,IPS,
64 . IFLAGINI,NVAR_TMP,IADB,NRATE
65 my_real
66 . gama(6),tens(6)
67C-----------------------------------------------
68C L o c a l V a r i a b l e s
69C-----------------------------------------------
70 INTEGER MA
71C-----------------------------------------------
72 DO i=lft,llt
73 IF (straglob(i) == 1 )THEN
74 IF(jcvt==2)THEN
75 gama(1)=bufgama(i )
76 gama(2)=bufgama(i + nel)
77 gama(3)=bufgama(i + 2*nel)
78 gama(4)=bufgama(i + 3*nel)
79 gama(5)=bufgama(i + 4*nel)
80 gama(6)=bufgama(i + 5*nel)
81 ELSE
82 gama(1)=one
83 gama(2)=zero
84 gama(3)=zero
85 gama(4)=zero
86 gama(5)=one
87 gama(6)=zero
88 END IF
89 ENDIF
90C
91 ii=nft+i
92 jj=pt(ii)
93 iflagini = 1
94 IF (jj == 0) iflagini = 0
95c
96 IF (iuser /= 0 .AND. iflagini == 1) THEN
97 IF (mtn == 36 .and. l_sigb == 6) THEN
98 iadb = ipm(7,imat)
99 nrate = nint(bufmat(iadb))
100 nvar_tmp = sigsp(nvsolid1 + nvsolid2 + 3, jj)
101 ipsu = nvsolid1 + nvsolid2 + 4
102 IF (nvar_tmp > 6) THEN
103 DO ius = 1,6
104 ipp = i + (ius - 1)*nel
105 ips = ipsu + nrate + 5
106 sigb(ipp) = sigsp(ips + ius, jj)
107 ENDDO
108 ENDIF
109 ELSEIF (mtn == 112) THEN
110 nvar_tmp = sigsp(nvsolid1 + nvsolid2 + 3, jj)
111 ipsu = nvsolid1 + nvsolid2 + 4
112 DO ius = 1, nvar_tmp
113 ipp = i + ius*nel
114 pla(ipp) = sigsp(ipsu + ius, jj)
115 ENDDO
116 ELSE IF (mtn >= 28) THEN
117 nvar_tmp = sigsp(nvsolid1 + nvsolid2 + 3, jj)
118 ipsu = nvsolid1 + nvsolid2 + 4
119 DO ius = 1, nvar_tmp
120 ipp = i + (ius -1)*nel
121 uvar(ipp) = sigsp(ipsu + ius, jj)
122 ENDDO
123 DO ius = nvar_tmp+1, nuvar
124 ipp = i + (ius -1)*nel
125 uvar(ipp) = zero
126 ENDDO
127 ENDIF
128 ENDIF
129 IF(idef /= 0 .AND. nvsolid2 /= 0 .AND. iflagini == 1) THEN
130 eps(i,1)=sigsp(nvsolid1 + 1 ,jj)
131 eps(i,2)=sigsp(nvsolid1 + 2 ,jj)
132 eps(i,3)=sigsp(nvsolid1 + 3 ,jj)
133 eps(i,4)=sigsp(nvsolid1 + 4 ,jj)
134 eps(i,5)=sigsp(nvsolid1 + 5 ,jj)
135 eps(i,6)=sigsp(nvsolid1 + 6 ,jj)
136 IF (straglob(i) == 1) THEN
137 tens(1)=eps(i,1)
138 tens(2)=eps(i,2)
139 tens(3)=eps(i,3)
140 tens(4)=eps(i,4)
141 tens(5)=eps(i,5)
142 tens(6)=eps(i,6)
143 CALL srota6_m1(x,ix(1,ii),jcvt,tens,gama,jhbe,igtyp)
144 eps(i,1)=tens(1)
145 eps(i,2)=tens(2)
146 eps(i,3)=tens(3)
147 eps(i,4)=tens(4)
148 eps(i,5)=tens(5)
149 eps(i,6)=tens(6)
150 ENDIF
151 ENDIF
152 ENDDO ! I=LFT,LLT
153c-----------
154 RETURN
155 END
156!||====================================================================
157!|| ustrsin3 ../starter/source/elements/solid/solide/userin3.F
158!||--- called by ------------------------------------------------------
159!|| s4init3 ../starter/source/elements/solid/solide4/s4init3.F
160!|| sinit3 ../starter/source/elements/solid/solide/sinit3.F
161!||--- calls -----------------------------------------------------
162!|| srota6_m1 ../starter/source/output/anim/srota6_M1.F
163!||====================================================================
164 SUBROUTINE ustrsin3(
165 . SIGI ,SIG ,IX ,NIX ,NSIGI ,
166 . NEL ,STRSGLOB,JHBE ,IGTYP ,X ,
167 . BUFGAMA ,PT ,VOLDP ,RHO0 ,RHO )
168C-----------------------------------------------
169C I m p l i c i t T y p e s
170C-----------------------------------------------
171#include "implicit_f.inc"
172C-----------------------------------------------
173C C o m m o n B l o c k s
174C-----------------------------------------------
175#include "vect01_c.inc"
176C-----------------------------------------------
177C D u m m y A r g u m e n t s
178C-----------------------------------------------
179 INTEGER NIX, JHBE,IGTYP,NSIGI,NEL
180 INTEGER IX(NIX,*), STRSGLOB(*),PT(*)
181C REAL
182 my_real
183 . SIGI(NSIGI,*),SIG(NEL,6),X(3,*),BUFGAMA(*),RHO0(*),RHO(*)
184 DOUBLE PRECISION
185 . VOLDP(*)
186C-----------------------------------------------
187C L o c a l V a r i a b l e s
188C-----------------------------------------------
189 INTEGER I,J,IIP,JPT, II, JJ
190 my_real
191 . gama(6),tens(6)
192C-----------------------------------------------
193C L o c a l V a r i a b l e s
194C-----------------------------------------------
195 INTEGER MA
196C-----------------------------------------------
197 DO I=lft,llt
198 ii=nft+i
199 jj=pt(ii)
200 IF ((jcvt+isorth)==0.OR.jj==0 .OR. strsglob(i) /= 1) cycle
201 IF(jcvt==2)THEN
202 gama(1)=bufgama(i )
203 gama(2)=bufgama(i + nel)
204 gama(3)=bufgama(i + 2*nel)
205 gama(4)=bufgama(i + 3*nel)
206 gama(5)=bufgama(i + 4*nel)
207 gama(6)=bufgama(i + 5*nel)
208 ELSE
209 gama(1)=one
210 gama(2)=zero
211 gama(3)=zero
212 gama(4)=zero
213 gama(5)=one
214 gama(6)=zero
215 END IF
216C
217 tens(1)=sigi(1,jj)
218 tens(2)=sigi(2,jj)
219 tens(3)=sigi(3,jj)
220 tens(4)=sigi(4,jj)
221 tens(5)=sigi(5,jj)
222 tens(6)=sigi(6,jj)
223 CALL srota6_m1(x,ix(1,ii),jcvt,tens,gama,jhbe,igtyp)
224 sig(i,1)=tens(1)
225 sig(i,2)=tens(2)
226 sig(i,3)=tens(3)
227 sig(i,4)=tens(4)
228 sig(i,5)=tens(5)
229 sig(i,6)=tens(6)
230 voldp(i) = rho(i)*voldp(i) / rho0(i)
231 ENDDO ! I=LFT,LLT
232c-----------
233 RETURN
234 END
subroutine srota6_m1(x, ixs, kcvt, tens, gama, khbe, ityp)
Definition srota6_M1.F:36
subroutine userin3(sigsp, sigi, uvar, eps, ix, nix, nsigi, nuvar, nel, nsigs, iuser, idef, straglob, jhbe, igtyp, x, bufgama, pt, sigb, l_sigb, imat, ipm, bufmat, pla, l_pla)
Definition userin3.F:38
subroutine ustrsin3(sigi, sig, ix, nix, nsigi, nel, strsglob, jhbe, igtyp, x, bufgama, pt, voldp, rho0, rho)
Definition userin3.F:168