diff --git a/Golden_Repo/a/ADIOS2/ADIOS2-2.7.1-gpsmkl-2021b.eb b/Golden_Repo/a/ADIOS2/ADIOS2-2.7.1-gpsmkl-2021b.eb
new file mode 100644
index 0000000000000000000000000000000000000000..8a9b394df86b03ad626e2a51cefeb93d32d43fb5
--- /dev/null
+++ b/Golden_Repo/a/ADIOS2/ADIOS2-2.7.1-gpsmkl-2021b.eb
@@ -0,0 +1,169 @@
+easyblock = 'CMakeMake'
+
+name = 'ADIOS2'
+version = '2.7.1'
+
+homepage = 'https://www.olcf.ornl.gov/center-projects/adios/'
+description = """The Adaptable IO System (ADIOS) provides a simple,
+flexible way for scientists to describe the data in their code that may
+need to be written, read, or processed outside of the running
+simulation."""
+
+toolchain = {'name': 'gpsmkl', 'version': '2021b'}
+toolchainopts = {'pic': True, 'usempi': False}
+
+github_account = 'ornladios'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+patches = ['include4gcc11.patch']
+checksums = [
+    'c8e237fd51f49d8a62a0660db12b72ea5067512aa7970f3fcf80b70e3f87ca3e',
+    'ea10445fc942796568c6196a4bed7d506e8a6bf381b2a01c9bdaae38f1601ea2',
+]
+
+builddependencies = [
+    ('CMake', '3.21.1'),
+    ('pkg-config', '0.29.2'),
+]
+
+dependencies = [
+    ('Python', '3.9.6'),
+    ('SciPy-Stack', '2021b', '', ('gcccoremkl', '11.2.0-2021.4.0')),
+    ('zlib', '1.2.11'),
+    ('bzip2', '1.0.8'),
+    ('Szip', '2.1.1'),
+    ('SZ', '2.1.12'),
+    ('zfp', '0.5.5'),
+    ('Blosc', '1.21.1'),
+    ('HDF5', '1.12.1'),
+    ('mpi4py', '3.1.3'),
+    ('libpng', '1.6.37'),
+    ('ZeroMQ', '4.3.4'),
+    ('nlohmann-json', '3.10.4'),
+    ('pybind11', '2.7.1'),
+]
+
+separate_build_dir = True
+
+configopts = "-DCMAKE_VERBOSE_MAKEFILE=ON "
+
+configopts += "-DADIOS2_USE_Fortran=ON "
+configopts += "-DADIOS2_USE_MPI=ON "
+
+# Examples/Testing
+configopts += "-DADIOS2_BUILD_EXAMPLES=OFF "
+configopts += "-DADIOS2_BUILD_EXAMPLES_EXPERIMENTAL=OFF "
+configopts += "-DADIOS2_BUILD_TESTING=OFF "
+
+# Compression
+configopts += "-DADIOS2_USE_BZip2=ON "
+configopts += "-DBZIP2_DIR=${EBROOTBZIP2} "
+
+configopts += "-DADIOS2_USE_PNG=ON "
+configopts += "-DPNG_DIR=${EBROOTLIBPNG} "
+
+configopts += "-DADIOS2_USE_SZ=ON "
+configopts += "-DSZ_DIR=${EBROOTSZ} "
+
+configopts += "-DADIOS2_USE_ZFP=ON "
+configopts += "-DZFP_DIR=${EBROOTZFP} "
+
+configopts += "-DADIOS2_USE_Blosc=ON "
+configopts += "-DBLOSC_DIR=${EBROOTBLOSC} "
+
+configopts += "-DZLIB_DIR=${EBROOTZLIB} "
+configopts += "-DADIOS2_USE_MGARD=OFF "
+
+# HDF5
+configopts += "-DADIOS2_USE_HDF5=ON "
+configopts += "-DHDF5_DIR=${EBROOTHDF5} "
+
+# ZeroMQ
+configopts += "-DADIOS2_USE_ZeroMQ=ON "
+configopts += "-DZeroMQ_DIR=${EBROOTZEROMQ} "
+
+# Python
+configopts += "-DADIOS2_USE_Python=ON "
+configopts += "-DPython_DIR=${EBROOTPYTHON} "
+
+# System Virtual Shared Memory
+configopts += "-DADIOS2_USE_SysVShMem=ON "
+
+# Strong Staging Coupler
+# https://adios2.readthedocs.io/en/latest/engines/engines.html#ssc-strong-staging-coupler
+configopts += "-DADIOS2_USE_SSC=ON "
+
+# Sustainable Staging Transport
+# https://adios2.readthedocs.io/en/latest/engines/engines.html#sst-sustainable-staging-transport
+configopts += "-DADIOS2_USE_SST=ON "
+# Can optionally use LibFabric for RDMA transport: if -DLIBFABRIC_ROOT=<path> is set.
+
+# DataMan
+# https://adios2.readthedocs.io/en/latest/engines/engines.html#dataman-for-wide-area-network-data-staging
+configopts += "-DADIOS2_USE_DataMan=ON "
+
+# DataSpaces (mind. version 1.8)
+configopts += "-DADIOS2_USE_DataSpaces=OFF "
+
+# external libs
+configopts += "-DADIOS2_USE_EXTERNAL_PYBIND11=ON "
+configopts += "-Dpybind11_DIR=${EBROOTPYBIND11} "
+configopts += "-DADIOS2_USE_EXTERNAL_NLOHMANN_JSON=ON "
+configopts += "-Dnlohmann_json_DIR=${EBROOTNLOHMANNMINJSON} "
+
+# more options
+configopts += "-DADIOS2_USE_IME=OFF "
+configopts += "-DADIOS2_USE_Profiling=OFF "
+configopts += "-DADIOS2_USE_Table=OFF "
+# configopts += "-DADIOS2_USE_Endian_Reverse=ON "
+
+runtest = False
+
+# create pkgconfig files
+postinstallcmds = [
+    'mkdir %(installdir)s/lib/pkgconfig',
+    """echo -e "Name: adios2
+Description: ADIOS2 I/O library
+Version: %(version)s
+Requires: bzip2, zfp, sz, libpng, blosc
+Libs: $(%(installdir)s/bin/adios2-config --c-libs)
+Cflags: $(%(installdir)s/bin/adios2-config --c-flags)" > %(installdir)s/lib/pkgconfig/adios2.pc""",
+    """echo -e "Name: adios2_cxx
+Description: ADIOS2 I/O library (C++)
+Version: %(version)s
+Libs: $(%(installdir)s/bin/adios2-config --cxx-libs)
+Cflags: $(%(installdir)s/bin/adios2-config --cxx-flags)" > %(installdir)s/lib/pkgconfig/adios2_cxx.pc""",
+    """echo -e "Name: adios2_f
+Description: ADIOS2 I/O library (Fortran)
+Version: %(version)s
+Libs: $(%(installdir)s/bin/adios2-config --fortran-libs)
+Cflags: $(%(installdir)s/bin/adios2-config --fortran-flags)" > %(installdir)s/lib/pkgconfig/adios2_f.pc""",
+]
+
+sanity_check_paths = {
+    'files': ['bin/adios2-config', 'bin/bpls', 'bin/bp4dbg'],
+    'files': ['include/adios2.h', 'include/adios2_c.h', 'include/adios2/fortran/adios2.mod'],
+    'files': [
+        'lib64/libadios2_core.so', 'lib64/libadios2_core_mpi.so', 'lib64/cmake/adios2/adios2-config.cmake',
+        'lib64/libadios2_c.so', 'lib64/libadios2_c_mpi.so', 'lib64/libadios2_cxx11.so',
+        'lib64/libadios2_cxx11_mpi.so', 'lib64/libadios2_fortran.so', 'lib64/libadios2_fortran_mpi.so'
+    ],
+    'dirs': ['lib/python%(pyshortver)s/site-packages']
+}
+
+sanity_check_paths = {
+    'files': ['bin/adios2-config', 'bin/bpls'],
+    'dirs': ['include/adios2', 'lib/python%(pyshortver)s'],
+}
+
+modextrapaths = {
+    'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages',
+}
+
+modextravars = {
+    'ADIOS2_PKGCONFIG_LIBS': 'adios2',
+    'ADIOS2_CXX_PKGCONFIG_LIBS': 'adios2_cxx',
+    'ADIOS2_FORTRAN_PKGCONFIG_LIBS': 'adios2_f',
+}
+
+moduleclass = 'data'
diff --git a/Golden_Repo/a/ADIOS2/include4gcc11.patch b/Golden_Repo/a/ADIOS2/include4gcc11.patch
new file mode 100644
index 0000000000000000000000000000000000000000..e0714c2d8842b86ec90d996fa1b8131857671c54
--- /dev/null
+++ b/Golden_Repo/a/ADIOS2/include4gcc11.patch
@@ -0,0 +1,22 @@
+From 8d04bda12988ac4190780e1d75bedaf3e510d32c Mon Sep 17 00:00:00 2001
+From: Erik Schnetter <schnetter@gmail.com>
+Date: Thu, 20 May 2021 08:55:59 -0400
+Subject: [PATCH] Add missing #include <memory>
+
+Closes https://github.com/ornladios/ADIOS2/issues/2709
+---
+ source/adios2/toolkit/zmq/zmqpubsub/ZmqPubSub.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/source/adios2/toolkit/zmq/zmqpubsub/ZmqPubSub.h b/source/adios2/toolkit/zmq/zmqpubsub/ZmqPubSub.h
+index 3648ded1d..a0c381a05 100644
+--- a/source/adios2/toolkit/zmq/zmqpubsub/ZmqPubSub.h
++++ b/source/adios2/toolkit/zmq/zmqpubsub/ZmqPubSub.h
+@@ -11,6 +11,7 @@
+ #ifndef ADIOS2_TOOLKIT_ZMQ_ZMQPUBSUB_H_
+ #define ADIOS2_TOOLKIT_ZMQ_ZMQPUBSUB_H_
+ 
++#include <memory>
+ #include <mutex>
+ #include <queue>
+ #include <thread>
diff --git a/Golden_Repo/b/Blosc/Blosc-1.21.1-GCCcore-11.2.0.eb b/Golden_Repo/b/Blosc/Blosc-1.21.1-GCCcore-11.2.0.eb
new file mode 100644
index 0000000000000000000000000000000000000000..35ae6fea852d209436bf2c413a4e9c526f6bbd41
--- /dev/null
+++ b/Golden_Repo/b/Blosc/Blosc-1.21.1-GCCcore-11.2.0.eb
@@ -0,0 +1,28 @@
+easyblock = 'CMakeMake'
+
+name = 'Blosc'
+version = '1.21.1'
+
+homepage = 'https://www.blosc.org/'
+
+description = "Blosc, an extremely fast, multi-threaded, meta-compressor library"
+
+toolchain = {'name': 'GCCcore', 'version': '11.2.0'}
+toolchainopts = {'pic': True, 'cstd': 'c++11'}
+
+source_urls = ['https://github.com/Blosc/c-blosc/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['f387149eab24efa01c308e4cba0f59f64ccae57292ec9c794002232f7903b55b']
+
+builddependencies = [
+    ('binutils', '2.37'),
+    ('CMake', '3.21.1'),
+]
+
+sanity_check_paths = {
+    'files': ['include/blosc-export.h', 'include/blosc.h', 'lib/libblosc.a',
+              'lib/libblosc.%s' % SHLIB_EXT],
+    'dirs': [],
+}
+
+moduleclass = 'lib'
diff --git a/Golden_Repo/hidden_deps.txt b/Golden_Repo/hidden_deps.txt
index ccea3a4a887bd8bdb5d500b2ab980a6a29226ec1..9fbfa20a134643447dd8989c79e1f95163b6eeff 100644
--- a/Golden_Repo/hidden_deps.txt
+++ b/Golden_Repo/hidden_deps.txt
@@ -8,6 +8,7 @@ ATK
 Autoconf
 Automake
 Bison
+Blosc
 CUSP
 Coreutils
 CubeWriter
@@ -237,6 +238,7 @@ rkcommon
 scrollkeeper
 snappy
 spdlog
+SZ
 texinfo
 uglifyjs
 util-linux
@@ -259,4 +261,5 @@ xprop
 xproto
 xtrans
 yuicompressor
+zfp
 zlib
diff --git a/Golden_Repo/o/OpenGL/OpenGL-2021b-GCCcore-11.2.0.eb b/Golden_Repo/o/OpenGL/OpenGL-2021b-GCCcore-11.2.0.eb
index 8754b468b3038e92f826ac3e75538a59c9fd9181..ea15b1e5992225f37d7eb814ae3a035b929676db 100644
--- a/Golden_Repo/o/OpenGL/OpenGL-2021b-GCCcore-11.2.0.eb
+++ b/Golden_Repo/o/OpenGL/OpenGL-2021b-GCCcore-11.2.0.eb
@@ -83,7 +83,7 @@ components = [
             # o/OpenGL/ofnone-fix.patch
             '37d1c37fd3a8563b9dd78ecd361e5a39440310facd1ed656ca1e12f667b54d6b',
             # o/OpenGL/swrllvm-fix.patch
-            'e5aa27b6aba3e75335bbd6d989c52dd42a8435ef87a1453267164e9612daee1a',
+            '8bc00dc99a88684fcf469115914269b716622ef33648cf80c8a80d05d38e9540',
         ],
         'patches': [
             # https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11568
diff --git a/Golden_Repo/o/OpenGL/swrllvm-fix.patch b/Golden_Repo/o/OpenGL/swrllvm-fix.patch
index c87663eb196b930a41f340b31ff3c18b5785fbab..83f433deb948637abd319cc5692822e3e7f5f5e2 100644
--- a/Golden_Repo/o/OpenGL/swrllvm-fix.patch
+++ b/Golden_Repo/o/OpenGL/swrllvm-fix.patch
@@ -1,129 +1,262 @@
-From 98859f67c3d54c9c6d8bbf55251717cbe3511f4e Mon Sep 17 00:00:00 2001
-From: Grigory Vasilyev <h0tc0d3@gmail.com>
-Date: Fri, 8 Oct 2021 15:26:49 +0300
-Subject: [PATCH] Fix swr build with LLVM 13
-
----
- .../swr/rasterizer/jitter/builder_mem.cpp     | 12 +++++++++++
- .../swr/rasterizer/jitter/builder_mem.h       |  4 ++++
- src/gallium/drivers/swr/swr_shader.cpp        | 20 ++++++++++++++-----
- 3 files changed, 31 insertions(+), 5 deletions(-)
-
+diff --git a/src/gallium/drivers/swr/rasterizer/jitter/builder_gfx_mem.h b/src/gallium/drivers/swr/rasterizer/jitter/builder_gfx_mem.h
+index c361959b76ff0799f5102ad4b8ddf23d345105d9..64a690b47fac9ee99eba8f1259ffccf20f0e5fa0 100644
+--- a/src/gallium/drivers/swr/rasterizer/jitter/builder_gfx_mem.h
++++ b/src/gallium/drivers/swr/rasterizer/jitter/builder_gfx_mem.h
+@@ -41,31 +41,29 @@ namespace SwrJit
+         BuilderGfxMem(JitManager* pJitMgr);
+         virtual ~BuilderGfxMem() {}
+ 
+-        virtual Value* GEP(Value* Ptr, Value* Idx, Type* Ty = nullptr, bool isReadOnly = true, const Twine& Name = "");
+-        virtual Value* GEP(Type* Ty, Value* Ptr, Value* Idx, const Twine& Name = "");
+-        virtual Value*
+-        GEP(Value* Ptr, const std::initializer_list<Value*>& indexList, Type* Ty = nullptr);
+-        virtual Value*
+-        GEP(Value* Ptr, const std::initializer_list<uint32_t>& indexList, Type* Ty = nullptr);
++        virtual Value* GEP(Value* Ptr, Value* Idx, Type* Ty = nullptr, bool isReadOnly = true, const Twine& Name = "") override;
++        virtual Value* GEP(Type* Ty, Value* Ptr, Value* Idx, const Twine& Name = "") override;
++        virtual Value* GEP(Value* Ptr, const std::initializer_list<Value*>& indexList, Type* Ty = nullptr) override;
++        virtual Value* GEP(Value* Ptr, const std::initializer_list<uint32_t>& indexList, Type* Ty = nullptr) override;
+ 
+         virtual LoadInst* LOAD(Value*         Ptr,
+                                const char*    Name,
+                                Type*          Ty    = nullptr,
+-                               MEM_CLIENT usage = MEM_CLIENT::MEM_CLIENT_INTERNAL);
++                               MEM_CLIENT     usage = MEM_CLIENT::MEM_CLIENT_INTERNAL) override;
+         virtual LoadInst* LOAD(Value*         Ptr,
+                                const Twine&   Name  = "",
+                                Type*          Ty    = nullptr,
+-                               MEM_CLIENT     usage = MEM_CLIENT::MEM_CLIENT_INTERNAL);
++                               MEM_CLIENT     usage = MEM_CLIENT::MEM_CLIENT_INTERNAL) override;
+         virtual LoadInst* LOAD(Value*         Ptr,
+                                bool           isVolatile,
+                                const Twine&   Name  = "",
+                                Type*          Ty    = nullptr,
+-                               MEM_CLIENT     usage = MEM_CLIENT::MEM_CLIENT_INTERNAL);
++                               MEM_CLIENT     usage = MEM_CLIENT::MEM_CLIENT_INTERNAL) override;
+         virtual LoadInst* LOAD(Value*                                 BasePtr,
+                                const std::initializer_list<uint32_t>& offset,
+                                const llvm::Twine&                     Name  = "",
+                                Type*                                  Ty    = nullptr,
+-                               MEM_CLIENT                         usage = MEM_CLIENT::MEM_CLIENT_INTERNAL);
++                               MEM_CLIENT                             usage = MEM_CLIENT::MEM_CLIENT_INTERNAL) override;
+ 
+         virtual CallInst* MASKED_LOAD(Value*         Ptr,
+                                       unsigned       Align,
+@@ -73,32 +71,32 @@ namespace SwrJit
+                                       Value*         PassThru = nullptr,
+                                       const Twine&   Name     = "",
+                                       Type*          Ty       = nullptr,
+-                                      MEM_CLIENT     usage    = MEM_CLIENT::MEM_CLIENT_INTERNAL);
++                                      MEM_CLIENT     usage    = MEM_CLIENT::MEM_CLIENT_INTERNAL) override;
+ 
+-        virtual StoreInst* STORE(Value *Val, Value *Ptr, bool isVolatile = false, Type* Ty = nullptr, MEM_CLIENT usage = MEM_CLIENT::MEM_CLIENT_INTERNAL);
+-        
+-        virtual StoreInst* STORE(Value* Val, Value* BasePtr, const std::initializer_list<uint32_t>& offset, Type* Ty = nullptr, MEM_CLIENT usage = MEM_CLIENT::MEM_CLIENT_INTERNAL);
++        virtual StoreInst* STORE(Value *Val, Value *Ptr, bool isVolatile = false, Type* Ty = nullptr, MEM_CLIENT usage = MEM_CLIENT::MEM_CLIENT_INTERNAL) override;
+ 
+-        virtual CallInst* MASKED_STORE(Value *Val, Value *Ptr, unsigned Align, Value *Mask, Type* Ty = nullptr, MEM_CLIENT usage = MEM_CLIENT::MEM_CLIENT_INTERNAL);
++        virtual StoreInst* STORE(Value* Val, Value* BasePtr, const std::initializer_list<uint32_t>& offset, Type* Ty = nullptr, MEM_CLIENT usage = MEM_CLIENT::MEM_CLIENT_INTERNAL) override;
++
++        virtual CallInst* MASKED_STORE(Value *Val, Value *Ptr, unsigned Align, Value *Mask, Type* Ty = nullptr, MEM_CLIENT usage = MEM_CLIENT::MEM_CLIENT_INTERNAL) override;
+ 
+         virtual Value* GATHERPS(Value*         src,
+                                 Value*         pBase,
+                                 Value*         indices,
+                                 Value*         mask,
+                                 uint8_t        scale = 1,
+-                                MEM_CLIENT     usage = MEM_CLIENT::MEM_CLIENT_INTERNAL);
++                                MEM_CLIENT     usage = MEM_CLIENT::MEM_CLIENT_INTERNAL) override;
+         virtual Value* GATHERDD(Value*         src,
+                                 Value*         pBase,
+                                 Value*         indices,
+                                 Value*         mask,
+                                 uint8_t        scale = 1,
+-                                MEM_CLIENT     usage = MEM_CLIENT::MEM_CLIENT_INTERNAL);
++                                MEM_CLIENT     usage = MEM_CLIENT::MEM_CLIENT_INTERNAL) override;
+ 
+         virtual void SCATTERPS(Value*         pDst,
+                                Value*         vSrc,
+                                Value*         vOffsets,
+                                Value*         vMask,
+-                               MEM_CLIENT     usage = MEM_CLIENT::MEM_CLIENT_INTERNAL);
++                               MEM_CLIENT     usage = MEM_CLIENT::MEM_CLIENT_INTERNAL) override;
+ 
+         Value* TranslateGfxAddressForRead(Value*         xpGfxAddress,
+                                           Type*          PtrTy = nullptr,
+@@ -108,13 +106,13 @@ namespace SwrJit
+                                            Type*          PtrTy = nullptr,
+                                            const Twine&   Name  = "",
+                                            MEM_CLIENT     usage = MEM_CLIENT::MEM_CLIENT_INTERNAL);
+-        
++
+     protected:
+         void AssertGFXMemoryParams(Value* ptr, MEM_CLIENT usage);
+ 
+         virtual void NotifyPrivateContextSet();
+ 
+-        virtual Value* OFFSET_TO_NEXT_COMPONENT(Value* base, Constant* offset);
++        virtual Value* OFFSET_TO_NEXT_COMPONENT(Value* base, Constant* offset) override;
+ 
+         Value* TranslationHelper(Value* Ptr, Type* Ty, Value* pfnTranslateGfxAddress);
+         void   TrackerHelper(Value* Ptr, Type* Ty, MEM_CLIENT usage, bool isRead);
 diff --git a/src/gallium/drivers/swr/rasterizer/jitter/builder_mem.cpp b/src/gallium/drivers/swr/rasterizer/jitter/builder_mem.cpp
