OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_prop33_trans_jnt.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!|| hm_read_prop33_trans_jnt ../starter/source/properties/spring/hm_read_prop33_trans_jnt.F
25!||--- called by ------------------------------------------------------
26!|| hm_read_prop33 ../starter/source/properties/spring/hm_read_prop33.F
27!||--- calls -----------------------------------------------------
28!|| ancmsg ../starter/source/output/message/message.F
29!|| hm_get_floatv ../starter/source/devtools/hm_reader/hm_get_floatv.F
30!|| hm_get_intv ../starter/source/devtools/hm_reader/hm_get_intv.F
31!|| set_u_geo ../starter/source/user_interface/uaccess.F
32!|| set_u_pnu ../starter/source/user_interface/uaccess.F
33!||--- uses -----------------------------------------------------
34!|| message_mod ../starter/share/message_module/message_mod.F
35!|| submodel_mod ../starter/share/modules1/submodel_mod.F
36!||====================================================================
37 SUBROUTINE hm_read_prop33_trans_jnt(IOUT, ITYP, SKFLAG, PARGEO,IS_ENCRYPTED,
38 . UNITAB,IUNIT,ID,TITR,LSUBMODEL)
39 USE unitab_mod
40 USE message_mod
41 USE submodel_mod
43C-----------------------------------------------
44C I m p l i c i t T y p e s
45C-----------------------------------------------
46#include "implicit_f.inc"
47C-----------------------------------------------
48C A n a l y s e M o d u l e
49C-----------------------------------------------
50C----------+---------+---+---+--------------------------------------------
51C VAR | SIZE |TYP| RW| DEFINITION
52C----------+---------+---+---+--------------------------------------------
53C IOUT | 1 | I | R | OUTPUT FILE UNIT (L00 file)
54C----------+---------+---+---+--------------------------------------------
55C PARGEO | * | F | W | 1)SKEW NUMBER
56C | | | | 2)STIFNESS FOR INTERFACE
57C | | | | 3)FRONT WAVE OPTION
58C | | | | 4)... not yet used
59C----------+---------+---+---+------------------------------------------|
60C D u m m y A r g u m e n t s
61C-----------------------------------------------
62 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
63 INTEGER IOUT, ITYP, SKFLAG,IUNIT
64 my_real pargeo(*)
65
66 INTEGER ID
67 CHARACTER(LEN=NCHARTITLE) :: TITR
68 LOGICAL IS_ENCRYPTED
69 TYPE(submodel_data),INTENT(IN)::LSUBMODEL(*)
70C=======================================================================
71C L o c a l V a r i a b l e s
72C-----------------------------------------------
73 INTEGER IERROR,IDSK1,IDSK2,IFUN_XX,IFUN_CXX,ZEROI,OFLAG
74 my_real
75 . xk,xtyp,xflg,xsk1,xsk2,knn,kxx,cr,cxx,mass,iner,
76 . fac_m,fac_l,fac_t,fac_ct,fac_cr,fac_kt,fac_kr,fac_ctx,fac_crx,
77 . fac_ff,fac_mm
78C-----------------------------------------------
79 INTEGER SET_U_PNU,SET_U_GEO,KFUNC
80 EXTERNAL set_u_pnu,set_u_geo
81 parameter(kfunc=29)
82 DATA zeroi/0/
83 LOGICAL IS_AVAILABLE
84C=======================================================================
85C---- TRANSLATIONAL JOINT
86C=======================================================================
87 fac_m = unitab%FAC_M(iunit)
88 fac_l = unitab%FAC_L(iunit)
89 fac_t = unitab%FAC_T(iunit)
90 fac_mm = one / fac_t
91 fac_ct = fac_m / fac_t
92 fac_cr = fac_m * fac_l**2 / fac_t
93 fac_kt = fac_ct / fac_t
94 fac_kr = fac_cr / fac_t
95 fac_ctx = fac_t / fac_l
96 fac_crx = fac_t
97 fac_ff = fac_m / fac_t
98 oflag = 0
99C
100C--------------------------------------------------
101C EXTRACT DATAS (INTEGER VALUES)
102C--------------------------------------------------
103 CALL hm_get_intv('Idsk1',idsk1,is_available,lsubmodel)
104 CALL hm_get_intv('Idsk2',idsk2,is_available,lsubmodel)
105 CALL hm_get_intv('Xt_fun',ifun_xx,is_available,lsubmodel)
106C--------------------------------------------------
107C EXTRACT DATAS (REAL VALUES)
108C--------------------------------------------------
109 CALL hm_get_floatv('Xk',xk,is_available,lsubmodel,unitab)
110 CALL hm_get_floatv('Cr',cr,is_available,lsubmodel,unitab)
111 CALL hm_get_floatv('Kn',knn,is_available,lsubmodel,unitab)
112 CALL hm_get_floatv('Ktx',kxx,is_available,lsubmodel,unitab)
113C--- viscosity
114C--------------------------------------------------
115C EXTRACT DATAS (INTEGER VALUES)
116C--------------------------------------------------
117 CALL hm_get_intv('Ctx_Fun',ifun_cxx,is_available,lsubmodel)
118 IF(.NOT.is_available) oflag = oflag + 1
119C--------------------------------------------------
120C EXTRACT DATAS (REAL VALUES)
121C--------------------------------------------------
122 CALL hm_get_floatv('Ctx',cxx,is_available,lsubmodel,unitab)
123 IF(.NOT.is_available) oflag = oflag + 1
124C-----------------------
125 IF (idsk1<=0.0.OR.idsk1<=0) THEN
126 CALL ancmsg(msgid=386,
127 . msgtype=msgerror,
128 . anmode=aninfo_blind_1,
129 . i1=id,
130 . c1=titr)
131 ENDIF
132 IF (knn==0.) THEN
133 CALL ancmsg(msgid=387,
134 . msgtype=msgerror,
135 . anmode=aninfo_blind_1,
136 . i1=id,
137 . c1=titr)
138 ENDIF
139 IF (cr<zero.OR.cr>1.) THEN
140 CALL ancmsg(msgid=388,
141 . msgtype=msgerror,
142 . anmode=aninfo_blind_1,
143 . i1=id,
144 . c1=titr)
145 ENDIF
146 IF (cr==zero) cr = fiveem2
147C
148 xtyp = ityp
149 xflg = skflag
150 xsk1 = idsk1
151 xsk2 = idsk2
152 mass = zero
153 iner = zero
154C
155 IF(cxx==zero.AND.ifun_cxx/=0)cxx = one
156 IF(kxx==zero.AND.ifun_xx/=0) kxx = one
157C-----------------------
158 IF (ifun_xx /= 0) kxx = kxx * fac_ff
159 IF (ifun_cxx /= 0) cxx = cxx * fac_ff
160C-----------------------
161 pargeo(1) = 0
162 pargeo(2) = xk
163 pargeo(3) = 0
164C-----------------------
165 ierror = set_u_geo(1,xtyp)
166 ierror = set_u_geo(2,xsk1)
167 ierror = set_u_geo(3,xsk2)
168 ierror = set_u_geo(4,kxx)
169 ierror = set_u_geo(5,knn)
170 ierror = set_u_geo(6,knn)
171 ierror = set_u_geo(7,knn)
172 ierror = set_u_geo(8,knn)
173 ierror = set_u_geo(9,knn)
174 ierror = set_u_geo(10,knn)
175 ierror = set_u_geo(11,zero)
176 ierror = set_u_geo(12,mass)
177 ierror = set_u_geo(13,iner)
178 ierror = set_u_geo(14,xflg)
179 ierror = set_u_geo(15,zero)
180 ierror = set_u_geo(16,cr)
181 ierror = set_u_geo(17,cr)
182 ierror = set_u_geo(18,cr)
183 ierror = set_u_geo(19,cr)
184 ierror = set_u_geo(20,cr)
185 ierror = set_u_geo(21,cxx)
186 ierror = set_u_geo(22,zero)
187 ierror = set_u_geo(23,zero)
188 ierror = set_u_geo(24,zero)
189 ierror = set_u_geo(25,zero)
190 ierror = set_u_geo(26,zero)
191 ierror = set_u_geo(27,fac_ctx)
192 ierror = set_u_geo(28,fac_crx)
193 ierror = set_u_pnu(1,ifun_xx,kfunc)
194 ierror = set_u_pnu(2,zeroi,kfunc)
195 ierror = set_u_pnu(3,zeroi,kfunc)
196 ierror = set_u_pnu(4,zeroi,kfunc)
197 ierror = set_u_pnu(5,zeroi,kfunc)
198 ierror = set_u_pnu(6,zeroi,kfunc)
199 ierror = set_u_pnu(7,ifun_cxx,kfunc)
200 ierror = set_u_pnu(8,zeroi,kfunc)
201 ierror = set_u_pnu(9,zeroi,kfunc)
202 ierror = set_u_pnu(10,zeroi,kfunc)
203 ierror = set_u_pnu(11,zeroi,kfunc)
204 ierror = set_u_pnu(12,zeroi,kfunc)
205C-----------------------
206 WRITE(iout,500)
207 IF(is_encrypted)THEN
208 WRITE(iout,'(5X,A,//)')'CONFIDENTIAL DATA'
209 ELSE
210 IF (oflag==2) THEN
211 WRITE(iout,1001) idsk1,idsk2,xk,cr,knn,kxx,ifun_xx
212 ELSE
213 WRITE(iout,1000)idsk1,idsk2,xk,cr,knn,kxx,ifun_xx,cxx,ifun_cxx
214 ENDIF
215 ENDIF
216C-----------------------
217 RETURN
218C-----------------------
219 500 FORMAT(
220 & 5x,'JOINT TYPE . . . . . . TRANSLATIONAL JOINT'//)
221 1000 FORMAT(
222 & 5x,'SKEW 1 FRAME ID. . . . . . . . . . . . =',i10/,
223 & 5x,'SKEW 2 FRAME ID. . . . . . . . . . . . =',i10/,
224 & 5x,'STIFFNESS FOR INTERFACE K=E*A/L. . . . =',1pg20.13/,
225 & 5x,'CRITICAL DAMPING COEFFICIENT . . . . . =',1pg20.13/,
226 & 5x,'BLOCKING STIFFNESS KNN . . . . . . . . =',1pg20.13/,
227 & 5x,'TRANSLATIONAL LINEAR STIFFNESS KXX . . =',1pg20.13/,
228 & 5x,'TRANSLATIONAL FUNCTION ID. . . . . . . =',i10/,
229 & 5x,'LINEAR DAMPING CXX . . . . . . . . . . =',1pg20.13/,
230 & 5x,'USER XX DAMPING FUNCTION . . . . . . . =',i10//)
231 1001 FORMAT(
232 & 5x,'SKEW 1 FRAME ID. . . . . . . . . . . . =',i10/,
233 & 5x,'SKEW 2 FRAME ID. . . . . . . . . . . . =',i10/,
234 & 5x,'STIFFNESS FOR INTERFACE K=E*A/L. . . . =',1pg20.13/,
235 & 5x,'CRITICAL DAMPING COEFFICIENT . . . . . =',1pg20.13/,
236 & 5x,'BLOCKING STIFFNESS KNN . . . . . . . . =',1pg20.13/,
237 & 5x,'TRANSLATIONAL LINEAR STIFFNESS KXX . . =',1pg20.13/,
238 & 5x,'TRANSLATIONAL FUNCTION ID. . . . . . . =',i10//)
239 RETURN
240 END
#define my_real
Definition cppsort.cpp:32
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_read_prop33_trans_jnt(iout, ityp, skflag, pargeo, is_encrypted, unitab, iunit, id, titr, lsubmodel)
integer, parameter nchartitle
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)
Definition message.F:889