OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
read_rwall.F File Reference
#include "implicit_f.inc"
#include "com04_c.inc"
#include "units_c.inc"
#include "scr17_c.inc"
#include "param_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine read_rwall (rwl, nprw, lprw, ifi, ms, v, itab, itabm1, x, ixs, ixq, npc, ikine, igrnod, mfi, imerge, unitab, ikine1lag, iddlevel, lsubmodel, rtrans, nom_opt, itagnd, lnspen)

Function/Subroutine Documentation

◆ read_rwall()

subroutine read_rwall ( rwl,
integer, dimension(*) nprw,
integer, dimension(*) lprw,
integer ifi,
ms,
v,
integer, dimension(*) itab,
integer, dimension(*) itabm1,
x,
integer, dimension(nixs,*) ixs,
integer, dimension(nixq,*) ixq,
integer, dimension(*) npc,
integer, dimension(*) ikine,
type (group_), dimension(ngrnod), target igrnod,
integer mfi,
integer, dimension(*) imerge,
type (unit_type_), intent(in) unitab,
integer, dimension(*) ikine1lag,
integer iddlevel,
type(submodel_data), dimension(*) lsubmodel,
rtrans,
integer, dimension(lnopt1,*) nom_opt,
integer, dimension(*) itagnd,
integer, intent(inout) lnspen )

Definition at line 42 of file read_rwall.F.

