51#include "implicit_f.inc"
61 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
63 TYPE (MULTI_FVM_STRUCT),
INTENT(INOUT) :: MULTI_FVM
64 TYPE (SURF_),
TARGET,
DIMENSION(NSURF) :: IGRSURF
65 CHARACTER(LEN=NCHARTITLE),
INTENT(IN) :: TITR
67 TYPE(t_ebcs_gradp0),
INTENT(INOUT) ::
71 INTEGER J,ISU,SURF,NGR2USR,IPRES,IRHO,NSEG,IENER
72 my_real c,pres,rho,lcar,r1,r2,ener
74 INTEGER,
DIMENSION(:),
POINTER :: INGR2USR
75 LOGICAL IS_ENCRYPTED,IS_AVAILABLE
91 ebcs%title = trim(titr)
92 ebcs%HAS_IELEM = .true.
96 CALL hm_get_intv(
'entityid', surf ,is_available,lsubmodel)
99 ingr2usr => igrsurf(1:nsurf)%ID
100 IF (surf/=0) isu=ngr2usr(surf,ingr2usr,nsurf)
102 IF (isu/=0) nseg=igrsurf(isu)%NSEG
105 WRITE(istdo,
'(6X,A)')
' ** A SURFACE SHOULD BE INPUT'
106 WRITE(iout, '(6x,a)
')' ** a surface should be input
'
109 WRITE(ISTDO,*)' ** error surface not found, id=
',SURF
110 WRITE(IOUT,*) ' ** error surface not found, id=
',SURF
113 WRITE(ISTDO,*)' ** error empty surface
',SURF
114 WRITE(IOUT,*) ' ** error empty surface
',SURF
118 CALL HM_GET_FLOATV('rad_ebcs_c
', C ,IS_AVAILABLE,LSUBMODEL,UNITAB)
120 CALL HM_GET_INTV('rad_fct_pr
', IPRES ,IS_AVAILABLE,LSUBMODEL)
121 CALL HM_GET_FLOATV('rad_ebcs_fscale_pr
', PRES ,IS_AVAILABLE,LSUBMODEL,UNITAB)
123 CALL HM_GET_INTV('rad_fct_rho
', IRHO ,IS_AVAILABLE,LSUBMODEL)
124 CALL HM_GET_FLOATV('rad_ebcs_fscale_rho
', RHO ,IS_AVAILABLE,LSUBMODEL,UNITAB)
126 CALL HM_GET_INTV('rad_fct_en
', IENER ,IS_AVAILABLE,LSUBMODEL)
127 CALL HM_GET_FLOATV('rad_ebcs_fscale_en
', ENER ,IS_AVAILABLE,LSUBMODEL,UNITAB)
129 CALL HM_GET_FLOATV('rad_ebcs_lc
', LCAR ,IS_AVAILABLE,LSUBMODEL,UNITAB)
130 CALL HM_GET_FLOATV('rad_ebcs_r1
', R1 ,IS_AVAILABLE,LSUBMODEL,UNITAB)
131 CALL HM_GET_FLOATV('rad_ebcs_r2
', R2 ,IS_AVAILABLE,LSUBMODEL,UNITAB)
133.AND..AND.
IF(SURF /= 0 ISU /= 0 NSEG /= 0)THEN
134 WRITE(IOUT,1000)ID,TRIM(TITR)
135 WRITE(IOUT,1101)SURF,NSEG,C,PRES,IPRES,RHO,IRHO,ENER,IENER,LCAR,R1,R2
138.AND.
IF(IPRES/=0 IPRES==NPC(J)) THEN
144.AND.
IF(IRHO/=0 IRHO==NPC(J)) THEN
150.AND.
IF(IENER/=0 IENER==NPC(J)) THEN
168 IF (MULTI_FVM%IS_USED) THEN
169 CALL ANCMSG(MSGID = 1602, MSGTYPE = MSGERROR, ANMODE = ANINFO,
170 . I1 = ID, C1 = TRIM(TITR), C2 = "NOT COMPATIBLE WITH LAW 151")
174 CALL ANCMSG(MSGID = 755, MSGTYPE = MSGERROR, ANMODE = ANINFO,C1 = 'elementary
')
181 1000 FORMAT( //'zero pressure gradient ebcs number . . . :
',I8,1X,A)
183 . ' on surface . . . . . . . . . . . . . . .
',I8,/,
184 . ' number of segments found. . . . . . . . .
',I8,/,
185 . ' speed of sound . . . . . . . . . . . . .
',E16.6,/,
186 . ' imposed pressure . . . . . . . . . . . .
',E16.6,/,
187 . ' pressure scaling
FUNCTION . . . . . . . .
',I8,/,
188 . ' imposed density . . . . . . . . . . . . .
',E16.6,/,
189 . ' density scaling function . . . . . . . .
',I8,/,
190 . ' imposed energy . . . . . . . . . . . . .
',E16.6,/,
191 . ' energy scaling function . . . . . . . . .
',I8,/,
192 . ' characteristic length . . . . . . . . . .
',E16.6,/,
193 . ' linear resistance . . . . . . . . . . . .
',E16.6,/,
194 . ' quadratic resistance . . . . . . . . . .
',E16.6,/)
subroutine hm_read_ebcs_gradp0(igrsurf, npc, multi_fvm, unitab, id, titr, lsubmodel, ebcs)