source: LMDZ4/branches/V3_test/libf/phylmd/moyglo_aire.F @ 3947

Last change on this file since 3947 was 704, checked in by Laurent Fairhead, 18 years ago

Inclusion des modifs de Y. Meurdesoif pour la version V3
LF

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.5 KB
RevLine 
[644]1      SUBROUTINE moyglo_pondaire(nhori, champ, aire,
2     .            ok_msk, msk, moyglo)
3c
[704]4       USE dimphy
[644]5       IMPLICIT none
6c
7c ==================================================================
8c I. Musat, 07.2004
9c
10c Calcul moyenne globale ponderee par l'aire totale, avec ou sans masque
11c
12c moyenne = Somme_(champ* aire)/Somme_aire
13c
14c ==================================================================
15c
16#include "dimensions.h"
[704]17cym#include "dimphy.h"
[644]18       INTEGER i, nhori
19       REAL champ(klon), aire(klon), msk(klon)
20       LOGICAL ok_msk
21       REAL moyglo
22c
23c var locale
24       REAL airetot
25c
26c      PRINT*,'moyglo_pondaire nhori',nhori
27c
28       airetot=0.
29       moyglo=0.
30c
31       IF(ok_msk) THEN
32        DO i=1, nhori
33c        IF(msk(i).EQ.1.) THEN
34         IF(msk(i).GT.0.) THEN
35c
36c aire totale
37          airetot=airetot+aire(i)*msk(i)
38c
39c ponderation par la masse
40          moyglo=moyglo+champ(i)* aire(i)*msk(i)
41         ENDIF
42        ENDDO
43c
44       ELSE !ok_msk
45        DO i=1, nhori
46c
47c aire totale
48          airetot=airetot+aire(i)
49c
50c ponderation par la masse
51          moyglo=moyglo+champ(i)* aire(i)
52        ENDDO
53c
54       ENDIF
55c
56c moyenne ponderee par l'aire
57       moyglo=moyglo/airetot
58c
59       RETURN
60       END
61c
62       SUBROUTINE moyglo_pondaima(nhori, nvert, champ,
63     . aire, pbord, moyglo)
[704]64       USE dimphy
[644]65       IMPLICIT none
66c ==================================================================
67c I. Musat, 07.2004
68c
69c Calcul moyenne globale ponderee par la masse d'air, divisee par l'aire
70c totale avec ou sans masque
71c
72c moyenne = Somme_(champ* masse_dair)/Somme_aire
73c
74c ==================================================================
75#include "dimensions.h"
[704]76cym#include "dimphy.h"
[644]77#include "YOMCST.h"
78       INTEGER i, k, nhori, nvert
79       REAL champ(klon,klev), aire(klon)
80       REAL pbord(klon,klev+1)
81       REAL moyglo
82c
83c var locale
84       REAL airetot
85c
86c      PRINT*,'moyglo_pondaima RG, nhori, nvert',RG,nhori,nvert
87c
88c ponderation par la masse
89       moyglo=0.
90       DO k=1, nvert
91       DO i=1, nhori
92        moyglo=moyglo+
93     .  champ(i,k)*(pbord(i,k)-pbord(i,k+1))/RG*aire(i)
94       ENDDO
95       ENDDO
96c
97c aire totale
98       airetot=0.
99       DO i=1, nhori
100        airetot=airetot+aire(i)
101       ENDDO
102c
103c moyenne par mettre carre avec ponderation par la masse
104       moyglo=moyglo/airetot
105c
106      RETURN
107      END
108c
109       SUBROUTINE moyglo_pondmass(nhori, nvert, champ,
110     . aire, pbord, moyglo)
[704]111       USE dimphy
[644]112       IMPLICIT none
113c ==================================================================
114c I. Musat, 07.2004
115c
116c Calcul moyenne globale ponderee par la masse d'air, divisee par la
117c masse totale d'air, avec ou sans masque
118c
119c moyenne = Somme_(champ* masse_dair)/Somme_(masse_dair)
120c
121c ==================================================================
122#include "dimensions.h"
[704]123cym#include "dimphy.h"
[644]124#include "YOMCST.h"
125       INTEGER i, k, nhori, nvert
126       REAL champ(klon,klev), aire(klon)
127       REAL pbord(klon,klev+1)
128       REAL moyglo
129c
130c var locale
131       REAL massetot
132c
133c      PRINT*,'moyglo_pondmass RG, nhori, nvert',RG,nhori,nvert
134c
135c ponderation par la masse
136       moyglo=0.
137       DO k=1, nvert
138       DO i=1, nhori
139        moyglo=moyglo+
140     .  champ(i,k)*(pbord(i,k)-pbord(i,k+1))/RG*aire(i)
141       ENDDO
142       ENDDO
143c
144c masse totale
145       massetot=0.
146       DO k=1, nvert
147       DO i=1, nhori
148        massetot=massetot+
149     .  (pbord(i,k)-pbord(i,k+1))/RG*aire(i)
150       ENDDO
151       ENDDO
152c
153c moyenne par mettre carre avec ponderation par la masse
154       moyglo=moyglo/massetot
155c
156      RETURN
157      END
158c
Note: See TracBrowser for help on using the repository browser.