OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
usensor.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23
24!||====================================================================
25!|| usensor_dum ../engine/source/user_interface/usensor.F
26!||--- called by ------------------------------------------------------
27!|| radioss2 ../engine/source/engine/radioss2.F
28!||====================================================================
29 SUBROUTINE usensor_dum(IERR)
30C---------+---------+---+---+--------------------------------------------
31#include "implicit_f.inc"
32 INTEGER IERR
33 ierr=0
34 END
35!||====================================================================
36!|| get_u_numsens ../engine/source/user_interface/usensor.F
37!||--- called by ------------------------------------------------------
38!|| csens3 ../engine/source/elements/shell/coque/csens3.F
39!|| force ../engine/source/loads/general/force.F90
40!|| forcepinch ../engine/source/loads/general/forcepinch.F
41!|| h3d_pre_skin_scalar ../engine/source/output/h3d/h3d_results/h3d_skin_scalar.F
42!|| h3d_skin_vector ../engine/source/output/h3d/h3d_results/h3d_skin_vector.F
43!|| load_pressure ../engine/source/loads/general/load_pressure/load_pressure.F
44!|| pfluid ../engine/source/loads/general/pfluid/pfluid.F
45!||--- uses -----------------------------------------------------
46!|| sensor_mod ../common_source/modules/sensor_mod.F90
47!|| user_interface_mod ../engine/source/modules/user_interface_mod.F90
48!||====================================================================
49 INTEGER FUNCTION get_u_numsens(IDSENS)
50C-----------------------------------------------
51C M o d u l e s
52C-----------------------------------------------
53 USE sensor_mod
54 USE user_interface_mod
55C-----------------------------------------------
56C I m p l i c i t T y p e s
57C-----------------------------------------------
58#include "implicit_f.inc"
59C-----------------------------------------------
60C C o m m o n B l o c k s
61C-----------------------------------------------
62#include "com04_c.inc"
63C-----------------------------------------------
64C D u m m y A r g u m e n t s
65C-----------------------------------------------
66 INTEGER idsens
67 INTEGER j,id,ityp
68C=======================================================================
69C
71 IF(idsens<=0)THEN
72 RETURN
73 ENDIF
74C---
75 DO j=1,sensors%NSENSOR
76
77 id = sensors%SENSOR_TAB(j)%SENS_ID
78 ityp = sensors%SENSOR_TAB(j)%TYPE
79
80 IF(idsens==id)THEN
81 IF (ityp>=29 .AND. ityp<=31)THEN
83 RETURN
84 ENDIF
85
86 ENDIF
87
88 ENDDO
89C---
90 RETURN
91 END
92!||====================================================================
93!|| get_u_sens_id ../engine/source/user_interface/usensor.F
94!||--- uses -----------------------------------------------------
95!|| sensor_mod ../common_source/modules/sensor_mod.F90
96!|| user_interface_mod ../engine/source/modules/user_interface_mod.F90
97!||====================================================================
98 INTEGER FUNCTION get_u_sens_id(ISENS)
99C-----------------------------------------------
100C M o d u l e s
101C-----------------------------------------------
102 USE sensor_mod
103 USE user_interface_mod
104C-----------------------------------------------
105C I m p l i c i t T y p e s
106C-----------------------------------------------
107#include "implicit_f.inc"
108C-----------------------------------------------
109C D u m m y A r g u m e n t s
110C-----------------------------------------------
111 INTEGER isens
112C=======================================================================
113 get_u_sens_id = 0
114
115 IF(isens<=0)THEN
116 RETURN
117 ENDIF
118
119 get_u_sens_id = sensors%SENSOR_TAB(isens)%SENS_ID
120C---
121 RETURN
122 END
123!||====================================================================
124!|| set_u_sens_value ../engine/source/user_interface/usensor.F
125!||--- called by ------------------------------------------------------
126!|| csens3 ../engine/source/elements/shell/coque/csens3.F
127!|| force ../engine/source/loads/general/force.F90
128!|| forcepinch ../engine/source/loads/general/forcepinch.F
129!|| h3d_pre_skin_scalar ../engine/source/output/h3d/h3d_results/h3d_skin_scalar.F
130!|| h3d_skin_vector ../engine/source/output/h3d/h3d_results/h3d_skin_vector.F
131!|| load_pressure ../engine/source/loads/general/load_pressure/load_pressure.F
132!|| pfluid ../engine/source/loads/general/pfluid/pfluid.F
133!||--- uses -----------------------------------------------------
134!|| sensor_mod ../common_source/modules/sensor_mod.F90
135!|| user_interface_mod ../engine/source/modules/user_interface_mod.F90
136!||====================================================================
137 INTEGER FUNCTION set_u_sens_value(NSENS,IVAR,VAR)
138C-----------------------------------------------
139C M o d u l e s
140C-----------------------------------------------
141 USE sensor_mod
142 USE user_interface_mod
143C-----------------------------------------------
144C I m p l i c i t T y p e s
145C-----------------------------------------------
146#include "implicit_f.inc"
147C-----------------------------------------------
148C D u m m y A r g u m e n t s
149C-----------------------------------------------
150 INTEGER nsens,ityp,ivar
151 my_real var
152C=======================================================================
154
155 IF(nsens==0)THEN
156 RETURN
157 ENDIF
158
159 IF(ivar>lsenbuf-1)THEN
160 WRITE(*,*)"ERROR WRITING USER SENSOR / TOO MANY VARIABLES"
161 RETURN
162 ENDIF
163
164 ityp = sensors%SENSOR_TAB(nsens)%TYPE
165C
166 IF (ityp>=29 .AND. ityp<=31)THEN
167
168 sensors%SENSOR_TAB(nsens)%FLOAT_USERBUF(ivar) = var
170
171 ENDIF
172C---
173 RETURN
174 END
175!||====================================================================
176!|| get_u_sens_value ../engine/source/user_interface/usensor.F
177!||--- called by ------------------------------------------------------
178!|| csens3 ../engine/source/elements/shell/coque/csens3.F
179!|| force ../engine/source/loads/general/force.F90
180!|| forcepinch ../engine/source/loads/general/forcepinch.F
181!|| h3d_pre_skin_scalar ../engine/source/output/h3d/h3d_results/h3d_skin_scalar.F
182!|| h3d_skin_vector ../engine/source/output/h3d/h3d_results/h3d_skin_vector.F
183!|| load_pressure ../engine/source/loads/general/load_pressure/load_pressure.F
184!|| pfluid ../engine/source/loads/general/pfluid/pfluid.F
185!||--- uses -----------------------------------------------------
186!|| sensor_mod ../common_source/modules/sensor_mod.F90
187!|| user_interface_mod ../engine/source/modules/user_interface_mod.F90
188!||====================================================================
189 INTEGER FUNCTION get_u_sens_value(NSENS, IVAR, VAR)
190C-----------------------------------------------
191C M o d u l e s
192C-----------------------------------------------
193 USE sensor_mod
194 USE user_interface_mod
195C-----------------------------------------------
196C I m p l i c i t T y p e s
197C-----------------------------------------------
198#include "implicit_f.inc"
199C-----------------------------------------------
200C D u m m y A r g u m e n t s
201C-----------------------------------------------
202 INTEGER nsens,ivar,ityp
203 my_real var
204C=======================================================================
206
207 IF(nsens==0)THEN
208 var = 0.0
209 RETURN
210 ENDIF
211
212 IF(ivar>lsenbuf-1)THEN
213 WRITE(*,*)"ERROR READING USER SENSOR / TOO MANY VARIABLES"
214 RETURN
215 ENDIF
216
217 ityp = sensors%SENSOR_TAB(nsens)%TYPE
218
219 IF (ityp>=29 .AND. ityp<=31)THEN
220
221 var = sensors%SENSOR_TAB(nsens)%FLOAT_USERBUF(ivar)
223
224 ENDIF
225C---
226 RETURN
227 END
228!||====================================================================
229!|| set_u_sens_maxvalue ../engine/source/user_interface/usensor.F
230!||--- called by ------------------------------------------------------
231!|| csens3 ../engine/source/elements/shell/coque/csens3.F
232!||--- uses -----------------------------------------------------
233!|| sensor_mod ../common_source/modules/sensor_mod.F90
234!|| user_interface_mod ../engine/source/modules/user_interface_mod.F90
235!||====================================================================
236 INTEGER FUNCTION set_u_sens_maxvalue(NSENS,IVAR,VAR)
237C-----------------------------------------------
238C M o d u l e s
239C-----------------------------------------------
240 USE sensor_mod
241 USE user_interface_mod
242C-----------------------------------------------
243C I m p l i c i t T y p e s
244C-----------------------------------------------
245#include "implicit_f.inc"
246C-----------------------------------------------
247C C o m m o n B l o c k s
248C-----------------------------------------------
249
250C-----------------------------------------------
251C D u m m y A r g u m e n t s
252C-----------------------------------------------
253 INTEGER nsens,ivar
254 my_real var,maxv
255C=======================================================================
257
258 IF(nsens==0)THEN
259 RETURN
260 ENDIF
261
262 IF (ivar>nsenparr) THEN
263 WRITE(*,*)"ERROR WRITING USER SENSOR / TOO MANY VARIABLES"
264 RETURN
265 ENDIF
266
267 maxv = sensors%SENSOR_TAB(nsens)%FLOAT_USERBUF(ivar)
268 maxv = max(maxv,var)
269 sensors%SENSOR_TAB(nsens)%FLOAT_USERBUF(ivar) = maxv
271C---
272 RETURN
273 END
274!||====================================================================
275!|| get_u_sens_fpar ../engine/source/user_interface/usensor.F
276!||--- called by ------------------------------------------------------
277!|| csens3 ../engine/source/elements/shell/coque/csens3.F
278!|| force ../engine/source/loads/general/force.F90
279!|| forcepinch ../engine/source/loads/general/forcepinch.F
280!|| h3d_pre_skin_scalar ../engine/source/output/h3d/h3d_results/h3d_skin_scalar.F
281!|| h3d_skin_vector ../engine/source/output/h3d/h3d_results/h3d_skin_vector.F
282!|| load_pressure ../engine/source/loads/general/load_pressure/load_pressure.F
283!|| pfluid ../engine/source/loads/general/pfluid/pfluid.F
284!||--- uses -----------------------------------------------------
285!|| sensor_mod ../common_source/modules/sensor_mod.F90
286!|| user_interface_mod ../engine/source/modules/user_interface_mod.f90
287!||====================================================================
288 INTEGER FUNCTION get_u_sens_fpar(NSENS,IVAR,VAR)
289C-----------------------------------------------
290C M o d u l e s
291C-----------------------------------------------
292 USE sensor_mod
293 USE user_interface_mod
294C-----------------------------------------------
295C I m p l i c i t T y p e s
296C-----------------------------------------------
297#include "implicit_f.inc"
298C-----------------------------------------------
299C C o m m o n B l o c k s
300C-----------------------------------------------
301#include "units_c.inc"
302C-----------------------------------------------
303C D u m m y A r g u m e n t s
304C-----------------------------------------------
305 INTEGER nsens,ivar,ityp
306 my_real var
307C=======================================================================
308C
309
310 get_u_sens_fpar = -1
311
312 IF(ivar>nsenparr)THEN
313
314 WRITE(iout,*) ' **ERROR NUMBER OF USER PARAMETER(',ivar,') EXCEED MAXNUPARAM(',nsenparr,')'
315 WRITE(istdo,*) ' **ERROR NUMBER OF USER PARAMETER(',ivar,') EXCEED MAXNUPARAM(',nsenparr,')'
316 get_u_sens_fpar = nsenparr
317
318 RETURN
319 ENDIF
320C
321 ityp = sensors%SENSOR_TAB(nsens)%TYPE
322
323 IF ( ityp>=29 .AND. ityp<=31 )THEN
324
325 var = sensors%SENSOR_TAB(nsens)%FLOAT_USERPARAM(ivar)
327
328 ENDIF
329C---
330 RETURN
331 END
332!||====================================================================
333!|| get_u_sens_ipar ../engine/source/user_interface/usensor.F
334!||--- called by ------------------------------------------------------
335!|| force ../engine/source/loads/general/force.F90
336!|| forcepinch ../engine/source/loads/general/forcepinch.F
337!|| h3d_pre_skin_scalar ../engine/source/output/h3d/h3d_results/h3d_skin_scalar.F
338!|| h3d_skin_vector ../engine/source/output/h3d/h3d_results/h3d_skin_vector.F
339!|| load_pressure ../engine/source/loads/general/load_pressure/load_pressure.F
340!|| pfluid ../engine/source/loads/general/pfluid/pfluid.F
341!||--- uses -----------------------------------------------------
342!|| sensor_mod ../common_source/modules/sensor_mod.F90
343!|| user_interface_mod ../engine/source/modules/user_interface_mod.F90
344!||====================================================================
345 INTEGER FUNCTION get_u_sens_ipar(NSENS,IVAR,VAR)
346C-----------------------------------------------
347C M o d u l e s
348C-----------------------------------------------
349 USE sensor_mod
350 USE user_interface_mod
351C-----------------------------------------------
352C I m p l i c i t T y p e s
353C-----------------------------------------------
354#include "implicit_f.inc"
355C-----------------------------------------------
356C C o m m o n B l o c k s
357C-----------------------------------------------
358#include "units_c.inc"
359C-----------------------------------------------
360C D u m m y A r g u m e n t s
361C-----------------------------------------------
362 INTEGER nsens,ivar,var,ityp
363C=======================================================================
364 get_u_sens_ipar = -1
365
366 IF(ivar>nsenpari)THEN
367
368 WRITE(iout,*) ' **ERROR NUMBER OF USER PARAMETER(',ivar,') EXCEED MAXNUPARAM(',nsenpari,')'
369 WRITE(istdo,*) ' **ERROR NUMBER OF USER PARAMETER(',ivar,') EXCEED MAXNUPARAM(',nsenpari,')'
370
371 get_u_sens_ipar = nsenpari
372
373 RETURN
374
375 ENDIF
376
377 ityp = sensors%SENSOR_TAB(nsens)%TYPE
378
379 IF (ityp>=29 .AND. ityp<=31)THEN
380
381 var = sensors%SENSOR_TAB(nsens)%INTEGER_USERPARAM(ivar)
383
384 ENDIF
385C---
386 RETURN
387 END
388!||====================================================================
389!|| set_u_sens_acti ../engine/source/user_interface/usensor.f
390!||--- uses -----------------------------------------------------
391!|| sensor_mod ../common_source/modules/sensor_mod.F90
392!|| user_interface_mod ../engine/source/modules/user_interface_mod.f90
393!||====================================================================
394 INTEGER FUNCTION set_u_sens_acti(NSENS)
395C-----------------------------------------------
396C M o d u l e s
397C-----------------------------------------------
398 USE sensor_mod
399 USE user_interface_mod
400C-----------------------------------------------
401C I m p l i c i t T y p e s
402C-----------------------------------------------
403#include "implicit_f.inc"
404C-----------------------------------------------
405C C o m m o n B l o c k s
406C-----------------------------------------------
407#include "com08_c.inc"
408#include "com04_c.inc"
409C-----------------------------------------------
410C D u m m y A r g u m e n t s
411C-----------------------------------------------
412 INTEGER nsens,ityp
413 my_real tstart,setvar
414c========================================================================
415 set_u_sens_acti = -1
416
417
418 IF (nsens > 0 .OR. nsens <= sensors%NSENSOR ) THEN
419 ityp = sensors%SENSOR_TAB(nsens)%TYPE
420
421 IF (ityp >= 29 .AND. ityp <= 31)THEN
422
423 tstart = sensors%SENSOR_TAB(nsens)%TSTART
424 setvar = min(tt,tstart)
425
426 sensors%SENSOR_TAB(nsens)%TSTART = setvar
427 sensors%SENSOR_TAB(nsens)%STATUS = 1
429
430 ENDIF
431
432 ENDIF
433C---
434 RETURN
435 END
436c
437!||====================================================================
438!|| set_u_sens_deacti ../engine/source/user_interface/usensor.F
439!||--- uses -----------------------------------------------------
440!|| sensor_mod ../common_source/modules/sensor_mod.F90
441!|| user_interface_mod ../engine/source/modules/user_interface_mod.F90
442!||====================================================================
443 INTEGER FUNCTION set_u_sens_deacti(NSENS)
444C-----------------------------------------------
445C M o d u l e s
446C-----------------------------------------------
447 USE sensor_mod
448 USE user_interface_mod
449C-----------------------------------------------
450C I m p l i c i t T y p e s
451C-----------------------------------------------
452#include "implicit_f.inc"
453C-----------------------------------------------
454C C o m m o n B l o c k s
455C-----------------------------------------------
456#include "com04_c.inc"
457C-----------------------------------------------
458C D u m m y A r g u m e n t s
459C-----------------------------------------------
460 INTEGER nsens,ityp
461c========================================================================
463
464 IF (nsens >= 1 .OR. nsens <= sensors%NSENSOR) THEN
465
466 ityp = sensors%SENSOR_TAB(nsens)%TYPE
467
468 IF (ityp >= 29 .AND. ityp <= 31)THEN
469 sensors%SENSOR_TAB(nsens)%TSTART = ep30
471 ENDIF
472 ENDIF
473C---
474 RETURN
475 END
476c
477!||====================================================================
478!|| get_u_sens_acti ../engine/source/user_interface/usensor.F
479!||--- uses -----------------------------------------------------
480!|| sensor_mod ../common_source/modules/sensor_mod.F90
481!|| user_interface_mod ../engine/source/modules/user_interface_mod.F90
482!||====================================================================
483 my_real FUNCTION get_u_sens_acti(NSENS)
484C-----------------------------------------------
485C M o d u l e s
486C-----------------------------------------------
487 USE sensor_mod
488 USE user_interface_mod
489C-----------------------------------------------
490C I m p l i c i t T y p e s
491C-----------------------------------------------
492#include "implicit_f.inc"
493C-----------------------------------------------
494C C o m m o n B l o c k s
495C-----------------------------------------------
496#include "com04_c.inc"
497#include "com08_c.inc"
498C-----------------------------------------------
499C D u m m y A r g u m e n t s
500C-----------------------------------------------
501 INTEGER nsens
502 my_real tstart
503C-----------------------------------------------
504 get_u_sens_acti = zero
505
506
507
508 IF (nsens < 1 .OR. nsens > sensors%NSENSOR) THEN
509
510 ! Sensor not existing
511 ! --------------------
512 get_u_sens_acti = tt
513
514 ELSE
515
516 tstart=sensors%SENSOR_TAB(nsens)%TSTART
517
518 IF (tt > tstart) THEN
519 get_u_sens_acti = tt-tstart
520 ENDIF
521
522 ENDIF
523C---
524 RETURN
525 END
526c
527!||====================================================================
528!|| get_u_sens ../engine/source/user_interface/usensor.F
529!||--- called by ------------------------------------------------------
530!|| ruser32 ../engine/source/elements/spring/ruser32.F
531!||--- uses -----------------------------------------------------
532!|| sensor_mod ../common_source/modules/sensor_mod.F90
533!|| user_interface_mod ../engine/source/modules/user_interface_mod.F90
534!||====================================================================
535 my_real FUNCTION get_u_sens(USENS)
536C-----------------------------------------------
537C M o d u l e s
538C-----------------------------------------------
539 USE sensor_mod
540 USE user_interface_mod
541C-----------------------------------------------
542C I m p l i c i t T y p e s
543C-----------------------------------------------
544#include "implicit_f.inc"
545C-----------------------------------------------
546C C o m m o n B l o c k s
547C-----------------------------------------------
548#include "com04_c.inc"
549#include "com08_c.inc"
550C-----------------------------------------------
551C D u m m y A r g u m e n t s
552C-----------------------------------------------
553 INTEGER usens,j,li
554 my_real lt
555C-----------------------------------------------
556C
557 get_u_sens = zero
558
559 ! -----------------
560 ! CASE : No Sensor
561 ! -----------------
562 IF(usens==0)THEN
563 get_u_sens = tt
564 RETURN
565 ENDIF
566
567 ! --------------------
568 ! CASE : Find Sensor,
569 ! Do Treatment
570 ! --------------------
571 DO j=1,sensors%NSENSOR
572
573 li = sensors%SENSOR_TAB(j)%SENS_ID
574
575 IF (usens == li) THEN
576
577 lt = sensors%SENSOR_TAB(j)%TSTART
578 ! If sensor is activated - return the time Sensor is active
579 IF (tt > lt) THEN
580 get_u_sens = tt - lt
581 ENDIF
582
583 RETURN
584
585 ENDIF
586 ENDDO
587C----
588 RETURN
589 END
590!||====================================================================
591!|| get_u_sens_delay ../engine/source/user_interface/usensor.F
592!||--- uses -----------------------------------------------------
593!|| sensor_mod ../common_source/modules/sensor_mod.F90
594!|| user_interface_mod ../engine/source/modules/user_interface_mod.F90
595!||====================================================================
596 my_real FUNCTION get_u_sens_delay(NSENS)
597C-----------------------------------------------
598C M o d u l e s
599C-----------------------------------------------
600 USE sensor_mod
601 USE user_interface_mod
602C-----------------------------------------------
603C I m p l i c i t T y p e s
604C-----------------------------------------------
605#include "implicit_f.inc"
606C-----------------------------------------------
607C C o m m o n B l o c k s
608C-----------------------------------------------
609#include "com04_c.inc"
610#include "com08_c.inc"
611C-----------------------------------------------
612C D u m m y A r g u m e n t s
613C-----------------------------------------------
614 INTEGER nsens
615 my_real tdelay
616C-----------------------------------------------
617C
618 get_u_sens_delay = zero
619
620 ! CASE : No Sensor
621 ! -----------------
622 IF(nsens==0)THEN
623 get_u_sens_delay = tt
624 RETURN
625 ENDIF
626
627 ! sensor is not existing
628 ! -----------------------
629 IF ( nsens < 1 .OR. nsens > sensors%NSENSOR) THEN
630 get_u_sens_delay = tt
631 RETURN
632 ENDIF
633
634 ! TDELAY Value
635 ! -------------
636
637 tdelay = sensors%SENSOR_TAB(nsens)%TDELAY
638 get_u_sens_delay = tdelay
639C---
640 RETURN
641 END
#define my_real
Definition cppsort.cpp:32
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21
initmumps id
integer function set_u_sens_value(nsens, ivar, var)
Definition usensor.F:138
integer function set_u_sens_acti(nsens)
Definition usensor.F:395
integer function get_u_sens_ipar(nsens, ivar, var)
Definition usensor.F:346
integer function set_u_sens_maxvalue(nsens, ivar, var)
Definition usensor.F:237
integer function set_u_sens_deacti(nsens)
Definition usensor.F:444
integer function get_u_sens_value(nsens, ivar, var)
Definition usensor.F:190
integer function get_u_sens_id(isens)
Definition usensor.F:99
subroutine usensor_dum(ierr)
Definition usensor.F:30
integer function get_u_sens_fpar(nsens, ivar, var)
Definition usensor.F:289
integer function get_u_numsens(idsens)
Definition usensor.F:50