C*********************************************************************
C
C     PROGRAM xzcont_q
C
C     x-z平面等値線図作成プログラム(時刻, 条件指定)
C
C     履歴 1997/07/24 中島健介
C          1997/07/25 小高正嗣
C          1997/07/26 小高正嗣
C          1997/07/26 小高正嗣
C          1998/09/17 小高正嗣
C          1998/10/02 小高正嗣
C          1999/01/17 小高正嗣
C          1999/02/04 小高正嗣
C
C*********************************************************************
      program xzcont_q
*-----------------------------------------------------
      implicit real*8 ( a-h, o-z )
*-----------------------------------------------------

#include "grid_size_M.f"

      parameter ( nbr3 = 3*((nx+6)*(nz+6)/16+1) )
*-----------------------------------------------------
      integer ibr(nbr3)
*-----------------------------------------------------
      real*8
     \   zgrid ( -2:nzb ),
     \   temp0 ( -2:nzb ),
     \   tpot0 ( -2:nzb ),
     \   dens0 ( -2:nzb ),
     \   ppai0 ( -2:nzb ),
     \   pres0 ( -2:nzb ),
     \   rvap0 ( -2:nzb ),
     \   qvap0 ( -2:nzb )

      real*8
     \     qvap ( -2:nxb, -2:nzb )

      real*4
     \    z0p ( 0:nz ), 
     \    p0p ( 0:nz ),
     \    d0p ( 0:nz ),
     \ temp0p ( 0:nz ),
     \ tpot0p ( 0:nz ),
     \  pai0p ( 0:nz ),
     \ rvap0p ( 0:nz ),
     \ qvap0p ( 0:nz )

      real*4 
     \      qvapp ( nx+1, nz+1 )


      character*6 stime
      character*11 ttime
      character*100 dumy

*-----------------------------------------------------
      open (11,file='exparam.1')
      read (11,*) irun
      read (11,*) time0, nloop1, nloop2, dtime, ntmoni, ntkubu

      call FOPEN ( irun+1 )

      do iz = 1,9
         read(16,'(a100)') dumy
      end do

      do iz = -2, nzb
         read(16,*) ii, zgrid(iz), pres0(iz), dens0(iz), temp0(iz),
     \                     tpot0(iz), ppai0(iz), qvap0(iz), rvap0(iz)
      end do

      do iz = 0, nz
         z0p(iz)   = zgrid(iz)
         p0p(iz)   = pres0(iz)
         d0p(iz)   = dens0(iz)
         temp0p(iz)= temp0(iz)
         tpot0p(iz)= tpot0(iz)
         pai0p(iz) = ppai0(iz)
         rvap0p(iz)= rvap0(iz)
         qvap0p(iz)= qvap0(iz)
      end do

      write(6,*) 'data number = ', nloop1
      write(6,*) 'INPUT DATA BEGINING, END, & INTERVAL' 
      write(6,*) 'itb ite interval ?'
      read (*,*) itb, ite, interv

      call sgpwsn
      read(*,*) iws

      call gropn(iws)
      call swlset( 'LALT',  .TRUE. )
      call sglset( 'LFULL', .TRUE. )
      call sglset( 'LCORNER', .FALSE. )
      call uzfact(0.6)
*
      do it = 1, ite

      read(35) time, ((qvap(ix,iz),ix=-2,nxb), iz=-2,nzb)

      write(0,*) 'reading time = ', time

      if ( it .ge. itb   .and.  it .le. ite ) then
         if ( mod( (it-itb), interv ) .eq. 0 ) then

            write(0,*) 'writing time = ', time

            write(stime,100) INT(time)
 100        format(I6.6)
            ttime = 't=' // stime // 'sec'

            do iz = 1,nz+1
               do ix = 1, nx+1
                  qvapp(ix,iz) = qvap(ix-1,iz-1)
               end do
            end do
*
            call grfrm
            call grswnd( 0.0, 51.2, 0.0, 10.0 )
            call grsvpt ( 0.15, 0.95, 0.25, 0.406 )
            call grstrn(1)
            call uspfit
            call grstrf
            call udpset ( 'rsizet', 0.01 )
            call ussttl ( 'Q[kg/kg]', 'X[km]', '', 'Z[km]' )
            call udpset ( 'ICYCLE', 5 )
            call udgcla ( 0.0, 4.0e-5, 1.0e-6 )
      
c            do i = 1,4
c               TLEV2 =  2 + i 
c               TLEV1 =  TLEV2 - 1
c               TLEV2 =  TLEV2 * 10.**(-6)
c               TLEV1 =  TLEV1 * 10.**(-6)
c               IPAT = 600 + i 
c               call uestlv(TLEV1, TLEV2, IPAT)
c            end do

c            TLEV2 =  4.0e-5
c            TLEV1 =  6.e-6
c            IPAT = 605   
c            call uestlv(TLEV1, TLEV2, IPAT)
c            call uetone ( qvapp, nx+1, nx+1, nz+1 )

            call usdaxs
            call uxsttl ( 'T', ttime, 1. )
            call udcntz ( qvapp, nx+1, nx+1, nz+1, ibr, nbr3)
*
*
         end if
      end if

      end do

      call grcls

      call FCLOSE

      end
