source: codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/config/ppsrc/phys/forceWCfn.f @ 224

Last change on this file since 224 was 224, checked in by ymipsl, 10 years ago
File size: 2.3 KB
Line 
1      subroutine forceWCfn(ngrid,nq,pplev,pt,dq,dqs)
2
3      USE tracer_h
4
5      implicit none
6
7!==================================================================
8!     
9!     Purpose
10!     -------
11!     Force tracer conservation in a column for a given pair of
12!     delta q, delta q_s
13!
14!     Authors
15!     -------
16!     R. Wordsworth
17!     
18!==================================================================
19
20!-----------------------------------------------------------------------
21!   INCLUDE 'dimensions.h'
22!
23!   dimensions.h contient les dimensions du modele
24!   ndm est tel que iim=2**ndm
25!-----------------------------------------------------------------------
26
27      INTEGER iim,jjm,llm,ndm
28
29      PARAMETER (iim= 128,jjm=96,llm=64,ndm=1)
30
31!-----------------------------------------------------------------------
32!-----------------------------------------------------------------------
33!   INCLUDE 'dimphys.h'
34
35! ngridmx : number of horizontal grid points
36! note: the -1/jjm term will be 0; unless jj=1
37      integer, parameter :: ngridmx = (2+(jjm-1)*iim - 1/jjm)   
38! nlayermx : number of atmospheric layers
39      integer, parameter :: nlayermx = llm 
40! nsoilmx : number of subterranean layers ! nsoilmx is now in comsoil_h
41      !integer, parameter :: nsoilmx = 4 ! for a test
42      !integer, parameter :: nsoilmx = 18 ! for z1=0.0002 m, depth = 18 m => mars case
43      !integer, parameter :: nsoilmx = 13 ! for z1=0.03 m, depth = 104.8 m => earth case
44!-----------------------------------------------------------------------
45
46!-----------------------------------------------------------------------
47! INCLUDE "comcstfi.h"
48
49      common/comcstfi/pi,rad,g,r,cpp,rcp,dtphys,daysec,mugaz,omeg
50      common/comcstfi/avocado!,molrad,visc
51     
52      real pi,rad,g,r,cpp,rcp,dtphys,daysec,mugaz,omeg
53      real avocado!,molrad,visc
54
55
56      INTEGER ngrid,nq
57
58      real masse, Wtot, Wdiff
59
60      real pplev(ngrid,nlayermx+1)
61      real pt(ngrid)
62
63      real dqs(ngrid,nq) 
64      real dq(ngrid,nlayermx,nq)
65
66      integer iq, ig, ilay
67
68      do iq=1,nq 
69        do ig=1,ngrid
70           Wtot = 0.0
71           do ilay=1,nlayermx
72              masse = (pplev(ig,ilay) - pplev(ig,ilay+1))/g
73              Wtot  = Wtot + masse*dq(ig,ilay,iq)
74           enddo
75           Wdiff = Wtot + dqs(ig,iq)
76         
77           dqs(ig,iq) = dqs(ig,iq) - Wdiff
78        enddo
79      enddo
80
81      end 
82
Note: See TracBrowser for help on using the repository browser.