save_profile_y_comp_air_pocket Subroutine

public subroutine save_profile_y_comp_air_pocket(fe_f, file_name, ly, zx, bc)


Arguments

Type IntentOptional AttributesName
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


Calls

proc~~save_profile_y_comp_air_pocket~~CallsGraph proc~save_profile_y_comp_air_pocket save_profile_y_comp_air_pocket proc~get_unit get_unit proc~save_profile_y_comp_air_pocket->proc~get_unit

Contents


Source Code

   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