The standard way of finding that the OpenMP claims to be 3.1 is to check the value of _OPENMP (it's the date when that version of the standard was released). You can use this for coarse grained conditional compilation, such as choosing the OpenMP 2.0 subset supported by Microsoft.
There's no way to get a listing of which OpenMP 4 features should be present. The current compilers claim to support OpenMP 4.0 with the exception of user defined reduction. That's a big enough exception that it will still report 3.1.