My Project
 All Classes Files Functions Variables Macros
interpre.F
Go to the documentation of this file.
1 !
2 ! $Id: interpre.F 1403 2010-07-01 09:02:53Z fairhead $
3 !
4  subroutine interpre(q,qppm,w,fluxwppm,masse,
5  s apppm,bpppm,massebx,masseby,pbaru,pbarv,
6  s unatppm,vnatppm,psppm)
7 
8  USE control_mod
9 
10  implicit none
11 
12 #include "dimensions.h"
13 c#include "paramr2.h"
14 #include "paramet.h"
15 #include "comconst.h"
16 #include "comdissip.h"
17 #include "comvert.h"
18 #include "comgeom2.h"
19 #include "logic.h"
20 #include "temps.h"
21 #include "ener.h"
22 #include "description.h"
23 
24 c---------------------------------------------------
25 c arguments
26  real apppm(llm+1),bpppm(llm+1)
27  real q(iip1,jjp1,llm),qppm(iim,jjp1,llm)
28 c---------------------------------------------------
29  real masse(iip1,jjp1,llm)
30  real massebx(iip1,jjp1,llm),masseby(iip1,jjm,llm)
31  real w(iip1,jjp1,llm+1)
32  real fluxwppm(iim,jjp1,llm)
33  real pbaru(iip1,jjp1,llm )
34  real pbarv(iip1,jjm,llm)
35  real unatppm(iim,jjp1,llm)
36  real vnatppm(iim,jjp1,llm)
37  real psppm(iim,jjp1)
38 c---------------------------------------------------
39 c local
40  real vnat(iip1,jjp1,llm)
41  real unat(iip1,jjp1,llm)
42  real fluxw(iip1,jjp1,llm)
43  real smass(iip1,jjp1)
44 c----------------------------------------------------
45  integer l,ij,i,j
46 
47 c calcul de la pression de surface
48 c les coefficients ap et bp sont passés en common
49 c calcul de la pression au sol en mb optimisée pour
50 c la vectorialisation
51 
52  do j=1,jjp1
53  do i=1,iip1
54  smass(i,j)=0.
55  enddo
56  enddo
57 
58  do l=1,llm
59  do j=1,jjp1
60  do i=1,iip1
61  smass(i,j)=smass(i,j)+masse(i,j,l)
62  enddo
63  enddo
64  enddo
65 
66  do j=1,jjp1
67  do i=1,iim
68  psppm(i,j)=smass(i,j)/aire(i,j)*g*0.01
69  end do
70  end do
71 
72 c reconstruction des champs contravariants
73 c le programme ppm3d travaille avec les composantes
74 c de vitesse et pas les flux, on doit donc passer de l'un à l'autre
75 c dans le même temps, on fait le changement d
76 
77 
78 
79 
80 
81 
82 
83 
84 
85 
86 
87 
88 
89 
90 
91 
92 
93 
94 
95 
96 
97 
98 
99 'orientation du vent en v do l=1,llm do j=1,jjm do i=1,iip1 vnat(i,j,l)=-pbarv(i,j,l)/masseby(i,j,l)*cv(i,j) enddo enddo do i=1,iim vnat(i,jjp1,l)=0. enddo do j=1,jjp1 do i=1,iip1 unat(i,j,l)=pbaru(i,j,l)/massebx(i,j,l)*cu(i,j) enddo enddo enddo c CALCUL DU FLUX MASSIQUE VERTICALc Flux en l=1 (sol) nul fluxw=0. do l=1,llm do j=1,jjp1 do i=1,iip1 fluxw(i,j,l)=w(i,j,l)*g*0.01/aire(i,j)C print*,i,j,l,'fluxw(i,j,l)=
100 ',fluxw(i,j,l),C c 'w(i,j,l)=
101 
102 
103 
104 
105 
106 
107 
108 
109 
110 
111 
112 
113 
114 
115 
116 
117 
118 
119 
120 
121 
122 
123 
124 
125 
126 
127 
128 
129 
130 
131 
132 
133