*"表題 格子のサイズの参照 GTOOL3(GUQAXD)
*
*"履歴 90/09/14 沼口  敦
*
*
*********************************************************************
*"         << 格子のサイズの参照 >>
*********************************************************************
      SUBROUTINE GUQAXD
     I         ( HAXIS ,
     O           IADIM , OCYCL  )
*
      CHARACTER  HAXIS      *(*)             !" 格子識別名称
      INTEGER    IADIM                       !" 格子のサイズ
      LOGICAL    OCYCL                       !" サイクリックか？
*
#ifdef SYS_IBMS
      INCLUDE    (GZSIZE)                    !" NCC, NDC
#else
#include         "gzsize.F"                  !" NCC, NDC
#endif
      CHARACTER  HHEADZ( NDC )*(NCC)         !" ヘッダー
      CHARACTER  HAXD  *(NCC)
      CHARACTER  HAXF  *(NFILN)
      CHARACTER  HFILE *(NFILN)
      CHARACTER  HMSG  *100
      LOGICAL    OEXIST
*
      IF ( HAXIS .EQ. ' ' ) THEN
         IADIM = 1
         OCYCL = .FALSE.
                                        RETURN
      ENDIF
*
*"         < 1. 「内部ファイル」からの読み込み >
*
      CALL GUQIAH
     I         ( HAXIS ,
     O           HHEADZ, IEOD   )
*
      IF ( IEOD .NE. 0 ) THEN
*
         CALL GTPGET( 'WFILE', IFILW )
*
*"         < 2. カレントディレクトリからの読み込み >
*
         CALL GTCGET( 'FAXLOC1', HAXF  )
         NHF   = LENC( HAXF )
         HFILE = HAXF(1:NHF)//HAXIS
*
         INQUIRE ( FILE=HFILE, EXIST=OEXIST )
*
         IF ( OEXIST ) THEN
            CALL GFROPN
     M         ( IFILW ,
     I           HFILE   )
            CALL GFRDHD
     O         ( HHEADZ, IEOD  ,
     I           IFILW , 0      )
            CALL GFCLSE ( IFILW )
         ENDIF
      ENDIF
*
      IF ( IEOD .NE. 0 ) THEN
*
*"         < 3. デフォルトディレクトリからの読み込み >
*
         CALL GTCGET( 'FAXLOC', HAXF  )
         NHF   = LENC( HAXF )
         HFILE = HAXF(1:NHF)//HAXIS
*
         CALL GFROPN
     M         ( IFILW ,
     I           HFILE   )
         CALL GFRDHD
     O         ( HHEADZ, IEOD  ,
     I           IFILW , 0      )
         CALL GFCLSE ( IFILW )
      ENDIF
*
      IF ( IEOD .EQ. 0 ) THEN
         CALL GHPGET ( HHEADZ, 'AEND1', IADIM  )
         CALL GHCGET ( HHEADZ, 'DSET' , HAXD   )
         OCYCL = ( HAXD(1:1) .EQ. 'C' )
         IF ( OCYCL ) THEN
            IADIM  = IADIM - 1
         ENDIF
      ELSE
         NHP  = LENC(HAXIS)
         HMSG = 'AXIS '''//HAXIS(1:NHP)//''' IS NOT DEFINED.'
         CALL MSGDMP( 'E', 'GUQAXD', HMSG )
      ENDIF
*
      RETURN
      END