-index b5eb0a782b1..ff0672cfd14 100644
+index b5eb0a782b15214bcf954a7893cd628649a990fc..a16b5d11dbb2f2f1a0bcdc07e4d306b14a90dc4c 100644
 --- a/src/gallium/drivers/swr/rasterizer/jitter/builder_mem.cpp
 +++ b/src/gallium/drivers/swr/rasterizer/jitter/builder_mem.cpp
-@@ -82,7 +82,11 @@ namespace SwrJit
+@@ -82,7 +82,12 @@ namespace SwrJit
          std::vector<Value*> indices;
          for (auto i : indexList)
              indices.push_back(i);
 +#if LLVM_VERSION_MAJOR >= 13
-+        return IN_BOUNDS_GEP(ptr->getType(), ptr, indices);
++        Type *EltTy = cast<PointerType>(ptr->getType())->getElementType();
++        return IN_BOUNDS_GEP(EltTy, ptr, indices);
 +#else
          return IN_BOUNDS_GEP(ptr, indices);
 +#endif
      }
  
      Value* Builder::IN_BOUNDS_GEP(Value* ptr, const std::initializer_list<uint32_t>& indexList)
-@@ -90,7 +94,11 @@ namespace SwrJit
+@@ -90,7 +95,12 @@ namespace SwrJit
          std::vector<Value*> indices;
          for (auto i : indexList)
              indices.push_back(C(i));
 +#if LLVM_VERSION_MAJOR >= 13
