GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: phylmd/moyglo_aire.F90 Lines: 0 31 0.0 %
Date: 2023-06-30 12:51:15 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