!copyright (C) 2001 MSC-RPN COMM %%%RPNPHY%%% ***FUNCTION TPFUNCTION TP (PRESS,THETAE,TGS,D273,RL,QS,PI) 85 #include "impnone.cdk"
REAL TP,PRESS,THETAE,TGS,D273,RL,QS,PI * *Author * Da-Lin Zhang (Sept 25, 1986) * *Revision * 001 Stephane Belair (Oct 2003) - Add clips to secure the code * *Object * to convert from equivalent potential temperature * to temperature * *Arguments * * - Input - * PRESS pressure * THETAE equivalent potential temperature of environment * TGS input temperature * D273 = 1/273.16 * RL latent heat of vaporization * QS specific humidity in updraft * PI conversion factor from T to Theta * *Notes * ** * INTEGER COUNT REAL RL461,RL1004,RP,ES,FO,T1,TGUESS,F1,DT C C C...ITERATIVELY CONVERT TEMPERATURE FROM EQUIVALENT POTENTIAL C...TEMPERATURE. C COUNT = 0 RL461 = RL/461. RL1004 = RL/1004. RP = THETAE/PI ES = 611.*EXP(RL461*(D273-1./TGS)) ES = MIN(ES,0.5*PRESS) QS = .622*ES/(PRESS-ES+1.E-10) QS = MAX(QS,0.) QS = MIN(QS,0.050) FO = TGS*EXP(RL1004*QS/TGS)-RP T1 = TGS-.5*FO T1 = AMAX1( T1, 150.0 ) TGUESS = TGS 10 ES = 611.*EXP(RL461*(D273-1./T1)) ES = MIN(ES,0.5*PRESS) QS = .622*ES/(PRESS-ES+1.E-10) QS = MAX(QS,0.) QS = MIN(QS,0.050) F1 = T1*EXP(RL1004*QS/T1)-RP IF (ABS(F1).LT..05) GOTO 20 DT = F1*(T1-TGUESS)/(F1-FO+1.E-10) TGUESS = T1 FO = F1 T1 = T1-DT T1 = AMAX1( T1, 150.0 ) COUNT = COUNT + 1 IF (COUNT.GE.15) THEN TP = TGS RETURN ENDIF GOTO 10 C 20 TP = T1 RETURN END