The TELEMAC-MASCARET system  trunk
moudiss1.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE moudiss1
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  &deupi, varian, fmoy, xkmoy, cmout1, cmout2, gravit, proinf
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, SIGMA, AUX, BETAMOU, TAUX1
28  DOUBLE PRECISION AUX1, C1, C2
29  INTEGER IP, JF, JP
30  dtetar=deupi/dble(ndire)
31  c1 = - cmout1*deupi**9/gravit**4
32  c2 = - cmout1*deupi
33  IF (proinf) THEN
34 !
35 ! INFINITE WATER DEPTH (USES F).
36 
37 !.....LOOP ON THE DISCRETISED FREQUENCIES
38 ! """"""""""""""""""""""""""""""""""""""""""""
39  DO jf=1,nf
40  sigma=deupi*freq(jf)
41  aux1=dfreq(jf)*dtetar
42  DO ip=1,npoin2
43  aux = (freq(jf)/fmoy(ip))**2
44  taux1=c1 * varian(ip)**2 * fmoy(ip)**9
45  betamou=taux1*aux*(1.d0-cmout2+cmout2*aux)
46  DO jp=1,ndire
47  fwx(ip)=fwx(ip)+((xk(ip,jf)/sigma)*sintet(jp)
48  & *betamou*fs(ip,jp,jf))*aux1
49  fwy(ip)=fwy(ip)+((xk(ip,jf)/sigma)*costet(jp)
50  & *betamou*fs(ip,jp,jf))*aux1
51  ENDDO
52  ENDDO
53  ENDDO
54  ELSE
55 ! FINITE WATER DEPTH (USES K).
56  DO jf=1,nf
57  sigma=deupi*freq(jf)
58  aux1=dfreq(jf)*dtetar
59  DO ip=1,npoin2
60  aux = xk(ip,jf) / xkmoy(ip)
61  taux1 = c2 * varian(ip)**2 * fmoy(ip) * xkmoy(ip)**4
62  betamou=taux1*aux*(1.d0-cmout2+cmout2*aux)
63  DO jp=1,ndire
64  fwx(ip)=fwx(ip)+((xk(ip,jf)/sigma)*sintet(jp)
65  & *betamou*fs(ip,jp,jf))*aux1
66  fwy(ip)=fwy(ip)+((xk(ip,jf)/sigma)*costet(jp)
67  & *betamou*fs(ip,jp,jf))*aux1
68  ENDDO
69  ENDDO
70  ENDDO
71  ENDIF
72  RETURN
73  END
double precision, dimension(:), pointer sintet
double precision, dimension(:), pointer freq
subroutine moudiss1(FWX, FWY, NPOIN2, XK, NDIRE, FS, NF)
Definition: moudiss1.f:6
double precision, dimension(:), pointer dfreq
double precision, dimension(:), pointer costet