C-------------------------------------------------------------------- SUBROUTINE ROTLLE(U,V,VLAT,VLON,LMAX) C C SUBPROGRAM: ROTLLE ROTATE WINDS ON LAT/LONG GRID TO E-GRID C PRGMMR: T.BLACK ORG: W/NMC22 DATE: ??-??-?? C C ABSTRACT: ROTATES WINDS ON THE LAT/LONG GRID TO THE ETA MODEL GRID C C PROGRAM HISTORY LOG: C ??-??-?? T.BLACK C C USAGE CALL ROTLLE(U,V,VLAT,VLON) C INPUT ARGUMENT LIST: C U -LAT/LONG U-COMPONENT C V -LAT/LONG V-COMPONENT C VLAT -LATITUDE OF E-GRID V POINTS (DEGREES) C VLON -LONGITUDE OF E-GRID V POINTS (DEGREES) C C OUTPUT ARGUMENT LIST: C U -ETA GRID U-COMPONENT C V -ETA GRID V-COMPONENT C C ATTRIBUTES: C LANGUAGE: FORTRAN 77 C MACHINE: CRAY C C*** C*** ROTATE THE LAT-LON WINDS TO THE E-GRID C*** C C N O T E : INPUT LAT/LONG MUST BE CONVERTED TO RADIANS !!! C INCLUDE "parmlbc" P A R A M E T E R 1 (D2RAD=1.745329E-2) D I M E N S I O N 1 U(KB,LMAX),V(KB,LMAX),VLAT(KB),VLON(KB) C---------------------------------------------------------------------- ERLAM0 = (360.0 + TLM0D) * D2RAD ERPHI0 = TPH0D * D2RAD SPHI0=SIN(ERPHI0) CPHI0=COS(ERPHI0) DO 100 L=1,KB TLAT=VLAT(L)*D2RAD TLON=VLON(L)*D2RAD RELM=TLON-ERLAM0 SRLM=SIN(RELM) CRLM=COS(RELM) SPH=SIN(TLAT) CPH=COS(TLAT) CC=CPH*CRLM TPH=ASIN(CPHI0*SPH-SPHI0*CC) RCTPH=1.0/COS(TPH) CRAY=SPHI0*SRLM*RCTPH DRAY=(CPHI0*CPH+SPHI0*SPH*CRLM)*RCTPH DO 100 K=1,LMAX RU=DRAY*U(L,K)-CRAY*V(L,K) RV=CRAY*U(L,K)+DRAY*V(L,K) U(L,K)=RU V(L,K)=RV 100 CONTINUE RETURN END