6 |
|
|
7 |
SUBROUTINE tourpot(vcov, ucov, massebxy, vorpot) |
SUBROUTINE tourpot(vcov, ucov, massebxy, vorpot) |
8 |
|
|
9 |
! From LMDZ4/libf/dyn3d/tourpot.F, version 1.1.1.1 2004/05/19 12:53:06 |
! From LMDZ4/libf/dyn3d/tourpot.F, version 1.1.1.1, 2004/05/19 12:53:06 |
10 |
|
|
11 |
! Author: P. Le Van |
! Author: P. Le Van |
12 |
! Objet : calcul du tourbillon potentiel |
! Objet : calcul du tourbillon potentiel |
13 |
|
|
|
USE dimens_m, ONLY: iim, jjm, llm |
|
14 |
USE comgeom, ONLY: fext_2d |
USE comgeom, ONLY: fext_2d |
15 |
|
USE dimens_m, ONLY: iim, jjm, llm |
16 |
use filtreg_m, only: filtreg |
use filtreg_m, only: filtreg |
17 |
|
|
18 |
REAL, intent(in):: vcov(:, :, :) ! (iim + 1, jjm, llm) |
REAL, intent(in):: vcov(:, :, :) ! (iim + 1, jjm, llm) |
23 |
! = (Filtre(d(vcov)/dx - d(ucov)/dy) + fext) / massebxy |
! = (Filtre(d(vcov)/dx - d(ucov)/dy) + fext) / massebxy |
24 |
|
|
25 |
! Local: |
! Local: |
26 |
|
|
27 |
REAL rot(iim + 1, jjm, llm) |
REAL rot(iim + 1, jjm, llm) |
28 |
! relative vorticity multiplied by cell area, in m2 s-1 |
! relative vorticity multiplied by cell area, in m2 s-1 |
29 |
|
|
37 |
= vcov(i + 1, j, :) - vcov(i, j, :) + ucov(i, j + 1, :) - ucov(i, j, :) |
= vcov(i + 1, j, :) - vcov(i, j, :) + ucov(i, j + 1, :) - ucov(i, j, :) |
38 |
rot(iim + 1, :, :) = rot(1, :, :) |
rot(iim + 1, :, :) = rot(1, :, :) |
39 |
|
|
40 |
CALL filtreg(rot, jjm, llm, 2, 1, .FALSE.) |
CALL filtreg(rot, direct = .true., intensive = .true.) |
41 |
|
|
42 |
forall (l = 1: llm) vorpot(:iim, :, l) & |
forall (l = 1: llm) vorpot(:iim, :, l) & |
43 |
= (rot(:iim, :, l) + fext_2d(:iim, :)) / massebxy(:iim, :, l) |
= (rot(:iim, :, l) + fext_2d(:iim, :)) / massebxy(:iim, :, l) |