diff --git a/build-telemac.bat b/build-telemac.bat
index 87dc929d36f8cecc3c0e2949202137c443168b7e..d28f60b2b7fbd2cf80e6b8d11f623f76d42d49d5 100644
--- a/build-telemac.bat
+++ b/build-telemac.bat
@@ -12,21 +12,22 @@ set metis=metis-5.1.0
 set msmpi=msmpi-10.1.3
 set openblas=openblas-0.3.25
 set scalapack=scalapack-2.1.0
-set mumps=mumps-5.2.1
+set mumps_version=5.6.2
+set mumps=mumps-%mumps_version%
 set aed2=libaed2-1.2.0
 set gotm=gotm-2019-06-14-opentelemac
 
-set python_version=3.11.8
-set python_launcher_version=3.11.8
+set python_version=3.11.9
+set python_launcher_version=3.11.9
 set python=python-%python_version%
 set python_requirements=python_requirements.txt
 set pip_version=24.0
 set setuptools_version=65.5.0
-set geo_wheels_version=v2024.1.1
-set gdal=GDAL-3.8.2-cp311-cp311-win_amd64.whl
-set fiona=fiona-1.9.5-cp311-cp311-win_amd64.whl
-set rasterio=rasterio-1.3.9-cp311-cp311-win_amd64.whl
-set shapely=shapely-2.0.2-cp311-cp311-win_amd64.whl
+set geo_wheels_version=v2024.9.22
+set gdal=GDAL-3.9.2-cp311-cp311-win_amd64.whl
+set fiona=fiona-1.10.1-cp311-cp311-win_amd64.whl
+set rasterio=1.3.11-cp311-cp311-win_amd64.whl
+set shapely=shapely-2.0.6-cp311-cp311-win_amd64.whl
 
 rem ************************************************************************
 rem Parse input arguments to determine where and how TELEMAC should be built
