SUBROUTINE SIGTOZ(ZZ,H,T,TLEV,ZLEV,FSM,IM,JM,KB) C------------------------------------------------------------------- C THIS ROUTINE LINERLY INTERPOLATES TLEV AT THE LEVEL, C ZLEV, FROM T LOCATED ON SIGMA LEVELS, ZZ. C ZLEV AND ZZ ARE NEGATIVE QUANTITIES. C A SEARCH IS MADE TO FIND ZZ(K)*H AND ZZ(K+1)*H WHICH C BRACKETS ZLEV; THEN THE INTERPOLATION IS MADE. C IN THE REGION < 0 and > ZZ(1) AND, IN THE REGION, C < ZZ(KB-1) and > -1, DATA IS EXTRAPOLATED. C NOTE THAT A NEW MASK ,FSM, IS CREATED. C C THE VALUES OF H SUPPLIED TO THIS SUBROUTINE SHOULD BE C APPROPRIATE TO THE VARIABLE T. FOR EXAMPLE, IF T IS THE C X-COMPONENT OF VELOCITY, H SHOULD THE AVERAGE OF DEPTH C AT I AND I-1. C------------------------------------------------------------------- DIMENSION ZZ(KB),H(IM,JM),T(IM,JM,KB),TLEV(IM,JM),FSM(IM,JM) TLEV=0. FSM=0. C DO 200 J=2,JM-1 DO 200 I=2,IM-1 IF(ZLEV.GT.ZZ(1)*H(I,J)) THEN K=1 TLEV(I,J)=T(I,J,K)+(ZLEV-ZZ(K)*H(I,J)) 1 *(T(I,J,K+1)-T(I,J,K))/((ZZ(K+1)-ZZ(K))*H(I,J)) GO TO 200 FSM(I,J)=1. ENDIF K=1 100 CONTINUE C C IF(ZLEV.LE.(ZZ(K)*H(I,J)).AND.ZLEV.GE.(ZZ(K+1)*H(I,J))) THEN TLEV(I,J)=T(I,J,K)+(ZLEV-ZZ(K)*H(I,J)) 1 *(T(I,J,K+1)-T(I,J,K))/((ZZ(K+1)-ZZ(K))*H(I,J)) FSM(I,J)=1. GO TO 200 ELSE K=K+1 IF(K.LT.(KB-1)) GO TO 100 ENDIF IF(ZLEV.LE.(ZZ(K)*H(I,J)).AND.ZLEV.GE.(-H(I,J))) THEN TLEV(I,J)=T(I,J,K-1)+(ZLEV-ZZ(K-1)*H(I,J)) 1 *(T(I,J,K)-T(I,J,K-1))/((ZZ(K)-ZZ(K-1))*H(I,J)) FSM(I,J)=1. ENDIF 200 CONTINUE RETURN END C