*IF DEF,A05_2A,OR,DEF,A05_2C,OR,DEF,A05_3B AJX1F405.186
C ******************************COPYRIGHT****************************** GTS2F400.8407
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved. GTS2F400.8408
C GTS2F400.8409
C Use, duplication or disclosure of this code is subject to the GTS2F400.8410
C restrictions as set forth in the contract. GTS2F400.8411
C GTS2F400.8412
C Meteorological Office GTS2F400.8413
C London Road GTS2F400.8414
C BRACKNELL GTS2F400.8415
C Berkshire UK GTS2F400.8416
C RG12 2SZ GTS2F400.8417
C GTS2F400.8418
C If no contract has been raised with this copy of the code, the use, GTS2F400.8419
C duplication or disclosure of it is strictly prohibited. Permission GTS2F400.8420
C to do so must first be obtained in writing from the Head of Numerical GTS2F400.8421
C Modelling at the above address. GTS2F400.8422
C ******************************COPYRIGHT****************************** GTS2F400.8423
C GTS2F400.8424
CLL SUBROUTINE SATCAL------------------------------------------------- SATCAL2A.3
CLL SATCAL2A.4
CLL PURPOSE : CALCULATES SATURATED TEMPERATURE SATCAL2A.5
CLL SATCAL2A.6
CLL SUITABLE FOR SINGLE COLUMN MODEL USE SATCAL2A.7
CLL SATCAL2A.8
CLL CODE WRITTEN FOR CRAY Y-MP BY S.BETT AND D.GREGORY AUTUMN 1991 SATCAL2A.9
CLL SATCAL2A.10
CLL MODEL MODIFICATION HISTORY FROM MODEL VERSION 3.0: SATCAL2A.11
CLL VERSION DATE SATCAL2A.12
CLL 4.5 Jul. 98 Kill the IBM specific lines (JCThil) AJC1F405.17
CLL SATCAL2A.13
CLL PROGRAMMING STANDARDS : UNIFIED MODEL DOCUMENTATION PAPER NO. 3 SATCAL2A.14
CLL VERSION NO. 4 DATED 5/2/92 SATCAL2A.15
CLL SATCAL2A.16
CLL SYSTEM TASK : P27 SATCAL2A.17
CLL SATCAL2A.18
CLL DOCUMENTATION : UNIFIED MODEL DOCUMENTATION PAPER P27 SATCAL2A.19
CLL SATCAL2A.20
CLLEND----------------------------------------------------------------- SATCAL2A.21
C SATCAL2A.22
C*L ARGUMENTS--------------------------------------------------------- SATCAL2A.23
C SATCAL2A.24
SUBROUTINE SATCAL (NPNTS,T,TH,PK,QS,THDDS,K,EXK,Q_K,THE_K) 10,6SATCAL2A.25
C SATCAL2A.26
IMPLICIT NONE SATCAL2A.27
C SATCAL2A.28
C----------------------------------------------------------------------- SATCAL2A.29
C MODEL CONSTANTS SATCAL2A.30
C----------------------------------------------------------------------- SATCAL2A.31
C SATCAL2A.32
*CALL C_LHEAT
SATCAL2A.33
*CALL C_R_CP
SATCAL2A.34
*CALL C_0_DG_C
SATCAL2A.35
C SATCAL2A.36
C----------------------------------------------------------------------- SATCAL2A.37
C VECTOR LENGTHS AND LOOP COUNTERS SATCAL2A.38
C----------------------------------------------------------------------- SATCAL2A.39
C SATCAL2A.40
C SATCAL2A.44
INTEGER I ! LOOP COUNTER SATCAL2A.45
C SATCAL2A.46
INTEGER IC ! LOOP COUNTER SATCAL2A.47
C SATCAL2A.48
INTEGER NPNTS ! VECTOR LENGTH SATCAL2A.49
C SATCAL2A.50
INTEGER K ! IN PRESENT MODEL LAYER SATCAL2A.51
C SATCAL2A.52
C----------------------------------------------------------------------- SATCAL2A.53
C VARIABLES WHICH ARE INPUT SATCAL2A.54
C----------------------------------------------------------------------- SATCAL2A.55
C SATCAL2A.56
REAL TH(NPNTS) ! IN POTENTIAL TEMPERATURE (K) SATCAL2A.57
C SATCAL2A.58
REAL T(NPNTS) ! IN TEMPERATURE (K) SATCAL2A.59
C SATCAL2A.60
REAL PK(NPNTS) ! IN PRESSURE OF LAYER K (PA) SATCAL2A.61
C SATCAL2A.62
REAL Q_K(NPNTS) ! IN MIXING RATIO OF LAYER K (KG/KG) SATCAL2A.63
C SATCAL2A.64
REAL EXK(NPNTS) ! IN EXNER RATIO OF LAYER K SATCAL2A.65
C SATCAL2A.66
REAL THE_K(NPNTS) ! IN ENVIRONMENTAL POTENTIAL TEMPERATURE SATCAL2A.67
! IN LAYER K SATCAL2A.68
C SATCAL2A.69
C----------------------------------------------------------------------- SATCAL2A.70
C VARIABLES WHICH ARE OUTPUT SATCAL2A.71
C----------------------------------------------------------------------- SATCAL2A.72
C SATCAL2A.73
REAL QS(NPNTS) ! OUT SATURATED SPECIFIC HUMIDITY SATCAL2A.74
! (KG/KG) SATCAL2A.75
C SATCAL2A.76
REAL THDDS(NPNTS) ! OUT SATURATED ENVIRONMENTAL SATCAL2A.77
! POTENTIAL TEMPERATURE (K) SATCAL2A.78
C----------------------------------------------------------------------- SATCAL2A.79
C VARIABLES WHICH ARE LOCALLY DEFINED SATCAL2A.80
C----------------------------------------------------------------------- SATCAL2A.81
C SATCAL2A.82
REAL TS(NPNTS) ! SATURATED TEMPERATURE (K) SATCAL2A.92
C SATCAL2A.93
REAL T_FG(NPNTS) ! TEMPERATURE FIRST GUESS (K) SATCAL2A.94
C SATCAL2A.95
REAL TH_FG(NPNTS) ! POTENTIAL TEMPERATURE FIRST GUESS (K) SATCAL2A.96
C SATCAL2A.97
REAL DQBYDT(NPNTS) ! FIRST GUESS AT MIXING RATIO INCREMENT SATCAL2A.98
! (KG/KG/K) SATCAL2A.99
C SATCAL2A.100
REAL L ! LATENT HEAT SATCAL2A.102
C SATCAL2A.103
C SATCAL2A.104
C----------------------------------------------------------------------- SATCAL2A.105
C EXTERNAL ROUTINES CALLED SATCAL2A.106
C----------------------------------------------------------------------- SATCAL2A.107
C SATCAL2A.108
EXTERNAL QSAT, DQS_DTH SATCAL2A.109
C SATCAL2A.110
C----------------------------------------------------------------------- SATCAL2A.111
C SET INITIAL FIRST GUESS TEMPERATURE AND THETA - BASED UPON SATCAL2A.112
C ENVIRONMENTAL TEMPERATURE IN LAYER K SATCAL2A.113
C----------------------------------------------------------------------- SATCAL2A.114
C SATCAL2A.115
DO I=1,NPNTS SATCAL2A.116
TH_FG(I) = THE_K(I) SATCAL2A.117
T_FG(I) = TH_FG(I)*EXK(I) SATCAL2A.118
END DO SATCAL2A.119
C SATCAL2A.120
C---------------------------------------------------------------------- SATCAL2A.121
C CALCULATE QSAT FOR INITIAL FIRST GUESS TEMPERATURE SATCAL2A.122
C---------------------------------------------------------------------- SATCAL2A.123
C SATCAL2A.124
CALL QSAT
(QS,T_FG,PK,NPNTS) SATCAL2A.125
C SATCAL2A.126
C---------------------------------------------------------------------- SATCAL2A.127
C DO TWO ITERATIONS TO FIND SATURATION POINT DUE TO EVAPORATION SATCAL2A.128
C---------------------------------------------------------------------- SATCAL2A.129
C SATCAL2A.130
DO IC=1,2 SATCAL2A.131
C SATCAL2A.132
C---------------------------------------------------------------------- SATCAL2A.133
C CALCULATE DQSAT/DT FOR FIRST GUESS TEMPERATURE SATCAL2A.134
C---------------------------------------------------------------------- SATCAL2A.135
C SATCAL2A.136
CALL DQS_DTH
(DQBYDT,K,TH_FG,QS,EXK,NPNTS) SATCAL2A.137
C SATCAL2A.138
C---------------------------------------------------------------------- SATCAL2A.139
C CALCULATE UPDATED TEMPERATURE AT SATURATION SATCAL2A.140
C---------------------------------------------------------------------- SATCAL2A.141
C SATCAL2A.142
DO I=1,NPNTS SATCAL2A.143
C SATCAL2A.144
IF (T_FG(I).GT.TM) THEN SATCAL2A.145
L=LC SATCAL2A.146
ELSE SATCAL2A.147
L=LC+LF SATCAL2A.148
END IF SATCAL2A.149
C SATCAL2A.150
THDDS(I) = (TH(I) - (L/(CP*EXK(I)))*(QS(I)-Q_K(I)- SATCAL2A.151
* TH_FG(I)*DQBYDT(I))) / SATCAL2A.152
* (1+(L/(CP*EXK(I)))*DQBYDT(I)) SATCAL2A.153
C SATCAL2A.154
C---------------------------------------------------------------------- SATCAL2A.155
C CALCULATE TEMPERATURE AT SATURATION AND UPDATE FIRST GUESS SATCAL2A.156
C---------------------------------------------------------------------- SATCAL2A.157
C SATCAL2A.158
TH_FG(I) = THDDS(I) SATCAL2A.159
T_FG(I) = TH_FG(I)*EXK(I) SATCAL2A.160
C SATCAL2A.161
END DO SATCAL2A.162
C SATCAL2A.163
C---------------------------------------------------------------------- SATCAL2A.164
C CALCULATE REVISED SATURATION MIXING RATIO AT SATURATION SATCAL2A.165
C--------------------------------------------------------------------- SATCAL2A.166
C SATCAL2A.167
CALL QSAT
(QS,T_FG,PK,NPNTS) SATCAL2A.168
C SATCAL2A.169
END DO SATCAL2A.170
C SATCAL2A.171
RETURN SATCAL2A.172
END SATCAL2A.173
C SATCAL2A.174
*ENDIF SATCAL2A.175