* PACKAGE LPAXIS   !" パラメター軸ファイル作成
*
*"  [HIS] 93/02/05(takepiro)
*
*******************************************************************
      SUBROUTINE PARAXS
     I         ( RAYL   , TAYL   , PRND   ,
     I           REND   , TEND   , PEND   ,
     I           RTYPE  , TTYPE  , PTYPE    )
*
*   [PARAM]
#ifdef SYS_IBMS
      INCLUDE   (ZCDIM)                      !" 格子点数，波数
      INCLUDE   (ZLDIM)                      !" パラメター数, 係数行列
#else
#include        "zcdim.F"                    !" 格子点数，波数
#include        "zldim.F"                    !" パラメター数, 係数行列
#endif
*
*"  [INPUT]
      REAL       RAYL( RDIM )                !" レイリー数
      REAL       TAYL( TDIM )                !" テイラー数
      REAL       PRND( PDIM )                !" プランドル数
*
      INTEGER    REND                        !" レイリー数の計算数
      INTEGER    TEND                        !" テイラー数の計算数
      INTEGER    PEND                        !" プランドル数の計算数
*
      INTEGER    RTYPE                       !" スケーリングタイプ
      INTEGER    TTYPE                       !" スケーリングタイプ
      INTEGER    PTYPE                       !" スケーリングタイプ
*
*   [INTERNAL WORK]
      REAL       DRAYL( RDIM )               !" レイリー数
      REAL       DTAYL( TDIM )               !" テイラー数
      REAL       DPRND( PDIM )               !" プランドル数
*
*"       < 1. レイリー数 >
*
      CALL NDAXIS
     O      (  DRAYL  , 
     I         RAYL   , 
     I        '.RAYL' , 'Rayleigh Number' , 
     I         REND   , RTYPE               )
*
*"       < 2 テイラー数 >
*
      CALL NDAXIS
     O      (  DTAYL  , 
     I         TAYL   , 
     I        '.TAYL' , 'Taylor Number' , 
     I         TEND   , TTYPE                  )
*
*"       < 3 プランドル数 >
*
      CALL NDAXIS
     O      (  DPRND  , 
     I         PRND   , 
     I        '.PRND' , 'Prandtl Number' , 
     I         PEND   , PTYPE                  )
*
      RETURN
      END
*******************************************************************
      SUBROUTINE EIGAXS
     I         ( NUMEIG )
*
*   [PARAM]
#ifdef SYS_IBMS
      INCLUDE   (ZCDIM)                      !" 格子点数，波数
      INCLUDE   (ZLDIM)                      !" パラメター数, 係数行列
#else
#include        "zcdim.F"                    !" 格子点数，波数
#include        "zldim.F"                    !" パラメター数, 係数行列
#endif
*
*"  [INPUT]
      INTEGER    NUMEIG                      !" 固有値の数
*
*   [INTERNAL WORK]
      REAL       EIGEN ( MATDMX )            !" 座標軸
      REAL       DEIGEN( MATDMX )            !" 
*
      INTEGER    I
*
*"       < 1. 固有値の数 >
*
      DO 100 I = 1, NUMEIG
         EIGEN(I) = I
 100  CONTINUE 
*
      CALL NDAXIS
     O      (  DEIGEN , 
     I         EIGEN  , 
     I        '.MODE' , 'Eigen Number' , 
     I         NUMEIG , 1                )
*
      RETURN
      END
*******************************************************************
      SUBROUTINE NDAXIS
     O           (  DAXIS , 
     I              AXIS  , 
     I              HANAM , HTITLE , 
     I              NDIM  , ISTYPE  )
*
*   [PARAM]
#ifdef SYS_IBMS
      INCLUDE   (ZHDIM)                      !" 文字列文字数
#else
#include        "zhdim.F"                    !" 文字列文字数
#endif
*
*"  [OUTPUT]
      REAL       DAXIS( NDIM )                !" 座標軸
*
*"  [INPUT]
      REAL       AXIS( NDIM )                !" 座標軸
      CHARACTER  HANAM   * (*)               !" 軸の名称
      CHARACTER  HTITLE  * (*)               !" 軸のタイトル
      INTEGER    NDIM                        !" 軸の大きさ
      INTEGER    ISTYPE                      !" スケーリングタイプ
