grans_obj_PrepareSolverOutput Subroutine

subroutine grans_obj_PrepareSolverOutput(this)

Prepares output list used by GRANS.

Arguments

Type IntentOptional Attributes Name
class(grans_obj), intent(inout) :: this

GRANS solver


Calls

proc~~grans_obj_preparesolveroutput~~CallsGraph proc~grans_obj_preparesolveroutput grans_obj_PrepareSolverOutput none~get~4 parser_obj%Get proc~grans_obj_preparesolveroutput->none~get~4 proc~parser_obj_isdefined parser_obj%parser_obj_IsDefined proc~grans_obj_preparesolveroutput->proc~parser_obj_isdefined proc~parser_obj_read0d parser_obj%parser_obj_read0D none~get~4->proc~parser_obj_read0d proc~parser_obj_read1d parser_obj%parser_obj_read1D none~get~4->proc~parser_obj_read1d proc~parser_obj_fetchlabelid parser_obj%parser_obj_FetchLabelID proc~parser_obj_isdefined->proc~parser_obj_fetchlabelid proc~parser_obj_read0d->proc~parser_obj_fetchlabelid none~assigndefault parser_obj%AssignDefault proc~parser_obj_read0d->none~assigndefault proc~parser_obj_read1d->proc~parser_obj_fetchlabelid proc~parser_obj_read1d->none~assigndefault proc~parser_obj_assigndefault0d parser_obj%parser_obj_AssignDefault0D none~assigndefault->proc~parser_obj_assigndefault0d proc~parser_obj_assigndefault1d parser_obj%parser_obj_AssignDefault1D none~assigndefault->proc~parser_obj_assigndefault1d

Called by

proc~~grans_obj_preparesolveroutput~~CalledByGraph proc~grans_obj_preparesolveroutput grans_obj_PrepareSolverOutput proc~grans_obj_preparesolver grans_obj_PrepareSolver proc~grans_obj_preparesolver->proc~grans_obj_preparesolveroutput interface~grans_obj_preparesolver grans_obj%grans_obj_PrepareSolver interface~grans_obj_preparesolver->proc~grans_obj_preparesolver

Source Code

    subroutine grans_obj_PrepareSolverOutput(this)
      !> Prepares output list used by GRANS.
      implicit none
      class(grans_obj), intent(inout) :: this                                  !! GRANS solver
      ! Work variables
      character(len=str256) :: str
      integer :: count,n

      if (.not.this%parser%IsDefined("Output data")) return

      ! Count number of output
      call this%parser%Get("Output data",  str )
      count = 0
      n = 1
      do while (n.ne.0)
        count = count + 1
        str=adjustl(str(n:len_trim(str)))
        n = scan(trim(str),' ')
      end do

      ! Read the outputs
      allocate(this%outputs(count))
      call this%parser%Get("Output data",  this%outputs)

      ! Get names of fields to output
      ! Note: field names must match the actual names
      ! given in cdifs_obj_PrepareSolverFields
      this%output_var = [character(str8)::]
      do n=1,size(this%outputs)
       select case (this%outputs(n))
       case ('Fp')
         this%output_var = [character(str8) :: this%output_var(:), 'Fpx', 'Fpy', 'Fpz']
       case ('ibVF')
         if (this%use_RP .or. this%use_IB) &
           this%output_var = [character(str8) :: this%output_var(:), 'ibVF']
       case ('ibS')
         if (this%use_RP .or. this%use_IB) &
           this%output_var = [character(str8) :: this%output_var(:), 'ibS']
       case ('PVF')
         this%output_var = [character(str8) :: this%output_var(:), 'PVF']
       case ('ResPart')
         this%output_var = [character(str8) :: this%output_var(:), 'id', 'd','rho','u','v', 'w']
       case ('PntPart')
         this%output_var = [character(str8) :: this%output_var(:), 'id', 'd','rho','u','v', 'w']
       case default
         call this%parallel%Stop("Unknown output variables in GRANS: "//this%outputs(n))
       end select
      end do

      return
    end subroutine grans_obj_PrepareSolverOutput