4 |
|
|
5 |
contains |
contains |
6 |
|
|
7 |
SUBROUTINE advect(ucov, vcov, teta, w, massebx, masseby, du, dv, dteta, & |
SUBROUTINE advect(ucov, vcov, teta, w, massebx, masseby, du, dv, dteta) |
|
conser) |
|
8 |
|
|
9 |
! From dyn3d/advect.F, version 1.1.1.1 2004/05/19 12:53:06 |
! From dyn3d/advect.F, version 1.1.1.1 2004/05/19 12:53:06 |
10 |
! Authors: P. Le Van , F. Hourdin |
! Authors: P. Le Van , F. Hourdin |
15 |
USE paramet_m, ONLY : iip1, iip2, ip1jm, ip1jmp1 |
USE paramet_m, ONLY : iip1, iip2, ip1jm, ip1jmp1 |
16 |
USE comconst, ONLY : daysec |
USE comconst, ONLY : daysec |
17 |
USE comgeom, ONLY : unsaire |
USE comgeom, ONLY : unsaire |
|
USE ener, ONLY : gtot |
|
18 |
|
|
19 |
! Arguments: |
! Arguments: |
20 |
REAL, intent(in):: vcov(ip1jm, llm), ucov(ip1jmp1, llm) |
REAL, intent(in):: vcov(ip1jm, llm), ucov(ip1jmp1, llm) |
22 |
REAL, intent(in):: massebx(ip1jmp1, llm), masseby(ip1jm, llm) |
REAL, intent(in):: massebx(ip1jmp1, llm), masseby(ip1jm, llm) |
23 |
real, INTENT (IN):: w(ip1jmp1, llm) |
real, INTENT (IN):: w(ip1jmp1, llm) |
24 |
REAL, intent(inout):: dv(ip1jm, llm), du(ip1jmp1, llm), dteta(ip1jmp1, llm) |
REAL, intent(inout):: dv(ip1jm, llm), du(ip1jmp1, llm), dteta(ip1jmp1, llm) |
|
LOGICAL, INTENT (IN):: conser |
|
25 |
|
|
26 |
! Local: |
! Local: |
27 |
REAL uav(ip1jmp1, llm), vav(ip1jm, llm), wsur2(ip1jmp1) |
REAL uav(ip1jmp1, llm), vav(ip1jm, llm), wsur2(ip1jmp1) |
28 |
REAL unsaire2(ip1jmp1) |
REAL ww, uu, vv |
|
REAL deuxjour, ww, uu, vv |
|
29 |
INTEGER ij, l |
INTEGER ij, l |
30 |
|
|
31 |
!----------------------------------------------------------------------- |
!----------------------------------------------------------------------- |
32 |
|
|
33 |
! 2. Calculs preliminaires : |
! 2. Calculs preliminaires : |
34 |
|
|
|
IF (conser) THEN |
|
|
deuxjour = 2. * daysec |
|
|
unsaire2 = unsaire**2 |
|
|
END IF |
|
|
|
|
35 |
! Calcul de \bar{u}^{yy} |
! Calcul de \bar{u}^{yy} |
36 |
DO l = 1, llm |
DO l = 1, llm |
37 |
DO ij = iip2, ip1jmp1 |
DO ij = iip2, ip1jmp1 |
99 |
dteta(ij, l) = dteta(ij, l) - ww |
dteta(ij, l) = dteta(ij, l) - ww |
100 |
dteta(ij, l + 1) = dteta(ij, l + 1) + ww |
dteta(ij, l + 1) = dteta(ij, l + 1) + ww |
101 |
end DO |
end DO |
|
|
|
|
IF (conser) THEN |
|
|
gtot(l) = deuxjour * sqrt(sum(wsur2**2 * unsaire2) / ip1jmp1) |
|
|
END IF |
|
102 |
END DO |
END DO |
103 |
|
|
104 |
END SUBROUTINE advect |
END SUBROUTINE advect |