My Project
Main Page
Data Types List
Files
File List
File Members
All
Classes
Files
Functions
Variables
Macros
global_mean.F90
Go to the documentation of this file.
1
subroutine
global_mean
(field,airephy,laire,mfield)
2
!
3
! I.Musat: 05.2011
4
! calcul moyenne globale d'un champ pondere par l'aire de la maille
5
! (laire=.TRUE.) ou somme globale du champ (laire=.FALSE.)
6
!
7
USE
dimphy
8
USE
mod_phys_lmdz_para
, only
: is_sequential
9
USE
mod_phys_lmdz_transfert_para
, only
: reduce_sum
10
use
mod_phys_lmdz_mpi_data
, only
: is_mpi_root
11
USE
ioipsl
12
implicit none
13
14
real
,
dimension(klon)
,
intent(in)
:: field
15
real
,
dimension(klon)
,
intent(in)
::
airephy
16
LOGICAL
,
intent(in)
:: laire
17
REAL
,
intent(out)
:: mfield
18
REAL
::
airetot
! Total area the earth
19
REAL
:: sumtmp
20
INTEGER
::
i
21
22
if
(is_sequential)
then
23
24
airetot
= 0.
25
sumtmp = 0.
26
DO
i
=1, klon
27
airetot
=
airetot
+
airephy
(
i
)
28
sumtmp = sumtmp + field(
i
)
29
END DO
30
if
(laire)
THEN
31
if
(
airetot
.NE.0.)
THEN
32
mfield=sumtmp/
airetot
33
endif
34
else
35
mfield=sumtmp
36
endif
37
38
else
39
40
CALL
reduce_sum
(sum(
airephy
),
airetot
)
41
CALL
reduce_sum
(sum(field),sumtmp)
42
43
!$OMP MASTER
44
if
(is_mpi_root)
THEN
45
if
(laire)
THEN
46
! print*,'gmean airetot=',airetot
47
if
(
airetot
.NE.0.)
THEN
48
mfield=sumtmp/
airetot
49
! else
50
! mfield=sumtmp
51
endif
52
else
53
mfield=sumtmp
54
endif
55
56
! print*,'gmean sumtmp mfield=',sumtmp,mfield
57
58
endif
!(is_mpi_root) THEN
59
!$OMP END MASTER
60
61
endif
62
63
end subroutine
global_mean
libf
phylmd
global_mean.F90
Generated on Fri Jun 28 2013 15:59:20 for My Project by
1.8.1.2