! ! $Header$ ! SUBROUTINE moyglo_pondaire(nhori, champ, aire, & & ok_msk, msk, moyglo) !c USE dimphy IMPLICIT none !c !c ================================================================== !c I. Musat, 07.2004 !c !c Calcul moyenne globale ponderee par l'aire totale, avec ou sans masque !c !c moyenne = Somme_(champ* aire)/Somme_aire !c !c ================================================================== !c #include "dimensions.h" !cym#include "dimphy.h" INTEGER i, nhori REAL champ(klon), aire(klon), msk(klon) LOGICAL ok_msk REAL moyglo !c !c var locale REAL airetot !c !c PRINT*,'moyglo_pondaire nhori',nhori !c airetot=0. moyglo=0. !c IF(ok_msk) THEN DO i=1, nhori !c IF(msk(i).EQ.1.) THEN IF(msk(i).GT.0.) THEN !c !c aire totale airetot=airetot+aire(i)*msk(i) !c !c ponderation par la masse moyglo=moyglo+champ(i)* aire(i)*msk(i) ENDIF ENDDO !c ELSE !ok_msk DO i=1, nhori !c !c aire totale airetot=airetot+aire(i) !c !c ponderation par la masse moyglo=moyglo+champ(i)* aire(i) ENDDO !c ENDIF !c !c moyenne ponderee par l'aire moyglo=moyglo/airetot !c RETURN END !c SUBROUTINE moyglo_pondaima(nhori, nvert, champ, & & aire, pbord, moyglo) USE dimphy IMPLICIT none !c ================================================================== !c I. Musat, 07.2004 !c !c Calcul moyenne globale ponderee par la masse d'air, divisee par l'aire !c totale avec ou sans masque !c !c moyenne = Somme_(champ* masse_dair)/Somme_aire !c !c ================================================================== #include "dimensions.h" !cym#include "dimphy.h" #include "YOMCST.h" INTEGER i, k, nhori, nvert REAL champ(klon,klev), aire(klon) REAL pbord(klon,klev+1) REAL moyglo !c !c var locale REAL airetot !c !c PRINT*,'moyglo_pondaima RG, nhori, nvert',RG,nhori,nvert !c !c ponderation par la masse moyglo=0. DO k=1, nvert DO i=1, nhori moyglo=moyglo+ & & champ(i,k)*(pbord(i,k)-pbord(i,k+1))/RG*aire(i) ENDDO ENDDO !c !c aire totale airetot=0. DO i=1, nhori airetot=airetot+aire(i) ENDDO !c !c moyenne par mettre carre avec ponderation par la masse moyglo=moyglo/airetot !c RETURN END !c SUBROUTINE moyglo_pondmass(nhori, nvert, champ, & & aire, pbord, moyglo) USE dimphy IMPLICIT none !c ================================================================== !c I. Musat, 07.2004 !c !c Calcul moyenne globale ponderee par la masse d'air, divisee par la !c masse totale d'air, avec ou sans masque !c !c moyenne = Somme_(champ* masse_dair)/Somme_(masse_dair) !c !c ================================================================== #include "dimensions.h" !cym#include "dimphy.h" #include "YOMCST.h" INTEGER i, k, nhori, nvert REAL champ(klon,klev), aire(klon) REAL pbord(klon,klev+1) REAL moyglo !c !c var locale REAL massetot !c !c PRINT*,'moyglo_pondmass RG, nhori, nvert',RG,nhori,nvert !c !c ponderation par la masse moyglo=0. DO k=1, nvert DO i=1, nhori moyglo=moyglo+ & & champ(i,k)*(pbord(i,k)-pbord(i,k+1))/RG*aire(i) ENDDO ENDDO !c !c masse totale massetot=0. DO k=1, nvert DO i=1, nhori massetot=massetot+ & & (pbord(i,k)-pbord(i,k+1))/RG*aire(i) ENDDO ENDDO !c !c moyenne par mettre carre avec ponderation par la masse moyglo=moyglo/massetot !c RETURN END !c