diff --git a/climax/main/preprocess.py b/climax/main/preprocess.py
index 3cc29841a6bf706f420de61054441bfa37e1f937..75ec051a902211b67f77ee37bd13f56f0d1dec7b 100644
--- a/climax/main/preprocess.py
+++ b/climax/main/preprocess.py
@@ -183,6 +183,16 @@ if __name__ == '__main__':
                                     row.institute_rcm,
                                     row.downscale_realisation, nc_pattern])
 
+                # filter by variable
+                if args.variable is not None:
+                    if not pattern.startswith(args.variable):
+                        continue
+
+                # filter by experiment
+                if args.scenario is not None:
+                    if not args.scenario in pattern:
+                        continue
+
                 # run cordex preprocessing
                 preprocess_cordex_simulation(pattern)