source: LMDZ.3.3/trunk/libf/dyn3d/massdair.F @ 2

Last change on this file since 2 was 2, checked in by lmdz, 25 years ago

Initial revision

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
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 "comconst.h"
20#include "comgeom.h"
21c
22c  .....   arguments  ....
23c
24      REAL p(ip1jmp1,llmp1), masse(ip1jmp1,llm)
25
26c   ....  Variables locales  .....
27
28      INTEGER l,ij
29      REAL massemoyn, massemoys
30
31      REAL SSUM
32      EXTERNAL SSUM
33c
34c
35c   Methode pour calculer massebx et masseby .
36c   ----------------------------------------
37c
38c    A chaque point scalaire P (i,j) est affecte 4 coefficients d'aires
39c       alpha1(i,j)  calcule  au point ( i+1/4,j-1/4 )
40c       alpha2(i,j)  calcule  au point ( i+1/4,j+1/4 )
41c       alpha3(i,j)  calcule  au point ( i-1/4,j+1/4 )
42c       alpha4(i,j)  calcule  au point ( i-1/4,j-1/4 )
43c
44c    Avec  alpha1(i,j) = aire(i+1/4,j-1/4)/ aire(i,j)       
45c
46c    N.B .  Pour plus de details, voir s-pg  ...  iniconst ...
47c
48c
49c
50c   alpha4 .         . alpha1    . alpha4
51c    (i,j)             (i,j)       (i+1,j)
52c
53c             P .        U .          . P
54c           (i,j)       (i,j)         (i+1,j)
55c
56c   alpha3 .         . alpha2    .alpha3
57c    (i,j)              (i,j)     (i+1,j)
58c
59c             V .        Z .          . V
60c           (i,j)
61c
62c   alpha4 .         . alpha1    .alpha4
63c   (i,j+1)            (i,j+1)   (i+1,j+1)
64c
65c             P .        U .          . P
66c          (i,j+1)                    (i+1,j+1)
67c
68c
69c
70c                       On  a :
71c
72c    massebx(i,j) = masse(i  ,j) * ( alpha1(i  ,j) + alpha2(i,j))   +
73c                   masse(i+1,j) * ( alpha3(i+1,j) + alpha4(i+1,j) )
74c     localise  au point  ... U (i,j) ...
75c
76c    masseby(i,j) = masse(i,j  ) * ( alpha2(i,j  ) + alpha3(i,j  )  +
77c                   masse(i,j+1) * ( alpha1(i,j+1) + alpha4(i,j+1) 
78c     localise  au point  ... V (i,j) ...
79c
80c
81c=======================================================================
82
83      DO   100    l = 1 , llm
84c
85        DO    ij     = 1, ip1jmp1
86         masse(ij,l) = airesurg(ij) * ( p(ij,l) - p(ij,l+1) )
87        ENDDO
88c
89        DO   ij = 1, ip1jmp1,iip1
90         masse(ij+ iim,l) = masse(ij,l)
91        ENDDO
92c
93c       DO    ij     = 1,  iim
94c        masse(   ij   ,l) = masse(   ij   ,l) * aire(  ij    )
95c        masse(ij+ip1jm,l) = masse(ij+ip1jm,l) * aire(ij+ip1jm)
96c       ENDDO
97c        massemoyn         = SSUM(iim,masse(   1   ,l),1)/ apoln
98c        massemoys         = SSUM(iim,masse(ip1jm+1,l),1)/ apols
99c       DO    ij     = 1, iip1
100c        masse(   ij   ,l )    = massemoyn
101c        masse(ij+ip1jm,l )    = massemoys
102c       ENDDO
103       
104100   CONTINUE
105c
106      RETURN
107      END
Note: See TracBrowser for help on using the repository browser.