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

Contents of /trunk/dyn3d/massbar.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 78 - (show annotations)
Wed Feb 5 17:51:07 2014 UTC (10 years, 3 months ago) by guez
Original Path: trunk/dyn3d/massbar.f90
File size: 1847 byte(s)
Moved procedure inigeom into module comgeom.

In disvert, renamed s_sampling to vert_sampling, following
LMDZ. Removed choice strato1. In case read, read ap and bp instead of
s (following LMDZ).

Added argument phis to start_init_orog and start_init_dyn, and removed
variable phis of module start_init_orog_m. In etat0 and
start_init_orog, renamed relief to zmea_2d. In start_init_dyn, renamed
psol to ps.

In start_init_orog, renamed relief_hi to relief. No need to set
phis(iim + 1, :) = phis(1, :), already done in grid_noro.

Documentation for massbar out of SVN, in massbar.txt. Documentation
was duplicated in massdair, but not relevant in massdair.

In conflx, no need to initialize pen_[ud] and pde_[ud]. In flxasc,
used intermediary variable fact (following LMDZ).

In grid_noro, added local variable zmea0 for zmea not smoothed and
computed zphi from zmea instead of zmea0 (following LMDZ). This
changes the results of ce0l.

Removed arguments pen_u and pde_d of phytrac and nflxtr, which were
not used.

1 SUBROUTINE massbar( masse, massebx, masseby )
2
3 ! From LMDZ4/libf/dyn3d/massbar.F,v 1.1.1.1 2004/05/19 12:53:05
4
5 !
6 ! **********************************************************************
7 !
8 ! Calcule les moyennes en x et y de la masse d'air dans chaque maille.
9 ! **********************************************************************
10 ! Auteurs : P. Le Van , Fr. Hourdin .
11 ! ..........
12 !
13 ! .. masse est un argum. d'entree pour le s-pg ...
14 ! .. massebx,masseby sont des argum. de sortie pour le s-pg ...
15 !
16 !
17 ! IMPLICIT NONE
18 !
19 use dimens_m
20 use paramet_m
21 use comconst
22 use comgeom
23 !
24 REAL masse( ip1jmp1,llm ), massebx( ip1jmp1,llm ) , &
25 masseby( ip1jm,llm )
26 !
27 !
28 ! Méthode pour calculer massebx et masseby. A chaque point scalaire
29 ! P(i, j) sont affectés quatre coefficients d'aire.
30
31 ! alpha1(i, j) calculé au point (i + 1/4, j - 1/4)
32 ! alpha2(i, j) calculé au point (i + 1/4, j + 1/4)
33 ! alpha3(i, j) calculé au point (i - 1/4, j + 1/4)
34 ! alpha4(i, j) calculé au point (i - 1/4, j - 1/4)
35
36 ! Avec alpha1(i, j) = aire(i + 1/4, j - 1/4)/ aire(i, j)
37
38 ! Pour plus de détails, voir sous-programme "iniconst" et
39 ! "massbar.txt".
40
41
42 DO l = 1 , llm
43 !
44 DO ij = 1, ip1jmp1 - 1
45 massebx(ij,l) = masse( ij, l) * alpha1p2( ij ) + &
46 masse(ij+1, l) * alpha3p4(ij+1 )
47 ENDDO
48
49 ! .... correction pour massebx( iip1,j) .....
50 ! ... massebx(iip1,j)= massebx(1,j) ...
51 !
52 !DIR$ IVDEP
53 DO ij = iip1, ip1jmp1, iip1
54 massebx( ij,l ) = massebx( ij - iim,l )
55 ENDDO
56
57
58 DO ij = 1,ip1jm
59 masseby( ij,l ) = masse( ij , l ) * alpha2p3( ij ) + &
60 masse(ij+iip1, l ) * alpha1p4( ij+iip1 )
61 ENDDO
62
63 end DO
64
65 END SUBROUTINE massbar

  ViewVC Help
Powered by ViewVC 1.1.21