Index: /LMDZ6/trunk/DefLists/field_def_lmdz.xml
===================================================================
--- /LMDZ6/trunk/DefLists/field_def_lmdz.xml	(revision 3690)
+++ /LMDZ6/trunk/DefLists/field_def_lmdz.xml	(revision 3691)
@@ -64,4 +64,6 @@
         <field id="wind10max"  long_name="10m wind speed max"   unit="m/s" operation="maximum"/>
         <field id="wind100m"   long_name="100-m wind speed"      unit="m/s" />
+        <field id="loadfactor_wind_onshore"   long_name="Load factor for onshore windmill"      unit="-" />
+        <field id="loadfactor_wind_offshore"  long_name="Load factor for offshore windmill"     unit="-" />
         <field id="sfcWindmax" field_ref="wind10m" operation="maximum" />
         <field id="sicf"    long_name="Sea-ice fraction"        unit="-" />
Index: /LMDZ6/trunk/libf/phylmd/phys_output_ctrlout_mod.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/phys_output_ctrlout_mod.F90	(revision 3690)
+++ /LMDZ6/trunk/libf/phylmd/phys_output_ctrlout_mod.F90	(revision 3691)
@@ -279,4 +279,8 @@
   TYPE(ctrl_out), SAVE :: o_wind100m = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), &
     'wind100m', '100-m wind speed', 'm/s', (/ ('', i=1, 10) /))
+  TYPE(ctrl_out), SAVE :: o_loadfactor_wind_onshore = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), &
+    'load_factor_wind_onshore', 'Load factor for onshore windmill', '-', (/ ('', i=1, 10) /))
+  TYPE(ctrl_out), SAVE :: o_loadfactor_wind_offshore = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), &
+    'load_factor_wind_offshore', 'Load factor for offshore windmill', '-', (/ ('', i=1, 10) /))
   TYPE(ctrl_out), SAVE :: o_wind10max = ctrl_out((/ 10, 1, 10, 10, 10, 10, 11, 11, 11, 11/), &
     'wind10max', '10m wind speed max', 'm/s', &
Index: /LMDZ6/trunk/libf/phylmd/phys_output_write_mod.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/phys_output_write_mod.F90	(revision 3690)
+++ /LMDZ6/trunk/libf/phylmd/phys_output_write_mod.F90	(revision 3691)
@@ -40,4 +40,5 @@
          o_q2m, o_ustar, o_u10m, o_v10m, &
          o_wind10m, o_wind10max, o_wind100m, o_gusts, o_sicf, &
+         o_loadfactor_wind_onshore, o_loadfactor_wind_offshore, &
          o_psol, o_mass, o_qsurf, o_qsol, &
          o_precip, o_rain_fall, o_rain_con, o_ndayrain, o_plul, o_pluc, o_plun, &
@@ -411,5 +412,5 @@
     INTEGER :: itau_w
     INTEGER :: i, iinit, iinitend=1, iff, iq, iiq, nsrf, k, ll, naero
-    REAL, DIMENSION (klon) :: zx_tmp_fi2d, zpt_conv2d
+    REAL, DIMENSION (klon) :: zx_tmp_fi2d, zpt_conv2d, wind100m
     REAL, DIMENSION (klon,klev) :: zx_tmp_fi3d, zpt_conv
     REAL, DIMENSION (klon,klev+1) :: zx_tmp_fi3d1
@@ -425,4 +426,5 @@
     INTEGER, SAVE :: kmax_100m
 !$OMP THREADPRIVATE(kmax_100m)
+    REAL :: x
 #ifndef CPP_XIOS
     REAL :: missing_val
@@ -713,11 +715,53 @@
             DO i=1,klon
               IF (z(i,k).LT.100..AND.z(i,k+1).GE.100.) THEN
-                zx_tmp_fi2d(i)=SQRT( (u_seri(i,k)+(100.-z(i,k))/(z(i,k+1)-z(i,k))*(u_seri(i,k+1)-u_seri(i,k)))**2.0 + &
-                                     (v_seri(i,k)+(100.-z(i,k))/(z(i,k+1)-z(i,k))*(v_seri(i,k+1)-v_seri(i,k)))**2.0 )
+                wind100m(i)=SQRT( (u_seri(i,k)+(100.-z(i,k))/(z(i,k+1)-z(i,k))*(u_seri(i,k+1)-u_seri(i,k)))**2.0 + &
+                                  (v_seri(i,k)+(100.-z(i,k))/(z(i,k+1)-z(i,k))*(v_seri(i,k+1)-v_seri(i,k)))**2.0 )
               ENDIF
             ENDDO
           ENDDO
        ENDIF
-       CALL histwrite_phy(o_wind100m, zx_tmp_fi2d)
+       CALL histwrite_phy(o_wind100m, wind100m)
+
+       IF (vars_defined) THEN
+         !--polynomial fit for 14,Vestas,1074,V136/3450 kW windmill - Olivier
+         DO i=1,klon
+           IF (pctsrf(i,is_ter).GT.0.05) THEN
+             x=wind100m(i)
+             IF (x.LE.3.0 .OR. x.GE.22.5) THEN
+               zx_tmp_fi2d(i)=0.0
+             ELSE IF (x.GE.10.0) THEN
+               zx_tmp_fi2d(i)=1.0
+             ELSE
+               zx_tmp_fi2d(i)= 1.059e-09*x**10. - 1.351e-07*x**9. + 7.478e-06*x**8. - 0.0002352*x**7. + 0.004627*x**6. & 
+                             - 0.05898*x**5. + 0.4893*x**4. - 2.59*x**3. + 8.339*x**2. - 14.69*x + 10.73
+               zx_tmp_fi2d(i)=MIN(MAX(zx_tmp_fi2d(i),0.0),1.0)
+             ENDIF
+           ELSE
+             zx_tmp_fi2d(i)=missing_val_nf90
+           ENDIF
+         ENDDO
+       ENDIF
+       CALL histwrite_phy(o_loadfactor_wind_onshore, zx_tmp_fi2d)
+
+       IF (vars_defined) THEN
+         !--polynomial fit for 14,Vestas,867,V164/8000 kW - Olivier
+         DO i=1,klon
+           IF (pctsrf(i,is_oce).GT.0.05) THEN
+             x=wind100m(i)
+             IF (x.LE.3.0 .OR. x.GE.25.5) THEN
+               zx_tmp_fi2d(i)=0.0
+             ELSE IF (x.GE.12.5) THEN
+               zx_tmp_fi2d(i)=1.0
+             ELSE
+               zx_tmp_fi2d(i)= 3.352e-10*x**10. - 4.959e-08*x**9. + 3.195e-06*x**8. - 0.0001175*x**7. + 0.002716*x**6. &
+                             - 0.04099*x**5. + 0.4065*x**4. - 2.601*x**3. + 10.25*x**2. - 22.39*x + 20.59
+               zx_tmp_fi2d(i)=MIN(MAX(zx_tmp_fi2d(i),0.0),1.0)
+             ENDIF
+           ELSE
+             zx_tmp_fi2d(i)=missing_val_nf90
+           ENDIF
+         ENDDO
+       ENDIF
+       CALL histwrite_phy(o_loadfactor_wind_offshore, zx_tmp_fi2d)
 
        IF (vars_defined) THEN
