The TELEMAC-MASCARET system  trunk
qbrek1.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE qbrek1
3 ! *****************
4 !
5  & ( tstot , f , fcar , varian, nf , ndire , npoin2)
6 !
7 !***********************************************************************
8 ! TOMAWAC V6P1 23/06/2011
9 !***********************************************************************
10 !
11 !brief COMPUTES THE CONTRIBUTION OF THE DEPTH-INDUCED
12 !+ BREAKING SOURCE TERM BASED ON BATTJES AND JANSSEN (1978).
13 !
14 !note THIS SOURCE TERM IS LINEAR IN F(FREQ,TETA), AND THE LINEAR
15 !+ COEFFICIENT DOES NOT VARY WITH TIME.
16 !
17 !reference BATTJES AND JANSSEN (1978) :
18 !+ "ENERGY LOSS AND SET-UP DUE TO BREAKING
19 !+ OF RANDOM WAVES". ICCE'78.
20 !
21 !history F. BECQ; M. BENOIT (EDF/DER/LNH)
22 !+ 14/02/96
23 !+ V1P1
24 !+
25 !
26 !history OPTIMER
27 !+ 14/06/2001
28 !+ V5P2
29 !+
30 !
31 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
32 !+ 13/07/2010
33 !+ V6P0
34 !+ Translation of French comments within the FORTRAN sources into
35 !+ English comments
36 !
37 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
38 !+ 21/08/2010
39 !+ V6P0
40 !+ Creation of DOXYGEN tags for automated documentation and
41 !+ cross-referencing of the FORTRAN sources
42 !
43 !history G.MATTAROLO (EDF - LNHE)
44 !+ 23/06/2011
45 !+ V6P1
46 !+ Translation of French names of the variables in argument
47 !
48 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
49 !| ALFABJ |-->| COEFFICIENT ALPHA OF BJ MODEL
50 !| F |-->| DIRECTIONAL SPECTRUM
51 !| FCAR |-->| CHARACTERISTIC FREQUENCY
52 !| GAMBJ1 |-->| GAMMA1 CONSTANT OF WAVE BREAKING BJ MODEL
53 !| GAMBJ2 |-->| GAMMA2 CONSTANT OF WAVE BREAKING BJ MODEL
54 !| IHMBJ |-->| DEPTH-INDUCED BREAKING CRITERIUM GIVING THE
55 !| | | BREAKING WAVE HEIGHT
56 !| IQBBJ |-->| SELECTED QB COMPUTATION METHOD FOR BJ MODEL
57 !| NF |-->| NUMBER OF FREQUENCIES
58 !| NDIRE |-->| NUMBER OF DIRECTIONS
59 !| NPOIN2 |-->| NUMBER OF POINTS IN 2D MESH
60 !| TSTOT |<->| TOTAL PART OF THE SOURCE TERM CONTRIBUTION
61 !| VARIAN |-->| SPECTRUM VARIANCE
62 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
63 !
65  & ihmbj, depth, betabr
66 
67  USE interface_tomawac, ex_qbrek1 => qbrek1
68  IMPLICIT NONE
69 !
70 !.....VARIABLES IN ARGUMENT
71 ! """"""""""""""""""""
72  INTEGER, INTENT(IN) :: NF, NDIRE, NPOIN2
73  DOUBLE PRECISION, INTENT(IN) :: F(npoin2,ndire,nf)
74  DOUBLE PRECISION, INTENT(IN) :: VARIAN(npoin2),FCAR(npoin2)
75  DOUBLE PRECISION, INTENT(INOUT):: TSTOT(npoin2,ndire,nf)
76 !
77 !.....LOCAL VARIABLES
78 ! """""""""""""""""
79  INTEGER JP , IFF , IP
80  DOUBLE PRECISION COEF , HM , XK8 , XKCAR , B , QB , SEUIL
81 !
82 !.....EXTERNAL FUNCTIONS
83 ! """"""""""""""""""
84 ! DOUBLE PRECISION QBBJ78
85 ! EXTERNAL QBBJ78
86 !
87 !
88  seuil=1.d-6
89  coef =-.25d0*alfabj
90 !
91 !.....COMPUTES THE LINEAR COEFFICIENT BETABR: QBREK1 = BETABR * F
92 ! """""""""""""""""""""""""""""""""""""""""""""""""""""""
93  DO ip = 1,npoin2
94  IF (varian(ip).GT.seuil) THEN
95 !
96 !..........COMPUTES THE MAXIMUM WAVE HEIGHT
97 ! """""""""""""""""""""""""""""""""""""""
98  IF(ihmbj.EQ.1) THEN
99  hm = gambj2*depth(ip)
100  ELSEIF(ihmbj.EQ.2) THEN
101  CALL wnscou(xkcar,fcar(ip),depth(ip))
102  xk8 = gambj1/xkcar
103  hm = xk8*tanh(gambj2*depth(ip)/xk8)
104  ENDIF
105 !
106 !..........COMPUTES THE FRACTION OF BREAKING WAVES
107 ! """"""""""""""""""""""""""""""""""""""""""""
108  b = sqrt(8.d0*varian(ip))/hm
109  qb = qbbj78(b,iqbbj)
110 !
111  betabr(ip) = coef*qb*fcar(ip)*hm**2/varian(ip)
112  ELSE
113  betabr(ip) = 0.d0
114  ENDIF
115 !
116 !.....TAKES THE SOURCE TERM INTO ACCOUNT
117 ! """"""""""""""""""""""""""""""""
118  DO iff = 1,nf
119  DO jp = 1,ndire
120  tstot(ip,jp,iff) = tstot(ip,jp,iff)+betabr(ip)*f(ip,jp,iff)
121  ENDDO ! JP
122  ENDDO ! IFF
123  ENDdo!IP
124 !
125  RETURN
126  END
subroutine qbrek1(TSTOT, F, FCAR, VARIAN, NF, NDIRE, NPOIN2)
Definition: qbrek1.f:7
double precision function qbbj78(B, IQBBJ)
Definition: qbbj78.f:7
subroutine wnscou(CK2, FREQ, DEPTH)
Definition: wnscou.f:7