Using select type on allocatable character

Ok, so if i understand correctly, for cases where i want to write a value to a variable, it is actually better to write separate routines because then i can manage the allocation in the routine; while for cases where i read a value from a variable i can use a generic routine with class(*) since the variable is surely already allocated.