source: palm/trunk/SOURCE/impact_of_latent_heat.f90 @ 72

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

preliminary changes for precipitation output

  • Property svn:keywords set to Id
File size: 2.6 KB
Line 
1 MODULE impact_of_latent_heat_mod
2
3!------------------------------------------------------------------------------!
4! Actual revisions:
5! -----------------
6! precipitation_rate renamed dqdt_precip
7!
8! Former revisions:
9! -----------------
10! $Id: impact_of_latent_heat.f90 72 2007-03-19 08:20:46Z raasch $
11! Calculation extended for gridpoint nzt
12!
13! 19 2007-02-23 04:53:48Z raasch
14!
15! RCS Log replace by Id keyword, revision history cleaned up
16!
17! Revision 1.5  2004/01/30 10:25:59  raasch
18! Scalar lower k index nzb replaced by 2d-array nzb_2d
19!
20! Revision 1.1  2000/04/13 14:48:40  schroeter
21! Initial revision
22!
23!
24! Description:
25! ------------
26! Calculate the impact of latent heat due to precipitation
27! (simplified Kessler scheme)
28!------------------------------------------------------------------------------!
29
30    PRIVATE
31    PUBLIC impact_of_latent_heat
32
33    INTERFACE impact_of_latent_heat
34       MODULE PROCEDURE impact_of_latent_heat
35       MODULE PROCEDURE impact_of_latent_heat_ij
36    END INTERFACE impact_of_latent_heat
37 
38 CONTAINS
39
40
41!------------------------------------------------------------------------------!
42! Call for all grid points
43!------------------------------------------------------------------------------!
44    SUBROUTINE impact_of_latent_heat
45
46       USE arrays_3d
47       USE cloud_parameters
48       USE constants
49       USE indices
50
51       IMPLICIT NONE
52
53       INTEGER ::  i, j, k
54       REAL    ::  dqdt_precip
55
56 
57       DO  i = nxl, nxr
58          DO  j = nys, nyn
59             DO  k = nzb_2d(j,i)+1, nzt
60
61                IF ( ql(k,j,i) > ql_crit )  THEN
62                   dqdt_precip = prec_time_const * ( ql(k,j,i) - ql_crit )
63                ELSE
64                   dqdt_precip = 0.0
65                ENDIF
66                tend(k,j,i) = tend(k,j,i) + dqdt_precip * l_d_cp * pt_d_t(k)
67
68             ENDDO
69          ENDDO
70       ENDDO
71
72    END SUBROUTINE impact_of_latent_heat
73
74
75!------------------------------------------------------------------------------!
76! Call for grid point i,j
77!------------------------------------------------------------------------------!
78    SUBROUTINE impact_of_latent_heat_ij( i, j )
79
80       USE arrays_3d
81       USE cloud_parameters
82       USE constants
83       USE indices
84   
85       IMPLICIT NONE
86
87       INTEGER ::  i, j, k
88       REAL    ::  dqdt_precip
89
90
91       DO  k = nzb_2d(j,i)+1, nzt
92
93          IF ( ql(k,j,i) > ql_crit )  THEN
94             dqdt_precip = prec_time_const * ( ql(k,j,i) - ql_crit )
95          ELSE
96             dqdt_precip = 0.0
97          ENDIF
98          tend(k,j,i) = tend(k,j,i) + dqdt_precip * l_d_cp * pt_d_t(k)
99
100       ENDDO
101
102    END SUBROUTINE impact_of_latent_heat_ij
103
104 END MODULE impact_of_latent_heat_mod
Note: See TracBrowser for help on using the repository browser.