CIME Wave Data and Stub XML Files

Wave component XML files for data, stub, and dead components.

CIMEROOT/src/components/data_comps/dwav/cime_config

Wave data model, dwav, XML files and settings.

XML specification for archiving dwav output files.

<components version="2.0">
  <comp_archive_spec compname="dwav" compclass="wav">
    <rest_file_extension>r</rest_file_extension>
    <rest_history_varname>unset</rest_history_varname>
    <rpointer>
      <rpointer_file>rpointer.wav$NINST_STRING</rpointer_file>
      <rpointer_content >$CASE.dwav$NINST_STRING.r.$DATENAME.nc,$CASE.dwav$NINST_STRING.rs1.$DATENAME.bin</rpointer_content>
    </rpointer>
  </comp_archive_spec>
</components>

XML variables and component descriptions specific to dwav.

<?xml version="1.0"?>

<entry_id version="3.0">

  <!-- modifier_mode allowed values are
       '*' 0 or more modifiers (default)
       '1' exactly 1 modifier
       '?' 0 or 1 modifiers
       '+' 1 or more modifiers

       This file may have wav desc entries.
  -->
  <description modifier_mode="1">
    <desc wav="DWAV[%NULL][%CLIMO]">Data wave model (DWAV)</desc>
    <desc option="NULL">null mode</desc>
    <desc option="CLIMO">climatological mode</desc>
  </description>

  <entry id="COMP_WAV">
    <type>char</type>
    <valid_values>dwav</valid_values>
    <default_value>dwav</default_value>
    <group>case_comp</group>
    <file>env_case.xml</file>
    <desc>Name of wave component</desc>
  </entry>

  <entry id="DWAV_MODE">
    <type>char</type>
    <valid_values>NULL,CLIMO</valid_values>
    <default_value>NULL</default_value>
    <values match="last">
      <value compset="_DWAV%NULL">NULL</value>
      <value compset="_DWAV%CLIMO">CLIMO</value>
    </values>
    <group>run_component_dwav</group>
    <file>env_run.xml</file>
    <desc>DWAV mode. Values are null and copyall.
      In null mode, land forcing is set to zero and not used.
      default is copyall</desc>
  </entry>

  <help>
    =========================================
    DWAV naming conventions
    =========================================
  </help>

</entry_id>

XML variables and component descriptions specific to dwav.

<?xml version="1.0"?>

<entry_id version="3.0">

  <!-- modifier_mode allowed values are
       '*' 0 or more modifiers (default)
       '1' exactly 1 modifier
       '?' 0 or 1 modifiers
       '+' 1 or more modifiers

       This file may have wav desc entries.
  -->
  <description modifier_mode="1">
    <desc wav="DWAV[%NULL][%CLIMO]">Data wave model (DWAV)</desc>
    <desc option="NULL">null mode</desc>
    <desc option="CLIMO">climatological mode</desc>
  </description>

  <entry id="COMP_WAV">
    <type>char</type>
    <valid_values>dwav</valid_values>
    <default_value>dwav</default_value>
    <group>case_comp</group>
    <file>env_case.xml</file>
    <desc>Name of wave component</desc>
  </entry>

  <entry id="DWAV_MODE">
    <type>char</type>
    <valid_values>NULL,CLIMO</valid_values>
    <default_value>NULL</default_value>
    <values match="last">
      <value compset="_DWAV%NULL">NULL</value>
      <value compset="_DWAV%CLIMO">CLIMO</value>
    </values>
    <group>run_component_dwav</group>
    <file>env_run.xml</file>
    <desc>DWAV mode. Values are null and copyall.
      In null mode, land forcing is set to zero and not used.
      default is copyall</desc>
  </entry>

  <help>
    =========================================
    DWAV naming conventions
    =========================================
  </help>

</entry_id>

XML namelist definitions for dwav.

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="namelist_definition.xsl"?>

