SUBROUTINE PREPT(DRPTPS,DLONS,DLATS,DPRES,RTYPES,RSPRES, * MTDAT,PSG,NLAT,NLON,NSIG,GLATS,GLONS,SIGL) C$$$ SUBPROGRAM DOCUMENTATION BLOCK C . . . . C SUBPROGRAM: PREPT PRELIMINARY STUFF BEFORE RES. CALC. T C PRGMMR: PARRISH ORG: W/NMC22 DATE: 90-10-11 C C ABSTRACT: PRELIMINARY STUFF BEFORE RESIDUAL CALCULATION FOR TEMPS. C C PROGRAM HISTORY LOG: C 90-10-11 PARRISH C C INPUT ARGUMENT LIST: C DRPTPS - OBS TYPE IN, OBS ERROR OUT (LN(PS) UNITS) C DLONS,DLATS - OBS LONGITUDES AND LATITUDES (RADIANS IN AND OUT) C DPRES - PRES (MB*10+QM IN, GRID COORDS IN SIGMA OUT) C RTYPES - PREPDA OBSERVATION TYPES C MTDAT - NUMBER OF OBSERVATIONS C PSG - MODEL GUESS LOG(PSFC), P IN CB C NLAT - NUMBER OF GAUSSIAN LATS POLE TO POLE C NLON - NUMBER OF LONGITUDES C NSIG - NUMBER OF SIGMA LEVELS C GLATS,GLONS - GRID LATITUDES AND LONGITUDES C GLONS - GRID LONGITUDES C SIGL - SIGMA LAYER MIDPOINT VALUES C C OUTPUT ARGUMENT LIST: C RSPRES - OBSERVATION PRESSURES C AND AS INDICATED ABOVE C C ATTRIBUTES: C LANGUAGE: CFT77 C MACHINE: CRAY YMP C C$$$ C-------- C C-CRA DIMENSION DRPTPS(MTDAT),DLONS(MTDAT) C-CRA DIMENSION DLATS(MTDAT),DPRES(MTDAT) C-CRA DIMENSION PSG(NLAT+1,NLON+2) C-CRA DIMENSION GLATS(NLAT),GLONS(NLON),SIGL(NSIG) C-CRA DIMENSION RTYPES(MTDAT) C-CRA DIMENSION RSPRES(MTDAT) C-CRA DIMENSION RBPRES(MTDAT) C-CRA DIMENSION RBT(MTDAT) C-CRA DIMENSION RLOW(MTDAT),RHGH(MTDAT) C-CRA DIMENSION SIGLL(NSIG) C DIMENSION DRPTPS(_MTDAT_),DLONS(_MTDAT_) DIMENSION DRPTPS(60000),DLONS(60000) C DIMENSION DLATS(_MTDAT_),DPRES(_MTDAT_) DIMENSION DLATS(60000),DPRES(60000) DIMENSION PSG(96+1,192+2) DIMENSION GLATS(96),GLONS(192),SIGL(28) C DIMENSION RTYPES(_MTDAT_) DIMENSION RTYPES(60000) C DIMENSION RSPRES(_MTDAT_) DIMENSION RSPRES(60000) C DIMENSION RBPRES(_MTDAT_) DIMENSION RBPRES(60000) C DIMENSION RBT(_MTDAT_) DIMENSION RBT(60000) C DIMENSION RLOW(_MTDAT_),RHGH(_MTDAT_) DIMENSION RLOW(60000),RHGH(60000) DIMENSION SIGLL(28) C-------- C-------- LOCAL SPACE C-------- C-------- C-------- GET LOG(SIG) C-------- C-CRA SIGLL=LOG(SIGL) C DIMENSION SIGLL(NSIG) WRITE(6,*) 'SIGL' WRITE(6,*) (SIGL(ITMP),ITMP=1,NSIG) DO ITMP=1,NSIG SIGLL(ITMP)=LOG(SIGL(ITMP)) ENDDO C-------- C-------- CONVERT OBS LATS AND LONS TO GRID COORDINATES C-------- CALL GDCRDP(DLATS,MTDAT,GLATS,NLAT) CALL GDCRDP(DLONS,MTDAT,GLONS,NLON) C-------- C-------- 3. INTERPOLATE SURFACE PRESSURE C-------- C-------- OBTAIN GUESS SURFACE PRESSURE AT OBS LOCATIONS C-------- CALL INTRP2(PSG,RBPRES,DLATS,DLONS, * NLAT,NLON,MTDAT) C-------- C-------- CONVERT OBS PRESSURE TO SIGMA, THEN GET GRID COORDINATES C-------- C-CRA RSPRES=10.*EXP(DPRES) C DIMENSION RSPRES(MTDAT) DO ITMP=1,MTDAT RSPRES(ITMP)=10.*EXP(DPRES(ITMP)) ENDDO C-CRA DPRES=DPRES-RBPRES C DIMENSION DLATS(MTDAT),DPRES(MTDAT) DO ITMP=1,MTDAT DPRES(ITMP)=DPRES(ITMP)-RBPRES(ITMP) ENDDO CALL GDCRDN(DPRES,MTDAT,SIGLL,NSIG) DO 260 I=1,MTDAT IF(RTYPES(I) .GT. 179.5 .AND. RTYPES(I) .LT. 189.5)THEN IF(DPRES(I) .GT. 4.)DRPTPS(I)=1.E6 END IF 260 CONTINUE NUMLOW=0 NUMHGH=0 HGH=0. XLOW=0. DO 80 I=1,MTDAT RLOW(I)=DPRES(I)-1. RLOW(I)=MIN(0.,RLOW(I)) RLOW(I)=-RLOW(I) IF(RLOW(I).NE.0.) NUMLOW=NUMLOW+1 XLOW=MAX(RLOW(I),XLOW) RHGH(I)=DPRES(I)-NSIG-.05 RHGH(I)=MAX(0.,RHGH(I)) IF(RHGH(I).NE.0.) NUMHGH=NUMHGH+1 HGH=MAX(RHGH(I),HGH) 80 CONTINUE WRITE(6,900)MTDAT,NUMHGH,NUMLOW,HGH,XLOW 900 FORMAT(' NUMBER OF TEMPS=',I8,' NUMBER EXTRAPOLATED ABOVE', * ' TOP SIGMA LAYER=',I8,/,' NUMBER EXTRAPOLATED BELOW', * ' BOTTOM SIGMA LAYER=',I8,/,' LARGEST EXTRAPOLATION', * ' ABOVE=',F12.2,/,' LARGEST EXTRAPOLATION BELOW=',F12.2) DO 90 I=1,MTDAT IF(DRPTPS(I) .LE. 0.)THEN PRINT *,I,DRPTPS(I),RTYPES(I),DLATS(I),DPRES(I) DRPTPS(I)=1.E9 END IF DRPTPS(I)=1./(DRPTPS(I)+ * 1.E6*RHGH(I)+4.*RLOW(I))**2 90 CONTINUE RETURN END