eulerian_obj_SubEulerianIObj Function

private impure function eulerian_obj_SubEulerianIObj(this, in) result(res)

Performs subtraction of integer Eulerian objects.

Type Bound

eulerian_obj_base

Arguments

Type IntentOptional Attributes Name
class(eulerian_obj_base), intent(in) :: this

An Eulerian object

type(eulerian_obj_i), intent(in) :: in

An Eulerian object

Return Value class(eulerian_obj_base), allocatable

Result


Calls

proc~~eulerian_obj_subeulerianiobj~~CallsGraph proc~eulerian_obj_subeulerianiobj eulerian_obj_base%eulerian_obj_SubEulerianIObj proc~eulerian_obj_init eulerian_obj_base%eulerian_obj_Init proc~eulerian_obj_subeulerianiobj->proc~eulerian_obj_init

Source Code

    impure function eulerian_obj_SubEulerianIObj(this,in) result (res)
      !> Performs subtraction of integer Eulerian objects.
      implicit none
      class(eulerian_obj_base), intent(in) :: this                             !! An Eulerian object
      type(eulerian_obj_i),     intent(in) :: in                               !! An Eulerian object
      class(eulerian_obj_base), allocatable:: res                              !! Result

      select type (this)
      type is (eulerian_obj_r)
        allocate(eulerian_obj_r:: res)
        call res%Initialize(this%name,this%block,this%parallel,this%staggering)

        select type(res)
        type is (eulerian_obj_r)
          res%cell = this%cell-real(in%cell,wp)
        end select

      type is (eulerian_obj_i)
        allocate(eulerian_obj_i:: res)
        call res%Initialize(this%name,this%block,this%parallel,this%staggering)

        select type(res)
        type is (eulerian_obj_i)
          res%cell = this%cell-in%cell
        end select

      class default
        call this%parallel%Stop("Error performing addition of Eulerian object")
      end select

      return
    end function eulerian_obj_SubEulerianIObj