diff --git a/cfgs/SHARED/field_def_nemo-oce.xml b/cfgs/SHARED/field_def_nemo-oce.xml
index ea75b3ec77a6eceb29995558d315213dcc6df9de..240c3913dad841c05331260dd38de1297f7c6f62 100644
--- a/cfgs/SHARED/field_def_nemo-oce.xml
+++ b/cfgs/SHARED/field_def_nemo-oce.xml
@@ -330,7 +330,12 @@ that are available in the tidal-forcing implementation (see
     <field id="zustar"              long_name="friction velocity"                        unit="m/s"     />
     <field id="zwstrl"              long_name="langmuir velocity scale"                  unit="m/s"     />
     <field id="zvstr"               long_name="mixed velocity scale"                     unit="m/s"     />
-    <field id="zla"                 long_name="langmuir number"                          unit="m/s"     />
+    <field id="zla"                 long_name="langmuir number"                          unit="#"       />
+    <field id="wmp"                 long_name="wave mean period"                         unit="s"       />
+    <field id="hsw"                 long_name="significant wave height"                  unit="m"       />
+    <field id="wmp_NP"              long_name="wave mean period from NP spectrum"        unit="s"       />
+    <field id="hsw_NP"              long_name="significant wave height from NP spectrum" unit="m"       />
+    <field id="wndm"                long_name="U_10"                                     unit="m/s"     />
     <field id="wind_wave_abs_power" long_name="\rho |U_s| x u*^2"                        unit="mW"      />
     <field id="wind_wave_power"     long_name="U_s \dot  tau"                            unit="mW"      />
     <field id="wind_power"          long_name="\rho  u*^3"                               unit="mW"      />
diff --git a/src/OCE/ZDF/zdfosm.F90 b/src/OCE/ZDF/zdfosm.F90
index df648a8c08f42edbfb5ec326af5ce3e9f96b1b08..2a8fde5dba3216ccedac6a0be76736a2fd2c3808 100644
--- a/src/OCE/ZDF/zdfosm.F90
+++ b/src/OCE/ZDF/zdfosm.F90
@@ -920,7 +920,7 @@ CONTAINS
             ! Stokes drift set by assumimg onstant La#=0.3 (=0) or Pierson-Moskovitz spectrum (=1)
          CASE(0:1)
             CALL zdf_osm_iomput( "us_x", tmask(A2D(0),1) * sustke(A2D(0)) * scos_wind(A2D(0)) )   ! x surface Stokes drift
-            CALL zdf_osm_iomput( "us_y", tmask(A2D(0),1) * sustke(A2D(0)) * scos_wind(A2D(0)) )   ! y surface Stokes drift
+            CALL zdf_osm_iomput( "us_y", tmask(A2D(0),1) * sustke(A2D(0)) * ssin_wind(A2D(0)) )   ! y surface Stokes drift
             CALL zdf_osm_iomput( "wind_wave_abs_power", 1000.0_wp * rho0 * tmask(A2D(0),1) * sustar(A2D(0))**2 * sustke(A2D(0)) )
             ! Stokes drift read in from sbcwave  (=2).
          CASE(2:3)
@@ -938,8 +938,8 @@ CONTAINS
          END SELECT
          CALL zdf_osm_iomput( "zwth0",           tmask(A2D(0),1) * swth0(A2D(0))     )      ! <Tw_0>
          CALL zdf_osm_iomput( "zws0",            tmask(A2D(0),1) * sws0(A2D(0))      )      ! <Sw_0>
-         CALL zdf_osm_iomput( "zwb0",            tmask(A2D(0),1) * swb0(A2D(0))      )      ! <Sw_0>
-         CALL zdf_osm_iomput( "zwbav",           tmask(A2D(0),1) * swth0(A2D(0))     )      ! Upward BL-avged turb buoyancy flux
+         CALL zdf_osm_iomput( "zwb0",            tmask(A2D(0),1) * swb0(A2D(0))      )      ! <bw_0>
+         CALL zdf_osm_iomput( "zwbav",           tmask(A2D(0),1) * swbav(A2D(0))     )      ! Upward BL-avged turb buoyancy flux
          CALL zdf_osm_iomput( "ibld",            tmask(A2D(0),1) * nbld(A2D(0))      )      ! Boundary-layer max k
          CALL zdf_osm_iomput( "zdt_bl",          tmask(A2D(0),1) * av_dt_bl(A2D(0))  )      ! dt at ml base
          CALL zdf_osm_iomput( "zds_bl",          tmask(A2D(0),1) * av_ds_bl(A2D(0))  )      ! ds at ml base
@@ -988,7 +988,7 @@ CONTAINS
          CALL zdf_osm_iomput( "dbdx_mle",        umask(A2D(0),1) * dbdx_mle(A2D(0))  )      ! FK dbdx at u-pt
          CALL zdf_osm_iomput( "dbdy_mle",        vmask(A2D(0),1) * dbdy_mle(A2D(0))  )      ! FK dbdy at v-pt
          CALL zdf_osm_iomput( "zdiff_mle",       tmask(A2D(0),1) * zdiff_mle(A2D(0)) )      ! FK diff in MLE at t-pt
-         CALL zdf_osm_iomput( "zvel_mle",        tmask(A2D(0),1) * zdiff_mle(A2D(0)) )      ! FK diff in MLE at t-pt
+         CALL zdf_osm_iomput( "zvel_mle",        tmask(A2D(0),1) * zvel_mle(A2D(0)) )       ! FK velocity in MLE at t-pt
       END IF
       !
       ! Lateral boundary conditions on ghamu and ghamv, currently on W-grid (sign unchanged), needed to caclulate gham[uv] on u and
@@ -3450,7 +3450,7 @@ CONTAINS
             osmdia2d(A2D(0)) = posmdia2d(:,:)
             CALL iom_put( cdname, osmdia2d(A2D(nn_hls)) )
          ELSE   ! Halo present
-            CALL iom_put( cdname, osmdia2d )
+            CALL iom_put( cdname, posmdia2d )
          END IF
       END IF
       !
@@ -3473,7 +3473,7 @@ CONTAINS
             osmdia3d(A2D(0),:) = posmdia3d(:,:,:)
             CALL iom_put( cdname, osmdia3d(A2D(nn_hls),:) )
          ELSE   ! Halo present
-            CALL iom_put( cdname, osmdia3d )
+            CALL iom_put( cdname, posmdia3d )
          END IF
       END IF
       !