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) :: EBCS
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 IF(surf /= 0 .AND. isu /= 0 .AND. 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 IF(ipres/=0 .AND. ipres==npc(j))
THEN
144 IF(irho/=0 .AND. irho==npc(j))
THEN
150 IF(iener/=0 .AND. 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 BOUNDARY CONDITIONS')
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 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)