38 . LACCELM ,UNITAB ,LSUBMODEL )
51#include "implicit_f.inc"
60 INTEGER ,
INTENT(IN) :: SENS_ID
61 INTEGER ,
DIMENSION(3,*) ,
INTENT(IN) :: LACCELM
62 CHARACTER(LEN=NCHARTITLE)::TITR
63 TYPE (SENSOR_STR_) :: SENSOR_PTR
64 TYPE (SUBMODEL_DATA) ,
DIMENSION(NSUBMOD) :: LSUBMODEL
65 TYPE (UNIT_TYPE_) ,
INTENT(IN) ::UNITAB
69 INTEGER :: I,J,LEN,NACC,NPARIS,NPARRS,NVAR,SENS_TYPE
71 INTEGER ,
DIMENSION(6) :: ACC_ID,IACC,IDIR
72 my_real ,
DIMENSION(6) :: acc,tmin
73 CHARACTER(LEN=NCHARKEY) :: DIR(6),DIRACC
74 LOGICAL :: IS_AVAILABLE
78 is_available = .false.
81 CALL hm_get_floatv(
'Tdelay' ,tdel ,is_available,lsubmodel,unitab)
82 CALL hm_get_intv (
'NACCEL1',nacc ,is_available,lsubmodel)
84 CALL hm_get_intv (
'IACC1' ,acc_id(1) ,is_available,lsubmodel)
86 CALL hm_get_floatv(
'Tomin1' ,acc(1) ,is_available,lsubmodel,unitab)
87 CALL hm_get_floatv(
'Tmin1' ,tmin(1) ,is_available,lsubmodel,unitab)
89 CALL hm_get_intv (
'IACC2' ,acc_id(2) ,is_available,lsubmodel)
92 CALL hm_get_floatv(
'Tmin2' ,tmin(2) ,is_available,lsubmodel,unitab)
94 CALL hm_get_intv (
'IACC3' ,acc_id(3) ,is_available,lsubmodel)
96 CALL hm_get_floatv(
'Tomin3' ,acc(3) ,is_available,lsubmodel,unitab)
97 CALL hm_get_floatv(
'Tmin3' ,tmin(3) ,is_available,lsubmodel,unitab)
99 CALL hm_get_intv (
'IACC4' ,acc_id(4) ,is_available,lsubmodel)
101 CALL hm_get_floatv(
'Tomin4' ,acc(4) ,is_available,lsubmodel,unitab)
102 CALL hm_get_floatv(
'Tmin4' ,tmin(4) ,is_available,lsubmodel,unitab)
104 CALL hm_get_intv (
'IACC5' ,acc_id(5) ,is_available,lsubmodel)
106 CALL hm_get_floatv(
'Tomin5' ,acc(5) ,is_available,lsubmodel,unitab)
107 CALL hm_get_floatv(
'Tmin5' ,tmin(5) ,is_available,lsubmodel,unitab)
109 CALL hm_get_intv (
'IACC6' ,acc_id(6) ,is_available,lsubmodel)
111 CALL hm_get_floatv(
'Tomin6' ,acc(6) ,is_available,lsubmodel,unitab)
112 CALL hm_get_floatv('tmin6
' ,TMIN(6) ,IS_AVAILABLE,LSUBMODEL,UNITAB)
117 CALL ANCMSG(MSGID=44,MSGTYPE=MSGERROR,ANMODE=ANINFO,
118 . I1=SENS_ID, C1=TITR, I2=NACC)
125 IF (ACC_ID(I) == LACCELM(2,J)) THEN
130 IF (IACC(I) == 0) THEN
131 CALL ANCMSG(MSGID=45, MSGTYPE=MSGERROR, ANMODE=ANINFO_BLIND_2,
132 . I1=SENS_ID, C1=TITR, I2=ACC_ID(I))
138 LEN = LEN_TRIM(DIR(I))
139 DIRACC = DIR(I)(1:LEN)
140 IF (DIRACC(1:1) == 'x.OR.
' DIRACC(1:1) == 'x
') IDIR(I) = IDIR(I)+1
141 IF (DIRACC(1:1) == 'y.OR.
' DIRACC(1:1) == 'y
') IDIR(I) = IDIR(I)+2
142 IF (DIRACC(1:1) == 'z.OR.
' DIRACC(1:1) == 'z
') IDIR(I) = IDIR(I)+4
146 SENSOR_PTR%TYPE = SENS_TYPE
147 SENSOR_PTR%SENS_ID = SENS_ID
148 SENSOR_PTR%STATUS = 0 ! status = deactivated
149 SENSOR_PTR%TSTART = INFINITY
150 SENSOR_PTR%TCRIT = INFINITY
151 SENSOR_PTR%TMIN = ZERO ! TMIN global
152 SENSOR_PTR%TDELAY = TDEL ! time delay before activation
153 SENSOR_PTR%VALUE = ZERO
155 NPARIS = NACC * 2 + 1
159 SENSOR_PTR%NPARI = NPARIS
160 SENSOR_PTR%NPARR = NPARRS
161 SENSOR_PTR%NVAR = NVAR
163 ALLOCATE (SENSOR_PTR%IPARAM(NPARIS))
164 ALLOCATE (SENSOR_PTR%RPARAM(NPARRS))
165 ALLOCATE (SENSOR_PTR%VAR(NVAR))
166 SENSOR_PTR%VAR(:) = ZERO
168 SENSOR_PTR%IPARAM(1) = NACC
171 SENSOR_PTR%IPARAM(J+1) = IACC(I)
172 SENSOR_PTR%IPARAM(J+2) = IDIR(I)
177 SENSOR_PTR%RPARAM(J+1) = ACC(I)
178 SENSOR_PTR%RPARAM(J+2) = TMIN(I)
179 SENSOR_PTR%RPARAM(J+3) = INFINITY
183 WRITE(IOUT, 1000) SENS_ID,TDEL
184 WRITE(IOUT, 2000) NACC
186 WRITE(IOUT, 3000) ACC_ID(I),IDIR(I),ACC(I),TMIN(I)
190 . 5X,' sensor
TYPE 1: accelerometer
'/,
191 . 5X,' -----------------------------
'/,
192 . 5X,'sensor
id. . . . . . . . . . . . . . . . .=
',I10/
193 . 5X,'time delay before activation . . . . . . .=
',E12.4)
195 . 5X,'number of accelerometers . . . . . . . . .=
',I10)
197 . 5X,' accelerometer
id. . . . . . . . . . . .=
',I10/
198 . 5X,' direction . . . . . . . . . . . . . . .=
',I10/
199 . 5X,' minimum acceleration
for activation . .=
',E12.4/
200 . 5X,' minimum acc. duration
for activation .=
',E12.4/)