!
! To run this program you will need the topography and percent water
! data sets and use the following namelist (in file input.nml).
!
! &gaussian_topog_nml
! height = 5000., 3000., 3000., 3000.,
! olon = 90., 255., 285., 0.,
! olat = 45., 45., -15., -90.,
! wlon = 15., 10., 5., 180.,
! wlat = 15., 25., 25., 20., /
!
! program test
!
! ! test program for topography and gaussian_topog modules
!
! use topography_mod
! implicit none
!
! integer, parameter :: nlon=24, nlat=18
! real :: x(nlon), y(nlat), xb(nlon+1), yb(nlat+1), z(nlon,nlat)
! real :: hpi, rtd
! integer :: i,j
! logical :: a
!
! ! gaussian mountain parameters
! real, parameter :: ht=4000.
! real, parameter :: x0=90., y0=45. ! origin in degrees
! real, parameter :: xw=15., yw=15. ! half-width in degees
! real, parameter :: xr=30., yr= 0. ! ridge-width in degrees
!
! ! create lat/lon grid in radians
! hpi = acos(0.0)
! rtd = 90./hpi ! rad to deg
! do i=1,nlon
! xb(i) = 4.*hpi*real(i-1)/real(nlon)
! enddo
! xb(nlon+1) = xb(1)+4.*hpi
! yb(1) = -hpi
! do j=2,nlat
! yb(j) = yb(j-1) + 2.*hpi/real(nlat)
! enddo
! yb(nlat+1) = hpi
! ! mid-point of grid boxes
! x(1:nlon) = 0.5*(xb(1:nlon)+xb(2:nlon+1))
! y(1:nlat) = 0.5*(yb(1:nlat)+yb(2:nlat+1))
! ! test topography_mod routines
! a = get_topog_mean(xb,yb,z)
! call printz ('get_topog_mean')
!
! a = get_water_frac(xb,yb,z)
! z = z*100. ! in percent
! call printz ('get_water_frac')
!
! a = get_ocean_frac(xb,yb,z)
! z = z*100. ! in percent
! call printz ('get_ocean_frac')
!
! ! test gaussian_topog_mod routines
! a = .true.
! z = get_gaussian_topog(x,y,ht,x0,y0,xw,yw,xr,yr)
! call printz ('get_gaussian_topog')
!
! call gaussian_topog_init (x,y,z)
! call printz ('gaussian_topog_init')
!
! contains
!
! ! simple printout of topog/water array
! subroutine printz (lab)
! character(len=*), intent(in) :: lab
! if (a) then
! print '(/a)', trim(lab)
! else
! print '(/a)', 'no data available: '//trim(lab)
! return
! endif
! ! print full grid
! print '(3x,25i5)', (nint(x(i)*rtd),i=1,nlon)
! do j=nlat,1,-1
! print '(i3,25i5)', nint(y(j)*rtd), (nint(z(i,j)),i=1,nlon)
! enddo
! end subroutine printz
!
! end program test
!
!
!