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

Last change on this file since 706 was 633, checked in by tnavarro, 13 years ago

last scheme in commit r626 led to a wrong physical behaviour. This version uses a new subtimestep for microphysics that should be faster than the last one.

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