source: trunk/LMDZ.GENERIC/libf/dyn3d/vanleer.F @ 1422

Last change on this file since 1422 was 1422, checked in by milmd, 10 years ago

In GENERIC, MARS and COMMON models replace some include files by modules (usefull for decoupling physics with dynamics).

File size: 2.0 KB
Line 
1      SUBROUTINE vanleer(numvanle,iapp_tracvl,nq,q,pbaru,pbarv ,
2     *                     p ,masse, dq ,  iadv1, teta, pk      )
3c
4      USE comconst_mod, ONLY: dtvr
5
6      IMPLICIT NONE
7c
8c     Auteurs:   F.Hourdin , P.Le Van, F.Forget, F.Codron 
9c
10c=======================================================================
11c
12c       Shema de  Van Leer
13c       Version simplifiée pour Mars
14c       (L'original bugue a cause des histoires d'eau terrestre !!)
15c       FF 2003
16c
17c=======================================================================
18
19
20#include "dimensions.h"
21#include "paramet.h"
22
23c   Arguments:
24c   ----------
25      INTEGER nq, numvanle, iapp_tracvl, iadv1
26      REAL pbaru( ip1jmp1,llm ),pbarv( ip1jm,llm),masse(ip1jmp1,llm)
27      REAL p( ip1jmp1,llmp1),q( ip1jmp1,llm,nq),dq( ip1jmp1,llm,nq )
28      REAL teta( ip1jmp1,llm),pk( ip1jmp1,llm)
29c  ..................................................................
30c
31c   Local:
32c   ------
33
34!      EXTERNAL  tracvl,minmaxq, qminimum
35      INTEGER ij,l, iq, iapptrac
36      REAL finmasse(ip1jmp1,llm), dtvrtrac
37cc
38
39        CALL SCOPY( nq * ijp1llm, q, 1, dq, 1 )
40
41c   advection
42
43      CALL tracvl( numvanle,iapp_tracvl,nq,pbaru,pbarv,p , masse,q  ,
44     *                      iapptrac, iadv1, teta ,pk              )
45
46cc     ....  Calcul  de deltap  qu'on stocke dans finmasse   ...
47c
48          DO l = 1, llm
49           DO ij = 1, ip1jmp1
50             finmasse(ij,l) =  p(ij,l) - p(ij,l+1)
51           ENDDO
52          ENDDO
53
54          CALL SCOPY   ( ip1jmp1*llm, masse, 1, finmasse,       1 )
55          CALL filtreg ( finmasse ,  jjp1,  llm, -2, 2, .TRUE., 1 )
56c
57c   *****  Calcul de dq pour l'eau , pour le passer a la physique ******
58
59          dtvrtrac = iapp_tracvl * dtvr
60c
61           DO iq = 1 , nq ! modif special mars : 2 devient nq
62            DO l = 1 , llm
63             DO ij = 1,ip1jmp1
64             dq(ij,l,iq) = ( q(ij,l,iq) - dq(ij,l,iq) ) * finmasse(ij,l)
65     *                               /  dtvrtrac
66             ENDDO
67            ENDDO
68           ENDDO
69
70
71      RETURN
72      END
Note: See TracBrowser for help on using the repository browser.