LMDZ
moyglo_aire.F90
Go to the documentation of this file.
1 
2 ! $Id: moyglo_aire.F90 2346 2015-08-21 15:13:46Z emillour $
3 
4 SUBROUTINE moyglo_pondaire(nhori, champ, aire, ok_msk, msk, moyglo)
5 
6  USE dimphy
7  IMPLICIT NONE
8 
9  ! ==================================================================
10  ! I. Musat, 07.2004
11 
12  ! Calcul moyenne globale ponderee par l'aire totale, avec ou sans masque
13 
14  ! moyenne = Somme_(champ* aire)/Somme_aire
15 
16  ! ==================================================================
17 
18  INTEGER i, nhori
19  REAL champ(klon), aire(klon), msk(klon)
20  LOGICAL ok_msk
21  REAL moyglo
22 
23  ! var locale
24  REAL airetot
25 
26  ! PRINT*,'moyglo_pondaire nhori',nhori
27 
28  airetot = 0.
29  moyglo = 0.
30 
31  IF (ok_msk) THEN
32  DO i = 1, nhori
33  ! IF(msk(i).EQ.1.) THEN
34  IF (msk(i)>0.) THEN
35 
36  ! aire totale
37  airetot = airetot + aire(i)*msk(i)
38 
39  ! ponderation par la masse
40  moyglo = moyglo + champ(i)*aire(i)*msk(i)
41  END IF
42  END DO
43 
44  ELSE !ok_msk
45  DO i = 1, nhori
46 
47  ! aire totale
48  airetot = airetot + aire(i)
49 
50  ! ponderation par la masse
51  moyglo = moyglo + champ(i)*aire(i)
52  END DO
53 
54  END IF
55 
56  ! moyenne ponderee par l'aire
57  moyglo = moyglo/airetot
58 
59  RETURN
60 END SUBROUTINE moyglo_pondaire
61 
62 SUBROUTINE moyglo_pondaima(nhori, nvert, champ, aire, pbord, moyglo)
63  USE dimphy
64  IMPLICIT NONE
65  ! ==================================================================
66  ! I. Musat, 07.2004
67 
68  ! Calcul moyenne globale ponderee par la masse d'air, divisee par l'aire
69  ! totale avec ou sans masque
70 
71  ! moyenne = Somme_(champ* masse_dair)/Somme_aire
72 
73  ! ==================================================================
74  include "YOMCST.h"
75  INTEGER i, k, nhori, nvert
76  REAL champ(klon, klev), aire(klon)
77  REAL pbord(klon, klev+1)
78  REAL moyglo
79 
80  ! var locale
81  REAL airetot
82 
83  ! PRINT*,'moyglo_pondaima RG, nhori, nvert',RG,nhori,nvert
84 
85  ! ponderation par la masse
86  moyglo = 0.
87  DO k = 1, nvert
88  DO i = 1, nhori
89  moyglo = moyglo + champ(i, k)*(pbord(i,k)-pbord(i,k+1))/rg*aire(i)
90  END DO
91  END DO
92 
93  ! aire totale
94  airetot = 0.
95  DO i = 1, nhori
96  airetot = airetot + aire(i)
97  END DO
98 
99  ! moyenne par mettre carre avec ponderation par la masse
100  moyglo = moyglo/airetot
101 
102  RETURN
103 END SUBROUTINE moyglo_pondaima
104 
105 SUBROUTINE moyglo_pondmass(nhori, nvert, champ, aire, pbord, moyglo)
106  USE dimphy
107  IMPLICIT NONE
108  ! ==================================================================
109  ! I. Musat, 07.2004
110 
111  ! Calcul moyenne globale ponderee par la masse d'air, divisee par la
112  ! masse totale d'air, avec ou sans masque
113 
114  ! moyenne = Somme_(champ* masse_dair)/Somme_(masse_dair)
115 
116  ! ==================================================================
117  include "YOMCST.h"
118  INTEGER i, k, nhori, nvert
119  REAL champ(klon, klev), aire(klon)
120  REAL pbord(klon, klev+1)
121  REAL moyglo
122 
123  ! var locale
124  REAL massetot
125 
126  ! PRINT*,'moyglo_pondmass RG, nhori, nvert',RG,nhori,nvert
127 
128  ! ponderation par la masse
129  moyglo = 0.
130  DO k = 1, nvert
131  DO i = 1, nhori
132  moyglo = moyglo + champ(i, k)*(pbord(i,k)-pbord(i,k+1))/rg*aire(i)
133  END DO
134  END DO
135 
136  ! masse totale
137  massetot = 0.
138  DO k = 1, nvert
139  DO i = 1, nhori
140  massetot = massetot + (pbord(i,k)-pbord(i,k+1))/rg*aire(i)
141  END DO
142  END DO
143 
144  ! moyenne par mettre carre avec ponderation par la masse
145  moyglo = moyglo/massetot
146 
147  RETURN
148 END SUBROUTINE moyglo_pondmass
149 
subroutine moyglo_pondaire(nhori, champ, aire, ok_msk, msk, moyglo)
Definition: moyglo_aire.F90:5
integer, save klon
Definition: dimphy.F90:3
subroutine moyglo_pondmass(nhori, nvert, champ, aire, pbord, moyglo)
integer, save klev
Definition: dimphy.F90:7
subroutine moyglo_pondaima(nhori, nvert, champ, aire, pbord, moyglo)
Definition: moyglo_aire.F90:63
Definition: dimphy.F90:1
real rg
Definition: comcstphy.h:1