OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_get_float_array_2indexes.F File Reference
#include "implicit_f.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine hm_get_float_array_2indexes (name, rval, index1, index2, is_available, lsubmodel, unitab)

Function/Subroutine Documentation

◆ hm_get_float_array_2indexes()

subroutine hm_get_float_array_2indexes ( character*(*), intent(in) name,
intent(out) rval,
integer, intent(in) index1,
integer, intent(in) index2,
logical, intent(out) is_available,
type(submodel_data), dimension(*), intent(in) lsubmodel,
type (unit_type_), intent(in) unitab )

Definition at line 35 of file hm_get_float_array_2indexes.F.

36C-----------------------------------------------
37C ROUTINE DESCRIPTION :
38C ===================
39C REQUEST DATA INTO MODEL NEUTRAL OBJECT DATABASE USING HM_READER
40C PICK VALUE IN A LIST OF VALUES
41C ASK (INDEX1_TH,INDEX2)_TH (REAL) VALUE OF 'NAME' FIELD DEFINED IN .cfg FILE
42C APPLY AUTOMATICALLY UNIT SYSTEM USING DIMENSION DEFINED IN .cfg FILE
43C-----------------------------------------------
44C DUMMY ARGUMENTS DESCRIPTION:
45C ===================
46C
47C NAME DESCRIPTION
48C
49C NAME FIELD NAME
50C RVAL REAL VALUE OF THE FIELD
51C INDEX1 INDEX NUMBER OF THE VALUE (ROW)
52C INDEX2 INDEX NUMBER OF THE VALUE (COLUMN)
53C IS_AVAILABLE VALUE AVAILABLE IN MODEL OR NOT
54C LSUBMODEL SUBMODEL STRUCTURE
55C UNITAB UNIT ARRAY
56C============================================================================
57C M o d u l e s
58C-----------------------------------------------
59 use, INTRINSIC :: iso_c_binding, only: c_bool
60 USE message_mod
61 USE submodel_mod
62 USE unitab_mod
63C-----------------------------------------------
64C I m p l i c i t T y p e s
65C-----------------------------------------------
66#include "implicit_f.inc"
67C-----------------------------------------------
68C C o m m o n B l o c k s
69C-----------------------------------------------
70C-----------------------------------------------
71C D u m m y A r g u m e n t s
72C-----------------------------------------------
73C INPUT ARGUMENTS
74 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
75 INTEGER,INTENT(IN)::INDEX1,INDEX2
76 CHARACTER*(*),INTENT(IN)::NAME
77 TYPE(SUBMODEL_DATA),INTENT(IN)::LSUBMODEL(*)
78C OUTPUT ARGUMENTS
79 my_real,
80 . INTENT(OUT)::rval
81 LOGICAL,INTENT(OUT)::IS_AVAILABLE
82C-----------------------------------------------
83C L o c a l V a r i a b l e s
84C-----------------------------------------------
85 INTEGER :: I,J,VALUE_TYPE,SUB_ID,IFLAGUNIT,UID
86 my_real :: fac_l,fac_m,fac_t,fac
87 real*8 dval,length_dim,mass_dim,time_dim
88 LOGICAL(KIND=C_BOOL) C_IS_AVAILABLE
89C-----------------------------------------------
90 c_is_available = .false.
91 length_dim = zero
92 mass_dim = zero
93 time_dim = zero
94 fac = one
95C--------------------------------------------------
96 CALL cpp_get_floatv_2index(name(1:len_trim(name)),len_trim(name),dval,index1,c_is_available,
97 . length_dim,mass_dim,time_dim,uid,sub_id,index2)
98 is_available = c_is_available
99C--------------------------------------------------
100C ID OFFSETS FOR //SUBMODEL
101C--------------------------------------------------
102 IF(sub_id /= 0 .AND. uid == 0)THEN
103 IF(lsubmodel(sub_id)%UID /= 0)THEN
104 uid = lsubmodel(sub_id)%UID
105 ENDIF
106 ENDIF
107C--------------------------------------------------
108c APPLY UNIT SYSTEM
109C--------------------------------------------------
110 iflagunit = 0
111 fac_m = zero
112 fac_l = zero
113 fac_t = zero
114 DO j=1,unitab%NUNITS
115 IF (unitab%UNIT_ID(j) == uid) THEN
116 fac_m = unitab%FAC_M(j)
117 fac_l = unitab%FAC_L(j)
118 fac_t = unitab%FAC_T(j)
119 iflagunit = 1
120 EXIT
121 ENDIF
122 ENDDO
123 IF (fac_m /= zero) fac = fac * (fac_m ** mass_dim )
124 IF (fac_l /= zero) fac = fac * (fac_l ** length_dim)
125 IF (fac_t /= zero) fac = fac * (fac_t ** time_dim )
126C--------------------------------------------------
127 rval = dval * fac
128C--------------------------------------------------
129 RETURN
130C
#define my_real
Definition cppsort.cpp:32