1 | ! |
---|
2 | !NCEP_MESO:MODEL_LAYER: PHYSICS |
---|
3 | ! |
---|
4 | !********************************************************************** |
---|
5 | SUBROUTINE CLTEND (ICLTEND,NPHS,T,T_OLD,T_ADJ & |
---|
6 | ,IDS,IDE,JDS,JDE,KDS,KDE & |
---|
7 | ,IMS,IME,JMS,JME,KMS,KME & |
---|
8 | ,ITS,ITE,JTS,JTE,KTS,KTE) |
---|
9 | !---------------------------------------------------------------------- |
---|
10 | !$$$ SUBPROGRAM DOCUMENTATION BLOCK |
---|
11 | ! . . . |
---|
12 | ! SUBPROGRAM: CLTEND TEMPERATURE CHANGE BY CLOUD PROCESSES |
---|
13 | ! PRGRMMR: FERRIER ORG: W/NP22 DATE: 01-09-26 |
---|
14 | ! |
---|
15 | ! ABSTRACT: |
---|
16 | ! CLTEND GRADUALLY UPDATES TEMPERATURE TENDENCIES FROM CONVECTION |
---|
17 | ! GRID-SCALE MICROPHYSICS, AND PRECIPITATION ASSIMILATION. |
---|
18 | ! |
---|
19 | ! USAGE: CALL CLTEND FROM SOLVE_RUNSTEAM |
---|
20 | ! INPUT ARGUMENT LIST: |
---|
21 | ! ICLTEND - FLAG SET TO -1 PRIOR TO PHYSICS CALLS, 0 AFTER PHYSICS |
---|
22 | ! CALLS, AND 1 FOR UPDATING TEMPERATURES EVERY TIME STEP |
---|
23 | ! |
---|
24 | ! OUTPUT ARGUMENT LIST: NONE |
---|
25 | ! |
---|
26 | ! OUTPUT FILES: NONE |
---|
27 | ! |
---|
28 | ! SUBPROGRAMS CALLED: NONE |
---|
29 | ! |
---|
30 | ! UNIQUE: NONE |
---|
31 | ! |
---|
32 | ! LIBRARY: NONE |
---|
33 | ! |
---|
34 | ! ATTRIBUTES: |
---|
35 | ! LANGUAGE: FORTRAN 90 |
---|
36 | ! MACHINE : IBM SP |
---|
37 | !$$$ |
---|
38 | !---------------------------------------------------------------------- |
---|
39 | USE module_MPP |
---|
40 | ! |
---|
41 | IMPLICIT NONE |
---|
42 | ! |
---|
43 | !---------------------------------------------------------------------- |
---|
44 | ! |
---|
45 | INTEGER,INTENT(IN) :: ICLTEND & |
---|
46 | ,IDS,IDE,JDS,JDE,KDS,KDE & |
---|
47 | ,IMS,IME,JMS,JME,KMS,KME & |
---|
48 | ,ITS,ITE,JTS,JTE,KTS,KTE & |
---|
49 | ,NPHS |
---|
50 | ! |
---|
51 | REAL,DIMENSION(IMS:IME,KMS:KME,JMS:JME),INTENT(INOUT) :: T & |
---|
52 | ,T_ADJ & |
---|
53 | ,T_OLD |
---|
54 | ! |
---|
55 | !*** LOCAL VARIABLES |
---|
56 | ! |
---|
57 | INTEGER :: I,J,K |
---|
58 | ! |
---|
59 | REAL :: DELTPH |
---|
60 | ! |
---|
61 | !---------------------------------------------------------------------- |
---|
62 | !---------------------------------------------------------------------- |
---|
63 | ! |
---|
64 | IF(ICLTEND.LT.0)THEN |
---|
65 | DO J=JTS,JTE |
---|
66 | DO K=KTS,KTE |
---|
67 | DO I=ITS,ITE |
---|
68 | T_OLD(I,K,J)=T(I,K,J) |
---|
69 | ENDDO |
---|
70 | ENDDO |
---|
71 | ENDDO |
---|
72 | ELSEIF(ICLTEND.EQ.0)THEN |
---|
73 | DO J=JTS,JTE |
---|
74 | DO K=KTS,KTE |
---|
75 | DO I=ITS,ITE |
---|
76 | T_ADJ(I,K,J)=T(I,K,J)-T_OLD(I,K,J) |
---|
77 | T(I,K,J)=T_OLD(I,K,J) |
---|
78 | ENDDO |
---|
79 | ENDDO |
---|
80 | ENDDO |
---|
81 | ELSE |
---|
82 | DELTPH=1./REAL(NPHS) |
---|
83 | DO J=JTS,JTE |
---|
84 | DO K=KTS,KTE |
---|
85 | DO I=ITS,ITE |
---|
86 | T(I,K,J)=T(I,K,J)+DELTPH*T_ADJ(I,K,J) |
---|
87 | ENDDO |
---|
88 | ENDDO |
---|
89 | ENDDO |
---|
90 | ENDIF |
---|
91 | !---------------------------------------------------------------------- |
---|
92 | ! |
---|
93 | END SUBROUTINE CLTEND |
---|
94 | ! |
---|
95 | !---------------------------------------------------------------------- |
---|