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

Go to the source code of this file.

Functions/Subroutines

subroutine hm_read_ebcs_vel (igrsurf, npc, multi_fvm, unitab, id, titr, lsubmodel, ebcs)

Function/Subroutine Documentation

◆ hm_read_ebcs_vel()

subroutine hm_read_ebcs_vel ( type (surf_), dimension(nsurf), target igrsurf,
integer, dimension(*) npc,
type (multi_fvm_struct), intent(inout) multi_fvm,
type (unit_type_), intent(in) unitab,
integer id,
character(len=nchartitle), intent(in) titr,
type(submodel_data), dimension(nsubmod) lsubmodel,
type(t_ebcs_vel), intent(inout) ebcs )

Definition at line 37 of file hm_read_ebcs_vel.F.

38C-----------------------------------------------
39C M o d u l e s
40C-----------------------------------------------
41 USE unitab_mod
42 USE message_mod
43 USE multi_fvm_mod
44 USE groupdef_mod
45 USE submodel_mod
46 USE ebcs_mod
48C-----------------------------------------------
49C I m p l i c i t T y p e s
50C-----------------------------------------------
51#include "implicit_f.inc"
52C-----------------------------------------------
53C C o m m o n B l o c k s
54C-----------------------------------------------
55#include "units_c.inc"
56#include "com04_c.inc"
57C-----------------------------------------------
58C D u m m y A r g u m e n t s
59C-----------------------------------------------
60 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
61 INTEGER :: NPC(*),ID
62 TYPE (MULTI_FVM_STRUCT), INTENT(INOUT) :: MULTI_FVM
63 TYPE (SURF_) ,TARGET, DIMENSION(NSURF) :: IGRSURF
64 CHARACTER(LEN=NCHARTITLE), INTENT(IN) :: TITR
65 TYPE(t_ebcs_vel), INTENT(INOUT) :: EBCS
66C-----------------------------------------------
67C L o c a l V a r i a b l e s
68C-----------------------------------------------
69 INTEGER ISU,SURF,NGR2USR,IRHO,J,NSEG,IENER,IVX,IVY,IVZ
70 my_real c,rho,lcar,r1,r2,ener,vx,vy,vz
71 EXTERNAL ngr2usr
72 INTEGER, DIMENSION(:), POINTER :: INGR2USR
73 TYPE(SUBMODEL_DATA) LSUBMODEL(NSUBMOD)
74 LOGICAL IS_ENCRYPTED, IS_AVAILABLE
75C-----------------------------------------------
76C S o u r c e L i n e s
77C-----------------------------------------------
78
79 ivx=0
80 ivy=0
81 ivz=0
82 irho=0
83 iener=0
84 c=zero
85 rho=zero
86 lcar=zero
87 r1=zero
88 r2=zero
89 ener=zero
90 vx=zero
91 vy=zero
92 vz=zero
93
94 ebcs%title = trim(titr)
95
96 CALL hm_option_is_encrypted(is_encrypted)
97 CALL hm_get_intv('entityid', surf ,is_available,lsubmodel)
98
99 isu=0
100 ingr2usr => igrsurf(1:nsurf)%ID
101 IF (surf/=0) isu=ngr2usr(surf,ingr2usr,nsurf)
102 nseg=0
103 IF (isu/=0) nseg=igrsurf(isu)%NSEG
104 IF(surf==0)THEN
105 ierr=ierr+1
106 WRITE(istdo,'(6X,A)')' ** A SURFACE SHOULD BE INPUT'
107 WRITE(iout, '(6X,A)')' ** A SURFACE SHOULD BE INPUT'
108 ELSEIF(isu==0)THEN
109 ierr=ierr+1
110 WRITE(istdo,*)' ** ERROR SURFACE NOT FOUND, ID=',surf
111 WRITE(iout,*) ' ** ERROR SURFACE NOT FOUND, ID=',surf
112 ELSEIF(nseg==0)THEN
113 ierr=ierr+1
114 WRITE(istdo,*)' ** ERROR EMPTY SURFACE',surf
115 WRITE(iout,*) ' ** ERROR EMPTY SURFACE',surf
116 ENDIF
117
118
119
120 !--line-2
121 CALL hm_get_floatv('rad_ebcs_c', c ,is_available,lsubmodel,unitab)
122
123 !--line-3
124 CALL hm_get_intv('rad_fct_vx', ivx ,is_available,lsubmodel)
125 CALL hm_get_floatv('rad_ebcs_fscale_vx', vx ,is_available,lsubmodel,unitab)
126 !--line-4
127 CALL hm_get_intv('rad_fct_vy', ivy ,is_available,lsubmodel)
128 CALL hm_get_floatv('rad_ebcs_fscale_vy', vy ,is_available,lsubmodel,unitab)
129 !--line-5
130 CALL hm_get_intv('rad_fct_vz', ivz ,is_available,lsubmodel)
131 CALL hm_get_floatv('rad_ebcs_fscale_vz', vz ,is_available,lsubmodel,unitab)
132
133 !--line-6
134 CALL hm_get_intv('rad_fct_rho', IRHO ,IS_AVAILABLE,LSUBMODEL)
135 CALL HM_GET_FLOATV('rad_ebcs_fscale_rho', RHO ,IS_AVAILABLE,LSUBMODEL,UNITAB)
136
137 !--line-7
138 CALL HM_GET_INTV('rad_fct_en', IENER ,IS_AVAILABLE,LSUBMODEL)
139 CALL HM_GET_FLOATV('rad_ebcs_fscale_en', ENER ,IS_AVAILABLE,LSUBMODEL,UNITAB)
140
141 !--line-8
142 CALL HM_GET_FLOATV('rad_ebcs_lc', LCAR ,IS_AVAILABLE,LSUBMODEL,UNITAB)
143 CALL HM_GET_FLOATV('rad_ebcs_r1', R1 ,IS_AVAILABLE,LSUBMODEL,UNITAB)
144 CALL HM_GET_FLOATV('rad_ebcs_r2', R2 ,IS_AVAILABLE,LSUBMODEL,UNITAB)
145
146.AND..AND. IF(SURF/=0 ISU/=0 NSEG/=0)THEN
147 WRITE(IOUT,1004)ID,TRIM(TITR)
148 WRITE(IOUT,1103)SURF,NSEG,C,VX,IVX,VY,IVY,VZ,IVZ,RHO,IRHO,ENER,IENER,LCAR
149 ENDIF
150 DO J=1,NFUNCT
151.AND. IF(IRHO/=0 IRHO==NPC(J)) THEN
152 IRHO=J
153 EXIT
154 ENDIF
155 ENDDO
156 DO J=1,NFUNCT
157.AND. IF(IENER/=0 IENER==NPC(J)) THEN
158 IENER=J
159 EXIT
160 ENDIF
161 ENDDO
162 DO J=1,NFUNCT
163.AND. IF(IVX/=0 IVX==NPC(J)) THEN
164 IVX=J
165 EXIT
166 ENDIF
167 ENDDO
168 DO J=1,NFUNCT
169.AND. IF(IVY/=0 IVY==NPC(J)) THEN
170 IVY=J
171 EXIT
172 ENDIF
173 ENDDO
174 DO J=1,NFUNCT
175.AND. IF(IVZ/=0 IVZ==NPC(J)) THEN
176 IVZ=J
177 EXIT
178 ENDIF
179 ENDDO
180
181 EBCS%title = TITR
182 EBCS%irho = IRHO
183 EBCS%iener = IENER
184 EBCS%c = C
185 EBCS%rho = RHO
186 EBCS%lcar = LCAR
187 EBCS%r1 = R1
188 EBCS%r2 = R2
189 EBCS%ener = ENER
190 EBCS%ivx = IVX
191 EBCS%ivy = IVY
192 EBCS%ivz = IVZ
193 EBCS%vx = VX
194 EBCS%vy = VY
195 EBCS%vz = VZ
196
197 IF (MULTI_FVM%IS_USED) THEN
198 CALL ANCMSG(MSGID = 1602, MSGTYPE = MSGERROR, ANMODE = ANINFO,
199 . I1 = ID, C1 = TRIM(TITR), C2 = "NOT COMPATIBLE WITH LAW 151")
200 ENDIF
201C-----------
202 RETURN
203C-----------
204
205 1004 FORMAT( //'imposed velocity . . . . . . . . . . . . :',I8,1X,A)
206 1103 FORMAT(
207 . ' on surface . . . . . . . . . . . . . . . ',I8,/,
208 . ' number of segments found. . . . . . . . . ',I8,/,
209 . ' speed of sound . . . . . . . . . . . . . ',E16.6,/,
210 . ' imposed velocity vx . . . . . . . . . . . ',E16.6,/,
211 . ' vx scaling FUNCTION . . . . . . . . . . . ',I8,/,
212 . ' imposed velocity vy . . . . . . . . . . . ',E16.6,/,
213 . ' vy scaling function . . . . . . . . . . . ',I8,/,
214 . ' imposed velocity vz . . . . . . . . . . . ',E16.6,/,
215 . ' vz scaling function . . . . . . . . . . . ',I8,/,
216 . ' imposed density . . . . . . . . . . . . . ',E16.6,/,
217 . ' density scaling function . . . . . . . . ',I8,/,
218 . ' imposed energy . . . . . . . . . . . . . ',E16.6,/,
219 . ' energy scaling function . . . . . . . . . ',I8,/,
220 . ' characteristic length . . . . . . . . . . ',E16.6,/)
221
#define my_real
Definition cppsort.cpp:32
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_option_is_encrypted(is_encrypted)
integer, parameter nchartitle
integer function ngr2usr(iu, igr, ngr)
Definition nintrr.F:325