GCC Code Coverage Report


Directory: ./
File: phys/moyglo_aire.f90
Date: 2022-01-11 19:19:34
Exec Total Coverage
Lines: 0 31 0.0%
Branches: 0 22 0.0%

Line Branch Exec Source
1
2 ! $Header$
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
150