diff --git a/subworkflow/faraday_rotation.cwl b/subworkflow/faraday_rotation.cwl
new file mode 100644
index 0000000000000000000000000000000000000000..f23d29e79d0da27c41a4bf4ed08292da503f0815
--- /dev/null
+++ b/subworkflow/faraday_rotation.cwl
@@ -0,0 +1,139 @@
+class: Workflow
+cwlVersion: v1.0
+id: faraday_rotation
+label: faraday_rotation
+$namespaces:
+  sbg: 'https://www.sevenbridges.com/'
+inputs:
+  - id: msin
+    type: Directory
+    'sbg:x': -1017.7406616210938
+    'sbg:y': -230.76498413085938
+  - id: do_smooth
+    type: boolean
+    'sbg:x': -892.199951171875
+    'sbg:y': 63.25977325439453
+  - id: propagate_solutions
+    type: boolean
+    'sbg:x': -862.6722412109375
+    'sbg:y': -476.848876953125
+  - id: flagunconverged
+    type: boolean
+    'sbg:x': -854.1205444335938
+    'sbg:y': -343.4136962890625
+  - id: refAnt
+    type: string?
+    'sbg:x': -552.0540161132812
+    'sbg:y': -526.5453491210938
+outputs:
+  - id: msout
+    outputSource:
+      - applycal/msout
+    type: Directory
+    'sbg:x': 485.42376708984375
+    'sbg:y': 20.53714942932129
+steps:
+  - id: smooth_corrected
+    in:
+      - id: msin
+        source: msin
+      - id: do_smooth
+        source: do_smooth
+      - id: in_column_name
+        default: CORRECTED_DATA
+      - id: out_column
+        default: SMOOTHED_DATA
+    out:
+      - id: msout
+    run: ../steps/blsmooth.cwl
+    label: smooth_corrected
+    'sbg:x': -773.8645629882812
+    'sbg:y': -111.44158172607422
+  - id: calib_cal
+    in:
+      - id: msin
+        source: smooth_corrected/msout
+      - id: msin_modelcolum
+        default: SMOOTHED_DATA
+      - id: propagate_solutions
+        source: propagate_solutions
+      - id: flagunconverged
+        default: true
+        source: flagunconverged
+      - id: flagdivergedonly
+        default: true
+    out:
+      - id: msout
+      - id: h5parm
+    run: ../lofar-cwl/steps/calib_rot_diag.cwl
+    'sbg:x': -568.359130859375
+    'sbg:y': -151.39132690429688
+  - id: h5imp_cal_FR
+    in:
+      - id: h5parmFiles
+        source:
+          - calib_cal/h5parm
+      - id: squeeze
+        default: true
+      - id: verbose
+        default: true
+      - id: clobber
+        default: true
+    out:
+      - id: outh5parm
+      - id: log
+    run: ../lofar-cwl/steps/H5ParmCollector.cwl
+    label: h5imp_cal_FR
+    'sbg:x': -375.6440124511719
+    'sbg:y': -152.17266845703125
+  - id: losoto_faraday
+    in:
+      - id: input_h5parm
+        source: h5imp_cal_FR/outh5parm
+      - id: soltab
+        default: sol000/amplitude000
+      - id: refAnt
+        source: refAnt
+      - id: maxResidual
+        default: 1
+    out:
+      - id: output_h5parm
+    run: ../lofar-cwl/steps/LoSoTo.Faraday.cwl
+    'sbg:x': -222.1854248046875
+    'sbg:y': -198.09835815429688
+  - id: h5exp_cal_FR
+    in:
+      - id: h5parmFiles
+        source:
+          - losoto_faraday/output_h5parm
+      - id: insolset
+        default: faraday
+      - id: outh5parmname
+        default: calibrator
+      - id: squeeze
+        default: true
+      - id: verbose
+        default: true
+      - id: clobber
+        default: false
+    out:
+      - id: outh5parm
+      - id: log
+    run: ../lofar-cwl/steps/H5ParmCollector.cwl
+    label: H5parm_collector
+    'sbg:x': 20.809268951416016
+    'sbg:y': -251.650390625
+  - id: applycal
+    in:
+      - id: msin
+        source: msin
+      - id: msin_datacolumn
+        default: CORRECTED_DATA
+      - id: parmdb
+        source: h5exp_cal_FR/outh5parm
+    out:
+      - id: msout
+    run: ../lofar-cwl/steps/applycal.cwl
+    'sbg:x': 301.5081787109375
+    'sbg:y': -99.46710205078125
+requirements: []