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

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

preliminary changes for precipitation output

  • Property svn:keywords set to Id
File size: 2.6 KB
RevLine 
[1]1 MODULE impact_of_latent_heat_mod
2
3!------------------------------------------------------------------------------!
4! Actual revisions:
5! -----------------
[72]6! precipitation_rate renamed dqdt_precip
[1]7!
8! Former revisions:
9! -----------------
[3]10! $Id: impact_of_latent_heat.f90 72 2007-03-19 08:20:46Z raasch $
[39]11! Calculation extended for gridpoint nzt
12!
13! 19 2007-02-23 04:53:48Z raasch
14!
[3]15! RCS Log replace by Id keyword, revision history cleaned up
16!
[1]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
[72]54       REAL    ::  dqdt_precip
[1]55
56 
57       DO  i = nxl, nxr
58          DO  j = nys, nyn
[19]59             DO  k = nzb_2d(j,i)+1, nzt
[1]60
61                IF ( ql(k,j,i) > ql_crit )  THEN
[72]62                   dqdt_precip = prec_time_const * ( ql(k,j,i) - ql_crit )
[1]63                ELSE
[72]64                   dqdt_precip = 0.0
[1]65                ENDIF
[72]66                tend(k,j,i) = tend(k,j,i) + dqdt_precip * l_d_cp * pt_d_t(k)
[1]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
[72]87       INTEGER ::  i, j, k
88       REAL    ::  dqdt_precip
[1]89
90
[19]91       DO  k = nzb_2d(j,i)+1, nzt
[1]92
93          IF ( ql(k,j,i) > ql_crit )  THEN
[72]94             dqdt_precip = prec_time_const * ( ql(k,j,i) - ql_crit )
[1]95          ELSE
[72]96             dqdt_precip = 0.0
[1]97          ENDIF
[72]98          tend(k,j,i) = tend(k,j,i) + dqdt_precip * l_d_cp * pt_d_t(k)
[1]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.