OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
iniparsen.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!|| iniparsen ../starter/source/tools/sensor/iniparsen.F
25!||--- called by ------------------------------------------------------
26!|| inisen ../starter/source/tools/sensor/inisen.F
27!||--- uses -----------------------------------------------------
28!|| message_mod ../starter/share/message_module/message_mod.F
29!||====================================================================
30 SUBROUTINE iniparsen(SENSORS,NSECT,NINTER,NINTSUB,NRWALL,NRBODY)
31C-----------------------------------------------
32C M o d u l e s
33C-----------------------------------------------
34 USE message_mod
35 USE sensor_mod
36C-----------------------------------------------
37C I m p l i c i t T y p e s
38C-----------------------------------------------
39#include "implicit_f.inc"
40C-----------------------------------------------
41C C o m m o n B l o c k s
42C-----------------------------------------------
43c#include "com04_c.inc"
44C-----------------------------------------------
45C D u m m y A r g u m e n t s
46C-----------------------------------------------
47 INTEGER, INTENT(IN) :: NSECT,NINTER,NINTSUB,NRWALL,NRBODY
48 TYPE (SENSORS_) ,INTENT(INOUT) :: SENSORS
49C-----------------------------------------------
50C L o c a l V a r i a b l e s
51C-----------------------------------------------
52 INTEGER I,NOSYS,ISECT,IINT,IRWAL,IRBOD,COMPTEUR,SENS_TYPE,SECT_ID,INT_ID,SUB_ID,RWAL_ID,RBOD_ID
53 INTEGER, DIMENSION(0:NSECT+NINTER+NINTSUB+NRWALL+NRBODY) :: TABLOCAL
54C-----------------------------------------------
55C Special treatment of sensors with Parith/on (type 6,11,12,13)
56C Tabsensor(i) pointe vers les interfaces/sections/rwalls/rbodies concernees
57C par les sensors type force
58c=======================================================================
59 tablocal(:) = 0
60c
61 DO i=1,sensors%NSENSOR
62 sens_type = sensors%SENSOR_TAB(i)%TYPE
63 IF (sens_type == 12 ) THEN ! sensort type section
64 isect = sensors%SENSOR_TAB(i)%IPARAM(1)
65 tablocal(isect) = i
66 ELSEIF (sens_type == 6) THEN ! sensort type interface
67 int_id = sensors%SENSOR_TAB(i)%IPARAM(1)
68 iint = int_id + nsect
69 tablocal(iint) = i
70 ELSEIF (sens_type == 7) THEN ! sensort type rwall
71 rwal_id = sensors%SENSOR_TAB(i)%IPARAM(1)
72 irwal = rwal_id + nsect + ninter+ nintsub
73 tablocal(irwal) = i
74 ELSEIF (sens_type == 11) THEN ! sensort type rbody
75 rbod_id = sensors%SENSOR_TAB(i)%IPARAM(1)
76 irbod = rbod_id + nsect + ninter+ nintsub + nrwall
77 tablocal(irbod) = i
78 ELSEIF (sens_type == 13) THEN ! sensort type work
79 sect_id = sensors%SENSOR_TAB(i)%IPARAM(3)
80 int_id = sensors%SENSOR_TAB(i)%IPARAM(4)
81 sub_id = sensors%SENSOR_TAB(i)%IPARAM(5)
82 rwal_id = sensors%SENSOR_TAB(i)%IPARAM(6)
83 rbod_id = sensors%SENSOR_TAB(i)%IPARAM(7)
84
85 isect = sect_id
86 IF (isect > 0) tablocal(isect) = i
87c
88 iint = int_id + nsect
89 IF (int_id > 0) tablocal(iint)=i ! interface
90 iint = sub_id + nsect
91 IF (sub_id > 0) tablocal(iint)=i ! sub-interface
92c
93 irwal = rwal_id + nsect + ninter+ nintsub
94 IF (rwal_id > 0) tablocal(irwal)=i
95c
96 irbod = rbod_id + nsect + ninter+ nintsub + nrwall
97 IF (rbod_id > 0) tablocal(irbod)=i
98 ENDIF
99 ENDDO
100c------------
101 nosys=1 ! No systeme section,interface,rwall, rbody
102 DO WHILE (tablocal(nosys) == 0)
103 nosys=nosys+1
104 ENDDO
105C
106 DO i=1,nosys
107 sensors%TABSENSOR(i) = tablocal(nosys)
108 ENDDO
109C
110 compteur=1
111 DO i = nosys, nsect+ninter+nintsub+nrwall+nrbody
112 IF (tablocal(i)==0) THEN
113 sensors%TABSENSOR(i+1) = sensors%TABSENSOR(i)
114 ELSE
115 sensors%TABSENSOR(i+1) = sensors%TABSENSOR(i) + compteur
116 compteur=compteur+1
117 ENDIF
118 ENDDO
119C------------
120 RETURN
121 END
subroutine iniparsen(sensors, nsect, ninter, nintsub, nrwall, nrbody)
Definition iniparsen.F:31