!-------------------------------------- LICENCE BEGIN ------------------------------------
!Environment Canada - Atmospheric Science and Technology License/Disclaimer,
! version 3; Last Modified: May 7, 2008.
!This is free but copyrighted software; you can use/redistribute/modify it under the terms
!of the Environment Canada - Atmospheric Science and Technology License/Disclaimer
!version 3 or (at your option) any later version that should be found at:
!http://collaboration.cmc.ec.gc.ca/science/rpn.comm/license.html
!
!This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
!without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
!See the above mentioned License/Disclaimer for more details.
!You should have received a copy of the License/Disclaimer along with this software;
!if not, you can write to: EC-RPN COMM Group, 2121 TransCanada, suite 500, Dorval (Quebec),
!CANADA, H9P 1J3; or send e-mail to service.rpn@ec.gc.ca
!-------------------------------------- LICENCE END --------------------------------------
*** S/P SLTOP_UV
*
#include "phy_macros_f.h"
subroutine sltop_uv(nss,dudz,dvdz,angtop,angmax,,3
1 utop,vtop,ztop,z0,ilmo,h,lat,n)
*
IMPLICIT NONE
REAL NSS(N),DUDZ(N),DVDZ(N),ANGTOP(N),
1 UTOP(N),VTOP(N),ZTOP(N),Z0(N),ILMO(N),H(N),LAT(N)
*
*Author
* Yves Delage (Oct 2003)
*
*Revision
*
*Object
* Calculates the surface stress and the slopes of the wind
* component profiles at the top of the surface layer (SL)
*
*Arguments
*
* - Output -
* NSS normalised surface stress
* DUDZ slope of the U component of wind profile at top of SL
* DVDZ slope of the V component of wind profile at top of SL
* ANGTOP wind direction at top of SL
* ANGMAX maximum wind direction change between surface and H
*
* - Input -
* UTOP U component of wind at the top of surface layer
* VTOP V component of wind at the top of surface layer
* ZTOP height of the top of the surface layer
* Z0 roughness length for wind
* ILMO inverse of MONIN-OBUKHOV lenth
* H height of boundary layer (for stable case only)
* LAT latitude in radians
* N number of horizontal points to process
*
INTEGER N,J
*
*****************************************************************
* AUTOMATIC ARRAYS
AUTOMATIC ( FM , REAL , (N) )
*****************************************************************
REAL AS,ASX,CI,BS,BETA,FACTN,HMIN,ANGMAX,SPEED,ZI,RAC3
*
#include "surfcon_ini.cdk"
*
call slfun_uv
(fm,ztop,z0,ilmo,h,n)
DO J=1,N
speed=sqrt(utop(j)**2+vtop(j)**2)
angtop(j)=atan2(vtop(j),sign(abs(utop(j))+1.e-05,utop(j)))
zi=1./(ztop(j)+z0(j))
nss(j)=speed/fm(j)
dudz(j)=nss(j)*phim
(ztop(j),ilmo(j),h(j))*cos(angtop(j))*zi
1 + speed*sin(angtop(j))*angmax*sin(lat(j))/h(j)
dvdz(j)=nss(j)*phim
(ztop(j),ilmo(j),h(j))*sin(angtop(j))*zi
1 - speed*cos(angtop(j))*angmax*sin(lat(j))/h(j)
END DO
*
return
CONTAINS
#include "deriv_stabfunc.cdk"
end