/[lmdze]/trunk/dyn3d/massdair.f
ViewVC logotype

Contents of /trunk/dyn3d/massdair.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3 - (show annotations)
Wed Feb 27 13:16:39 2008 UTC (16 years, 2 months ago) by guez
Original Path: trunk/libf/dyn3d/massdair.f
File size: 2785 byte(s)
Initial import
1 !
2 ! $Header: /home/cvsroot/LMDZ4/libf/dyn3d/massdair.F,v 1.1.1.1 2004/05/19 12:53:07 lmdzadmin Exp $
3 !
4 SUBROUTINE massdair( p, masse )
5 c
6 c *********************************************************************
7 c .... Calcule la masse d'air dans chaque maille ....
8 c *********************************************************************
9 c
10 c Auteurs : P. Le Van , Fr. Hourdin .
11 c ..........
12 c
13 c .. p est un argum. d'entree pour le s-pg ...
14 c .. masse est un argum.de sortie pour le s-pg ...
15 c
16 c .... p est defini aux interfaces des llm couches .....
17 c
18 use dimens_m
19 use paramet_m
20 use comconst
21 use comgeom, only: airesurg
22 IMPLICIT NONE
23 c
24 c
25 c ..... arguments ....
26 c
27 REAL,intent(in):: p(ip1jmp1,llmp1)
28 real masse(ip1jmp1,llm)
29
30 c .... Variables locales .....
31
32 INTEGER l,ij
33 REAL massemoyn, massemoys
34
35 REAL SSUM
36 c
37 c
38 c Methode pour calculer massebx et masseby .
39 c ----------------------------------------
40 c
41 c A chaque point scalaire P (i,j) est affecte 4 coefficients d'aires
42 c alpha1(i,j) calcule au point ( i+1/4,j-1/4 )
43 c alpha2(i,j) calcule au point ( i+1/4,j+1/4 )
44 c alpha3(i,j) calcule au point ( i-1/4,j+1/4 )
45 c alpha4(i,j) calcule au point ( i-1/4,j-1/4 )
46 c
47 c Avec alpha1(i,j) = aire(i+1/4,j-1/4)/ aire(i,j)
48 c
49 c N.B . Pour plus de details, voir s-pg ... iniconst ...
50 c
51 c
52 c
53 c alpha4 . . alpha1 . alpha4
54 c (i,j) (i,j) (i+1,j)
55 c
56 c P . U . . P
57 c (i,j) (i,j) (i+1,j)
58 c
59 c alpha3 . . alpha2 .alpha3
60 c (i,j) (i,j) (i+1,j)
61 c
62 c V . Z . . V
63 c (i,j)
64 c
65 c alpha4 . . alpha1 .alpha4
66 c (i,j+1) (i,j+1) (i+1,j+1)
67 c
68 c P . U . . P
69 c (i,j+1) (i+1,j+1)
70 c
71 c
72 c
73 c On a :
74 c
75 c massebx(i,j) = masse(i ,j) * ( alpha1(i ,j) + alpha2(i,j)) +
76 c masse(i+1,j) * ( alpha3(i+1,j) + alpha4(i+1,j) )
77 c localise au point ... U (i,j) ...
78 c
79 c masseby(i,j) = masse(i,j ) * ( alpha2(i,j ) + alpha3(i,j ) +
80 c masse(i,j+1) * ( alpha1(i,j+1) + alpha4(i,j+1)
81 c localise au point ... V (i,j) ...
82 c
83 c
84 c=======================================================================
85
86 CC print *, "Call sequence information: massdair"
87 DO 100 l = 1 , llm
88 c
89 DO ij = 1, ip1jmp1
90 masse(ij,l) = airesurg(ij) * ( p(ij,l) - p(ij,l+1) )
91 ENDDO
92 c
93 DO ij = 1, ip1jmp1,iip1
94 masse(ij+ iim,l) = masse(ij,l)
95 ENDDO
96 100 CONTINUE
97 c
98 RETURN
99 END

  ViewVC Help
Powered by ViewVC 1.1.21