source: LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/caladvtrac_p.F @ 1200

Last change on this file since 1200 was 1114, checked in by jghattas, 15 years ago

Creation du module infotrac:

  • contient les variables de advtrac.h
  • contient la subroutine iniadvtrac renommer en infotrac_init
  • le nombre des traceurs est lu dans tracer.def en dynamique (ou par default ou recu par INCA)
  • ce module est utilise dans la dynamique et la physique
  • contient aussi la variable nbtr qui avant etait stockee dans dimphy

Le fichier advtrac.h n'existe plus.
La compilation ne prend plus en compte le nombre de traceur.

/JG

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.2 KB
Line 
1!
2! $Header$
3!
4c
5c
6            SUBROUTINE caladvtrac_p(q,pbaru,pbarv ,
7     *                   p ,masse, dq ,  teta,
8     *                   flxw, pk, iapptrac)
9      USE parallel
10      USE infotrac
11c
12      IMPLICIT NONE
13c
14c     Auteurs:   F.Hourdin , P.Le Van, F.Forget, F.Codron 
15c
16c     F.Codron (10/99) : ajout humidite specifique pour eau vapeur
17c=======================================================================
18c
19c       Shema de  Van Leer
20c
21c=======================================================================
22
23
24#include "dimensions.h"
25#include "paramet.h"
26#include "comconst.h"
27#include "control.h"
28
29c   Arguments:
30c   ----------
31      REAL pbaru( ip1jmp1,llm ),pbarv( ip1jm,llm),masse(ip1jmp1,llm)
32      REAL p( ip1jmp1,llmp1),q( ip1jmp1,llm,nqtot),dq( ip1jmp1,llm,2 )
33      REAL teta( ip1jmp1,llm),pk( ip1jmp1,llm)
34      REAL               :: flxw(ip1jmp1,llm)
35
36      integer ijb,ije,jjb,jje
37
38c  ..................................................................
39c
40c  .. dq n'est utilise et dimensionne que pour l'eau  vapeur et liqu.
41c
42c  ..................................................................
43c
44c   Local:
45c   ------
46
47      INTEGER ij,l, iq, iapptrac
48      REAL finmasse(ip1jmp1,llm), dtvrtrac
49     
50cc
51c
52C initialisation
53cym      ijb=ij_begin
54cym      ije=ij_end
55
56     
57cym      dq(ijb:ije,1:llm,1:2)=q(ijb:ije,1:llm,1:2)
58
59c  test des valeurs minmax
60cc        CALL minmaxq(q(1,1,1),1.e33,-1.e33,'Eau vapeur (a) ')
61cc        CALL minmaxq(q(1,1,2),1.e33,-1.e33,'Eau liquide(a) ')
62
63c   advection
64c      print *,'appel a advtrac'
65
66      CALL advtrac_p( pbaru,pbarv,
67     *             p,  masse,q,iapptrac, teta,
68     .             flxw, pk)
69
70         goto 9999
71         IF( iapptrac.EQ.iapp_tracvl ) THEN
72c
73cc          CALL minmaxq(q(1,1,1),1.e33,-1.e33,'Eau vapeur     ')
74cc          CALL minmaxq(q(1,1,2),1.e33,-1.e33,'Eau liquide    ')
75
76cc     ....  Calcul  de deltap  qu'on stocke dans finmasse   ...
77c
78          DO l = 1, llm
79           DO ij = ijb, ije
80             finmasse(ij,l) =  p(ij,l) - p(ij,l+1)
81           ENDDO
82          ENDDO
83
84          CALL qminimum_p( q, 2, finmasse )
85
86cym   --> le reste ne set a rien
87          goto 9999
88         
89c          CALL SCOPY   ( ip1jmp1*llm, masse, 1, finmasse,       1 )
90          finmasse(ijb:ije,:)=masse(ijb:ije,:)         
91         
92          jjb=jj_begin
93          jje=jj_end
94          CALL filtreg_p ( finmasse ,jjb,jje,  jjp1,  llm,
95     *                     -2, 2, .TRUE., 1 )
96c
97c   *****  Calcul de dq pour l'eau , pour le passer a la physique ******
98c   ********************************************************************
99c
100          dtvrtrac = iapp_tracvl * dtvr
101c
102           DO iq = 1 , 2
103            DO l = 1 , llm
104             DO ij = ijb,ije
105             dq(ij,l,iq) = ( q(ij,l,iq) - dq(ij,l,iq) ) * finmasse(ij,l)
106     *                               /  dtvrtrac
107             ENDDO
108            ENDDO
109           ENDDO
110c
111         ELSE
112cym   --> le reste ne set a rien
113          goto 9999
114         
115           DO iq = 1 , 2
116           DO l  = 1, llm
117             DO ij = ijb,ije
118              dq(ij,l,iq)  = 0.
119             ENDDO
120           ENDDO
121           ENDDO
122
123         ENDIF
124c
125
126
127c  ... On appelle  qminimum uniquement  pour l'eau vapeur et liquide  ..
128
129 
130 9999 RETURN
131      END
132
133
Note: See TracBrowser for help on using the repository browser.