<entry_id version="2.0">

  <!--
     Values to use by default for creation of DWAV model dwav namelists.
     The element names are the same as the corresponding namelist
     variables.  Values that depend on the model configuration use
     attributes to express the dependency.  The recognized attributes
     are: grid.attributes from the config_cache.xml file (with keys converted to upper-case).

     strm_year_first is the first year of the stream data that will be used
     strm_year_last  is the last  year of the stream data that will be used
     strm_year_align is the model year that will be aligned with stream data for year_first

     For cplhist forcing - the following substitutions will be made below
     Replace any instance of the following substring indicators with the appropriate values:
     %y    => year from the range yearfirst to yearlast
              obtained from values of <strm_year_start> -> <strm_year_end> below
     %ym   => year-month from the range yearfirst to yearlast with all 12 months
              obtained from values of <strm_year_start> -> <strm_year_end> below
     %ymd  => year-month-day from the range yearfirst to yearlast with all 12 months
              obtained from values of <strm_year_start> -> <strm_year_end> below

     Replace any instance of $VARNAME with the xml variable value obtained from any
     of the $CASEROOT/env*xml files

     In dwav_in,  streams namelist input has the form
     streams = 'stream1.txt year_align year_first year_last ',
               'stream2.txt year_align year_first year_last ',
               ...
               'streamN.txt year_align year_first year_last '

     Currently the following streams are supported
         wav.cplhist
         wav.diatren_ann_rx1
         wav.diatren_iaf_rx1
   -->

  <!-- ========================================================================================  -->
  <!-- Stream file variables                                                                     -->
  <!-- ========================================================================================  -->

  <entry id="streamslist">
    <type>char(100)</type>
    <category>streams</category>
    <group>streams_file</group>
    <desc>List of streams used for the given dwav_mode.</desc>
    <values>
      <value dwav_mode="NULL">null</value>
      <value dwav_mode="CLIMO">climo</value>
    </values>
  </entry>

  <entry id="strm_domdir" skip_default_entry="true">
    <type>char</type>
    <category>streams</category>
    <group>streams_file</group>
    <desc>Stream domain file directory.</desc>
    <values>
      <value stream="climo">$DIN_LOC_ROOT/wav/dwav</value>
    </values>
  </entry>

  <entry id="strm_domfil" skip_default_entry="true">
    <type>char</type>
    <category>streams</category>
    <group>streams_file</group>
    <desc>Stream domain file path(s).</desc>
    <values>
      <value stream="climo">waveclim.mon.ww3a.150612.nc</value>
    </values>
  </entry>

  <entry id="strm_domvar" skip_default_entry="true">
    <type>char</type>
    <category>streams</category>
    <group>streams_file</group>
    <desc>Stream domain variable name(s).</desc>
    <values>
      <value stream="climo">
        time   time
        xc     lon
        yc     lat
        area   area
        mask   mask
      </value>
    </values>
  </entry>

  <entry id="strm_datdir" skip_default_entry="true">
    <type>char</type>
    <category>streams</category>
    <group>streams_file</group>
    <desc>Stream data file directory.</desc>
    <values>
      <value stream="climo">$DIN_LOC_ROOT/wav/dwav</value>
    </values>
  </entry>

  <entry id="strm_datfil" skip_default_entry="true">
    <type>char</type>
    <category>streams</category>
    <group>streams_file</group>
    <desc>Stream data file path(s).</desc>
    <values>
      <value stream="climo">waveclim.mon.ww3a.150612.nc</value>
    </values>
  </entry>

  <entry id="strm_datvar" skip_default_entry="true">
    <type>char</type>
    <category>streams</category>
    <group>streams_file</group>
    <desc>Stream data variable name(s).</desc>
    <values>
      <value stream="climo">
        lamult  lamult
        ustokes ustokes
        vstokes vstokes
      </value>
    </values>
  </entry>

  <entry id="strm_offset" skip_default_entry="true">
    <type>integer</type>
    <category>streams</category>
    <group>streams_file</group>
    <desc>Stream offset.</desc>
    <values>
      <value>0</value>
    </values>
  </entry>

  <entry id="strm_year_align" skip_default_entry="true">
    <type>integer</type>
    <category>streams</category>
    <group>streams_file</group>
    <desc>Simulation year to align stream to.</desc>
    <values>
      <value stream="climo">1</value>
    </values>
  </entry>

  <entry id="strm_year_start" skip_default_entry="true">
    <type>integer</type>
    <category>streams</category>
    <group>streams_file</group>
    <desc>First year of stream.</desc>
    <values>
      <value stream="climo">1</value>
    </values>
  </entry>

  <entry id="strm_year_end" skip_default_entry="true">
    <type>integer</type>
    <category>streams</category>
    <group>streams_file</group>
    <desc>Last year of stream.</desc>
    <values>
      <value   stream="climo">1</value>
    </values>
  </entry>

  <!-- ========================================================================================  -->
  <!-- DWAV Namelists                                                                            -->
  <!-- ========================================================================================  -->

  <!-- =========================================  -->
  <!--- shr_strmdata_nml -->
  <!-- =========================================  -->

  <entry id="datamode">
    <type>char</type>
    <category>streams</category>
    <group>shr_strdata_nml</group>
    <valid_values>NULL,COPYALL</valid_values>
    <desc>
      The wave data is associated with the wave model
      and is normally on a different grid than the ocean data.
      datamode = "NULL"
      Is always a valid option and means no data will be generated.
      Turns off the data model as a provider of data to the coupler.
      datamode = "COPYALL"
      Copies all fields directly from the input data streams Any required
      fields not found on an input stream will be set to zero.
      Set by the following xml variables in env_run.xml DWAV_MODE
      specifies values for wav mode: copyall,null
    </desc>
    <values>
      <value>COPYALL</value>
      <value dwav_mode="NULL">NULL</value>
    </values>
  </entry>

  <entry id="domainfile" skip_default_entry="true">
    <type>char</type>
    <category>streams</category>
    <input_pathname>abs</input_pathname>
    <group>shr_strdata_nml</group>
    <desc>
      spatial gridfile associated with the strdata.  grid information will
      be read from this file and that grid will serve as the target grid
      for all input data for this strdata input.
    </desc>
    <values>
      <value>null</value>
    </values>
  </entry>

  <entry id="fillalgo"  per_stream_entry="true">
    <type>char(30)</type>
    <category>streams</category>
    <group>shr_strdata_nml</group>
    <valid_values>copy,bilinear,nn,nnoni,nnonj,spval</valid_values>
    <desc>
      array (up to 30 elements) of fill algorithms associated with the array
      of streams.  valid options are just copy (ie. no fill), special value,
      nearest neighbor, nearest neighbor in "i" direction, or nearest
      neighbor in "j" direction.
      valid values:  'copy','spval','nn','nnoni','nnonj'
    </desc>
    <values>
      <value>nn</value>
    </values>
  </entry>

  <entry id="fillmask"  per_stream_entry="true">
    <type>char(30)</type>
    <category>streams</category>
    <group>shr_strdata_nml</group>
    <valid_values>nomask,srcmask,dstmask,bothmask</valid_values>
    <desc>
      plays no role is fill algorithm at the present time.
      valid values: "nomask,srcmask,dstmask,bothmask"
    </desc>
    <values>
      <value>nomask</value>
    </values>
  </entry>

  <entry id="fillread"  per_stream_entry="true">
    <type>char(30)</type>
    <category>streams</category>
    <group>shr_strdata_nml</group>
    <desc>
      array (up to 30 elements) of filenames associated with the array of
      streams.  specifies the weights file to read in instead of computing the
      weights on the fly for the fill operation.  if this is set, fillalgo
      and fillmask are ignored.
    </desc>
    <values>
      <value>NOT_SET</value>
    </values>
  </entry>

  <entry id="fillwrite" per_stream_entry="true">
    <type>char(30)</type>
    <category>streams</category>
    <group>shr_strdata_nml</group>
    <desc>
      array (up to 30 elements)  of filenames associated with the array of
      streams.  specifies the weights file to generate after weights are
      computed on the fly for the fill operation.  this allows a user to
      save and reuse a set of weights later.
    </desc>
    <values>
      <value>NOT_SET</value>
    </values>
  </entry>

  <entry id="mapmask" per_stream_entry="true">
    <type>char(30)</type>
    <category>streams</category>
    <group>shr_strdata_nml</group>
    <valid_values>nomask,srcmask,dstmask,bothmask</valid_values>
    <desc>
      array (up to 30 elements) of masking algorithms for mapping input data
      associated with the array of streams.  valid options are map only from
      valid src points, map only to valid destination points, ignore all
      masks, map only from valid src points to valid destination points.
      valid values: srcmask, dstmask, nomask,bothmask
    </desc>
    <values>
      <value>dstmask</value>
    </values>
  </entry>

  <entry id="mapalgo" per_stream_entry="true">
    <type>char(30)</type>
    <category>streams</category>
    <group>shr_strdata_nml</group>
    <valid_values>copy,bilinear,nn,nnoni,nnonj,spval</valid_values>
    <desc>
      array (up to 30 elements) of fill algorithms associated with the array
      of streams.  valid options are copy by index, set to special value,
      nearest neighbor, nearest neighbor in "i" direction, nearest neighbor
      in "j" direction, or bilinear.
      valid values: copy,spval,nn,nnoni,nnonj,bilinear
    </desc>
    <values>
      <value>bilinear</value>
    </values>
  </entry>

  <entry id="mapread" per_stream_entry="true">
    <type>char(30)</type>
    <category>streams</category>
    <group>shr_strdata_nml</group>
    <desc>
      array (up to 30 elements) of filenames associated with the array of
      streams.  specifies the weights file to read instead of computing
      weights on the fly for the mapping (interpolation) operation.  if this
      is set, mapalgo and mapmask are ignored.
    </desc>
    <values>
      <value>NOT_SET</value>
    </values>
  </entry>

  <entry id="mapwrite" per_stream_entry="true">
    <type>char(30)</type>
    <category>streams</category>
    <group>shr_strdata_nml</group>
    <desc>
      array (up to 30 elements) of filenames associated with the array of
      streams.  specifies the weights file to generate after weights are
      computed on the fly for the mapping (interpolation) operation.  this
      allows a user to save and reuse a set of weights later.
    </desc>
    <values>
      <value>NOT_SET</value>
    </values>
  </entry>

  <entry id="tintalgo" per_stream_entry="true">
    <type>char(30)</type>
    <category>streams</category>
    <group>shr_strdata_nml</group>
    <valid_values>coszen,nearest,linear,lower,upper</valid_values>
    <desc>
      array (up to 30 elements) of time interpolation options associated with the array of
      streams.
      valid values: lower,upper,nearest,linear,coszen
      lower   = Use lower time-value
      upper   = Use upper time-value
      nearest = Use the nearest time-value
      linear  = Linearly interpolate between the two time-values
      coszen  = Scale according to the cosine of the solar zenith angle (for solar)
    </desc>
    <values>
      <value>linear</value>
    </values>
  </entry>

  <entry id="taxmode" per_stream_entry="true">
    <type>char(30)</type>
    <category>streams</category>
    <group>shr_strdata_nml</group>
    <valid_values>extend,cycle,limit</valid_values>
    <desc>
      array of time axis modes associated with the array of streams for
      handling data outside the specified stream time axis.
      valid options are to cycle the data based on the first, last, and
      align settings associated with the stream dataset, to extend the first
      and last valid value indefinitely, or to limit the interpolated data
      to fall only between the least and greatest valid value of the time array.
      valid values: cycle,extend,limit
      extend = extrapolate before and after the period by using the first or last value.
      cycle  = cycle between the range of data
      limit  = restrict to the period for which the data is valid
    </desc>
    <values>
      <value>cycle</value>
    </values>
  </entry>

  <entry id="readmode" per_stream_entry="true">
    <type>char(30)</type>
    <category>streams</category>
    <group>shr_strdata_nml</group>
    <valid_values>single,full_file</valid_values>
    <desc>
      array (up to 30 elements) of reading mode associated with the array of
      streams.  specifies the mode of reading temporal stream dataset.
      valid options are "single" (read temporal dataset one at a time) or
      "full_file" (read all entires of temporal dataset in a given netcdf file)
      valid values: single,full_file
    </desc>
    <values>
      <value>single</value>
    </values>
  </entry>

  <entry id="dtlimit" per_stream_entry="true">
    <type>real(30)</type>
    <category>streams</category>
    <group>shr_strdata_nml</group>
    <desc>
      array (up to 30 elements) of delta time ratio limits placed on the
      time interpolation associated with the array of streams.  this real
      value causes the model to stop if the ratio of the running maximum
      delta time divided by the minimum delta time is greater than the
      dtlimit for that stream.  for instance, with daily data, the delta
      time should be exactly one day throughout the dataset and the computed
      maximum divided by minimum delta time should always be 1.0.  for
      monthly data, the delta time should be between 28 and 31 days and the
      maximum ratio should be about 1.1.  the running value of the delta
      time is computed as data is read and any wraparound or cycling is also
      included.  this input helps trap missing data or errors in cycling.
      to turn off trapping, set the value to 1.0e30 or something similar.
    </desc>
    <values>
      <value>1.5e0</value>
    </values>
  </entry>

  <entry id="vectors">
    <type>char</type>
    <category>streams</category>
    <group>shr_strdata_nml</group>
    <desc>
      list of paired colon delimited field names that should be treated as
      vectors when carrying out spatial interpolation.  unlike other
      character arrays in this namelist, this array is completely decoupled
      from the list of streams.  this is a list of vector pairs that span
      all input streams where different fields of the vector pair could
      appear in different streams.
      for example, vectors = 'u:v','taux:tauy'.
    </desc>
    <values>
      <value>null</value>
    </values>
  </entry>

  <entry id="streams">
    <type>char(30)</type>
    <category>streams</category>
    <group>shr_strdata_nml</group>
    <desc>
      character array (up to 30 elements) of stream input files.  this
      string is actually parsed by a stream method and so the format is
      specified by the stream module.  this string consists of a
      "stream_input_filename year_align year_first year_last".  the
      stream_input_filename is a stream text input file and the format and
      options are described elsewhere.  year_align, year_first, and
      year_last provide information about the time axis of the file and how
      to relate the input time axis to the model time axis.
    </desc>
    <values>
      <value></value>
    </values>
  </entry>

  <!-- =========================================  -->
  <!--- dwav_nml -->
  <!-- =========================================  -->

  <entry id="decomp">
    <type>char</type>
    <category>dwav</category>
    <group>dwav_nml</group>
    <valid_values>1d,root</valid_values>
    <desc>
      DWAV Decomposition strategy
      1d   = Vector decomposition
      root = run only on the master task
    </desc>
    <values>
      <value>1d</value>
    </values>
  </entry>

  <entry id="restfilm">
    <type>char</type>
    <category>dwav</category>
    <group>dwav_nml</group>
    <desc>
      Master restart file name for dwav model
    </desc>
    <values>
      <value>undefined</value>
    </values>
  </entry>

  <entry id="restfils">
    <type>char</type>
    <category>dwav</category>
    <group>dwav_nml</group>
    <desc>
      Stream restart file name for dwav model, needed for branch simulations
    </desc>
    <values>
      <value>undefined</value>
    </values>
  </entry>

  <entry id="force_prognostic_true">
    <type>logical</type>
    <category>dwav</category>
    <group>dwav_nml</group>
    <desc>If TRUE, prognostic is forced to true. </desc>
    <values>
      <value>.false.</value>
    </values>
  </entry>

