OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
rini35.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!|| rini35 ../starter/source/elements/spring/rini35.F
25!||--- called by ------------------------------------------------------
26!|| rinit3 ../starter/source/elements/spring/rinit3.F
27!||--- calls -----------------------------------------------------
28!|| get_u_geo ../starter/source/user_interface/uaccess.F
29!|| get_u_mat ../starter/source/user_interface/uaccess.F
30!|| get_u_mid ../starter/source/user_interface/uaccess.F
31!|| get_u_mnu ../starter/source/user_interface/uaccess.F
32!|| get_u_pid ../starter/source/user_interface/uaccess.F
33!|| get_u_pnu ../starter/source/user_interface/uaccess.F
34!||====================================================================
35 SUBROUTINE rini35(NEL ,IOUT ,IPROP ,
36 3 IX ,XL ,MASS ,XINER ,STIFM ,
37 4 STIFR ,VISCM ,VISCR ,UVAR ,NUVAR )
38C-------------------------------------------------------------------------
39C This subroutine initialize springs using user properties.
40C-------------------------------------------------------------------------
41C----------+---------+---+---+--------------------------------------------
42C VAR | SIZE |TYP| RW| DEFINITION
43C----------+---------+---+---+--------------------------------------------
44C IOUT | 1 | I | R | OUTPUT FILE UNIT (L00 file)
45C IPROP | 1 | I | R | PROPERTY NUMBER
46C----------+---------+---+---+--------------------------------------------
47C IX | 3*NEL | I | R | SPRING CONNECTIVITY
48C | IX(1,I) NODE 1 ID
49C | IX(2,I) NODE 2 ID
50C | IX(3,I) OPTIONAL NODE 3 ID
51C | IX(4,I) SPRING ID
52C XL | NEL | F | R | ELEMENT LENGTH
53C----------+---------+---+---+--------------------------------------------
54C MASS | NEL | F | W | ELEMENT MASS
55C XINER | NEL | F | W | ELEMENT INERTIA (SPHERICAL)
56C STIFM | NEL | F | W | ELEMENT STIFNESS (TIME STEP)
57C STIFR | NEL | F | W | ELEMENT ROTATION STIFNESS (TIME STEP)
58C VISCM | NEL | F | W | ELEMENT VISCOSITY (TIME STEP)
59C VISCR | NEL | F | W | ELEMENT ROTATION VISCOSITY (TIME STEP)
60C----------+---------+---+---+--------------------------------------------
61C UVAR |NUVAR*NEL| F | W | USER ELEMENT VARIABLES
62C NUVAR | 1 | I | R | NUMBER OF USER ELEMENT VARIABLES
63C----------+---------+---+---+--------------------------------------------
64C-------------------------------------------------------------------------
65C FUNCTION
66C-------------------------------------------------------------------------
67C INTEGER II = GET_U_PNU(I,IP,KK)
68C IFUNCI = GET_U_PNU(I,IP,KFUNC)
69C IPROPI = GET_U_PNU(I,IP,KPROP)
70C IMATI = GET_U_PNU(I,IP,KMAT)
71C I : VARIABLE INDEX(1 for first variable,...)
72C IP : PROPERTY NUMBER
73C KK : PARAMETER KFUNC,KMAT,KPROP
74C THIS FUNCTION RETURN THE USER STORED FUNCTION(IF KK=KFUNC),
75C MATERIAL(IF KK=KMAT) OR PROPERTY(IF KK=KPROP) NUMBERS.
76C SEE LECG29 FOR CORRESPONDING ID STORAGE.
77C-------------------------------------------------------------------------
78C INTEGER IFUNCI = GET_U_MNU(I,IM,KFUNC)
79C I : VARIABLE INDEX(1 for first function)
80C IM : MATERIAL NUMBER
81C KFUNC : ONLY FUNCTION ARE YET AVAILABLE.
82C THIS FUNCTION RETURN THE USER STORED FUNCTION NUMBERS(function
83C referred by users materials).
84C SEE LECM29 FOR CORRESPONDING ID STORAGE.
85C-------------------------------------------------------------------------
86C my_real PARAMI = GET_U_GEO(I,IP)
87C I : PARAMETER INDEX(1 for first parameter,...)
88C IP : PROPERTY NUMBER
89C THIS FUNCTION RETURN THE USER GEOMETRY PARAMETERS
90C-------------------------------------------------------------------------
91C my_real PARAMI = GET_U_MAT(I,IM)
92C I : PARAMETER INDEX(1 for first parameter,...)
93C IM : MATERIAL NUMBER
94C THIS FUNCTION RETURN THE USER MATERIAL PARAMETERS
95C NOTE: GET_U_MAT(0,IMAT) RETURN THE DENSITY
96C-------------------------------------------------------------------------
97C INTEGER MID = GET_U_PID(IP)
98C IP : PROPERTY NUMBER
99C THIS FUNCTION RETURN THE USER PROPERTY ID CORRESPONDING TO
100C USER PROPERTY NUMBER IP.
101C-------------------------------------------------------------------------
102C INTEGER PID = GET_U_MID(IM)
103C IM : MATERIAL NUMBER
104C THIS FUNCTION RETURN THE USER MATERIAL ID CORRESPONDING TO
105C USER MATERIAL NUMBER IM.
106C-------------------------------------------------------------------------
107C I m p l i c i t T y p e s
108C-----------------------------------------------
109#include "implicit_f.inc"
110C----------------------------------------------------------
111C D u m m y A r g u m e n t s a n d F u n c t i o n
112C----------------------------------------------------------
113 INTEGER IOUT,NUVAR,NEL,IPROP,
114 . IX(4,NEL) ,
116 my_real
117 . xl(nel) ,mass(nel) ,xiner(nel) ,stifm(nel) ,
118 . stifr(nel),viscm(nel) ,viscr(nel),uvar(nuvar,*),
119 . get_u_mat,get_u_geo
120 EXTERNAL get_u_pnu,get_u_mnu,get_u_mat,get_u_geo,get_u_pid,
121 . get_u_mid
122C-----------------------------------------------
123C L o c a l V a r i a b l e s
124C-----------------------------------------------
125 my_real
126 . amas,elastif
127 INTEGER I
128C=======================================================================
129 amas = get_u_geo(1,iprop)
130 elastif = get_u_geo(2,iprop)
131C
132C MEAN VALUES
133C
134C--------------------------------------
135C ELEMENT CHECK
136C--------------------------------------
137 DO i=1,nel
138 IF(xl(i)==zero)THEN
139C change I to global indice
140 WRITE(iout,*)' **ERROR ZERO LENGTH SPRING :',i
141 ENDIF
142 ENDDO
143C--------------------------------------
144C ELEMENT INITIALIZATION
145C--------------------------------------
146 DO i=1,nel
147 mass(i) = amas
148 xiner(i) = zero
149 uvar(1,i) = zero
150 uvar(2,i) = one
151 uvar(3,i) = zero
152C FOR NODAL AND ELEMENT TIME STEP COMPUTATION
153 stifm(i) = elastif / xl(i)
154 stifr(i) = zero
155 viscm(i) = zero
156 viscr(i) = zero
157 ENDDO
158C-----------
159 RETURN
160 END
#define my_real
Definition cppsort.cpp:32
subroutine rini35(nel, iout, iprop, ix, xl, mass, xiner, stifm, stifr, viscm, viscr, uvar, nuvar)
Definition rini35.F:38
integer function get_u_pid(ip)
Definition uaccess.F:626
integer function get_u_pnu(ivar, ip, k)
Definition uaccess.F:482
integer function get_u_mid(im)
Definition uaccess.F:668
integer function get_u_mnu(ivar, im, k)
Definition uaccess.F:565