source: palm/trunk/SOURCE/init_cloud_physics.f90 @ 225

Last change on this file since 225 was 221, checked in by raasch, 15 years ago

new environment variable mpilib in configuration file, used by mrun, mbuild, and subjob; small bugfix concerning t<0 in init_cloud_physics

  • Property svn:keywords set to Id
File size: 2.4 KB
Line 
1 SUBROUTINE init_cloud_physics
2
3!------------------------------------------------------------------------------!
4! Actual revisions:
5! -----------------
6! Bugfix: abort in case that absolute temperature is below zero
7!
8! Former revisions:
9! ------------------
10! $Id: init_cloud_physics.f90 221 2009-01-12 15:32:23Z raasch $
11!
12! 95 2007-06-02 16:48:38Z raasch
13! hydro_press renamed hyp
14!
15! February 2007
16! RCS Log replace by Id keyword, revision history cleaned up
17!
18! Revision 1.5  2005/06/26 19:55:58  raasch
19! Initialization of cloud droplet constants, gas_constant renamed r_d,
20! latent_heat renamed l_v
21!
22! Revision 1.1  2000/04/13 14:37:22  schroeter
23! Initial revision
24!
25!
26! Description:
27! ------------
28! Initialization of parameters for handling cloud-physics
29!------------------------------------------------------------------------------!
30
31    USE arrays_3d
32    USE cloud_parameters
33    USE control_parameters
34    USE grid_variables
35    USE indices
36
37    IMPLICIT NONE
38
39    INTEGER ::  k
40    REAL    ::  t_surface
41
42    ALLOCATE( hyp(nzb:nzt+1), pt_d_t(nzb:nzt+1), t_d_pt(nzb:nzt+1) )
43
44!
45!-- Compute frequently used parameters
46    l_d_cp = l_v / cp
47    l_d_r  = l_v / r_d
48    l_d_rv = l_v / r_v
49
50!
51!-- Constant b in equation for droplet growth by condensation / evaporation.
52!-- Factor 1E-3 is needed because formula is in cgs units
53    mass_of_solute = 1.0E-17            ! in kg
54    molecular_weight_of_solute = 58.5   ! NaCl
55    b_cond = 4.3 * 2.0 * mass_of_solute / molecular_weight_of_solute * 1.0E-6
56
57!
58!-- Calculate:
59!-- pt / t : ratio of potential and actual temperature (pt_d_t)
60!-- t / pt : ratio of actual and potential temperature (t_d_pt)
61!-- p_0(z) : vertical profile of the hydrostatic pressure (hyp)
62    t_surface = pt_surface * ( surface_pressure / 1000.0 )**0.286
63    DO  k = nzb, nzt+1
64!
65!--    Check temperature in case of too large domain height
66       IF ( ( t_surface - g/cp * zu(k) ) < 0.0 )  THEN
67          WRITE( message_string, * )  'absolute temperature < 0.0 at zu(', k, &
68                                      ') = ', zu(k)
69          CALL handle_palm_message( 'init_cloud_physics', 'PA0142', 1, 2, 0, 6, &
70                                    0 )
71       ENDIF
72       hyp(k)    = surface_pressure * 100.0 * &
73                   ( (t_surface - g/cp * zu(k)) / t_surface )**(1.0/0.286)
74       pt_d_t(k) = ( 100000.0 / hyp(k) )**0.286
75       t_d_pt(k) = 1.0 / pt_d_t(k)       
76    ENDDO
77
78!
79!-- Compute reference density
80    rho_surface = surface_pressure * 100.0 / ( r_d * t_surface )
81
82
83 END SUBROUTINE init_cloud_physics
Note: See TracBrowser for help on using the repository browser.