* PACKAGE IRCON  !" 入出力 定数ファイルの読み込み
*
*"  [SRC] $CCSR/model/agcm/src/io/ircon.F
*"  [DOC] $CCSR/model/agcm/doc/io.tex
*"  [VER] 92/06/20(numaguti)
*"  [HIS] 91/05/27(numaguti) Original
*
*"  [REM] * This routine is yet under development.
*"        Now you cannot use ITNEXT feature,
*"        i.e. to get the time of next avilable data.
************************************************************************
      SUBROUTINE RDCON         !" 定数ファイルの読み込み
     O         ( GDATA , ITNEXT,
     I           HFILE , HITEM , DEFVAL , HCORD , ITSEL  )
*
*   [PARAM] 
#ifdef SYS_IBMS
      INCLUDE   (ZCDIM)                      !" 格子点数，波数
#else
#include        "zcdim.F"                    !" 格子点数，波数
#endif
*
*   [OUTPUT] 
      REAL       GDATA ( * )                 !" データ
      INTEGER    ITNEXT                      !" 次の IT
*
*   [INPUT] 
      CHARACTER  HFILE *(*)                  !" ファイル名
      CHARACTER  HITEM *(*)                  !" 識別名称
      REAL       DEFVAL                      !" デフォルト値
      CHARACTER  HCORD  *(*)                 !" 座標系
      INTEGER    ITSEL                       !" 選択するIT
*
*   [INTERNAL PARM] 
      INTEGER    IWRFL, IOMODE, ILARGE
      DATA       IOMODE / 1  /
      DATA       IWRFL  / 30 /
      DATA       ILARGE / 2147483647 /       !" 整数最大値
*
*   [INTERNAL WORK] 
      INTEGER    IDATE ( 6 )
      INTEGER    IFILE, IERR, IEOD
      INTEGER    IT, ISTEP, ITDUR, KLEVS
*
*
*"         < 1.  ファイルオープン >
*
      CALL IFLOPN
     O         ( IFILE , IERR  ,
     I           HFILE , IWRFL , 'READ',  'UNFORMATTED' )
*
      IF ( IERR  .EQ. 0 ) THEN
*
         CALL GDREAD
     O         ( GDATA , IEOD  ,
     O           IT    , IDATE , ISTEP , ITDUR ,
     I           IFILE , HITEM , IOMODE, HCORD  )
*
      ELSE
         IEOD = 1
      ENDIF
*
      IF ( IEOD .GE. 1 ) THEN
*
*"         < 2. データがないとき : デフォルト値 >
*
         WRITE (6,*)   ' *** FILE of ', HITEM, ' NOT FOUND :',  HFILE
         WRITE ( 6,* ) ' *** DEFAULT ASSUMED '
*
         CALL HQCORL
     I              ( HCORD ,
     O                KLEVS   )
         CALL  SETV ( GDATA, DEFVAL, IDIM*JDIM*KLEVS )
*
      ELSE
         WRITE (6,*)   ' *** FILE of ', HITEM, ' READ IN   :',  HFILE
         CLOSE ( IFILE )
      ENDIF
*
      ITNEXT = ILARGE
*
      RETURN
      END
