source: LMDZ4/branches/LMDZ4_V2_patch/libf/phylmd/undefSTD.F @ 5297

Last change on this file since 5297 was 740, checked in by lmdzadmin, 18 years ago

Correction bogues: les ecrit_ sont des REALs lus dans conf_phys.F90 en
nombre de jours sauf pour ecrit_ins et ecrit_tra en secondes!
Les ecrit_ sont initialises dans conf_phys.F90 et peuvent etre modifies dans
physiq.def.
IM

  • 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      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      REAL dtime, 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,NINT(ecrit_hf/dtime)).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
81c
82      RETURN
83      END 
Note: See TracBrowser for help on using the repository browser.