!---------------------------------------------------------------------
!     Copyright (C) GFD Dennou Club, 2005. All rights reserved.
!---------------------------------------------------------------------
                                                                 !=begin
!= Module dycore_type_mod
!
!   * Developers: Morikawa Yasuhiro
!   * Version: $Id: dycore_type.f90,v 1.5 2005/05/02 11:33:37 morikawa Exp $
!   * Tag Name: $Name: dcpam2-20050522-2 $
!   * Change History: 
!
!== Overview
!
!DCPAM Real, Integer, Character type.
!
!== Error Handling
!
!== Known Bugs
!
!== Note
!
!== Future Plans
!
                                                                 !=end
module dycore_type_mod
                                                                 !=begin
  !== Dependency
  use type_mod     , only : REKIND, DBKIND, INTKIND, TOKEN, STRING, &
       &                    NMLARRAY
  use axis_type_mod, only : AXISINFO
                                                                 !=end
  implicit none
                                                                 !=begin
  !== Public Interface
  private
  public :: REKIND, DBKIND, INTKIND, TOKEN, STRING, NMLARRAY ! derived types
  public :: DYCORE_VARS, DYCORE_DIMS                         ! derived types
                                                                 !=end

!!$  !-------------------------------------------------------------------
!!$  !   格子点数、波数をひとまとめにした型
!!$  !-------------------------------------------------------------------
!!$  type DYCORE_GRIDS
!!$     integer(INTKIND)    :: im    ! 格子点数(X)
!!$     integer(INTKIND)    :: jm    ! 格子点数(Y)
!!$     integer(INTKIND)    :: km    ! 格子点数(Z)
!!$     integer(INTKIND)    :: nm    ! 波数
!!$  end type DYCORE_GRIDS

                                                                 !=begin
  !== Derived Types
  !
  !計算すべき格子点データをひとまとめにした型。
  !3次元プリミティブ方程式用で、
  !メインルーチンにて 入力 → 物理過程 → 力学過程 → 出力
  !されるデータ群
  !
  type DYCORE_VARS
     real(DBKIND), pointer     ::  &
          & xyz_VelLon(:,:,:)      , & ! 格子点データ(速度経度成分)
          & xyz_VelLat(:,:,:)      , & ! 格子点データ(速度緯度成分)
          & xyz_Vor(:,:,:)       , & ! 格子点データ(渦度)
          & xyz_Div(:,:,:)       , & ! 格子点データ(発散)
          & xyz_Temp(:,:,:)      , & ! 格子点データ(温度)
          & xyz_QVap(:,:,:)      , & ! 格子点データ(比湿)

          & xy_Ps(:,:)           , & ! 格子点データ(地表面気圧)
          & xy_TempS(:,:)            ! 格子点データ(地表面温度)

  end type DYCORE_VARS


  !
  !次元データをひとまとめにした量 (時間次元は除く)。
  !緯度経度座標 + 鉛直σ座標 で、
  !初期値データから入力され、出力の初期化の際に出力され、
  !その後、物理過程、力学過程に用いられる。
  !
  type DYCORE_DIMS
     type(AXISINFO)       ::   &
          & x_Lon            , & ! 格子点座標(経度)
          & x_Lon_Weight     , & ! 格子点座標(経度重み)
          & y_Lat            , & ! 格子点座標(緯度)
          & y_Lat_Weight     , & ! 格子点座標(緯度重み)
          & z_Sigma          , & ! 格子点座標(σレベル(整数))
          & r_Sigma          ! 格子点座標(σレベル(半整数))

  end type DYCORE_DIMS
                                                                 !=end

end module dycore_type_mod
