Local variables to be added
integer iel, ifac, izone, ii
integer ilelt, nlelt
integer, pointer, dimension(:,:) :: icodcl
double precision, pointer, dimension(:,:,:) :: rcodcl
double precision uref2, d2s3
double precision xkent, xeent
double precision dp, rho, S0, Kadm, radm, madm, Qadm, Padm, Ploc
double precision, dimension(:), pointer :: crom
integer, allocatable, dimension(:) :: lstelt
Initialization and finalization
Initialization and finalization is similar to that of the base examples
Example 1
Definition of a fuel flow inlet for each face of colour 11
call getfbr(
'11', nlelt, lstelt)
do ilelt = 1, nlelt
ifac = lstelt(ilelt)
itypfb(ifac) = ientre
izone = 1
izfppp(ifac) = izone
ientfu(izone) = 1
tinfue = 436.d0
iqimp(izone) = 1
qimp(izone) = 2.62609d-4 / 72.d0
rcodcl(ifac,iu,1) = 0.d0
rcodcl(ifac,iv,1) = 0.d0
rcodcl(ifac,iw,1) = 21.47d0
icalke(izone) = 1
if(icalke(izone).eq.0) then
uref2 = rcodcl(ifac,iu,1)**2 &
+rcodcl(ifac,iv,1)**2 &
+rcodcl(ifac,iw,1)**2
uref2 = max(uref2,1.d-12)
xkent = epzero
xeent = epzero
if (itytur.eq.2) then
rcodcl(ifac,ik,1) = xkent
rcodcl(ifac,iep,1) = xeent
elseif(itytur.eq.3) then
rcodcl(ifac,ir11,1) = d2s3*xkent
rcodcl(ifac,ir22,1) = d2s3*xkent
rcodcl(ifac,ir33,1) = d2s3*xkent
rcodcl(ifac,ir12,1) = 0.d0
rcodcl(ifac,ir13,1) = 0.d0
rcodcl(ifac,ir23,1) = 0.d0
rcodcl(ifac,iep,1) = xeent
elseif (iturb.eq.50) then
rcodcl(ifac,ik,1) = xkent
rcodcl(ifac,iep,1) = xeent
rcodcl(ifac,iphi,1) = d2s3
rcodcl(ifac,ifb,1) = 0.d0
elseif (iturb.eq.60) then
rcodcl(ifac,ik,1) = xkent
rcodcl(ifac,iomg,1) = xeent/cmu/xkent
elseif (iturb.eq.70) then
rcodcl(ifac,inusa,1) = cmu*xkent**2/xeent
endif
endif
dh(izone) = 0.032d0
xintur(izone) = 0.d0
enddo
subroutine getfbr(fstr, facnb, faces)
Build the list of boundary faces matching a criteria string.
Definition: cs_selector_f2c.f90:111
Example 2
Definition of an air flow inlet for each face of colour 21
call getfbr(
'21', nlelt, lstelt)
do ilelt = 1, nlelt
ifac = lstelt(ilelt)
itypfb(ifac) = ientre
izone = 2
izfppp(ifac) = izone
ientox(izone) = 1
tinoxy = 353.d0
iqimp(izone) = 1
qimp(izone) = 4.282d-3 / 72.d0
rcodcl(ifac,iu,1) = 0.d0
rcodcl(ifac,iv,1) = 0.d0
rcodcl(ifac,iw,1) = 0.097d0
icalke(izone) = 1
if(icalke(izone).eq.0) then
uref2 = rcodcl(ifac,iu,1)**2 &
+rcodcl(ifac,iv,1)**2 &
+rcodcl(ifac,iw,1)**2
uref2 = max(uref2,1.d-12)
xkent = epzero
xeent = epzero
if (itytur.eq.2) then
rcodcl(ifac,ik,1) = xkent
rcodcl(ifac,iep,1) = xeent
elseif(itytur.eq.3) then
rcodcl(ifac,ir11,1) = d2s3*xkent
rcodcl(ifac,ir22,1) = d2s3*xkent
rcodcl(ifac,ir33,1) = d2s3*xkent
rcodcl(ifac,ir12,1) = 0.d0
rcodcl(ifac,ir13,1) = 0.d0
rcodcl(ifac,ir23,1) = 0.d0
rcodcl(ifac,iep,1) = xeent
elseif (iturb.eq.50) then
rcodcl(ifac,ik,1) = xkent
rcodcl(ifac,iep,1) = xeent
rcodcl(ifac,iphi,1) = d2s3
rcodcl(ifac,ifb,1) = 0.d0
elseif (iturb.eq.60) then
rcodcl(ifac,ik,1) = xkent
rcodcl(ifac,iomg,1) = xeent/cmu/xkent
elseif (iturb.eq.70) then
rcodcl(ifac,inusa,1) = cmu*xkent**2/xeent
endif
endif
dh(izone) = 0.218d0
xintur(izone) = 0.d0
enddo
Example 3
Definition of a wall for each face of colour 51 up to 59
call getfbr(
'51 to 59', nlelt, lstelt)
do ilelt = 1, nlelt
ifac = lstelt(ilelt)
itypfb(ifac) = iparoi
izone = 3
izfppp(ifac) = izone
enddo
Example 4
Definition of an exit for each face of colour 91
call getfbr(
'91', nlelt, lstelt)
do ilelt = 1, nlelt
ifac = lstelt(ilelt)
itypfb(ifac) = isolib
izone = 4
izfppp(ifac) = izone
enddo
Example 5
Definition of symmetric boundary conditions for each face of colour 41 and 4.
call getfbr(
'41 or 4', nlelt, lstelt)
do ilelt = 1, nlelt
ifac = lstelt(ilelt)
itypfb(ifac) = isymet
izone = 5
izfppp(ifac) = izone
enddo