diff --git a/spack_repo/packages/icon-nwp/package.py b/spack_repo/packages/icon-nwp/package.py
index f6c567e7e3fec0fe1468184d3b491d84e2f0cbb7..6d3ecc9897ab5fa8d5f7ebcac906df2ceb0800cb 100644
--- a/spack_repo/packages/icon-nwp/package.py
+++ b/spack_repo/packages/icon-nwp/package.py
@@ -42,6 +42,12 @@ class IconNwp(Package):
     variant("petsc", default=False, description="add PETSc support")
     variant("debug", default=False, description="add debug flags when compiling icon")
 
+    variant("parallelnetcdf", default=True, description="enable-parallel-netcdf")
+    variant("yaxt", default=True, description="enable-yaxt")
+    variant("coupling", default=True, description="enable-coupling")
+    variant("ecrad", default=True, description="enable-ecrad")
+    variant("grib2", default=True, description="enable-grib2")
+
     # Dependencies
     depends_on("mpi")
     depends_on("netcdf-c")
@@ -219,7 +225,6 @@ class IconNwp(Package):
             f"LDFLAGS={' '.join(libs)}",
             f"LIBS={' '.join(libs)}",
             f"--prefix={prefix}",
-            f"--enable-grib2",
         ]
 
         ICON_FCFLAGS="-std=f2008 -fallow-argument-mismatch -fmodule-private -fimplicit-none -Wall"
@@ -228,6 +233,20 @@ class IconNwp(Package):
         else:
             options.append(f"ICON_FCFLAGS={ICON_FCFLAGS} -O3")
 
+        if "+parallelnetcdf" in self.spec:
+            options.append("--enable-parallel-netcdf")
+
+        if "+yaxt" in self.spec:
+            options.append("--enable-yaxt")
+
+        if "+coupling" in self.spec:
+            options.append("--enable-coupling")
+
+        if "+ecrad" in self.spec:
+            options.append("--enable-ecrad")
+
+        if "+grib2" in self.spec:
+            options.append("--enable-grib2")
 
         # For some reason there's a problem with OpenMPI with gcc@11.3.0 which makes the configuration fail.
         if self.spec.compiler.name == "gcc" and self.spec.compiler.version == Version("11.3.0"):