SUBROUTINE HYDRO(NL,MSL,MEL,IPTIE,RE,XLAT,ZTM,PTM,TTM) CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C HYDRO HYDROSTATICALLY REBUILDS THE PRESSURE PROFILE FROM THE PRESSURE C TIE IN LEVEL, IPTIE, AFTER A CHANGE IN THE TEMPERATURE PROFILE HAS C BEEN MADE. C C SOFTWARE WRITTEN BY Benjamin T. Marshall. C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C (c) Copyright 1987-1999 by GATS, Inc. C 11864 Canon Blvd., Suite 101, Newport News, VA 23606 C Phone: (757) 873-5920 C C All Rights Reserved. No part of this software or publication may be C reproduced, stored in a retrieval system, or transmitted, in any form C or by any means, electronic, mechanical, photocopying, recording, or C otherwise without the prior written permission of GATS, Inc. C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC IMPLICIT NONE INTEGER NL REAL*4 ZTM(NL),PTM(NL),TTM(NL),RE,REARTH,XLAT,SZ,ZAV,DZ,DT,C,G, &TMEAN,DIFFMIN INTEGER MSL,MEL,IPTIE,MTIE,I DATA C/287.1/ CTM DIFFMIN is minimum Delta T to allow in hydrostatic calculation DATA DIFFMIN/0.1/ CTM Checks added to make sure MTIE is neither 1 nor NL. IF(MEL.LT.IPTIE) THEN MTIE=MEL ELSE MTIE=IPTIE-1 ENDIF IF(MTIE.GE.NL) MTIE=NL-1 DO 10 I=MTIE,MSL,-1 SZ=ZTM(I)+ZTM(I+1) ZAV=SZ/2.0 CALL RADGRAV(ZAV,XLAT,G,REARTH) DZ=1000.*(ZTM(I)-ZTM(I+1)) DT=TTM(I)-TTM(I+1) IF(ABS(DT).LT.DIFFMIN) THEN TMEAN=0.5*(TTM(I+1)+TTM(I)) PTM(I)=PTM(I+1)*EXP(-G*DZ/(C*TMEAN)) ELSE PTM(I)=PTM(I+1)*EXP(-G*DZ*ALOG(TTM(I)/TTM(I+1))/(C*DT)) ENDIF 10 CONTINUE IF(MSL.GT.IPTIE) THEN MTIE=MSL ELSE MTIE=IPTIE+1 ENDIF IF(MTIE.LE.1) MTIE=2 DO 20 I=MTIE,MEL SZ=ZTM(I)+ZTM(I-1) ZAV=SZ/2.0 CALL RADGRAV(ZAV,XLAT,G,REARTH) DZ=1000.*(ZTM(I)-ZTM(I-1)) DT=TTM(I)-TTM(I-1) IF(ABS(DT).LT.DIFFMIN) THEN TMEAN=0.5*(TTM(I)+TTM(I-1)) PTM(I)=PTM(I-1)*EXP(-G*DZ/(C*TMEAN)) ELSE PTM(I)=PTM(I-1)*EXP(-G*DZ*ALOG(TTM(I)/TTM(I-1))/(C*DT)) ENDIF 20 CONTINUE RETURN END