48C-------------------------------------
49C LECTURE MUR RIGIDE
50C-----------------------------------------------
51C M o d u l e s
52C-----------------------------------------------
53 USE my_alloc_mod
54 USE unitab_mod
55 USE submodel_mod
56 USE message_mod
57 USE r2r_mod
58 USE groupdef_mod
60 use element_mod , only : nixs,nixq
61C-----------------------------------------------
62C I m p l i c i t T y p e s
63C-----------------------------------------------
64#include "implicit_f.inc"
65C-----------------------------------------------
66C C o m m o n B l o c k s
67C-----------------------------------------------
68#include "com04_c.inc"
69#include "units_c.inc"
70#include "scr17_c.inc"
71#include "param_c.inc"
72C-----------------------------------------------
73C D u m m y A r g u m e n t s
74C-----------------------------------------------
75 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
76 INTEGER IFI,MFI,IDDLEVEL
77 INTEGER NPRW(*), LPRW(*), ITAB(*), ITABM1(*),IXS(NIXS,*),
78 . IXQ(NIXQ,*), NPC(*), IKINE(*),
79 . IMERGE(*),
80 . IKINE1LAG(*),ITAGND(*)
81 TYPE(SUBMODEL_DATA) LSUBMODEL(*)
82C REAL
84 . rwl(nrwlp,*), ms(*), v(3,*), x(3,*),
85 . rtrans(ntransf,*)
86 INTEGER NOM_OPT(LNOPT1,*)
87 INTEGER, INTENT (INOUT) :: LNSPEN
88C-----------------------------------------------
89 TYPE (GROUP_) ,TARGET, DIMENSION(NGRNOD) :: IGRNOD
90C-----------------------------------------------
91C L o c a l V a r i a b l e s
92C-----------------------------------------------
93 INTEGER,DIMENSION(:),ALLOCATABLE :: IKINE1
94 INTEGER K,I,NCHPLAN,NCHCYL,NCHSPHER,NCHPARAL,
95 . OFFS,NCHLAGM,NCHTHERM,N,NSL,IPEN
97 . bid
98 CHARACTER MESS*40
99C-----------------------------------------------
100C E x t e r n a l F u n c t i o n s
101C-----------------------------------------------
102 DATA mess/'STANDARD RIGID WALL DEFINITION '/
103C=======================================================================
104C-----------------------------------------------
105C B e g i n n i n g o f s o u r c e
106C-----------------------------------------------
107 CALL my_alloc(ikine1,3*numnod)
108C Beginning of RWALL cards in the IIN file
109 WRITE(iout,1000)
110C
111C Initialization of variable
112 k = 0
113 ! Offset
114 offs = 0
115 ! Flag for therm rigid wall
116 DO i=1,3*numnod
117 ikine1(i) = 0
118 ENDDO
119C
120C-----------------------------------------------
121! ************************** !
122! RWALL read with hm reader !
123! ************************** !
124C-----------------------------------------------
125C Counting RWALL type
126 CALL hm_option_count('/RWALL/PLANE' ,nchplan )
127 CALL hm_option_count('/RWALL/CYL' ,nchcyl )
128 CALL hm_option_count('/rwall/spher' ,NCHSPHER )
129 CALL HM_OPTION_COUNT('/rwall/paral' ,NCHPARAL )
130 CALL HM_OPTION_COUNT('/rwall/lagmul',NCHLAGM )
131 CALL HM_OPTION_COUNT('/rwall/therm' ,NCHTHERM )
132C
133C /RWALL/PLANE
134 IF (NCHPLAN > 0) THEN
135 CALL HM_READ_RWALL_PLANE(RWL ,NPRW ,LPRW ,IFI ,MS ,
136 . V ,ITAB ,ITABM1 ,X ,IKINE ,
137 . IGRNOD ,MFI ,IMERGE ,UNITAB ,IDDLEVEL,
138 . LSUBMODEL,RTRANS ,NOM_OPT ,ITAGND ,NCHPLAN ,
139 . K ,OFFS ,IKINE1 )
140 ENDIF
141C
142C /RWALL/CYL
143 IF (NCHCYL > 0) THEN
144 CALL HM_READ_RWALL_CYL(RWL ,NPRW ,LPRW ,IFI ,MS ,
145 . V ,ITAB ,ITABM1 ,X ,IKINE ,
146 . IGRNOD ,MFI ,IMERGE ,UNITAB ,IDDLEVEL,
147 . LSUBMODEL,RTRANS ,NOM_OPT ,ITAGND ,NCHCYL ,
148 . K ,OFFS ,IKINE1 )
149 ENDIF
150C
151C /RWALL/SPHER
152 IF (NCHSPHER > 0) THEN
153 CALL HM_READ_RWALL_SPHER(RWL ,NPRW ,LPRW ,IFI ,MS ,
154 . V ,ITAB ,ITABM1 ,X ,IKINE ,
155 . IGRNOD ,MFI ,IMERGE ,UNITAB ,IDDLEVEL,
156 . LSUBMODEL,RTRANS ,NOM_OPT ,ITAGND ,NCHSPHER,
157 . K ,OFFS ,IKINE1 )
158 ENDIF
159C
160C /RWALL/PARAL
161 IF (NCHPARAL > 0) THEN
162 CALL HM_READ_RWALL_PARAL(RWL ,NPRW ,LPRW ,IFI ,MS ,
163 . V ,ITAB ,ITABM1 ,X ,IKINE ,
164 . IGRNOD ,MFI ,IMERGE ,UNITAB ,IDDLEVEL,
165 . LSUBMODEL,RTRANS ,NOM_OPT ,ITAGND ,NCHPARAL,
166 . K ,OFFS ,IKINE1 )
167 ENDIF
168C
169C /RWALL/LAGMUL
170 IF (NCHLAGM > 0) THEN
171 CALL HM_READ_RWALL_LAGMUL(RWL ,NPRW ,LPRW ,IFI ,MS ,
172 . V ,ITAB ,ITABM1 ,X ,IKINE ,
173 . IGRNOD ,MFI ,IMERGE ,UNITAB ,IDDLEVEL,
174 . LSUBMODEL,RTRANS ,NOM_OPT ,ITAGND ,NCHLAGM ,
175 . K ,OFFS ,IKINE1LAG)
176 ENDIF
177C
178C /RWALL/THERM
179 IF (NCHTHERM > 0) THEN
180 CALL HM_READ_RWALL_THERM(RWL ,NPRW ,LPRW ,IFI ,MS ,
181 . V ,ITAB ,ITABM1 ,X ,IKINE ,
182 . IGRNOD ,MFI ,IMERGE ,UNITAB ,IDDLEVEL,
183 . LSUBMODEL,RTRANS ,NOM_OPT ,ITAGND ,NCHTHERM,
184 . K ,OFFS ,IKINE1 ,IXS ,IXQ ,
185 . NPC )
186 ENDIF
187C
188C-------------------------------------
189C Search for double IDs
190C-------------------------------------
191 CALL UDOUBLE(NOM_OPT,LNOPT1,NRWALL,MESS,0,BID)
192 DO N=1,NRWALL
193 NSL = NPRW(N)
194 IPEN = NPRW(N+8*NRWALL)
195 IF (IPEN > 0) LNSPEN = LNSPEN + NSL + 1 ! stif+leng_m
196 END DO
197 DEALLOCATE(IKINE1)
198 RETURN
199 1000 FORMAT(
200 . ' rigid wall definitions '/
201 . ' ---------------------- '/)
#define my_real
Definition cppsort.cpp:32
subroutine hm_option_count(entity_type, hm_option_number)