Bill Putman recently ran into an issue where DP gave bad results with the stretch provided by Schmidt transform.
The improvement is to use higher precision (where available) and use a different value of "TINY".
Quick summary here, but hopefully can point you to an FV PR soon.
ifdef NO_QUAD_PRECISION
! 64-bit precision (kind=8)
integer, parameter:: f_p = selected_real_kind(15)
#else
! Higher precision (kind=16) for grid geometrical factors:
integer, parameter:: f_p = selected_real_kind(20)
#endif
near_zero = tiny(near_zero)