*IF DEF,A18_1A,OR,DEF,A18_2A,OR,DEF,RECON VSB1F304.153 C ******************************COPYRIGHT****************************** GTS2F400.3907 C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved. GTS2F400.3908 C GTS2F400.3909 C Use, duplication or disclosure of this code is subject to the GTS2F400.3910 C restrictions as set forth in the contract. GTS2F400.3911 C GTS2F400.3912 C Meteorological Office GTS2F400.3913 C London Road GTS2F400.3914 C BRACKNELL GTS2F400.3915 C Berkshire UK GTS2F400.3916 C RG12 2SZ GTS2F400.3917 C GTS2F400.3918 C If no contract has been raised with this copy of the code, the use, GTS2F400.3919 C duplication or disclosure of it is strictly prohibited. Permission GTS2F400.3920 C to do so must first be obtained in writing from the Head of Numerical GTS2F400.3921 C Modelling at the above address. GTS2F400.3922 C ******************************COPYRIGHT****************************** GTS2F400.3923 C GTS2F400.3924 CLL SUBROUTINE HMRTORH ------------------------------------------------ HMR2RH1A.3 CLL HMR2RH1A.4 CLL Purpose : Convert Humidity Mixing Ratio to Relative Humidity HMR2RH1A.5 CLL and vice versa. Option to re-initialise cloud water HMR2RH1A.6 CLL from rh and temp. HMR2RH1A.7 CLL HMR2RH1A.8 CLL KRMODE = 1 - For HMR to RH HMR2RH1A.9 CLL KRMODE = 2 - For RH to HMR HMR2RH1A.10 CLL HMR2RH1A.12 CLL Model Modification history from model version 3.0: HMR2RH1A.13 CLL version date HMR2RH1A.14 CLL AD100293.11 CLL 3.1 10/02/93 Hardwired calls to TIMER removed AD100293.12 CLL Author: A. Dickinson Reviewer: F. Rawlins AD100293.13 CLL 3.4 07/09/94 Remove cloud water/ice and KRMODE=3 option ABM1F304.223 CLL Remove RHCRIT from arg list & ref to REINITQC ABM1F304.224 CLL Bruce M ABM1F304.225 CLL 3.4 19/09/94 Make available to A18_2A S Bell VSB1F304.154 CLL HMR2RH1A.15 CLL Programming Standard : UM Doc Paper No 4 ; Version 3 ; 7/9/90 HMR2RH1A.16 CLL HMR2RH1A.17 CLL Project Task : P3 HMR2RH1A.18 CLL HMR2RH1A.19 CLLEND------------------------------------------------------------------ HMR2RH1A.20 C*L Arguments HMR2RH1A.21SUBROUTINE HMRTORH (KRMODE,AK,BK,EXNER, 2,1HMR2RH1A.22 + PSTAR,THETA,RH, HMR2RH1A.23 + P_FIELD,P_LEVELS,Q_LEVELS, HMR2RH1A.25 + AKH,BKH,ICODE,CMESSAGE) HMR2RH1A.26 IMPLICIT NONE HMR2RH1A.27 *CALL ACPARM
HMR2RH1A.28 *CALL COMACP
HMR2RH1A.29 C----------------------------------------------------------------------- HMR2RH1A.30 INTEGER KRMODE HMR2RH1A.31 INTEGER P_FIELD,P_LEVELS,Q_LEVELS HMR2RH1A.32 REAL AK(P_LEVELS) ! IN Hybrid cordinates. A and B values HMR2RH1A.33 REAL BK(P_LEVELS) ! at model full levels. HMR2RH1A.34 REAL AKH(P_LEVELS+1) ! IN Hybrid coordinates. A and B values HMR2RH1A.35 REAL BKH(P_LEVELS+1) ! at model half levels. HMR2RH1A.36 REAL EXNER (P_FIELD,P_LEVELS+1) HMR2RH1A.37 REAL PSTAR (P_FIELD) HMR2RH1A.38 REAL THETA (P_FIELD,P_LEVELS) HMR2RH1A.39 REAL RH (P_FIELD,Q_LEVELS) HMR2RH1A.40 HMR2RH1A.44 INTEGER ICODE HMR2RH1A.45 CHARACTER*256 CMESSAGE HMR2RH1A.46 C======================================================================= HMR2RH1A.47 C UM Constant comdeck HMR2RH1A.48 *CALL C_R_CP
HMR2RH1A.49 C----------------------------------------------------------------------- HMR2RH1A.50 C Dynamic allocation HMR2RH1A.51 REAL PRESSURE (P_FIELD) HMR2RH1A.52 REAL TEMP (P_FIELD) HMR2RH1A.53 REAL SMR (P_FIELD) HMR2RH1A.54 C======================================================================= HMR2RH1A.55 C Local variables HMR2RH1A.56 INTEGER JLEV,J HMR2RH1A.57 REAL P_JLEV1,P_JLEV ! Pressure at half levels jlev+1 and jlev HMR2RH1A.58 REAL EXNER_FULL ! Exner Pressure at full model level HMR2RH1A.59 HMR2RH1A.60 C======================================================================= HMR2RH1A.61 EXTERNAL QSAT,TIMER ABM1F304.226 C======================================================================= HMR2RH1A.63 *CALL P_EXNERC
HMR2RH1A.64 HMR2RH1A.65 HMR2RH1A.67 DO JLEV=1,Q_LEVELS HMR2RH1A.68 HMR2RH1A.69 C Convert Theta to Temperature HMR2RH1A.70 C ---------------------------- HMR2RH1A.71 DO J=1,P_FIELD HMR2RH1A.72 P_JLEV1 = AKH(JLEV+1) + BKH(JLEV+1)*PSTAR(J) HMR2RH1A.73 P_JLEV = AKH(JLEV) + BKH(JLEV) *PSTAR(J) HMR2RH1A.74 EXNER_FULL = P_EXNER_C HMR2RH1A.75 + (EXNER(J,JLEV+1),EXNER(J,JLEV),P_JLEV1,P_JLEV,KAPPA) HMR2RH1A.76 TEMP(J) = THETA(J,JLEV) * EXNER_FULL HMR2RH1A.77 ENDDO HMR2RH1A.78 HMR2RH1A.79 C Get Pressure HMR2RH1A.80 C ------------ HMR2RH1A.81 DO J=1,P_FIELD HMR2RH1A.82 PRESSURE(J) = BK(JLEV)*PSTAR(J) HMR2RH1A.83 PRESSURE(J) = AK(JLEV)+PRESSURE(J) HMR2RH1A.84 ENDDO HMR2RH1A.85 HMR2RH1A.86 C Obtain Saturated Mixing Ratio HMR2RH1A.87 C ----------------------------- HMR2RH1A.88 CALL QSAT
(SMR,TEMP,PRESSURE,P_FIELD) HMR2RH1A.90 HMR2RH1A.92 IF (KRMODE.EQ.1) THEN HMR2RH1A.93 HMR2RH1A.94 C Convert Mixing Ratio to Relative Humidity HMR2RH1A.95 C ----------------------------------------- HMR2RH1A.96 DO J=1,P_FIELD HMR2RH1A.97 RH(J,JLEV) = RH(J,JLEV)/SMR(J) HMR2RH1A.98 RH(J,JLEV) = RH(J,JLEV)*100.0 HMR2RH1A.99 ENDDO HMR2RH1A.100 HMR2RH1A.101 ELSEIF (KRMODE.EQ.2) THEN ABM1F304.227 HMR2RH1A.113 C Convert Relative Humidity to Mixing Ratio HMR2RH1A.114 C ----------------------------------------- HMR2RH1A.115 DO J=1,P_FIELD HMR2RH1A.116 RH(J,JLEV) = RH(J,JLEV)*SMR(J) HMR2RH1A.117 RH(J,JLEV) = RH(J,JLEV)*0.01 HMR2RH1A.118 ENDDO HMR2RH1A.119 HMR2RH1A.120 HMR2RH1A.121 ENDIF HMR2RH1A.122 HMR2RH1A.123 ENDDO HMR2RH1A.124 HMR2RH1A.125 RETURN HMR2RH1A.127 END HMR2RH1A.128 *ENDIF HMR2RH1A.129