source: trunk/LMDZ.GENERIC/libf/dyn3d/massdair.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: 3.0 KB
Line 
1      SUBROUTINE massdair( p, masse )
2c
3c *********************************************************************
4c       ....  Calcule la masse d'air  dans chaque maille   ....
5c *********************************************************************
6c
7c    Auteurs : P. Le Van , Fr. Hourdin  .
8c   ..........
9c
10c  ..    p                      est  un argum. d'entree pour le s-pg ...
11c  ..  masse                    est un  argum.de sortie pour le s-pg ...
12c     
13c  ....  p est defini aux interfaces des llm couches   .....
14c
15      IMPLICIT NONE
16c
17#include "dimensions.h"
18#include "paramet.h"
19#include "comgeom.h"
20c
21c  .....   arguments  ....
22c
23      REAL p(ip1jmp1,llmp1), masse(ip1jmp1,llm)
24
25c   ....  Variables locales  .....
26
27      INTEGER l,ij
28      REAL massemoyn, massemoys
29
30      REAL SSUM
31      EXTERNAL SSUM
32c
33c
34c   Methode pour calculer massebx et masseby .
35c   ----------------------------------------
36c
37c    A chaque point scalaire P (i,j) est affecte 4 coefficients d'aires
38c       alpha1(i,j)  calcule  au point ( i+1/4,j-1/4 )
39c       alpha2(i,j)  calcule  au point ( i+1/4,j+1/4 )
40c       alpha3(i,j)  calcule  au point ( i-1/4,j+1/4 )
41c       alpha4(i,j)  calcule  au point ( i-1/4,j-1/4 )
42c
43c    Avec  alpha1(i,j) = aire(i+1/4,j-1/4)/ aire(i,j)       
44c
45c    N.B .  Pour plus de details, voir s-pg  ...  iniconst ...
46c
47c
48c
49c   alpha4 .         . alpha1    . alpha4
50c    (i,j)             (i,j)       (i+1,j)
51c
52c             P .        U .          . P
53c           (i,j)       (i,j)         (i+1,j)
54c
55c   alpha3 .         . alpha2    .alpha3
56c    (i,j)              (i,j)     (i+1,j)
57c
58c             V .        Z .          . V
59c           (i,j)
60c
61c   alpha4 .         . alpha1    .alpha4
62c   (i,j+1)            (i,j+1)   (i+1,j+1)
63c
64c             P .        U .          . P
65c          (i,j+1)                    (i+1,j+1)
66c
67c
68c
69c                       On  a :
70c
71c    massebx(i,j) = masse(i  ,j) * ( alpha1(i  ,j) + alpha2(i,j))   +
72c                   masse(i+1,j) * ( alpha3(i+1,j) + alpha4(i+1,j) )
73c     localise  au point  ... U (i,j) ...
74c
75c    masseby(i,j) = masse(i,j  ) * ( alpha2(i,j  ) + alpha3(i,j  )  +
76c                   masse(i,j+1) * ( alpha1(i,j+1) + alpha4(i,j+1) 
77c     localise  au point  ... V (i,j) ...
78c
79c
80c=======================================================================
81
82      DO   100    l = 1 , llm
83c
84        DO    ij     = 1, ip1jmp1
85         masse(ij,l) = airesurg(ij) * ( p(ij,l) - p(ij,l+1) )
86        ENDDO
87c
88        DO   ij = 1, ip1jmp1,iip1
89         masse(ij+ iim,l) = masse(ij,l)
90        ENDDO
91c
92c       DO    ij     = 1,  iim
93c        masse(   ij   ,l) = masse(   ij   ,l) * aire(  ij    )
94c        masse(ij+ip1jm,l) = masse(ij+ip1jm,l) * aire(ij+ip1jm)
95c       ENDDO
96c        massemoyn         = SSUM(iim,masse(   1   ,l),1)/ apoln
97c        massemoys         = SSUM(iim,masse(ip1jm+1,l),1)/ apols
98c       DO    ij     = 1, iip1
99c        masse(   ij   ,l )    = massemoyn
100c        masse(ij+ip1jm,l )    = massemoys
101c       ENDDO
102       
103100   CONTINUE
104c
105      RETURN
106      END
Note: See TracBrowser for help on using the repository browser.