7 SUBROUTINE znot_m_v1(uref,znotm)
15 REAL,
INTENT(IN) :: uref
16 REAL,
INTENT(OUT):: znotm
17 REAL :: bs0, bs1, bs2, bs3, bs4, bs5, bs6
18 REAL :: cf0, cf1, cf2, cf3, cf4, cf5, cf6
21 bs0 = -8.367276172397277e-12
22 bs1 = 1.7398510865876079e-09
23 bs2 = -1.331896578363359e-07
24 bs3 = 4.507055294438727e-06
25 bs4 = -6.508676881906914e-05
26 bs5 = 0.00044745137674732834
27 bs6 = -0.0010745704660847233
29 cf0 = 2.1151080765239772e-13
30 cf1 = -3.2260663894433345e-11
31 cf2 = -3.329705958751961e-10
32 cf3 = 1.7648562021709124e-07
33 cf4 = 7.107636825694182e-06
34 cf5 = -0.0013914681964973246
35 cf6 = 0.0406766967657759
38 IF ( uref .LE. 5.0 )
THEN
39 znotm = (0.0185 / 9.8*(7.59e-4*uref**2+2.46e-2*uref)**2)
40 ELSEIF (uref .GT. 5.0 .AND. uref .LT. 10.0)
THEN
41 znotm =.00000235*(uref**2 - 25 ) + 3.805129199617346e-05
42 ELSEIF ( uref .GE. 10.0 .AND. uref .LT. 60.0)
THEN
43 znotm = bs6 + bs5*uref + bs4*uref**2 + bs3*uref**3 + bs2*uref**4 + &
44 bs1*uref**5 + bs0*uref**6
46 znotm = cf6 + cf5*uref + cf4*uref**2 + cf3*uref**3 + cf2*uref**4 + &
47 cf1*uref**5 + cf0*uref**6
81 SUBROUTINE znot_t_v1(uref,znott)
88 REAL,
INTENT(IN) :: uref
89 REAL,
INTENT(OUT):: znott
90 REAL :: to0, to1, to2, to3
91 REAL :: tr0, tr1, tr2, tr3
92 REAL :: tn0, tn1, tn2, tn3, tn4, tn5
93 REAL :: ta0, ta1, ta2, ta3, ta4, ta5, ta6
94 REAL :: tt0, tt1, tt2, tt3, tt4, tt5, tt6, tt7
97 tr0 = 6.451939325286488e-08
98 tr1 = -7.306388137342143e-07
99 tr2 = -1.3709065148333262e-05
100 tr3 = 0.00019109962089098182
102 to0 = 1.4379320027061375e-08
103 to1 = -2.0674525898850674e-07
104 to2 = -6.8950970846611e-06
105 to3 = 0.00012199648268521026
107 tn0 = 1.4023940955902878e-10
108 tn1 = -1.4752557214976321e-08
109 tn2 = 5.90998487691812e-07
110 tn3 = -1.0920804077770066e-05
111 tn4 = 8.898205876940546e-05
112 tn5 = -0.00021123340439418298
114 tt0 = 1.92409564131838e-12
115 tt1 = -5.765467086754962e-10
116 tt2 = 7.276979099726975e-08
117 tt3 = -5.002261599293387e-06
118 tt4 = 0.00020220445539973736
119 tt5 = -0.0048088230565883
120 tt6 = 0.0623468551971189
121 tt7 = -0.34019193746967424
123 ta0 = -1.7787470700719361e-10
124 ta1 = 4.4691736529848764e-08
125 ta2 = -3.0261975348463414e-06
126 ta3 = -0.00011680322286017206
127 ta4 = 0.024449377821884846
128 ta5 = -1.1228628619105638
129 ta6 = 17.358026773905973
131 IF ( uref .LE. 7.0 )
THEN
132 znott = (0.0185 / 9.8*(7.59e-4*uref**2+2.46e-2*uref)**2)
133 ELSEIF ( uref .GE. 7.0 .AND. uref .LT. 12.5 )
THEN
134 znott = tr3 + tr2*uref + tr1*uref**2 + tr0*uref**3
135 ELSEIF ( uref .GE. 12.5 .AND. uref .LT. 15.0 )
THEN
136 znott = to3 + to2*uref + to1*uref**2 + to0*uref**3
137 ELSEIF ( uref .GE. 15.0 .AND. uref .LT. 30.0)
THEN
138 znott = tn5 + tn4*uref + tn3*uref**2 + tn2*uref**3 + tn1*uref**4 + &
140 ELSEIF ( uref .GE. 30.0 .AND. uref .LT. 60.0)
THEN
141 znott = tt7 + tt6*uref + tt5*uref**2 + tt4*uref**3 + tt3*uref**4 + &
142 tt2*uref**5 + tt1*uref**6 + tt0*uref**7
144 znott = ta6 + ta5*uref + ta4*uref**2 + ta3*uref**3 + ta2*uref**4 + &
145 ta1*uref**5 + ta0*uref**6
169 SUBROUTINE znot_t_v2(uu,znott)
177 REAL,
INTENT(IN) :: uu
178 REAL,
INTENT(OUT):: znott
179 REAL :: ta0, ta1, ta2, ta3, ta4, ta5, ta6
180 REAL :: tb0, tb1, tb2, tb3, tb4, tb5, tb6
181 REAL :: tt0, tt1, tt2, tt3, tt4, tt5, tt6
183 ta0 = 2.51715926619e-09
184 ta1 = -1.66917514012e-07
185 ta2 = 4.57345863551e-06
186 ta3 = -6.64883696932e-05
187 ta4 = 0.00054390175125
188 ta5 = -0.00239645231325
189 ta6 = 0.00453024927761
192 tb0 = -1.72935914649e-14
193 tb1 = 2.50587455802e-12
194 tb2 = -7.90109676541e-11
195 tb3 = -4.40976353607e-09
196 tb4 = 3.68968179733e-07
197 tb5 = -9.43728336756e-06
198 tb6 = 8.90731312383e-05
200 tt0 = 4.68042680888e-14
201 tt1 = -1.98125754931e-11
202 tt2 = 3.41357133496e-09
203 tt3 = -3.05130605309e-07
204 tt4 = 1.48243563819e-05
205 tt5 = -0.000367207751936
206 tt6 = 0.00357204479347
208 IF ( uu .LE. 7.0 )
THEN
209 znott = (0.0185 / 9.8*(7.59e-4*uu**2+2.46e-2*uu)**2)
210 ELSEIF ( uu .GE. 7.0 .AND. uu .LT. 15. )
THEN
211 znott = ta6 + ta5*uu + ta4*uu**2 + ta3*uu**3 + ta2*uu**4 + &
212 ta1*uu**5 + ta0*uu**6
213 ELSEIF ( uu .GE. 15.0 .AND. uu .LT. 60.0)
THEN
214 znott = tb6 + tb5*uu + tb4*uu**2 + tb3*uu**3 + tb2*uu**4 + &
215 tb1*uu**5 + tb0*uu**6
217 znott = tt6 + tt5*uu + tt4*uu**2 + tt3*uu**3 + tt2*uu**4 + &
218 tt1*uu**5 + tt0*uu**6
223 SUBROUTINE znot_m_v6(uref,znotm)
235 REAL,
INTENT(IN) :: uref
236 REAL,
INTENT(OUT):: znotm
237 REAL :: p13, p12, p11, p10
238 REAL :: p25, p24, p23, p22, p21, p20
239 REAL :: p35, p34, p33, p32, p31, p30
242 p13 = -1.296521881682694e-02
243 p12 = 2.855780863283819e-01
244 p11 = -1.597898515251717e+00
245 p10 = -8.396975715683501e+00
247 p25 = 3.790846746036765e-10
248 p24 = 3.281964357650687e-09
249 p23 = 1.962282433562894e-07
250 p22 = -1.240239171056262e-06
251 p21 = 1.739759082358234e-07
252 p20 = 2.147264020369413e-05
254 p35 = 1.840430200185075e-07
255 p34 = -2.793849676757154e-05
256 p33 = 1.735308193700643e-03
257 p32 = -6.139315534216305e-02
258 p31 = 1.255457892775006e+00
259 p30 = -1.663993561652530e+01
261 p40 = 4.579369142033410e-04
263 if (uref >= 0.0 .and. uref <= 6.5 )
then
264 znotm = exp( p10 + p11*uref + p12*uref**2 + p13*uref**3)
265 elseif (uref > 6.5 .and. uref <= 15.7)
then
266 znotm = p25*uref**5 + p24*uref**4 + p23*uref**3 + p22*uref**2 + p21*uref + p20
267 elseif (uref > 15.7 .and. uref <= 53.0)
then
268 znotm = exp( p35*uref**5 + p34*uref**4 + p33*uref**3 + p32*uref**2 + p31*uref + p30 )
269 elseif ( uref > 53.0)
then
272 print*,
'Wrong input uref value:',uref
277 SUBROUTINE znot_t_v6(uref,znott)
289 REAL,
INTENT(IN) :: uref
290 REAL,
INTENT(OUT):: znott
293 REAL :: p15, p14, p13, p12, p11, p10
294 REAL :: p25, p24, p23, p22, p21, p20
295 REAL :: p35, p34, p33, p32, p31, p30
296 REAL :: p45, p44, p43, p42, p41, p40
297 REAL :: p56, p55, p54, p53, p52, p51, p50
300 p00 = 1.100000000000000e-04
302 p15 = -9.144581627678278e-10
303 p14 = 7.020346616456421e-08
304 p13 = -2.155602086883837e-06
305 p12 = 3.333848806567684e-05
306 p11 = -2.628501274963990e-04
307 p10 = 8.634221567969181e-04
309 p25 = -8.654513012535990e-12
310 p24 = 1.232380050058077e-09
311 p23 = -6.837922749505057e-08
312 p22 = 1.871407733439947e-06
313 p21 = -2.552246987137160e-05
314 p20 = 1.428968311457630e-04
316 p35 = 3.207515102100162e-12
317 p34 = -2.945761895342535e-10
318 p33 = 8.788972147364181e-09
319 p32 = -3.814457439412957e-08
320 p31 = -2.448983648874671e-06
321 p30 = 3.436721779020359e-05
323 p45 = -3.530687797132211e-11
324 p44 = 3.939867958963747e-09
325 p43 = -1.227668406985956e-08
326 p42 = -1.367469811838390e-05
327 p41 = 5.988240863928883e-04
328 p40 = -7.746288511324971e-03
330 p56 = -1.187982453329086e-13
331 p55 = 4.801984186231693e-11
332 p54 = -8.049200462388188e-09
333 p53 = 7.169872601310186e-07
334 p52 = -3.581694433758150e-05
335 p51 = 9.503919224192534e-04
336 p50 = -1.036679430885215e-02
338 p60 = 4.751256171799112e-05
340 if (uref >= 0.0 .and. uref < 5.9 )
then
342 elseif (uref >= 5.9 .and. uref <= 15.4)
then
343 znott = p15*uref**5 + p14*uref**4 + p13*uref**3 + p12*uref**2 + p11*uref + p10
344 elseif (uref > 15.4 .and. uref <= 21.6)
then
345 znott = p25*uref**5 + p24*uref**4 + p23*uref**3 + p22*uref**2 + p21*uref + p20
346 elseif (uref > 21.6 .and. uref <= 42.2)
then
347 znott = p35*uref**5 + p34*uref**4 + p33*uref**3 + p32*uref**2 + p31*uref + p30
348 elseif ( uref > 42.2 .and. uref <= 53.3)
then
349 znott = p45*uref**5 + p44*uref**4 + p43*uref**3 + p42*uref**2 + p41*uref + p40
350 elseif ( uref > 53.3 .and. uref <= 80.0)
then
351 znott = p56*uref**6 + p55*uref**5 + p54*uref**4 + p53*uref**3 + p52*uref**2 + p51*uref + p50
352 elseif ( uref > 80.0)
then
355 print*,
'Wrong input uref value:',uref
360 SUBROUTINE znot_m_v7(uref,znotm)
373 REAL,
INTENT(IN) :: uref
374 REAL,
INTENT(OUT):: znotm
375 REAL :: p13, p12, p11, p10
376 REAL :: p25, p24, p23, p22, p21, p20
377 REAL :: p35, p34, p33, p32, p31, p30
380 p13 = -1.296521881682694e-02
381 p12 = 2.855780863283819e-01
382 p11 = -1.597898515251717e+00
383 p10 = -8.396975715683501e+00
385 p25 = 3.790846746036765e-10
386 p24 = 3.281964357650687e-09
387 p23 = 1.962282433562894e-07
388 p22 = -1.240239171056262e-06
389 p21 = 1.739759082358234e-07
390 p20 = 2.147264020369413e-05
392 p35 = 1.897534489606422e-07
393 p34 = -3.019495980684978e-05
394 p33 = 1.931392924987349e-03
395 p32 = -6.797293095862357e-02
396 p31 = 1.346757797103756e+00
397 p30 = -1.707846930193362e+01
399 p40 = 3.371427455376717e-04
401 if (uref >= 0.0 .and. uref <= 6.5 )
then
402 znotm = exp( p10 + p11*uref + p12*uref**2 + p13*uref**3)
403 elseif (uref > 6.5 .and. uref <= 15.7)
then
404 znotm = p25*uref**5 + p24*uref**4 + p23*uref**3 + p22*uref**2 + p21*uref + p20
405 elseif (uref > 15.7 .and. uref <= 53.0)
then
406 znotm = exp( p35*uref**5 + p34*uref**4 + p33*uref**3 + p32*uref**2 + p31*uref + p30 )
407 elseif ( uref > 53.0)
then
410 print*,
'Wrong input uref value:',uref
415 SUBROUTINE znot_t_v7(uref,znott)
428 REAL,
INTENT(IN) :: uref
429 REAL,
INTENT(OUT):: znott
432 REAL :: p15, p14, p13, p12, p11, p10
433 REAL :: p25, p24, p23, p22, p21, p20
434 REAL :: p35, p34, p33, p32, p31, p30
435 REAL :: p45, p44, p43, p42, p41, p40
436 REAL :: p56, p55, p54, p53, p52, p51, p50
439 p00 = 1.100000000000000e-04
441 p15 = -9.193764479895316e-10
442 p14 = 7.052217518653943e-08
443 p13 = -2.163419217747114e-06
444 p12 = 3.342963077911962e-05
445 p11 = -2.633566691328004e-04
446 p10 = 8.644979973037803e-04
448 p25 = -9.402722450219142e-12
449 p24 = 1.325396583616614e-09
450 p23 = -7.299148051141852e-08
451 p22 = 1.982901461144764e-06
452 p21 = -2.680293455916390e-05
453 p20 = 1.484341646128200e-04
455 p35 = 7.921446674311864e-12
456 p34 = -1.019028029546602e-09
457 p33 = 5.251986927351103e-08
458 p32 = -1.337841892062716e-06
459 p31 = 1.659454106237737e-05
460 p30 = -7.558911792344770e-05
462 p45 = -2.694370426850801e-10
463 p44 = 5.817362913967911e-08
464 p43 = -5.000813324746342e-06
465 p42 = 2.143803523428029e-04
466 p41 = -4.588070983722060e-03
467 p40 = 3.924356617245624e-02
469 p56 = -1.663918773476178e-13
470 p55 = 6.724854483077447e-11
471 p54 = -1.127030176632823e-08
472 p53 = 1.003683177025925e-06
473 p52 = -5.012618091180904e-05
474 p51 = 1.329762020689302e-03
475 p50 = -1.450062148367566e-02
477 p60 = 6.840803042788488e-05
479 if (uref >= 0.0 .and. uref < 5.9 )
then
481 elseif (uref >= 5.9 .and. uref <= 15.4)
then
482 znott = p15*uref**5 + p14*uref**4 + p13*uref**3 + p12*uref**2 + p11*uref + p10
483 elseif (uref > 15.4 .and. uref <= 21.6)
then
484 znott = p25*uref**5 + p24*uref**4 + p23*uref**3 + p22*uref**2 + p21*uref + p20
485 elseif (uref > 21.6 .and. uref <= 42.6)
then
486 znott = p35*uref**5 + p34*uref**4 + p33*uref**3 + p32*uref**2 + p31*uref + p30
487 elseif ( uref > 42.6 .and. uref <= 53.0)
then
488 znott = p45*uref**5 + p44*uref**4 + p43*uref**3 + p42*uref**2 + p41*uref + p40
489 elseif ( uref > 53.0 .and. uref <= 80.0)
then
490 znott = p56*uref**6 + p55*uref**5 + p54*uref**4 + p53*uref**3 + p52*uref**2 + p51*uref + p50
491 elseif ( uref > 80.0)
then
494 print*,
'Wrong input uref value:',uref
499 SUBROUTINE znot_m_v8(uref,znotm)
513 REAL,
INTENT(IN) :: uref
514 REAL,
INTENT(OUT):: znotm
515 REAL :: p13, p12, p11, p10
516 REAL :: p25, p24, p23, p22, p21, p20
517 REAL :: p35, p34, p33, p32, p31, p30
520 p13 = -1.296521881682694e-02
521 p12 = 2.855780863283819e-01
522 p11 = -1.597898515251717e+00
523 p10 = -8.396975715683501e+00
525 p25 = 3.790846746036765e-10
526 p24 = 3.281964357650687e-09
527 p23 = 1.962282433562894e-07
528 p22 = -1.240239171056262e-06
529 p21 = 1.739759082358234e-07
530 p20 = 2.147264020369413e-05
532 p35 = 1.897534489606422e-07
533 p34 = -3.019495980684978e-05
534 p33 = 1.931392924987349e-03
535 p32 = -6.797293095862357e-02
536 p31 = 1.346757797103756e+00
537 p30 = -1.707846930193362e+01
539 p40 = 3.886804744928044e-04
541 if (uref >= 0.0 .and. uref <= 6.5 )
then
542 znotm = exp( p10 + p11*uref + p12*uref**2 + p13*uref**3)
543 elseif (uref > 6.5 .and. uref <= 15.7)
then
544 znotm = p25*uref**5 + p24*uref**4 + p23*uref**3 + p22*uref**2 + p21*uref + p20
545 elseif (uref > 15.7 .and. uref <= 51.5)
then
546 znotm = exp( p35*uref**5 + p34*uref**4 + p33*uref**3 + p32*uref**2 + p31*uref + p30 )
547 elseif ( uref > 51.5)
then
550 print*,
'Wrong input uref value:',uref
555 SUBROUTINE znot_t_v8(uref,znott)
569 REAL,
INTENT(IN) :: uref
570 REAL,
INTENT(OUT):: znott
573 REAL :: p15, p14, p13, p12, p11, p10
574 REAL :: p25, p24, p23, p22, p21, p20
575 REAL :: p35, p34, p33, p32, p31, p30
576 REAL :: p45, p44, p43, p42, p41, p40
577 REAL :: p56, p55, p54, p53, p52, p51, p50
580 p00 = 1.100000000000000e-04
582 p15 = -9.193764479895316e-10
583 p14 = 7.052217518653943e-08
584 p13 = -2.163419217747114e-06
585 p12 = 3.342963077911962e-05
586 p11 = -2.633566691328004e-04
587 p10 = 8.644979973037803e-04
589 p25 = -9.402722450219142e-12
590 p24 = 1.325396583616614e-09
591 p23 = -7.299148051141852e-08
592 p22 = 1.982901461144764e-06
593 p21 = -2.680293455916390e-05
594 p20 = 1.484341646128200e-04
596 p35 = 7.921446674311864e-12
597 p34 = -1.019028029546602e-09
598 p33 = 5.251986927351103e-08
599 p32 = -1.337841892062716e-06
600 p31 = 1.659454106237737e-05
601 p30 = -7.558911792344770e-05
603 p45 = -2.706461188613193e-10
604 p44 = 5.845859022891930e-08
605 p43 = -5.027577045502003e-06
606 p42 = 2.156326523752734e-04
607 p41 = -4.617267288861201e-03
608 p40 = 3.951492707214883e-02
610 p56 = -1.112896580069263e-13
611 p55 = 4.450334755105140e-11
612 p54 = -7.375373918500171e-09
613 p53 = 6.493685149526543e-07
614 p52 = -3.206421106713471e-05
615 p51 = 8.407596231678149e-04
616 p50 = -9.027924333673693e-03
618 p60 = 5.791179079892191e-05
620 if (uref >= 0.0 .and. uref < 5.9 )
then
622 elseif (uref >= 5.9 .and. uref <= 15.4)
then
623 znott = p15*uref**5 + p14*uref**4 + p13*uref**3 + p12*uref**2 + p11*uref + p10
624 elseif (uref > 15.4 .and. uref <= 21.6)
then
625 znott = p25*uref**5 + p24*uref**4 + p23*uref**3 + p22*uref**2 + p21*uref + p20
626 elseif (uref > 21.6 .and. uref <= 42.6)
then
627 znott = p35*uref**5 + p34*uref**4 + p33*uref**3 + p32*uref**2 + p31*uref + p30
628 elseif ( uref > 42.6 .and. uref <= 51.5)
then
629 znott = p45*uref**5 + p44*uref**4 + p43*uref**3 + p42*uref**2 + p41*uref + p40
630 elseif ( uref > 51.5 .and. uref <= 80.0)
then
631 znott = p56*uref**6 + p55*uref**5 + p54*uref**4 + p53*uref**3 + p52*uref**2 + p51*uref + p50
632 elseif ( uref > 80.0)
then
635 print*,
'Wrong input uref value:',uref
640 SUBROUTINE znot_wind10m(w10m,znott,znotm,icoef_sf,errmsg,errflg)
648 REAL,
INTENT(IN) :: w10m
649 INTEGER,
INTENT(IN) :: icoef_sf
650 REAL,
INTENT(OUT):: znott, znotm
651 character(len=*),
intent(out) :: errmsg
652 integer,
intent(out) :: errflg
654 real :: zm,zt,windmks, zlev,z10, tmp, zlevt, aaa, zm1,zt1
664 if (windmks > 85.0) windmks=85.0
665 if (windmks < 1.0) windmks=1.0
666 if ( icoef_sf .EQ. 1)
then
667 call znot_m_v1(windmks,zm1)
668 call znot_t_v1(windmks,zt1)
670 else if ( icoef_sf .EQ. 0 )
then
671 call znot_m_v0(windmks,zm1)
672 call znot_t_v0(windmks,zt1)
674 else if( icoef_sf .EQ. 2 )
then
675 call znot_m_v1(windmks,zm1)
676 call znot_t_v2(windmks,zt1)
678 else if( icoef_sf .EQ. 3 )
then
679 call znot_m_v1(windmks,zm)
680 call znot_t_v2(windmks,zt)
682 tmp=0.4*0.4/(alog(zlev/zm))**2
683 zm1=z10/exp( sqrt(0.4*0.4/(tmp*0.95-0.0002)) )
685 tmp=0.4*0.4/(alog(zlevt/zm)*alog(zlevt/zt))
686 zt1=z10/exp( 0.4*0.4/( 0.95*tmp*alog(z10/zm1) ) )
688 else if( icoef_sf .EQ. 4 )
then
690 call znot_m_v1(windmks,zm)
691 call znot_t_v2(windmks,zt)
693 tmp=0.4*0.4/(alog(10.0/zm))**2
695 if (windmks < 20)
then
697 elseif(windmks < 45.0)
then
698 aaa=0.99+(windmks-20)*(0.75-0.99)/(45.0-20.0)
700 zm1=z10/exp( sqrt(0.4*0.4/(tmp*aaa)) )
702 tmp=0.4*0.4/(alog(zlevt/zm)*alog(zlevt/zt))
703 zt1=z10/exp( 0.4*0.4/( 0.95*tmp*alog(z10/zm1) ) )
705 else if( icoef_sf .EQ. 5 )
then
707 call znot_m_v1(windmks,zm)
708 call znot_t_v2(windmks,zt)
710 tmp=0.4*0.4/(alog(10.0/zm))**2
712 if (windmks < 20)
then
714 elseif(windmks < 45.0)
then
715 aaa=1.0+(windmks-20)*(0.80-1.0)/(45.0-20.0)
717 zm1=z10/exp( sqrt(0.4*0.4/(tmp*aaa)) )
719 tmp=0.4*0.4/(alog(zlevt/zm)*alog(zlevt/zt))
720 zt1=z10/exp( 0.4*0.4/( 1.0*tmp*alog(z10/zm1) ) )
722 else if( icoef_sf .EQ. 6 )
then
723 call znot_m_v6(windmks,zm1)
724 call znot_t_v6(windmks,zt1)
725 else if( icoef_sf .EQ. 7 )
then
726 call znot_m_v7(windmks,zm1)
727 call znot_t_v7(windmks,zt1)
728 else if( icoef_sf .EQ. 8 )
then
729 call znot_m_v8(windmks,zm1)
730 call znot_t_v8(windmks,zt1)
732 write(0,*)
'stop, icoef_sf must be one of 0,1,2,3,4,5,6,7,8'
734 errmsg =
'ERROR(znot_wind10m): icoef_sf must be one of 0,1,2,3,4,5,6,7,8'