source: trunk/LMDZ.GENERIC/libf/phystd/stokes.F90 @ 1315

Last change on this file since 1315 was 1315, checked in by milmd, 10 years ago

LMDZ.GENERIC. OpenMP directives added in generic physic. When running in pure OpenMP or hybrid OpenMP/MPI, may have some bugs with condense_cloud and wstats routines.

File size: 1.6 KB
Line 
1      subroutine stokes(p,t,rd,w,rho_aer)
2
3!==================================================================
4!     Purpose
5!     -------
6!     Compute the sedimentation velocity in a low pressure
7!     atmosphere.
8!
9!     Authors
10!     -------
11!     Francois Forget (1997)
12!
13!==================================================================
14
15!      use radcommon_h, only : Rgas
16
17      implicit none
18
19#include "comcstfi.h"
20
21!     input
22!     -----
23!     pressure (Pa), Temperature (K), particle radius (m), density
24      real p, t, rd, rho_aer
25
26!     output
27!     ------
28!     sedimentation velocity (m/s, >0)
29      real w
30
31!     locally saved variables
32!     ---------------------
33      real a,b,molrad,visc
34      save a,b
35!$OMP THREADPRIVATE(a,b)
36 
37      LOGICAL firstcall
38      SAVE firstcall
39      DATA firstcall/.true./
40!$OMP THREADPRIVATE(firstcall)
41
42      if (firstcall) then
43
44         !print*,'Routine not working: replace Rgas with r'
45         !stop
46         !a = 0.707*Rgas/(4*pi*molrad**2 * avocado)
47
48         molrad=2.2e-10   ! CO2 (only used in condense_co2cloud at the moment)
49         visc=1.e-5       ! CO2
50
51
52         a = 0.707*R/(4*pi*molrad**2 * avocado)
53         b = (2./9.) * rho_aer * g / visc
54        !print*,'molrad=',molrad
55        !print*,'visc=',visc
56        !print*,'a=',a
57        !print*,'b=',b
58        !print*,'rho_aer=',rho_aer
59        !stop
60 
61         firstcall=.false.
62      end if
63
64!     Sedimentation velocity =
65!     Stokes' Law corrected for low pressures by the Cunningham
66!     slip-flow correction according to Rossow (Icarus 36, 1-50, 1978)
67      w = b * rd*rd * (1 + 1.333* (a*T/P)/rd ) 
68      return
69    end subroutine stokes
Note: See TracBrowser for help on using the repository browser.