Select Type: Can not call subroutine defined only in derived type?

I recently started to dive into OOP with Fortran. I have a type hierarchy where I have an abstract base type genericProblem and a derived type specificProblem. specificProblem has a subroutine that is not defined in genericProblem, called "InitializeWith" in my example.

It seems that I misunderstood the select type construct. I thought it was made specifically for such cases where I know I can expect the variable problem to be of a certain (derived) type of genericProblem and that the compiler should know that "I'm apparently of type specificProblem now function calls specific to that type are ok".

I am however getting a This is not a field name that is defined in the encompassing structure. error with the example below, so I am probably missing out something. Could someone point me in the right direction?

subroutine AssignSomething(problem,rhsTarget)

    class(genericProblemT),         intent(in out) :: problem
    class(genericProblemT), target, intent(in)     :: rhsTarget

    select type (lhsProblem => problem)
        type is (specificProblemT)
            ! Try setting up the rhsProblem:
            call lhsProblem%InitializeWith(rhsTarget) ! Gives an error
        class default
            ! give error for unexpected/unsupported type
            throw some error
    end select

end subroutine AssignSomething