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 :: RWALL_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 (
'RWALL_ID' ,rwall_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:1) ==
'X' .OR. dir(1:1) ==
'x') idir=1
90 IF (dir(1:1) ==
'Y' .OR. dir(1:1) ==
'Y') idir=2
91 IF (dir(1:1) ==
'Z' .OR. dir(1:1) ==
'Z') idir=4
92 IF (dir(1:2) ==
'NF' .OR. dir(1:2) ==
'nf') idir=5
93 IF (dir(1:2) ==
'FN' .OR. dir(1:2) ==
'fn') idir=5
94 IF (dir(1:2) ==
'TF' .OR. dir(1:2) ==
'tf') idir=6
95 IF (dir(1:2) ==
'FT' .OR. dir(1:2) ==
'ft') idir=6
96 IF (idir == 0 .AND. len_trim(dir) /= 0 )
THEN
97 CALL ancmsg(msgid=1594, msgtype=msgerror, anmode=aninfo_blind,
98 . i1=sens_id, c1=titr, c2=dir)
102 sensor_ptr%TYPE = sens_type
103 sensor_ptr%SENS_ID = sens_id
104 sensor_ptr%STATUS = 0
105 sensor_ptr%TSTART = infinity
106 sensor_ptr%TCRIT = infinity
107 sensor_ptr%TMIN = tmin
108 sensor_ptr%TDELAY = tdel
109 sensor_ptr%VALUE = zero
115 sensor_ptr%NPARI = nparis
116 sensor_ptr%NPARR = nparrs
117 sensor_ptr%NVAR = nvar
119 ALLOCATE (sensor_ptr%IPARAM(nparis))
120 ALLOCATE (sensor_ptr%RPARAM(nparrs))
121 ALLOCATE (sensor_ptr%VAR(nvar))
122 sensor_ptr%VAR(:) = zero
124 sensor_ptr%IPARAM(1) = rwall_id
125 sensor_ptr%IPARAM(2) = idir
127 sensor_ptr%RPARAM(1) = fmin
128 sensor_ptr%RPARAM(2) = fmax
130 WRITE (iout, 1000) sens_id,tdel
131 WRITE (iout, 2000) rwall_id,fmin,fmax,tmin,dir(1:len_trim(dir))
134 . 5x,
' SENSOR TYPE 7: RIGID WALL FORCE '/,
135 . 5x,
' ------------------------------- '/,
136 . 5x,
'SENSOR ID. . . . . . . . . . . . . . . . .=',i10/
137 . 5x,
'TIME DELAY BEFORE ACTIVATION . . . . . . .=',e12.4)
139 . 5x,
' RIGID WALL ID . . . . . . . . . . . . .=',i10/
140 . 5x,
' FORCE MIN . . . . . . . . . . . . . . .=',e12.4/
141 . 5x,
' FORCE MAX . . . . . . . . . . . . . . .=',e12.4/
142 . 5x,
' MIN DURATION LIMIT. . . . . . . . . . .=',e12.4/
143 . 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)