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

Go to the source code of this file.

Functions/Subroutines

subroutine hm_read_impvel (fbfvel, ibfvel, ikine, ikine1lag, itab, itabm1, igrnod, x0, ixr, ipart, ipartr, iskn, nom_opt, nimpdisp, nimpvel, unitab, lsubmodel)

Function/Subroutine Documentation

◆ hm_read_impvel()

subroutine hm_read_impvel ( intent(out) fbfvel,
integer, dimension(nifv,nfxvel), intent(out) ibfvel,
integer, dimension(*) ikine,
integer, dimension(*) ikine1lag,
integer, dimension(*) itab,
integer, dimension(*) itabm1,
type (group_), dimension(ngrnod), intent(in) igrnod,
intent(in) x0,
integer, dimension(nixr,*), intent(in) ixr,
integer, dimension(lipart1,*), intent(in) ipart,
integer, dimension(*) ipartr,
integer, dimension(liskn,*), intent(in) iskn,
integer, dimension(lnopt1,*), intent(out) nom_opt,
integer nimpdisp,
integer nimpvel,
type(unit_type_), intent(in) unitab,
type(submodel_data), dimension(*), intent(in) lsubmodel )

Definition at line 40 of file hm_read_impvel.F.

45C============================================================================
46C M o d u l e s
47C-----------------------------------------------
48 USE message_mod
49 USE groupdef_mod
50 USE submodel_mod
52 USE unitab_mod
53 use element_mod , only : nixr
54C-----------------------------------------------
55C I m p l i c i t T y p e s
56C-----------------------------------------------
57#include "implicit_f.inc"
58C-----------------------------------------------
59C C o m m o n B l o c k s
60C-----------------------------------------------
61#include "com04_c.inc"
62#include "scr17_c.inc"
63#include "param_c.inc"
64C-----------------------------------------------
65C D u m m y A r g u m e n t s
66C-----------------------------------------------
67 INTEGER :: NIMPDISP,NIMPVEL
68 INTEGER ,DIMENSION(*) :: ITAB,ITABM1,IKINE,IKINE1LAG,IPARTR
69 INTEGER ,DIMENSION(LISKN,*) ,INTENT(IN) :: ISKN
70 INTEGER ,DIMENSION(LIPART1,*) ,INTENT(IN) :: IPART
71 INTEGER ,DIMENSION(NIXR,*) ,INTENT(IN) :: IXR
72 INTEGER ,DIMENSION(LNOPT1,*) ,INTENT(OUT) :: NOM_OPT
73 INTEGER ,DIMENSION(NIFV,NFXVEL) ,INTENT(OUT) :: IBFVEL
74 my_real ,DIMENSION(LFXVELR,NFXVEL) ,INTENT(OUT) :: fbfvel
75 TYPE(UNIT_TYPE_),INTENT(IN) :: UNITAB
76 my_real ,DIMENSION(3,NUMNOD) ,INTENT(IN) :: x0
77 TYPE (GROUP_) ,DIMENSION(NGRNOD) ,INTENT(IN) :: IGRNOD
78 TYPE(SUBMODEL_DATA),DIMENSION(*) ,INTENT(IN) :: LSUBMODEL
79C-----------------------------------------------
80C L o c a l V a r i a b l e s
81C-----------------------------------------------
82 INTEGER IOPT,INUM,NOPT,NFDISP,NFVEL,FGEOD,FGEOV,NIMPDISP_0,LAGMULV
83 INTEGER ,DIMENSION(:), ALLOCATABLE :: OPTID
84 CHARACTER(nchartitle) :: MESS
85C-----------------------------------------------
86C D a t a
87C-----------------------------------------------
88 DATA mess/'IMPOSED VELOCITY DEFINITION '/
89C======================================================================|
90 inum = 0 ! init index of IBFVEL,FBFVEL (imposed node counter)
91 iopt = 0 ! init counter of impdisp, impvel and impacc options
92c--------------------------------------------------
93c READ /IMPDISP
94c--------------------------------------------------
95c
96 CALL hm_option_count('/IMPDISP' ,nimpdisp )
97 nimpdisp_0 = nimpdisp
98 CALL hm_option_count('/IMPDISP/FGEO',fgeod)
99c
100 CALL hm_option_count('/IMPVEL' ,nimpvel )
101 CALL hm_option_count('/IMPVEL/FGEO' ,fgeov)
102 CALL hm_option_count('/IMPVEL/LAGMUL',lagmulv)
103c
104 nfdisp = nimpdisp - fgeod
105 nfvel = nimpvel - fgeov - lagmulv
106 nopt = nfdisp + nfvel
107c
108c--------------------------------------------------
109 IF (nimpdisp > 0) THEN
110
111 IF (nfdisp > 0) THEN
112 CALL read_impdisp(
113 . nimpdisp ,inum ,iopt ,fbfvel ,ibfvel ,
114 . itab ,itabm1 ,ikine ,igrnod ,nom_opt ,
115 . iskn ,unitab ,lsubmodel)
116 ENDIF
117c
118 IF (fgeod > 0) THEN
120 . fgeod ,inum ,iopt ,fbfvel ,ibfvel ,
121 . itab ,itabm1 ,igrnod ,nom_opt ,x0 ,
122 . ixr ,ipart ,ipartr ,unitab ,lsubmodel)
123 ENDIF
124c
125c TEST DOUBLE IDs of IMPDISP
126c
127 ALLOCATE( optid(nimpdisp) )
128 optid(1:nimpdisp) = nom_opt(1,1:nimpdisp)
129 CALL udouble(optid,1,nimpdisp,mess,0,zero)
130 DEALLOCATE( optid )
131c
132 END IF ! NIMPDISP > 0
133 nimpdisp = inum
134c
135c--------------------------------------------------
136c READ /IMPVEL
137c--------------------------------------------------
138 IF (nimpvel > 0) THEN
139
140c
141 IF (nfvel > 0) THEN
142 CALL read_impvel(
143 . nimpvel ,inum ,iopt ,fbfvel ,ibfvel ,
144 . itab ,itabm1 ,ikine ,ikine1lag,nom_opt ,
145 . igrnod ,iskn ,unitab ,lsubmodel)
146 END IF
147c
148c READ /IMPVEL/FGEO
149c
150 IF (fgeov > 0) THEN
151 CALL read_impvel_fgeo(
152 . fgeov ,inum ,iopt ,fbfvel ,ibfvel ,
153 . itab ,itabm1 ,igrnod ,nom_opt ,x0 ,
154 . ixr ,ipart ,ipartr ,unitab ,lsubmodel)
155 END IF
156c
157c READ /IMPVEL/LAGMUL
158c
159 IF (lagmulv > 0) THEN
161 . lagmulv ,inum ,iopt ,fbfvel ,ibfvel ,
162 . itab ,itabm1 ,igrnod ,nom_opt ,x0 ,
163 . ixr ,ipart ,ipartr ,iskn ,ikine ,
164 . unitab ,lsubmodel)
165 END IF
166c
167c TEST DOUBLE IDs of IMPVEL
168c
169 ALLOCATE( optid(nimpvel) )
170 optid(1:nimpvel) = nom_opt(1,nimpdisp_0+1:nimpvel+nimpdisp_0)
171 CALL udouble(optid,1,nimpvel,mess,0,zero)
172 DEALLOCATE( optid )
173c
174 END IF ! NIMPVEL > 0
175c-----------
176 nimpvel = inum - nimpdisp
177 nfxvel = inum
178c--------------------------------------------------
179 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine hm_option_count(entity_type, hm_option_number)
subroutine read_impdisp(ndisp, inum, iopt, fbfvel, ibfvel, itab, itabm1, ikine, igrnod, nom_opt, iskn, unitab, lsubmodel)
subroutine read_impdisp_fgeo(nfgeo, inum, iopt, fbfvel, ibfvel, itab, itabm1, igrnod, nom_opt, x0, ixr, ipart, ipartr, unitab, lsubmodel)
subroutine read_impvel(nfvel, inum, iopt, fbfvel, ibfvel, itab, itabm1, ikine, ikine1lag, nom_opt, igrnod, iskn, unitab, lsubmodel)
Definition read_impvel.F:48
subroutine read_impvel_fgeo(nfgeo, inum, iopt, fbfvel, ibfvel, itab, itabm1, igrnod, nom_opt, x0, ixr, ipart, ipartr, unitab, lsubmodel)
subroutine read_impvel_lagmul(nlagmul, inum, iopt, fbfvel, ibfvel, itab, itabm1, igrnod, nom_opt, x0, ixr, ipart, ipartr, iskn, ikine, unitab, lsubmodel)
subroutine udouble(list, ilist, nlist, mess, ir, rlist)
Definition sysfus.F:573