*
*   [INTERNAL PARM] 
      INTEGER    JFILE                       !" 出力装置番号
      DATA       JFILE / 50 /
      INTEGER    IT
      INTEGER    IDATE ( 6 )
      INTEGER    ISTEP
      INTEGER    ITDUR
      DATA       IT    / 0 /
      DATA       IDATE / 1990, 1, 1, 0, 0, 0 /
      DATA       ISTEP / 0 /
      DATA       ITDUR / 1 /
      CHARACTER  HDFMT *(NCC)
      DATA       HDFMT / 'UR4' /
*
*   [INTERNAL WORK]
      CHARACTER  HHEAD ( NDC )*(NCC)         !" 軸ファイルヘッダー
      CHARACTER  HDHEAD( NDC )*(NCC)
      CHARACTER  HALOC        *(NFILN)       !" 軸名称接頭子
      CHARACTER  HAWGT        *(NFILN)       !" 軸名称接頭子
      CHARACTER  HANAME       * (NCC)        !" 軸の名称
      CHARACTER  HFAXS  *(NFILN)             !" 軸ファイル名
      CHARACTER  HFDAXS *(NFILN)
*
      CHARACTER  HRUN *(NCC)                 !" 実験名
*
      INTEGER    I, NHL, NHW, NHR
      REAL       DMIN , DMAX , DIVS , DIVL , VMISS
*
*   [EXTERNAL FUNC] 
      INTEGER    LENC
*
*"  < 0. GTOOL 3 設定 >
*
      CALL GTOPEN
      CALL GTSIZE ( HHEAD , NDIM )
      CALL GTSIZE ( HDHEAD, NDIM )
*
      CALL GTCGET( 'DDSET' , HRUN    )
      NHR = LENC( HRUN )
*
*"  < 1. 格子点設定 >
*
      HANAME = HRUN(1:NHR)//HANAM
*
      DMIN  = AXIS( 1 )
      DMAX  = AXIS( NDIM )
      DIVS = ( DMAX - DMIN ) / 20
      DIVL = ( DMAX - DMIN ) / 5
*
      IF ( NDIM .GT. 1 )THEN
         DO 1100 I = 2, NDIM-1
            DAXIS( I ) = ( AXIS(I+1)  - AXIS(I-1) ) / 2
 1100    CONTINUE 
         DAXIS( 1 ) = ( AXIS(2)  - AXIS(1) ) / 2
         DAXIS( NDIM ) = ( AXIS(NDIM)  - AXIS(NDIM-1) ) / 2
      ELSE
         DAXIS( 1 ) = 1.
      ENDIF
*
*"  < 2. ファイル名 >
*
      CALL GTCGET( 'FAXLOC1', HALOC )
      CALL GTCGET( 'FAXWGT1', HAWGT )
*
      NHL = LENC( HALOC )
      NHW = LENC( HAWGT )
*
      HFAXS  = HALOC(1:NHL)//HANAME
      HFDAXS = HAWGT(1:NHW)//HANAME
*
*" < 3. ヘッダー設定 >
*
      CALL GZDBGT( 'MISS' , VMISS )
*
      CALL GZDBAP
     O         ( HHEAD   ,
     I           'AXLOC', HANAME ,
     I           HTITLE  , 'non-dim' , NDIM ,
     I           'UR4' ,  VMISS,
     I            DMIN ,  DMAX ,  DIVS  , DIVL   , ISTYPE   )
*
      CALL GHCOPY ( HHEAD , HDHEAD )
      CALL GHCSET ( HDHEAD, 'DSET', 'AXWGT' )
*
*"         < 4. ファイル書き込み >
*
      CALL GFWOPN( JFILE, HFAXS  )
      CALL GZDBWX              !" 精度変換書き込み
     I         ( HHEAD , AXIS  ,
     I           IT    , IDATE , ISTEP , ITDUR ,
     I           JFILE , 1     , 0     , HDFMT   )
      CALL GFCLSE( JFILE )
*
      CALL GFWOPN( JFILE, HFDAXS )
      CALL GZDBWX              !" 精度変換書き込み
     I         ( HDHEAD, DAXIS ,
     I           IT    , IDATE , ISTEP , ITDUR ,
     I           JFILE , 1     , 0     , HDFMT   )
      CALL GFCLSE( JFILE )
*
      RETURN
      END