</entry_id>

CIMEROOT/src/components/stub_comps/swav/cime_config

The wave stub model, swav, does not output any files in the RUNDIR nor does it have any namelist settings.

XML variables and component descriptions specific to swav.

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="entry_id.xsl" ?>

<entry_id version="3.0">

  <description>
    <desc wav="SWAV">Stub wave component</desc>
  </description>

  <entry id="COMP_WAV">
    <type>char</type>
    <valid_values>swav</valid_values>
    <default_value>swav</default_value>
    <group>case_comp</group>
    <file>env_case.xml</file>
    <desc>Name of wave component</desc>
  </entry>

  <help>
    =========================================
    SWAV naming conventions in compset name
    =========================================
  </help>

</entry_id>

CIMEROOT/src/components/xcpl_comps/xwav/cime_config

The wave dead model, xwav, does not output any files in the RUNDIR nor does it have any namelist settings.

XML variables and component descriptions specific to xwav.

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="entry_id.xsl" ?>

<entry_id version="3.0">
  <description>
    <desc wav="XWAV">Dead wave component</desc>
  </description>


  <entry id="COMP_WAV">
    <type>char</type>
    <valid_values>xwav</valid_values>
    <default_value>xwav</default_value>
    <group>case_comp</group>
    <file>env_case.xml</file>
    <desc>Name of wave component</desc>
  </entry>

  <help>
    =========================================
    XWAV naming conventions in compset name
    =========================================
  </help>

</entry_id>