The TELEMAC-MASCARET system  trunk
windiss1.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE windiss1
3 ! *****************
4  & (fwx, fwy, npoin2, xk, ndire, fs,nf)
5 ! SURFACE STRESS DUE TO WIND INPUT ENERGY AND WHITECAPPING
6 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7 !| FS |-->| VARIANCE DENSITY DIRECTIONAL SPECTRUM
8 !| FWX |<--| SURFACE STRESS DUE TO WIND ALONG X
9 !| FWY |<--| SURFACE STRESS DUE TO WIND ALONG Y
10 !| NF |-->| NUMBER OF FREQUENCIES
11 !| NDIRE |-->| NUMBER OF DIRECTIONS
12 !| NPOIN2 |-->| NUMBER OF POINTS IN 2D MESH
13 !| XK |-->| DISCRETIZED WAVE NUMBER
14 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
15 
17  & teta, betam, decal, xkappa, deupi, gravit, roair, roeau,
18  & twold, usold, z0old
19 !
20  IMPLICIT NONE
21 !
22  INTEGER, INTENT(IN) :: NPOIN2, NDIRE,NF
23  DOUBLE PRECISION, INTENT(IN) :: FS(npoin2,ndire,nf)
24  DOUBLE PRECISION, INTENT(IN) :: XK(npoin2,nf)
25  DOUBLE PRECISION, INTENT(INOUT) :: FWX(npoin2), FWY(npoin2)
26 !
27  DOUBLE PRECISION DTETAR, ZLOGMU, C1, CONST, SIGMA, AUX1, CPHAS
28  DOUBLE PRECISION XX, USO, OMEGA, BETAWIN
29  INTEGER IP, JF, JP
30  dtetar=deupi/dble(ndire)
31  DO ip=1,npoin2
32  fwx(ip) = 0.d0
33  fwy(ip) = 0.d0
34  ENDDO
35  !
36  c1 = deupi * (roair/roeau) * (betam/xkappa**2)
37 !.....LOOP ON THE DISCRETISED FREQUENCIES
38 ! """"""""""""""""""""""""""""""""""""""""""""
39  DO jf=1,nf
40 
41  const=c1*freq(jf)
42  sigma=deupi*freq(jf)
43  aux1=dfreq(jf)*dtetar
44 !
45 !.......LOOP ON THE DISCRETISED DIRECTIONS
46 ! """"""""""""""""""""""""""""""""""""""""""""
47  DO jp=1,ndire
48  DO ip=1,npoin2
49 !.......COMPUTES THE FREQUENCIES (OMEGA AND UETOILE/CPHASE)
50  cphas = deupi * freq(jf) / xk(ip,jf)
51  omega = gravit * z0old(ip) / cphas**2
52  uso = usold(ip) / cphas + decal
53  xx = uso * cos(teta(jp)-twold(ip))
54  zlogmu = log(omega) + xkappa/xx
55  IF(zlogmu.LT.0.d0) THEN
56  betawin = const*omega*exp(xkappa/xx)*
57  & zlogmu**4*xx**2
58  fwx(ip)=fwx(ip)+((xk(ip,jf)/sigma)*sintet(jp)
59  & *betawin*fs(ip,jp,jf))*aux1
60  fwy(ip)=fwy(ip)+((xk(ip,jf)/sigma)*costet(jp)
61  & *betawin*fs(ip,jp,jf))*aux1
62  ENDIF
63  ENDDO
64  ENDDO
65  ENDDO
66  RETURN
67  END
double precision, dimension(:), pointer sintet
double precision, dimension(:), pointer freq
double precision, dimension(:), pointer dfreq
subroutine windiss1(FWX, FWY, NPOIN2, XK, NDIRE, FS, NF)
Definition: windiss1.f:6
double precision, dimension(:), pointer costet