I need a little help about using submodules. My intention is to use one submodule for specific derived type from parent module and I want to put the whole declaration of the
Is there way for using a derived type(with components and procedures) in a submodule?
Short answer: no. (At least not how your are expecting to)
Submodules are a feature added to the language to address one specific question: separation of interface and implementation. The main motivation was the compile cascades generated when you needed to change just a implementation detail in a module.
But Submodules are not Modules!
A submodule is tied to a module and provides implementation to procedures declared in that module. So, a submodule have access to all declarations in it's parent module. Nonetheless, the module doesn't know anything about it's Submodules, and doesn't USE it's Submodules like they were modules. The module just expect you to add Submodules at link time, enough to cover all the missing procedure implementations.
So, if you would declare a type or anything else in a submodule, it would be local and opaque to the parent module.
If you need to access declarations of a program unity by host in another unit, a Module is what you need.
You have to design your solution wisely. Separate your modules by subject and dependency. If three types reference each other then they are very related should be in the same program unit.