OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_get_float_array_index.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_get_float_array_index ../starter/source/devtools/hm_reader/hm_get_float_array_index.F
25!||--- called by ------------------------------------------------------
26!|| hm_read_admas ../starter/source/tools/admas/hm_read_admas.f
27!|| hm_read_bem ../starter/source/loads/bem/hm_read_bem.F
28!|| hm_read_ebcs_inlet ../starter/source/boundary_conditions/ebcs/hm_read_ebcs_inlet.F
29!|| hm_read_fail_inievo ../starter/source/materials/fail/inievo/hm_read_fail_inievo.F
30!|| hm_read_fail_orthbiquad ../starter/source/materials/fail/orthbiquad/hm_read_fail_orthbiquad.F
32!|| hm_read_friction ../starter/source/interfaces/friction/reader/hm_read_friction.f
33!|| hm_read_friction_orientations ../starter/source/interfaces/friction/reader/hm_read_friction_orientations.F
34!|| hm_read_func2d ../starter/source/tools/curve/hm_read_func2d.F
35!|| hm_read_funct ../starter/source/tools/curve/hm_read_funct.F
36!|| hm_read_inicrack ../starter/source/initial_conditions/inicrack/hm_read_inicrack.F
37!|| hm_read_inimap1d ../starter/source/initial_conditions/inimap/hm_read_inimap1d.F
38!|| hm_read_inimap2d ../starter/source/initial_conditions/inimap/hm_read_inimap2d.F
40!|| hm_read_initemp ../starter/source/initial_conditions/thermic/hm_read_initemp.F
41!|| hm_read_inivel ../starter/source/initial_conditions/general/inivel/hm_read_inivel.F
42!|| hm_read_inivol ../starter/source/initial_conditions/inivol/hm_read_inivol.F90
43!|| hm_read_inject1 ../starter/source/properties/injector/hm_read_inject1.F
44!|| hm_read_inject2 ../starter/source/properties/injector/hm_read_inject2.F
45!|| hm_read_load_pressure ../starter/source/loads/general/load_pressure/hm_read_load_pressure.F
46!|| hm_read_mat100 ../starter/source/materials/mat/mat100/hm_read_mat100.F
47!|| hm_read_mat110 ../starter/source/materials/mat/mat110/hm_read_mat110.F
48!|| hm_read_mat151 ../starter/source/materials/mat/mat151/hm_read_mat151.F
49!|| hm_read_mat36 ../starter/source/materials/mat/mat036/hm_read_mat36.F
50!|| hm_read_mat38 ../starter/source/materials/mat/mat038/hm_read_mat38.F
51!|| hm_read_mat42 ../starter/source/materials/mat/mat042/hm_read_mat42.F
52!|| hm_read_mat43 ../starter/source/materials/mat/mat043/hm_read_mat43.F
53!|| hm_read_mat51 ../starter/source/materials/mat/mat051/hm_read_mat51.f
54!|| hm_read_mat51_iform11 ../starter/source/materials/mat/mat051/hm_read_mat51_iform11.f
55!|| hm_read_mat52 ../starter/source/materials/mat/mat052/hm_read_mat52.F
56!|| hm_read_mat57 ../starter/source/materials/mat/mat057/hm_read_mat57.F90
57!|| hm_read_mat59 ../starter/source/materials/mat/mat059/hm_read_mat59.F
58!|| hm_read_mat62 ../starter/source/materials/mat/mat062/hm_read_mat62.F
59!|| hm_read_mat65 ../starter/source/materials/mat/mat065/hm_read_mat65.F
60!|| hm_read_mat66 ../starter/source/materials/mat/mat066/hm_read_mat66.F
61!|| hm_read_mat70 ../starter/source/materials/mat/mat070/hm_read_mat70.F
62!|| hm_read_mat77 ../starter/source/materials/mat/mat077/hm_read_mat77.f
63!|| hm_read_mat82 ../starter/source/materials/mat/mat082/hm_read_mat82.F
64!|| hm_read_mat87 ../starter/source/materials/mat/mat087/hm_read_mat87.F90
65!|| hm_read_mat88 ../starter/source/materials/mat/mat088/hm_read_mat88.F
66!|| hm_read_mat90 ../starter/source/materials/mat/mat090/hm_read_mat90.F
67!|| hm_read_mat93 ../starter/source/materials/mat/mat093/hm_read_mat93.F
68!|| hm_read_monvol_type11 ../starter/source/airbag/hm_read_monvol_type11.F
69!|| hm_read_monvol_type3 ../starter/source/airbag/hm_read_monvol_type3.F
70!|| hm_read_monvol_type4 ../starter/source/airbag/hm_read_monvol_type4.F
71!|| hm_read_monvol_type5 ../starter/source/airbag/hm_read_monvol_type5.F
72!|| hm_read_monvol_type6 ../starter/source/airbag/hm_read_monvol_type6.F
73!|| hm_read_monvol_type7 ../starter/source/airbag/hm_read_monvol_type7.f
74!|| hm_read_monvol_type8 ../starter/source/airbag/hm_read_monvol_type8.F
75!|| hm_read_monvol_type9 ../starter/source/airbag/hm_read_monvol_type9.F
76!|| hm_read_mpc ../starter/source/constraints/general/mpc/hm_read_mpc.F
77!|| hm_read_prop10 ../starter/source/properties/shell/hm_read_prop10.F
78!|| hm_read_prop11 ../starter/source/properties/shell/hm_read_prop11.f
79!|| hm_read_prop16 ../starter/source/properties/shell/hm_read_prop16.F
80!|| hm_read_prop17 ../starter/source/properties/shell/hm_read_prop17.F
81!|| hm_read_prop18 ../starter/source/properties/beam/hm_read_prop18.F
82!|| hm_read_prop22 ../starter/source/properties/thickshell/hm_read_prop22.F
83!|| hm_read_prop26 ../starter/source/properties/spring/hm_read_prop26.F
84!|| hm_read_prop28 ../starter/source/properties/xelem/hm_read_prop28.f
85!|| hm_read_prop51 ../starter/source/properties/shell/hm_read_prop51.F
86!|| hm_read_rbe3 ../starter/source/constraints/general/rbe3/hm_read_rbe3.F
87!|| hm_read_stack ../starter/source/stack/hm_read_stack.F
88!|| hm_read_table1_0 ../starter/source/tools/curve/hm_read_table1_0.F
89!|| hm_read_table1_1 ../starter/source/tools/curve/hm_read_table1_1.F
90!|| hm_read_table2_0 ../starter/source/tools/curve/hm_read_table2_0.f
91!|| hm_read_table2_1 ../starter/source/tools/curve/hm_read_table2_1.F
92!|| hm_read_visc_lprony ../starter/source/materials/visc/hm_read_visc_lprony.F
93!|| hm_read_visc_prony ../starter/source/materials/visc/hm_read_visc_prony.F
94!|| hm_read_xref ../starter/source/loads/reference_state/xref/hm_read_xref.F
95!|| lecfill ../starter/source/elements/initia/lecfill.f
96!|| r2r_prelec ../starter/source/coupling/rad2rad/r2r_prelec.F
97!|| read_impdisp_fgeo ../starter/source/constraints/general/impvel/read_impdisp_fgeo.F
98!|| read_sensor_gauge ../starter/source/tools/sensor/read_sensor_gauge.F
99!||--- calls -----------------------------------------------------
100!||--- uses -----------------------------------------------------
101!|| message_mod ../starter/share/message_module/message_mod.F
102!|| submodel_mod ../starter/share/modules1/submodel_mod.F
103!||====================================================================
104 SUBROUTINE hm_get_float_array_index(NAME,RVAL,INDEX,IS_AVAILABLE,LSUBMODEL,UNITAB)
105C-----------------------------------------------
106C ROUTINE DESCRIPTION :
107C ===================
108C REQUEST DATA INTO MODEL NEUTRAL OBJECT DATABASE USING HM_READER
109C PICK VALUE IN A LIST OF VALUES
110C ASK INDEX_TH (REAL) VALUE OF 'NAME' FIELD DEFINED IN .cfg FILE
111C APPLY AUTOMATICALLY UNIT SYSTEM USING DIMENSION DEFINED IN .cfg FILE
112C-----------------------------------------------
113C DUMMY ARGUMENTS DESCRIPTION:
114C ===================
115C
116C NAME DESCRIPTION
117C
118C NAME FIELD NAME
119C RVAL REAL VALUE OF THE FIELD
120C INDEX INDEX NUMBER OF THE VALUE
121C IS_AVAILABLE VALUE AVAILABLE IN MODEL OR NOT
122C LSUBMODEL SUBMODEL STRUCTURE
123C UNITAB UNIT ARRAY
124C============================================================================
125C M o d u l e s
126C-----------------------------------------------
127 use, INTRINSIC :: iso_c_binding, only: c_bool
128 USE message_mod
130 USE unitab_mod
131C-----------------------------------------------
132C I m p l i c i t T y p e s
133C-----------------------------------------------
134#include "implicit_f.inc"
135C-----------------------------------------------
136C C o m m o n B l o c k s
137C-----------------------------------------------
138C-----------------------------------------------
139C D u m m y A r g u m e n t s
140C-----------------------------------------------
141C INPUT ARGUMENTS
142 TYPE (UNIT_TYPE_),INTENT(IN) :: UNITAB
143 INTEGER,INTENT(IN) :: INDEX
144 CHARACTER*(*),INTENT(IN) :: NAME
145 TYPE(submodel_data),INTENT(IN) :: LSUBMODEL(NSUBMOD)
146C OUTPUT ARGUMENTS
147 my_real,INTENT(OUT) :: rval
148 LOGICAL,INTENT(OUT) :: IS_AVAILABLE
149C-----------------------------------------------
150C L o c a l V a r i a b l e s
151C-----------------------------------------------
152 INTEGER J,SUB_ID,IFLAGUNIT,UID
153 my_real :: fac_l,fac_m,fac_t,fac
154 real*8 dval,length_dim,mass_dim,time_dim
155 LOGICAL(KIND=C_BOOL) C_IS_AVAILABLE
156C-----------------------------------------------
157 c_is_available = .false.
158 length_dim = zero
159 mass_dim = zero
160 time_dim = zero
161 fac = one
162C--------------------------------------------------
163 CALL cpp_get_floatv_floatd_index(name(1:len_trim(name)),len_trim(name),dval,index,c_is_available,
164 . length_dim,mass_dim,time_dim,uid,sub_id)
165 is_available = c_is_available
166C--------------------------------------------------
167C ID OFFSETS FOR //SUBMODEL
168C--------------------------------------------------
169 IF(sub_id /= 0 .AND. uid == 0)THEN
170 IF(lsubmodel(sub_id)%UID /= 0)THEN
171 uid = lsubmodel(sub_id)%UID
172 ENDIF
173 ENDIF
174C--------------------------------------------------
175c APPLY UNIT SYSTEM
176C--------------------------------------------------
177 iflagunit = 0
178 fac_m = zero
179 fac_l = zero
180 fac_t = zero
181 DO j=1,unitab%NUNITS
182 IF (unitab%UNIT_ID(j) == uid) THEN
183 fac_m = unitab%FAC_M(j)
184 fac_l = unitab%FAC_L(j)
185 fac_t = unitab%FAC_T(j)
186 iflagunit = 1
187 EXIT
188 ENDIF
189 ENDDO
190 IF (fac_m /= zero) fac = fac * (fac_m ** mass_dim )
191 IF (fac_l /= zero) fac = fac * (fac_l ** length_dim)
192 IF (fac_t /= zero) fac = fac * (fac_t ** time_dim )
193C--------------------------------------------------
194 rval = dval * fac
195C--------------------------------------------------
196 RETURN
197C
198 END
#define my_real
Definition cppsort.cpp:32
subroutine hm_get_float_array_index(name, rval, index, is_available, lsubmodel, unitab)
subroutine hm_read_admas(ms, itabm1, igrnod, unitab, igrsurf, ipart, ipmas, totaddmas, flag, igrpart, x, lsubmodel)
subroutine hm_read_fail_tab_old(fail, mat_id, fail_id, irupt, ixfem, lsubmodel, unitab)
subroutine hm_read_friction(nif, nom_opt, titr, unitab, igrpart, ipart, nset, tagprt_fric, tabcoupleparts_fric_tmp, tabcoef_fric_tmp, mfrot, ifq, xfiltr, fricform, iflag, orthfric, ifricorth_tmp, ngrpf, lengrpf, leng, nointf, lsubmodel)
subroutine hm_read_inistate_d00(ixs, ixq, ixc, ixt, ixp, ixr, geo, pm, ixtg, index, itri, nsigsh, igeo, ipm, nsigs, nsigsph, ksysusr, nsigrs, unitab, isolnodd00, lsubmodel, rtrans, idrape, nsigi, nsigbeam, nsigtruss, sigi, sigsh, sigsp, sigsph, sigrs, sigbeam, sigtruss, strsglob, straglob, orthoglob, isigsh, iyldini, fail_ini, iusolyld, iuser, id_sigsh, id_solid_sigi, id_quad_sigi, id_sigspri, id_sigbeam, id_sigtruss, work, igrbric, nibrick, niquad, nishell, nish3n, nispring, nibeam, nitruss, map_tables, varmax, iparg, ptshel, ptsh3n, stack, iworksh, iout, mat_param, nisphcel, numsph, nisp, kxsp, id_sigsph)
subroutine hm_read_mat51(uparam, maxuparam, nuparam, israte, imatvis, nuvar, ifunc, maxfunc, nfunc, parmat, unitab, mat_id, titr, mtag, lsubmodel, pm, matparam, ipm, nvartmp)
subroutine hm_read_mat51_iform11(av, rho0_, e0, pm, c0, c1, c2, c3, c4, c5, ipla, gg, y, bb, n, cc, epdr, cm, t0, tmelt, thetl, sph, plamx, sigmx, xka, xkb, nu, a0, a1, a2, amx, b1, b2, r1, r2, w, vdet, pcj, ibfrac, pext, vis, visv, lsubmodel, unitab)
subroutine hm_read_mat77(uparam, maxuparam, nuparam, nuvar, nfunc, maxfunc, ifunc, parmat, mat_id, pm, israte, imatvis, titr, unitab, lsubmodel, matparam, jale)
subroutine hm_read_prop11(geo, igeo, pm, ipm, iskn, unitab, rtrans, lsubmodel, sub_id, idtitl, prop_tag, ig, igtyp, defaults_shell)
subroutine hm_read_prop28(iout, nuvar, pargeo, unitab, id, titr, igtyp, prop_tag, lsubmodel, iunit)
subroutine hm_read_table2_0(ntable0, table, l, nfunct, unitab, lsubmodel)
subroutine initia(iparg, elbuf, ms, in, v, x, ixs, ixq, ixc, ixt, ixp, ixr, detonators, geo, pm, rby, npby, lpby, npc, npts, pld, veul, ale_connectivity, skew, fill, ipart, itab, sensors, skvol, ixtg, thk, nloc_dmg, group_param_tab, glob_therm, igrnod, igrsurf, bufsf, vr, bufmat, xlas, las, dtelem, mss, msq, msc, mst, msp, msr, mstg, ptg, inc, nod2eltg, knod2eltg, inp, inr, intg, index, itri, kxx, ixx, xelemwa, iwa, nod2elq, knod2elq, nod2els, knod2els, kxsp, ixsp, nod2sp, ispcond, icode, iskew, iskn, ispsym, xframe, isptag, spbuf, mssx, nsigi, npbyl, lpbyl, rbyl, msnf, mssf, nsigsh, igeo, ipm, nsigs, nsigsph, vns, vnsx, stc, stt, stp, str, sttg, stur, bns, bnsx, volnod, bvolnod, etnod, nshnod, stifint, fxbdep, fxbvit, fxbacc, fxbipm, fxbrpm, fxbelm, fxbsig, fxbmod, ins, ptshel, ptsh3n, ptsol, ptquad, wma, ptsph, fxbnod, mbufel, mdepl, fxani, numel, nsigrs, sh4tree, sh3tree, mcp, temp, imerge2, iadmerge2, slnrbm, nslnrbm, rmstifn, rmstifr, ms_layer, zi_layer, itag, itagel, mcpc, mcptg, xrefc, xreftg, xrefs, mssa, msrt, irbe2, lrbe2, inivol, kvol, nbsubmat, ixs10, ixs16, ixs20, totaddmas, ipmas, stifn, msz2, itagn, sitage, itage, ixr_kj, elbuf_tab, nom_opt, ptr_nopt_rbe2, ptr_nopt_adm, ptr_nopt_fun, sol2sph, irst, sh3trim, xfem_tab, kxig3d, ixig3d, msig3d, knot, nctrlmax, wige, stack, rnoise, drape, sh4ang, sh3ang, geo_stack, igeo_stack, stifintr, strc, strp, strr, strtg, perturb, itagnd, nativ_sms, iloadp, facload, ptspri, nsigbeam, ptbeam, nsigtruss, pttruss, multi_fvm, sigi, sigsh, sigsp, sigsph, sigrs, sigbeam, sigtruss, strsglob, straglob, orthoglob, isigsh, iyldini, ksigsh3, fail_ini, iusolyld, iuser, iddlevel, inimap1d, inimap2d, func2d, fvm_inivel, tagprt_sms, igrbric, igrquad, igrsh4n, igrsh3n, igrpart, totmas, knotlocpc, knotlocel, vnige, bnige, fxbglm, fxbcpm, fxbcps, fxblm, fxbfls, fxbdls, fxb_matrix, fxb_matrix_add, fxb_last_adress, ptr_nopt_fxb, r_skew, knod2el1d, nod2el1d, ebcs_tab, rby_iniaxis, alea, knod2elc, nod2elc, dr, slrbody, drapeg, ipari, intbuf_tab, interfaces, mat_param, npreload_a, preload_a, fail_fractal, fail_brokmann, defaults, ndamp_freq_range, dampr, ibeam_vector, rbeam_vector, ikine)
Definition initia.F:188
subroutine lecfill(ixs, fillsol, unitab, lsubmodel)
Definition lecfill.F:42
integer nsubmod
program starter
Definition starter.F:39
subroutine tabulated(iflag, nel, pm, off, eint, mu, espe, dvol, df, vnew, mat, psh, pnew, dpdm, dpde, npf, tf)
Definition tabulated.F:32