OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_prop35.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_prop35 ../starter/source/properties/spring/hm_read_prop35.F
25!||--- called by ------------------------------------------------------
26!|| hm_read_prop_generic ../starter/source/properties/hm_read_prop_generic.F
27!||--- calls -----------------------------------------------------
28!|| hm_get_floatv ../starter/source/devtools/hm_reader/hm_get_floatv.F
29!|| hm_get_floatv_dim ../starter/source/devtools/hm_reader/hm_get_floatv_dim.F
30!|| hm_get_intv ../starter/source/devtools/hm_reader/hm_get_intv.F
31!|| hm_option_is_encrypted ../starter/source/devtools/hm_reader/hm_option_is_encrypted.F
32!|| set_u_geo ../starter/source/user_interface/uaccess.f
33!|| set_u_pnu ../starter/source/user_interface/uaccess.F
34!||--- uses -----------------------------------------------------
35!|| elbuftag_mod ../starter/share/modules1/elbuftag_mod.F
36!|| submodel_mod ../starter/share/modules1/submodel_mod.f
37!||====================================================================
38 SUBROUTINE hm_read_prop35(IOUT ,NUVAR ,PARGEO,UNITAB,
39 . ID, IGTYP ,PROP_TAG,LSUBMODEL)
40C-----------------------------------------------
41C M o d u l e s
42C-----------------------------------------------
43 USE unitab_mod
44 USE elbuftag_mod
45 USE submodel_mod
46C-----------------------------------------------
47C I m p l i c i t T y p e s
48C-----------------------------------------------
49#include "implicit_f.inc"
50C-----------------------------------------------
51C C o m m o n B l o c k s
52C-----------------------------------------------
53#include "tablen_c.inc"
54C----------+---------+---+---+--------------------------------------------
55C VAR | SIZE |TYP| RW| DEFINITION
56C----------+---------+---+---+--------------------------------------------
57C IIN | 1 | I | R | INPUT FILE UNIT (D00 file)
58C IOUT | 1 | I | R | OUTPUT FILE UNIT (L00 file)
59C NUVAR | 1 | I | W | NUMBER OF USER ELEMENT VARIABLES
60C----------+---------+---+---+--------------------------------------------
61C PARGEO | * | F | W | 1)SKEW NUMBER
62C | | | | 2)STIFNESS FOR INTERFACE
63C | | | | 3)FRONT WAVE OPTION
64C | | | | 4)... not yet used
65C----------+---------+---+---+--------------------------------------------
66C D u m m y A r g u m e n t s
67C-----------------------------------------------
68 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
69 INTEGER IOUT,NUVAR,ID,IGTYP
70 my_real
71 . pargeo(*)
72 INTEGER SET_U_PNU,SET_U_GEO,KFUNC
73 EXTERNAL set_u_pnu,set_u_geo
74 parameter(kfunc=29)
75 TYPE(prop_tag_) , DIMENSION(0:MAXPROP) :: PROP_TAG
76 TYPE(submodel_data),INTENT(IN)::LSUBMODEL(*)
77C=======================================================================
78C L o c a l V a r i a b l e s
79C-----------------------------------------------
80 INTEGER IFUNC1,IFUNC2,IFUNC3,IFUNC4,IERROR,ILOAD
81 my_real
82 . amas,elastif,xlim1,xlim2,xk,d1,d2,rload,fscal
83 LOGICAL IS_AVAILABLE, IS_ENCRYPTED
84C=======================================================================
85C
86 is_encrypted = .false.
87 is_available = .false.
88C
89C--------------------------------------------------
90C EXTRACT DATA (IS OPTION CRYPTED)
91C--------------------------------------------------
92 CALL hm_option_is_encrypted(is_encrypted)
93C--------------------------------------------------
94C EXTRACT DATAS (INTEGER VALUES)
95C--------------------------------------------------
96 CALL hm_get_intv('FUN_A1',ifunc1,is_available,lsubmodel)
97 CALL hm_get_intv('FUN_B1',ifunc2,is_available,lsubmodel)
98 CALL hm_get_intv('FUN_C1',ifunc3,is_available,lsubmodel)
99 CALL hm_get_intv('FUN_D1',ifunc4,is_available,lsubmodel)
100C--------------------------------------------------
101C EXTRACT DATAS (REAL VALUES)
102C--------------------------------------------------
103 CALL hm_get_floatv('Amas',amas,is_available,lsubmodel,unitab)
104 CALL hm_get_floatv('Elastif',elastif,is_available,lsubmodel,unitab)
105 CALL hm_get_floatv('Xlim1',xlim1,is_available,lsubmodel,unitab)
106 CALL hm_get_floatv('Xk',xk,is_available,lsubmodel,unitab)
107 CALL hm_get_floatv('Damg',d1,is_available,lsubmodel,unitab)
108 CALL hm_get_floatv('Fdelay',d2,is_available,lsubmodel,unitab)
109 !units
110 CALL hm_get_floatv_dim('Elastif',fscal,is_available,lsubmodel,unitab)
111C
112C Hidden flag XLIM2,ILOAD - not documented
113 iload = 0
114 xlim2 = zero
115C----------------------
116C
117 IF(.NOT. is_encrypted)THEN
118 WRITE(iout,1400) id
119 ELSE
120 WRITE(iout,1500) id
121 ENDIF
122C
123 nuvar = 3
124C
125 pargeo(1) = 0
126 pargeo(2) = xk
127C front wave = 1
128 pargeo(3) = 1
129C
130 IF(.NOT. is_encrypted)THEN
131 WRITE(iout,1000)
132 . amas,elastif,xlim1,xlim2,xk,d1,d2,iload,
133 . ifunc1,ifunc2,ifunc3,ifunc4
134 ENDIF
135C
136 ierror = set_u_geo(1,amas)
137 ierror = set_u_geo(2,elastif)
138 ierror = set_u_geo(3,xlim1)
139 ierror = set_u_geo(4,xlim2)
140 ierror = set_u_geo(5,d1)
141 ierror = set_u_geo(6,d2)
142 rload = iload
143 ierror = set_u_geo(7,rload)
144 ierror = set_u_geo(8,fscal)
145 ierror = set_u_pnu(1,ifunc1,kfunc)
146 ierror = set_u_pnu(2,ifunc2,kfunc)
147 ierror = set_u_pnu(3,ifunc3,kfunc)
148 ierror = set_u_pnu(4,ifunc4,kfunc)
149C
150C-----------------------------
151C PROPERTY BUFFER
152C-----------------------------
153 prop_tag(igtyp)%G_FOR = 3
154 prop_tag(igtyp)%G_MOM = 5
155 prop_tag(igtyp)%G_SKEW = 6
156 prop_tag(igtyp)%G_MASS = 1
157 prop_tag(igtyp)%G_V_REPCVT = 3 ! -- VITESSES REPERE CONVECTEE (V_REPCVT)
158 prop_tag(igtyp)%G_VR_REPCVT = 3 ! -- VITESSES REPERE CONVECTEE (VR_REPCVT)
159 prop_tag(igtyp)%G_NUVAR = nuvar
160C
161 RETURN
162 999 CONTINUE
163 WRITE(iout,*)' **ERROR IN PROPERTY 35 INPUT'
164 RETURN
165 1000 FORMAT(
166 & 5x,'MASS PER UNIT LENGTH. . . . . . . . . .=',1pg20.13/,
167 & 5x,'STIFFNESS PER UNIT LENGTH . . . . . . .=',1pg20.13/,
168 & 5x,'TRACTION TRANSITION DEFORMATION . . . .=',1pg20.13/,
169 & 5x,'COMPRESSION TRANSITION DEFORMATION. . .=',1pg20.13/,
170 & 5x,'STIFFNESS FOR INTERFACE . . . . . . . .=',1pg20.13/,
171 & 5x,'DAMAGE FACTOR . . . . . . . . . . . . .=',1pg20.13/,
172 & 5x,'DAMAGE DELAY PARAMETER. . . . . . . . .=',1pg20.13/,
173 & 5x,'DAMAGE IN LOAD FLAG . . . . . . . . . .=',i10/,
174 & 5x,'INITIAL TRACTION USER FUNCTION ID . . .=',i10/,
175 & 5x,'INITIAL COMPRESSION USER FUNCTION ID. .=',i10/,
176 & 5x,'FINAL TRACTION USER FUNCTION ID . . . .=',i10/,
177 & 5x,'FINAL COMPRESSION USER FUNCTION ID. . .=',i10//)
178 1400 FORMAT(
179 & 5x,'USER PROPERTY SET'/,
180 & 5x,'PROPERTY SET NUMBER . . . . . . . . . .=',i10)
181C
182 1500 FORMAT(
183 & 5x,'USER PROPERTY SET'/,
184 & 5x,'PROPERTY SET NUMBER . . . . . . . . . .=',i10,
185 & 5x,'CONFIDENTIAL DATA'//)
186 END
#define my_real
Definition cppsort.cpp:32
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_floatv_dim(name, dim_fac, is_available, lsubmodel, unitab)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_option_is_encrypted(is_encrypted)
subroutine hm_read_prop35(iout, nuvar, pargeo, unitab, id, igtyp, prop_tag, lsubmodel)
integer function set_u_geo(ivar, a)
Definition uaccess.F:64
program starter
Definition starter.F:39