!-------------------------------------------------
!  UXpack Module
!-------------------------------------------------
module uxpack
  use dcl_common
  contains
!---------------------------------- 目盛とラベルの間隔を指定して座標軸を描く
    subroutine DclDrawXAxisInterval(side,dx1,dx2) 
      character(len=1), intent(in) :: side !座標軸を描く場所
      real,      intent(in) :: dx1          !小さめの目盛を描く間隔
      real,      intent(in) :: dx2          !大きめの目盛およびラベルを描く間隔

      call uxaxdv(side,dx1,dx2)
    end subroutine
!---------------------------------- 目盛とラベルの場所を指定して座標軸を描く．
    subroutine DclDrawXAxisValue(side,x1,x2)
      character(len=1), intent(in) :: side       !座標軸を描く場所
      real, intent(in), dimension(:) :: x1        !小さめの目盛を描く場所
      real, intent(in), dimension(:) :: x2        !大きめの目盛およびラベルを描く場所

      call uxaxnm(side,x1,size(x1),x2,size(x2))
    end subroutine 
!---------------------------------- 目盛とラベルの場所を指定して座標軸を描く．
    subroutine DclDrawXAxisLabel(side,x1,x2,label)
      character(len=1), intent(in) :: side       !座標軸を描く場所
      real, intent(in), dimension(:) :: x1        !小さめの目盛の場所
      real, intent(in), dimension(:) :: x2        !大きめの目盛およびラベルの場所
      character(len=*), intent(in), dimension(:) :: label !ラベル

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

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

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

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

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

      call uxpnum(side,switch,x,size(x))  
    end subroutine
!---------------------------------- タイトルを描く．
    subroutine DclDrawXTitle(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 uxpttl(side,switch,title,position) 
    end subroutine
!---------------------------------- フォーマットの指定．
    subroutine DclSetXLabelFormat(format)
      character(len=*), intent(in) :: format      !フォーマット
      
      call uxsfmt(format) 
    end subroutine
!---------------------------------- フォーマットの問い合わせ．
    subroutine DclGetXLabelFormat(format)
      character(len=*), intent(in) :: format      !フォーマット
      
      call uxqfmt(format) 
    end subroutine

end module
