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