source: LMDZ4/trunk/libf/phylmd/moy_undefSTD.F @ 757

Last change on this file since 757 was 684, checked in by lmdzadmin, 19 years ago

Ajout nouveaux flags (ip_ebil_phy, ok_slab_sicOBS) ds physiq.def +
Lecture freq. ecriture en nombre de jours
IM

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