/[lmdze]/trunk/dyn3d/interpre.f
ViewVC logotype

Contents of /trunk/dyn3d/interpre.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 32 - (show annotations)
Tue Apr 6 17:52:58 2010 UTC (14 years, 1 month ago) by guez
Original Path: trunk/libf/dyn3d/interpre.f
File size: 3630 byte(s)
Split "stringop.f90" into single-procedure files. Gathered files in directory
"IOIPSL/Stringop".

Split "flincom.f90" into "flincom.f90" and "flinget.f90". Removed
unused procedures from module "flincom". Removed unused argument
"filename" of procedure "flinopen_nozoom".

Removed unused files.

Split "grid_change.f90" into "grid_change.f90" and
"gr_phy_write_3d.f90".

Removed unused procedures from modules "calendar", "ioipslmpp",
"grid_atob", "gath_cpl" and "getincom". Removed unused procedures in
files "ppm3d.f" and "thermcell.f".

Split "mathelp.f90" into "mathelp.f90" and "mathop.f90".

Removed unused variable "dpres" of module "comvert".

Use argument "itau" instead of local variables "iadvtr" and "first" to
control algorithm in procedure "fluxstokenc".

Removed unused arguments of procedure "integrd".

Removed useless computations at the end of procedure "leapfrog".

Merged common block "matrfil" into module "parafilt".

1 !
2 ! $Header: /home/cvsroot/LMDZ4/libf/dyn3d/interpre.F,v 1.1.1.1 2004/05/19 12:53:07 lmdzadmin Exp $
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 dimens_m
9 use paramet_m
10 use comconst
11 use comvert
12 use conf_gcm_m
13 use logic
14 use comgeom
15 use temps
16 use ener
17 implicit none
18
19 c---------------------------------------------------
20 c Arguments
21 real apppm(llm+1),bpppm(llm+1)
22 real q(iip1,jjp1,llm),qppm(iim,jjp1,llm)
23 c---------------------------------------------------
24 real masse(iip1,jjp1,llm)
25 real massebx(iip1,jjp1,llm),masseby(iip1,jjm,llm)
26 real w(iip1,jjp1,llm+1)
27 real fluxwppm(iim,jjp1,llm)
28 real, intent(in):: pbaru(iip1,jjp1,llm )
29 real, intent(in):: pbarv(iip1,jjm,llm)
30 real unatppm(iim,jjp1,llm)
31 real vnatppm(iim,jjp1,llm)
32 real psppm(iim,jjp1)
33 c---------------------------------------------------
34 c Local
35 real vnat(iip1,jjp1,llm)
36 real unat(iip1,jjp1,llm)
37 real fluxw(iip1,jjp1,llm)
38 real smass(iip1,jjp1)
39 c----------------------------------------------------
40 integer l,ij,i,j
41
42 c CALCUL DE LA PRESSION DE SURFACE
43 c Les coefficients ap et bp sont passés en common
44 c Calcul de la pression au sol en mb optimisée pour
45 c la vectorialisation
46
47 do j=1,jjp1
48 do i=1,iip1
49 smass(i,j)=0.
50 enddo
51 enddo
52
53 do l=1,llm
54 do j=1,jjp1
55 do i=1,iip1
56 smass(i,j)=smass(i,j)+masse(i,j,l)
57 enddo
58 enddo
59 enddo
60
61 do j=1,jjp1
62 do i=1,iim
63 psppm(i,j)=smass(i,j)/aire_2d(i,j)*g*0.01
64 end do
65 end do
66
67 c RECONSTRUCTION DES CHAMPS CONTRAVARIANTS
68 c Le programme ppm3d travaille avec les composantes
69 c de vitesse et pas les flux, on doit donc passer de l'un à l'autre
70 c Dans le même temps, on fait le changement d'orientation du vent en v
71 do l=1,llm
72 do j=1,jjm
73 do i=1,iip1
74 vnat(i,j,l)=-pbarv(i,j,l)/masseby(i,j,l)*cv_2d(i,j)
75 enddo
76 enddo
77 do i=1,iim
78 vnat(i,jjp1,l)=0.
79 enddo
80 do j=1,jjp1
81 do i=1,iip1
82 unat(i,j,l)=pbaru(i,j,l)/massebx(i,j,l)*cu_2d(i,j)
83 enddo
84 enddo
85 enddo
86
87 c CALCUL DU FLUX MASSIQUE VERTICAL
88 c Flux en l=1 (sol) nul
89 fluxw=0.
90 do l=1,llm
91 do j=1,jjp1
92 do i=1,iip1
93 fluxw(i,j,l)=w(i,j,l)*g*0.01/aire_2d(i,j)
94 enddo
95 enddo
96 enddo
97
98 c INVERSION DES NIVEAUX
99 c le programme ppm3d travaille avec une 3ème coordonnée inversée par rapport
100 c de celle du LMDZ: z=1<=>niveau max, z=llm+1<=>surface
101 c On passe donc des niveaux du LMDZ à ceux de Lin
102
103 do l=1,llm+1
104 apppm(l)=ap(llm+2-l)
105 bpppm(l)=bp(llm+2-l)
106 enddo
107
108 do l=1,llm
109 do j=1,jjp1
110 do i=1,iim
111 unatppm(i,j,l)=unat(i,j,llm-l+1)
112 vnatppm(i,j,l)=vnat(i,j,llm-l+1)
113 fluxwppm(i,j,l)=fluxw(i,j,llm-l+1)
114 qppm(i,j,l)=q(i,j,llm-l+1)
115 enddo
116 enddo
117 enddo
118
119 return
120 end
121
122
123
124
125
126

  ViewVC Help
Powered by ViewVC 1.1.21