My Project
 All Classes Files Functions Variables Macros
moy_undefSTD.F
Go to the documentation of this file.
1 !
2 ! $Id: moy_undefSTD.F 1403 2010-07-01 09:02:53Z fairhead $
3 !
4  SUBROUTINE moy_undefstd(itap,freq_outNMC,freq_moyNMC)
5  USE netcdf
6  USE dimphy
7  USE phys_state_var_mod ! Variables sauvegardees de la physique
8  IMPLICIT none
9 c
10 c====================================================================
11 c
12 c I. Musat : 09.2004
13 c
14 c Moyenne - a des frequences differentes - des valeurs bien definies
15 c (.NE.missing_val) des variables interpolees a un niveau de
16 c pression.
17 c 1) les variables de type "day" (nout=1) ou "mth" (nout=2) sont sommees
18 c tous les pas de temps de la physique
19 c
20 c 2) les variables de type "NMC" (nout=3) sont calculees a partir
21 c des valeurs instantannees toutes les 6 heures
22 c
23 c
24 c NB: mettre "inst(X)" dans le write_hist*NMC.h !
25 c====================================================================
26 cym#include "dimensions.h"
27 cym integer jjmp1
28 cym parameter (jjmp1=jjm+1-1/jjm)
29 cym#include "dimphy.h"
30 c
31 c
32 c variables Input
33 c INTEGER nlevSTD, klevSTD, itap
34 c PARAMETER(klevSTD=17)
35  INTEGER itap
36 c
37 c variables locales
38 c INTEGER i, k, nout, n
39 c PARAMETER(nout=3) !nout=1 day/nout=2 mth/nout=3 NMC
40  INTEGER i, k, n
41 c REAL dtime, freq_outNMC(nout), freq_moyNMC(nout)
42  REAL freq_outnmc(nout), freq_moynmc(nout)
43 c
44 c variables Output
45 c REAL tnondef(klon,klevSTD,nout)
46 c REAL tsumSTD(klon,klevSTD,nout)
47 c
48  REAL missing_val
49 c
50  missing_val=nf90_fill_real
51 c
52  DO n=1, nout
53 c
54 c calcul 1 fois par jour
55 c
56  IF(mod(itap,nint(freq_outnmc(n)/dtime)).EQ.0) THEN
57 c
58  DO k=1, nlevstd
59  DO i=1, klon
60  IF(tnondef(i,k,n).NE.(freq_moynmc(n))) THEN
61  tsumstd(i,k,n)=tsumstd(i,k,n)/
62  $ (freq_moynmc(n)-tnondef(i,k,n))
63 cIM BEG
64  usumstd(i,k,n)=usumstd(i,k,n)/
65  $ (freq_moynmc(n)-tnondef(i,k,n))
66  vsumstd(i,k,n)=vsumstd(i,k,n)/
67  $ (freq_moynmc(n)-tnondef(i,k,n))
68  wsumstd(i,k,n)=wsumstd(i,k,n)/
69  $ (freq_moynmc(n)-tnondef(i,k,n))
70  phisumstd(i,k,n)=phisumstd(i,k,n)/
71  $ (freq_moynmc(n)-tnondef(i,k,n))
72  qsumstd(i,k,n)=qsumstd(i,k,n)/
73  $ (freq_moynmc(n)-tnondef(i,k,n))
74  rhsumstd(i,k,n)=rhsumstd(i,k,n)/
75  $ (freq_moynmc(n)-tnondef(i,k,n))
76  uvsumstd(i,k,n)=uvsumstd(i,k,n)/
77  $ (freq_moynmc(n)-tnondef(i,k,n))
78  vqsumstd(i,k,n)=vqsumstd(i,k,n)/
79  $ (freq_moynmc(n)-tnondef(i,k,n))
80  vtsumstd(i,k,n)=vtsumstd(i,k,n)/
81  $ (freq_moynmc(n)-tnondef(i,k,n))
82  wqsumstd(i,k,n)=wqsumstd(i,k,n)/
83  $ (freq_moynmc(n)-tnondef(i,k,n))
84  vphisumstd(i,k,n)=vphisumstd(i,k,n)/
85  $ (freq_moynmc(n)-tnondef(i,k,n))
86  wtsumstd(i,k,n)=wtsumstd(i,k,n)/
87  $ (freq_moynmc(n)-tnondef(i,k,n))
88  u2sumstd(i,k,n)=u2sumstd(i,k,n)/
89  $ (freq_moynmc(n)-tnondef(i,k,n))
90  v2sumstd(i,k,n)=v2sumstd(i,k,n)/
91  $ (freq_moynmc(n)-tnondef(i,k,n))
92  t2sumstd(i,k,n)=t2sumstd(i,k,n)/
93  $ (freq_moynmc(n)-tnondef(i,k,n))
94  o3sumstd(i,k,n)=o3sumstd(i,k,n)/
95  $ (freq_moynmc(n)-tnondef(i,k,n))
96  o3daysumstd(i,k,n)=o3daysumstd(i,k,n)/
97  $ (freq_moynmc(n)-tnondef(i,k,n))
98 cIM END
99  ELSE
100  tsumstd(i,k,n)=missing_val
101  usumstd(i,k,n)=missing_val
102  vsumstd(i,k,n)=missing_val
103  wsumstd(i,k,n)=missing_val
104  phisumstd(i,k,n)=missing_val
105  qsumstd(i,k,n)=missing_val
106  rhsumstd(i,k,n)=missing_val
107  uvsumstd(i,k,n)=missing_val
108  vqsumstd(i,k,n)=missing_val
109  vtsumstd(i,k,n)=missing_val
110  wqsumstd(i,k,n)=missing_val
111  vphisumstd(i,k,n)=missing_val
112  wtsumstd(i,k,n)=missing_val
113  u2sumstd(i,k,n)=missing_val
114  v2sumstd(i,k,n)=missing_val
115  t2sumstd(i,k,n)=missing_val
116  o3sumstd(i,k,n)=missing_val
117  o3daysumstd(i,k,n)=missing_val
118  ENDIF !tnondef(i,k,n).NE.(freq_moyNMC(n))
119  ENDDO !i
120  ENDDO !k
121  ENDIF !MOD(itap,NINT(freq_outNMC(n)/dtime)).EQ.0
122 c
123  ENDDO !n
124 c
125  RETURN
126  END