PROGRAM rdructrn,3 ! !----------------------------------------------------------------------- ! ! Reads RUC terrain file and converts it to an arps terrain ! file at the same resolution and map projection of the ! original MAPS/RUC grid. ! ! Compile: ! ! f77 -o rdructern rdructern.f maproj3d.f ! ! The output can then be used in PROGRAM MRGTRN ! ! Keith Brewster, July, 1996 ! !----------------------------------------------------------------------- ! IMPLICIT NONE INTEGER :: nx,ny PARAMETER (nx=81,ny=62) INTEGER :: mapproj REAL :: trulat1,trulat2 REAL :: trulon, sclfct REAL :: dx,dy PARAMETER ( mapproj = 1, & ! Polar Stereographic trulat1 = 40., & trulat2 = 40., & trulon = -105., & sclfct = 1., & dx = 60000., & dy = 60000.) CHARACTER (LEN=80) :: ructern PARAMETER( ructern= '/vortex/ructern/ructern.dat') CHARACTER (LEN=80) :: ruclatlon PARAMETER( ruclatlon= '/vortex/ructern/ruclatlon.dat') ! REAL :: hterain(nx,ny) REAL :: lat(nx,ny) REAL :: lon(nx,ny) ! ! Misc local variables ! REAL :: x0,y0,xctr,yctr REAL :: ctrlat,ctrlon REAL :: latnot(2) REAL :: gamma,knot,tol,rdnot,wdn,rdummy INTEGER :: analtype,ipass,itertype,idummy ! !----------------------------------------------------------------------- ! ! Set terrain analysis variables to dummy numbers ! !----------------------------------------------------------------------- ! gamma=0. knot=0. tol=0. rdnot=0. wdn=0. rdummy=0. analtype=0. ipass=0 itertype=0 idummy=0 ! !----------------------------------------------------------------------- ! ! Set map projection according to the parameters set above. ! !----------------------------------------------------------------------- ! latnot(1)=trulat1 latnot(2)=trulat2 CALL setmapr(mapproj,sclfct,latnot,trulon) ! !----------------------------------------------------------------------- ! ! Read the terrain, lat and lon from the maps terrain file, ! this was obtained from FSL. ! !----------------------------------------------------------------------- ! OPEN(31,FILE=trim(ruclatlon),STATUS='old',FORM='formatted') READ(31,805) lat READ(31,805) lon 805 FORMAT(10F8.3) CLOSE(31) OPEN(31,FILE=trim(ructern),STATUS='old',FORM='formatted') READ(31,805) hterain ! !----------------------------------------------------------------------- ! ! Calculate ctrlat and ctrlon ! This definition of "center" is to be consistent with ARPS ! where the scalar grid runs from 1 to nx-1. ! !----------------------------------------------------------------------- ! CALL lltoxy(1,1,lat(1,1),lon(1,1),x0,y0) xctr=x0+0.5*FLOAT(nx-3)*dx yctr=y0+0.5*FLOAT(ny-3)*dy CALL xytoll(1,1,xctr,yctr,ctrlat,ctrlon) WRITE(6,'(a,2f11.4)') ' LL RUC corner ',lat(1,1),lon(1,1) WRITE(6,'(a,2f11.4)') ' UR RUC corner ',lat(nx,ny),lon(nx,ny) WRITE(6,'(a,2f11.4)') ' RUC center ',ctrlat,ctrlon ! !----------------------------------------------------------------------- ! ! Write the analyzed terrain data (model grid data) into file ! arpstern.dat. ! !----------------------------------------------------------------------- ! OPEN(11,FILE='arpsructern.dat',FORM='unformatted', & STATUS='unknown') WRITE(11) nx,ny idummy = 0 rdummy = 0.0 WRITE(11) analtype,mapproj,itertype,ipass,idummy, & idummy,idummy,idummy,idummy,idummy, & idummy,idummy,idummy,idummy,idummy, & idummy,idummy,idummy,idummy,idummy WRITE(11) dx ,dy ,ctrlat,ctrlon,knot , & gamma ,trulat1,trulat2,trulon,sclfct, & tol ,wdn ,rdnot ,rdummy,rdummy, & rdummy,rdummy,rdummy,rdummy,rdummy WRITE(11) hterain CLOSE(11) STOP END PROGRAM rdructrn