coupling esmf atm.yaml: Difference between revisions
No edit summary (change visibility) |
|||
Line 105: | Line 105: | ||
=== Metadata: standard_name === | === Metadata: standard_name === | ||
The following table shows the | The following table shows the coupling metadata <span class="violet">short_name</span> and <span class="violet">standard_name</span> 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. | ||
{| border="1" cellspacing="0" cellpadding="5" align="left" | {| border="1" cellspacing="0" cellpadding="5" align="left" | ||
| align="center" | | | align="center" | <span class="violet">short_name</span> | ||
|style="width: 350px;" align="center" | | |style="width: 350px;" align="center" | <span class="violet">standard_name</span> | ||
|- | |- | ||
| <span class="mediumOrchid">dLWrad</span> | | <span class="mediumOrchid">dLWrad</span> | ||
Line 118: | Line 118: | ||
|- | |- | ||
| <span class="mediumOrchid">dSST</span> | | <span class="mediumOrchid">dSST</span> | ||
| sea_surface_temperature_data | | <span class="twilightBlue">sea_surface_temperature_data</span> | ||
|- | |- | ||
| <span class="mediumOrchid">Hair</span> | | <span class="mediumOrchid">Hair</span> | ||
Line 124: | Line 124: | ||
|- | |- | ||
| <span class="mediumOrchid">LHfx</span> | | <span class="mediumOrchid">LHfx</span> | ||
| surface_latent_heat_flux | | <span class="twilightBlue">surface_latent_heat_flux</span> | ||
|- | |- | ||
| <span class="mediumOrchid">LWrad</span> | | <span class="mediumOrchid">LWrad</span> | ||
| surface_net_downward_longwave_flux | | <span class="twilightBlue">surface_net_downward_longwave_flux</span> | ||
|- | |- | ||
| <span class="mediumOrchid">Pair</span> | | <span class="mediumOrchid">Pair</span> | ||
Line 133: | Line 133: | ||
|- | |- | ||
| <span class="mediumOrchid">Pmsl</span> | | <span class="mediumOrchid">Pmsl</span> | ||
| mean_sea_level_pressure | | <span class="twilightBlue">mean_sea_level_pressure</span> | ||
|- | |- | ||
| <span class="mediumOrchid">Qair</span> | | <span class="mediumOrchid">Qair</span> | ||
| surface_relative_humidity | | <span class="twilightBlue">surface_relative_humidity</span> | ||
|- | |- | ||
| <span class="mediumOrchid">rain</span> | | <span class="mediumOrchid">rain</span> | ||
Line 145: | Line 145: | ||
|- | |- | ||
| <span class="mediumOrchid">SHfx</span> | | <span class="mediumOrchid">SHfx</span> | ||
| surface_sensible_heat_flux | | <span class="twilightBlue">surface_sensible_heat_flux</span> | ||
|- | |- | ||
| <span class="mediumOrchid">SST</span> | | <span class="mediumOrchid">SST</span> | ||
Line 160: | Line 160: | ||
|- | |- | ||
| <span class="mediumOrchid">SWrad</span> | | <span class="mediumOrchid">SWrad</span> | ||
| net_shortwave_flux_at_sea_water_surface | | <span class="twilightBlue">net_shortwave_flux_at_sea_water_surface</span> | ||
|- | |- | ||
| <span class="mediumOrchid">Tair</span> | | <span class="mediumOrchid">Tair</span> | ||
| surface_air_temperature | | <span class="twilightBlue">surface_air_temperature</span> | ||
|- | |- | ||
| <span class="mediumOrchid">Uwind</span> | | <span class="mediumOrchid">Uwind</span> | ||
| surface_eastward_wind | | <span class="twilightBlue">surface_eastward_wind</span> | ||
|- | |- | ||
| <span class="mediumOrchid">Vwind</span> | | <span class="mediumOrchid">Vwind</span> | ||
| surface_northward_wind | | <span class="twilightBlue">surface_northward_wind</span> | ||
|- | |- | ||
|} | |} |
Revision as of 21:59, 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 |