source: trunk/LMDZ.MARS/libf/phymars/growthrate.F @ 530

Last change on this file since 530 was 530, checked in by aslmd, 13 years ago

LMDZ.MARS: a first intent to optimize water cycle calculations. see README for further details.

File size: 3.1 KB
Line 
1      subroutine growthrate(timestep,temp,pmid,ph2o,psat,
2     &                      seq,rcrystal,growth)
3
4      IMPLICIT NONE
5
6c=======================================================================
7c
8c     Determination of the water ice crystal growth rate
9c
10c     Authors: F. Montmessin
11c       Adapted for the LMD/GCM by J.-B. Madeleine (October 2011)
12c     
13c=======================================================================
14
15c-----------------------------------------------------------------------
16c   declarations:
17c   -------------
18
19#include "dimensions.h"
20#include "dimphys.h"
21#include "comcstfi.h"
22#include "tracer.h"
23#include "microphys.h"
24
25c
26c   arguments:
27c   ----------
28
29      REAL timestep
30      REAL temp     ! temperature in the middle of the layer (K)
31      REAL pmid     ! pressure in the middle of the layer (K)
32      REAL*8 ph2o   ! water vapor partial pressure (Pa)
33      REAL*8 psat   ! water vapor saturation pressure (Pa)
34      REAL rcrystal ! crystal radius before condensation (m)
35      REAL*8 seq    ! Equilibrium saturation ratio
36      REAL*8 growth
37
38c   local:
39c   ------
40
41      REAL*8 k,Lv                 
42      REAL*8 knudsen           ! Knudsen number (gas mean free path/particle radius)
43      REAL*8 afactor,Dv,lambda       ! Intermediate computations for growth rate
44      REAL*8 Rk,Rd
45
46c-----------------------------------------------------------------------
47c      Ice particle growth rate by diffusion/impegement of water molecules
48c                r.dr/dt = (S-Seq) / (Seq*Rk+Rd)
49c        with r the crystal radius, Rk and Rd the resistances due to
50c        latent heat release and to vapor diffusion respectively
51c-----------------------------------------------------------------------
52
53c     - Equilibrium saturation accounting for KeLvin Effect
54c      seq=exp(2*sigh2o*mh2o/(rho_ice*rgp*t*r))
55c      (already computed in improvedcloud.F)
56
57c     - Thermal conductibility of CO2
58      k  = (0.17913 * temp - 13.9789) * 4.184e-4
59c     - Latent heat of h2o (J.kg-1)
60      Lv = (2834.3
61     &        - 0.28  * (temp-To)
62     &        - 0.004 * (temp-To) * (temp-To) ) * 1.e+3
63
64c     - Constant to compute gas mean free path
65c     l= (T/P)*a, with a = (  0.707*8.31/(4*pi*molrad**2 * avogadro))
66      afactor = 0.707*rgp/(4 * pi * molco2 * molco2 * nav)
67
68c     - Compute Dv, water vapor diffusion coefficient
69c       accounting for both kinetic and continuum regime of diffusion,
70c       the nature of which depending on the Knudsen number.
71
72      Dv = 1./3. * sqrt( 8*kbz*temp/(pi*mh2o/nav) )* kbz * temp /
73     &   ( pi * pmid * (molco2+molh2o)*(molco2+molh2o)
74     &        * sqrt(1.+mh2o/mco2) )
75
76      knudsen = temp / pmid * afactor / rcrystal
77      lambda  = (1.333+0.71/knudsen) / (1.+1./knudsen)
78      Dv      = Dv / (1. + lambda * knudsen)
79
80c     - Compute Rk
81      Rk = Lv**2 * rho_ice * mh2o / (k*rgp*temp*temp)
82c     - Compute Rd
83      Rd = rgp * temp *rho_ice / (Dv*psat*mh2o)
84
85c     - Compute growth=rdr/dt, then r(t+1)= sqrt(r(t)**2.+2.*growth*dt)
86      growth = 1. / (seq*Rk+Rd)
87c       growth = (ph2o/psat-seq) / (seq*Rk+Rd)
88c      rf   = sqrt( max( r**2.+2.*growth*timestep , 0. ) )
89c      dr   = rf-r
90
91      RETURN
92      END
93
Note: See TracBrowser for help on using the repository browser.