The current semantic check in place is incorrect, this patch fixes this. Up to 1 **'default'** named mapper should be allowed for each derived type. The current semantic check only allows up to 1 **'default'** named mapper across all derived types. This also makes sure that declare mappers follow proper scoping rules for both default and named mappers. Co-authored-by: Raghu Maddhipatla <Raghu.Maddhipatla@amd.com>