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

Go to the source code of this file.

Functions/Subroutines

subroutine hm_read_rbody_lagmul (rbyl, npbyl, lpbyl, igrnod, lsubmodel, itab, itabm1, ikine, ikine1lag, nom_opt)

Function/Subroutine Documentation

◆ hm_read_rbody_lagmul()

subroutine hm_read_rbody_lagmul ( rbyl,
integer, dimension(nnpby,*) npbyl,
integer, dimension(*) lpbyl,
type (group_), dimension(ngrnod) igrnod,
type(submodel_data), dimension(*), intent(in) lsubmodel,
integer, dimension(*) itab,
integer, dimension(*) itabm1,
integer, dimension(*) ikine,
integer, dimension(*) ikine1lag,
integer, dimension(lnopt1,*) nom_opt )

Definition at line 44 of file hm_read_rbody_lagmul.F.

46C-----------------------------------------------
47C M o d u l e s
48C-----------------------------------------------
49 USE groupdef_mod
50 USE message_mod
51 USE r2r_mod
52 USE submodel_mod
55C-----------------------------------------------
56C I m p l i c i t T y p e s
57C-----------------------------------------------
58#include "implicit_f.inc"
59C-----------------------------------------------
60C A n a l y s e M o d u l e
61C-----------------------------------------------
62#include "analyse_name.inc"
63C-----------------------------------------------
64C C o m m o n B l o c k s
65C-----------------------------------------------
66#include "units_c.inc"
67#include "param_c.inc"
68#include "lagmult.inc"
69#include "scr17_c.inc"
70#include "com04_c.inc"
71#include "r2r_c.inc"
72C-----------------------------------------------
73C D u m m y A r g u m e n t s
74C-----------------------------------------------
75 INTEGER NPBYL(NNPBY,*),LPBYL(*),
76 . ITAB(*), ITABM1(*),IKINE(*),IKINE1LAG(*)
77 my_real rbyl(nrby,*)
78 INTEGER NOM_OPT(LNOPT1,*)
79C-----------------------------------------------
80 TYPE (GROUP_) , DIMENSION(NGRNOD) :: IGRNOD
81 TYPE(SUBMODEL_DATA),INTENT(IN)::LSUBMODEL(*)
82C-----------------------------------------------
83C L o c a l V a r i a b l e s
84C-----------------------------------------------
85 INTEGER J,K,NR,MM,ID,IGU,IGS,
86 . NSL,MSL,SUB_INDEX,NRB,NRB_R2R
87 CHARACTER MESS*40
88 CHARACTER(LEN=NCHARTITLE) :: TITR
89 CHARACTER(LEN=NCHARKEY) :: KEY
90 LOGICAL IS_AVAILABLE
91 DATA mess/'RIGID BODY DEFINITIONS'/
92C-----------------------------------------------
93C E x t e r n a l F u n c t i o n s
94C-----------------------------------------------
95 INTEGER USR2SYS,NODGRNR6
96 EXTERNAL usr2sys,nodgrnr6
97C-----------------------------------
98C NPBYL(1,N) = MAIN NODE
99C NPBYL(2,N) = NUMBER OF SECONDARY NODES + MAIN
100C NPBYL(3,N) =
101C NPBYL(4,N) =
102C NPBYL(5,N) =
103C NPBYL(6,N) = IDENTIFICATEUR
104C NPBYL(7,N) =
105C NPBYL(8,N) =
106C======================================================================|
107 WRITE(iout,1000)
108C---
109 is_available = .false.
110 CALL hm_option_start('/RBODY')
111C---
112 k = 0
113 nrb = 0
114 nrb_r2r = 0
115C
116 DO nr=1,nrbody
117C
118C--------------------------------------------------
119C EXTRACT DATAS OF /RBODY/... LINE
120C--------------------------------------------------
121C
122 nrb_r2r = nrb_r2r + 1
123 IF (nsubdom > 0) THEN
124 IF(tagrby(nrb_r2r) == 0) CALL hm_sz_r2r(tagrby,nrb_r2r,lsubmodel)
125 ENDIF
126C
127 key=''
128 CALL hm_option_read_key(lsubmodel,
129 . option_id = id,
130 . option_titr = titr,
131 . keyword2 = key,
132 . submodel_index = sub_index)
133 IF(key(1:6)=='LAGMUL')THEN
134 nrb = nrb + 1
135 IF (nsubdom > 0) THEN ! TAGRBY is allocated only if NSUBDOM>0
136 IF(tagrby(nrb) == 0) CALL hm_sz_r2r(tagrby,nrb,lsubmodel)
137 ENDIF
138C---
139 nom_opt(1,nrb)=id
140 CALL fretitl(titr,nom_opt(lnopt1-ltitr+1,nrb),ltitr)
141C---
142 CALL hm_get_intv('node_ID',mm,is_available,lsubmodel)
143 mm = usr2sys(mm,itabm1,mess,id)
144C---
145 CALL hm_get_intv('grnd_ID',igu,is_available,lsubmodel)
146 nsl = nodgrnr6(mm,igu,igs,lpbyl(k+1),igrnod,itabm1,mess,id)
147 msl = nsl+1
148C---
149 lpbyl(k+msl) = mm
150C---
151 IF (nsl == 0) THEN
152 CALL ancmsg(msgid=352,
153 . msgtype=msgwarning,
154 . anmode=aninfo_blind_2,
155 . i1=id,
156 . c1=titr)
157 ENDIF
158 CALL anodset(mm, check_rb_m)
159 DO j=1, nsl
160 CALL anodset(lpbyl(j+k), check_rb_s)
161 ENDDO
162C---
163 DO j=1,msl
164 CALL kinset(512,itab(lpbyl(j+k)),ikine(lpbyl(j+k)),7,0,
165 . ikine1lag(lpbyl(j+k)))
166 ENDDO
167C---
168 npbyl(1,nrb) = mm
169 npbyl(2,nrb) = msl
170 npbyl(6,nrb) = id
171 lag_ncl = lag_ncl + nsl*6
172 lag_nkl = lag_nkl + nsl*21
173C---
174 WRITE(iout,1100)id,trim(titr),itab(mm),msl
175 WRITE(iout,1101)
176 WRITE(iout,1102) (itab(lpbyl(j+k)),j=1,nsl)
177 k = k + 3*msl
178 END IF ! IF(KEY(1:6)=='LAGMUL')THEN
179 ENDDO
180C---
181 RETURN
182C------------------------------
1831000 FORMAT(
184 . /' RIGID BODY DEFINITIONS (LAGRANGE MULTIPLIERS)'
185 . /' -------------------------------------------- '/)
1861100 FORMAT( /5x,'RIGID BODY ID ',i10,1x,a,
187 . /10x,'PRIMARY NODE ',i10
188 . /10x,'NUMBER OF NODES ',i10)
1891101 FORMAT( 10x,'SECONDARY NODES ')
1901102 FORMAT( 9x,10i10)
void anodset(int *id, int *type)
#define my_real
Definition cppsort.cpp:32
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_option_start(entity_type)
subroutine kinset(ik, node, ikine, idir, isk, ikine1)
Definition kinset.F:57
initmumps id
integer, parameter nchartitle
integer, parameter ncharkey
integer, dimension(:), allocatable tagrby
Definition r2r_mod.F:132
subroutine hm_sz_r2r(tag, val, lsubmodel)
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:895
integer function nodgrnr6(m, igu, igs, ibuf, igrnod, itabm1, mess, id)
Definition freform.F:359
subroutine fretitl(titr, iasc, l)
Definition freform.F:615
integer function usr2sys(iu, itabm1, mess, id)
Definition sysfus.F:146