diff --git a/corsika/framework/units/quantity.hpp b/corsika/framework/units/quantity.hpp
index 1ebd98015c757bfe451b838f89eea5995d22688e..f64090299da8462f6b651bd22f89559f33885606 100644
--- a/corsika/framework/units/quantity.hpp
+++ b/corsika/framework/units/quantity.hpp
@@ -763,6 +763,8 @@ namespace phys {
 
     // The standard SI prefixes.
 
+    constexpr long double quetta = 1e+30L;
+    constexpr long double ronna = 1e+27L;
     constexpr long double yotta = 1e+24L;
     constexpr long double zetta = 1e+21L;
     constexpr long double exa = 1e+18L;
@@ -783,6 +785,8 @@ namespace phys {
     constexpr long double atto = 1e-18L;
     constexpr long double zepto = 1e-21L;
     constexpr long double yocto = 1e-24L;
+    constexpr long double ronto = 1e-27L;
+    constexpr long double quecto = 1e-30L;
 
     // Binary prefixes, pending adoption.
 
@@ -938,6 +942,8 @@ namespace phys {
   }
 
 #define QUANTITY_DEFINE_SCALING_LITERALS(pfx, dim, fact)    \
+  QUANTITY_DEFINE_SCALING_LITERAL(Q##pfx, dim, fact* quetta) \
+  QUANTITY_DEFINE_SCALING_LITERAL(R##pfx, dim, fact* ronna) \
   QUANTITY_DEFINE_SCALING_LITERAL(Y##pfx, dim, fact* yotta) \
   QUANTITY_DEFINE_SCALING_LITERAL(Z##pfx, dim, fact* zetta) \
   QUANTITY_DEFINE_SCALING_LITERAL(E##pfx, dim, fact* exa)   \
@@ -958,7 +964,9 @@ namespace phys {
   QUANTITY_DEFINE_SCALING_LITERAL(f##pfx, dim, fact* femto) \
   QUANTITY_DEFINE_SCALING_LITERAL(a##pfx, dim, fact* atto)  \
   QUANTITY_DEFINE_SCALING_LITERAL(z##pfx, dim, fact* zepto) \
-  QUANTITY_DEFINE_SCALING_LITERAL(y##pfx, dim, fact* yocto)
+  QUANTITY_DEFINE_SCALING_LITERAL(y##pfx, dim, fact* yocto) \
+  QUANTITY_DEFINE_SCALING_LITERAL(r##pfx, dim, fact* ronto) \
+  QUANTITY_DEFINE_SCALING_LITERAL(q##pfx, dim, fact* quecto)
 
 #define QUANTITY_DEFINE_LITERALS(pfx, dim) QUANTITY_DEFINE_SCALING_LITERALS(pfx, dim, 1)
 
diff --git a/corsika/framework/units/quantity_io.hpp b/corsika/framework/units/quantity_io.hpp
index db32e911b85e64feacb7df6428db5e8e30de60d5..2bed082953ea8cb5ee7f6f3014f40898ce59ab9f 100644
--- a/corsika/framework/units/quantity_io.hpp
+++ b/corsika/framework/units/quantity_io.hpp
@@ -81,6 +81,10 @@ inline Rep prefix( std::string const prefix_ )
         { "da", deka },
         { "d", deci  },
         { "c", centi },
+        { "r", ronto },
+        { "q", quecto },
+        { "R", ronna },
+        { "Q", quetta },
     };
 
     auto pos = table.find( prefix_ );
diff --git a/tests/framework/testUnits.cpp b/tests/framework/testUnits.cpp
index 5c90aa9cd6ad65500a13a178d7dd6b0e52355006..2938f4bb671ca9caf5843c54428b40d9e9a0ce62 100644
--- a/tests/framework/testUnits.cpp
+++ b/tests/framework/testUnits.cpp
@@ -57,6 +57,8 @@ TEST_CASE("PhysicalUnits", "[Units]") {
     CHECK(1_mol / 1_amol == Approx(1e18));
     CHECK(1_K / 1_zK == Approx(1e21));
     CHECK(1_K / 1_yK == Approx(1e24));
+    CHECK(1_V / 1_rV == Approx(1e27));
+    CHECK(1_V / 1_qV == Approx(1e30));
     CHECK(1_b / 1_mb == Approx(1e3));
 
     CHECK(1_A / 1_hA == Approx(1e-2));
@@ -68,6 +70,8 @@ TEST_CASE("PhysicalUnits", "[Units]") {
     CHECK(1_A / 1_EA == Approx(1e-18));
     CHECK(1_K / 1_ZK == Approx(1e-21));
     CHECK(1_mol / 1_Ymol == Approx(1e-24));
+    CHECK(1_V / 1_RV == Approx(1e-27));
+    CHECK(1_V / 1_QV == Approx(1e-30));
 
     CHECK(std::min(1_A, 2_A) == 1_A);
   }