@@ -106,6 +107,13 @@ rem *********************************************************************
 set python_requirements=python_requirements.txt
 if /i %arg_v% == v8p4 (
   set version=v8p4
+  set branch=%version%
+
+  set openblas=openblas-0.3.25
+  set scalapack=scalapack-2.1.0
+  set mumps_version=5.2.1
+  set mumps=mumps-%mumps_version%
+
   set python_version=3.10.11
   set python=python-3.10.11
   set python_requirements=python_requirements_v8p4.txt
@@ -119,14 +127,48 @@ if /i %arg_v% == v8p4 (
 )
 if /i %arg_v% == v8p5 (
   set version=v8p5
+  set branch=%version%
+
+  set openblas=openblas-0.3.25
+  set scalapack=scalapack-2.1.0
+  set mumps_version=5.2.1
+  set mumps=mumps-%mumps_version%
+
+  set python_version=3.11.9
+  set python_launcher_version=3.11.9
   set python_requirements=python_requirements_v8p5.txt
+  set pip_version=24.0
+  set setuptools_version=65.5.0
   set geo_wheels_version=v2023.11.3
   set gdal=GDAL-3.7.3-cp311-cp311-win_amd64.whl
   set fiona=fiona-1.9.5-cp311-cp311-win_amd64.whl
   set rasterio=rasterio-1.3.9-cp311-cp311-win_amd64.whl
   set shapely=shapely-2.0.2-cp311-cp311-win_amd64.whl
 )
-if /i %arg_v% == main set version=main
+if /i %arg_v% == 9.0 (
+  set version=9.0
+  set branch=v%version%
+
+  set openblas=openblas-0.3.28
+  set scalapack=scalapack-2.2.1
+  set mumps_version=5.6.2
+  set mumps=mumps-%mumps_version%
+
+  set python_version=3.11.9
+  set python_launcher_version=3.11.9
+  set python_requirements=python_requirements_9.0.txt
+  set pip_version=24.0
+  set setuptools_version=65.5.0
+  set geo_wheels_version=v2024.9.22
+  set gdal=GDAL-3.9.2-cp311-cp311-win_amd64.whl
+  set fiona=fiona-1.10.1-cp311-cp311-win_amd64.whl
+  set rasterio=rasterio-1.3.11-cp311-cp311-win_amd64.whl
+  set shapely=shapely-2.0.6-cp311-cp311-win_amd64.whl
+)
+if /i %arg_v% == main (
+  set version=main
+  set branch=main
+)
 if not defined version (
   echo Unsupported TELEMAC version: %arg_v%
   exit /b 0
@@ -163,7 +205,7 @@ if exist %install_path% (
 )
 if /i "%clone%" equ "y" (
     rd /s/q %install_path% 2>nul
-    git clone -b %version% https://gitlab.pam-retd.fr/otm/telemac-mascaret.git %install_path% || exit /b 0
+    git clone -b %branch% https://gitlab.pam-retd.fr/otm/telemac-mascaret.git %install_path% || exit /b 0
 )
 
 rem **********************
@@ -257,7 +299,7 @@ rem MED
 rem ***
 :build_med
 call :download %med% "https://gitlab.pam-retd.fr/otm/telemac-mascaret/-/package_files/443/download" || exit /b 1
-set cmake_config_options=-DHDF5_ROOT_DIR:PATH=%external_path%/%hdf5% -DMEDFILE_BUILD_TESTS:BOOL=OFF -DMEDFILE_INSTALL_DOC:BOOL=OFF
+set cmake_config_options=-DHDF5_ROOT_DIR:PATH=%external_path%/%hdf5% -DMEDFILE_BUILD_TESTS:BOOL=OFF -DMEDFILE_INSTALL_DOC:BOOL=OFF -DCMAKE_C_FLAGS="-Wno-error=implicit-function-declaration"
 if %compiler% == intel (
   rem MED libraries cannot be built as shared libraries with Visual Studio generator as they
   rem miss the proper __declspec(dllexport) declarations on each class and function
@@ -330,7 +372,7 @@ rem *********
 call :download %scalapack% "https://github.com/Reference-ScaLAPACK/scalapack/archive/refs/tags/v2.1.0.zip" || exit /b 1
 rem We need to use a foward slash for lapack and blas libraries paths since CMake CheckFortranFunctionExists is bugged when using a backward slash
 set ext_path=%external_path:\=/%
-set cmake_config_options=-DMPI_BASE_DIR:PATH=%ext_path%/%msmpi% -DLAPACK_LIBRARIES:STRING=%ext_path%/%openblas%/lib/libopenblas.a -DBLAS_LIBRARIES:STRING=%ext_path%/%openblas%/lib/libopenblas.a -DBUILD_TESTING:BOOL=OFF
+set cmake_config_options=-DMPI_BASE_DIR:PATH=%ext_path%/%msmpi% -DLAPACK_LIBRARIES:STRING=%ext_path%/%openblas%/lib/libopenblas.a -DBLAS_LIBRARIES:STRING=%ext_path%/%openblas%/lib/libopenblas.a -DBUILD_TESTING:BOOL=OFF -DCMAKE_C_FLAGS="-Wno-error=implicit-function-declaration -Wno-implicit-int"
 call :cmake_build %scalapack% || exit /b 1
 exit /b 0
 
@@ -338,8 +380,8 @@ rem *****
 rem MUMPS
 rem *****
 :build_mumps
-call :download %mumps% "https://github.com/scivision/mumps/archive/refs/tags/v5.6.1.2.tar.gz" || exit /b 1
-set cmake_config_options=-DMUMPS_UPSTREAM_VERSION=5.2.1 -DBLAS_LIBRARY=%external_path%\%openblas%\lib\libopenblas.a -DLAPACK_LIBRARY=%external_path%\%openblas%\lib\libopenblas.a -DSCALAPACK_ROOT:PATH=%external_path%\%scalapack%
+call :download %mumps% "https://github.com/scivision/mumps/archive/refs/tags/v5.7.3.1.tar.gz" || exit /b 1
+set cmake_config_options=-DMUMPS_UPSTREAM_VERSION=%mumps_version% -DBLAS_LIBRARY=%external_path%\%openblas%\lib\libopenblas.a -DLAPACK_LIBRARY=%external_path%\%openblas%\lib\libopenblas.a -DSCALAPACK_ROOT:PATH=%external_path%\%scalapack%
 if %compiler% == mingw (
   set cmake_config_options=%cmake_config_options% -DMPI_ROOT:PATH=%external_path%\%msmpi%
 ) else (
@@ -469,7 +511,7 @@ curl -OL https://github.com/cgohlke/geospatial-wheels/releases/download/%geo_whe
 curl -OL https://github.com/cgohlke/geospatial-wheels/releases/download/%geo_wheels_version%/%shapely% || goto install_python_packages_error
 popd
 pushd %~dp0
-pip install -r %python_requirements% || goto install_python_packages_error
+pip install -r %python_requirements% --no-warn-script-location || goto install_python_packages_error
 
 rem Starting with Python 3.8, mpi4py requires MPI DLLs to be present in the module directory: copy them there
 xcopy /y %external_path%\%msmpi%\bin\msmpi*.dll %external_path%\%python%\Lib\site-packages\mpi4py\ >nul
diff --git a/patches/scalapack-2.2.1.patch b/patches/scalapack-2.2.1.patch
new file mode 100644
index 0000000000000000000000000000000000000000..28f31457c0cc5bef6ea7d736a672aede99803510
--- /dev/null
+++ b/patches/scalapack-2.2.1.patch
@@ -0,0 +1,117 @@
+diff -ur scalapack-2.1.0/CMAKE/FortranMangling.cmake scalapack-2.1.0-patched/CMAKE/FortranMangling.cmake
+--- scalapack-2.1.0/CMAKE/FortranMangling.cmake	2019-11-26 21:37:04.000000000 +0100
++++ scalapack-2.1.0-patched/CMAKE/FortranMangling.cmake	2022-01-12 22:36:58.821733800 +0100
+@@ -13,12 +13,18 @@
+ FUNCTION(COMPILE RESULT)
+     MESSAGE(STATUS "=========")
+     MESSAGE(STATUS "Compiling and Building BLACS INSTALL Testing to set correct variables")
+-   
++
++    if(CMAKE_BUILD_TYPE)
++      SET(BUILD_TYPE -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE})
++    endif()
++
+    # Configure: 
+     EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND}  
+-         "-DCMAKE_Fortran_COMPILER=${CMAKE_Fortran_COMPILER}"
+-         "-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}" "${PROJECT_SOURCE_DIR}//BLACS/INSTALL"
+-        WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/BLACS/INSTALL/        
++        "-DCMAKE_Fortran_COMPILER=${CMAKE_Fortran_COMPILER}"
++        "-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}" "${PROJECT_SOURCE_DIR}/BLACS/INSTALL"
++        -G ${CMAKE_GENERATOR} ${BUILD_TYPE}
++        -DCMAKE_Fortran_COMPILER_FORCED=TRUE -DCMAKE_C_COMPILER_FORCED=TRUE
++        WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/BLACS/INSTALL/
+         RESULT_VARIABLE RESVAR OUTPUT_VARIABLE LOG1_OUT ERROR_VARIABLE LOG1_ERR
+     )
+     if(RESVAR EQUAL 0)
+diff -ur scalapack-2.1.0/CMakeLists.txt scalapack-2.1.0-patched/CMakeLists.txt
+--- scalapack-2.1.0/CMakeLists.txt	2019-11-26 21:37:04.000000000 +0100
++++ scalapack-2.1.0-patched/CMakeLists.txt	2022-01-12 22:33:46.607205500 +0100
+@@ -157,18 +157,18 @@
+       message(STATUS "--> LAPACK and BLAS were not found. Reference LAPACK and BLAS will be downloaded and installed")
+       include(ExternalProject)
+       ExternalProject_Add(
+-		lapack
+-		URL http://www.netlib.org/lapack/lapack.tgz
+-		CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=${SCALAPACK_BINARY_DIR}
++        lapack
++        URL http://www.netlib.org/lapack/lapack.tgz
++        CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=${SCALAPACK_BINARY_DIR}
+         PREFIX ${SCALAPACK_BINARY_DIR}/dependencies
+       )
+-	  if (UNIX)
++      if (UNIX OR MINGW)
+          SET(LAPACK_LIBRARIES ${SCALAPACK_BINARY_DIR}/lib/liblapack.a CACHE STRING "LAPACK library" FORCE)
+          SET(BLAS_LIBRARIES ${SCALAPACK_BINARY_DIR}/lib/libblas.a CACHE STRING "BLAS library" FORCE)
+-	  else (UNIX) # On Windows
++      else () # MSVC
+          SET(LAPACK_LIBRARIES ${SCALAPACK_BINARY_DIR}/lib/liblapack.lib CACHE STRING "LAPACK library" FORCE)
+          SET(BLAS_LIBRARIES ${SCALAPACK_BINARY_DIR}/lib/libblas.lib CACHE STRING "BLAS library" FORCE)
+-      endif (UNIX)
++      endif ()
+    ENDIF()
+ ENDIF()
+ 
+@@ -230,11 +230,11 @@
+ append_subdir_files(src "SRC")
+ append_subdir_files(src-C "SRC")
+ 
+-if (UNIX)
++if (UNIX OR MINGW)
+    add_library(scalapack ${blacs} ${tools} ${tools-C} ${extra_lapack} ${pblas} ${pblas-F} ${ptzblas} ${ptools} ${pbblas} ${redist} ${src} ${src-C})
+-   target_link_libraries( scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
++   target_link_libraries(scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
+    scalapack_install_library(scalapack)
+-else (UNIX) # Need to separate Fortran and C Code
++else () # Need to separate Fortran and C Code
+    OPTION(BUILD_SHARED_LIBS "Build shared libraries" ON )
+    add_library(scalapack ${blacs} ${tools-C} ${pblas} ${ptools} ${redist} ${src-C})
+    target_link_libraries( scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
+@@ -242,7 +242,7 @@
+    target_link_libraries( scalapack-F ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
+    scalapack_install_library(scalapack)
+    scalapack_install_library(scalapack-F)
+-endif (UNIX)
++endif ()
+ add_subdirectory(TESTING)
+ 
+ # --------------------------------------------------
+diff -ur scalapack-2.1.0/scalapack_build.cmake scalapack-2.1.0-patched/scalapack_build.cmake
+--- scalapack-2.1.0/scalapack_build.cmake	2019-11-26 21:37:04.000000000 +0100
++++ scalapack-2.1.0-patched/scalapack_build.cmake	2022-01-12 22:31:42.310881200 +0100
+@@ -2,7 +2,7 @@
+ ###################################################################
+ # The values in this section must always be provided
+ ###################################################################
+-if(UNIX)
++if(UNIX OR MINGW)
+   if(NOT compiler)
+     set(compiler gcc)
+   endif(NOT compiler)
+@@ -12,7 +12,7 @@
+   if(NOT full_compiler)
+     set(full_compiler g++)
+   endif(NOT full_compiler)
+-endif(UNIX)
++endif()
+ 
+ if(EXISTS "/proc/cpuinfo")
+   set(parallel 1)
+@@ -24,7 +24,7 @@
+   endforeach(line)
+ endif()
+ 
+-if(WIN32)
++if(MSVC)
+   set(VSLOCATIONS 
+     "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\6.0\\Setup;VsCommonDir]/MSDev98/Bin"
+     "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\7.0\\Setup\\VS;EnvironmentDirectory]"
+@@ -57,7 +57,7 @@
+   set(CTEST_CMAKE_GENERATOR      "${GENERATOR}")
+   message("${CTEST_CMAKE_GENERATOR} - found")
+   set(compiler cl)
+-endif(WIN32)
++endif()
+ 
+ find_program(HOSTNAME NAMES hostname)
+ find_program(UNAME NAMES uname)
diff --git a/python_requirements.txt b/python_requirements.txt
index 4e620b2916527615827460b0a7dc7c0dcbabb46c..c95534f1ff6a08cab4b0ad17ec19b1ae059a8667 100644
--- a/python_requirements.txt
+++ b/python_requirements.txt
@@ -1,4 +1,4 @@
-numpy==1.26
+numpy==1.26.4
 scipy
 matplotlib
 mpi4py
@@ -13,9 +13,9 @@ seaborn
 # GDAL, Fiona and Rasterio Python packages cannot be installed using PyPI on Windows
 # Also, the version of Shapely that comes through pip is unstable
 # Instead, we need to use unofficial wheels from Christoph Gohlke’s website
-.\wheels\GDAL-3.8.2-cp311-cp311-win_amd64.whl
-.\wheels\fiona-1.9.5-cp311-cp311-win_amd64.whl
-.\wheels\rasterio-1.3.9-cp311-cp311-win_amd64.whl
-.\wheels\shapely-2.0.2-cp311-cp311-win_amd64.whl
+.\wheels\GDAL-3.9.2-cp311-cp311-win_amd64.whl
+.\wheels\fiona-1.10.1-cp311-cp311-win_amd64.whl
+.\wheels\rasterio-1.3.11-cp311-cp311-win_amd64.whl
+.\wheels\shapely-2.0.6-cp311-cp311-win_amd64.whl
 geopandas
 pyqt5
\ No newline at end of file
diff --git a/python_requirements_9.0.txt b/python_requirements_9.0.txt
new file mode 100644
index 0000000000000000000000000000000000000000..2bb21b70e4c439a63b1b880d4dd6d629ddc378c5
--- /dev/null
+++ b/python_requirements_9.0.txt
@@ -0,0 +1,132 @@
+affine==2.4.0
+anyio==4.6.2.post1
+argon2-cffi==23.1.0
+argon2-cffi-bindings==21.2.0
+arrow==1.3.0
+asttokens==3.0.0
+async-lru==2.0.4
+attrs==24.2.0
+babel==2.16.0
+beautifulsoup4==4.12.3
+bleach==6.2.0
+certifi==2024.8.30
+cffi==1.17.1
+chardet==5.2.0
+charset-normalizer==3.4.0
+click==8.1.7
+click-plugins==1.1.1
+cligj==0.7.2
+colorama==0.4.6
+comm==0.2.2
+contourpy==1.3.1
+cycler==0.12.1
+debugpy==1.8.9
+decorator==5.1.1
+defusedxml==0.7.1
+doxypypy==0.8.8.7
+et_xmlfile==2.0.0
+executing==2.1.0
+fastjsonschema==2.21.1
+.\wheels\fiona-1.10.1-cp311-cp311-win_amd64.whl
+fonttools==4.55.0
+fqdn==1.5.1
+.\wheels\GDAL-3.9.2-cp311-cp311-win_amd64.whl
+geopandas==1.0.1
+h11==0.14.0
+httpcore==1.0.7
+httpx==0.28.0
+idna==3.10
+ipykernel==6.29.5
+ipython==8.30.0
+ipywidgets==8.1.5
+isoduration==20.11.0
+jedi==0.19.2
+Jinja2==3.1.4
+json5==0.10.0
+jsonpointer==3.0.0
+jsonschema==4.23.0
+jsonschema-specifications==2024.10.1
+jupyter==1.1.1
+jupyter-console==6.6.3
+jupyter-events==0.10.0
+jupyter-lsp==2.2.5
+jupyter_client==8.6.3
+jupyter_core==5.7.2
+jupyter_server==2.14.2
+jupyter_server_terminals==0.5.3
+jupyterlab==4.2.6
+jupyterlab_pygments==0.3.0
+jupyterlab_server==2.27.3
+jupyterlab_widgets==3.0.13
+kiwisolver==1.4.7
+lxml==5.3.0
+MarkupSafe==3.0.2
+matplotlib==3.9.3
+matplotlib-inline==0.1.7
+meson==1.6.0
+mistune==3.0.2
+mpi4py==4.0.1
+nbclient==0.10.1
+nbconvert==7.16.4
+nbformat==5.10.4
+nest-asyncio==1.6.0
+notebook==7.2.2
+notebook_shim==0.2.4
+numpy==1.26.4
+openpyxl==3.1.5
+overrides==7.7.0
+OWSLib==0.32.0
+packaging==24.2
+pandas==2.2.3
+pandocfilters==1.5.1
+parso==0.8.4
+pillow==11.0.0
+platformdirs==4.3.6
+prometheus_client==0.21.0
+prompt_toolkit==3.0.48
+psutil==6.1.0
+pure_eval==0.2.3
+pycparser==2.22
+Pygments==2.18.0
+pyogrio==0.10.0
+pyparsing==3.2.0
+pyproj==3.7.0
+PyQt5==5.15.11
+PyQt5-Qt5==5.15.2
+PyQt5_sip==12.15.0
+python-dateutil==2.9.0.post0
+python-json-logger==2.0.7
+pytz==2024.2
+pywin32==308
+pywinpty==2.0.14
+PyYAML==6.0.2
+pyzmq==26.2.0
+.\wheels\rasterio-1.3.11-cp311-cp311-win_amd64.whl
+referencing==0.35.1
+requests==2.32.3
+rfc3339-validator==0.1.4
+rfc3986-validator==0.1.1
+rpds-py==0.21.0
+Rtree==1.3.0
+scipy==1.14.1
+seaborn==0.13.2
+Send2Trash==1.8.3
+.\wheels\shapely-2.0.6-cp311-cp311-win_amd64.whl
+six==1.16.0
+sniffio==1.3.1
+snuggs==1.4.7
+soupsieve==2.6
+stack-data==0.6.3
+terminado==0.18.1
+tinycss2==1.4.0
+tornado==6.4.2
+traitlets==5.14.3
+types-python-dateutil==2.9.0.20241003
+tzdata==2024.2
+uri-template==1.3.0
+urllib3==2.2.3
+wcwidth==0.2.13
+webcolors==24.11.1
+webencodings==0.5.1
+websocket-client==1.8.0
+widgetsnbextension==4.0.13