coupling esmf atm.yaml: Difference between revisions
No edit summary (change visibility) |
|||
| Line 1: | Line 1: | ||
<div class="title">coupling_esmf_atm.yaml</div> | <div class="title">ROMS ESMF/NUOPC Metadata File: coupling_esmf_atm.yaml</div> | ||
__TOC__ | __TOC__ | ||
The '''coupling_esmf_<atm>.yaml''' (where <atm> is the model name) file specifies the ROMS Coupling ESMF/NUOPC System Import/Export Metadata Dictionary. Starting '''svn''' revision '''-r 1902''' released on March 1, 2022, the ROMS coupling metadata is managed with a YAML file, and the regular text file '''coupling_esmf_<atm>.dat''' is deprecated. The YAML files are simple, easy to follow, elegant, portable, and expandable. ROMS can now process YAML files with its parser module, '''yaml_parser.F'''. Therefore, there is no need to use third-party YAML parsers. Basically, '''coupling_esmf_<atm>.yaml''' has the following structure: | The '''coupling_esmf_<atm>.yaml''' (where '''<atm>''' is the model name) file specifies the ROMS Coupling ESMF/NUOPC System Import/Export Metadata Dictionary. Starting '''svn''' revision '''-r 1902''' released on March 1, 2022, the ROMS coupling metadata is managed with a YAML file, and the regular text file '''coupling_esmf_<atm>.dat''' is deprecated. The YAML files are simple, easy to follow, elegant, portable, and expandable. ROMS can now process YAML files with its parser module, '''yaml_parser.F'''. Therefore, there is no need to use third-party YAML parsers. Basically, '''coupling_esmf_<atm>.yaml''' has the following structure: | ||
<div class="box"><span class="violet">ATM_component</span>: <span class="green">&ATM</span> <span class="twilightBlue">WRF</span><br /><br /><span class="violet">DATA_component</span>: <span class="twilightBlue">data.nc</span><br /><br /><span class="violet">ROMS_component</span>: <span class="green">&OCN</span> <span class="twilightBlue">ROMS</span><br /><br /><span class="violet">metadata</span>:<br /><br /> <span class="red">-</span> <span class="violet">standard_name</span>: <span class="twilightBlue">sea_surface_temperature</span><br /> <span class="violet">long_name</span>: <span class="twilightBlue">sea surface temperature</span><br /> <span class="violet">short_name</span>: <span class="twilightBlue">SST</span><br /> <span class="violet">data_variables</span>: <span class="red">[<span class="twilightBlue">temperature</span>, <span class="twilightBlue">time</span>]</span><br /> <span class="violet">source_units</span>: <span class="twilightBlue">C</span><br /> <span class="violet">destination_units</span>: <span class="twilightBlue">K</span><br /> <span class="violet">source_grid</span>: <span class="twilightBlue">cell_center</span><br /> <span class="violet">destination_grid</span>: <span class="twilightBlue">cell_center</span><br /> <span class="violet">add_offset</span>: <span class="twilightBlue">273.15d0</span><br /> <span class="violet">scale</span>: <span class="twilightBlue">1.0d0</span><br /> <span class="violet">debug_write</span>: <span class="twilightBlue">false</span><br /> <span class="violet">connected_to</span>: <span class="salmon">*OCN</span><br /> <span class="violet">regrid_method</span>: <span class="twilightBlue">bilinear</span><br /> <span class="violet">extrapolate_method</span>: <span class="twilightBlue">nearest</span><br /><br /> <span class="red">-</span> <span class="violet">standard_name</span>: <span class="twilightBlue">sea_surface_temperature_data</span><br /> <span class="violet">long_name</span>: <span class="twilightBlue">sea surface temperature data</span><br /> <span class="violet">short_name</span>: <span class="twilightBlue">dSST</span><br /> <span class="violet">data_variables</span>: <span class="red">[<span class="twilightBlue">temperature</span>, <span class="twilightBlue">time</span>]</span><br /> <span class="violet">source_units</span>: <span class="twilightBlue">C</span><br /> <span class="violet">destination_units</span>: <span class="twilightBlue">K</span><br /> <span class="violet">source_grid</span>: <span class="twilightBlue">cell_center</span><br /> <span class="violet">destination_grid</span>: <span class="twilightBlue">cell_center</span><br /> <span class="violet">add_offset</span>: <span class="twilightBlue">273.15d0</span><br /> <span class="violet">scale</span>: <span class="twilightBlue">1.0d0</span><br /> <span class="violet">debug_write</span>: <span class="twilightBlue">false</span><br /> <span class="violet">connected_to</span>: <span class="salmon">*ATM</span><br /> <span class="violet">regrid_method</span>: <span class="twilightBlue">bilinear</span><br /> <span class="violet">extrapolate_method</span>: <span class="twilightBlue">nearest</span><br /> <span class="red">...</span></div> | <div class="box"><span class="violet">ATM_component</span>: <span class="green">&ATM</span> <span class="twilightBlue">WRF</span><br /><br /><span class="violet">DATA_component</span>: <span class="twilightBlue">data.nc</span><br /><br /><span class="violet">ROMS_component</span>: <span class="green">&OCN</span> <span class="twilightBlue">ROMS</span><br /><br /><span class="violet">metadata</span>:<br /><br /> <span class="red">-</span> <span class="violet">standard_name</span>: <span class="twilightBlue">sea_surface_temperature</span><br /> <span class="violet">long_name</span>: <span class="twilightBlue">sea surface temperature</span><br /> <span class="violet">short_name</span>: <span class="twilightBlue">SST</span><br /> <span class="violet">data_variables</span>: <span class="red">[<span class="twilightBlue">temperature</span>, <span class="twilightBlue">time</span>]</span><br /> <span class="violet">source_units</span>: <span class="twilightBlue">C</span><br /> <span class="violet">destination_units</span>: <span class="twilightBlue">K</span><br /> <span class="violet">source_grid</span>: <span class="twilightBlue">cell_center</span><br /> <span class="violet">destination_grid</span>: <span class="twilightBlue">cell_center</span><br /> <span class="violet">add_offset</span>: <span class="twilightBlue">273.15d0</span><br /> <span class="violet">scale</span>: <span class="twilightBlue">1.0d0</span><br /> <span class="violet">debug_write</span>: <span class="twilightBlue">false</span><br /> <span class="violet">connected_to</span>: <span class="salmon">*OCN</span><br /> <span class="violet">regrid_method</span>: <span class="twilightBlue">bilinear</span><br /> <span class="violet">extrapolate_method</span>: <span class="twilightBlue">nearest</span><br /><br /> <span class="red">-</span> <span class="violet">standard_name</span>: <span class="twilightBlue">sea_surface_temperature_data</span><br /> <span class="violet">long_name</span>: <span class="twilightBlue">sea surface temperature data</span><br /> <span class="violet">short_name</span>: <span class="twilightBlue">dSST</span><br /> <span class="violet">data_variables</span>: <span class="red">[<span class="twilightBlue">temperature</span>, <span class="twilightBlue">time</span>]</span><br /> <span class="violet">source_units</span>: <span class="twilightBlue">C</span><br /> <span class="violet">destination_units</span>: <span class="twilightBlue">K</span><br /> <span class="violet">source_grid</span>: <span class="twilightBlue">cell_center</span><br /> <span class="violet">destination_grid</span>: <span class="twilightBlue">cell_center</span><br /> <span class="violet">add_offset</span>: <span class="twilightBlue">273.15d0</span><br /> <span class="violet">scale</span>: <span class="twilightBlue">1.0d0</span><br /> <span class="violet">debug_write</span>: <span class="twilightBlue">false</span><br /> <span class="violet">connected_to</span>: <span class="salmon">*ATM</span><br /> <span class="violet">regrid_method</span>: <span class="twilightBlue">bilinear</span><br /> <span class="violet">extrapolate_method</span>: <span class="twilightBlue">nearest</span><br /> <span class="red">...</span></div> | ||
Revision as of 23:28, 27 April 2022
The coupling_esmf_<atm>.yaml (where <atm> is the model name) file specifies the ROMS Coupling ESMF/NUOPC System Import/Export Metadata Dictionary. Starting svn revision -r 1902 released on March 1, 2022, the ROMS coupling metadata is managed with a YAML file, and the regular text file coupling_esmf_<atm>.dat is deprecated. The YAML files are simple, easy to follow, elegant, portable, and expandable. ROMS can now process YAML files with its parser module, yaml_parser.F. Therefore, there is no need to use third-party YAML parsers. Basically, coupling_esmf_<atm>.yaml has the following structure:
DATA_component: data.nc
ROMS_component: &OCN ROMS
metadata:
- standard_name: sea_surface_temperature
long_name: sea surface temperature
short_name: SST
data_variables: [temperature, time]
source_units: C
destination_units: K
source_grid: cell_center
destination_grid: cell_center
add_offset: 273.15d0
scale: 1.0d0
debug_write: false
connected_to: *OCN
regrid_method: bilinear
extrapolate_method: nearest
- standard_name: sea_surface_temperature_data
long_name: sea surface temperature data
short_name: dSST
data_variables: [temperature, time]
source_units: C
destination_units: K
source_grid: cell_center
destination_grid: cell_center
add_offset: 273.15d0
scale: 1.0d0
debug_write: false
connected_to: *ATM
regrid_method: bilinear
extrapolate_method: nearest
...
The field key and value pair in the YAML blocking list is as follows:
| Key | Description | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| standard_name | CF conventions standard name for variable. A list of applicable standard_name attributes are shown below. | ||||||||||||
| long_name | The field's long descriptive name. | ||||||||||||
| short_name | The field's short name private to the NUOPC cap module | ||||||||||||
| data_variables | The DATA component NetCDF field and time variable names. | ||||||||||||
| source_units | The field's source units. | ||||||||||||
| destination_units | The field's destination units. | ||||||||||||
| source_grid | The field's source grid-cell location. | ||||||||||||
| destination_grid | The field's destination grid-cell location. | ||||||||||||
| add_offset | The value to add to the exchanged field. | ||||||||||||
| scale | The scale to use to convert data from source to destination. | ||||||||||||
| debug_write | A switch indicating whether or not to write out exchanged field, if DebugLevel>2. | ||||||||||||
| connected_to | The source component to which the field is connected. | ||||||||||||
| regrid_method | The field regridding method from source to destination:
| ||||||||||||
| extrapolate_method | The field extrapolation method for unmapped points:
|
The ESM imported fields are processed as:
- field (destination_units) = field (source_units) * scale + add_offset
YAML allows alias and anchor to avoid repetition. In YAML, single or multiple line comments start with a hash #. Also, comment after a key/value pair is allowed. All comments are skipped during processing.
Metadata: standard_name
The following table shows the coupling metadata short_name and standard_name ESMF/NUOPC export and Import states. They follow CF conventions. However, we needed to create lots of them because are not available in the CF tables but followed their established syntax.
| short_name | standard_name |
| dLWrad | surface_net_downward_longwave_flux |
| dSWrad | net_downward_shortwave_flux_at_sea_water_surface |
| dSST | sea_surface_temperature_data |
| Hair | surface_specific_humidity |
| LHfx | surface_latent_heat_flux |
| LWrad | surface_net_downward_longwave_flux |
| Pair | surface_air_pressure |
| Pmsl | mean_sea_level_pressure |
| Qair | surface_relative_humidity |
| rain | precipitation_flux |
| shflux | surface_downward_heat_flux_in_sea_water |
| SHfx | surface_sensible_heat_flux |
| SST | sea_surface_temperature |
| sustr | surface_downward_x_stress |
| svstr | surface_downward_y_stress |
| swflux | surface_upward_water_flux |
| SWrad | net_shortwave_flux_at_sea_water_surface |
| Tair | surface_air_temperature |
| Uwind | surface_eastward_wind |
| Vwind | surface_northward_wind |