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

Contents of /trunk/dyn3d/massdair.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 76 - (show annotations)
Fri Nov 15 18:45:49 2013 UTC (10 years, 6 months ago) by guez
Original Path: trunk/dyn3d/massdair.f90
File size: 1320 byte(s)
Moved everything out of libf.
1 module massdair_m
2
3 IMPLICIT NONE
4
5 contains
6
7 SUBROUTINE massdair(p, masse)
8
9 ! From LMDZ4/libf/dyn3d/massdair.F, version 1.1.1.1 2004/05/19 12:53:07
10
11 ! Calcule la masse d'air dans chaque maille.
12 ! Auteurs : P. Le Van , F. Hourdin.
13
14 ! Méthode pour calculer massebx et masseby. A chaque point
15 ! scalaire P(i, j) sont affectés quatre coefficients d'aires.
16
17 ! alpha1(i, j) calculé au point (i + 1/4, j - 1/4)
18 ! alpha2(i, j) calculé au point (i + 1/4, j + 1/4)
19 ! alpha3(i, j) calculé au point (i - 1/4, j + 1/4)
20 ! alpha4(i, j) calculé au point (i - 1/4, j - 1/4)
21
22 ! Avec alpha1(i, j) = aire(i + 1/4, j - 1/4)/ aire(i, j)
23
24 ! Pour plus de détails, voir sous-programme "iniconst" et
25 ! "massdair.txt".
26
27 USE comgeom, ONLY: airesurg
28 USE dimens_m, ONLY: iim, llm
29 USE paramet_m, ONLY: iip1, ip1jmp1, llmp1
30
31 REAL, intent(in):: p(ip1jmp1, llmp1) ! aux interfaces des llm couches
32 real, intent(out):: masse(ip1jmp1, llm)
33
34 ! Variables locales
35 INTEGER l, ij
36
37 !----------------------------------------------------------
38
39 DO l = 1 , llm
40 masse(:, l) = airesurg(:) * (p(:, l) - p(:, l + 1))
41
42 DO ij = 1, ip1jmp1, iip1
43 masse(ij + iim, l) = masse(ij, l)
44 ENDDO
45 end DO
46
47 END SUBROUTINE massdair
48
49 end module massdair_m

  ViewVC Help
Powered by ViewVC 1.1.21