diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 4f21a46b1a6867262bce64ceb449ede46587a6d4..f47289d7fde0953c0e2c2af093955c5487dabfe7 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -43,20 +43,20 @@ compatibility_stage:
       - echo $CI_COMMIT_BRANCH
       - echo "Getting system info ..."
       - cat /etc/os-release
-      - echo "Running make with gnu compilers version 11..."
-      - mkdir build_gnu11
-      - cd build_gnu11
-      - cp -r ../build/* .
-      - CXX=g++-11 F77=gfortran-11 ./configure
-      - make wipe
-      - make -j
+      #- echo "Running make with gnu compilers version 11..."
+      #- mkdir build_gnu11
+      #- cd build_gnu11
+      #- cp -r ../build/* .
+      #- CXX=g++-11 FC=gfortran-11 ./configure
+      #- make wipe
+      #- make -j
       - echo "Running make with gnu compilers version 12..."
-      - cd ..
-      - rm -rf build_gnu11
+      #- cd ..
+      #- rm -rf build_gnu11
       - mkdir build_gnu12
       - cd build_gnu12
       - cp -r ../build/* .
-      - CXX=g++-12 F77=gfortran-12 ./configure
+      - CXX=g++-12 FC=gfortran-12 ./configure
       - make wipe
       - make -j
       - echo "Running make with gnu compilers version 13..."
@@ -65,7 +65,7 @@ compatibility_stage:
       - mkdir build_gnu13
       - cd build_gnu13
       - cp -r ../build/* .
-      - CXX=g++-13 F77=gfortran-13 ./configure
+      - CXX=g++-13 FC=gfortran-13 ./configure
       - make wipe
       - make -j
       - echo "Running make with gnu compilers version 14..."
@@ -74,7 +74,7 @@ compatibility_stage:
       - mkdir build_gnu14
       - cd build_gnu14
       - cp -r ../build/* .
-      - CXX=g++-14 F77=gfortran-14 ./configure
+      - CXX=g++-14 FC=gfortran-14 ./configure
       - make wipe
       - make -j
       - echo "Running make with refinement with gnu compilers version 14..."
@@ -83,36 +83,54 @@ compatibility_stage:
       - mkdir build_gnu14_refine
       - cd build_gnu14_refine
       - cp -r ../build/* .
-      - CXX=g++-14 F77=gfortran-14 ./configure --enable-refinement
+      - CXX=g++-14 FC=gfortran-14 ./configure --enable-refinement
       - make wipe
       - make -j
-      - echo "Running make with flang version 16 and clang version 16..."
+      #- echo "Running make with flang version 16 and clang version 16..."
       - cd ..
       - rm -rf build_gnu14_refine
-      - mkdir build_clang16
-      - cd build_clang16
-      - cp -r ../build/* .
-      - CXX=clang++-16 F77=flang-new-16 ./configure --with-fflags="-O3 -std=legacy" --with-include="-I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13" --with-ldflags="-L/usr/lib/llvm-16/lib -L/usr/lib/gcc/x86_64-linux-gnu/13" --disable-openmp
-      - make wipe
-      - make -j
+      #- mkdir build_clang16
+      #- cd build_clang16
+      #- cp -r ../build/* .
+      #- CXX=clang++-16 FC=flang-new-16 ./configure --with-fflags="-O3 -std=legacy" --with-include="-I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13" --with-ldflags="-L/usr/lib/llvm-16/lib -L/usr/lib/gcc/x86_64-linux-gnu/13" --disable-openmp
+      #- make wipe
+      #- make -j
       - echo "Running make with flang version 17 and clang version 17..."
-      - cd ..
-      - rm -rf build_clang16
+      #- cd ..
+      #- rm -rf build_clang16
       - mkdir build_clang17
       - cd build_clang17
       - cp -r ../build/* .
-      - CXX=clang++-17 F77=flang-new-17 ./configure --with-fflags="-O3 -std=legacy" --with-include="-I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13" --with-ldflags="-L/usr/lib/llvm-17/lib -L/usr/lib/gcc/x86_64-linux-gnu/13"  --disable-openmp
+      - CXX=clang++-17 FC=flang-new-17 ./configure --with-fflags="-O3" --with-include="-I/usr/include/c++/14 -I/usr/include/x86_64-linux-gnu/c++/14" --with-ldflags="-L/usr/lib/llvm-17/lib -L/usr/lib/gcc/x86_64-linux-gnu/14"  --disable-openmp
       - make wipe
       - make -j
       #- echo "Running make with Intel ifort and Intel icpx..."
       - cd ..
       - rm -rf build_clang17
+      - echo "Running make with flang version 18 and clang version 18..."
+      - mkdir build_clang18
+      - cd build_clang18
+      - cp -r ../build/* .
+      - CXX=clang++-18 FC=flang-new-18 ./configure --with-fflags="-O3" --with-include="-I/usr/include/c++/14 -I/usr/include/x86_64-linux-gnu/c++/14" --with-ldflags="-L/usr/lib/llvm-18/lib -L/usr/lib/gcc/x86_64-linux-gnu/14"  --disable-openmp
+      - make wipe
+      - make -j
+      - cd ..
+      - rm -rf build_clang18
+      - echo "Running make with flang version 19 and clang version 19..."
+      - mkdir build_clang19
+      - cd build_clang19
+      - cp -r ../build/* .
+      - CXX=clang++-19 FC=flang-new-19 ./configure --with-fflags="-O3" --with-include="-I/usr/include/c++/14 -I/usr/include/x86_64-linux-gnu/c++/14" --with-ldflags="-L/usr/lib/llvm-19/lib -L/usr/lib/gcc/x86_64-linux-gnu/14"  --disable-openmp
+      - make wipe
+      - make -j
+      - cd ..
+      - rm -rf build_clang19
       #- mkdir build_ifort_icpx
       #- cd build_ifort_icpx
       #- cp -r ../build/* .
       #- export LD_LIBRARY_PATH=/opt/intel/oneapi/compiler/latest/lib
       #- export PATH=/opt/intel/oneapi/compiler/latest/bin:$PATH
-      #- CXX=icpx F77=ifort ./configure --with-fflags="-O3 -diag-disable=10448" --disable-openmp
+      #- CXX=icpx FC=ifort ./configure --with-fflags="-O3 -diag-disable=10448" --disable-openmp
       #- make wipe
       #- make -j
       - echo "Running make with Intel ifx and Intel icpx..."
@@ -123,7 +141,7 @@ compatibility_stage:
       - cp -r ../build/* .
       - export LD_LIBRARY_PATH=/opt/intel/oneapi/compiler/latest/lib
       - export PATH=/opt/intel/oneapi/compiler/latest/bin:$PATH
-      - CXX=icpx F77=ifx ./configure --with-fflags="-O3 -std=legacy" --disable-openmp
+      - CXX=icpx FC=ifx ./configure --with-fflags="-O3 -std=legacy" --disable-openmp
       - make wipe
       - make -j
    
diff --git a/build/configure.sh b/build/configure.sh
index 4e2b9a4094ddf45c3888bffc8c1864fb97b0f37b..4bb5932c8d9522407f3c7619c48ccbe43b7d4f9f 100755
--- a/build/configure.sh
+++ b/build/configure.sh
@@ -73,11 +73,11 @@ function print_help {
     echo "Use this script to detect the proper build configuration for your system. "
     echo "Valid options are:                                                        "
     echo "                                                                          "
-    echo "--disble-fortran          Disable FORTRAN compilation.                    "
-    echo "--disble-gdb              Disable GNU debugger.                           "
-    echo "--disble-ilp64            Disable 64-bit integers.                        "
-    echo "--disble-offload          Disable GPU offloading.                         "
-    echo "--disble-openmp           Disable OpenMP multi-threading.                 "
+    echo "--disable-fortran         Disable FORTRAN compilation.                    "
+    echo "--disable-gdb             Disable GNU debugger.                           "
+    echo "--disable-ilp64           Disable 64-bit integers.                        "
+    echo "--disable-offload         Disable GPU offloading.                         "
+    echo "--disable-openmp          Disable OpenMP multi-threading.                 "
     echo "--enable-debug=FEATURE    Enable debug output of specified feature.       "
     echo "--enable-fortran          Enable FORTRAN compilation (DEFAULT).           "
     echo "--enable-nvtx             Enable NVTX profiling tools.                    "
diff --git a/containers/docker/Dockerfile b/containers/docker/Dockerfile
index 8ef30fdfc92a11923dc8906c62d356807523d61e..3abcd3d1eba8df6083911cc61821cecf99eddb80 100644
--- a/containers/docker/Dockerfile
+++ b/containers/docker/Dockerfile
@@ -12,7 +12,7 @@ WORKDIR /root
 RUN apt update
 RUN DEBIAN_FRONTEND=noninteractive apt -y upgrade
 # install packages needed to build binaries
-RUN DEBIAN_FRONTEND=noninteractive apt -y install g++ gfortran gcc-offload-nvptx g++-11 gfortran-11 gcc-11-offload-nvptx g++-12 gfortran-12 gcc-12-offload-nvptx g++-13 gfortran-13 gcc-13-offload-nvptx g++-14 gfortran-14 gcc-14-offload-nvptx clang libc++-dev libc++abi-dev clang-16 clang-17 flang-16 flang-17 libhdf5-dev make
+RUN DEBIAN_FRONTEND=noninteractive apt -y install g++ gfortran gcc-offload-nvptx g++-12 gfortran-12 gcc-12-offload-nvptx g++-13 gfortran-13 gcc-13-offload-nvptx g++-14 gfortran-14 gcc-14-offload-nvptx clang libc++-dev libc++abi-dev clang-17 clang-18 clang-19 flang-17 flang-18 flang-19 libhdf5-dev make
 # install packages needed to test with Intel OneAPI compilers
 COPY --chown=root:root containers/docker/dockerstuff/intelcomps/oneapi-archive-keyring.gpg /usr/share/keyrings/
 COPY --chown=root:root containers/docker/dockerstuff/intelcomps/oneAPI.list /etc/apt/sources.list.d/
@@ -33,7 +33,7 @@ COPY --chown=root:root containers/docker/dockerstuff/magma-compiled/usr/lib/lib*
 COPY --chown=root:root containers/docker/dockerstuff/magma-compiled/usr/include/* /usr/include/
 COPY --chown=root:root containers/docker/dockerstuff/magma-compiled/usr/lib/pkgconfig/* /usr/lib/x86_64-linux-gnu/pkgconfig/
 # install packages needed to run python scripts for checks
-RUN DEBIAN_FRONTEND=noninteractive apt -y install python3 python-is-python3 python3-regex
+RUN DEBIAN_FRONTEND=noninteractive apt -y install python3 python-is-python3 python3-regex python3-yaml python3-matplotlib python3-numpy
 # install packages needed to run doxygen to create html docs
 RUN DEBIAN_FRONTEND=noninteractive apt -y install doxygen
 # install packages needed to run pdflatex to create pdf docs
@@ -57,17 +57,19 @@ ADD doc /root/np-tmcode/doc
 ADD build /root/np-tmcode/build
 ADD test_data /root/np-tmcode/test_data
 #RUN cd np-tmcode/src && BUILDDIR=../../build BUILDDIR_NPTM=../../build/libnptm LIBNPTM=../../build/libnptm/libnptm.a USE_ILP64=1 USE_LAPACK=1 USE_MAGMA=1 USE_OPENMP=1 USE_MPI=1 CXX=mpicxx FC=gfortran make wipe && BUILDDIR=../../build BUILDDIR_NPTM=../../build/libnptm LIBNPTM=../../build/libnptm/libnptm.a USE_ILP64=1 USE_LAPACK=1 USE_MAGMA=1 USE_OPENMP=1 USE_MPI=1 CXX=mpicxx FC=gfortran make -j && mv ../build/cluster/np_cluster ../build/cluster/np_cluster_magma_mpi
-RUN cd np-tmcode/build && CXX=mpicxx FC=gfortran ./configure --enable-static --enable-mpi --enable-ilp64 --enable-openmp --with-lapack --with-magma && make clean && make -j && mv cluster/np_cluster cluster/np_cluster_magma_mpi
+RUN cd np-tmcode/build && CXX=mpicxx FC=gfortran ./configure --enable-openmp --with-lapack --with-magma --without-cublas && make clean && make -j && mv cluster/np_cluster cluster/np_cluster_magma_mpi && mv sphere/np_sphere sphere/np_sphere_magma_mpi && mv inclusion/np_inclusion inclusion/np_inclusion_magma_mpi && mv trapping/np_trapping trapping/np_trapping_magma_mpi
 #RUN cd np-tmcode/src && BUILDDIR=../../build BUILDDIR_NPTM=../../build/libnptm LIBNPTM=../../build/libnptm/libnptm.a USE_ILP64=1 USE_LAPACK=1 USE_MAGMA=1 USE_OPENMP=1 CXX=g++ FC=gfortran make wipe && BUILDDIR=../../build BUILDDIR_NPTM=../../build/libnptm LIBNPTM=../../build/libnptm/libnptm.a USE_ILP64=1 USE_LAPACK=1 USE_MAGMA=1 USE_OPENMP=1 CXX=g++ FC=gfortran make -j && mv ../build/cluster/np_cluster ../build/cluster/np_cluster_magma_serial
-RUN cd np-tmcode/build && CXX=g++ FC=gfortran ./configure --enable-static --disable-mpi --enable-ilp64 --enable-openmp --with-lapack --with-magma && make clean && make -j && mv cluster/np_cluster cluster/np_cluster_magma_serial
+RUN cd np-tmcode/build && CXX=g++ FC=gfortran ./configure --enable-openmp --with-lapack --with-magma --without-cublas && make clean && make -j && mv cluster/np_cluster cluster/np_cluster_magma_serial && mv sphere/np_sphere sphere/np_sphere_magma_serial && mv inclusion/np_inclusion inclusion/np_inclusion_magma_serial && mv trapping/np_trapping trapping/np_trapping_magma_serial
+RUN cd np-tmcode/build && CXX=mpicxx FC=gfortran ./configure --enable-openmp --with-lapack --without-magma --with-cublas && make clean && make -j && mv cluster/np_cluster cluster/np_cluster_cublas_mpi && mv sphere/np_sphere sphere/np_sphere_cublas_mpi && mv inclusion/np_inclusion inclusion/np_inclusion_cublas_mpi && mv trapping/np_trapping trapping/np_trapping_cublas_mpi
+RUN cd np-tmcode/build && CXX=g++ FC=gfortran ./configure --enable-openmp --with-lapack --without-magma --with-cublas && make clean && make -j && mv cluster/np_cluster cluster/np_cluster_cublas_serial && mv sphere/np_sphere sphere/np_sphere_cublas_serial && mv inclusion/np_inclusion inclusion/np_inclusion_cublas_serial && mv trapping/np_trapping trapping/np_trapping_cublas_serial
 #RUN cd np-tmcode/src && BUILDDIR=../../build BUILDDIR_NPTM=../../build/libnptm LIBNPTM=../../build/libnptm/libnptm.a USE_ILP64=1 USE_LAPACK=1 USE_OPENMP=1 USE_MPI=1 CXX=mpicxx FC=gfortran make wipe && BUILDDIR=../../build BUILDDIR_NPTM=../../build/libnptm LIBNPTM=../../build/libnptm/libnptm.a USE_ILP64=1 USE_LAPACK=1 USE_OPENMP=1 USE_MPI=1 CXX=mpicxx FC=gfortran make -j && mv ../build/cluster/np_cluster ../build/cluster/np_cluster_lapack_mpi && cd ../build/cluster && ln -s np_cluster_lapack_mpi np_cluster
-RUN cd np-tmcode/build && CXX=mpicxx FC=gfortran ./configure --enable-static --enable-mpi --enable-ilp64 --enable-openmp --with-lapack --without-magma && make clean && make -j && mv cluster/np_cluster cluster/np_cluster_lapack_mpi && cd cluster && ln -s np_cluster_lapack_mpi np_cluster
+RUN cd np-tmcode/build && CXX=mpicxx FC=gfortran ./configure --enable-openmp --with-lapack --without-magma --without-cublas && make clean && make -j && mv cluster/np_cluster cluster/np_cluster_lapack_mpi && mv sphere/np_sphere sphere/np_sphere_lapack_mpi && mv inclusion/np_inclusion inclusion/np_inclusion_lapack_mpi && mv trapping/np_trapping trapping/np_trapping_lapack_mpi && cd cluster && ln -s np_cluster_lapack_mpi np_cluster && cd ../sphere && ln -s np_sphere_lapack_mpi np_sphere && cd ../inclusion && ln -s np_inclusion_lapack_mpi np_inclusion && cd ../trapping && ln -s np_trapping_lapack_mpi np_trapping   
 #RUN cd np-tmcode/src && BUILDDIR=../../build BUILDDIR_NPTM=../../build/libnptm LIBNPTM=../../build/libnptm/libnptm.a USE_ILP64=1 USE_LAPACK=1 USE_OPENMP=1 CXX=g++ FC=gfortran make wipe && BUILDDIR=../../build BUILDDIR_NPTM=../../build/libnptm LIBNPTM=../../build/libnptm/libnptm.a USE_ILP64=1 USE_LAPACK=1 USE_OPENMP=1 CXX=g++ FC=gfortran make -j && mv ../build/cluster/np_cluster ../build/cluster/np_cluster_lapack_serial
-RUN cd np-tmcode/build && CXX=g++ FC=gfortran ./configure --enable-static --disable-mpi --enable-ilp64 --enable-openmp --with-lapack --without-magma && make clean && make -j && mv cluster/np_cluster cluster/np_cluster_lapack_serial
+RUN cd np-tmcode/build && CXX=g++ FC=gfortran ./configure --enable-openmp --with-lapack --without-magma --without-cublas && make clean && make -j && mv cluster/np_cluster cluster/np_cluster_lapack_serial && mv sphere/np_sphere sphere/np_sphere_lapack_serial && mv inclusion/np_inclusion inclusion/np_inclusion_lapack_serial && mv trapping/np_trapping trapping/np_trapping_lapack_serial
 #RUN cd np-tmcode/src && BUILDDIR=../../build BUILDDIR_NPTM=../../build/libnptm LIBNPTM=../../build/libnptm/libnptm.a USE_ILP64=1 USE_OPENMP=1 USE_MPI=1 CXX=mpicxx FC=gfortran make wipe && BUILDDIR=../../build BUILDDIR_NPTM=../../build/libnptm LIBNPTM=../../build/libnptm/libnptm.a USE_ILP64=1 USE_OPENMP=1 USE_MPI=1 CXX=mpicxx FC=gfortran make -j && mv ../build/cluster/np_cluster ../build/cluster/np_cluster_legacy_mpi
-RUN cd np-tmcode/build && CXX=mpicxx FC=gfortran ./configure --enable-static --disable-mpi --enable-ilp64 --enable-openmp --without-lapack --without-magma && make clean && make -j && mv cluster/np_cluster cluster/np_cluster_legacy_mpi
+RUN cd np-tmcode/build && CXX=mpicxx FC=gfortran ./configure --enable-openmp --without-lapack --without-magma --without-cublas && make clean && make -j && mv cluster/np_cluster cluster/np_cluster_legacy_mpi && mv sphere/np_sphere sphere/np_sphere_legacy_mpi && mv inclusion/np_inclusion inclusion/np_inclusion_legacy_mpi && mv trapping/np_trapping trapping/np_trapping_legacy_mpi
 #RUN cd np-tmcode/src && BUILDDIR=../../build BUILDDIR_NPTM=../../build/libnptm LIBNPTM=../../build/libnptm/libnptm.a USE_ILP64=1 USE_OPENMP=1 CXX=g++ FC=gfortran make wipe && BUILDDIR=../../build BUILDDIR_NPTM=../../build/libnptm LIBNPTM=../../build/libnptm/libnptm.a USE_ILP64=1 USE_OPENMP=1 CXX=g++ FC=gfortran make -j && mv ../build/cluster/np_cluster ../build/cluster/np_cluster_legacy_serial
-RUN cd np-tmcode/build && CXX=g++ FC=gfortran ./configure --enable-static --disable-mpi --enable-ilp64 --disable-openmp --without-lapack --without-magma && make clean && make -j && mv cluster/np_cluster cluster/np_cluster_legacy_serial
+RUN cd np-tmcode/build && CXX=g++ FC=gfortran ./configure --disable-openmp --without-lapack --without-magma --without-cublas && make clean && make -j && mv cluster/np_cluster cluster/np_cluster_legacy_serial && mv sphere/np_sphere sphere/np_sphere_legacy_serial && mv inclusion/np_inclusion inclusion/np_inclusion_legacy_serial && mv trapping/np_trapping trapping/np_trapping_legacy_serial
 RUN cd np-tmcode/doc/src && doxygen config.dox && cd ../build/latex && make -j
 
 
@@ -80,7 +82,7 @@ WORKDIR /root
 COPY --chown=root:root containers/docker/dockerstuff/debian-nonfree/debian.sources /etc/apt/sources.list.d/
 RUN DEBIAN_FRONTEND=noninteractive apt update
 RUN DEBIAN_FRONTEND=noninteractive apt -y upgrade
-RUN DEBIAN_FRONTEND=noninteractive apt -y install libgfortran5 libgcc-s1 libhdf5-103-1t64 libstdc++6 libssl3t64 libcurl4t64 libsz2 zlib1g libnghttp2-14 libidn2-0 librtmp1 libssh2-1t64 libpsl5t64 libgssapi-krb5-2 libldap-2.5-0 libzstd1 libbrotli1 libaec0 libunistring5 libgmp10 libkrb5-3 libk5crypto3 libcom-err2 libkrb5support0 libsasl2-2 libp11-kit0 libtasn1-6 libkeyutils1 libffi8 liblapacke64 libopenblas64-0-openmp python3 python-is-python3 python3-regex hdf5-tools libquadmath0 libgcc-s1 libgomp1 libnvjitlink12 libcublaslt12 libcudart12 libcusparse12 libcublas12 mpi-default-bin
+RUN DEBIAN_FRONTEND=noninteractive apt -y install libgfortran5 libgcc-s1 libhdf5-310 libstdc++6 libssl3t64 libcurl4t64 libsz2 zlib1g libnghttp2-14 libidn2-0 librtmp1 libssh2-1t64 libpsl5t64 libgssapi-krb5-2 libldap2 libzstd1 libbrotli1 libaec0 libunistring5 libgmp10 libkrb5-3 libk5crypto3 libcom-err2 libkrb5support0 libsasl2-2 libp11-kit0 libtasn1-6 libkeyutils1 libffi8 liblapacke64 libopenblas64-0-openmp python3 python-is-python3 python3-regex python3-yaml python3-matplotlib python3-numpy hdf5-tools libquadmath0 libgcc-s1 libgomp1 libnvjitlink12 libcublaslt12 libcudart12 libcusparse12 libcublas12 mpi-default-bin
 RUN rm -rf /var/lib/apt/lists/*
 COPY --from=np-tmcode-run-dev /root /root
 COPY --from=np-tmcode-run-dev /usr/lib/x86_64-linux-gnu/libmagma.so /usr/lib/x86_64-linux-gnu/libmagma.so