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  implicit none
10 
11 #include "dimensions.h"
12 c#include "paramr2.h"
13 #include "paramet.h"
14 #include "comconst.h"
15 #include "comdissip.h"
16 #include "comvert.h"
17 #include "comgeom2.h"
18 #include "logic.h"
19 #include "temps.h"
20 #include "ener.h"
21 #include "description.h"
22 
23 c---------------------------------------------------
24 c arguments
25  real apppm(llm+1),bpppm(llm+1)
26  real q(iip1,jjp1,llm),qppm(iim,jjp1,llm)
27 c---------------------------------------------------
28  real masse(iip1,jjp1,llm)
29  real massebx(iip1,jjp1,llm),masseby(iip1,jjm,llm)
30  real w(iip1,jjp1,llm+1)
31  real fluxwppm(iim,jjp1,llm)
32  real pbaru(iip1,jjp1,llm )
33  real pbarv(iip1,jjm,llm)
34  real unatppm(iim,jjp1,llm)
35  real vnatppm(iim,jjp1,llm)
36  real psppm(iim,jjp1)
37 c---------------------------------------------------
38 c local
39  real vnat(iip1,jjp1,llm)
40  real unat(iip1,jjp1,llm)
41  real fluxw(iip1,jjp1,llm)
42  real smass(iip1,jjp1)
43 c----------------------------------------------------
44  integer l,ij,i,j
45 
46 c calcul de la pression de surface
47 c les coefficients ap et bp sont passés en common
48 c calcul de la pression au sol en mb optimisée pour
49 c la vectorialisation
50 
51  do j=1,jjp1
52  do i=1,iip1
53  smass(i,j)=0.
54  enddo
55  enddo
56 
57  do l=1,llm
58  do j=1,jjp1
59  do i=1,iip1
60  smass(i,j)=smass(i,j)+masse(i,j,l)
61  enddo
62  enddo
63  enddo
64 
65  do j=1,jjp1
66  do i=1,iim
67  psppm(i,j)=smass(i,j)/aire(i,j)*g*0.01
68  end do
69  end do
70 
71 c reconstruction des champs contravariants
72 c le programme ppm3d travaille avec les composantes
73 c de vitesse et pas les flux, on doit donc passer de l'un à l'autre
74 c dans le même temps, on fait le changement d
75 
76 
77 
78 
79 
80 
81 
82 
83 
84 
85 
86 
87 
88 
89 
90 
91 
92 
93 
94 
95 
96 
97 
98 '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)=
99 ',fluxw(i,j,l),C c 'w(i,j,l)=
100 
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