source: LMDZ4/trunk/libf/phylmd/add_phys_tend.F90 @ 961

Last change on this file since 961 was 941, checked in by lmdzadmin, 16 years ago

Ajout coordonnees geographiques pour les plantages
IM

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.4 KB
Line 
1!
2! $Header$
3!
4SUBROUTINE add_phys_tend (zdu,zdv,zdt,zdq,zdql,text)
5!======================================================================
6! Ajoute les tendances des variables physiques aux variables
7! d'etat de la dynamique t_seri, q_seri ...
8! On en profite pour faire des tests sur les tendances en question.
9!======================================================================
10
11
12!======================================================================
13! Declarations
14!======================================================================
15
16use dimphy
17use phys_local_var_mod
18use phys_state_var_mod
19IMPLICIT none
20
21! Arguments :
22!------------
23REAL zdu(klon,klev),zdv(klon,klev)
24REAL zdt(klon,klev),zdq(klon,klev),zdql(klon,klev)
25CHARACTER*(*) text
26
27! Local :
28!--------
29REAL zt,zq
30
31INTEGER i, k,j
32INTEGER jadrs(klon*klev), jbad
33INTEGER jqadrs(klon*klev), jqbad
34
35integer debug_level
36
37!======================================================================
38! Initialisations
39
40debug_level=10
41
42!======================================================================
43! Ajout des tendances sur le vent et l'eau liquide
44!======================================================================
45
46     u_seri(:,:)=u_seri(:,:)+zdu(:,:)
47     v_seri(:,:)=v_seri(:,:)+zdv(:,:)
48     ql_seri(:,:)=ql_seri(:,:)+zdql(:,:)
49
50!======================================================================
51! On ajoute les tendances de la temperature et de la vapeur d'eau
52! en verifiant que ca ne part pas dans les choux
53!======================================================================
54
55      jbad=0
56      jqbad=0
57      DO k = 1, klev
58         DO i = 1, klon
59            zt=t_seri(i,k)+zdt(i,k)
60            zq=q_seri(i,k)+zdq(i,k)
61            IF ( zt>370. .or. zt<130. .or. abs(zdt(i,k))>50. ) then
62            jbad = jbad + 1
63            jadrs(jbad) = i
64            ENDIF
65            IF ( zq<0. .or. zq>0.1 .or. abs(zdq(i,k))>1.e-2 ) then
66            jqbad = jqbad + 1
67            jqadrs(jqbad) = i
68            ENDIF
69            t_seri(i,k)=zt
70            q_seri(i,k)=zq
71         ENDDO
72      ENDDO
73
74!=====================================================================================
75! Impression et stop en cas de probleme important
76!=====================================================================================
77
78IF (jbad .GT. 0) THEN
79      DO j = 1, jbad
80         i=jadrs(j)
81         print*,'PLANTAGE POUR LE POINT i rlon rlat =',i,rlon(i),rlat(i),text
82         print*,'l    T     dT       Q     dQ    '
83         DO k = 1, klev
84             write(*,'(i3,2f14.4,2e14.2)') k,t_seri(i,k),zdt(i,k),q_seri(i,k),zdq(i,k)
85         ENDDO
86         call print_debug_phys(i,debug_level,text)
87      ENDDO
88ENDIF
89!
90!=====================================================================================
91! Impression, warning et correction en cas de probleme moins important
92!=====================================================================================
93IF (jqbad .GT. 0) THEN
94      DO j = 1, jqbad
95         i=jqadrs(j)
96         print*,'WARNING  : EAU POUR LE POINT i rlon rlat =',i,rlon(i),rlat(i),text
97         print*,'l    T     dT       Q     dQ    '
98         DO k = 1, klev
99            write(*,'(i3,2f14.4,2e14.2)') k,t_seri(i,k),zdt(i,k),q_seri(i,k),zdq(i,k)
100!           zq=q_seri(i,k)+zdq(i,k)
101!           if (zq.lt.1.e-15) then
102!              zdq(i,k)=(1.e-15-q_seri(i,k))
103!           endif
104         ENDDO
105         call print_debug_phys(i,debug_level,text)
106      ENDDO
107ENDIF
108!
109
110      RETURN
111      END
Note: See TracBrowser for help on using the repository browser.