The TELEMAC-MASCARET system  trunk
fdissk.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE fdissk
3 ! *****************
4  & (fdk, npoin2, ndire,fs,ztel,nz,hsmjt,fznorm,nf)
5 ! WAVE-ENHANCED MIXING
6 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7 !| FS |-->| VARIANCE DENSITY DIRECTIONAL SPECTRUM
8 !| FDK |<--|
9 !| FZNORM WORK ARRAY
10 !| HSMJT WORK ARRAY
11 !| NF |-->| NUMBER OF FREQUENCIES
12 !| NDIRE |-->| NUMBER OF DIRECTIONS
13 !| NPOIN2 |-->| NUMBER OF POINTS IN 2D MESH
14 !| NZ |-->| NUMBER OF PLAN IN TELEMAC3D
15 !| XK |-->| DISCRETIZED WAVE NUMBER
16 !| ZTEL |-->| ELEVATION
17 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
18  USE bief
20  USE interface_tomawac, ex_fdissk => fdissk
21 
22  IMPLICIT NONE
23 
24 !.....VARIABLES IN ARGUMENT
25 ! """"""""""""""""""""
26  INTEGER, INTENT(IN) :: NZ
27  INTEGER, INTENT(IN) :: NPOIN2, NDIRE, NF
28  DOUBLE PRECISION, INTENT(IN) :: FS(npoin2,ndire,nf)
29  DOUBLE PRECISION, INTENT(IN) :: HSMJT(npoin2)
30  DOUBLE PRECISION, INTENT(INOUT) :: FDK(npoin2,nz)
31  DOUBLE PRECISION, INTENT(IN) :: ZTEL(npoin2,nz)
32  DOUBLE PRECISION, INTENT(INOUT) :: FZNORM(npoin2)
33 ! """""""""""""""""
34 !.....LOCAL VARIABLES
35 ! """""""""""""""""
36  INTEGER JP , JF , IP, INZ
37  DOUBLE PRECISION DTETAR, AUX1,AUXZ
38 !
39  deupi=6.283185307d0
40  IF (ndire.EQ.0) THEN
41  WRITE(lu,*) 'FDISSK : NDIRE DIR eq 0 '
42  CALL plante(1)
43  ENDIF
44  dtetar=deupi/dble(ndire)
45 
46  DO ip=1,npoin2
47  fznorm(ip) = 0.d0
48  DO inz=1,nz
49  fdk(ip,inz) = 0.d0
50  ENDDO
51  ENDDO
52 
53  DO ip=1,npoin2
54  DO inz=1,nz
55  auxz=(ztel(ip,nz)-ztel(ip,1))
56 !TYPE II
57  IF (hsmjt(ip) .NE.0) THEN
58  fznorm(ip)=fznorm(ip)+(1.d0-tanh(sqrt(2.d0)
59  & /(1.2d0*hsmjt(ip))*((depth(ip))-ztel(ip,inz)))
60  & **2.d0)*auxz
61  ENDIF
62 
63 !TYPE I
64 ! FZNORM(IP,NZ)=FZNORM(IP,NZ)+(COSH(SQRT(2.D0)
65 ! & /(1.2D0*HSMJT(IP))*(ZTEL(IP,INZ)-ZFJ(IP))))*AUXZ
66 
67  ENDDO
68  ENDDO
69 !
70  DO jp=1,ndire
71  DO jf=1,nf
72  aux1=dfreq(jf)*dtetar
73  DO ip=1,npoin2
74  IF (fznorm(ip).NE.0) THEN
75  DO inz=1,nz
76 ! type II shape
77  fdk(ip,inz)=fdk(ip,inz)+(0.03d0
78  & *(1.d0-tanh(sqrt(2.d0)/(1.2d0*hsmjt(ip))
79  & *((depth(ip))-ztel(ip,inz)))**2.d0)/fznorm(ip)
80  & *depth(ip)*hsmjt(ip)/sqrt(2.d0)*(fs(ip,jp,jf)*abs(betabr(ip))
81  & *gravit)**(1./3.))*aux1
82  ENDDO
83  ENDIF
84  ENDDO
85  ENDDO
86  ENDDO
87 
88 ! !
89 ! ! type I shape
90 
91 !
92 ! FDK(IP,INZ)=FDK(IP,INZ)+(0.03D0
93 ! & *(COSH(SQRT(2.D0)/(1.2D0*HSMJT(IP))
94 ! & *(ZTEL(IP,INZ)-ZFJ(IP))))/(FZNORM(IP,NZ))*DEPTH1(IP)
95 ! & *HSMJT(IP)/SQRT(2.D0)*(FS(IP,JP,JF)*ABS(BETA(IP))
96 ! & *GRAVIT)**(1./3.))*AUX1
97 
98  RETURN
99  END
double precision, dimension(:), pointer depth
double precision, dimension(:), pointer dfreq
double precision, dimension(:), pointer betabr
subroutine fdissk(FDK, NPOIN2, NDIRE, FS, ZTEL, NZ, HSMJT, FZNORM, NF)
Definition: fdissk.f:6
Definition: bief.f:3