merge standard release WRF/WPS V3.0.1.1 into wrffire
[wrffire.git] / wrfv2_fire / dyn_nmm / CLTEND.F
blob0dc4bfea78ba5615e8b770acc1b544f8b7878425
2 !NCEP_MESO:MODEL_LAYER: PHYSICS
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
41       IMPLICIT NONE
43 !----------------------------------------------------------------------
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
51       REAL,DIMENSION(IMS:IME,JMS:JME,KMS:KME),INTENT(INOUT) :: T       &
52                                                               ,T_ADJ   &
53                                                               ,T_OLD
55 !***  LOCAL VARIABLES 
57       INTEGER :: I,J,K
59       REAL :: DELTPH
61 !----------------------------------------------------------------------
62 !----------------------------------------------------------------------
64       IF(ICLTEND<0)THEN
65         DO K=KTS,KTE
66         DO J=JTS,JTE
67         DO I=ITS,ITE
68           T_OLD(I,J,K)=T(I,J,K)
69         ENDDO
70         ENDDO
71         ENDDO
72       ELSEIF(ICLTEND==0)THEN
73         DO K=KTS,KTE
74         DO J=JTS,JTE
75         DO I=ITS,ITE
76           T_ADJ(I,J,K)=T(I,J,K)-T_OLD(I,J,K)
77           T(I,J,K)=T_OLD(I,J,K)
78         ENDDO
79         ENDDO
80         ENDDO
81       ELSE
82         DELTPH=1./REAL(NPHS)
83         DO K=KTS,KTE
84         DO J=JTS,JTE
85         DO I=ITS,ITE
86           T(I,J,K)=T(I,J,K)+DELTPH*T_ADJ(I,J,K)
87         ENDDO
88         ENDDO
89         ENDDO
90       ENDIF
91 !----------------------------------------------------------------------
93       END SUBROUTINE CLTEND
95 !----------------------------------------------------------------------