-+        return IN_BOUNDS_GEP(ptr->getType(), ptr, indices);
++        Type *EltTy = cast<PointerType>(ptr->getType())->getElementType();
++        return IN_BOUNDS_GEP(EltTy, ptr, indices);
 +#else
          return IN_BOUNDS_GEP(ptr, indices);
 +#endif
      }
  
      LoadInst* Builder::LOAD(Value* Ptr, const char* Name, Type* Ty, MEM_CLIENT usage)
-@@ -234,7 +242,11 @@ namespace SwrJit
+@@ -130,6 +140,22 @@ namespace SwrJit
+         return Builder::LOAD(GEPA(basePtr, valIndices), name);
+     }
+ 
++    CallInst* Builder::MASKED_LOAD(Value*         Ptr,
++                                   unsigned       Align,
++                                   Value*         Mask,
++                                   Value*         PassThru,
++                                   const Twine&   Name,
++                                   Type*          Ty,
++                                   MEM_CLIENT     usage)
++    {
++#if LLVM_VERSION_MAJOR >= 13
++        Type *EltTy = cast<PointerType>(Ptr->getType())->getElementType();
++        return IRB()->CreateMaskedLoad(EltTy, Ptr, AlignType(Align), Mask, PassThru, Name);
++#else
++        return IRB()->CreateMaskedLoad(Ptr, AlignType(Align), Mask, PassThru, Name);
++#endif
++    }
++
+     LoadInst* Builder::LOADV(Value*                               basePtr,
+                              const std::initializer_list<Value*>& indices,
+                              const llvm::Twine&                   name)
+@@ -234,7 +260,12 @@ namespace SwrJit
      /// @param pVecPassthru - SIMD wide vector of values to load when lane is inactive
      Value* Builder::GATHER_PTR(Value* pVecSrcPtr, Value* pVecMask, Value* pVecPassthru)
      {
 +#if LLVM_VERSION_MAJOR >= 13
-+        return MASKED_GATHER(pVecSrcPtr->getType(), pVecSrcPtr, AlignType(4), pVecMask, pVecPassthru);
++        Type *EltTy = cast<PointerType>(pVecSrcPtr->getType())->getElementType();
++        return MASKED_GATHER(EltTy, pVecSrcPtr, AlignType(4), pVecMask, pVecPassthru);
 +#else
          return MASKED_GATHER(pVecSrcPtr, AlignType(4), pVecMask, pVecPassthru);
-+#endif       
++#endif
      }
  
      void Builder::SCATTER_PTR(Value* pVecDstPtr, Value* pVecSrc, Value* pVecMask)
 diff --git a/src/gallium/drivers/swr/rasterizer/jitter/builder_mem.h b/src/gallium/drivers/swr/rasterizer/jitter/builder_mem.h
-index 429d5779a4d..c6cfb812b81 100644
+index 429d5779a4db2a6a3b6c7a7d02169773c935bb95..6682ad892b4038d4b3172b932a34e31a89cd7790 100644
 --- a/src/gallium/drivers/swr/rasterizer/jitter/builder_mem.h
 +++ b/src/gallium/drivers/swr/rasterizer/jitter/builder_mem.h
-@@ -84,7 +84,11 @@ virtual CallInst* MASKED_LOAD(Value*         Ptr,
+@@ -82,10 +82,7 @@ virtual CallInst* MASKED_LOAD(Value*         Ptr,
+                               Value*         PassThru = nullptr,
+                               const Twine&   Name     = "",
                                Type*          Ty       = nullptr,
-                               MEM_CLIENT usage    = MEM_CLIENT::MEM_CLIENT_INTERNAL)
- {
-+#if LLVM_VERSION_MAJOR >= 13
-+    return IRB()->CreateMaskedLoad(Ptr->getType(), Ptr, AlignType(Align), Mask, PassThru, Name);
-+#else
-     return IRB()->CreateMaskedLoad(Ptr, AlignType(Align), Mask, PassThru, Name);
-+#endif
- }
+-                              MEM_CLIENT usage    = MEM_CLIENT::MEM_CLIENT_INTERNAL)
+-{
+-    return IRB()->CreateMaskedLoad(Ptr, AlignType(Align), Mask, PassThru, Name);
+-}
++                              MEM_CLIENT usage    = MEM_CLIENT::MEM_CLIENT_INTERNAL);
  
  virtual StoreInst* STORE(Value *Val, Value *Ptr, bool isVolatile = false, Type* Ty = nullptr, MEM_CLIENT usage = MEM_CLIENT::MEM_CLIENT_INTERNAL)
+ {
+diff --git a/src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp b/src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp
+index bd5f7588c9189275ddaf3075b0a75e2e8fc1ecf5..2a4cf74722bc9ef1831d25fe6c2bb2f510b8fceb 100644
+--- a/src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp
++++ b/src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp
+@@ -276,7 +276,8 @@ Function* FetchJit::Create(const FETCH_COMPILE_STATE& fetchState)
+     JitManager::DumpToFile(fetch, "src");
+ 
+ #if defined(_DEBUG)
+-    verifyFunction(*fetch);
++    // Note that false is returned if there are no errors
++    SWR_ASSERT(!verifyFunction(*fetch, &llvm::errs()));
+ #endif
+ 
+     ::FunctionPassManager setupPasses(JM()->mpCurrentModule);
 diff --git a/src/gallium/drivers/swr/swr_shader.cpp b/src/gallium/drivers/swr/swr_shader.cpp
-index 315036920fb..26e967759cd 100644
+index 315036920fb3ad364d0039349e148c70e5ba1818..a643b46cd081c026b5a3558d22be557338d4f220 100644
 --- a/src/gallium/drivers/swr/swr_shader.cpp
 +++ b/src/gallium/drivers/swr/swr_shader.cpp
-@@ -1553,7 +1553,9 @@ BuilderSWR::CompileGS(struct swr_context *ctx, swr_jit_gs_key &key)
-                                      GlobalValue::ExternalLinkage,
-                                      "GS",
-                                      JM()->mpCurrentModule);
--#if LLVM_VERSION_MAJOR < 5
-+#if LLVM_VERSION_MAJOR >= 13
-+   pFunction->addParamAttrs(AttributeList::FunctionIndex, attrBuilder);
-+#elif LLVM_VERSION_MAJOR < 5
+@@ -1557,8 +1557,10 @@ BuilderSWR::CompileGS(struct swr_context *ctx, swr_jit_gs_key &key)
     AttributeSet attrSet = AttributeSet::get(
        JM()->mContext, AttributeSet::FunctionIndex, attrBuilder);
     pFunction->addAttributes(AttributeSet::FunctionIndex, attrSet);
-@@ -1781,7 +1783,9 @@ BuilderSWR::CompileTES(struct swr_context *ctx, swr_jit_tes_key &key)
-                                      "TES",
-                                      JM()->mpCurrentModule);
+-#else
++#elif LLVM_VERSION_MAJOR < 14
+    pFunction->addAttributes(AttributeList::FunctionIndex, attrBuilder);
++#else
++   pFunction->addFnAttrs(attrBuilder);
+ #endif
  
--#if LLVM_VERSION_MAJOR < 5
-+#if LLVM_VERSION_MAJOR >= 13
-+   pFunction->addParamAttrs(AttributeList::FunctionIndex, attrBuilder);
-+#elif LLVM_VERSION_MAJOR < 5
+    BasicBlock *block = BasicBlock::Create(JM()->mContext, "entry", pFunction);
+@@ -1785,8 +1787,10 @@ BuilderSWR::CompileTES(struct swr_context *ctx, swr_jit_tes_key &key)
     AttributeSet attrSet = AttributeSet::get(
        JM()->mContext, AttributeSet::FunctionIndex, attrBuilder);
     pFunction->addAttributes(AttributeSet::FunctionIndex, attrSet);
-@@ -2082,7 +2086,9 @@ BuilderSWR::CompileTCS(struct swr_context *ctx, swr_jit_tcs_key &key)
-                                      "TCS",
-                                      JM()->mpCurrentModule);
+-#else
++#elif LLVM_VERSION_MAJOR < 14
+    pFunction->addAttributes(AttributeList::FunctionIndex, attrBuilder);
++#else
++   pFunction->addFnAttrs(attrBuilder);
+ #endif
  
--#if LLVM_VERSION_MAJOR < 5
-+#if LLVM_VERSION_MAJOR >= 13
-+   pFunction->addParamAttrs(AttributeList::FunctionIndex, attrBuilder);
-+#elif LLVM_VERSION_MAJOR < 5
+    BasicBlock *block = BasicBlock::Create(JM()->mContext, "entry", pFunction);
+@@ -2086,8 +2090,10 @@ BuilderSWR::CompileTCS(struct swr_context *ctx, swr_jit_tcs_key &key)
     AttributeSet attrSet = AttributeSet::get(
        JM()->mContext, AttributeSet::FunctionIndex, attrBuilder);
     pFunction->addAttributes(AttributeSet::FunctionIndex, attrSet);
