39 . LACCELM ,UNITAB ,LSUBMODEL )
49 USE format_mod ,
ONLY : lfield
53#include "implicit_f.inc"
62 INTEGER ,
INTENT(IN) :: SENS_ID
63 INTEGER ,
DIMENSION(3,*) ,
INTENT(IN) :: LACCELM
64 CHARACTER (len=nchartitle) TITR
65 TYPE () ,
INTENT(INOUT) :: SENSOR_PTR
66 TYPE (SUBMODEL_DATA) ,
DIMENSION(NSUBMOD) :: LSUBMODEL
67 TYPE (UNIT_TYPE_) ,
INTENT(IN) ::UNITAB
71 INTEGER :: K,SENS_TYPE,INP_FLAG,ACC_ID,IACC,IDIR,
72 . npoint,nparis,nparrs,
nvar
73 my_real :: tdel,period,hic_crit,def_gravity,gravity,tmin,
75 CHARACTER(LEN=NCHARKEY) :: DIR
76 LOGICAL :: IS_AVAILABLE
77 DATA def_gravity/9.80665/
81 is_available = .false.
88 CALL hm_get_floatv(
'Tdelay' ,tdel ,is_available,lsubmodel,unitab)
90 CALL hm_get_intv (
'IACC1' ,acc_id ,is_available,lsubmodel)
93 CALL hm_get_floatv(
'HIC_Period' ,period ,is_available,lsubmodel,unitab)
94 CALL hm_get_floatv(
'HIC_Value' ,hic_crit ,is_available,lsubmodel,unitab)
95 CALL hm_get_floatv(
'HIC_Gravity' ,gravity ,is_available,lsubmodel,unitab)
96 CALL hm_get_floatv(
'Tmin' ,tmin ,is_available,lsubmodel,unitab)
103 IF (acc_id == laccelm(2,k))
THEN
110 CALL ancmsg(msgid=45, msgtype=msgerror, anmode=aninfo_blind_2,
118 IF (dir(k:k) ==
'R' .or .dir(k:k) ==
'r')
THEN
121 ELSE IF (dir(k:k) ==
'X' .or .dir(k:k) ==
'x')
THEN
124 ELSE IF (dir(k:k) ==
'Y' .or .dir(k:k) ==
'y')
THEN
127 ELSE IF (dir(k:k) ==
'Z' .or .dir(k:k) ==
'z')
THEN
141 IF (gravity == zero)
THEN
142 fac_grav = unitab%FAC_T_WORK**2 / unitab%FAC_L_WORK
143 gravity = def_gravity * fac_grav
145 IF (hic_crit == zero) hic_crit = infinity
146 IF (period == zero)
THEN
148 period = period / unitab%FAC_T_WORK
151 time_unit = unitab%FAC_T_WORK
153 sensor_ptr%TYPE = sens_type
154 sensor_ptr%SENS_ID = sens_id
155 sensor_ptr%STATUS = 0
156 sensor_ptr%TSTART = infinity
157 sensor_ptr%TCRIT = infinity
158 sensor_ptr%TMIN = tmin
159 sensor_ptr%TDELAY = tdel
160 sensor_ptr%VALUE = zero
166 sensor_ptr%NPARI = nparis
167 sensor_ptr%NPARR = nparrs
168 sensor_ptr%NVAR =
nvar
170 ALLOCATE (sensor_ptr%IPARAM(nparis))
171 ALLOCATE (sensor_ptr%RPARAM(nparrs))
172 ALLOCATE (sensor_ptr%VAR
173 sensor_ptr%VAR(:) = zero
175 sensor_ptr%IPARAM(1) = inp_flag
176 sensor_ptr%IPARAM(2) = iacc
177 sensor_ptr%IPARAM(3) = npoint
178 sensor_ptr%IPARAM(4) = idir
180 sensor_ptr%RPARAM(1) = period
181 sensor_ptr%RPARAM(2) = hic_crit
182 sensor_ptr%RPARAM(3) = gravity
183 sensor_ptr%RPARAM(4) = time_unit
185 WRITE (iout, 1000) sens_id,tdel
186 WRITE (iout, 2000) acc_id,dir(1:1),tdel,period,hic_crit,tmin,gravity
189 . 5x,
' SENSOR TYPE 16: HIC '/,
190 . 5x,' -------------------
'/,
191 . 5X,'sensor
id. . . . . . . . . . . . . . . . .=
',I10/
192 . 5X,'time delay before activation . . . . . . .=
',E12.4)
194 . 5X,'accelerometer
id . . . . . . . . . . . . =
',I10/
195 . 5X,'direction. . . . . . . . . . . . . . . . =
',A10/
196 . 5X,'time delay before activation . . . . . . =
',E12.4/
197 . 5X,'hic period . . . . . . . . . . . . . . . =
',E12.4/,
198 . 5X,'hic criterion. . . . . . . . . . . . . . =
',E12.4/,
199 . 5X,'hic duration to activate . . . . . . . . =
',E12.4/,
200 . 5X,'gravity
VALUE. . . . . . . . . . . . . . =
',E12.4//)
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)