The TELEMAC-MASCARET system  trunk
ustar1.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE ustar1
3 ! *****************
4 !
5  &( ustar , z0 , tauwav, npoin2)
6 !
7 !***********************************************************************
8 ! TOMAWAC V6P1 29/06/2011
9 !***********************************************************************
10 !
11 !brief COMPUTES THE FRICTION VELOCITY AND ROUGHNESS LENGTH
12 !+ FOR ALL THE NODES IN THE 2D MESH.
13 !+ BASED ON JANSSEN (1989, 1991).
14 !
15 !note COMPUTES TAUT FROM UVENT AND TAUW IN SUBROUTINE 'TAUTOT'.
16 !
17 !reference JANSSEN P.A.E.M (1989) :
18 !+ "WIND-INDUCED STRESS AND THE DRAG OF AIR
19 !+ FLOW OVER SEA WAVES". JPO, VOL 19, PP 745-754.
20 !reference JANSSEN P.A.E.M (1991) :
21 !+ "QUASI-LINEAR THEORY OF WIND-WAVE GENERATION
22 !+ APPLIED TO WAVE FORECASTING". JPO, VOL 21, PP 1631-1642.
23 !
24 !history M. BENOIT (EDF/DER/LNH)
25 !+ 25/04/95
26 !+ V1P0
27 !+
28 !
29 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
30 !+ 13/07/2010
31 !+ V6P0
32 !+ Translation of French comments within the FORTRAN sources into
33 !+ English comments
34 !
35 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
36 !+ 21/08/2010
37 !+ V6P0
38 !+ Creation of DOXYGEN tags for automated documentation and
39 !+ cross-referencing of the FORTRAN sources
40 !
41 !history G.MATTAROLO (EDF - LNHE)
42 !+ 29/06/2011
43 !+ V6P1
44 !+ Translation of French names of the variables in argument
45 !
46 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
47 !| NPOIN2 |-->| NUMBER OF POINTS IN 2D MESH
48 !| TAUWAV |-->| STRESS DUE TO WAVES
49 !| USTAR |<--| FRICTION VELOCITY
50 !| Z0 |<--| SURFACE ROUGHNESS LENGTH
51 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
52 !
53  USE interface_tomawac, ex_ustar1 => ustar1
54  USE declarations_tomawac, ONLY : gravit, alpha, uv, vv
55  IMPLICIT NONE
56 !
57 !.....VARIABLES IN ARGUMENT
58 ! """"""""""""""""""""
59  INTEGER, INTENT(IN) :: NPOIN2
60  DOUBLE PRECISION, INTENT(IN) :: TAUWAV(npoin2)
61  DOUBLE PRECISION, INTENT(INOUT) :: USTAR(npoin2), Z0(npoin2)
62 !
63 !.....LOCAL VARIABLES
64 ! """""""""""""""""
65  INTEGER ITRMIN, ITRMAX, ITR , IP
66  DOUBLE PRECISION TAUT , UVENT , TAUW , USMIN , SEUIL , X
67  DOUBLE PRECISION USTEMP
68 !
69 !
70  usmin =1.d-6
71  seuil =1.d-7
72  itrmin=1
73  itrmax=15
74 !
75 !.....MAIN LOOP ON THE NODES OF THE 2D MESH
76 ! """""""""""""""""""""""""""""""""""""""""""""""""""""
77  DO ip=1,npoin2
78 !
79 !.......COMPUTES THE TOTAL STRESS
80 ! """""""""""""""""""""""""""""""
81  uvent=sqrt(uv(ip)**2+vv(ip)**2)
82  tauw =tauwav(ip)
83  CALL tautot
84  &( taut , uvent , tauw , seuil ,
85  & itr , itrmin, itrmax)
86 !
87 !.......COMPUTES THE FRICTION VELOCITY
88 ! """""""""""""""""""""""""""""""""""
89  ustar(ip)=sqrt(taut)
90 !
91 !.......COMPUTES TEH ROUGHNESS LENGTH
92 ! """"""""""""""""""""""""""""""""""
93  ustemp=max(ustar(ip),usmin)
94  x =min(tauwav(ip)/ustemp**2,0.999d0)
95  z0(ip)=alpha*ustemp**2/(gravit*sqrt(1.d0-x))
96 !
97  ENDDO
98 !
99  RETURN
100  END
double precision, dimension(:), pointer uv
subroutine ustar1(USTAR, Z0, TAUWAV, NPOIN2)
Definition: ustar1.f:7
subroutine tautot(TAUT, UVENT, TAUW, SEUIL, ITR, ITRMIN, ITRMAX)
Definition: tautot.f:8
double precision, dimension(:), pointer vv