-@@ -2337,7 +2343,9 @@ BuilderSWR::CompileVS(struct swr_context *ctx, swr_jit_vs_key &key)
-                                      GlobalValue::ExternalLinkage,
-                                      "VS",
-                                      JM()->mpCurrentModule);
--#if LLVM_VERSION_MAJOR < 5
-+#if LLVM_VERSION_MAJOR >= 13
-+   pFunction->addParamAttrs(AttributeList::FunctionIndex, attrBuilder);
-+#elif LLVM_VERSION_MAJOR < 5
+-#else
++#elif LLVM_VERSION_MAJOR < 14
+    pFunction->addAttributes(AttributeList::FunctionIndex, attrBuilder);
++#else
++   pFunction->addFnAttrs(attrBuilder);
+ #endif
+ 
+    BasicBlock *block = BasicBlock::Create(JM()->mContext, "entry", pFunction);
+@@ -2341,8 +2347,10 @@ BuilderSWR::CompileVS(struct swr_context *ctx, swr_jit_vs_key &key)
     AttributeSet attrSet = AttributeSet::get(
        JM()->mContext, AttributeSet::FunctionIndex, attrBuilder);
     pFunction->addAttributes(AttributeSet::FunctionIndex, attrSet);
-@@ -2642,7 +2650,9 @@ BuilderSWR::CompileFS(struct swr_context *ctx, swr_jit_fs_key &key)
-                                      GlobalValue::ExternalLinkage,
-                                      "FS",
-                                      JM()->mpCurrentModule);
--#if LLVM_VERSION_MAJOR < 5
-+#if LLVM_VERSION_MAJOR >= 13
-+   pFunction->addParamAttrs(AttributeList::FunctionIndex, attrBuilder);
-+#elif LLVM_VERSION_MAJOR < 5
+-#else
++#elif LLVM_VERSION_MAJOR < 14
+    pFunction->addAttributes(AttributeList::FunctionIndex, attrBuilder);
++#else
++   pFunction->addFnAttrs(attrBuilder);
+ #endif
+ 
+    BasicBlock *block = BasicBlock::Create(JM()->mContext, "entry", pFunction);
+@@ -2646,8 +2654,10 @@ BuilderSWR::CompileFS(struct swr_context *ctx, swr_jit_fs_key &key)
     AttributeSet attrSet = AttributeSet::get(
        JM()->mContext, AttributeSet::FunctionIndex, attrBuilder);
     pFunction->addAttributes(AttributeSet::FunctionIndex, attrSet);
--- 
-GitLab
+-#else
++#elif LLVM_VERSION_MAJOR < 14
+    pFunction->addAttributes(AttributeList::FunctionIndex, attrBuilder);
++#else
++   pFunction->addFnAttrs(attrBuilder);
+ #endif
+ 
+    BasicBlock *block = BasicBlock::Create(JM()->mContext, "entry", pFunction);
 
