diff --git a/GenericIO.cxx b/GenericIO.cxx index 2f297b56c47243f9711928eecd649161bc878361..7cd47a7754d37abb439fdfa63f936dc19061e4da 100644 --- a/GenericIO.cxx +++ b/GenericIO.cxx @@ -532,6 +532,18 @@ void GenericIO::write() { int FilterIdx = 0; if (Vars[i].LCI.Mode != LossyCompressionInfo::LCModeNone) { +#ifdef _OPENMP +#pragma omp master + { +#endif + if (!sz_initialized) { + SZ_Init(NULL); + sz_initialized = true; + } + +#ifdef _OPENMP + } +#endif int SZDT = GetSZDT(Vars[i]); if (SZDT == -1) goto nosz; @@ -590,11 +602,6 @@ nosz: blosc_initialized = true; } - if (!sz_initialized) { - SZ_Init(NULL); - sz_initialized = true; - } - #ifdef _OPENMP blosc_set_nthreads(omp_get_max_threads()); }