SUBROUTINE RDTEMP(NTSD,DT,JULDAY,JULYR,XTIME,IHRST,GLAT,GLON & & ,CZEN,CZMEAN,T,RSWTT,RLWTT,HBM2 & & ,IDS,IDE,JDS,JDE,KDS,KDE & & ,IMS,IME,JMS,JME,KMS,KME & & ,ITS,ITE,JTS,JTE,KTS,KTE) USE MODULE_MPP USE MODULE_RA_GFDLETA,ONLY : CAL_MON_DAY,ZENITH IMPLICIT NONE INTEGER,INTENT(IN) :: IDS,IDE,JDS,JDE,KDS,KDE & & ,IMS,IME,JMS,JME,KMS,KME & & ,ITS,ITE,JTS,JTE,KTS,KTE INTEGER,INTENT(IN) :: IHRST,JULDAY,JULYR,NTSD REAL,INTENT(IN) :: DT,XTIME REAL,DIMENSION(IMS:IME,JMS:JME),INTENT(IN) :: CZMEAN,GLAT,GLON & & ,HBM2 REAL,DIMENSION(IMS:IME,JMS:JME,KMS:KME),INTENT(IN) :: RLWTT & & ,RSWTT REAL,DIMENSION(IMS:IME,JMS:JME,KMS:KME),INTENT(INOUT) :: T REAL,DIMENSION(IMS:IME,JMS:JME),INTENT(OUT) :: CZEN INTEGER :: I,J,JDAY,JMONTH,K INTEGER,DIMENSION(3) :: IDAT REAL :: DAYI,HOUR,TIMES,TTNDKL REAL,DIMENSION(IMS:IME,JMS:JME) :: CZEN2,XLAT2,XLON2 REAL,DIMENSION(ITS:ITE,JTS:JTE) :: FACTR REAL :: DEGRAD=3.1415926/180. real :: xlat1,xlon1 MYIS=MAX(IDS,ITS) MYIE=MIN(IDE,ITE) MYJS=MAX(JDS,JTS) MYJE=MIN(JDE,JTE) TIMES=XTIME*60. DO J=MYJS,MYJE DO I=MYIS,MYIE XLAT2(I,J)=GLAT(I,J) XLON2(I,J)=GLON(I,J) ENDDO ENDDO CALL CAL_MON_DAY(JULDAY,JULYR,JMONTH,JDAY) IDAT(1)=JMONTH IDAT(2)=JDAY IDAT(3)=JULYR CALL ZENITH(TIMES,DAYI,HOUR,IDAT,IHRST,XLON2,XLAT2,CZEN2 & & ,MYIS,MYIE,MYJS,MYJE & & ,IDS,IDE,JDS,JDE,KDS,KDE & & ,IMS,IME,JMS,JME,KMS,KME & & ,ITS,ITE,JTS,JTE,KTS,KTE) DO J=MYJS,MYJE DO I=MYIS,MYIE CZEN(I,J)=CZEN2(I,J) IF(CZMEAN(I,J)>0.)THEN FACTR(I,J)=CZEN(I,J)/CZMEAN(I,J) ELSE FACTR(I,J)=0. ENDIF ENDDO ENDDO DO K=KTS,KTE DO J=MYJS,MYJE DO I=MYIS,MYIE TTNDKL=RSWTT(I,J,K)*FACTR(I,J)+RLWTT(I,J,K) T(I,J,K)=T(I,J,K)+TTNDKL*DT*HBM2(I,J) ENDDO ENDDO ENDDO END SUBROUTINE RDTEMP