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

Annotation of /trunk/dyn3d/massdair.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3 - (hide 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 guez 3 !
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