The TELEMAC-MASCARET system  trunk
tautot.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE tautot
3 ! *****************
4 !
5  &( taut , uvent , tauw , seuil ,
6  & itr , itrmin, itrmax)
7 !
8 !***********************************************************************
9 ! TOMAWAC V6P1 28/06/2011
10 !***********************************************************************
11 !
12 !brief COMPUTES THE TOTAL STRESS FROM THE WIND VELOCITY
13 !+ UVENT AT THE ELEVATION ZVENT (IN PRINCIPLE ZVENT=10 M)
14 !+ AND FROM THE WAVE STRESS TAUW.
15 !+
16 !+ THEORY DEVELOPED BY JANSSEN (1989 AND 1991) AND USED
17 !+ IN WAM-CYCLE 4 (SUBROUTINE STRESS OF PREPROC).
18 !
19 !note TAUT IS COMPUTED FROM UVENT AND TAUW (SOLVES THE EQUATION
20 !+ IMPLICITLY USING AN ITERATIVE METHOD - NEWTON).
21 !
22 !reference JANSSEN P.A.E.M (1989) :
23 !+ "WIND-INDUCED STRESS AND THE DRAG OF AIR FLOW
24 !+ OVER SEA WAVES". JPO, VOL 19, PP 745-754.
25 !reference JANSSEN P.A.E.M (1991) :
26 !+ "QUASI-LINEAR THEORY OF WIND-WAVE GENERATION
27 !+ APPLIED TO WAVE FORECASTING". JPO, VOL 21, PP 1631-1642.
28 !
29 !history M. BENOIT (EDF/DER/LNH)
30 !+ 25/04/95
31 !+ V1P0
32 !+
33 !
34 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
35 !+ 13/07/2010
36 !+ V6P0
37 !+ Translation of French comments within the FORTRAN sources into
38 !+ English comments
39 !
40 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
41 !+ 21/08/2010
42 !+ V6P0
43 !+ Creation of DOXYGEN tags for automated documentation and
44 !+ cross-referencing of the FORTRAN sources
45 !
46 !history G.MATTAROLO (EDF - LNHE)
47 !+ 28/06/2011
48 !+ V6P1
49 !+ Translation of French names of the variables in argument
50 !
51 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
52 !| ITR |<--| NOMBRE D'ITERATIONS EFFECTUES
53 !| ITRMAX |-->| MAXIMUM NUMBER OF ITERATIONS
54 !| ITRMIN |-->| MINIMUM NUMBER OF ITERATIONS
55 !| SEUIL |-->| CONVERGENCY THRESHOLD - NEWTON METHOD
56 !| TAUT |<--| TOTAL STRESS
57 !| TAUW |-->| STRESS DUE TO THE WAVES
58 !| UVENT |-->| WIND SPEED AT HEIGHT ZVENT
59 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
60 !
62  & zvent
63  USE interface_tomawac, ex_tautot => tautot
64  IMPLICIT NONE
65 !
66 !.....VARIABLES IN ARGUMENT
67 ! """"""""""""""""""""
68  INTEGER, INTENT(IN) :: ITRMIN, ITRMAX
69  INTEGER, INTENT(INOUT) :: ITR
70  DOUBLE PRECISION, INTENT(IN) :: UVENT , TAUW
71  DOUBLE PRECISION, INTENT(IN) :: SEUIL
72  DOUBLE PRECISION, INTENT(INOUT) :: TAUT
73 ! Variables in TOMAWAC MODULE
74 ! XKAPPA VON KARMAN CONSTANT
75 ! ALPHA CHARNOCK CONSTANT
76 ! ZVENT ELEVATION FOR WIND MEASUREMENTS
77 !
78 !.....LOCAL VARIABLES
79 ! """""""""""""""""
80  DOUBLE PRECISION TAUMIN, XNUAIR, AUX , USTO , TAUO , TAUN
81  DOUBLE PRECISION USTN , X , ZE , DIFF , FOLD , DFOLD
82 !
83  itr =0
84  taumin=1.d-5
85  xnuair=1.d-5
86 !
87 !.....INITIAL VALUES
88 ! """"""""""""""""""
89  usto =uvent*sqrt(cdrag)
90  tauo =max(usto**2,tauw+taumin)
91  190 CONTINUE
92  itr = itr+1
93 !
94 !.....ITERATION BY THE METHOD OF NEWTON
95 ! """""""""""""""""""""""""""""""""""
96  usto = sqrt(tauo)
97  x = tauw/tauo
98  IF(abs(1.d0-x).LT.1.d-30) THEN
99  WRITE(lu,*) 'IN ROUTINE TAUTOT I DIVIDE BY 1-X'
100  WRITE(lu,*) 'AND X=',x,' WIND MODELE =1 ?'
101  WRITE(lu,*) 'MAY BE YOU CAN TRY WITH MODELE=2 ?'
102  CALL plante(3)
103  stop
104  ENDIF
105  ze = max(0.1d0*xnuair/usto,alpha*tauo/(gravit*sqrt(1.d0-x)))
106  aux = log(zvent/ze)
107  fold = usto-xkappa*uvent/aux
108  dfold = 1.d0-2.d0*xkappa*uvent*(1.d0-1.5d0*x)/aux**2/usto/(1.d0-x)
109  ustn = usto-fold/dfold
110  taun = max(ustn**2,tauw+taumin)
111 !
112 !.....CONVERGENCE CRITERIA
113 ! """"""""""""""""""""""""
114  diff=abs(taun-tauo)/tauo
115  tauo=taun
116  IF (itr.LT.itrmin) GOTO 190
117  IF ((diff.GT.seuil).AND.(itr.LT.itrmax)) GOTO 190
118 !
119 !.....APPLIES THE SOLUTION
120 ! """""""""""""""""""""""""""""""""""
121  taut=taun
122 !
123  RETURN
124  END
subroutine tautot(TAUT, UVENT, TAUW, SEUIL, ITR, ITRMIN, ITRMAX)
Definition: tautot.f:8