/[lmdze]/trunk/libf/phylmd/cvltr.f
ViewVC logotype

Annotation of /trunk/libf/phylmd/cvltr.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 38 - (hide annotations)
Thu Jan 6 17:52:19 2011 UTC (13 years, 4 months ago) by guez
File size: 3794 byte(s)
Extracted ASCII art from "inigeom" into a separate text file in the
documentation.

"test_disvert" now creates a separate file for layer thicknesses.

Moved variables from module "yomcst" to module "suphec_m" because this
is where those variables are defined. Kept in "yomcst" only parameters
of Earth orbit. Gave the attribute "parameter" to some variables of
module "suphec_m".

Variables of module "yoethf" were defined in procedure "suphec". Moved
these definitions to a new procedure "yoethf" in module "yoethf_m".

1 guez 3 c
2     c $Header: /home/cvsroot/LMDZ4/libf/phylmd/cvltr.F,v 1.1 2005/04/15 12:36:17 lmdzadmin Exp $
3     c
4 guez 10 SUBROUTINE cvltr(pdtime,da, phi, mp,paprs,x,upd,dnd,dx)
5 guez 3 use dimens_m
6     use dimphy
7 guez 38 use SUPHEC_M
8 guez 10 use yoecumf
9 guez 3 IMPLICIT NONE
10     c=====================================================================
11     c Objet : convection des traceurs / KE
12     c Auteurs: M-A Filiberti and J-Y Grandpeix
13     c=====================================================================
14     c
15     c
16 guez 7 REAL, intent(in):: pdtime
17 guez 3 REAL, intent(in):: paprs(klon,klev+1) ! pression aux 1/2 couches (bas en haut)
18 guez 34 REAL, intent(in):: x(klon,klev) ! q de traceur (bas en haut)
19 guez 3 REAL dx(klon,klev) ! tendance de traceur (bas en haut)
20     real da(klon,klev),phi(klon,klev,klev),mp(klon,klev)
21     REAL upd(klon,klev) ! saturated updraft mass flux
22     REAL dnd(klon,klev) ! saturated downdraft mass flux
23     c
24     c--variables locales
25     real zed(klon,klev),zmd(klon,klev,klev)
26     real za(klon,klev,klev)
27     real zmfd(klon,klev),zmfa(klon,klev)
28     real zmfp(klon,klev),zmfu(klon,klev)
29     integer i,k,j
30     c test conservation
31     c real conserv
32     c =========================================
33     c calcul des tendances liees au downdraft
34     c =========================================
35     zed(:,:)=0.
36     zmfd(:,:)=0.
37     zmfa(:,:)=0.
38     zmfu(:,:)=0.
39     zmfp(:,:)=0.
40     zmd(:,:,:)=0.
41     za(:,:,:)=0.
42     c entrainement
43     do k=1,klev-1
44     do i=1,klon
45     zed(i,k)=max(0.,mp(i,k)-mp(i,k+1))
46     end do
47     end do
48     c
49     c calcul de la matrice d echange
50     c matrice de distribution de la masse entrainee en k
51     c
52     do k=1,klev
53     do i=1,klon
54     zmd(i,k,k)=zed(i,k)
55     end do
56     end do
57     do k=2,klev
58     do j=k-1,1,-1
59     do i=1,klon
60     if(mp(i,j+1).ne.0) then
61     zmd(i,j,k)=zmd(i,j+1,k)*min(1.,mp(i,j)/mp(i,j+1))
62     endif
63     end do
64     end do
65     end do
66     do k=1,klev
67     do j=1,klev-1
68     do i=1,klon
69     za(i,j,k)=max(0.,zmd(i,j+1,k)-zmd(i,j,k))
70     end do
71     end do
72     end do
73     c
74     c rajout du terme lie a l ascendance induite
75     c
76     do j=2,klev
77     do i=1,klon
78     za(i,j,j-1)=za(i,j,j-1)+mp(i,j)
79     end do
80     end do
81     C
82     c tendances
83     c
84     do k=1,klev
85     do j=1,klev
86     do i=1,klon
87     zmfd(i,j)=zmfd(i,j)+za(i,j,k)*(x(i,k)-x(i,j))
88     end do
89     end do
90     end do
91     c
92     c =========================================
93     c calcul des tendances liees aux flux satures
94     c =========================================
95     do j=1,klev
96     do i=1,klon
97     zmfa(i,j)=da(i,j)*(x(i,1)-x(i,j))
98     end do
99     end do
100     do k=1,klev
101     do j=1,klev
102     do i=1,klon
103     zmfp(i,j)=zmfp(i,j)+phi(i,j,k)*(x(i,k)-x(i,j))
104     end do
105     end do
106     end do
107     do j=1,klev-1
108     do i=1,klon
109     zmfu(i,j)=max(0.,upd(i,j+1)+dnd(i,j+1))*(x(i,j+1)-x(i,j))
110     end do
111     end do
112     do j=2,klev
113     do i=1,klon
114     zmfu(i,j)=zmfu(i,j)
115     . +min(0.,upd(i,j)+dnd(i,j))*(x(i,j)-x(i,j-1))
116     end do
117     end do
118    
119     c =========================================
120     c--calcul final des tendances
121     c =========================================
122     do k=1, klev
123     do i=1, klon
124     dx(i,k)=(zmfd(i,k)+zmfu(i,k)
125     . +zmfa(i,k)+zmfp(i,k))*pdtime
126     . *RG/(paprs(i,k)-paprs(i,k+1))
127     c print*,'dx',k,dx(i,k)
128     enddo
129     enddo
130     c
131     c test de conservation du traceur
132     c conserv=0.
133     c do k=1, klev
134     c do i=1, klon
135     c conserv=conserv+dx(i,k)*
136     c . (paprs(i,k)-paprs(i,k+1))/RG
137     C
138     c enddo
139     c enddo
140     c print *,'conserv',conserv
141    
142     return
143     end

  ViewVC Help
Powered by ViewVC 1.1.21