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