44 SUBROUTINE hm_read_gauge(LGAUGE,GAUGE,ITABM1,UNITAB,IXC,NOM_OPT,LSUBMODEL)
54 use element_mod ,
only : nixc
58#include "implicit_f.inc"
70 TYPE (UNIT_TYPE_),
INTENT(IN) ::
71 INTEGER,
INTENT(IN) :: IXC(NIXC,*),ITABM1(*)
72 INTEGER,
INTENT(INOUT) :: LGAUGE(3,*)
73 INTEGER NOM_OPT(LNOPT1,*)
85 INTEGER I, J, NGAU, NOD, NBGAUGE_SPH, NBGAUGE_POINT
87 my_real ff,bid,dist,xgauge,ygauge,zgauge
89 CHARACTER(LEN=NCHARTITLE) :: TITR
90 CHARACTER(LEN=NCHARKEY) :: KEY
91 DATA mess/
'GAUGE DEFINITION '/
93 is_available = .false.
146 IF ( nbgauge_sph > 0)
THEN
158 CALL fretitl(titr,nom_opt(lnopt1-ltitr+1,i),ltitr)
163 lgauge(1,i)=-(numels+1)
165 CALL hm_get_intv (
'NODE1' ,nod ,is_available,lsubmodel)
166 CALL hm_get_intv (
'shell_ID' ,ns ,is_available,lsubmodel)
167 CALL hm_get_floatv (
'DIST' ,dist ,is_available, lsubmodel, unitab)
168 CALL hm_get_floatv (
'Fcut' ,ff ,is_available, lsubmodel, unitab)
174 WRITE (iout,'(///,a)
')' sph gauge
'
175 WRITE (IOUT,'(a/)
') ' ---------
'
176 WRITE (IOUT,'(a,i10)
')' sph gauge number . . . . . . . . . . .
',NGAU
179 LGAUGE(3,I)=USR2SYS(NOD,ITABM1,MESS,NGAU)
180 WRITE (IOUT,'(a,i10)
')' node number. . . . . . . . . . . . . .
',NOD
183 IF(IXC(NIXC,J)==NS)THEN
188 WRITE (IOUT,'(a,i10)
') ' shell number . . . . . . . . . . . . .
',NS
189 WRITE (IOUT,'(a,1pg20.13)
')' distance . . . . . . . . . . . . . . .
',DIST
191 WRITE (IOUT,'(a,1pg20.13)
') ' 4-pole
butterworth corner frequency. .
',FF
201 CALL HM_OPTION_COUNT('/gauge/point
', NBGAUGE_POINT)
203 IF ( NBGAUGE_POINT > 0)THEN
204 CALL HM_OPTION_START('/gauge/point
')
207 CALL HM_OPTION_READ_KEY(LSUBMODEL,OPTION_ID=NGAU,KEYWORD2=KEY,OPTION_TITR=TITR)
209 CALL FRETITL(TITR,NOM_OPT(LNOPT1-LTITR+1,I),LTITR)
211 !Multidomatic-> We do not know the non-tagged sections ----
213 IF(TAGGAU(NG) == 0) CALL SZ_R2R(TAGGAU,NG)
215 !-----------------------------------------------------------------
217 CALL HM_GET_FLOATV ('xi
' ,Xgauge ,IS_AVAILABLE, LSUBMODEL, UNITAB)
218 CALL HM_GET_FLOATV ('yi
' ,Ygauge ,IS_AVAILABLE, LSUBMODEL, UNITAB)
219 CALL HM_GET_FLOATV ('zi
' ,Zgauge ,IS_AVAILABLE, LSUBMODEL, UNITAB)
221 LGAUGE(3,NG)=0 ! ID shell or node only
222 GAUGE(1,NG)=ZERO ! DIST
223 GAUGE(9,NG)=ZERO ! FF
227 WRITE (IOUT,'(///,a)
')' gauge
'
228 WRITE (IOUT,'(a/)
') ' -----
'
229 WRITE (IOUT,'(a,i10)
')' gauge number . . . . . . . . . . . . .
',NGAU
230 WRITE (IOUT,'(a,i10)
')' gauge point coordinate:
'
231 WRITE (IOUT,'(a,/1p3g20.13/)
')' xg yg zg
',Xgauge, Ygauge, Zgauge
232 WRITE (IOUT,'(a,1pg20.13)
')' 4-pole
butterworth corner frequency. .
',FF
233 ENDDO ! DO I=1,NBGAUGE_POINT
234 ENDIF ! IF ( NBGAUGE_POINT > 0)
238 CALL HM_OPTION_START('/gauge
')
242 CALL HM_OPTION_READ_KEY(LSUBMODEL,OPTION_ID=NGAU,KEYWORD2=KEY,OPTION_TITR=TITR)
244 CALL FRETITL(TITR,NOM_OPT(LNOPT1-LTITR+1,I),LTITR)
246 IF (KEY == 'sph.OR.
' KEY == 'point
') CYCLE
248 !Multidomatic-> We do not know the non-tagged sections ----
250 IF(TAGGAU(NG) == 0) CALL SZ_R2R(TAGGAU,NG)
252 !-----------------------------------------------------------------
256 CALL HM_GET_INTV ('node1
' ,NOD ,IS_AVAILABLE,LSUBMODEL)
257 CALL HM_GET_INTV ('shell_id
' ,NS ,IS_AVAILABLE,LSUBMODEL)
258 CALL HM_GET_FLOATV ('dist
' ,DIST ,IS_AVAILABLE, LSUBMODEL, UNITAB)
264 WRITE (IOUT,'(///,a)
')' gauge
'
265 WRITE (IOUT,'(a/)
') ' -----
'
266 WRITE (IOUT,'(a,i10)
')' gauge number . . . . . . . . . . . . .
',NGAU
268 LGAUGE(3,NG)=USR2SYS(NOD,ITABM1,MESS,NGAU)
269 WRITE (IOUT,'(a,i10)
')' node number. . . . . . . . . . . . . .
',NOD
272 IF(IXC(NIXC,J)==NS)THEN
277 IF (LGAUGE(3,NG) == 0)CALL ANCMSG(MSGID=3013,MSGTYPE=MSGERROR,ANMODE=ANINFO,I1=NGAU,C1=TITR,I2=NS)
278 WRITE (IOUT,'(/,a,i10)
')' shell number . . . . . . . . . . . . .
',NS
279 WRITE (IOUT,'(a,1pg20.13)
')' distance . . . . . . . . . . . . . . .
',DIST
281 WRITE (IOUT,'(a,1pg20.13)
')' 4-pole
',FF
288 CALL VDOUBLE(NOM_OPT,LNOPT1,NBGAUGE,MESS,0,BID)
subroutine butterworth(dt, freq, x2, x1, x, fx2, fx1, fx)
subroutine hm_read_gauge(lgauge, gauge, itabm1, unitab, ixc, nom_opt, lsubmodel)