00001 !=============================================================================== 00002 ! SVN $Id: seq_avdata_mod.F90 18516 2009-09-25 22:54:10Z kauff $ 00003 ! 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 $ 00004 !=============================================================================== 00005 !BOP =========================================================================== 00006 ! 00007 ! !MODULE: seq_avdata_mod -- provides use access to public cpl7 aVect, domain, 00008 ! and fraction data. 00009 ! 00010 ! !DESCRIPTION: 00011 ! 00012 ! provides use access to public cpl7 aVect, domain, and fraction data. 00013 ! 00014 ! !REMARKS: 00015 ! 00016 ! use access to public cpl7 aVect, domain, and fraction info is to avoid 00017 ! excessively long routine arg lists, eg. for history & restart modules. 00018 ! Note: while cpl7's non-main program ("driver") routines CAN access this 00019 ! data by use'ing this module, they SHOULD access it via agrument lists 00020 ! if it is reasonable to do so. Do the right thing. 00021 ! 00022 ! !REVISION HISTORY: 00023 ! 2009-Sep-25 - B. Kauffman - initial version 00024 ! 00025 ! !INTERFACE: ------------------------------------------------------------------ 00026 00027 module seq_avdata_mod 00028 00029 ! !USES: 00030 00031 use shr_kind_mod ,only: IN => SHR_KIND_IN 00032 use mct_mod ! mct_ wrappers for mct lib 00033 00034 use seq_cdata_mod ! "cdata" type & methods (domain + decomp + infodata in one datatype) 00035 use seq_infodata_mod ! "infodata" gathers various control flags into one datatype 00036 00037 implicit none 00038 00039 public ! default is public 00040 00041 ! !PUBLIC DATA MEMBERS: 00042 00043 !---------------------------------------------------------------------------- 00044 ! Infodata: inter-model control flags, domain info 00045 !---------------------------------------------------------------------------- 00046 00047 type (seq_infodata_type) :: infodata ! single instance for cpl and all comps 00048 00049 !---------------------------------------------------------------------------- 00050 ! cdata types: contains pointers to domain info + component ID + infobuffer 00051 !---------------------------------------------------------------------------- 00052 00053 type (seq_cdata) :: cdata_aa ! on component pes 00054 type (seq_cdata) :: cdata_ll 00055 type (seq_cdata) :: cdata_oo 00056 type (seq_cdata) :: cdata_ii 00057 type (seq_cdata) :: cdata_rr 00058 type (seq_cdata) :: cdata_gg 00059 type (seq_cdata) :: cdata_ss 00060 00061 type (seq_cdata) :: cdata_ax ! on cpl pes 00062 type (seq_cdata) :: cdata_lx 00063 type (seq_cdata) :: cdata_ox 00064 type (seq_cdata) :: cdata_ix 00065 type (seq_cdata) :: cdata_rx 00066 type (seq_cdata) :: cdata_gx 00067 type (seq_cdata) :: cdata_sx 00068 00069 !---------------------------------------------------------------------------- 00070 ! domain info: coords, fractions, decomps, area correction factors 00071 !---------------------------------------------------------------------------- 00072 00073 !--- domain coords, area, mask (MCT General Grids) -- 00074 00075 type(mct_gGrid) :: dom_aa ! atm domain on atm pes 00076 type(mct_gGrid) :: dom_ll ! lnd domain 00077 type(mct_gGrid) :: dom_ii ! ice domain 00078 type(mct_gGrid) :: dom_oo ! ocn domain 00079 type(mct_gGrid) :: dom_rr ! runoff domain 00080 type(mct_gGrid) :: dom_gg ! glc domain 00081 type(mct_gGrid) :: dom_ss ! sno domain 00082 00083 type(mct_gGrid) :: dom_ax ! atm domain on cpl pes 00084 type(mct_gGrid) :: dom_lx ! lnd domain 00085 type(mct_gGrid) :: dom_ix ! ice domain 00086 type(mct_gGrid) :: dom_ox ! ocn domain 00087 type(mct_gGrid) :: dom_rx ! runoff domain 00088 type(mct_gGrid) :: dom_gx ! glc domain 00089 type(mct_gGrid) :: dom_sx ! sno domain 00090 00091 !--- domain fractions (only defined on cpl pes) --- 00092 00093 type(mct_aVect) :: fractions_ax ! Fractions on atm grid 00094 type(mct_aVect) :: fractions_lx ! Fractions on lnd grid 00095 type(mct_aVect) :: fractions_ix ! Fractions on ice grid 00096 type(mct_aVect) :: fractions_ox ! Fractions on ocn grid 00097 type(mct_aVect) :: fractions_gx ! Fractions on glc grid 00098 00099 !---------------------------------------------------------------------------- 00100 ! State/flux field bundles (MCT attribute vectors) 00101 !---------------------------------------------------------------------------- 00102 00103 type(mct_aVect) :: x2a_aa ! Atm import, atm grid, atm pes - defined in atm gc 00104 type(mct_aVect) :: a2x_aa ! Atm export, atm grid, atm pes - defined in atm gc 00105 00106 type(mct_aVect) :: x2a_ax ! Atm import, atm grid, cpl pes - defined in map_atmatm 00107 type(mct_aVect) :: a2x_ax ! Atm export, atm grid, cpl pes - defined in map_atmatm 00108 type(mct_aVect) :: a2x_lx ! Atm export, lnd grid, cpl pes - defined in mrg_x2l 00109 type(mct_aVect) :: a2x_ix ! Atm export, ice grid, cpl pes - defined in mrg_x2i 00110 type(mct_aVect) :: a2x_ox ! Atm export, ocn grid, cpl pes - defined in mrg_x2o 00111 00112 type(mct_aVect) :: x2l_ll ! Lnd import, lnd grid, lnd pes - defined in lnd gc 00113 type(mct_aVect) :: l2x_ll ! Lnd export, lnd grid, lnd pes - defined in lnd gc 00114 00115 type(mct_aVect) :: x2l_lx ! Lnd import, lnd grid, cpl pes - defined in map_lndlnd 00116 type(mct_aVect) :: l2x_lx ! Lnd export, lnd grid, cpl pes - defined in map_lndlnd 00117 type(mct_aVect) :: l2x_ax ! Lnd export, atm grid, cpl pes - defined in mrg_x2a 00118 00119 type(mct_aVect) :: r2x_rr ! Rof export, rof grid, lnd pes - defined in lnd gc 00120 00121 type(mct_aVect) :: r2x_rx ! Rof export, rof grid, cpl pes - defined in map_rofrof 00122 type(mct_accum) :: r2xacc_rx ! Rof export, rof grid, cpl pes - defined in driver 00123 type(mct_aVect) :: r2x_ox ! Rof export, ocn grid, cpl pes - defined in mrg_x2o 00124 00125 type(mct_aVect) :: x2s_ss ! Sno import, sno grid, sno pes - defined in lnd gc 00126 type(mct_aVect) :: s2x_ss ! Sno export, sno grid, sno pes - defined in lnd gc 00127 00128 type(mct_aVect) :: x2s_sx ! Sno import, sno grid, cpl pes - defined in map_snosno 00129 type(mct_aVect) :: s2x_sx ! Sno export, sno grid, cpl pes - defined in map_snosno 00130 type(mct_aVect) :: s2x_gx ! Sno export, glc grid, cpl pes - defined in mrg_x2g 00131 00132 type(mct_aVect) :: x2i_ii ! Ice import, ice grid, ice pes - defined in ice gc 00133 type(mct_aVect) :: i2x_ii ! Ice export, ice grid, ice pes - defined in ice gc 00134 00135 type(mct_aVect) :: x2i_ix ! Ice import, ice grid, cpl pes - defined in map_iceice 00136 type(mct_aVect) :: i2x_ix ! Ice export, ice grid, cpl pes - defined in map_iceice 00137 type(mct_aVect) :: i2x_ax ! Ice export, atm grid, cpl pes - defined in mrg_x2a 00138 type(mct_aVect) :: i2x_ox ! Ice export, ocn grid, cpl pes - defined in mrg_x2o 00139 00140 type(mct_aVect) :: x2o_oo ! Ocn import, ocn grid, ocn pes - defined in ocn gc 00141 type(mct_aVect) :: o2x_oo ! Ocn export, ocn grid, ocn pes - defined in ocn gc 00142 00143 type(mct_aVect) :: x2o_ox ! Ocn import, ocn grid, cpl pes - defined in map_ocnocn 00144 type(mct_accum) :: x2oacc_ox ! Ocn import, ocn grid, cpl pes - defined in driver 00145 type(mct_aVect) :: o2x_ox ! Ocn export, ocn grid, cpl pes - defined in map_ocnocn 00146 type(mct_aVect) :: o2x_ax ! Ocn export, atm grid, cpl pes - defined in mrg_x2a 00147 type(mct_aVect) :: o2x_ix ! Ocn export, ice grid, cpl pes - defined in mrg_x2i 00148 00149 type(mct_aVect) :: xao_ox ! Atm-ocn fluxes, ocn grid, cpl pes - defined in flux_ao gc 00150 type(mct_aVect) :: xao_ax ! Atm-ocn fluxes, atm grid, cpl pes - defined in flux_ao gc 00151 00152 type(mct_aVect) :: x2g_gg ! Glc import, glc grid, ice pes - defined in glc gc 00153 type(mct_aVect) :: g2x_gg ! Glc export, glc grid, ice pes - defined in glc gc 00154 00155 type(mct_aVect) :: x2g_gx ! Glc import, glc grid, cpl pes - defined in map_glcglc 00156 type(mct_aVect) :: g2x_gx ! Glc export, glc grid, cpl pes - defined in map_glcglc 00157 type(mct_aVect) :: g2x_sx ! Glc export, sno grid, cpl pes - defined in mrg_x2s 00158 00159 integer(IN) :: r2xacc_rx_cnt ! r2xacc_rx: number of time samples accumulated 00160 integer(IN) :: x2oacc_ox_cnt ! x2oacc_ox: number of time samples accumulated 00161 00162 ! !PUBLIC MEMBER FUNCTIONS 00163 00164 ! no public routines 00165 00166 ! !PUBLIC TYPES: 00167 00168 ! no public types 00169 00170 end module seq_avdata_mod 00171 00172 !===============================================================================