source: LMDZ4/trunk/libf/phy_IPCC_AR4/undefSTD.F @ 1068

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

Preparation du remplacement de la physique utilisee pour l'exercice IPCC_AR4
par la version de la physique avec thermique. On garde le repertoire phylmd
pour un petit moment pour que les utilisateurs ne soient pas trop perdus ...
phy_IPCC_AR4 = phylmd
LF

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