* PACKAGE !" 入出力 入力ルーチン(GTOOL3フォーマット)
*
*"  [HIS] 90/11/02 (numaguti)
*"        93/02/25 (takepiro) patch for IRIS
*********************************************************************
      SUBROUTINE GDREAD          !" GTOOL3入力
     O         ( GDATA , IEOD  ,
     O           IT    , IDATE , ISTEP , ITDUR ,
     I           IFILE , HITSEL, IOMODE, HCORD  )
*
*   [PARAM] 
#ifdef SYS_IBMS
      INCLUDE   (ZCDIM)                      !" 格子点数，波数
      INCLUDE   (ZHDIM)                      !" 文字数
#else
#include        "zcdim.F"                    !" 格子点数，波数
#include        "zhdim.F"                    !" 文字数
#endif
*
*    [OUTPUT]    
      REAL       GDATA ( IDIM, JDIM, *     ) !" データ
      INTEGER    IEOD                        !" データ有：０ 無：１
*
*    [INPUT]    
      INTEGER    IT                          !" 通し時間
      INTEGER    IDATE ( * )                 !" 時刻：年月日時分秒
      INTEGER    ISTEP                       !" 通しステップ数
      INTEGER    ITDUR                       !" 代表時間
      CHARACTER  HITSEL*(*)                  !" ITEMの選択値
      INTEGER    IFILE                       !" ファイル番号
      INTEGER    IOMODE                      !" 入力モード
      CHARACTER  HCORD  *(*)                 !" 座標系
*
*    [INTERNAL WORK]
      CHARACTER  HHEAD ( NDC )*(NCC)         !" ヘッダー
      CHARACTER  HUTIMD       *(NCC)         !" 時刻単位
      INTEGER    I, J, K, KLEVS
      INTEGER    ITD, ITDURD
*
*" << REDSET : 読み込み, 余白セット >>
*
      CALL GZDBRD                 !" 精度変換読み込み
     O            ( HHEAD , GDATA , IEOD  ,
     O              ITD   , IDATE , ISTEP , ITDURD,
     I              IFILE , HITSEL, IOMODE          )
*
      IF( IEOD.NE. 0 ) RETURN     !" 93/02/25 (takepiro) patch for IRIS
*
      CALL HQCORL
     I         ( HCORD ,
     O           KLEVS   )
*
      DO 3100 K = 1, KLEVS
         DO 3130 I = IMAX+1, IDIM
            DO 3130 J = 1, JDIM
               GDATA( I,J,K ) = GDATA( 1,J,K )
 3130    CONTINUE
         DO 3140 J = JMAX+1, JDIM
            DO 3140 I = 1, IDIM
               GDATA( I,J,K ) = GDATA( I,1,K )
 3140    CONTINUE
 3100 CONTINUE
*     
*" << CHGTIM : 時刻単位変換 >>
*
      CALL GHCGET ( HHEAD , 'UTIM' , HUTIMD )
      CALL ACTIME
     I            ( ITD   , HUTIMD , '#'    ,
     O              IT                        )
      CALL ACTIME
     I            ( ITDURD, HUTIMD , '#'    ,
     O              ITDUR                     )
*
      RETURN
      END
*********************************************************************
      SUBROUTINE GDWRIT      !" GTOOL3出力
     I         ( GDATA ,
     I           HITEM , HTITL , HUNIT ,
     I           IT    , IDATE , ISTEP , ITDUR ,
     I           JFILE , IOMODE, NOEND , HCORD , HDFMT  )
*
*   [PARAM] 
#ifdef SYS_IBMS
      INCLUDE   (ZCDIM)                      !" 格子点数，波数
      INCLUDE   (ZHDIM)                      !" 文字数
#else
#include        "zcdim.F"                    !" 格子点数，波数
#include        "zhdim.F"                    !" 文字数
#endif
*
*    [INPUT]     
      REAL       GDATA ( IDIM, JDIM, * )     !" データ
      CHARACTER  HITEM  *(*)                 !" 識別名称
      CHARACTER  HTITL  *(*)                 !" タイトル
      CHARACTER  HUNIT  *(*)                 !" 単位
      INTEGER    IT                          !" 通し時間
      INTEGER    IDATE ( * )                 !" 時刻：年月日時分秒
      INTEGER    ISTEP                       !" 通しステップ数
      INTEGER    ITDUR                       !" 代表時間
      INTEGER    JFILE                       !" 出力ファイル番号
      INTEGER    IOMODE                      !" 出力モード
      INTEGER    NOEND                       !" ENDFILE間隔
      CHARACTER  HCORD  *(*)                 !" 座標系
      CHARACTER  HDFMT        *(NCC)         !" データフォーマット
*
*    [INTERNAL WORK]
      CHARACTER  HHEAD ( NDC )*(NCC)         !" ヘッダー
      REAL       VMISS
      INTEGER    ISIZE
*
      CALL GZDBGT( 'MISS' , VMISS )
      CALL HSTHED                    !" ヘッダーの設定
     O         ( HHEAD , ISIZE ,
     I           HCORD , ' '   ,
     I           HITEM , HTITL , HUNIT ,
     I           HDFMT , VMISS ,
     I           VMISS , VMISS , VMISS , VMISS , 1      )
*
      CALL GZDBWT                     !" 精度変換書き込み
     O            ( HHEAD , GDATA ,
     O              IT    , IDATE , ISTEP , ITDUR ,
     I              JFILE , IOMODE, NOEND , HDFMT   )
*
      RETURN
      END
