* PACKAGE DGENG  !" 力学 スペクトル→格子点値
*
*" [HIS] ???
*"       98/01/18(akahori) GENGD:  SMPACK-0.0 対応
*"       98/03/07(akahori) GENGD:  SMPACK-1.0 対応
*
************************************************************************
      SUBROUTINE GENGD          !" 新格子点値の生成
     O         ( GDU   , GDV   , GDT   , GDPS  , GDQ   ,
     O           GDVOR , GDDIV ,
     I           WDVOR , WDDIV , WDT   , WDPI  , WDQ   ,
     C           EDEL  , UVFACT                         )
*
*   [PARAM]
#ifdef SYS_IBMS
      INCLUDE   (ZCDIM)                      !" 格子点数, 波数
#else
#include        "zcdim.F"
#endif
*
*   [OUTPUT]
      REAL       GDU   ( IDIM*JDIM, KMAX )   !" 西風  Ｕ
      REAL       GDV   ( IDIM*JDIM, KMAX )   !" 南風  Ｖ
      REAL       GDT   ( IDIM*JDIM, KMAX )   !" 温度  Ｔ
      REAL       GDPS  ( IDIM*JDIM       )   !" 地表気圧 Ｐｓ
      REAL       GDQ   ( IDIM*JDIM, KMAX )   !" 比湿  ｑ
      REAL       GDVOR ( IDIM*JDIM, KMAX )   !" 渦度  ζ
      REAL       GDDIV ( IDIM*JDIM, KMAX )   !" 発散  Ｄ
*
*   [INPUT]
      REAL       WDVOR ( NMDIM , KMAX     )  !" 渦度  ζ
      REAL       WDDIV ( NMDIM , KMAX     )  !" 発散  Ｄ
      REAL       WDT   ( NMDIM , KMAX     )  !" 温度  Ｔ
      REAL       WDPI  ( NMDIM            )  !" log Ps ＝π
      REAL       WDQ   ( NMDIM , KMAX     )  !" 比湿  ｑ
*
      REAL       EDEL  ( NMDIM  )            !" ζ,Ｄ→Ｕ,Ｖ
      REAL       UVFACT( IDIM*JDIM )         !" u→U のファクター
*
*   [INTERNAL WORK] 
      INTEGER    IJ
*
*
*"         < 2. ζ，Ｄ，Ｔ，π，ｑ格子点値 >
*
      CALL DSMS2G
     O         ( GDVOR ,
     I           WDVOR  )

      CALL DSMS2G
     O         ( GDDIV ,
     I           WDDIV  )

      CALL DSMS2G      !" GDT(IDIM,J,K) に 0 以外を代入する必要がある
     O         ( GDT,
     I           WDT  )

      CALL DS1S2G     !" GDPS(IDIM,J) に大きな数字を与えると次の
     O         ( GDPS , !" EXP(GDPS(IJ)) で溢れる。
     I           WDPI   )
*
      DO 2100 IJ = 1, IDIM*JDIM
        GDPS ( IJ ) = EXP( GDPS( IJ ) )
 2100 CONTINUE
*
      CALL DSMS2G
     O         ( GDQ   ,
     I           WDQ    )
*
*"         < 3.  Ｕ，Ｖ の格子点値 >
*
      CALL DSMS2V
     O          ( GDU, GDV,
     I            WDDIV, WDVOR,
     I            '    '        )

      RETURN
      END
