39
40
41
45 USE sensor_mod
47
48
49
50#include "implicit_f.inc"
51
52
53
54#include "analyse_name.inc"
55
56
57
58#include "com04_c.inc"
59#include "units_c.inc"
60
61
62
63 INTEGER ,INTENT(IN) :: SENS_ID
64 INTEGER ,DIMENSION(NUMNOD) ,INTENT(IN) :: ITABM1
65 TYPE (SENSOR_STR_) :: SENSOR_PTR
66 TYPE (SUBMODEL_DATA) ,DIMENSION(NSUBMOD) :: LSUBMODEL
67 TYPE (UNIT_TYPE_) ,INTENT(IN) ::UNITAB
68
69
70
71 INTEGER :: NOD1,NS,NNOD,NPARIS,NPARRS,NVAR,SENS_TYPE
73 CHARACTER MESS*40
74 LOGICAL :: IS_AVAILABLE
75 DATA mess/'SENSOR DEFINITION '/
76
77
78
79 INTEGER USR2SYS
80
81
82
83 is_available = .false.
84 sens_type = 9
85 tmin = zero
86
87
88 CALL hm_get_floatv(
'Tdelay' ,tdel ,is_available,lsubmodel,unitab)
89
90 CALL hm_get_intv (
'N1' ,nod1 ,is_available,lsubmodel)
91 CALL hm_get_floatv(
'VEL_Vmax' ,vmax ,is_available,lsubmodel,unitab)
92 CALL hm_get_floatv(
'INTER_FCUT' ,freq ,is_available,lsubmodel,unitab)
93
94
95
96 nnod =
usr2sys(nod1,itabm1,mess,ns)
98
99
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
107 sensor_ptr%VALUE = zero
108
109 nparis = 1
110 nparrs = 2
112
113 sensor_ptr%NPARI = nparis
114 sensor_ptr%NPARR = nparrs
115 sensor_ptr%NVAR =
nvar
116
117 ALLOCATE (sensor_ptr%IPARAM(nparis))
118 ALLOCATE (sensor_ptr%RPARAM(nparrs))
119 ALLOCATE (sensor_ptr%VAR(
nvar))
120 sensor_ptr%VAR(:) = zero
121
122 sensor_ptr%IPARAM(1) = nnod
123
124 sensor_ptr%RPARAM(1) = vmax
125 sensor_ptr%RPARAM(2) = freq
126
127 WRITE(iout, 1000) sens_id,tdel
128 WRITE(iout, 2000) nod1,vmax,freq
129
130 1000 FORMAT(
131 . 5x,' SENSOR TYPE 9: NODAL VELOCITY '/,
132 . 5x,' ----------------------------- '/,
133 . 5x,'SENSOR ID. . . . . . . . . . . . . . . . .=',i10/
134 . 5x,'TIME DELAY BEFORE ACTIVATION . . . . . . .=',e12.4)
135 2000 FORMAT(
136 . 5x,' NODE ID . . . . . . . . . . . . . . . .=',i10/
137 . 5x,' MAXIMUM VELOCITY. . . . . . . . . . . .=',e12.4/
138 . 5x,' FILERING FREQUENCY. . . . . . . . . . .=',e12.4/)
139
140 RETURN
void anodset(int *id, int *type)
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
integer function nvar(text)
integer function usr2sys(iu, itabm1, mess, id)