The TELEMAC-MASCARET system  trunk
windiss2.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE windiss2
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 ! *****************
16 
18  & teta, deupi, roair, roeau, usdpi,
19  & twold, usold
20 !
21  IMPLICIT NONE
22 !
23  INTEGER, INTENT(IN) :: NPOIN2, NDIRE,NF
24  DOUBLE PRECISION, INTENT(IN) :: FS(npoin2,ndire,nf)
25  DOUBLE PRECISION, INTENT(IN) :: XK(npoin2,nf)
26  DOUBLE PRECISION, INTENT(INOUT) :: FWX(npoin2), FWY(npoin2)
27 !
28  DOUBLE PRECISION DTETAR, C1, CONST, AUX1, COEPHAS
29  DOUBLE PRECISION USO, SIGMA, BETAWIN, DIREC,SURDEUPIFREQ
30  INTEGER IP, JF, JP
31  dtetar=deupi/dble(ndire)
32  DO ip=1,npoin2
33  fwx(ip) = 0.d0
34  fwy(ip) = 0.d0
35  ENDDO
36  c1 = 0.25d0 * (roair/roeau) * deupi
37 
38 !.....LOOP ON THE DISCRETISED FREQUENCIES
39 ! """"""""""""""""""""""""""""""""""""""""""""
40  DO jf=1,nf
41 
42  const=c1*freq(jf)
43  surdeupifreq=usdpi/freq(jf)
44  aux1=dfreq(jf)*dtetar
45  sigma=deupi*freq(jf)
46 !
47 !.......LOOP ON THE DISCRETISED DIRECTIONS
48 ! """"""""""""""""""""""""""""""""""""""""""""
49  DO jp=1,ndire
50  direc=teta(jp)
51  DO ip=1,npoin2
52 !.......COMPUTES THE FREQUENCIES (OMEGA AND UETOILE/CPHASE)
53  uso=28.d0*usold(ip)*cos(direc-twold(ip))
54  coephas = xk(ip,jf)*surdeupifreq
55  betawin = max(uso*coephas-1.d0,0.d0)*const
56 
57  fwx(ip)=fwx(ip)+((xk(ip,jf)/sigma)*sintet(jp)
58  & *betawin*fs(ip,jp,jf))*aux1
59  fwy(ip)=fwy(ip)+((xk(ip,jf)/sigma)*costet(jp)
60  & *betawin*fs(ip,jp,jf))*aux1
61  ENDDO
62  ENDDO
63  ENDDO
64  RETURN
65  END
double precision, dimension(:), pointer sintet
double precision, dimension(:), pointer freq
double precision, dimension(:), pointer dfreq
subroutine windiss2(FWX, FWY, NPOIN2, XK, NDIRE, FS, NF)
Definition: windiss2.f:6
double precision, dimension(:), pointer costet