sdf_assign Subroutine

private subroutine sdf_assign(lhs, rhs)

sdf initializer

Type Bound

sdf

Arguments

Type IntentOptional Attributes Name
class(sdf), intent(inout) :: lhs
class(sdf_base), intent(in) :: rhs

Source Code

    subroutine sdf_assign(lhs, rhs)
        !! sdf initializer

        class(sdf),      intent(inout) :: lhs
        class(sdf_base), intent(in)    :: rhs

        if (allocated(lhs%value))deallocate(lhs%value)
        ! Prevent nested derived type
        select type (rhsT=>rhs)
            class is (sdf)
                if(allocated(rhsT%value))allocate(lhs%value,source=rhsT%value)
            class default
                allocate(lhs%value,source=rhsT)
        end select
    end subroutine sdf_assign