source: LMDZ4/trunk/libf/phylmd/undefSTD.F @ 648

Last change on this file since 648 was 644, checked in by Laurent Fairhead, 20 years ago

Synchronisation avec tous les diagnostiques de Ionela IM
Inclusion du slab ocean IM
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     $           ecrit_hf,
3     $           oknondef,tnondef,tsumSTD)
4      IMPLICIT none
5c
6c====================================================================
7c
8c I. Musat : 09.2004
9c
10c Calcul * du nombre de pas de temps (FLOAT(ecrit_XXX)-tnondef))
11c          ou la variable tlevSTD est bien definie (.NE.1.E+20),
12c et
13c        * de la somme de tlevSTD => tsumSTD
14c
15c nout=1 !var. journaliere "day" moyenne sur tous les pas de temps
16c        ! de la physique
17c nout=2 !var. mensuelle "mth" moyennee sur tous les pas de temps
18c        ! de la physique
19c nout=3 !var. mensuelle "NMC" moyennee toutes les 6heures
20c
21c
22c NB: mettre "inst(X)" dans le write_histXXX.h !
23c====================================================================
24c
25#include "dimensions.h"
26      integer jjmp1
27      parameter (jjmp1=jjm+1-1/jjm)
28#include "dimphy.h"
29c variables Input
30      INTEGER nlevSTD, klevSTD, itap
31      PARAMETER(klevSTD=17)
32      INTEGER ecrit_hf
33c
34c variables locales
35      INTEGER i, k, nout
36      PARAMETER(nout=3) !nout=1 : day; =2 : mth; =3 : NMC
37c
38c variables Output
39      REAL tlevSTD(klon,klevSTD), tsumSTD(klon,klevSTD,nout)
40      LOGICAL oknondef(klon,klevSTD,nout)
41      REAL tnondef(klon,klevSTD,nout)
42c
43c calcul variables tous les pas de temps de la physique
44c
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)
51c
52         IF(oknondef(i,k,2)) THEN         
53          tnondef(i,k,2)=tnondef(i,k,2)+1.
54         ENDIF !oknondef(i,k)
55c
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
62c
63c calcul variables toutes les 6h
64c
65      IF(MOD(itap,ecrit_hf).EQ.0) THEN
66c
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)
73c
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
81c
82      RETURN
83      END 
Note: See TracBrowser for help on using the repository browser.