Prepares output list used by CDIFS.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(cdifs_obj), | intent(inout) | :: | this |
CDIFS solver |
subroutine cdifs_obj_PrepareSolverOutput(this) !> Prepares output list used by CDIFS. implicit none class(cdifs_obj), intent(inout) :: this !! CDIFS solver ! Work variables character(len=str256) :: str integer :: count integer :: n if (.not.this%parser%IsDefined("Output data")) return ! Parse the output string ! Count number of outputs 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 ('Vel') this%output_var = [character(str8) :: this%output_var(:), 'V1m', 'V2m', 'V3m'] case ('P') this%output_var = [character(str8) :: this%output_var(:), 'P'] case ('DIV') this%output_var = [character(str8) :: this%output_var(:), 'div'] case ('ibS') if (this%use_RP .or. this%use_IB) & this%output_var = [character(str8) :: this%output_var(:), 'ibS'] case ('ibF') if (this%use_RP .or. this%use_IB) & this%output_var = [character(str8) :: this%output_var(:), 'ibF1', 'ibF2', 'ibF3'] case ('ibN') if (this%use_RP .or. this%use_IB) & this%output_var = [character(str8) :: this%output_var(:), 'ibN1', 'ibN2', 'ibN3'] case ('ibVF') if (this%use_RP .or. this%use_IB) & this%output_var = [character(str8) :: this%output_var(:), 'ibVF'] case ('ResPart') this%output_var = [character(str8) :: this%output_var(:), 'id', 'd','rho','u','v', 'w'] case default call this%parallel%Stop("Unknown output variables in CDIFS: "//this%outputs(n)) end select end do return end subroutine cdifs_obj_PrepareSolverOutput