PROGRAM gen_annual_maxmin_GVF
!
! read in annual maximum and minimum vegetation fraction and 
!    write out
!
!   Ming Hu, 2017-04-10
!
!
  use netcdf
  use nc_readwrt_mod, only : handle_err
  use nc_readwrt_mod, only : get_dim
  use nc_readwrt_mod, only : get_field
!
  implicit none
!
  character*100 :: filename
!
  integer :: nx,ny,nz
!
  integer :: ncid, status
  character*20 :: varname
!  from wrf netcdf 
  real, allocatable :: field2d(:,:)
!
  integer :: i,j
!
!========
!  
  open(12,file='annual_maxmin_vegfrc.bin',form='unformatted')

  filename='wrfinput_d01'
!
  call get_dim(filename,nx,ny,nz)
  write(*,*) 'dimension =',nx,ny,nz
  write(12) nx,ny
!
  allocate(field2d(nx,ny))
!
!
  write(*,*) 'open file =',trim(filename)
! open existing netCDF dataset
  status = nf90_open(path = trim(filename), mode = nf90_nowrite, ncid = ncid)
  if (status /= nf90_noerr) call handle_err(status)

! read latlonn and ver frc from wrf inpput
  varname='SHDMAX'
  call get_field(ncid,varname,nx,ny,1,field2d)
  do j=1,ny
     do i=1,nx
        field2d(i,j)=max(0.0,min(100.0,field2d(i,j)))
     enddo
  enddo
  write(12) field2d
!
  varname='SHDMIN'
  call get_field(ncid,varname,nx,ny,1,field2d)
  do j=1,ny
     do i=1,nx
        field2d(i,j)=max(0.0,min(100.0,field2d(i,j)))
     enddo
  enddo
  write(12) field2d

  status = nf90_close(ncid)
  if (status /= nf90_noerr) call handle_err(status)
!
  close(12)
  deallocate(field2d)

end program