*%表題   鉛直P速度の格子点データの作成
*%
*%履歴   91/05/14 佐藤正樹       C:\FORT\OORT\GRDOMG.FOR
*%       91/05/16 佐藤正樹       C:\FORT\OORT\GRDOMG.FOR
*%       91/05/21 佐藤正樹       C:\FORT\OORT\GRDOMG.FOR
*%       91/05/25 佐藤正樹       C:\FORT\OORT\GRDOMG.FOR
*%
*%
*-----------------------------------------------------------------------
      PROGRAM  GRDOMG

      INTEGER  NLAT           ! 緯度配列の次元
      PARAMETER ( NLAT = 15 )
      INTEGER  NPRS           ! 圧力配列の次元
      PARAMETER ( NPRS = 8 )

      REAL  OMG(-NLAT:NLAT, 1:NPRS) ! 鉛直P速度


      INTEGER  NLAT2           ! 緯度配列の次元
      PARAMETER ( NLAT2 = 18 )
      INTEGER  NPRS2           ! 圧力配列の次元
      PARAMETER ( NPRS2 = 20 )

      REAL  OMG2(-NLAT2:NLAT2, 1:NPRS)  ! 鉛直P速度
      REAL  OMG3(-NLAT2:NLAT2, 0:NPRS2) ! 鉛直P速度

      INTEGER  ILAT           ! 緯度配列の次元, DOループ
      INTEGER  IPRS           ! 圧力配列の次元, DOループ

      INTEGER  ILAT2          ! 緯度配列の次元, DOループ



*     < 入出力パラメーター >

      INTEGER   IR   / 20 /          ! 入力ユニット番号
      CHARACTER HIFL*16              ! 入力ファイル名

      INTEGER   OR   / 30 /          ! 出力ユニット番号
      CHARACTER HOFL*16              ! 出力ファイル名

      CHARACTER  HNFORM*16           ! 文字型変数の入力形式
      CHARACTER  HXFORM*16           ! 実数型変数の入力形式
      CHARACTER  HXNAME*16           ! 変数名

*     < GTOOL >

      INTEGER  NCC
      INTEGER  NDC
      PARAMETER  ( NCC=16, NDC=64 )
*
      CHARACTER  HHEAD ( NDC )*(NCC)
*
      CHARACTER  HDSET *(NCC)
      CHARACTER  HITEM *(NCC)
      CHARACTER  HTITL *(NCC*2)
      CHARACTER  HUNIT *(NCC)
      CHARACTER  HUTIM *(NCC)
      CHARACTER  HAITM1*(NCC)
      CHARACTER  HAITM2*(NCC)
      CHARACTER  HAITM3*(NCC)
      CHARACTER  HEDIT*(NCC)
      CHARACTER  HETTL*(NCC)

      INTEGER    IFNUM
      INTEGER    ITDUR
      REAL       DMIN
      REAL       DMAX
      REAL       DIVS
      REAL       DIVL
      INTEGER    ISTYP

      INTEGER    IYEAR
      INTEGER    IMONTH
      INTEGER    IDAY
      INTEGER    IHOUR
      INTEGER    IMIN
      INTEGER    ISEC

*-----------------------------------------------------------------------
*     < 出力形式 >

      HNFORM='(A16)'
      HXFORM='(5E16.6)'

*-----------------------------------------------------------------------
*     < 入力データファイル名の入力 >

      WRITE(6,*) '入力ファイル名を入力してください'
      READ(5,*) HIFL
      WRITE(6,*) '出力ファイル名を入力してください'
      READ(5,*) HOFL
      WRITE(6,*) 'HIFL=', HIFL
      WRITE(6,*) 'HOFL=', HOFL

*-----------------------------------------------------------------------
*     < データの入力 >

      CALL  READORG
     I           ( IR,       HIFL,
     O             HXNAME,   OMG,
     D             NLAT,     NPRS )

*-----------------------------------------------------------------------
*     < 単位の変更 >
*       10**-4 mb/s => Pa/s

      DO 300 ILAT = -NLAT, NLAT
      DO 310 IPRS = 1, NPRS
        OMG(ILAT, IPRS) =  OMG(ILAT, IPRS) * 1.E-4 * 100.
 310  CONTINUE
 300  CONTINUE