diff --git a/Golden_Repo/p/ParaView/ParaView-5.10.0-EGL-gpsmkl-2021b.eb b/Golden_Repo/p/ParaView/ParaView-5.10.0-EGL-gpsmkl-2021b.eb
new file mode 100644
index 0000000000000000000000000000000000000000..e98cd73d281dc7a5f819330bf988e6898f89f6d5
--- /dev/null
+++ b/Golden_Repo/p/ParaView/ParaView-5.10.0-EGL-gpsmkl-2021b.eb
@@ -0,0 +1,309 @@
+easyblock = 'CMakeMake'
+
+name = 'ParaView'
+version = '5.10.0'
+versionsuffix = '-EGL'
+
+homepage = "http://www.paraview.org"
+description = "Paraview is a scientific parallel visualizer."
+
+toolchain = {'name': 'gpsmkl', 'version': '2021b'}
+toolchainopts = {'pic': True, 'usempi': True}
+
+local_dwnlsfx_src = 'download.php?submit=Download&version=v%(version_major_minor)s&type=source&os=Sources&downloadFile='
+source_urls = [('http://www.paraview.org/paraview-downloads/%s' % local_dwnlsfx_src)]
+sources = [("ParaView-v%(version)s.tar.gz")]
+checksums = [('sha256', '4273dd90c858a6440a72d9c1ad054e76f336446138c895148a797b486603afbd')]
+
+builddependencies = [
+    ('CMake', '3.21.1', '', SYSTEM),
+    ('git', '2.33.1', '-nodocs'),
+    ('pkg-config', '0.29.2'),
+]
+
+dependencies = [
+    ('Python', '3.9.6'),
+    ('Boost', '1.78.0'),
+    ('X11', '20210802'),
+    ('bzip2', '1.0.8'),
+    ('HDF5', '1.12.1'),
+    ('ADIOS2', '2.7.1'),
+    ('FFmpeg', '4.4.1'),
+    ('Embree', '3.13.2'),
+    ('OSPRay', '2.8.0'),
+    ('libpng', '1.6.37'),
+    ('expat', '2.4.1'),
+    ('freetype', '2.11.0'),
+    ('libjpeg-turbo', '2.1.1'),
+    ('libxml2', '2.9.10'),
+    ('LibTIFF', '4.3.0'),
+    ('zlib', '1.2.11'),
+    ('netCDF', '4.8.1'),
+    ('netCDF-C++4', '4.3.1'),
+    ('netCDF-Fortran', '4.5.3'),
+    ('nlohmann-json', '3.10.4'),  # for ParFlow plugin
+    ('mpi4py', '3.1.3'),
+    ('double-conversion', '3.1.6'),
+    ('Eigen', '3.3.9'),
+    ('Qt5', '5.15.2'),
+    ('SciPy-Stack', '2021b', '', ('gcccoremkl', '11.2.0-2021.4.0')),
+    ('OpenGL', '2021b'),
+    ('ParaViewData', '%(version)s', '', SYSTEM),
+    ('VTKData', '9.1.0', '', SYSTEM),
+]
+
+separate_build_dir = True
+
+# ensure we do not use a too advanced GL-version at config/build-time, which might not be available at run-time
+preconfigopts = "export __EGL_VENDOR_LIBRARY_FILENAMES=${EBROOTOPENGL}/share/glvnd/egl_vendor.d/50_mesa.json && "
+prebuildopts = "export __EGL_VENDOR_LIBRARY_FILENAMES=${EBROOTOPENGL}/share/glvnd/egl_vendor.d/50_mesa.json && "
+
+########################################################################################
+# check ParaView Superbuild options                                                    #
+# https://gitlab.kitware.com/paraview/paraview-superbuild/tree/master                  #
+#                                                                                      #
+# check ParaView Build documenation                                                    #
+# https://gitlab.kitware.com/paraview/paraview/blob/master/Documentation/dev/build.md  #
+########################################################################################
+
+# --- general settings --- #
+configopts = '-DCMAKE_VERBOSE_MAKEFILE=ON '
+configopts += '-DCMAKE_CXX_STANDARD=11 '
+configopts += '-DPARAVIEW_BUILD_LEGACY_SILENT=ON '
+
+# https://forum.openframeworks.cc/t/nvidia-drivers-pthreads-and-segfaults/2524
+# configopts += '-DCMAKE_CXX_FLAGS="-lpthread $CMAKE_CXX_FLAGS" '
+# configopts += '-DCMAKE_C_FLAGS="-lpthread $CMAKE_C_FLAGS" '
+
+configopts += '-DPARAVIEW_BUILD_EDITION=CANONICAL '
+configopts += '-DPARAVIEW_BUILD_WITH_KITS=OFF '
+configopts += '-DPARAVIEW_USE_QT=OFF '
+
+# --- tuning --- #
+configopts += '-DVTK_BUILD_SCALED_SOA_ARRAYS=ON '
+configopts += '-DVTK_DISPATCH_SOA_ARRAYS=ON '
+configopts += '-DVTK_DISPATCH_TYPED_ARRAYS=ON '
+
+# --- web --- #
+configopts += '-DPARAVIEW_ENABLE_WEB=ON '
+configopts += '-DPARAVIEW_USE_QTWEBENGINE=ON '
+configopts += '-DVTK_MODULE_ENABLE_ParaView_PVWebPython=YES '
+
+# --- python --- #
+configopts += '-DPARAVIEW_USE_PYTHON=ON '
+configopts += "-DPython3_EXECUTABLE=$EBROOTPYTHON/bin/python "
+
+configopts += '-DVTK_PYTHON_VERSION=3 '
+configopts += '-DVTK_NO_PYTHON_THREADS=OFF '
+configopts += '-DVTK_PYTHON_FULL_THREADSAFE=OFF '  # visibility depends on VTK_NO_PYTHON_THREADS=OFF
+# If you pass VTK_PYTHON_FULL_THREADSAFE to true, then each and every call to python will be protected with GIL,
+# ensuring that you can have eg. other python interpreter in your application and still use python wrapping in vtk.
+
+# --- VTKm --- #
+configopts += '-DPARAVIEW_USE_VTKM=ON '
+configopts += '-DVTK_MODULE_ENABLE_VTK_AcceleratorsVTKmCore=YES '
+configopts += '-DVTK_MODULE_ENABLE_VTK_AcceleratorsVTKmDataModel=YES '
+configopts += '-DVTK_MODULE_ENABLE_VTK_AcceleratorsVTKmFilters=YES '
+configopts += '-DVTKm_Vectorization=AVX2 '
+# configopts += '-DVTKm_ENABLE_KOKKOS=OFF '
+# configopts += '-DVTKm_ENABLE_TBB=OFF '
+# configopts += '-DVTKm_ENABLE_CUDA=ON '
+# configopts += '-DVTKm_ENABLE_LOGGING=ON '
+
+# --- parallel (on-node) --- #
+# https://blog.kitware.com/simple-parallel-computing-with-vtksmptools-2/
+configopts += '-DVTK_SMP_IMPLEMENTATION_TYPE=OpenMP '
+configopts += '-DVTK_MAX_THREADS=64 '
+configopts += '-DVTKm_ENABLE_OPENMP=ON '
+
+# --- parallel (distributed) --- #
+configopts += '-DMPIEXEC_MAX_NUMPROCS=24 '
+configopts += '-DPARAVIEW_USE_MPI=ON '
+configopts += '-DVTKm_ENABLE_MPI=ON '
+
+# --- IO --- #
+configopts += '-DXDMF_BUILD_MPI=ON '
+configopts += '-DPARAVIEW_ENABLE_XDMF3=ON '
+configopts += '-DPARAVIEW_ENABLE_ADIOS2=OFF '  # error: adios2.h not found
+# configopts += '-DPARAVIEW_PLUGIN_ENABLE_AdiosReaderPixie=ON '  # req. ADIOS1
+# configopts += '-DPARAVIEW_PLUGIN_ENABLE_AdiosReaderStaging=ON ' # req. ADIOS1
+configopts += '-DVTKm_ENABLE_HDF5_IO=ON '
+
+# --- large data --- #
+configopts += '-DVTK_USE_64BIT_IDS=ON '
+
+# --- rendering --- #
+
+# OpenGL (hardware)
+#  https://kitware.github.io/paraview-docs/latest/cxx/Offscreen.html
+#    If VTK_OPENGL_HAS_EGL or VTK_OPENGL_HAS_OSMESA is ON, the build supports headless rendering,
+#       otherwise VTK_USE_X must be ON and the build does not support headless,
+#       but can still support offscreen rendering.
+#    If VTK_USE_X is OFF, then either VTK_OPENGL_HAS_OSMESA or VTK_OPENGL_HAS_EGL must be ON. 
+#       Then the build does not support onscreen rendering, but only headless rendering.
+#    If PARAVIEW_BUILD_QT_GUI is ON and VTK_USE_X is ON, while ParaView command line tools won't link against
+#       or use X calls, Qt will and hence an accessible X server is still needed to run the desktop client.
+#    If VTK_OPENGL_HAS_OSMESA is ON, and VTK_USE_X is ON, 
+#       then all the OpenGL and OSMesa variables should point to the Mesa libraries.
+#    Likewise, if VTK_OPENGL_HAS_EGL is ON and VTK_USE_X is ON, then all the OpenGL and EGL variables
+#       should point to the system libraries providing both, typically the NVidia libraries.
+
+configopts += '-DOpenGL_GL_PREFERENCE=GLVND '
+configopts += '-DVTK_REPORT_OPENGL_ERRORS_IN_RELEASE_BUILDS=OFF '
+
+configopts += "-DOPENGL_INCLUDE_DIR=${EBROOTOPENGL}/include "
+configopts += "-DOPENGL_GLX_INCLUDE_DIR=${EBROOTOPENGL}/include "
+configopts += "-DOPENGL_EGL_INCLUDE_DIR=${EBROOTOPENGL}/include "
+# configopts += "-DOPENGL_xmesa_INCLUDE_DIR=IGNORE "
+
+configopts += "-DOPENGL_opengl_LIBRARY=${EBROOTOPENGL}/lib/libOpenGL.so.0 "
+configopts += "-DOPENGL_gl_LIBRARY=${EBROOTOPENGL}/lib/libGL.so "
+configopts += "-DOPENGL_glx_LIBRARY=${EBROOTOPENGL}/lib/libGLX.so.0 "
+configopts += "-DOPENGL_glu_LIBRARY=${EBROOTOPENGL}/lib/libGLU.so "
+configopts += "-DOPENGL_egl_LIBRARY=${EBROOTOPENGL}/lib/libEGL.so.1 "
+
+# OpenGL over X
+# configopts += '-DVTK_USE_X=ON '  # OFF:headless rendering
+# already considered by Qt (https://gitlab.kitware.com/lorensen/vtk/commit/b29f6db3f746d84f830c81e4212e48db192e4dbb)
+# configopts += '-DVTK_DEFAULT_RENDER_WINDOW_OFFSCREEN=OFF '
+# configopts += '-DVTK_OPENGL_HAS_OSMESA=OFF '  # http://www.paraview.org/Wiki/ParaView_And_Mesa_3D
+
+# EGL (off-screen rendering with OpenGL, but without the need for X)
+# call pvserver with –egl-device-index=0 or 1 and –disable-xdisplay-test
+configopts += '-DVTK_OPENGL_HAS_EGL=ON '
+configopts += '-DVTK_OPENGL_HAS_OSMESA=OFF '  # http://www.paraview.org/Wiki/ParaView_And_Mesa_3D
+configopts += '-DVTK_USE_X=OFF '
+configopts += '-DVTK_DEFAULT_EGL_DEVICE_INDEX=0 '
+# configopts += '-DEGL_INCLUDE_DIR=${EBROOTOPENGL}/include/EGL/ ' # https://www.khronos.org/registry/EGL/
+# configopts += '-DEGL_LIBRARY=${EBROOTOPENGL}/lib/libEGL.so.1 '
+# configopts += '-DEGL_opengl_LIBRARY=${EBROOTOPENGL}/lib/libOpenGL.so.0 '
+# configopts += '-DEGL_gldispatch_LIBRARY=${EBROOTOPENGL}/lib/libGLdispatch.so.0 ' # <path_to_libGLdispatch.so.0>
+
+# OSMesa (software)
+# With OSMesa the DISPLAY variable has no meaning and is not needed
+# When ON, implies that ParaView can use OSMesa to support headless modes of operation.
+# configopts += '-DVTK_OPENGL_HAS_OSMESA=ON ' # http://www.paraview.org/Wiki/ParaView_And_Mesa_3D
+# configopts += '-DVTK_USE_X=OFF '
+# configopts += '-DVTK_DEFAULT_RENDER_WINDOW_OFFSCREEN=ON '
+# configopts += '-DOSMESA_INCLUDE_DIR=${EBROOTOPENGL}/include '
+# configopts += '-DOSMESA_LIBRARY=${EBROOTOPENGL}/lib/libOSMesa.so '
+
+# Raytracing
+configopts += '-DPARAVIEW_ENABLE_RAYTRACING=ON '
+configopts += '-DVTK_ENABLE_OSPRAY=ON '
+configopts += '-DVTK_ENABLE_VISRTX=OFF '
+
+configopts += "-Dospray_DIR=${EBROOTOSPRAY} "
+configopts += "-Dembree_DIR=${EBROOTEMBREE}/lib64/cmake/embree-3.12.2 "
+configopts += '-DVTKOSPRAY_ENABLE_DENOISER=ON '
+
+# configopts += '-DPARAVIEW_PLUGIN_ENABLE_pvNVIDIAIndeX=YES '
+
+# --- extra features --- #
+configopts += '-DPARAVIEW_PLUGIN_ENABLE_GeographicalMap=ON '
+
+configopts += "-DFFMPEG_ROOT=$EBROOTFFMPEG "
+configopts += '-DPARAVIEW_ENABLE_FFMPEG=ON '
+configopts += '-DVTK_MODULE_ENABLE_VTK_IOFFMPEG=YES '
+configopts += '-DVTK_MODULE_ENABLE_VTK_IOVideo=YES '
+
+configopts += '-DVTK_MODULE_ENABLE_VTK_DICOMParser=YES '
+configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersReebGraph=YES '
+configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersSMP=YES '
+configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersSelection=YES '
+configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersTopology=YES '
+configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersTexture=YES '
+# configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersStatisticsGnu=YES '
+# configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersMatlab=YES '
+
+# --- coupling --- #
+configopts += '-DCATALYST_BUILD_TOOLS=ON '
+configopts += '-DVTK_MODULE_ENABLE_ParaView_InSitu=YES '
+configopts += '-DVTK_MODULE_ENABLE_ParaView_PythonCatalyst=YES '
+
+# --- development & testing --- #
+configopts += '-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON '
+configopts += '-DPARAVIEW_BUILD_DEVELOPER_DOCUMENTATION=OFF '
+configopts += '-DPARAVIEW_BUILD_EXAMPLES=OFF '
+configopts += '-DPARAVIEW_BUILD_TESTING=WANT '
+configopts += '-DPARAVIEW_BUILD_VTK_TESTING=WANT '
+
+# --- external data --- #
+# https://cmake.org/cmake/help/latest/module/ExternalData.html
+# https://gitlab.kitware.com/vtk/vtk/blob/master/Documentation/dev/git/data.md
+# configopts += '-DExternalData_TIMEOUT_INACTIVITY=10 '  # download inactivity, 0 = no timeout
+# configopts += '-DExternalData_TIMEOUT_ABSOLUTE=60 '  # download abs. time, 0 = no timeout
+configopts += '-DPARAVIEW_DATA_EXCLUDE_FROM_ALL=ON '  # Exclude test data download from default 'all' target.
+# Local directory holding ExternalData objects in the layout %(algo)/%(hash).
+configopts += '-DPARAVIEW_DATA_STORE=${EBROOTPARAVIEWDATA}/.ExternalData '
+configopts += '-DVTK_DATA_STORE=${EBROOTVTKDATA}/.ExternalData '
+# Local directory holding the real data files of ExternalData.
+configopts += '-DExternalData_BINARY_ROOT=${EBROOTPARAVIEWDATA} '
+# we need to combine VTK and ParaView's External data files as there can only be one ExternalData_BINARY_ROOT
+
+# --- XDMF options --- #
+configopts += '-DXDMF_USE_BZIP2=ON '
+configopts += '-DXDMF_USE_GZIP=ON '
+
+# --- VTK external libraries --- #
+configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_expat=ON '
+configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_freetype=ON '
+configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_hdf5=ON '
+configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_jpeg=ON '
+configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_libxml2=ON '
+configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_mpi4py=ON '
+configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_netcdf=ON '
+configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_png=ON '
+configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_tiff=ON '
+configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_zlib=ON '
+configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_doubleconversion=ON '
+configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_eigen=ON '
+
+# --- ParaView Extra-Reader --- #
+configopts += '-DPARAVIEW_PLUGIN_ENABLE_ParFlow=OFF '  # nlohmann-bug in Plugins/ParFlow/IO/vtkVectorJSON.h
+configopts += '-DPARAVIEW_ENABLE_MOTIONFX=ON '
+# configopts += '-DPARAVIEW_ENABLE_FIDES=ON '  # req. ADIOS2 as dependency
+# configopts += '-DPARAVIEW_ENABLE_GDAL=ON '  # req. GDAL as dependency
+# configopts += '-DPARAVIEW_ENABLE_LAS=ON '  # req. LAS as dependency
+# configopts += '-DPARAVIEW_ENABLE_PDAL=ON '  # req. PDAL as dependency
+# configopts += '-DPARAVIEW_ENABLE_OPENVDB=ON '  # req. OpenVDB as dependency
+
+# https://gitlab.kitware.com/paraview/visitbridge/-/blob/master/databases/CMakeLists.txt
+configopts += '-DPARAVIEW_ENABLE_VISITBRIDGE=ON '
+configopts += '-DVTK_MODULE_ENABLE_ParaView_IOVisItBridge=YES '
+# configopts += '-DVISIT_BUILD_READER_Boxlib3D=ON '  # req. external dependency
+# configopts += '-DVISIT_BUILD_READER_Mili=ON '  # req. external dependency
+# configopts += '-DVISIT_BUILD_READER_Silo=ON '  # req. external dependency
+# https://gitlab.kitware.com/vtk/vtk/-/merge_requests/7503
+# configopts += '-DVISIT_BUILD_READER_Nek5000=ON '  # MR still open
+
+postinstallcmds = ['python -m compileall %(installdir)s/lib64/python3.6/site-packages/']
+#    'cp -a %(builddir)s/ParaView-v%(version)s/  %(installdir)s/src', # copy source from build dir to install dir
+#    '', # move debug info to separate files: 
+#          http://stackoverflow.com/questions/866721/how-to-generate-gcc-debug-symbol-outside-the-build-target
+#    '', # debugedit -i --base-dir=%(builddir)s/ParaView-v%(version)s --dest-dir= %(installdir)s/src <file.debug>
+#        # change path to source in debug info    
+
+modextravars = {
+    'CUDA_VISIBLE_DEVICES': '0,1',
+    # OpenSWR fully supports OpenGL 3.0 and most of 3.3, but ParaView requires 3.3 -> clame to fully support 3.3
+    'MESA_GL_VERSION_OVERRIDE': '3.3',
+    'MESA_GLSL_VERSION_OVERRIDE': '330',
+    #  OpenMP will choose an optimum number of threads by default, which is usually the number of cores
+    # 'OMP_NUM_THREADS': '28', # fix number of threads used by paraview filters and parallel sections in the code
+    #  threads used by ospray - details https://github.com/ospray/ospray/blob/release-2.0.x/ospray/api/Device.cpp#L88
+    #  unset => OSPRAY uses all hardware threads
+    # 'OSPRAY_THREADS': '14',     # OSPRay <  2.0
+    # 'OSPRAY_NUM_THREADS': '14', # OSPRay >= 2.0
+    #  When TBB is used for OSPRAY: tbb::task_scheduler_init::default_num_threads() is default if no OSPRAY_NUM_THREADS
+    #    https://github.com/ospray/ospcommon/blob/master/ospcommon/tasking/detail/tasking_system_init.cpp#L47
+    #    https://www.threadingbuildingblocks.org/docs/doxygen/a00150.html
+    #  more ospray definitions: https://www.ospray.org/documentation.html#environment-variables
+    'KNOB_MAX_WORKER_THREADS': '65535',  # max. threads used by OpenSWR (limited by number of hardware threads)
+    #  details in https://gitlab.version.fz-juelich.de/vis/vis-software/issues/14
+    #  more knob defs: https://github.com/mesa3d/mesa/blob/master/src/gallium/docs/source/drivers/openswr/knobs.rst
+}
+
+modextrapaths = {'PYTHONPATH': 'lib64/python%(pyshortver)s/site-packages'}
+
+moduleclass = 'vis'
diff --git a/Golden_Repo/p/ParaView/ParaView-5.10.0-gpsmkl-2021b.eb b/Golden_Repo/p/ParaView/ParaView-5.10.0-gpsmkl-2021b.eb
new file mode 100644
index 0000000000000000000000000000000000000000..3f0ec5437cc7f934858b13da7e2c27984e581337
--- /dev/null
+++ b/Golden_Repo/p/ParaView/ParaView-5.10.0-gpsmkl-2021b.eb
@@ -0,0 +1,305 @@
+easyblock = 'CMakeMake'
+
+name = 'ParaView'
+version = '5.10.0'
+
+homepage = "http://www.paraview.org"
+description = "Paraview is a scientific parallel visualizer."
+
+toolchain = {'name': 'gpsmkl', 'version': '2021b'}
+toolchainopts = {'pic': True, 'usempi': True}
+
+local_dwnlsfx_src = 'download.php?submit=Download&version=v%(version_major_minor)s&type=source&os=Sources&downloadFile='
+source_urls = [('http://www.paraview.org/paraview-downloads/%s' % local_dwnlsfx_src)]
+sources = [("ParaView-v%(version)s.tar.gz")]
+checksums = [('sha256', '4273dd90c858a6440a72d9c1ad054e76f336446138c895148a797b486603afbd')]
+
+builddependencies = [
+    ('CMake', '3.21.1', '', SYSTEM),
+    ('git', '2.33.1', '-nodocs'),
+    ('pkg-config', '0.29.2'),
+]
+
+dependencies = [
+    ('Python', '3.9.6'),
+    ('Boost', '1.78.0'),
+    ('X11', '20210802'),
+    ('bzip2', '1.0.8'),
+    ('HDF5', '1.12.1'),
+    ('ADIOS2', '2.7.1'),
+    ('FFmpeg', '4.4.1'),
+    ('Embree', '3.13.2'),
+    ('OSPRay', '2.8.0'),
+    ('libpng', '1.6.37'),
+    ('expat', '2.4.1'),
+    ('freetype', '2.11.0'),
+    ('libjpeg-turbo', '2.1.1'),
+    ('libxml2', '2.9.10'),
+    ('LibTIFF', '4.3.0'),
+    ('zlib', '1.2.11'),
+    ('netCDF', '4.8.1'),
+    ('netCDF-C++4', '4.3.1'),
+    ('netCDF-Fortran', '4.5.3'),
+    ('nlohmann-json', '3.10.4'),  # for ParFlow plugin
+    ('mpi4py', '3.1.3'),
+    ('double-conversion', '3.1.6'),
+    ('Eigen', '3.3.9'),
+    ('Qt5', '5.15.2'),
+    ('SciPy-Stack', '2021b', '', ('gcccoremkl', '11.2.0-2021.4.0')),
+    ('OpenGL', '2021b'),
+    ('ParaViewData', '%(version)s', '', SYSTEM),
+    ('VTKData', '9.1.0', '', SYSTEM),
+]
+
+separate_build_dir = True
+
+########################################################################################
+# check ParaView Superbuild options                                                    #
+# https://gitlab.kitware.com/paraview/paraview-superbuild/tree/master                  #
+#                                                                                      #
+# check ParaView Build documenation                                                    #
+# https://gitlab.kitware.com/paraview/paraview/blob/master/Documentation/dev/build.md  #
+########################################################################################
+
+# --- general settings --- #
+configopts = '-DCMAKE_VERBOSE_MAKEFILE=ON '
+configopts += '-DCMAKE_CXX_STANDARD=11 '
+configopts += '-DPARAVIEW_BUILD_LEGACY_SILENT=ON '
+
+# https://forum.openframeworks.cc/t/nvidia-drivers-pthreads-and-segfaults/2524
+# configopts += '-DCMAKE_CXX_FLAGS="-lpthread $CMAKE_CXX_FLAGS" '
+# configopts += '-DCMAKE_C_FLAGS="-lpthread $CMAKE_C_FLAGS" '
+
+configopts += '-DPARAVIEW_BUILD_EDITION=CANONICAL '
+configopts += '-DPARAVIEW_BUILD_WITH_KITS=OFF '
+configopts += '-DPARAVIEW_USE_QT=ON '
+
+# --- tuning --- #
+configopts += '-DVTK_BUILD_SCALED_SOA_ARRAYS=ON '
+configopts += '-DVTK_DISPATCH_SOA_ARRAYS=ON '
+configopts += '-DVTK_DISPATCH_TYPED_ARRAYS=ON '
+
+# --- web --- #
+configopts += '-DPARAVIEW_ENABLE_WEB=ON '
+configopts += '-DPARAVIEW_USE_QTWEBENGINE=ON '
+configopts += '-DVTK_MODULE_ENABLE_ParaView_PVWebPython=YES '
+
+# --- python --- #
+configopts += '-DPARAVIEW_USE_PYTHON=ON '
+configopts += "-DPython3_EXECUTABLE=$EBROOTPYTHON/bin/python "
+
+configopts += '-DVTK_PYTHON_VERSION=3 '
+configopts += '-DVTK_NO_PYTHON_THREADS=OFF '
+configopts += '-DVTK_PYTHON_FULL_THREADSAFE=OFF '  # visibility depends on VTK_NO_PYTHON_THREADS=OFF
+# If you pass VTK_PYTHON_FULL_THREADSAFE to true, then each and every call to python will be protected with GIL,
+# ensuring that you can have eg. other python interpreter in your application and still use python wrapping in vtk.
+
+# --- VTKm --- #
+configopts += '-DPARAVIEW_USE_VTKM=ON '
+configopts += '-DVTK_MODULE_ENABLE_VTK_AcceleratorsVTKmCore=YES '
+configopts += '-DVTK_MODULE_ENABLE_VTK_AcceleratorsVTKmDataModel=YES '
+configopts += '-DVTK_MODULE_ENABLE_VTK_AcceleratorsVTKmFilters=YES '
+configopts += '-DVTKm_Vectorization=AVX2 '
+# configopts += '-DVTKm_ENABLE_KOKKOS=OFF '
+# configopts += '-DVTKm_ENABLE_TBB=OFF '
+# configopts += '-DVTKm_ENABLE_CUDA=ON '
+# configopts += '-DVTKm_ENABLE_LOGGING=ON '
+
+# --- parallel (on-node) --- #
+# https://blog.kitware.com/simple-parallel-computing-with-vtksmptools-2/
+configopts += '-DVTK_SMP_IMPLEMENTATION_TYPE=OpenMP '
+configopts += '-DVTK_MAX_THREADS=64 '
+configopts += '-DVTKm_ENABLE_OPENMP=ON '
+
+# --- parallel (distributed) --- #
+configopts += '-DMPIEXEC_MAX_NUMPROCS=24 '
+configopts += '-DPARAVIEW_USE_MPI=ON '
+configopts += '-DVTKm_ENABLE_MPI=ON '
+
+# --- IO --- #
+configopts += '-DXDMF_BUILD_MPI=ON '
+configopts += '-DPARAVIEW_ENABLE_XDMF3=ON '
+configopts += '-DPARAVIEW_ENABLE_ADIOS2=OFF '  # error: adios2.h not found
+# configopts += '-DPARAVIEW_PLUGIN_ENABLE_AdiosReaderPixie=ON '  # req. ADIOS1
+# configopts += '-DPARAVIEW_PLUGIN_ENABLE_AdiosReaderStaging=ON ' # req. ADIOS1
+configopts += '-DVTKm_ENABLE_HDF5_IO=ON '
+
+# --- large data --- #
+configopts += '-DVTK_USE_64BIT_IDS=ON '
+
+# --- rendering --- #
+
+# OpenGL (hardware)
+#  https://kitware.github.io/paraview-docs/latest/cxx/Offscreen.html
+#    If VTK_OPENGL_HAS_EGL or VTK_OPENGL_HAS_OSMESA is ON, the build supports headless rendering,
+#       otherwise VTK_USE_X must be ON and the build does not support headless,
+#       but can still support offscreen rendering.
+#    If VTK_USE_X is OFF, then either VTK_OPENGL_HAS_OSMESA or VTK_OPENGL_HAS_EGL must be ON. 
+#       Then the build does not support onscreen rendering, but only headless rendering.
+#    If PARAVIEW_BUILD_QT_GUI is ON and VTK_USE_X is ON, while ParaView command line tools won't link against
+#       or use X calls, Qt will and hence an accessible X server is still needed to run the desktop client.
+#    If VTK_OPENGL_HAS_OSMESA is ON, and VTK_USE_X is ON, 
+#       then all the OpenGL and OSMesa variables should point to the Mesa libraries.
+#    Likewise, if VTK_OPENGL_HAS_EGL is ON and VTK_USE_X is ON, then all the OpenGL and EGL variables
+#       should point to the system libraries providing both, typically the NVidia libraries.
+
+configopts += '-DOpenGL_GL_PREFERENCE=GLVND '
+configopts += '-DVTK_REPORT_OPENGL_ERRORS_IN_RELEASE_BUILDS=OFF '
+
+configopts += "-DOPENGL_INCLUDE_DIR=${EBROOTOPENGL}/include "
+configopts += "-DOPENGL_GLX_INCLUDE_DIR=${EBROOTOPENGL}/include "
+configopts += "-DOPENGL_EGL_INCLUDE_DIR=${EBROOTOPENGL}/include "
+# configopts += "-DOPENGL_xmesa_INCLUDE_DIR=IGNORE "
+
+configopts += "-DOPENGL_opengl_LIBRARY=${EBROOTOPENGL}/lib/libOpenGL.so.0 "
+configopts += "-DOPENGL_gl_LIBRARY=${EBROOTOPENGL}/lib/libGL.so "
+configopts += "-DOPENGL_glx_LIBRARY=${EBROOTOPENGL}/lib/libGLX.so.0 "
+configopts += "-DOPENGL_glu_LIBRARY=${EBROOTOPENGL}/lib/libGLU.so "
+configopts += "-DOPENGL_egl_LIBRARY=${EBROOTOPENGL}/lib/libEGL.so.1 "
+
+# OpenGL over X
+configopts += '-DVTK_USE_X=ON '  # OFF:headless rendering
+# already considered by Qt (https://gitlab.kitware.com/lorensen/vtk/commit/b29f6db3f746d84f830c81e4212e48db192e4dbb)
+configopts += '-DVTK_DEFAULT_RENDER_WINDOW_OFFSCREEN=OFF '
+configopts += '-DVTK_OPENGL_HAS_OSMESA=OFF '  # http://www.paraview.org/Wiki/ParaView_And_Mesa_3D
+
+# EGL (off-screen rendering with OpenGL, but without the need for X)
+# call pvserver with –egl-device-index=0 or 1 and –disable-xdisplay-test
+# configopts += '-DVTK_OPENGL_HAS_EGL=ON '
+# configopts += '-DVTK_OPENGL_HAS_OSMESA=OFF '  # http://www.paraview.org/Wiki/ParaView_And_Mesa_3D
+# configopts += '-DVTK_USE_X=OFF '
+# configopts += '-DVTK_DEFAULT_EGL_DEVICE_INDEX=0 '
+# #configopts += '-DEGL_INCLUDE_DIR=${EBROOTOPENGL}/include/EGL/ ' # https://www.khronos.org/registry/EGL/
+# #configopts += '-DEGL_LIBRARY=${EBROOTOPENGL}/lib/libEGL.so.1 '
+# #configopts += '-DEGL_opengl_LIBRARY=${EBROOTOPENGL}/lib/libOpenGL.so.0 '
+# #configopts += '-DEGL_gldispatch_LIBRARY=${EBROOTOPENGL}/lib/libGLdispatch.so.0 ' # <path_to_libGLdispatch.so.0>
+
+# OSMesa (software)
+# With OSMesa the DISPLAY variable has no meaning and is not needed
+# When ON, implies that ParaView can use OSMesa to support headless modes of operation.
+# configopts += '-DVTK_OPENGL_HAS_OSMESA=ON ' # http://www.paraview.org/Wiki/ParaView_And_Mesa_3D
+# configopts += '-DVTK_USE_X=OFF '
+# configopts += '-DVTK_DEFAULT_RENDER_WINDOW_OFFSCREEN=ON '
+# configopts += '-DOSMESA_INCLUDE_DIR=${EBROOTOPENGL}/include '
+# configopts += '-DOSMESA_LIBRARY=${EBROOTOPENGL}/lib/libOSMesa.so '
+
+# Raytracing
+configopts += '-DPARAVIEW_ENABLE_RAYTRACING=ON '
+configopts += '-DVTK_ENABLE_OSPRAY=ON '
+configopts += '-DVTK_ENABLE_VISRTX=OFF '
+
+configopts += "-Dospray_DIR=${EBROOTOSPRAY} "
+configopts += "-Dembree_DIR=${EBROOTEMBREE}/lib64/cmake/embree-3.12.2 "
+configopts += '-DVTKOSPRAY_ENABLE_DENOISER=ON '
+
+# configopts += '-DPARAVIEW_PLUGIN_ENABLE_pvNVIDIAIndeX=YES '
+
+# --- extra features --- #
+configopts += '-DPARAVIEW_PLUGIN_ENABLE_GeographicalMap=ON '
+
+configopts += "-DFFMPEG_ROOT=$EBROOTFFMPEG "
+configopts += '-DPARAVIEW_ENABLE_FFMPEG=ON '
+configopts += '-DVTK_MODULE_ENABLE_VTK_IOFFMPEG=YES '
+configopts += '-DVTK_MODULE_ENABLE_VTK_IOVideo=YES '
+
+configopts += '-DVTK_MODULE_ENABLE_VTK_DICOMParser=YES '
+configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersReebGraph=YES '
+configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersSMP=YES '
+configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersSelection=YES '
+configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersTopology=YES '
+configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersTexture=YES '
+# configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersStatisticsGnu=YES '
+# configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersMatlab=YES '
+
+# --- coupling --- #
+configopts += '-DCATALYST_BUILD_TOOLS=ON '
+configopts += '-DVTK_MODULE_ENABLE_ParaView_InSitu=YES '
+configopts += '-DVTK_MODULE_ENABLE_ParaView_PythonCatalyst=YES '
+
+# --- development & testing --- #
+configopts += '-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON '
+configopts += '-DPARAVIEW_BUILD_DEVELOPER_DOCUMENTATION=OFF '
+configopts += '-DPARAVIEW_BUILD_EXAMPLES=OFF '
+configopts += '-DPARAVIEW_BUILD_TESTING=WANT '
+configopts += '-DPARAVIEW_BUILD_VTK_TESTING=WANT '
+
+# --- external data --- #
+# https://cmake.org/cmake/help/latest/module/ExternalData.html
+# https://gitlab.kitware.com/vtk/vtk/blob/master/Documentation/dev/git/data.md
+configopts += '-DCTEST_TEST_TIMEOUT=10800 '
+configopts += '-DExternalData_TIMEOUT_INACTIVITY=10 '  # download inactivity, 0 = no timeout
+configopts += '-DExternalData_TIMEOUT_ABSOLUTE=60 '  # download abs. time, 0 = no timeout
+configopts += '-DPARAVIEW_DATA_EXCLUDE_FROM_ALL=ON '  # Exclude test data download from default 'all' target.
+# Local directory holding ExternalData objects in the layout %(algo)/%(hash).
+configopts += '-DPARAVIEW_DATA_STORE=${EBROOTPARAVIEWDATA}/.ExternalData '
+configopts += '-DVTK_DATA_STORE=${EBROOTVTKDATA}/.ExternalData '
+# Local directory holding the real data files of ExternalData.
+configopts += '-DExternalData_BINARY_ROOT=${EBROOTPARAVIEWDATA} '
+# we need to combine VTK and ParaView's External data files as there can only be one ExternalData_BINARY_ROOT
+
+# --- XDMF options --- #
+configopts += '-DXDMF_USE_BZIP2=ON '
+configopts += '-DXDMF_USE_GZIP=ON '
+
+# --- VTK external libraries --- #
+configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_expat=ON '
+configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_freetype=ON '
+configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_hdf5=ON '
+configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_jpeg=ON '
+configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_libxml2=ON '
+configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_mpi4py=ON '
+configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_netcdf=ON '
+configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_png=ON '
+configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_tiff=ON '
+configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_zlib=ON '
+configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_doubleconversion=ON '
+configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_eigen=ON '
+
+# --- ParaView Extra-Reader --- #
+configopts += '-DPARAVIEW_PLUGIN_ENABLE_ParFlow=OFF '  # nlohmann-bug in Plugins/ParFlow/IO/vtkVectorJSON.h
+configopts += '-DPARAVIEW_ENABLE_MOTIONFX=ON '
+# configopts += '-DPARAVIEW_ENABLE_FIDES=ON '  # req. ADIOS2 as dependency
+# configopts += '-DPARAVIEW_ENABLE_GDAL=ON '  # req. GDAL as dependency
+# configopts += '-DPARAVIEW_ENABLE_LAS=ON '  # req. LAS as dependency
+# configopts += '-DPARAVIEW_ENABLE_PDAL=ON '  # req. PDAL as dependency
+# configopts += '-DPARAVIEW_ENABLE_OPENVDB=ON '  # req. OpenVDB as dependency
+
+# https://gitlab.kitware.com/paraview/visitbridge/-/blob/master/databases/CMakeLists.txt
+configopts += '-DPARAVIEW_ENABLE_VISITBRIDGE=ON '
+configopts += '-DVTK_MODULE_ENABLE_ParaView_IOVisItBridge=YES '
+# configopts += '-DVISIT_BUILD_READER_Boxlib3D=ON '  # req. external dependency
+# configopts += '-DVISIT_BUILD_READER_Mili=ON '  # req. external dependency
+# configopts += '-DVISIT_BUILD_READER_Silo=ON '  # req. external dependency
+# https://gitlab.kitware.com/vtk/vtk/-/merge_requests/7503
+# configopts += '-DVISIT_BUILD_READER_Nek5000=ON '  # MR still open
+
+postinstallcmds = ['python -m compileall %(installdir)s/lib64/python3.6/site-packages/']
+#    'cp -a %(builddir)s/ParaView-v%(version)s/  %(installdir)s/src', # copy source from build dir to install dir
+#    '', # move debug info to separate files: 
+#          http://stackoverflow.com/questions/866721/how-to-generate-gcc-debug-symbol-outside-the-build-target
+#    '', # debugedit -i --base-dir=%(builddir)s/ParaView-v%(version)s --dest-dir= %(installdir)s/src <file.debug>
+#        # change path to source in debug info    
+
+modextravars = {
+    'CUDA_VISIBLE_DEVICES': '0,1',
+    # OpenSWR fully supports OpenGL 3.0 and most of 3.3, but ParaView requires 3.3 -> clame to fully support 3.3
+    'MESA_GL_VERSION_OVERRIDE': '3.3',
+    'MESA_GLSL_VERSION_OVERRIDE': '330',
+    #  OpenMP will choose an optimum number of threads by default, which is usually the number of cores
+    # 'OMP_NUM_THREADS': '28', # fix number of threads used by paraview filters and parallel sections in the code
+    #  threads used by ospray - details https://github.com/ospray/ospray/blob/release-2.0.x/ospray/api/Device.cpp#L88
+    #  unset => OSPRAY uses all hardware threads
+    # 'OSPRAY_THREADS': '14',     # OSPRay <  2.0
+    # 'OSPRAY_NUM_THREADS': '14', # OSPRay >= 2.0
+    #  When TBB is used for OSPRAY: tbb::task_scheduler_init::default_num_threads() is default if no OSPRAY_NUM_THREADS
+    #    https://github.com/ospray/ospcommon/blob/master/ospcommon/tasking/detail/tasking_system_init.cpp#L47
+    #    https://www.threadingbuildingblocks.org/docs/doxygen/a00150.html
+    #  more ospray definitions: https://www.ospray.org/documentation.html#environment-variables
+    'KNOB_MAX_WORKER_THREADS': '65535',  # max. threads used by OpenSWR (limited by number of hardware threads)
+    #  details in https://gitlab.version.fz-juelich.de/vis/vis-software/issues/14
+    #  more knob defs: https://github.com/mesa3d/mesa/blob/master/src/gallium/docs/source/drivers/openswr/knobs.rst
+}
+
+modextrapaths = {'PYTHONPATH': 'lib64/python%(pyshortver)s/site-packages'}
+
+moduleclass = 'vis'
diff --git a/Golden_Repo/p/ParaViewData/ParaViewData-5.10.0.eb b/Golden_Repo/p/ParaViewData/ParaViewData-5.10.0.eb
new file mode 100644
index 0000000000000000000000000000000000000000..b7cdce96fc8c0b9140886b08f2aec46779dd47c2
--- /dev/null
+++ b/Golden_Repo/p/ParaViewData/ParaViewData-5.10.0.eb
@@ -0,0 +1,27 @@
+easyblock = 'Tarball'
+
+name = 'ParaViewData'
+version = '5.10.0'
+
+homepage = 'https://www.paraview.org'
+description = "Testdata for ParaView"
+
+toolchain = {'name': 'GCCcore', 'version': '11.2.0'}
+
+local_dwnlsfx_src = 'download.php?submit=Download&version=v%(version_major_minor)s&type=data&os=Sources&downloadFile='
+source_urls = [('https://www.paraview.org/paraview-downloads/%s' % local_dwnlsfx_src)]
+sources = [
+    ('ParaViewTestingDataFiles-v%(version)s.tar.gz'),
+    ('ParaViewTestingDataStore-v%(version)s.tar.gz'),
+]
+checksums = [
+    ('sha256', 'd6383b5be6090fd6584d209c1f06522b6c53ec1e1ded7fdb74b6361515a3f491'),
+    ('sha256', 'fdca5b15a14742d7e4344e6de694c318b4f0ceb3a8bdf324134eddc2a0f20c95'),
+]
+
+sanity_check_paths = {
+    'files': ['.ExternalData/README.rst'],
+    'dirs': ['.ExternalData', 'Clients', 'Plugins', 'Remoting', 'Testing', 'VTKExtensions'],
+}
+
+moduleclass = 'vis'
diff --git a/Golden_Repo/p/ParaViewPlugin-Nek5000/ParaViewPlugin-Nek5000-1.0-gpsmkl-2021b.eb b/Golden_Repo/p/ParaViewPlugin-Nek5000/ParaViewPlugin-Nek5000-1.0-gpsmkl-2021b.eb
new file mode 100644
index 0000000000000000000000000000000000000000..ffc93f6995af3b21278c7afc7de219d4b9b4e0a7
--- /dev/null
+++ b/Golden_Repo/p/ParaViewPlugin-Nek5000/ParaViewPlugin-Nek5000-1.0-gpsmkl-2021b.eb
@@ -0,0 +1,33 @@
+easyblock = 'CMakeMake'
+
+name = 'ParaViewPlugin-Nek5000'
+version = '20201117'
+
+homepage = "http://www.paraview.org"
+description = "Plugin for ParaView. Paraview is a scientific parallel visualizer."
+
+toolchain = {'name': 'gpsmkl', 'version': '2021b'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/jfavre/ParaViewNek5000Plugin/archive/']
+sources = ['74b8b63abaa7f61ef9556a3e178010324e3858f5.tar.gz']
+checksums = [('sha256', 'a42ce28a3c5c27d900b3b9d13b501d2b5ed896ae8e112eec2c61f9663f725450')]
+
+builddependencies = [
+    ('CMake', '3.21.1', '', SYSTEM),
+]
+
+dependencies = [
+    ('ParaView', '5.10.0'),
+]
+
+separate_build_dir = True
+
+modextrapaths = {'PV_PLUGIN_PATH': '.'}
+
+sanity_check_paths = {
+    'files': ['include/vtkNek5000Reader.h', 'lib/paraview-5.10/plugins/pvNek5000Reader/libNek5000Reader.so'],
+    'dirs': ['include', 'lib', 'lib/paraview-5.10/plugins/pvNek5000Reader']
+}
+
+moduleclass = 'vis'
diff --git a/Golden_Repo/s/SZ/SZ-2.1.12-GCCcore-11.2.0.eb b/Golden_Repo/s/SZ/SZ-2.1.12-GCCcore-11.2.0.eb
new file mode 100644
index 0000000000000000000000000000000000000000..9d5d3edbf06906fa9db1969e2f8ad8a2aa0f36d3
--- /dev/null
+++ b/Golden_Repo/s/SZ/SZ-2.1.12-GCCcore-11.2.0.eb
@@ -0,0 +1,43 @@
+easyblock = 'CMakeMake'
+
+name = 'SZ'
+version = '2.1.12'
+
+homepage = 'https://szcompressor.org'
+description = """SZ is a modular parametrizable lossy compressor framework
+for scientific data (floating point and integers)."""
+
+toolchain = {'name': 'GCCcore', 'version': '11.2.0'}
+toolchainopts = {'pic': True}
+
+github_account = 'szcompressor'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['3712b2cd7170d1511569e48a208f02dfb72ecd7ad053c321e2880b9083e150de']
+
+builddependencies = [
+    ('binutils', '2.37'),
+    ('CMake', '3.21.1'),
+    ('pkg-config', '0.29.2'),
+]
+
+dependencies = [
+    ('HDF5', '1.12.1', '-serial'),
+    ('netCDF', '4.8.1', '-serial'),
+]
+
+separate_build_dir = True
+
+configopts = "-DCMAKE_VERBOSE_MAKEFILE=ON "
+
+configopts += "-DBUILD_FORTRAN=ON "
+configopts += "-DBUILD_HDF5_FILTER=ON "
+configopts += "-DBUILD_NETCDF_READER=ON "
+configopts += "-DBUILD_OPENMP=ON "
+
+sanity_check_paths = {
+    'files': ['bin/sz', 'lib/libSZ.%s' % SHLIB_EXT],
+    'dirs': ['bin', 'include', 'lib'],
+}
+
+moduleclass = 'data'
diff --git a/Golden_Repo/v/VTKData/VTKData-9.1.0.eb b/Golden_Repo/v/VTKData/VTKData-9.1.0.eb
new file mode 100644
index 0000000000000000000000000000000000000000..b7bffaf589943b9dcca119a5e20699624e3275d6
--- /dev/null
+++ b/Golden_Repo/v/VTKData/VTKData-9.1.0.eb
@@ -0,0 +1,30 @@
+easyblock = 'Tarball'
+
+name = 'VTKData'
+version = '9.1.0'
+
+homepage = 'https://vtk.org'
+description = "Testdata for VTK"
+
+toolchain = {'name': 'GCCcore', 'version': '11.2.0'}
+
+source_urls = [('https://www.vtk.org/files/release/%(version_major_minor)s/')]
+sources = [
+    ('VTKData-%(version)s.tar.gz'),
+    ('VTKDataFiles-%(version)s.tar.gz'),
+    ('VTKLargeData-%(version)s.tar.gz'),
+    ('VTKLargeDataFiles-%(version)s.tar.gz'),
+]
+checksums = [
+    ('sha256', 'b9442cf1c30e1e44502e6dc36d3c6c2dc3d3f7d03306ee1d10737e9abadaa85d'),
+    ('sha256', 'c777b3d2e42e67b079170a8b0ab7aab5ab8f40d93332792c41cf20ada0cab17a'),
+    ('sha256', '23c86546d8cade8129e45fe23cee8b3ff448a992fd01708cce2019a01d534872'),
+    ('sha256', '79638c7caf247962e35aa17b1b7f5e746589ee266cb911695739b3677320c62d'),
+]
+
+sanity_check_paths = {
+    'files': ['.ExternalData/README.rst'],
+    'dirs': ['.ExternalData', 'Common', 'Examples', 'Filters', 'IO', 'Parallel', 'Rendering', 'Testing'],
+}
+
+moduleclass = 'vis'
diff --git a/Golden_Repo/z/zfp/zfp-0.5.5-GCCcore-11.2.0.eb b/Golden_Repo/z/zfp/zfp-0.5.5-GCCcore-11.2.0.eb
new file mode 100644
index 0000000000000000000000000000000000000000..f63e62786a92ac3e4c57d28bf905c413f59cab25
--- /dev/null
+++ b/Golden_Repo/z/zfp/zfp-0.5.5-GCCcore-11.2.0.eb
@@ -0,0 +1,59 @@
+easyblock = 'CMakeMake'
+
+name = 'zfp'
+version = '0.5.5'
+
+homepage = "https://github.com/LLNL/zfp"
+description = """Optionally error-bounded lossy compressor for HPC data
+with high throughput read and write random access to individual array elements."""
+
+toolchain = {'name': 'GCCcore', 'version': '11.2.0'}
+toolchainopts = {'pic': True}
+
+github_account = 'LLNL'
+source_urls = [GITHUB_SOURCE]
+sources = ['%(version)s.tar.gz']
+checksums = ['6a7f4934489087d9c117a4af327fd6495ea757924f4df467b9c537abf8bd86c4']
+
+builddependencies = [
+    ('binutils', '2.37'),
+    ('CMake', '3.21.1'),
+    ('pkg-config', '0.29.2'),
+]
+
+separate_build_dir = True
+
+configopts = '-DBUILD_SHARED_LIBS:BOOL=ON '
+configopts += '-DBUILD_EXAMPLES:BOOL=OFF '
+configopts += '-DBUILD_TESTING:BOOL=OFF '
+
+configopts += '-DZFP_WITH_OPENMP:BOOL=ON '
+configopts += '-DZFP_WITH_CUDA:BOOL=OFF '
+
+configopts += '-DBUILD_CFP:BOOL=ON '
+configopts += '-DBUILD_ZFPY:BOOL=OFF '  # fails
+configopts += '-DBUILD_ZFORP:BOOL=ON '
+
+configopts += '-DBUILD_UTILITIES:BOOL=ON '
+configopts += '-DCMAKE_C_STANDARD_LIBRARIES="-lm" '  # needed to link UTILITIES
+
+# create pkgconfig file
+postinstallcmds = [
+    "mkdir -p %(installdir)s/lib/pkgconfig",
+    """echo -e "prefix=%(installdir)s
+libdir=\${prefix}/lib64
+includedir=\${prefix}/include
+Name: %(name)s
+Description: %(name)s compression library
+Version: %(version)s
+Requires:
+Libs: -L\${libdir} -lzfp -lcfp
+Cflags: -I\${includedir}" > %(installdir)s/lib/pkgconfig/%(name)s.pc""",
+]
+
+sanity_check_paths = {
+    'files': ['lib64/libzfp.so', 'lib64/libcfp.so', 'include/zfp.h'],
+    'dirs': ['lib/pkgconfig'],
+}
+
+moduleclass = 'lib'