module Ice5623_Example

    type :: SomeSystem(nStates)
        integer, len :: nStates
    end type

    type :: SomeClass
        type(SomeSystem(:)), allocatable :: model
    end type

    contains

    function constructor(nStates) result(this)
        integer                   :: nStates
        type(SomeSystem(nStates)) :: this
    end function

    subroutine configure(this, integer1, integer2)
        type(SomeClass) :: this
        integer         :: integer1, integer2

        this%model = constructor(integer1*integer2)
    end subroutine

end module
