37 SUBROUTINE hm_read_ebcs_vel(IGRSURF, NPC, MULTI_FVM, UNITAB, ID, TITR, LSUBMODEL, EBCS)
51#include "implicit_f.inc"
60 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
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
69 INTEGER ISU,SURF,NGR2USR,IRHO,J,NSEG,IENER,IVX,IVY,IVZ
70 my_real c,rho,lcar,r1,r2,ener,vx,vy,vz
72 INTEGER,
DIMENSION(:),
POINTER :: INGR2USR
74 LOGICAL IS_ENCRYPTED, IS_AVAILABLE
94 ebcs%title = trim(titr)
97 CALL hm_get_intv(
'entityid', surf ,is_available,lsubmodel)
100 ingr2usr => igrsurf(1:nsurf)%ID
101 IF (surf/=0) isu=ngr2usr(surf,ingr2usr,nsurf)
103 IF (isu/=0) nseg=igrsurf(isu)%NSEG
106 WRITE(istdo,
'(6X,A)')
' ** A SURFACE SHOULD BE INPUT'
107 WRITE(iout,
'(6X,A)')
' ** A SURFACE SHOULD BE INPUT'
110 WRITE(istdo,*)
' ** ERROR SURFACE NOT FOUND, ID=',surf
111 WRITE(iout,*)
' ** ERROR SURFACE NOT FOUND, ID=',surf
114 WRITE(istdo,*)
' ** ERROR EMPTY SURFACE',surf
115 WRITE(iout,*)
' ** ERROR EMPTY SURFACE',surf
121 CALL hm_get_floatv(
'rad_ebcs_c', c ,is_available,lsubmodel,unitab)
124 CALL hm_get_intv(
'rad_fct_vx', ivx ,is_available,lsubmodel)
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)
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)
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)
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)
142 CALL hm_get_floatv(
'rad_ebcs_lc', lcar ,is_available,lsubmodel,unitab)
144 CALL hm_get_floatv(
'rad_ebcs_r2', r2 ,is_available,lsubmodel,unitab)
146 IF(surf/=0 .AND. isu/=0 .AND. nseg/=0)
THEN
147 WRITE(iout,1004)id,trim(titr)
148 WRITE(iout,1103)surf,nseg,c,vx,ivx,vy
151 IF(irho/=0 .AND. irho==npc(j))
THEN
157 IF(iener/=0 .AND. iener==npc(j))
THEN
163 IF(ivx/=0 .AND. ivx==npc(j))
THEN
169 IF(ivy/=0 .AND. ivy==npc(j))
THEN
175 IF(ivz/=0 .AND. ivz==npc(j))
THEN
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")
205 1004
FORMAT( //
'IMPOSED VELOCITY . . . . . . . . . . . . :',i8,1x,a)
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,/)
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)