40
41
42
46 USE sensor_mod
49
50
51
52#include "implicit_f.inc"
53
54
55
56#include "com04_c.inc"
57#include "units_c.inc"
58
59
60
61 INTEGER ,INTENT(IN) :: SENS_ID
62 INTEGER ,DIMENSION(3,*) ,INTENT(IN) :: LGAUGE
63 CHARACTER(LEN=NCHARTITLE)::TITR
64 TYPE (SENSOR_STR_) :: SENSOR_PTR
65 TYPE (SUBMODEL_DATA) ,DIMENSION(NSUBMOD) :: LSUBMODEL
66 TYPE (UNIT_TYPE_) ,INTENT(IN) ::UNITAB
67
68
69
70 INTEGER :: I,J,NGAU,NPARIS,NPARRS,NVAR,SENS_TYPE
72 INTEGER ,DIMENSION(6) :: IGAU,G_ID
73 my_real ,
DIMENSION(6) :: pres,tmin
74 LOGICAL :: IS_AVAILABLE
75
76
77
78 is_available = .false.
79 sens_type = 10
80
81
82 CALL hm_get_floatv(
'Tdelay' ,tdel ,is_available,lsubmodel,unitab)
83
84 CALL hm_get_intv (
'NIP' ,ngau ,is_available,lsubmodel)
85
90 ENDDO
91
92 IF (ngau > 6) THEN
93 CALL ancmsg(msgid=833, msgtype=msgerror, anmode=aninfo, i1=sens_id,c1=titr)
94 ENDIF
95
96 DO i=1,ngau
97 igau(i) = 0
98 DO j = 1,nbgauge
99 IF (g_id(i) == lgauge(2,j)) THEN
100 igau(i) = j
101 EXIT
102 ENDIF
103 ENDDO
104 IF (igau(i) == 0) THEN
105 CALL ancmsg(msgid=834, msgtype=msgerror, anmode=aninfo_blind_2,
106 . i1=sens_id, c1=titr)
107 EXIT
108 END IF
109 ENDDO
110
111
112 sensor_ptr%TYPE = sens_type
113 sensor_ptr%SENS_ID = sens_id
114 sensor_ptr%STATUS = 0 ! status = deactivated
115 sensor_ptr%TSTART = infinity
116 sensor_ptr%TCRIT = infinity
117 sensor_ptr%TMIN = zero
118 sensor_ptr%TDELAY = tdel
119 sensor_ptr%VALUE = zero
120
121 nparis = ngau + 1
122 nparrs = ngau * 3
124
125 sensor_ptr%NPARI = nparis
126 sensor_ptr%NPARR = nparrs
127 sensor_ptr%NVAR =
nvar
128
129 ALLOCATE (sensor_ptr%IPARAM(nparis))
130 ALLOCATE (sensor_ptr%RPARAM(nparrs))
131 ALLOCATE (sensor_ptr%VAR(
nvar))
132 sensor_ptr%VAR(:) = zero
133
134 sensor_ptr%IPARAM(1) = ngau
135 DO i = 1,ngau
136 sensor_ptr%IPARAM(i+1) = igau(i)
137 END DO
138 j = 0
139 DO i = 1,ngau
140 sensor_ptr%RPARAM(j+1) = pres(i)
141 sensor_ptr%RPARAM(j+2) = tmin(i)
142 sensor_ptr%RPARAM(j+3) = infinity
143 j = j+3
144 END DO
145
146 WRITE(iout, 1000) sens_id,tdel
147 WRITE(iout, 2000) ngau
148 DO i = 1,ngau
149 WRITE(iout, 3000) g_id(i),pres(i),tmin(i)
150 END DO
151
152 1000 FORMAT(
153 . 5x,' SENSOR TYPE 10: PRESSURE GAUGE '/,
154 . 5x,' ------------------------------ '/,
155 . 5x,'SENSOR ID. . . . . . . . . . . . . . . . .=',i10/
156 . 5x,'TIME DELAY BEFORE ACTIVATION . . . . . . .=',e12.4)
157 2000 FORMAT(
158 . 5x,'NUMBER OF GAUGES . . . . . . . . . . . . .=',i10)
159 3000 FORMAT(
160 . 5x,' GAUGE ID . . . . . . . . . . . . . . .=',i10/
161 . 5x,' MIN PRESSURE FOR ACTIVATION . . . . . .=',e12.4/
162 . 5x,' MINIMUM PRES. DURATION FOR ACTIVATION .=',e12.4/)
163
164 RETURN
subroutine hm_get_float_array_index(name, rval, index, is_available, lsubmodel, unitab)
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_int_array_index(name, ival, index, is_available, lsubmodel)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
integer, parameter nchartitle
integer function nvar(text)
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)