*-----------------------------------------------------------------------
*     < グリッドの値の作成 >

      OMG(-15,1) = 3.   * OMG(-14, 1) - 2.  * OMG(-13, 1)
      OMG(-15,2) = 3.   * OMG(-14, 2) - 2.  * OMG(-13, 2)
      DO 400 IPRS = 1, NPRS
      DO 410 ILAT = -14, 14
        OMG2(ILAT, IPRS) = OMG(ILAT, IPRS)
 410  CONTINUE
        OMG2(-15, IPRS) = 0.5 * OMG(-14, IPRS) + 0.5 * OMG(-15, IPRS)
        OMG2(15, IPRS)  = 0.5 * OMG(14, IPRS)  + 0.5 * OMG(15, IPRS)
        OMG2(-16, IPRS) =       OMG(-15, IPRS)
        OMG2(16, IPRS)  =       OMG(15, IPRS)
        OMG2(-17, IPRS) = 1.5 * OMG(-15, IPRS) - 0.5 * OMG(-14, IPRS)
        OMG2(17, IPRS)  = 1.5 * OMG(15, IPRS)  - 0.5 * OMG(14, IPRS)
        OMG2(-18, IPRS) = 2.  * OMG(-15, IPRS) -       OMG(-14, IPRS)
        OMG2(18, IPRS)  = 2.  * OMG(15, IPRS)  -       OMG(14, IPRS)
 400  CONTINUE

      DO 500 ILAT2 = -18, 18
        OMG3(ILAT2, 0) = 2.   * OMG2(ILAT2,8) -        OMG2(ILAT2,7)
        OMG3(ILAT2, 1) =        OMG2(ILAT2,8)
        OMG3(ILAT2, 2) =        OMG2(ILAT2,7)
        OMG3(ILAT2, 3) = 0.5  * OMG2(ILAT2,7) + 0.5  * OMG2(ILAT2,6)
        OMG3(ILAT2, 4) =        OMG2(ILAT2,6)
        OMG3(ILAT2, 5) = 0.5  * OMG2(ILAT2,6) + 0.5  * OMG2(ILAT2,5)
        OMG3(ILAT2, 6) =        OMG2(ILAT2,5)
        OMG3(ILAT2, 7) = 0.75 * OMG2(ILAT2,5) + 0.25 * OMG2(ILAT2,4)
        OMG3(ILAT2, 8) = 0.5  * OMG2(ILAT2,5) + 0.5  * OMG2(ILAT2,4)
        OMG3(ILAT2, 9) = 0.25 * OMG2(ILAT2,5) + 0.75 * OMG2(ILAT2,4)
        OMG3(ILAT2,10) =        OMG2(ILAT2,4)
        OMG3(ILAT2,11) = 0.75 * OMG2(ILAT2,4) + 0.25 * OMG2(ILAT2,3)
        OMG3(ILAT2,12) = 0.5  * OMG2(ILAT2,4) + 0.5  * OMG2(ILAT2,3)
        OMG3(ILAT2,13) = 0.25 * OMG2(ILAT2,4) + 0.75 * OMG2(ILAT2,3)
        OMG3(ILAT2,14) =        OMG2(ILAT2,3)
        OMG3(ILAT2,15) = 2./3.* OMG2(ILAT2,3) + 1./3.* OMG2(ILAT2,2)
        OMG3(ILAT2,16) = 1./3.* OMG2(ILAT2,3) + 2./3.* OMG2(ILAT2,2)
        OMG3(ILAT2,17) =        OMG2(ILAT2,2)
        OMG3(ILAT2,18) = 2./3.* OMG2(ILAT2,2) + 1./3.* OMG2(ILAT2,1)
        OMG3(ILAT2,19) = 1./3.* OMG2(ILAT2,2) + 2./3.* OMG2(ILAT2,1)
        OMG3(ILAT2,20) =        OMG2(ILAT2,1)
 500  CONTINUE

*-----------------------------------------------------------------------
*     < パラメーターの設定 >

      HDSET  = 'Oort and Peixoto'
      HITEM  = 'OMG'
      HTITL  = 'Vertical p-Velocity'
      HUNIT  = 'Pa/s'
      IFNUM  = 1
      HUTIM  = 'SEC'
      ITDUR  = 31536000.
      HAITM1 = 'GLON1'
      HAITM2 = 'GLAT37'
      HAITM3 = 'GPRS21'
      DMIN   = -0.05
      DMAX   = 0.05
      DIVS   =  0.005
      DIVL   =  0.01
      ISTYP  =   -1

      HEDIT  = 'YR'
      HETTL  = 'YEAR 63-73'

      IYEAR  = 1963
      IMONTH = 0
      IDAY   = 0
      IHOUR  = 0
      IMIN   = 0
      ISEC   = 0

*-----------------------------------------------------------------------
*     < GTOOL 形式で出力 >

      CALL GTDATA
     I           ( OR,     HOFL,     HXFORM, 
     I             OMG3,
     I             HDSET , HITEM , IFNUM ,
     I             HTITL , HUNIT , HUTIM , ITDUR ,
     I             HEDIT,  HETTL, 
     I             HAITM1, HAITM2, HAITM3,
     I             DMIN  , DMAX  , DIVS  , DIVL  , ISTYP,
     I             IYEAR , IMONTH, IDAY  , IHOUR , IMIN  , ISEC ,
     D             1,      2*NLAT2+1, NPRS2+1 )

*-----------------------------------------------------------------------
      STOP
      END
