4 |
|
|
5 |
contains |
contains |
6 |
|
|
7 |
SUBROUTINE vitvert(convm, w) |
pure function vitvert(convm) |
8 |
|
|
9 |
! From libf/dyn3d/vitvert.F, version 1.1.1.1, 2004/05/19 12:53:05 |
! From libf/dyn3d/vitvert.F, version 1.1.1.1, 2004/05/19 12:53:05 |
10 |
! Authors: P. Le Van, F. Hourdin |
! Authors: P. Le Van, F. Hourdin |
11 |
|
|
12 |
! Objet : calcul de la vitesse verticale aux niveaux sigma |
! Purpose: Compute vertical speed at sigma levels. |
13 |
|
|
14 |
! La vitesse verticale est orientée de haut en bas. Au sol, au |
! Vertical speed is oriented from bottom to top. At ground-level |
15 |
! niveau sigma(1), w(i, j, 1) = 0. Au sommet, au niveau |
! sigma(1): vitvert(i, j, 1) = 0. At top-level sigma(llm + 1), vertical |
16 |
! sigma(llm+1), la vitesse verticale est aussi égale à 0 et n'est |
! speed is 0 too and is not stored in vitvert. |
17 |
! pas stockée dans le tableau w. |
|
18 |
|
USE dimensions, ONLY : llm |
|
USE dimens_m, ONLY : llm |
|
19 |
USE disvert_m, ONLY : bp |
USE disvert_m, ONLY : bp |
|
USE paramet_m, ONLY : ip1jmp1 |
|
20 |
|
|
21 |
real, intent(in):: convm(ip1jmp1, llm) |
real, intent(in):: convm(:, :, :) ! (iim + 1, jjm + 1, llm) |
22 |
REAL, intent(out):: w(ip1jmp1, llm) |
REAL vitvert(size(convm, 1), size(convm, 2), size(convm, 3)) |
23 |
|
|
24 |
! Local: |
! Local: |
25 |
INTEGER l |
INTEGER l |
26 |
|
|
27 |
!------------------------------------------------------ |
!------------------------------------------------------ |
28 |
|
|
29 |
forall (l = 2: llm) w(:, l) = convm(:, l) - bp(l) * convm(:, 1) |
forall (l = 2: llm) & |
30 |
w(:, 1) = 0. |
vitvert(:, :, l) = convm(:, :, l) - bp(l) * convm(:, :, 1) |
31 |
|
vitvert(:, :, 1) = 0. |
32 |
|
|
33 |
END SUBROUTINE vitvert |
END function vitvert |
34 |
|
|
35 |
end module vitvert_m |
end module vitvert_m |