Home > air_sea > cdnve.m

cdnve

PURPOSE ^

CDNVE: computes neutral drag coefficient following Vera (1983).

SYNOPSIS ^

function [cd,u10]=cdnve(sp,z)

DESCRIPTION ^

 CDNVE: computes neutral drag coefficient following Vera (1983).
 [cd,u10]=CDNVE(sp,z) computes the neutral drag coefficient and wind 
 speed at 10m given the wind speed at height z.  Uses the expression 
 for friction velocity derived by E. Vera (1983) and published as 
 eqn. 8 in Large, Morzel, and Crawford (1995), J. Phys. Oceanog., 25,
 2959-2971. Range of fit to data is 1 to 25 m/s.

 INPUT:   sp - wind speed  [m/s]
          z - measurement height  [m]

 OUTPUT:  cd - neutral drag coefficient at 10m
          u10 - wind speed at 10m  [m/s]

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function [cd,u10]=cdnve(sp,z)
0002 % CDNVE: computes neutral drag coefficient following Vera (1983).
0003 % [cd,u10]=CDNVE(sp,z) computes the neutral drag coefficient and wind
0004 % speed at 10m given the wind speed at height z.  Uses the expression
0005 % for friction velocity derived by E. Vera (1983) and published as
0006 % eqn. 8 in Large, Morzel, and Crawford (1995), J. Phys. Oceanog., 25,
0007 % 2959-2971. Range of fit to data is 1 to 25 m/s.
0008 %
0009 % INPUT:   sp - wind speed  [m/s]
0010 %          z - measurement height  [m]
0011 %
0012 % OUTPUT:  cd - neutral drag coefficient at 10m
0013 %          u10 - wind speed at 10m  [m/s]
0014 
0015 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0016 % 3/8/97: version 1.0
0017 % 8/26/98: version 1.1 (modified by RP)
0018 % 8/5/99: version 2.0
0019 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0020 
0021 % constants in fit for drag coefficient
0022 A=2.717e-3;
0023 B=0.142e-3;
0024 C=0.0764e-3;
0025 
0026 as_consts;           % other constants
0027 a=log(z./10)/kappa;  % log-layer correction factor
0028 tol=.001;            % tolerance for iteration (m/s)
0029 
0030 u10o=zeros(size(sp))+.1;  % don't start iteration at 0 to prevent blowups.
0031 cd=(A./u10o + B + C*u10o);
0032 
0033 u10=sp./(1+a.*sqrt(cd));
0034 
0035 ii=abs(u10-u10o)>tol;
0036 while any(ii(:)),
0037   u10o=u10;
0038   cd=(A./u10o + B + C*u10o);
0039   u10=sp./(1+a.*sqrt(cd));   % next iteration
0040   ii=abs(u10-u10o)>tol;      % keep going until iteration converges
0041 end;
0042 
0043

Generated on Thu 26-Apr-2007 12:23:13 by m2html © 2003