!
!##################################################################
!##################################################################
!###### ######
!###### SUBROUTINE PLOT ######
!###### ######
!###### Developed by ######
!###### Center for Analysis and Prediction of Storms ######
!###### University of Oklahoma ######
!###### ######
!##################################################################
!##################################################################
!
SUBROUTINE plot(ntx,nty,nptx,iproj,alatpro,alonpro,cint, & 11,1
latul,lonul,latlr,lonlr,glab,var)
!
!-----------------------------------------------------------------------
!
! PURPOSE:
!
! Plot an array given a projection type (iproj), the lat/lon of the
! corner points and the graphics label (glab) using NCAR graphics
! subroutines.
!
!-----------------------------------------------------------------------
!
!-----------------------------------------------------------------------
!
! AUTHOR: Dan Weber
! 1/12/94
!
! MODIFICATIONS:
!
! K. Brewster 1/30/95
! Calculates appropriate jgrd.
!
!-----------------------------------------------------------------------
!
! INPUT:
!
! ntx Dimension in the e-w direction for the plot array
! nty Dimension in the n-s direction for the plot array
! nptx Limiting dimension in the e-w direction for the plot array
! iproj Projection type for use in supmap
! alatpro Projection latitudes (true at)
! alonpro Projection longitude (true at)
! cint Contour interval to be passed to conrec.
!
! latul Latitude of the upper left corner of the area
! lonul Longitude of the upper left corner of the area
! latlr Latitude of the lower right corner of the area
! lonlr Longitude of the lower right corner of the area
! glab Label for the difference field plot
!
! var Variable to be contoured
!
! COMMON block variables:
!
! alatpro Projection latitudes (true at)
! alonpro Projection longitude (true at)
!
! SUPMAP variables:
!
! rota Rotation from the standard longitude
! jproj Projection type in supmap
! plat Standard Latitude of the projection
! plon Standard Longitude of the projection
! jlts Plot corners to be specified
! jgrd Control parameter for plotting lat/lon lines
! iout Control parameter for drawing US state outlines
! idot Control parameter for line type drawn
! ierr
!
! OUTPUT:
!
! Plot of h using supmap and conrec
!
!-----------------------------------------------------------------------
!
! Variable Declarations.
!
!-----------------------------------------------------------------------
!
IMPLICIT NONE
!
!-----------------------------------------------------------------------
!
! INPUT:
!
!-----------------------------------------------------------------------
!
INTEGER :: ntx ! Number of points to be plotted in the
! e-w direction
INTEGER :: nty ! Number of points to be plotted in the
! n-s direction
INTEGER :: nptx ! i dimension of the h array
INTEGER :: iproj ! Projection type defined by user
REAL :: alatpro(2) ! Projection latitudes (true at)
REAL :: alonpro ! Projection longitude (true at)
REAL :: cint ! Contour interval to be passed to conrec
REAL :: latul ! Latitude of the upper left corner
REAL :: lonul ! Longitude of the upper left corner
REAL :: latlr ! Latitude of the lower right corner
REAL :: lonlr ! Longitude of the lower right corner
CHARACTER (LEN=65) :: glab ! Label for the difference field plot
REAL :: var(nptx,nty) ! Variable to be contoured
!
!-----------------------------------------------------------------------
!
! SUPMAP variables:
!
!-----------------------------------------------------------------------
!
REAL :: rota ! rotation from the standard longitude
INTEGER :: jproj ! projection type in supmap
INTEGER :: jlts,jgrd,iout,idot
REAL :: plat,plon ! standard latitudes of the projection
PARAMETER (jlts = 2, & ! corners are specified
iout = 4, & ! draw all outlines
idot = 1 ) ! continuous lines -- idot=1 dotted
REAL :: plm1,plm2,plm3,plm4
!
!-----------------------------------------------------------------------
!
! Local miscellanenous variables
!
!-----------------------------------------------------------------------
!
INTEGER :: ierr
REAL :: degr
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
! Beginning of executable code...
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
plm1=latul
plm2=lonul
plm3=latlr
plm4=lonlr
ierr=100
degr=AMAX1(ABS(plm2-plm4),ABS(plm1-plm3))
IF(degr < 10.) THEN
jgrd=1
ELSE IF(degr < 20.) THEN
jgrd=2
ELSE IF(degr < 50.) THEN
jgrd=5
ELSE
jgrd=10
END IF
PRINT *,'entering plot'
IF(iproj == 1) THEN ! stereographic projection...
jproj=iproj
plat=90.
plon=0.
rota=alonpro
ELSE IF(iproj == 8) THEN ! cylindrical equidistant projection...
jproj=iproj
plat=0.
plon=0.
rota=0.
ELSE IF(iproj == 2) THEN ! lambert conformal projection...
jproj=3
plat=alatpro(1)
plon=alonpro
rota=alatpro(2)
ELSE IF(iproj == 3) THEN ! mercator conformal projection...
jproj=9
plat=0.
plon=0.
rota=0.
ELSE ! Projection type not supported by program...
PRINT *,'projection type not supported by the program'
PRINT *,'program will print iproject and stop'
PRINT *,'iproject=',iproj
CALL arpsstop
('arpsstop called from PLOT improper projection ',1)
END IF
PRINT *,'corners of the plot grid are',plm1,plm2,plm3,plm4
CALL set(0.,1.,0.,1.,0.1,0.9,0.1,0.9,1)
CALL wtstr(.5,.88,glab,15,0,0)
CALL supmap(jproj,plat,plon,rota,plm1,plm2, &
plm3,plm4,jlts,jgrd,iout,idot,ierr)
PRINT *,'entering conrec'
CALL conrec(var,nptx,ntx,nty,0.0,0.0,cint,-1,0,0)
CALL frame
PRINT *,'leaving plot'
RETURN
END SUBROUTINE plot
!
!##################################################################
!##################################################################
!###### ######
!###### SUBROUTINE PLOTINT ######
!###### ######
!###### Developed by ######
!###### Center for Analysis and Prediction of Storms ######
!###### University of Oklahoma ######
!###### ######
!##################################################################
!##################################################################
!
SUBROUTINE plotint(ntx,nty,nptx,iproj,alatpro,alonpro, & 2,1
latul,lonul,latlr,lonlr,glab,ivar)
!
!-----------------------------------------------------------------------
!
! PURPOSE:
!
! Plot an array given a projection type (iproj), the lat/lon of the
! corner points and the graphics label (glab) using NCAR graphics
! subroutines.
!
!-----------------------------------------------------------------------
!
!-----------------------------------------------------------------------
!
! AUTHOR: Dan Weber
! 1/12/94
!
! MODIFICATIONS:
!
! K. Brewster 1/30/95
! Calculates appropriate jgrd.
!
!-----------------------------------------------------------------------
!
! INPUT:
!
! ntx Dimension in the e-w direction for the plot array
! nty Dimension in the n-s direction for the plot array
! nptx Limiting dimension in the e-w direction for the plot array
! iproj Projection type for use in supmap
! alatpro Projection latitudes (true at)
! alonpro Projection longitude (true at)
!
! latul Latitude of the upper left corner of the area
! lonul Longitude of the upper left corner of the area
! latlr Latitude of the lower right corner of the area
! lonlr Longitude of the lower right corner of the area
! glab Label for the difference field plot
!
! h Variable to be contoured
!
! COMMON block variables:
!
! alatpro Projection latitudes (true at)
! alonpro Projection longitude (true at)
!
! SUPMAP variables:
!
! rota Rotation from the standard longitude
! jproj Projection type in supmap
! plat Standard Latitude of the projection
! plon Standard Longitude of the projection
! jlts Plot corners to be specified
! jgrd Control parameter for plotting lat/lon lines
! iout Control parameter for drawing US state outlines
! idot Control parameter for line type drawn
! ierr
!
! OUTPUT:
!
! Plot of h using supmap and conrec
!
!-----------------------------------------------------------------------
!
! Variable Declarations.
!
!-----------------------------------------------------------------------
!
IMPLICIT NONE
!
!-----------------------------------------------------------------------
!
! INPUT:
!
!-----------------------------------------------------------------------
!
INTEGER :: ntx ! Number of points to be plotted in the
! e-w direction
INTEGER :: nty ! Number of points to be plotted in the
! n-s direction
INTEGER :: nptx ! i dimension of the h array
INTEGER :: iproj ! Projection type defined by user
REAL :: alatpro(2) ! Projection latitudes (true at)
REAL :: alonpro ! Projection longitude (true at)
REAL :: latul ! Latitude of the upper left corner
REAL :: lonul ! Longitude of the upper left corner
REAL :: latlr ! Latitude of the lower right corner
REAL :: lonlr ! Longitude of the lower right corner
CHARACTER (LEN=65) :: glab ! Label for the difference field plot
INTEGER :: ivar(nptx,nty) ! Integer variable to be contoured
!
!-----------------------------------------------------------------------
!
! SUPMAP variables:
!
!-----------------------------------------------------------------------
!
REAL :: rota ! rotation from the standard longitude
INTEGER :: jproj ! projection type in supmap
INTEGER :: jlts,jgrd,iout,idot
REAL :: plat,plon ! standard latitudes of the projection
PARAMETER (jlts = 2, & ! corners are specified
iout = 4, & ! draw all outlines
idot = 1 ) ! continuous lines -- idot=1 dotted
REAL :: plm1,plm2,plm3,plm4
!
!-----------------------------------------------------------------------
!
! Local miscellanenous variables
!
!-----------------------------------------------------------------------
!
CHARACTER (LEN=6) :: FMT
CHARACTER (LEN=8) :: ch
INTEGER :: i,j
REAL :: xx1,xx2,yy1,yy2,zz1,zz2,ww1,ww2
INTEGER :: ll
INTEGER :: ierr
INTEGER :: ifmt
REAL :: degr
REAL :: rgb(3,14)
INTEGER :: ioc(14)
DATA ioc / 6,2,5,12,10,11,1,3,4,8,9,7,13,14 /
DATA rgb / 0.00 , 0.00 , 0.00 , &
0.75 , 0.50 , 1.00 , &
0.50 , 0.00 , 1.00 , &
0.00 , 0.00 , 1.00 , &
0.00 , 1.00 , 0.00 , &
0.25 , 0.25 , 0.25 , &
0.00 , 1.00 , 0.60 , &
0.00 , 0.50 , 1.00 , &
0.70 , 1.00 , 0.00 , &
0.00 , 0.00 , 1.00 , &
1.00 , 0.75 , 0.00 , &
1.00 , 0.00 , 0.00 , &
1.00 , 0.00 , 0.75 , &
0.00 , 0.80 , 0.10 /
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
! Beginning of executable code...
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
plm1=latul
plm2=lonul
plm3=latlr
plm4=lonlr
ierr=100
degr=AMAX1(ABS(plm2-plm4),ABS(plm1-plm3))
IF(degr < 10.) THEN
jgrd=1
ELSE IF(degr < 20.) THEN
jgrd=2
ELSE IF(degr < 50.) THEN
jgrd=5
ELSE
jgrd=10
END IF
PRINT *,'entering plot'
IF(iproj == 1) THEN ! stereographic projection...
jproj=iproj
plat=90.
plon=0.
rota=alonpro
ELSE IF(iproj == 8) THEN ! cylindrical equidistant projection...
jproj=iproj
plat=0.
plon=0.
rota=0.
ELSE IF(iproj == 2) THEN ! lambert conformal projection...
jproj=3
plat=alatpro(1)
plon=alonpro
rota=alatpro(2)
ELSE IF(iproj == 3) THEN ! mercator conformal projection...
jproj=9
plat=0.
plon=0.
rota=0.
ELSE ! Projection type not supported by program...
PRINT *,'projection type not supported by the program'
PRINT *,'program will print iproject and stop'
PRINT *,'iproject=',iproj
CALL arpsstop
('arpsstop called from PLOTINT improper projection ',1)
END IF
DO j=1,14
i=ioc(j)
CALL gscr(1,j,rgb(1,i),rgb(2,i),rgb(3,i))
END DO
CALL set(0.,1.,0.,1.,0.1,0.9,0.1,0.9,1)
CALL wtstr(.5,.88,glab,15,0,0)
CALL supmap(jproj,plat,plon,rota,plm1,plm2, &
plm3,plm4,jlts,jgrd,iout,idot,ierr)
PRINT *,'corners of the plot grid are',plm1,plm2,plm3,plm4
CALL getset(xx1,xx2,yy1,yy2,zz1,zz2,ww1,ww2,ll)
CALL set(xx1,xx2,yy1,yy2,1.0,FLOAT(nptx+1),1.0,FLOAT(nty),1)
DO j=1,nty
DO i=1,nptx
ifmt = nint( LOG10(FLOAT(ivar(i,j))) ) + 1
WRITE(FMT,'(a,i1,a)') '(i',ifmt,')'
WRITE(ch,FMT) ivar(i,j)
CALL gsplci(ivar(i,j))
CALL pwritx(FLOAT(i),FLOAT(j),ch(1:ifmt),2,8,0,0)
END DO
END DO
CALL frame
PRINT *,'leaving plot'
RETURN
END SUBROUTINE plotint