source: LMDZ4/branches/V3_test/libf/phylmd/undefSTD.F @ 3947

Last change on this file since 3947 was 704, checked in by Laurent Fairhead, 18 years ago

Inclusion des modifs de Y. Meurdesoif pour la version V3
LF

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.3 KB
RevLine 
[644]1      SUBROUTINE undefSTD(nlevSTD,itap,tlevSTD,
[684]2     $           dtime,ecrit_hf,
[644]3     $           oknondef,tnondef,tsumSTD)
[704]4      USE dimphy
[644]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
[704]26cym#include "dimensions.h"
27cym      integer jjmp1
28cym      parameter (jjmp1=jjm+1-1/jjm)
29cym#include "dimphy.h"
[644]30c variables Input
31      INTEGER nlevSTD, klevSTD, itap
32      PARAMETER(klevSTD=17)
[684]33      REAL dtime, ecrit_hf
[644]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
[684]66      IF(MOD(itap,NINT(ecrit_hf/dtime)).EQ.0) THEN
[644]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
[684]81      ENDIF !MOD(itap,NINT(ecrit_hf/dtime)).EQ.0
[644]82c
83      RETURN
84      END 
Note: See TracBrowser for help on using the repository browser.