coupling esmf atm.yaml
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 |