Yes, use of COMMON block data declared to be THREADPRIVATE outside of a parallel region is legal. The OpenMP Fortran Spec 2.0 states, "During serial portions and MASTER sections of the program, accesses are to the master thread's copy of the common block or variable."
A copy of all THREADPRIVATE data is created for each thread upon entrance to the first parallel region. Initially undefined in value, data can be initialized from the master thread copy with a COPYIN clause. Otherwise, any data written to THREADPRIVATE variables will only be visible from the thread that wrote the value.