*"表題 格子名配置子の変更  GTOOL3(GUCACF)
*
*"履歴 91/01/21 沼口  敦
*
*
*********************************************************************
*"         << 格子名配置子の変更 >>
*********************************************************************
      SUBROUTINE GUCACF
     I         ( HHEAD, ID    , HCFG  ,
     M           HHEADO                )
*
      CHARACTER  HHEAD ( * )*(*)             !" ヘッダー
      INTEGER    ID                          !" 何次元目の軸か
      CHARACTER  HCFG       *(*)             !" 配置子
      CHARACTER  HHEADO( * )*(*)             !" ヘッダー（出力）
*
#ifdef SYS_IBMS
      INCLUDE    (GZSIZE)                    !" NCC, NDC
#else
#include         "gzsize.F"                  !" NCC, NDC
#endif
      CHARACTER  HAITM *(NCC)                !" 格子識別名称
      CHARACTER  HAITMO*(NCC)                !" 格子識別名称
      CHARACTER  HP    *(NCC)
*
      IF ( ( ID .LT. 1 ) .OR. ( ID .GT. 3 ) ) THEN
         CALL MSGDMP( 'E', 'GUCACF', 'IRREGAL ID' )
      ENDIF
*
      HP      = 'AITM'
      WRITE ( HP(5:5), '(I1)' ) ID
*
      CALL GHCGET ( HHEAD , HP   , HAITM )
      CALL GUTACF
     I            ( HAITM , HCFG  ,
     O              HAITMO          )
      CALL GHCSET ( HHEADO, HP   , HAITMO )
*
      RETURN
      END
*********************************************************************
*"         << 格子名配置子の変換 >>
*********************************************************************
      SUBROUTINE GUTACF
     I         ( HAITM , HCFG  ,
     O           HAITMO          )
*
      CHARACTER  HAITM      *(*)                !" 格子識別名称
      CHARACTER  HCFG       *(*)                !" 配置子
      CHARACTER  HAITMO     *(*)                !" 格子識別名称

      HAITMO = ' '
      LENH   = LEN( HAITMO )
*
      INDP = INDEX( HAITM, '.' )
      IF ( INDP .GE. 1 ) THEN
         HAITMO = HAITM(1:INDP)
      ELSE
         INDP = LENZ( HAITM ) + 1
         IF ( INDP .EQ. 1 ) THEN
            CALL MSGDMP( 'W', 'GUTACF', 'NULL AXIS-ITEM' )
            HAITMO = '.'
         ELSE
            HAITMO = HAITM(1:INDP-1)//'.'
         ENDIF
      ENDIF
*
      IF ( INDP .LT. LENH ) THEN
         HAITMO(INDP+1:INDP+1) = HCFG(1:1)
      ELSE
         CALL MSGDMP( 'W', 'GUTACF', 'CHARACTER LENGTH OVER' )
      ENDIF
*
      RETURN
      END
*********************************************************************
*"         << 格子名配置子の参照 >>
*********************************************************************
      SUBROUTINE GUQACF
     I         ( HHEAD, ID    ,
     M           HCFG                  )
*
      CHARACTER  HHEAD ( * )*(*)             !" ヘッダー
      INTEGER    ID                          !" 何次元目の軸か
      CHARACTER  HCFG       *(*)             !" 配置子
*
#ifdef SYS_IBMS
      INCLUDE    (GZSIZE)                    !" NCC, NDC
#else
#include         "gzsize.F"                  !" NCC, NDC
#endif
      CHARACTER  HAITM *(NCC)                !" 格子識別名称
      CHARACTER  HP    *(NCC)
*
      IF ( ( ID .LT. 1 ) .OR. ( ID .GT. 3 ) ) THEN
         CALL MSGDMP( 'E', 'GUQACF', 'IRREGAL ID' )
      ENDIF
*
      HP      = 'AITM'
      WRITE ( HP(5:5), '(I1)' ) ID
*
      CALL GHCGET ( HHEAD , HP   , HAITM )
*
      INDP = INDEX( HAITM, '.' )
      IF ( (INDP .GE. 1) .AND. (INDP .LT. NCC ) ) THEN
         HCFG = HAITM(INDP+1:INDP+1)
      ELSE
         HCFG = ' '
      ENDIF
*
      RETURN
      END
