*"表題 第１次元の拡大 GTOOL3(GPYEXT)
*
*"履歴 91/01/19 沼口  敦
*
*
*********************************************************************
*"         << 第１次元の拡大 >>
*********************************************************************
      SUBROUTINE GPYEXT
     I         ( HHEAD , GDATA ,
     I           HAITMY, IYSTR , IYEND ,
     I           HEDIT , HETTL ,
     O           HHEADO, GDATAO )
*
      CHARACTER  HHEAD  ( * )*(*)        !" ヘッダー(入力)
      REAL       GDATA  ( * )            !" データ(入力)
      CHARACTER  HAITMY      *(*)        !" 拡大する第2次元の軸名
      INTEGER    IYSTR                   !" 第2次元の軸の格子始め
      INTEGER    IYEND                   !" 第2次元の軸の格子終り
      CHARACTER  HEDIT       *(*)        !" 編集略記号
      CHARACTER  HETTL       *(*)        !" 編集タイトル
      CHARACTER  HHEADO ( * )*(*)        !" ヘッダー(出力)
      REAL       GDATAO ( * )            !" データ(出力)
*
#ifdef SYS_IBMS
      INCLUDE    (GZSIZE)                !" NCC, NDC
#else
#include         "gzsize.F"              !" NCC, NDC
#endif
      CHARACTER  HEDITD      *(NCC)      !" 編集略記号
      CHARACTER  HETTLD      *(NCC)      !" 編集タイトル
*
*"         < 1. 結合準備 >
*
      CALL GPYCMI
     I         ( HHEAD , HAITMY, IYSTR , IYEND ,
     I           'NUL' , ' '   ,
     O           HHEADO, GDATAO )
*
*"         < 2. 大きさの取得 >
*
      CALL GUSMIS ( HHEADO )
*
      CALL GUQSIZ
     I         ( HHEADO,
     O           IXSTR , IXEND , IXDIM ,
     O           IYSTR1, IYEND1, IYDIM ,
     O           IZSTR , IZEND , IZDIM  )
*
*"         < 3. データ詰め替え >
*
      CALL GHPGET ( HHEAD, 'MISS', VMISS )
*
      DO 2100 IY = IYSTR1, IYEND1
         DO 2110 IZ = 1, IZDIM
            CALL VRSET
     I         ( GDATA ( IXDIM*(IZ-1) +1 ),
     O           GDATAO( IXDIM*IYDIM*(IZ-1) + IXDIM*(IY-IYSTR1)+1 ),
     I           IXDIM , 1     , 1                                   )
 2110    CONTINUE
 2100 CONTINUE
*
*"         < 3. ヘッダー変更 >
*
      IF ( ( IYSTR1 .EQ. 1 ).AND.( IYEND1 .EQ. 1 ) ) RETURN
*
      IF      ( HEDIT .EQ. ' ' ) THEN
         CALL GUEAXN
     I               ( HAITMY, 'YE'   , '-extend',
     I                 IYSTR1, IYEND1 ,
     O                 HEDITD, HETTLD          )
         CALL GHEADD ( HHEADO, HEDITD, HETTLD )
      ELSE IF ( HEDIT .NE. 'NUL' ) THEN
         CALL GHEADD ( HHEADO, HEDIT  , HETTL   )
      ENDIF
*
      RETURN
      END
*********************************************************************
*"         << 第３次元の拡大 >>
*********************************************************************
      SUBROUTINE GMYEXT
     I         ( HHEAD , GDATA ,
     I           HAITMY, IYSTR , IYEND ,
     I           HEDIT , HETTL           )
*
      CHARACTER  HHEAD  ( * )*(*)        !" ヘッダー(入力)
      REAL       GDATA  ( * )            !" データ(入力)
      CHARACTER  HAITMY      *(*)        !" 拡大する第2次元の軸名
      INTEGER    IYSTR                   !" 第2次元の軸の格子始め
      INTEGER    IYEND                   !" 第2次元の軸の格子終り
      CHARACTER  HEDIT       *(*)        !" 編集略記号
      CHARACTER  HETTL       *(*)        !" 編集タイトル
*
      COMMON     /GMWORK/ GDATAW
      REAL       GDATAW ( 1 )            !" データ(ワーク)
#ifdef SYS_IBMS
      INCLUDE    (GZSIZE)                !" NCC, NDC
#else
#include         "gzsize.F"              !" NCC, NDC
#endif
      CHARACTER  HHEADW ( NDC )*(NCC)    !" ヘッダー(ワーク)
*
      CALL       GMCSIZ ( HHEADW )
      CALL       GPYEXT
     I         ( HHEAD , GDATA ,
     I           HAITMY, IYSTR , IYEND ,
     I           HEDIT , HETTL ,
     O           HHEADW, GDATAW )
*
      CALL       GPFSET
     I         ( HHEADW, GDATAW,
     I           ' '   , ' '   ,
     O           HHEAD , GDATA   )
*
      RETURN
      END
