Home > utilities > sigma_gen.m

sigma_gen

PURPOSE ^

SYNOPSIS ^

function dist = sigma_gen(nlev,dl,du,kl,ku,zkl,zku,h,hmin)

DESCRIPTION ^

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function dist = sigma_gen(nlev,dl,du,kl,ku,zkl,zku,h,hmin)
0002 
0003 
0004  
0005   if(h < hmin)
0006     z(1) = 0.0;
0007     dl2=0.001;
0008     du2=0.001;
0009     for k=1:nlev-1
0010       x1 = dl2+du2;
0011       x1 = x1*double(nlev-1-k)/double(nlev-1);
0012       x1 = x1 - dl2;
0013       x1 = tanh(x1);
0014       x2 = tanh(dl2);
0015       x3 = x2+tanh(du2);
0016       z(k+1) = (x1+x2)/x3-1.0;  
0017     end;
0018   else;
0019     %dr=(h-sum(zku)-sum(zkl))/h/double(nlev-ku-kl-1);
0020     dr=(h-du-dl)/h/double(nlev-ku-kl-1);
0021     z(1) = 0.0;
0022  
0023     for k=2:ku+1 
0024        z(k) = z(k-1)-zku(k-1)/h;
0025   %     fprintf('building z %f %f %f %f \n',z(k),zku(k-1),h,zku(k-1)/h)
0026     end;
0027 
0028     for k=ku+2:nlev-kl
0029       z(k)=z(k-1)-dr;
0030   %     fprintf('building z %f %f \n',z(k),dr)
0031     end;
0032 
0033     kk = 0;
0034     for k=nlev-kl+1:nlev
0035       kk=kk+1;
0036       z(k)=z(k-1)-zkl(kk)/h;
0037   %     fprintf('building z %f %f \n',z(k),zkl(kk))
0038     end;   
0039   end;
0040   dist = z;

Generated on Mon 04-Feb-2013 14:22:28 by m2html © 2005