source: LMDZ4/branches/V3_test/libf/phylmd/moy_undefSTD.F @ 1160

Last change on this file since 1160 was 704, checked in by Laurent Fairhead, 18 years ago

Inclusion des modifs de Y. Meurdesoif pour la version V3
LF

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.2 KB
RevLine 
[644]1      SUBROUTINE moy_undefSTD(nlevSTD,itap,
[684]2     $           dtime,ecrit_day,ecrit_mth,ecrit_hf2mth,
[644]3     $           tnondef,tsumSTD)
[704]4      USE dimphy
[644]5      IMPLICIT none
6c
7c====================================================================
8c
9c I. Musat : 09.2004
10c
11c Moyenne - a des frequences differentes - des valeurs bien definies
12c         (.NE.1.E+20) des variables interpolees a un niveau de
13c         pression.
14c 1) les variables de type "day" (nout=1) ou "mth" (nout=2) sont sommees
15c    tous les pas de temps de la physique
16c
17c 2) les variables de type "NMC" (nout=3) sont calculees a partir
18c    des valeurs instantannees toutes les 6 heures
19c
20c
21c NB: mettre "inst(X)" dans le write_histXXX.h !
22c====================================================================
[704]23cym#include "dimensions.h"
24cym      integer jjmp1
25cym      parameter (jjmp1=jjm+1-1/jjm)
26cym#include "dimphy.h"
[644]27c
28c variables Input
29      INTEGER nlevSTD, klevSTD, itap
30      PARAMETER(klevSTD=17)
[684]31      REAL dtime, ecrit_day, ecrit_mth, ecrit_hf2mth
[644]32c
33c variables locales
34      INTEGER i, k, nout
35      PARAMETER(nout=3) !nout=1 day/nout=2 mth/nout=3 NMC
36c
37c variables Output
38      REAL tnondef(klon,klevSTD,nout)
39      REAL tsumSTD(klon,klevSTD,nout)
40c
41c calcul 1 fois par jour
42c
[684]43      IF(MOD(itap,NINT(ecrit_day/dtime)).EQ.0) THEN
[644]44       DO k=1, nlevSTD
45        DO i=1, klon
[684]46         IF(tnondef(i,k,1).NE.(ecrit_day/dtime)) THEN
[644]47          tsumSTD(i,k,1)=tsumSTD(i,k,1)/
[684]48     $    (ecrit_day/dtime-tnondef(i,k,1))
[644]49         ELSE
50          tsumSTD(i,k,1)=1.E+20
51         ENDIF !tnondef
52        ENDDO !i
53       ENDDO !k
54      ENDIF !MOD(itap,ecrit_day).EQ.0
55c
56c calcul 1 fois par mois
57c
[684]58      IF(MOD(itap,NINT(ecrit_mth/dtime)).EQ.0) THEN
[644]59       DO k=1, nlevSTD
60        DO i=1, klon
[684]61         IF(tnondef(i,k,2).NE.ecrit_mth/dtime) THEN
[644]62          tsumSTD(i,k,2)=tsumSTD(i,k,2)/
[684]63     $    (ecrit_mth/dtime-tnondef(i,k,2))
[644]64         ELSE
65          tsumSTD(i,k,2)=1.E+20
66         ENDIF !tnondef
67c
[684]68         IF(tnondef(i,k,3).NE.NINT(ecrit_hf2mth)) THEN
[644]69          tsumSTD(i,k,3)=tsumSTD(i,k,3)/
[684]70     $    (ecrit_hf2mth-tnondef(i,k,3))
[644]71         ELSE
72          tsumSTD(i,k,3)=1.E+20
73         ENDIF !tnondef
74c
75        ENDDO !i
76       ENDDO !k
77      ENDIF !MOD
78c
79      RETURN
80      END 
Note: See TracBrowser for help on using the repository browser.