source: LMDZ4/trunk/libf/dyn3dpar/caladvtrac.F @ 701

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

Import d'une version parallele de la dynamique YM
LF

  • 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!
4c
5c
6#ifdef INCA_CH4
7            SUBROUTINE caladvtrac(q,pbaru,pbarv ,
8     *                   p ,masse, dq ,  teta,
9     *                   flxw,
10     *                   pk,
11     *                   mmt_adj,
12     *                   hadv_flg)
13#else
14            SUBROUTINE caladvtrac(q,pbaru,pbarv ,
15     *                   p ,masse, dq ,  teta,
16     *                   pk)
17#endif
18
19c
20      IMPLICIT NONE
21c
22c     Auteurs:   F.Hourdin , P.Le Van, F.Forget, F.Codron 
23c
24c     F.Codron (10/99) : ajout humidite specifique pour eau vapeur
25c=======================================================================
26c
27c       Shema de  Van Leer
28c
29c=======================================================================
30
31
32#include "dimensions.h"
33#include "paramet.h"
34#include "comconst.h"
35#include "control.h"
36#include "advtrac.h"
37
38c   Arguments:
39c   ----------
40      REAL pbaru( ip1jmp1,llm ),pbarv( ip1jm,llm),masse(ip1jmp1,llm)
41      REAL p( ip1jmp1,llmp1),q( ip1jmp1,llm,nqmx),dq( ip1jmp1,llm,2 )
42      REAL teta( ip1jmp1,llm),pk( ip1jmp1,llm)
43#ifdef INCA_CH4
44cym      INTEGER            :: hadv_flg(nq)
45      INTEGER            :: hadv_flg(nqmx)
46      REAL               :: mmt_adj(iip1,jjp1,llm)
47      REAL               :: flxw(ip1jmp1,llm)
48#endif
49
50c  ..................................................................
51c
52c  .. dq n'est utilise et dimensionne que pour l'eau  vapeur et liqu.
53c
54c  ..................................................................
55c
56c   Local:
57c   ------
58
59      EXTERNAL  advtrac,minmaxq, qminimum
60      INTEGER ij,l, iq, iapptrac
61      REAL finmasse(ip1jmp1,llm), dtvrtrac
62
63cc
64c
65C initialisation
66        dq = 0.
67
68        CALL SCOPY( 2 * ijp1llm, q, 1, dq, 1 )
69
70c  test des valeurs minmax
71cc        CALL minmaxq(q(1,1,1),1.e33,-1.e33,'Eau vapeur (a) ')
72cc        CALL minmaxq(q(1,1,2),1.e33,-1.e33,'Eau liquide(a) ')
73
74c   advection
75
76#ifdef INCA_CH4
77      CALL advtrac( pbaru,pbarv,
78     *             p,  masse,q,iapptrac, teta,
79     .             flxw,
80     .             pk,
81     .             mmt_adj,
82     .             hadv_flg)
83#else
84      CALL advtrac( pbaru,pbarv,
85     *             p,  masse,q,iapptrac, teta,
86     .             pk)
87#endif
88c
89
90         IF( iapptrac.EQ.iapp_tracvl ) THEN
91c
92cc          CALL minmaxq(q(1,1,1),1.e33,-1.e33,'Eau vapeur     ')
93cc          CALL minmaxq(q(1,1,2),1.e33,-1.e33,'Eau liquide    ')
94
95cc     ....  Calcul  de deltap  qu'on stocke dans finmasse   ...
96c
97          DO l = 1, llm
98           DO ij = 1, ip1jmp1
99             finmasse(ij,l) =  p(ij,l) - p(ij,l+1)
100           ENDDO
101          ENDDO
102
103          CALL qminimum( q, 2, finmasse )
104
105          CALL SCOPY   ( ip1jmp1*llm, masse, 1, finmasse,       1 )
106          CALL filtreg ( finmasse ,  jjp1,  llm, -2, 2, .TRUE., 1 )
107c
108c   *****  Calcul de dq pour l'eau , pour le passer a la physique ******
109c   ********************************************************************
110c
111          dtvrtrac = iapp_tracvl * dtvr
112c
113           DO iq = 1 , 2
114            DO l = 1 , llm
115             DO ij = 1,ip1jmp1
116             dq(ij,l,iq) = ( q(ij,l,iq) - dq(ij,l,iq) ) * finmasse(ij,l)
117     *                               /  dtvrtrac
118             ENDDO
119            ENDDO
120           ENDDO
121c
122         ELSE
123           DO iq = 1 , 2
124           DO l  = 1, llm
125             DO ij = 1,ip1jmp1
126              dq(ij,l,iq)  = 0.
127             ENDDO
128           ENDDO
129           ENDDO
130
131
132         ENDIF
133
134c
135
136c  ... On appelle  qminimum uniquement  pour l'eau vapeur et liquide  ..
137
138 
139      RETURN
140      END
141
142
Note: See TracBrowser for help on using the repository browser.