Subroutine to save the pressures along a line perpendicular to the flow, at distance
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(FE_FILM), | intent(in) | :: | fe_f | FE_FILM element |
||
character(len=*), | intent(in) | :: | file_name | filename |
||
real(kind=R8), | intent(in) | :: | ly | pocket width |
||
real(kind=R8), | intent(in) | :: | zx | distance from the pocket entry |
||
real(kind=R8), | intent(in), | dimension(4) | :: | bc | pressure boundaries |
subroutine save_profile_y_comp_air_pocket(fe_f, file_name, ly, zx, bc)
implicit none
type(FE_FILM), intent(in) :: fe_f !! [[FE_FILM]] *element*
character(len=*), intent(in) :: file_name !! *filename*
real(kind=R8), intent(in) :: ly !! *pocket width*
real(kind=R8), intent(in) :: zx !! *distance from the pocket entry*
real(kind=R8), intent(in), dimension(4) :: bc !! *pressure boundaries*
real(kind=R8) :: dr, hr, hb, p0
integer(kind=I4) :: i, ii, jj, k
logical(kind=I4), allocatable, dimension(:) :: done
dr = ly / fe_f%m%n
dr = dr / 10
hr = minval(fe_f%vn(:, H_N))
p0 = bc(1)
allocate(done(1:fe_f%m%n)) ; done = .false.
call get_unit(k)
open(k, file = file_name, status = 'unknown')
do ii = 1, fe_f%m%ne
do jj = 1, fe_f%m%el_t(ii)
i = fe_f%m%con(ii, jj)
if (done(i)) cycle
done(i) = .true.
if (((fe_f%m%x(i) - zx)**2) < (dr ** 2)) then
hb = (fe_f%vn(i, H_N) + fe_f%vc(ii, HG_C))/hr
write (k, *) fe_f%m%y(i)/ly, hb, fe_f%vn(i, P_N) / p0, hb
endif
enddo
enddo
close(k)
deallocate(done)
return
endsubroutine save_profile_y_comp_air_pocket