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

Last change on this file since 550 was 484, checked in by raasch, 14 years ago

typo in file headers removed

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