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

Last change on this file since 674 was 644, checked in by Laurent Fairhead, 20 years ago

Synchronisation avec tous les diagnostiques de Ionela IM
Inclusion du slab ocean IM
LF

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.1 KB
Line 
1      SUBROUTINE moy_undefSTD(nlevSTD,itap,
2     $           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      INTEGER 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,ecrit_day).EQ.0) THEN
43       DO k=1, nlevSTD
44        DO i=1, klon
45         IF(tnondef(i,k,1).NE.FLOAT(ecrit_day)) THEN
46          tsumSTD(i,k,1)=tsumSTD(i,k,1)/
47     $    (FLOAT(ecrit_day)-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,ecrit_mth).EQ.0) THEN
58       DO k=1, nlevSTD
59        DO i=1, klon
60         IF(tnondef(i,k,2).NE.FLOAT(ecrit_mth)) THEN
61          tsumSTD(i,k,2)=tsumSTD(i,k,2)/
62     $    (FLOAT(ecrit_mth)-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.FLOAT(ecrit_hf2mth)) THEN
68          tsumSTD(i,k,3)=tsumSTD(i,k,3)/
69     $    (FLOAT(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.