* PACKAGE IHEAD   !" ヘッダーのセット
*
**********************************************************************
      SUBROUTINE HSTHED       !" ヘッダーのセット
     O         ( HHEAD , ISIZE ,
     I           HCORD , HAVTYP,
     I           HITEM , HTITL , HUNIT ,
     I           HDFMT , VMISS ,
     I           DMIN  , DMAX  , DIVS  , DIVL  , ISTYP  )
*
*   [OUTPUT] 
*     CHARACTER  HHEAD ( * )*(*)             !" ヘッダー
      INTEGER    ISIZE                       !" サイズ
*
*   [INPUT] 
      CHARACTER  HCORD  *(*)                 !" 座標系
      CHARACTER  HAVTYP *(*)                 !" 平均種類
      CHARACTER  HITEM  *(*)                 !" 識別名称
      CHARACTER  HTITL  *(*)                 !" タイトル
      CHARACTER  HUNIT  *(*)                 !" 単位
      CHARACTER  HDFMT  *(*)                 !" データフォーマット
      REAL       VMISS                       !" 欠損値の値
      REAL       DMIN                        !" レンジ(最小)
      REAL       DMAX                        !" レンジ(最大)
      REAL       DIVS                        !" 間隔(小)
      REAL       DIVL                        !" 間隔(大)
      INTEGER    ISTYP                       !" スケーリングタイプ
*
*   [INTERNAL PARM]
#ifdef SYS_IBMS
      INCLUDE   (ZCDIM)                      !" 格子点数，波数
      INCLUDE   (ZHDIM)                      !" 文字列文字数
#else
#include        "zcdim.F"                    !" 格子点数，波数
#include        "zhdim.F"                    !" 文字列文字数
#endif
      CHARACTER  HHEAD (NDC)*(NCC)           !" ヘッダー
*   [INTERNAL WORK] 
      CHARACTER  HAITMX *(NCC)               !" 第1軸名称
      CHARACTER  HAITMY *(NCC)               !" 第2軸名称
      CHARACTER  HAITMZ *(NCC)               !" 第3軸名称
      CHARACTER  HUTIM  *(NCC)               !" 時間単位
      CHARACTER  HEDIT  *(NCC)               !" 時刻単位
      CHARACTER  HETTL  *(NCC)               !" 時刻単位
*
      INTEGER    IXDIM, IYDIM, IZDIM, KLEVS
      INTEGER    NAVR
*
*   [EXTERNAL FUNC]
      INTEGER    LENC
*
*"         < 1. 軸名称，大きさ >
*
      CALL HQCORN
     I     ( HCORD ,
     O       HAITMX, HAITMY, HAITMZ,
     O       KLEVS                   )
*
      IF      ( HAVTYP .EQ. 'X' ) THEN
         HAITMX = HAITMY
         HAITMY = HAITMZ
         HAITMZ = ' '
         IXDIM  = JMAX
         IYDIM  = KLEVS
         IZDIM  = 1
      ELSE IF ( HAVTYP .EQ. 'Z' ) THEN
         HAITMZ = ' '
         IXDIM  = IMAX
         IYDIM  = JMAX
         IZDIM  = 1
      ELSE IF ( HAVTYP .EQ. 'XZ' ) THEN
         HAITMX = HAITMY
         HAITMY = ' '
         HAITMZ = ' '
         IXDIM  = JMAX
         IYDIM  = 1
         IZDIM  = 1
      ELSE IF ( HAVTYP .EQ. 'XY' ) THEN
         HAITMX = HAITMZ
         HAITMY = ' '
         HAITMZ = ' '
         IXDIM  = KLEVS
         IYDIM  = 1
         IZDIM  = 1
      ELSE IF ( HAVTYP .EQ. 'XYZ' ) THEN
         HAITMX = ' '
         HAITMY = ' '
         HAITMZ = ' '
         IXDIM  = 1
         IYDIM  = 1
         IZDIM  = 1
      ELSE
         IXDIM  = IMAX
         IYDIM  = JMAX
         IZDIM  = KLEVS
      ENDIF
      ISIZE = IXDIM * IYDIM * IZDIM
*
*"         < 2. ヘッダーのパック >
*
      CALL AQUTIM ( HUTIM )
*
      CALL GZDBHP                    !" 識別記述子のパック
     O         ( HHEAD ,
     I           ' '   , HITEM , 1     , 1     ,
     I           HTITL , HUNIT ,
     I           0     , ' '   , HUTIM , 1     ,
     I           HAITMX, 1     , IXDIM ,
     I           HAITMY, 1     , IYDIM ,
     I           HAITMZ, 1     , IZDIM ,
     I           HDFMT , VMISS ,
     I           DMIN  , DMAX  , DIVS  , DIVL  ,
     I           ISTYP ,
     I           ' '   , ' '                             )
*
      IF ( HAVTYP .NE. ' ' ) THEN
         NAVR  = LENC( HAVTYP )
         HEDIT = HAVTYP(1:NAVR)//'-AVG'
         HETTL = HAVTYP(1:NAVR)//'-average'
         CALL GHEADD ( HHEAD, HEDIT, HETTL )
      ENDIF
*
      RETURN
      END
