1 |
|
2305 |
SUBROUTINE massbar(masse,massebx,masseby) |
2 |
|
|
! |
3 |
|
|
!------------------------------------------------------------------------------- |
4 |
|
|
! Authors: P. Le Van , Fr. Hourdin. |
5 |
|
|
!------------------------------------------------------------------------------- |
6 |
|
|
! Purpose: Compute air mass mean along X and Y in each cell. |
7 |
|
|
! See iniconst for more details. |
8 |
|
|
IMPLICIT NONE |
9 |
|
|
include "dimensions.h" |
10 |
|
|
include "paramet.h" |
11 |
|
|
include "comgeom.h" |
12 |
|
|
!=============================================================================== |
13 |
|
|
! Arguments: |
14 |
|
|
REAL, INTENT(IN) :: masse (ip1jmp1,llm) |
15 |
|
|
REAL, INTENT(OUT) :: massebx(ip1jmp1,llm) |
16 |
|
|
REAL, INTENT(OUT) :: masseby(ip1jm ,llm) |
17 |
|
|
!------------------------------------------------------------------------------- |
18 |
|
|
! Method used. Each scalar point is associated to 4 area coefficients: |
19 |
|
|
! * alpha1(i,j) at point ( i+1/4,j-1/4 ) |
20 |
|
|
! * alpha2(i,j) at point ( i+1/4,j+1/4 ) |
21 |
|
|
! * alpha3(i,j) at point ( i-1/4,j+1/4 ) |
22 |
|
|
! * alpha4(i,j) at point ( i-1/4,j-1/4 ) |
23 |
|
|
! where alpha1(i,j) = aire(i+1/4,j-1/4)/ aire(i,j) |
24 |
|
|
! |
25 |
|
|
! alpha4 . . alpha1 . alpha4 |
26 |
|
|
! (i,j) (i,j) (i+1,j) |
27 |
|
|
! |
28 |
|
|
! P . U . . P |
29 |
|
|
! (i,j) (i,j) (i+1,j) |
30 |
|
|
! |
31 |
|
|
! alpha3 . . alpha2 .alpha3 |
32 |
|
|
! (i,j) (i,j) (i+1,j) |
33 |
|
|
! |
34 |
|
|
! V . Z . . V |
35 |
|
|
! (i,j) |
36 |
|
|
! |
37 |
|
|
! alpha4 . . alpha1 .alpha4 |
38 |
|
|
! (i,j+1) (i,j+1) (i+1,j+1) |
39 |
|
|
! |
40 |
|
|
! P . U . . P |
41 |
|
|
! (i,j+1) (i+1,j+1) |
42 |
|
|
! |
43 |
|
|
! |
44 |
|
|
! massebx(i,j) = masse(i ,j) * ( alpha1(i ,j) + alpha2(i,j)) + |
45 |
|
|
! masse(i+1,j) * ( alpha3(i+1,j) + alpha4(i+1,j) ) |
46 |
|
|
! localized at point ... U (i,j) ... |
47 |
|
|
! |
48 |
|
|
! masseby(i,j) = masse(i,j ) * ( alpha2(i,j ) + alpha3(i,j ) + |
49 |
|
|
! masse(i,j+1) * ( alpha1(i,j+1) + alpha4(i,j+1) |
50 |
|
|
! localized at point ... V (i,j) ... |
51 |
|
|
!=============================================================================== |
52 |
|
|
! Local variables: |
53 |
|
|
INTEGER :: ij, l |
54 |
|
|
!=============================================================================== |
55 |
✓✓ |
92200 |
DO l=1,llm |
56 |
✓✓ |
97895655 |
DO ij=1,ip1jmp1-1 |
57 |
|
97895655 |
massebx(ij,l)=masse(ij,l)*alpha1p2(ij)+masse(ij+1 ,l)*alpha3p4(ij+1) |
58 |
|
|
END DO |
59 |
✓✓ |
2966535 |
DO ij=iip1,ip1jmp1,iip1; massebx(ij,l)=massebx(ij-iim,l); END DO |
60 |
✓✓ |
95021320 |
DO ij=1,ip1jm |
61 |
|
95019015 |
masseby(ij,l)=masse(ij,l)*alpha2p3(ij)+masse(ij+iip1,l)*alpha1p4(ij+iip1) |
62 |
|
|
END DO |
63 |
|
|
END DO |
64 |
|
|
|
65 |
|
2305 |
END SUBROUTINE massbar |
66 |
|
|
|