source: LMDZ4/tags/Merge_V3_conv/libf/phylmd/undefSTD.F @ 1400

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

Merge entre la version V3_conv et le HEAD
YM, JG, LF

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.3 KB
Line 
1      SUBROUTINE undefSTD(nlevSTD,itap,tlevSTD,
2     $           dtime,ecrit_hf,
3     $           oknondef,tnondef,tsumSTD)
4      USE dimphy
5      IMPLICIT none
6c
7c====================================================================
8c
9c I. Musat : 09.2004
10c
11c Calcul * du nombre de pas de temps (FLOAT(ecrit_XXX)-tnondef))
12c          ou la variable tlevSTD est bien definie (.NE.1.E+20),
13c et
14c        * de la somme de tlevSTD => tsumSTD
15c
16c nout=1 !var. journaliere "day" moyenne sur tous les pas de temps
17c        ! de la physique
18c nout=2 !var. mensuelle "mth" moyennee sur tous les pas de temps
19c        ! de la physique
20c nout=3 !var. mensuelle "NMC" moyennee toutes les 6heures
21c
22c
23c NB: mettre "inst(X)" dans le write_histXXX.h !
24c====================================================================
25c
26cym#include "dimensions.h"
27cym      integer jjmp1
28cym      parameter (jjmp1=jjm+1-1/jjm)
29cym#include "dimphy.h"
30c variables Input
31      INTEGER nlevSTD, klevSTD, itap
32      PARAMETER(klevSTD=17)
33      REAL dtime, ecrit_hf
34c
35c variables locales
36      INTEGER i, k, nout
37      PARAMETER(nout=3) !nout=1 : day; =2 : mth; =3 : NMC
38c
39c variables Output
40      REAL tlevSTD(klon,klevSTD), tsumSTD(klon,klevSTD,nout)
41      LOGICAL oknondef(klon,klevSTD,nout)
42      REAL tnondef(klon,klevSTD,nout)
43c
44c calcul variables tous les pas de temps de la physique
45c
46      DO k=1, nlevSTD
47       DO i=1, klon
48        IF(tlevSTD(i,k).EQ.1E+20) THEN
49         IF(oknondef(i,k,1)) THEN         
50          tnondef(i,k,1)=tnondef(i,k,1)+1.
51         ENDIF !oknondef(i,k)
52c
53         IF(oknondef(i,k,2)) THEN         
54          tnondef(i,k,2)=tnondef(i,k,2)+1.
55         ENDIF !oknondef(i,k)
56c
57        ELSE IF(tlevSTD(i,k).NE.1E+20) THEN
58         tsumSTD(i,k,1)=tsumSTD(i,k,1)+tlevSTD(i,k)
59         tsumSTD(i,k,2)=tsumSTD(i,k,2)+tlevSTD(i,k)
60        ENDIF
61       ENDDO !i
62      ENDDO !k
63c
64c calcul variables toutes les 6h
65c
66      IF(MOD(itap,NINT(ecrit_hf/dtime)).EQ.0) THEN
67c
68       DO k=1, nlevSTD
69        DO i=1, klon
70         IF(tlevSTD(i,k).EQ.1E+20) THEN
71          IF(oknondef(i,k,3)) THEN         
72           tnondef(i,k,3)=tnondef(i,k,3)+1.
73          ENDIF !oknondef(i,k)
74c
75         ELSE IF(tlevSTD(i,k).NE.1E+20) THEN
76         tsumSTD(i,k,3)=tsumSTD(i,k,3)+tlevSTD(i,k)
77         ENDIF
78        ENDDO !i
79       ENDDO !k
80
81      ENDIF !MOD(itap,NINT(ecrit_hf/dtime)).EQ.0
82c
83      RETURN
84      END 
Note: See TracBrowser for help on using the repository browser.