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

Contents of /trunk/dyn3d/interpre.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 57 - (show annotations)
Mon Jan 30 12:54:02 2012 UTC (12 years, 3 months ago) by guez
Original Path: trunk/libf/dyn3d/interpre.f
File size: 3635 byte(s)
Write used namelists to file "" instead of standard output.

Avoid aliasing in "inidissip" in calls to "divgrad2", "divgrad",
"gradiv2", "gradiv", "nxgraro2" and "nxgrarot". Add a degenerate
dimension to arrays so they have rank 3, like the dummy arguments in
"divgrad2", "divgrad", "gradiv2", "gradiv", "nxgraro2" and "nxgrarot".

Extract the initialization part from "bilan_dyn" and make a separate
procedure, "init_dynzon", from it.

Move variables from modules "iniprint" and "logic" to module
"conf_gcm_m".

Promote internal procedures of "fxy" to private procedures of module
"fxy_m".

Extracted documentation from "inigeom". Removed useless "save"
attributes. Removed useless intermediate variables. Extracted
processing of poles from loop on latitudes. Write coordinates to file
"longitude_latitude.txt" instead of standard output.

Do not use ozone tracer for radiative transfer.

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 conf_gcm_m
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