source: trunk/LMDZ.GENERIC/libf/dyn3d/massbar.F @ 1422

Last change on this file since 1422 was 1422, checked in by milmd, 10 years ago

In GENERIC, MARS and COMMON models replace some include files by modules (usefull for decoupling physics with dynamics).

File size: 2.8 KB
Line 
1      SUBROUTINE massbar(  masse, massebx, masseby )
2c
3c **********************************************************************
4c
5c  Calcule les moyennes en x et  y de la masse d'air dans chaque maille.
6c **********************************************************************
7c    Auteurs : P. Le Van , Fr. Hourdin  .
8c   ..........
9c
10c  ..  masse                 est  un argum. d'entree  pour le s-pg ...
11c  ..  massebx,masseby      sont des argum. de sortie pour le s-pg ...
12c     
13c
14c     IMPLICIT NONE
15c
16#include "dimensions.h"
17#include "paramet.h"
18#include "comgeom.h"
19c
20      REAL    masse( ip1jmp1,llm ), massebx( ip1jmp1,llm )  ,
21     *      masseby(   ip1jm,llm )
22c
23c
24c   Methode pour calculer massebx et masseby .
25c   ----------------------------------------
26c
27c    A chaque point scalaire P (i,j) est affecte 4 coefficients d'aires
28c       alpha1(i,j)  calcule  au point ( i+1/4,j-1/4 )
29c       alpha2(i,j)  calcule  au point ( i+1/4,j+1/4 )
30c       alpha3(i,j)  calcule  au point ( i-1/4,j+1/4 )
31c       alpha4(i,j)  calcule  au point ( i-1/4,j-1/4 )
32c
33c    Avec  alpha1(i,j) = aire(i+1/4,j-1/4)/ aire(i,j)       
34c
35c    N.B .  Pour plus de details, voir s-pg  ...  iniconst ...
36c
37c
38c
39c   alpha4 .         . alpha1    . alpha4
40c    (i,j)             (i,j)       (i+1,j)
41c
42c             P .        U .          . P
43c           (i,j)       (i,j)         (i+1,j)
44c
45c   alpha3 .         . alpha2    .alpha3
46c    (i,j)              (i,j)     (i+1,j)
47c
48c             V .        Z .          . V
49c           (i,j)
50c
51c   alpha4 .         . alpha1    .alpha4
52c   (i,j+1)            (i,j+1)   (i+1,j+1)
53c
54c             P .        U .          . P
55c          (i,j+1)                    (i+1,j+1)
56c
57c
58c
59c                       On  a :
60c
61c    massebx(i,j) = masse(i  ,j) * ( alpha1(i  ,j) + alpha2(i,j))   +
62c                   masse(i+1,j) * ( alpha3(i+1,j) + alpha4(i+1,j) )
63c     localise  au point  ... U (i,j) ...
64c
65c    masseby(i,j) = masse(i,j  ) * ( alpha2(i,j  ) + alpha3(i,j  )  +
66c                   masse(i,j+1) * ( alpha1(i,j+1) + alpha4(i,j+1) 
67c     localise  au point  ... V (i,j) ...
68c
69c
70c=======================================================================
71
72      DO   100    l = 1 , llm
73c
74        DO  ij = 1, ip1jmp1 - 1
75         massebx(ij,l) =  masse( ij, l) * alpha1p2( ij  )     +
76     *                   masse(ij+1, l) * alpha3p4(ij+1 )
77        ENDDO
78
79c    .... correction pour massebx( iip1,j) .....
80c    ...    massebx(iip1,j)= massebx(1,j) ...
81c
82CDIR$ IVDEP
83        DO  ij = iip1, ip1jmp1, iip1
84         massebx( ij,l ) = massebx( ij - iim,l )
85        ENDDO
86
87
88         DO  ij = 1,ip1jm
89         masseby( ij,l ) = masse(  ij   , l ) * alpha2p3(   ij    )  +
90     *                     masse(ij+iip1, l ) * alpha1p4( ij+iip1 )
91         ENDDO
92
93100   CONTINUE
94c
95      RETURN
96      END
Note: See TracBrowser for help on using the repository browser.