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
66 TYPE(t_ebcs_pres),
INTENT(INOUT) :: EBCS
70 INTEGER ISU,SURF,NGR2USR,IPRES,IRHO,J,NSEG,IENER,IVX,IVY,IVZ
71 my_real c,pres,rho,lcar,r1,r2,ener,vx,vy,vz
73 INTEGER,
DIMENSION(:),
POINTER :: INGR2USR
74 LOGICAL IS_ENCRYPTED, IS_AVAILABLE
96 ebcs%title = trim(titr)
99 CALL hm_get_intv(
'entityid', surf ,is_available,lsubmodel)
102 ingr2usr => igrsurf(1:nsurf)%ID
103 IF (surf/=0) isu=ngr2usr(surf,ingr2usr,nsurf)
105 IF (isu/=0) nseg=igrsurf(isu)%NSEG
108 WRITE(istdo,
'(6X,A)')
' ** A SURFACE SHOULD BE INPUT'
109 WRITE(iout, '(6x,a)
')' ** a surface should be input
'
112 WRITE(ISTDO,*)' ** error surface not found, id=
',SURF
113 WRITE(IOUT,*) ' ** error surface not found, id=
',SURF
116 WRITE(ISTDO,*)' ** error empty surface
',SURF
117 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_pr
', IPRES ,IS_AVAILABLE,LSUBMODEL)
125 CALL HM_GET_FLOATV('rad_ebcs_fscale_pr
', PRES ,IS_AVAILABLE,LSUBMODEL,UNITAB)
128 CALL HM_GET_INTV('rad_fct_rho
', IRHO ,IS_AVAILABLE,LSUBMODEL)
129 CALL HM_GET_FLOATV('rad_ebcs_fscale_rho
', RHO ,IS_AVAILABLE,LSUBMODEL,UNITAB)
132 CALL HM_GET_INTV('rad_fct_en
', IENER ,IS_AVAILABLE,LSUBMODEL)
133 CALL HM_GET_FLOATV('rad_ebcs_fscale_en
', ENER ,IS_AVAILABLE,LSUBMODEL,UNITAB)
136 CALL HM_GET_FLOATV('rad_ebcs_lc
', LCAR ,IS_AVAILABLE,LSUBMODEL,UNITAB)
137 CALL HM_GET_FLOATV('rad_ebcs_r1
', R1 ,IS_AVAILABLE,LSUBMODEL,UNITAB)
138 CALL HM_GET_FLOATV('rad_ebcs_r2
', R2 ,IS_AVAILABLE,LSUBMODEL,UNITAB)
141.AND..AND.
IF(SURF/=0 ISU/=0 NSEG/=0)THEN
142 WRITE(IOUT,1001)ID,TRIM(TITR)
143 WRITE(IOUT,1101)SURF,NSEG,C,PRES,IPRES,RHO,IRHO,ENER,IENER,LCAR,R1,R2
146.AND.
IF(IPRES/=0 IPRES==NPC(J)) THEN
152.AND.
IF(IRHO/=0 IRHO==NPC(J)) THEN
158.AND.
IF(IENER/=0 IENER==NPC(J)) THEN
164.AND.
IF(IVX/=0 IVX==NPC(J)) THEN
170.AND.
IF(IVY/=0 IVY==NPC(J)) THEN
176.AND.
IF(IVZ/=0 IVZ==NPC(J)) THEN
181 !initialise la liste des noeuds de la surface
183! CALL EBCNODE(IEBCS(K1),NSEG,IGRSURF(ISU)%NODES,NOD)
185! CALL EBCRECT(IEBCS(K1),NSEG,IGRSURF(ISU)%NODES,NOD,IEBCS(K2))
204 IF (MULTI_FVM%IS_USED) THEN
205 CALL ANCMSG(MSGID = 1602, MSGTYPE = MSGERROR, ANMODE = ANINFO,
206 . I1 = ID, C1 = TRIM(TITR), C2 = "NOT COMPATIBLE WITH LAW 151")
213 1001 FORMAT( //'imposed pressure ebcs number . . . . . . :
',I8,1X,A)
215 . ' on surface . . . . . . . . . . . . . . .
',I8,/,
216 . ' number of segments found. . . . . . . . .
',I8,/,
217 . ' speed of sound . . . . . . . . . . . . .
',E16.6,/,
218 . ' imposed pressure . . . . . . . . . . . .
',E16.6,/,
219 . ' pressure scaling
FUNCTION . . . . . . . .
',I8,/,
220 . ' imposed density . . . . . . . . . . . . .
',E16.6,/,
221 . ' density scaling function . . . . . . . .
',I8,/,
222 . ' imposed energy . . . . . . . . . . . . .
',E16.6,/,
223 . ' energy scaling function . . . . . . . . .
',I8,/,
224 . ' characteristic length . . . . . . . . . .
',E16.6,/,
225 . ' linear resistance . . . . . . . . . . . .
',E16.6,/,
226 . ' quadratic resistance . . . . . . . . . .
',E16.6,/)
subroutine hm_read_ebcs_pres(igrsurf, npc, multi_fvm, unitab, id, titr, lsubmodel, ebcs)