51#include "implicit_f.inc"
59 INTEGER ,
INTENT(IN) :: SENS_ID
60 CHARACTER(LEN=NCHARTITLE)::TITR
61 TYPE (SENSOR_STR_) :: SENSOR_PTR
62 TYPE (SUBMODEL_DATA) ,
DIMENSION(NSUBMOD) :: LSUBMODEL
63 TYPE (UNIT_TYPE_) ,
INTENT(IN) :: UNITAB
67 INTEGER :: RBOD_ID,IDIR,NPARIS,NPARRS,NVAR,SENS_TYPE
69 CHARACTER(LEN=NCHARKEY) :: DIR
70 LOGICAL :: IS_AVAILABLE
74 is_available = .false.
78 CALL hm_get_floatv(
'Tdelay' ,tdel ,is_available,lsubmodel,unitab)
80 CALL hm_get_intv (
'rbodyID' ,rbod_id ,is_available,lsubmodel)
82 CALL hm_get_floatv(
'Fmin' ,fmin ,is_available,lsubmodel,unitab)
83 CALL hm_get_floatv(
'Fmax' ,fmax ,is_available,lsubmodel,unitab)
84 CALL hm_get_floatv(
'Tmin' ,tmin ,is_available,lsubmodel,unitab)
89 IF (dir(1:2) ==
'TF' .OR. dir(1:2) ==
'tf') idir = 1
90 IF (dir(1:2) ==
'TM' .OR. dir(1:2) ==
'tm') idir = 2
91 IF (idir == 0 .AND. len_trim(dir) /= 0 )
THEN
92 CALL ancmsg(msgid=1594, msgtype=msgerror, anmode=aninfo_blind,
93 . i1=sens_id, c1=titr, c2=dir)
97 sensor_ptr%TYPE = sens_type
98 sensor_ptr%SENS_ID = sens_id
100 sensor_ptr%TSTART = infinity
101 sensor_ptr%TCRIT = infinity
102 sensor_ptr%TMIN = tmin
103 sensor_ptr%TDELAY = tdel
104 sensor_ptr%VALUE = zero
110 sensor_ptr%NPARI = nparis
111 sensor_ptr%NPARR = nparrs
112 sensor_ptr%NVAR = nvar
114 ALLOCATE (sensor_ptr%IPARAM(nparis))
115 ALLOCATE (sensor_ptr%RPARAM(nparrs))
116 ALLOCATE (sensor_ptr%VAR(nvar))
117 sensor_ptr%VAR(:) = zero
119 sensor_ptr%IPARAM(1) = rbod_id
120 sensor_ptr%IPARAM(2) = idir
122 sensor_ptr%RPARAM(1) = fmin
123 sensor_ptr%RPARAM(2) = fmax
125 WRITE (iout, 1000) sens_id,tdel
126 WRITE (iout,2000) rbod_id,fmin
129 & 5x,
' SENSOR TYPE 11: RIGID BODY FORCE '/,
130 & 5x,
' -------------------------------- '/,
131 & 5x,
'SENSOR ID. . . . . . . . . . . . . . . . .=',i8/
132 & 5x,
'TIME DELAY BEFORE ACTIVATION . . . . . . .=',e12.4)
134 . 5x,
' RIGID BODY ID . . . . . . . . . . . . .=',i8/
135 . 5x,
' FORCE MIN . . . . . . . . . . . . . . .=',e12.4/
136 . 5x,
' FORCE MAX . . . . . . . . . . . . . . .=',e12.4/
137 . 5x,
' MIN DURATION LIMIT. . . . . . . . . . .=',e12.4/
138 . 5x,
' FORCE DIRECTION . . . . . . . . . . . .=',2x,a/)
subroutine read_sensor_rbody(sensor_ptr, sens_id, titr, unitab, lsubmodel)
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)