OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
read_sensor_rbody.F File Reference
#include "implicit_f.inc"
#include "units_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine read_sensor_rbody (sensor_ptr, sens_id, titr, unitab, lsubmodel)

Function/Subroutine Documentation

◆ read_sensor_rbody()

subroutine read_sensor_rbody ( type (sensor_str_) sensor_ptr,
integer, intent(in) sens_id,
character(len=nchartitle) titr,
type (unit_type_), intent(in) unitab,
type (submodel_data), dimension(nsubmod) lsubmodel )

Definition at line 37 of file read_sensor_rbody.F.

39C-----------------------------------------------
40C M o d u l e s
41C-----------------------------------------------
42 USE unitab_mod
43 USE message_mod
44 USE submodel_mod
45 USE sensor_mod
48C-----------------------------------------------
49C I m p l i c i t T y p e s
50C-----------------------------------------------
51#include "implicit_f.inc"
52C-----------------------------------------------
53C C o m m o n B l o c k s
54C-----------------------------------------------
55#include "units_c.inc"
56C-----------------------------------------------
57C D u m m y A r g u m e n t s
58C-----------------------------------------------
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
64C-----------------------------------------------
65C L o c a l V a r i a b l e s
66C-----------------------------------------------
67 INTEGER :: RBOD_ID,IDIR,NPARIS,NPARRS,NVAR,SENS_TYPE
68 my_real :: tdel,tmin,fmin,fmax
69 CHARACTER(LEN=NCHARKEY) :: DIR
70 LOGICAL :: IS_AVAILABLE
71C--------------------------------
72C SENSOR BASED ON RIGID BODY FORCE
73C=======================================================================
74 is_available = .false.
75 sens_type = 11
76c--------------------------------------------------
77card1
78 CALL hm_get_floatv('Tdelay' ,tdel ,is_available,lsubmodel,unitab)
79card2
80 CALL hm_get_intv ('rbodyID' ,rbod_id ,is_available,lsubmodel)
81 CALL hm_get_string('DIR ' ,dir ,ncharfield,is_available)
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)
85c--------------------------------------------------
86c Check input data
87c--------------------------------------------------
88 idir = 0
89 IF (dir(1:2) == 'TF' .OR. dir(1:2) == 'tf') idir = 1
90 IF (dir(1:2) == 'TM' .OR. dir(1:2) == 'tm') idir = 2
91 IF (idir == 0 .AND. len_trim(dir) /= 0 ) THEN
92 CALL ancmsg(msgid=1594, msgtype=msgerror, anmode=aninfo_blind,
93 . i1=sens_id, c1=titr, c2=dir)
94 END IF
95c--------------------------------------------------
96c
97 sensor_ptr%TYPE = sens_type
98 sensor_ptr%SENS_ID = sens_id
99 sensor_ptr%STATUS = 0 ! status = deactivated
100 sensor_ptr%TSTART = infinity
101 sensor_ptr%TCRIT = infinity
102 sensor_ptr%TMIN = tmin
103 sensor_ptr%TDELAY = tdel ! time delay before activation
104 sensor_ptr%VALUE = zero
105
106 nparis = 2
107 nparrs = 2
108 nvar = 0
109c
110 sensor_ptr%NPARI = nparis
111 sensor_ptr%NPARR = nparrs
112 sensor_ptr%NVAR = nvar
113c
114 ALLOCATE (sensor_ptr%IPARAM(nparis))
115 ALLOCATE (sensor_ptr%RPARAM(nparrs))
116 ALLOCATE (sensor_ptr%VAR(nvar))
117 sensor_ptr%VAR(:) = zero
118
119 sensor_ptr%IPARAM(1) = rbod_id
120 sensor_ptr%IPARAM(2) = idir
121
122 sensor_ptr%RPARAM(1) = fmin
123 sensor_ptr%RPARAM(2) = fmax
124c------------------------------------------------------------
125 WRITE (iout, 1000) sens_id,tdel
126 WRITE (iout,2000) rbod_id,fmin,fmax,tmin,dir(1:2)
127c------------------------------------------------------------
128 1000 FORMAT(
129 & 5x,' SENSOR TYPE 11: RIGID BODY FORCE '/,
130 & 5x,' -------------------------------- '/,
131 & 5x,'SENSOR ID. . . . . . . . . . . . . . . . .=',i8/
132 & 5x,'TIME DELAY BEFORE ACTIVATION . . . . . . .=',e12.4)
133 2000 FORMAT(
134 . 5x,' RIGID BODY ID . . . . . . . . . . . . .=',i8/
135 . 5x,' FORCE MIN . . . . . . . . . . . . . . .=',e12.4/
136 . 5x,' FORCE MAX . . . . . . . . . . . . . . .=',e12.4/
137 . 5x,' MIN DURATION LIMIT. . . . . . . . . . .=',e12.4/
138 . 5x,' FORCE DIRECTION . . . . . . . . . . . .=',2x,a/)
139c-----------
140 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_get_string(name, sval, size, is_available)
integer, parameter nchartitle
integer, parameter ncharkey
integer, parameter ncharfield
integer function nvar(text)
Definition nvar.F:32
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)
Definition message.F:889