*IF DEF,A05_2A,OR,DEF,A05_2C,OR,DEF,A05_3B,OR,DEF,A05_3C AJX1F405.189 C ******************************COPYRIGHT****************************** GTS2F400.10135 C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved. GTS2F400.10136 C GTS2F400.10137 C Use, duplication or disclosure of this code is subject to the GTS2F400.10138 C restrictions as set forth in the contract. GTS2F400.10139 C GTS2F400.10140 C Meteorological Office GTS2F400.10141 C London Road GTS2F400.10142 C BRACKNELL GTS2F400.10143 C Berkshire UK GTS2F400.10144 C RG12 2SZ GTS2F400.10145 C GTS2F400.10146 C If no contract has been raised with this copy of the code, the use, GTS2F400.10147 C duplication or disclosure of it is strictly prohibited. Permission GTS2F400.10148 C to do so must first be obtained in writing from the Head of Numerical GTS2F400.10149 C Modelling at the above address. GTS2F400.10150 C ******************************COPYRIGHT****************************** GTS2F400.10151 C GTS2F400.10152 CLL SUBROUTINE TERMDD------------------------------------------------- TERMDD2A.3 CLL TERMDD2A.4 CLL PURPOSE : CALCULATE WHETHER DOWNDRAUGHT IS ABLE TO CONTINUE TERMDD2A.5 CLL TERMDD2A.6 CLL CALCULATE BUOYANCY TERMDD2A.7 CLL TERMDD2A.8 CLL SUITABLE FOR SINGLE COLUMN MODEL USE TERMDD2A.9 CLL TERMDD2A.10 CLL CODE WRITTEN FOR CRAY Y-MP BY S.BETT AND D.GREGORY TERMDD2A.11 CLL TERMDD2A.12 CLL MODEL MODIFICATION HISTORY FROM MODEL VERSION 3.0: TERMDD2A.13 CLL VERSION DATE TERMDD2A.14 CLL TERMDD2A.15 CLL PROGRAMMING STANDARDS : UNIFIED MODEL DOCUMENTATION PAPER NO. 3 TERMDD2A.16 CLL VERSION NO. 4 DATED 5/2/92 TERMDD2A.17 CLL TERMDD2A.18 CLL SYSTEM TASK : P27 TERMDD2A.19 CLL TERMDD2A.20 CLL DOCUMENTATION : UNIFIED MODEL DOCUMENTATION PAPER P27 TERMDD2A.21 CLL TERMDD2A.22 CLLEND----------------------------------------------------------------- TERMDD2A.23 C TERMDD2A.24 C*L ARGUMENTS--------------------------------------------------------- TERMDD2A.25 C TERMDD2A.26SUBROUTINE TERMDD (NPNTS,BDD_START,THDD_K,QDD_K,THE_K,QE_K,K, 3TERMDD2A.27 * B_DD_END,BDD_ON) TERMDD2A.28 C TERMDD2A.29 IMPLICIT NONE TERMDD2A.30 C TERMDD2A.31 C----------------------------------------------------------------------- TERMDD2A.32 C MODEL CONSTANTS USED IN THIS ROUTINE TERMDD2A.33 C----------------------------------------------------------------------- TERMDD2A.34 C TERMDD2A.35 *CALL C_EPSLON
TERMDD2A.36 *CALL DDKMDET
TERMDD2A.37 C TERMDD2A.38 C----------------------------------------------------------------------- TERMDD2A.39 C VECTOR LENGTHS AND LOOP COUNTERS TERMDD2A.40 C----------------------------------------------------------------------- TERMDD2A.41 C TERMDD2A.42 INTEGER NPNTS ! IN VECTOR LENGTH TERMDD2A.43 C TERMDD2A.44 INTEGER I ! LOOP COUNTER TERMDD2A.45 C TERMDD2A.46 INTEGER K ! IN PRESENT MODEL LAYER TERMDD2A.47 C TERMDD2A.48 C----------------------------------------------------------------------- TERMDD2A.49 C VARIABLES WHICH ARE INPUT TERMDD2A.50 C----------------------------------------------------------------------- TERMDD2A.51 C TERMDD2A.52 REAL THDD_K(NPNTS) ! IN MODEL POTENTIAL TEMPERATURE TERMDD2A.53 ! OF DOWNDRAUGHT AT LAYER K (K) TERMDD2A.54 C TERMDD2A.55 REAL QDD_K(NPNTS) ! IN MODEL MIXING RATIO OF TERMDD2A.56 ! DOWNDRAUGHT AT LAYER K TERMDD2A.57 C TERMDD2A.58 REAL THE_K(NPNTS) ! IN POTENTIAL TEMPERATURE OF TERMDD2A.59 ! ENVIRONMENTAL AIR IN LAYER K TERMDD2A.60 C TERMDD2A.61 REAL QE_K(NPNTS) ! IN MODEL MIXING RATIO AT LAYER K TERMDD2A.62 C TERMDD2A.63 LOGICAL BDD_START(NPNTS) ! IN MASK FOR THOSE POINTS WHERE TERMDD2A.64 ! DOWNDRAUGHT MAY OCCUR IN TERMDD2A.65 ! LAYER K-1 TERMDD2A.66 C TERMDD2A.67 C----------------------------------------------------------------------- TERMDD2A.68 C VARIABLES WHICH ARE OUTPUT TERMDD2A.69 C----------------------------------------------------------------------- TERMDD2A.70 C TERMDD2A.71 LOGICAL B_DD_END(NPNTS) ! OUT MASK FOR THOSE POINTS WHERE TERMDD2A.72 ! DOWNDRAUGHT IS TERMINATING TERMDD2A.73 C TERMDD2A.74 LOGICAL BDD_ON(NPNTS) ! OUT MASK FOR THOSE POINTS WHERE TERMDD2A.75 ! DOWNDRAUGHT CONTINUES TO LAYER TERMDD2A.76 ! K-1 (AS BDD_START HERE) TERMDD2A.77 C TERMDD2A.78 C----------------------------------------------------------------------- TERMDD2A.79 C VARIABLES WHICH ARE DEFINED LOCALLY TERMDD2A.80 C----------------------------------------------------------------------- TERMDD2A.81 C TERMDD2A.82 REAL BUOY1 ! BUOYANCY OF PARCEL TERMDD2A.83 C TERMDD2A.84 REAL THDD_V ! USED IN CALCULATION OF BUOYANCY TERMDD2A.85 C TERMDD2A.86 REAL THE_V ! USED IN CALCULATION OF BUOYANCY TERMDD2A.87 C TERMDD2A.88 C----------------------------------------------------------------------- TERMDD2A.89 C CHECK IF PARCEL STILL NEGATIVELY BUOYANT SUCH THAT DOWNDRAUGHT TERMDD2A.90 C CAN CONTINUE TO NEXT LAYER TERMDD2A.91 C----------------------------------------------------------------------- TERMDD2A.92 C TERMDD2A.93 DO I=1,NPNTS TERMDD2A.94 THDD_V = THDD_K(I)*(1.0+C_VIRTUAL*QDD_K(I)) TERMDD2A.95 THE_V = THE_K(I)*(1.0+C_VIRTUAL*QE_K(I)) TERMDD2A.96 BUOY1 = THDD_V - THE_V TERMDD2A.97 C TERMDD2A.98 C----------------------------------------------------------------------- TERMDD2A.99 C CALCULATE STATE OF DOWNDRAUGHT TERMDD2A.100 C----------------------------------------------------------------------- TERMDD2A.101 C TERMDD2A.102 IF (BDD_START(I) .AND. BUOY1.GT.0.5) THEN TERMDD2A.103 BDD_ON(I) = .FALSE. TERMDD2A.104 ELSE IF (BUOY1.GT.0.5 .OR. K.EQ.2) THEN TERMDD2A.105 B_DD_END(I) = .TRUE. TERMDD2A.106 END IF TERMDD2A.107 END DO TERMDD2A.108 C TERMDD2A.109 RETURN TERMDD2A.110 END TERMDD2A.111 C TERMDD2A.112 *ENDIF TERMDD2A.113