!##################################################################
!##################################################################
!######                                                      ######
!######                PROGRAM JOINBIN2HDF                   ######
!######                                                      ######
!######                     Developed by                     ######
!######     Center for Analysis and Prediction of Storms     ######
!######                University of Oklahoma                ######
!######                                                      ######
!##################################################################
!##################################################################
PROGRAM join_bin2hdf,2
!
!-----------------------------------------------------------------------
!
!  To join together a set of ARPS history or data files produced by the
!  processors of MPP machines with message passing.
!
!  Input data file is in binary format and the output is in HDF4 format
!
!-----------------------------------------------------------------------
!
!  AUTHOR:
!  Yunheng Wang (05/16/2002)
!  Based on joinhdf.f90
!
!  MODIFICATION HISTORY.
!
!
!-----------------------------------------------------------------------
!
  IMPLICIT NONE
  INCLUDE 'mp.inc'
!
!-----------------------------------------------------------------------
!
!  Misc. local variables:
!
!-----------------------------------------------------------------------
!
  INTEGER nxsm,nysm,nz, nzsoil,nstyps
  INTEGER ireturn
  CHARACTER (LEN=120) :: filename
  CHARACTER (LEN=120) :: filename1
  
  INTEGER :: hdfcmpropt
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
!  Beginning of executable code...
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
  WRITE(*,FMT='(/a)',ADVANCE='NO') " Enter the filename (base name):  "
  READ(*,'(a)') filename
  WRITE(*,FMT='(a)',ADVANCE='NO')  " Enter nproc_x, nproc_y        :  "
  READ(*,*) nproc_x, nproc_y
  WRITE(*,FMT='(a)',ADVANCE='NO')  " Enter HDF4 compression option :  "      
!  WRITE(*,*) "     = 0  no compression;"
!  WRITE(*,*) "     = 1, fast gzip compression;"
!  WRITE(*,*) "     = 2, high gzip compression;"
!  WRITE(*,*) "     = 3, adaptive or skipping Huffman compression;"
!  WRITE(*,*) "     = 4-7, as above plus mapping reals to 16 bit integers."
!  WRITE(*,*) "       Note that only options 0-2 work on Cray platforms."
!  READ(*,*) hdfcmpropt
  hdfcmpropt = 5                  ! hard-coded as Kevin's sugguestion.
  WRITE(*,'(a//)') "(Using hdfcmpropt = 5 as default value)"
  filename1 = TRIM(filename)//"_0101"
  CALL get_dims_from_data
(1,filename1,nxsm,nysm,nz,nzsoil,nstyps, ireturn)
  IF (ireturn /= 0) THEN
    WRITE (6,*) 'JOINFILE: WARNING, error returned from get_dims_from_data', &
       ireturn
  ENDIF
  WRITE (6, '(/a/)') 'Joining files ...'
  CALL joinbin2hdf
 (filename,nxsm,nysm,nz,nzsoil,nstyps,hdfcmpropt)
  WRITE (6, '(/a/)') 'Done joining files ...'
END PROGRAM join_bin2hdf