source: LMDZ4/trunk/libf/phy_IPCC_AR4/moy_undefSTD.F @ 1071

Last change on this file since 1071 was 868, checked in by Laurent Fairhead, 17 years ago

Preparation du remplacement de la physique utilisee pour l'exercice IPCC_AR4
par la version de la physique avec thermique. On garde le repertoire phylmd
pour un petit moment pour que les utilisateurs ne soient pas trop perdus ...
phy_IPCC_AR4 = phylmd
LF

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