!-------------------------------------------------
!  UYpack Module
!-------------------------------------------------
module uypack
  use dcl_common
  contains
!---------------------------------- 目盛とラベルの間隔を指定して座標軸を描く．
    subroutine DclDrawYAxisInterval(side,dy1,dy2) 
      character(len=1), intent(in) :: side      !座標軸の場所
      real,             intent(in) :: dy1,dy2   !目盛・ラベルの間隔

      call uyaxdv(side,dy1,dy2)
    end subroutine
!---------------------------------- 目盛とラベルの場所を指定して座標軸を描く．
    subroutine DclDrawYAxisValue(side,y1,y2)
      character(len=1), intent(in)               :: side  !座標軸の場所
      real,             intent(in), dimension(:) :: y1,y2 !目盛・ラベルの場所

      call uyaxnm(side,y1,size(y1),y2,size(y2))
    end subroutine
!---------------------------------- 目盛とラベルの場所を指定して座標軸を描く
    subroutine DclDrawYAxisLabel(side,y1,y2,label)
      character(len=1), intent(in)               :: side  !座標軸の場所
      real,             intent(in), dimension(:) :: y1,y2 !目盛・ラベルの場所
      character(len=*), intent(in), dimension(:) :: label !ラベル

      call uyaxlb(side,y1,size(y1),y2,label,len(label(1)),size(y2))
    end subroutine
!---------------------------------- 大きめのタイトルを描く．
    subroutine DclDrawYMainTitle(side,title,position)
      character(len=1), intent(in) :: side      !座標軸の場所
      character(len=*), intent(in) :: title     !タイトル
      real,             intent(in) :: position  !位置:-1から+1の間の実数値

      call uymttl(side,title,position) 
    end subroutine
!---------------------------------- 小さめのタイトルを描く．
    subroutine DclDrawYSubTitle(side,title,position)
      character(len=1), intent(in) :: side      !座標軸の場所
      character(len=*), intent(in) :: title     !描くタイトル
      real,             intent(in) :: position  !位置:-1から+1の間の実数値

      call uysttl(side,title,position)
    end subroutine
!---------------------------------- 軸を示す線分を描く
    subroutine DclDrawYAxisLine(side,switch)
      character(len=1), intent(in) :: side      !座標軸の場所
      integer,          intent(in) :: switch    !描く軸の属性

      call uypaxs(side,switch)
    end subroutine
!---------------------------------- 目盛を描く．
    subroutine DclDrawYTickmark(side,switch,y)
      character(len=1), intent(in)               :: side    !座標軸の場所
      integer,          intent(in)               :: switch  !目盛の属性
      real,             intent(in), dimension(:) :: y       !目盛の場所
      call uyptmk(side,switch,y,size(y))
    end subroutine
!---------------------------------- 文字列で指定したラベルを描く．
    subroutine DclDrawYLabel(side,switch,y,label)
      character(len=1), intent(in)               :: side    !座標軸の場所
      integer,          intent(in)               :: switch  !ラベルの属性
      real,             intent(in), dimension(:) :: y       !ラベルの場所
      character(len=*), intent(in), dimension(:) :: label !ラベル

      call uyplbl(side,switch,y,label,len(label(1)),size(y))
    end subroutine
!---------------------------------- 数値で指定したラベルを描く．
    subroutine DclDrawYLabelValue(side,switch,y)
      character(len=1), intent(in)               :: side    !座標軸の場所
      integer,          intent(in)               :: switch  !ラベルの属性
      real,             intent(in), dimension(:) :: y       !ラベルの場所

      call uypnum(side,switch,y,size(y))
    end subroutine
!---------------------------------- タイトルを描く．
    subroutine DclDrawYTitle(side,switch,title,position)
      character(len=1), intent(in) :: side      !座標軸の場所
      integer,          intent(in) :: switch    !タイトルの属性
      character(len=*), intent(in) :: title     !タイトル
      real,             intent(in) :: position  !位置:-1から+1の間の実数値

      call uypttl(side,switch,title,position) 
    end subroutine
!---------------------------------- フォーマットの指定．
    subroutine DclSetYLabelFormat(format)
      character(len=*), intent(in) :: format      !フォーマット
      
      call uysfmt(format) 
    end subroutine
!---------------------------------- フォーマットの問い合わせ．
    subroutine DclGetYLabelFormat(format)
      character(len=*), intent(in) :: format      !フォーマット
      
      call uyqfmt(format) 
    end subroutine

end module

