/[lmdze]/trunk/libf/phylmd/undefSTD.f
ViewVC logotype

Annotation of /trunk/libf/phylmd/undefSTD.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3 - (hide annotations)
Wed Feb 27 13:16:39 2008 UTC (16 years, 3 months ago) by guez
File size: 2337 byte(s)
Initial import
1 guez 3 SUBROUTINE undefSTD(nlevSTD,itap,tlevSTD,
2     $ ecrit_hf,
3     $ oknondef,tnondef,tsumSTD)
4     use dimens_m
5     use dimphy
6     IMPLICIT none
7     c
8     c====================================================================
9     c
10     c I. Musat : 09.2004
11     c
12     c Calcul * du nombre de pas de temps (FLOAT(ecrit_XXX)-tnondef))
13     c ou la variable tlevSTD est bien definie (.NE.1.E+20),
14     c et
15     c * de la somme de tlevSTD => tsumSTD
16     c
17     c nout=1 !var. journaliere "day" moyenne sur tous les pas de temps
18     c ! de la physique
19     c nout=2 !var. mensuelle "mth" moyennee sur tous les pas de temps
20     c ! de la physique
21     c nout=3 !var. mensuelle "NMC" moyennee toutes les 6heures
22     c
23     c
24     c NB: mettre "inst(X)" dans le write_histXXX.h !
25     c====================================================================
26     c
27     integer jjmp1
28     parameter (jjmp1=jjm+1-1/jjm)
29     c variables Input
30     INTEGER nlevSTD, klevSTD, itap
31     PARAMETER(klevSTD=17)
32     INTEGER, intent(in):: ecrit_hf
33     c
34     c variables locales
35     INTEGER i, k, nout
36     PARAMETER(nout=3) !nout=1 : day; =2 : mth; =3 : NMC
37     c
38     c variables Output
39     REAL tlevSTD(klon,klevSTD), tsumSTD(klon,klevSTD,nout)
40     LOGICAL oknondef(klon,klevSTD,nout)
41     REAL tnondef(klon,klevSTD,nout)
42     c
43     c calcul variables tous les pas de temps de la physique
44     c
45     DO k=1, nlevSTD
46     DO i=1, klon
47     IF(tlevSTD(i,k).EQ.1E+20) THEN
48     IF(oknondef(i,k,1)) THEN
49     tnondef(i,k,1)=tnondef(i,k,1)+1.
50     ENDIF !oknondef(i,k)
51     c
52     IF(oknondef(i,k,2)) THEN
53     tnondef(i,k,2)=tnondef(i,k,2)+1.
54     ENDIF !oknondef(i,k)
55     c
56     ELSE IF(tlevSTD(i,k).NE.1E+20) THEN
57     tsumSTD(i,k,1)=tsumSTD(i,k,1)+tlevSTD(i,k)
58     tsumSTD(i,k,2)=tsumSTD(i,k,2)+tlevSTD(i,k)
59     ENDIF
60     ENDDO !i
61     ENDDO !k
62     c
63     c calcul variables toutes les 6h
64     c
65     IF(MOD(itap,ecrit_hf).EQ.0) THEN
66     c
67     DO k=1, nlevSTD
68     DO i=1, klon
69     IF(tlevSTD(i,k).EQ.1E+20) THEN
70     IF(oknondef(i,k,3)) THEN
71     tnondef(i,k,3)=tnondef(i,k,3)+1.
72     ENDIF !oknondef(i,k)
73     c
74     ELSE IF(tlevSTD(i,k).NE.1E+20) THEN
75     tsumSTD(i,k,3)=tsumSTD(i,k,3)+tlevSTD(i,k)
76     ENDIF
77     ENDDO !i
78     ENDDO !k
79    
80     ENDIF !MOD(itap,ecrit_hf).EQ.0
81     c
82     RETURN
83     END

  ViewVC Help
Powered by ViewVC 1.1.21