source: LMDZ5/trunk/libf/dyn3d/caladvtrac.F @ 2279

Last change on this file since 2279 was 2270, checked in by crisi, 10 years ago

Adding isotopes in the dynamics and more generally tracers of tracers.
CRisi

  • Property copyright set to
    Name of program: LMDZ
    Creation date: 1984
    Version: LMDZ5
    License: CeCILL version 2
    Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
    See the license file in the root directory
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.2 KB
RevLine 
[524]1!
[1403]2! $Id: caladvtrac.F 2270 2015-05-07 15:45:04Z musat $
[524]3!
4c
5c
6            SUBROUTINE caladvtrac(q,pbaru,pbarv ,
7     *                   p ,masse, dq ,  teta,
[960]8     *                   flxw, pk)
[524]9c
[1454]10      USE infotrac, ONLY : nqtot
11      USE control_mod, ONLY : iapp_tracvl,planet_type
[1403]12 
[524]13      IMPLICIT NONE
14c
15c     Auteurs:   F.Hourdin , P.Le Van, F.Forget, F.Codron 
16c
17c     F.Codron (10/99) : ajout humidite specifique pour eau vapeur
18c=======================================================================
19c
20c       Shema de  Van Leer
21c
22c=======================================================================
23
24
25#include "dimensions.h"
26#include "paramet.h"
27#include "comconst.h"
28
29c   Arguments:
30c   ----------
31      REAL pbaru( ip1jmp1,llm ),pbarv( ip1jm,llm),masse(ip1jmp1,llm)
[1454]32      REAL p( ip1jmp1,llmp1),q( ip1jmp1,llm,nqtot)
33      real :: dq(ip1jmp1,llm,nqtot)
[524]34      REAL teta( ip1jmp1,llm),pk( ip1jmp1,llm)
35      REAL               :: flxw(ip1jmp1,llm)
36
37c  ..................................................................
38c
39c  .. dq n'est utilise et dimensionne que pour l'eau  vapeur et liqu.
40c
41c  ..................................................................
42c
43c   Local:
44c   ------
45
46      EXTERNAL  advtrac,minmaxq, qminimum
47      INTEGER ij,l, iq, iapptrac
48      REAL finmasse(ip1jmp1,llm), dtvrtrac
49
50cc
51c
[1454]52! Earth-specific stuff for the first 2 tracers (water)
53      if (planet_type.eq."earth") then
[524]54C initialisation
[2270]55! CRisi: il faut gérer tous les traceurs si on veut pouvoir faire des
56! isotopes
57!        dq(:,:,1:2)=q(:,:,1:2)
58        dq(:,:,1:nqtot)=q(:,:,1:nqtot)
[1454]59       
[524]60c  test des valeurs minmax
61cc        CALL minmaxq(q(1,1,1),1.e33,-1.e33,'Eau vapeur (a) ')
62cc        CALL minmaxq(q(1,1,2),1.e33,-1.e33,'Eau liquide(a) ')
[1454]63      endif ! of if (planet_type.eq."earth")
[524]64c   advection
65
[960]66        CALL advtrac( pbaru,pbarv,
67     *       p,  masse,q,iapptrac, teta,
68     .       flxw, pk)
[1454]69
[524]70c
71
[1454]72      IF( iapptrac.EQ.iapp_tracvl ) THEN
73        if (planet_type.eq."earth") then
74! Earth-specific treatment for the first 2 tracers (water)
[524]75c
76cc          CALL minmaxq(q(1,1,1),1.e33,-1.e33,'Eau vapeur     ')
77cc          CALL minmaxq(q(1,1,2),1.e33,-1.e33,'Eau liquide    ')
78
79cc     ....  Calcul  de deltap  qu'on stocke dans finmasse   ...
80c
81          DO l = 1, llm
82           DO ij = 1, ip1jmp1
83             finmasse(ij,l) =  p(ij,l) - p(ij,l+1)
84           ENDDO
85          ENDDO
86
[2270]87          CALL qminimum( q, nqtot, finmasse )
88
[524]89          CALL SCOPY   ( ip1jmp1*llm, masse, 1, finmasse,       1 )
90          CALL filtreg ( finmasse ,  jjp1,  llm, -2, 2, .TRUE., 1 )
91c
92c   *****  Calcul de dq pour l'eau , pour le passer a la physique ******
93c   ********************************************************************
94c
95          dtvrtrac = iapp_tracvl * dtvr
96c
[2270]97           DO iq = 1 , nqtot
[524]98            DO l = 1 , llm
99             DO ij = 1,ip1jmp1
100             dq(ij,l,iq) = ( q(ij,l,iq) - dq(ij,l,iq) ) * finmasse(ij,l)
101     *                               /  dtvrtrac
102             ENDDO
103            ENDDO
104           ENDDO
105c
[1454]106        endif ! of if (planet_type.eq."earth")
107      ELSE
108        if (planet_type.eq."earth") then
109! Earth-specific treatment for the first 2 tracers (water)
[2270]110          dq(:,:,1:nqtot)=0.
[1454]111        endif ! of if (planet_type.eq."earth")
112      ENDIF ! of IF( iapptrac.EQ.iapp_tracvl )
[524]113
114      END
115
116
Note: See TracBrowser for help on using the repository browser.