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 :: ,IDIR,NPARIS,NPARRS,NVAR,SENS_TYPE
68 my_real :: tdel,tmin,fmin,fmax,freq
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 (
'InterfaceId' ,int_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)
85 CALL hm_get_floatv(
'INTER_FCUT' ,freq ,is_available,lsubmodel,unitab)
90 IF (dir(1:2) ==
'NF' .OR. dir(1:2) ==
'nf') idir = 1
91 IF (dir(1:2) ==
'FN' .OR. dir(1:2) ==
'fn') idir = 1
92 IF (dir(1:2) ==
'TF' .OR. dir(1:2) ==
'tf') idir = 2
93 IF (dir(1:2) ==
'FT' .OR. dir(1:2) ==
'ft') idir = 2
94 IF (idir == 0 .AND. len_trim(dir) /= 0 )
THEN
95 CALL ancmsg(msgid=1594, msgtype=msgerror, anmode=aninfo_blind,
96 . i1=sens_id, c1=titr, c2=dir)
100 sensor_ptr%TYPE = sens_type
101 sensor_ptr%SENS_ID = sens_id
102 sensor_ptr%STATUS = 0
103 sensor_ptr%TSTART = infinity
104 sensor_ptr%TCRIT = infinity
105 sensor_ptr%TMIN = tmin
106 sensor_ptr%TDELAY = tdel
113 sensor_ptr%NPARI = nparis
114 sensor_ptr%NPARR = nparrs
115 sensor_ptr%NVAR = nvar
117 ALLOCATE (sensor_ptr%IPARAM(nparis))
118 ALLOCATE (sensor_ptr%RPARAM(nparrs))
119 ALLOCATE (sensor_ptr%VAR(nvar))
120 sensor_ptr%VAR(:) = zero
122 sensor_ptr%IPARAM(1) = int_id
123 sensor_ptr%IPARAM(2) = 0
124 sensor_ptr%IPARAM(3) = idir
126 sensor_ptr%RPARAM(1) = fmin
127 sensor_ptr%RPARAM(2) = fmax
128 sensor_ptr%RPARAM(3) = freq
130 WRITE (iout, 1000) sens_id,tdel
131 WRITE (iout, 2000) int_id,fmin,fmax,tmin,freq,dir(1:len_trim(dir))
134 & 5x,
' SENSOR TYPE 6: CONTACT FORCE '/,
135 & 5x,
' ----------------------------- '/,
136 & 5x,
'SENSOR ID. . . . . . . . . . . . . . . . .=',i10/
137 & 5x,
'TIME DELAY BEFORE ACTIVATION . . . . . . .=',e12.4)
139 . 5x,
' INTERFACE ID. . . . . . . . . . . . . .=',i10/
140 . 5x,
' FORCE MIN . . . . . . . . . . . . . . .=',e12.4/
141 . 5x,
' FORCE MAX . . . . . . . . . . . . . . .=',e12.4/
142 . 5x,
' MIN DURATION LIMIT. . . . . . . . . . .=',e12.4/
143 . 5x,
' FILTERING FREQUENCY . . . . . . . . . .=',e12.4/
144 . 5x,
' FORCE DIRECTION . . . . . . . . . . . .=',2x,a/)
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)