Kind( 1.d0)=8, because 1.d0 is double precision.
Real (DP), parameter:: e = 2.71828182845904523560287 _ DP: DP cannot be a variable, and the previous line should be changed to an integer, parameter:: DP = Kind (1.d0).
As for: e = 2.7182818284590453560287 _ DP, I don't know the format and consciousness of redundant DP. After testing, it is wrong to remove any letter.