!===============================================================================
! SVN $Id: seq_avdata_mod.F90 18516 2009-09-25 22:54:10Z kauff $
! SVN $URL: https://svn-ccsm-models.cgd.ucar.edu/drv/seq_mct/branch_tags/cesm1_0_rel_tags/cesm1_0_rel01_drvseq3_1_32/driver/seq_avdata_mod.F90 $
!===============================================================================
!BOP ===========================================================================
!
! !MODULE: seq_avdata_mod -- provides use access to public cpl7 aVect, domain,
! and fraction data.
!
! !DESCRIPTION:
!
! provides use access to public cpl7 aVect, domain, and fraction data.
!
! !REMARKS:
!
! use access to public cpl7 aVect, domain, and fraction info is to avoid
! excessively long routine arg lists, eg. for history & restart modules.
! Note: while cpl7's non-main program ("driver") routines CAN access this
! data by use'ing this module, they SHOULD access it via agrument lists
! if it is reasonable to do so. Do the right thing.
!
! !REVISION HISTORY:
! 2009-Sep-25 - B. Kauffman - initial version
!
! !INTERFACE: ------------------------------------------------------------------
module seq_avdata_mod 3,4
! !USES:
use shr_kind_mod
,only: IN => SHR_KIND_IN
use mct_mod
! mct_ wrappers for mct lib
use seq_cdata_mod
! "cdata" type & methods (domain + decomp + infodata in one datatype)
use seq_infodata_mod
! "infodata" gathers various control flags into one datatype
implicit none
public ! default is public
! !PUBLIC DATA MEMBERS:
!----------------------------------------------------------------------------
! Infodata: inter-model control flags, domain info
!----------------------------------------------------------------------------
type (seq_infodata_type) :: infodata ! single instance for cpl and all comps
!----------------------------------------------------------------------------
! cdata types: contains pointers to domain info + component ID + infobuffer
!----------------------------------------------------------------------------
type (seq_cdata) :: cdata_aa ! on component pes
type (seq_cdata) :: cdata_ll
type (seq_cdata) :: cdata_oo
type (seq_cdata) :: cdata_ii
type (seq_cdata) :: cdata_rr
type (seq_cdata) :: cdata_gg
type (seq_cdata) :: cdata_ss
type (seq_cdata) :: cdata_ax ! on cpl pes
type (seq_cdata) :: cdata_lx
type (seq_cdata) :: cdata_ox
type (seq_cdata) :: cdata_ix
type (seq_cdata) :: cdata_rx
type (seq_cdata) :: cdata_gx
type (seq_cdata) :: cdata_sx
!----------------------------------------------------------------------------
! domain info: coords, fractions, decomps, area correction factors
!----------------------------------------------------------------------------
!--- domain coords, area, mask (MCT General Grids) --
type(mct_gGrid) :: dom_aa ! atm domain on atm pes
type(mct_gGrid) :: dom_ll ! lnd domain
type(mct_gGrid) :: dom_ii ! ice domain
type(mct_gGrid) :: dom_oo ! ocn domain
type(mct_gGrid) :: dom_rr ! runoff domain
type(mct_gGrid) :: dom_gg ! glc domain
type(mct_gGrid) :: dom_ss ! sno domain
type(mct_gGrid) :: dom_ax ! atm domain on cpl pes
type(mct_gGrid) :: dom_lx ! lnd domain
type(mct_gGrid) :: dom_ix ! ice domain
type(mct_gGrid) :: dom_ox ! ocn domain
type(mct_gGrid) :: dom_rx ! runoff domain
type(mct_gGrid) :: dom_gx ! glc domain
type(mct_gGrid) :: dom_sx ! sno domain
!--- domain fractions (only defined on cpl pes) ---
type(mct_aVect) :: fractions_ax ! Fractions on atm grid
type(mct_aVect) :: fractions_lx ! Fractions on lnd grid
type(mct_aVect) :: fractions_ix ! Fractions on ice grid
type(mct_aVect) :: fractions_ox ! Fractions on ocn grid
type(mct_aVect) :: fractions_gx ! Fractions on glc grid
!----------------------------------------------------------------------------
! State/flux field bundles (MCT attribute vectors)
!----------------------------------------------------------------------------
type(mct_aVect) :: x2a_aa ! Atm import, atm grid, atm pes - defined in atm gc
type(mct_aVect) :: a2x_aa ! Atm export, atm grid, atm pes - defined in atm gc
type(mct_aVect) :: x2a_ax ! Atm import, atm grid, cpl pes - defined in map_atmatm
type(mct_aVect) :: a2x_ax ! Atm export, atm grid, cpl pes - defined in map_atmatm
type(mct_aVect) :: a2x_lx ! Atm export, lnd grid, cpl pes - defined in mrg_x2l
type(mct_aVect) :: a2x_ix ! Atm export, ice grid, cpl pes - defined in mrg_x2i
type(mct_aVect) :: a2x_ox ! Atm export, ocn grid, cpl pes - defined in mrg_x2o
type(mct_aVect) :: x2l_ll ! Lnd import, lnd grid, lnd pes - defined in lnd gc
type(mct_aVect) :: l2x_ll ! Lnd export, lnd grid, lnd pes - defined in lnd gc
type(mct_aVect) :: x2l_lx ! Lnd import, lnd grid, cpl pes - defined in map_lndlnd
type(mct_aVect) :: l2x_lx ! Lnd export, lnd grid, cpl pes - defined in map_lndlnd
type(mct_aVect) :: l2x_ax ! Lnd export, atm grid, cpl pes - defined in mrg_x2a
type(mct_aVect) :: r2x_rr ! Rof export, rof grid, lnd pes - defined in lnd gc
type(mct_aVect) :: r2x_rx ! Rof export, rof grid, cpl pes - defined in map_rofrof
type(mct_accum) :: r2xacc_rx ! Rof export, rof grid, cpl pes - defined in driver
type(mct_aVect) :: r2x_ox ! Rof export, ocn grid, cpl pes - defined in mrg_x2o
type(mct_aVect) :: x2s_ss ! Sno import, sno grid, sno pes - defined in lnd gc
type(mct_aVect) :: s2x_ss ! Sno export, sno grid, sno pes - defined in lnd gc
type(mct_aVect) :: x2s_sx ! Sno import, sno grid, cpl pes - defined in map_snosno
type(mct_aVect) :: s2x_sx ! Sno export, sno grid, cpl pes - defined in map_snosno
type(mct_aVect) :: s2x_gx ! Sno export, glc grid, cpl pes - defined in mrg_x2g
type(mct_aVect) :: x2i_ii ! Ice import, ice grid, ice pes - defined in ice gc
type(mct_aVect) :: i2x_ii ! Ice export, ice grid, ice pes - defined in ice gc
type(mct_aVect) :: x2i_ix ! Ice import, ice grid, cpl pes - defined in map_iceice
type(mct_aVect) :: i2x_ix ! Ice export, ice grid, cpl pes - defined in map_iceice
type(mct_aVect) :: i2x_ax ! Ice export, atm grid, cpl pes - defined in mrg_x2a
type(mct_aVect) :: i2x_ox ! Ice export, ocn grid, cpl pes - defined in mrg_x2o
type(mct_aVect) :: x2o_oo ! Ocn import, ocn grid, ocn pes - defined in ocn gc
type(mct_aVect) :: o2x_oo ! Ocn export, ocn grid, ocn pes - defined in ocn gc
type(mct_aVect) :: x2o_ox ! Ocn import, ocn grid, cpl pes - defined in map_ocnocn
type(mct_accum) :: x2oacc_ox ! Ocn import, ocn grid, cpl pes - defined in driver
type(mct_aVect) :: o2x_ox ! Ocn export, ocn grid, cpl pes - defined in map_ocnocn
type(mct_aVect) :: o2x_ax ! Ocn export, atm grid, cpl pes - defined in mrg_x2a
type(mct_aVect) :: o2x_ix ! Ocn export, ice grid, cpl pes - defined in mrg_x2i
type(mct_aVect) :: xao_ox ! Atm-ocn fluxes, ocn grid, cpl pes - defined in flux_ao gc
type(mct_aVect) :: xao_ax ! Atm-ocn fluxes, atm grid, cpl pes - defined in flux_ao gc
type(mct_aVect) :: x2g_gg ! Glc import, glc grid, ice pes - defined in glc gc
type(mct_aVect) :: g2x_gg ! Glc export, glc grid, ice pes - defined in glc gc
type(mct_aVect) :: x2g_gx ! Glc import, glc grid, cpl pes - defined in map_glcglc
type(mct_aVect) :: g2x_gx ! Glc export, glc grid, cpl pes - defined in map_glcglc
type(mct_aVect) :: g2x_sx ! Glc export, sno grid, cpl pes - defined in mrg_x2s
integer(IN) :: r2xacc_rx_cnt ! r2xacc_rx: number of time samples accumulated
integer(IN) :: x2oacc_ox_cnt ! x2oacc_ox: number of time samples accumulated
! !PUBLIC MEMBER FUNCTIONS
! no public routines
! !PUBLIC TYPES:
! no public types
end module seq_avdata_mod
!===============================================================================