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

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

typo in file headers removed

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