Difference between revisions of "Model Coupling ESMF"

From WikiROMS
Jump to navigationJump to search
Line 25: Line 25:


A prototype of the ROMS coupling framework based on the ESMF/NUOPC library is illustrated in Figure 2 showing the Driver, Models, and Connectors. The Driver controls all the aspects of the coupling between the ESM components and their connections: configuration, initialization, time-stepping sequence, data exchanges, and termination.  The Models are the gridded data and gridded geophysical numerical kernels wrapped into a NUOPC cap file interface.  The Connectors between ESM components execute the remapping and regridding between the source and destination fields.  The interpolation is usually linear with extrapolation support in the vicinity of masked grid cells. In this project, the coupling framework will include the Atmosphere Model (WRF), the Ocean Model (ROMS), and the Data Model since the grids are incongruent. The Data Model is needed because WRF requires sea surface temperature (SST) on those grid points not covered by ROMS (see Figure X).
A prototype of the ROMS coupling framework based on the ESMF/NUOPC library is illustrated in Figure 2 showing the Driver, Models, and Connectors. The Driver controls all the aspects of the coupling between the ESM components and their connections: configuration, initialization, time-stepping sequence, data exchanges, and termination.  The Models are the gridded data and gridded geophysical numerical kernels wrapped into a NUOPC cap file interface.  The Connectors between ESM components execute the remapping and regridding between the source and destination fields.  The interpolation is usually linear with extrapolation support in the vicinity of masked grid cells. In this project, the coupling framework will include the Atmosphere Model (WRF), the Ocean Model (ROMS), and the Data Model since the grids are incongruent. The Data Model is needed because WRF requires sea surface temperature (SST) on those grid points not covered by ROMS (see Figure X).
==Explicit Vs. Semi-Implicit Run Sequence==
{|
|style="text-align:center;"|[[Image:DATA-ATM-ROMS_Explicit_Coupling.png|450px]]
|style="width:10px;"| 
|style="text-align:center;"|[[Image:DATA-ATM-ROMS_Semi-Implicit_Avg_Coupling.png|450px]]
|-
|style="text-align:center;"|'''Explicit'''
|style="width:10px;"| 
|style="text-align:center;"|'''Semi-Implicit, ATM Average'''
|-
|style="padding:0px 15px 0px 15px;background-color:#FFE699;"|<div class="box"><span class="blue"># Hurricane Irene Application (single time loop)</span><br /><br />runSeq::<br />  @240              <span class="blue"># timeStep = 4 min interval</span><br />    <span class="red">DATA</span> -> <span class="red">WRF</span>    <span class="blue"># DATA to WRF connector</span> [[Image:bw1.png|12px]]<br />    <span class="red">DATA</span><br />    <span class="red">WRF</span> -> <span class="red">ROMS</span>    <span class="blue"># WRF to ROMS connector</span> [[Image:bw2.png|12px]]<br />    <span class="red">ROMS</span> -> <span class="red">WRF</span>    <span class="blue"># ROMS to WRF connector</span> [[Image:bw3.png|12px]]<br />    <span class="red">WRF</span>              [[Image:bw4.png|12px]]<br />    <span class="red">ROMS</span>            [[Image:bw5.png|12px]]<br />  @<br />::</div>
|style="width:10px;"|&nbsp;
|style="padding:0px 15px 0px 15px;background-color:#FFE699;"|<div class="box"><span class="blue"># Hurricane Irene Application (single time loop)</span><br /><br />runSeq::<br />  @*                <span class="blue"># timeStep = wildcard (*)</span><br />    <span class="red">DATA</span> -> <span class="red">WRF</span>    <span class="blue"># DATA to WRF connector</span> [[Image:bw1.png|12px]]<br />    <span class="red">DATA</span><br />    <span class="red">ROMS</span> -> <span class="red">WRF</span>    <span class="blue"># ROMS to WRF connector</span> [[Image:bw2.png|12px]]<br />    <span class="red">WRF</span>              [[Image:bw3.png|12px]]<br />    <span class="red">WRF</span> -> <span class="red">ROMS</span>    <span class="blue"># WRF to ROMS connector</span> [[Image:bw4.png|12px]]<br />    <span class="red">ROMS</span>            [[Image:bw5.png|12px]]<br />  @<br />::</div>
|- style="vertical-align:top;"
|style="text-align:center;"|'''Atmosphere exports instantaneous fields'''
|style="width:10px;"|&nbsp;
|style="text-align:center;"|'''Atmosphere exports time-averaged fields
<span class="red">(Recommended for Conservation)</span>
'''
|}

Revision as of 16:44, 18 May 2021

EARTH SYSTEM MODEL FRAMEWORK (ESMF)

Overview

Significant progress has been made over the past decade in the standardization of coupling tools without reducing model diversity through the Earth System Modeling Framework (ESMF; Collins et al., 2005) and the National Unified Operational Prediction Capability (NUOPC) consortia. The NUOPC layer is a simplified infrastructure on top of the ESMF library (version 7 or higher) that provides conventions and templates to facilitate easy coupling between Earth System Models (ESM). It consists of four components: (i) a driver, (ii) the models, (iii) mediators, and (iv) connectors. The driver controls the models, mediators, connectors, and coordinates tasks such as initialization and time stepping. The mediators are custom codes that facilitate the coupling of the models, and control tasks such as flux calculations, rescaling, and averaging. The connectors join ESM components and perform operations such as regridding between the source and destination fields when needed.

The critical Fortran module that sits on top of each ESM is the so-called NUOPC cap file. There is a separate cap file for each coupled component, which from the ROMS perspective corresponds to the atmosphere, sea-ice, wave model, etc. Therefore, it is an abstract block that allows ROMS to communicate and exchange data seamlessly within the ESMF/NUOPC framework. The ROMS and other ESM grids may (and usually do) have a different geographical extent and horizontal resolution. So, if for example, the atmosphere component domain is larger than the ROMS domain, it is necessary to provide data from another source to the atmosphere model at all of the surface grid-points that lie outside the ROMS domain. Therefore, a DATA component and its cap file is also required for most applications. In this case, SST is exported from ROMS and DATA to the atmosphere component which imports at melded SST field.


ESMF-NUOPC Components.png

Figure 1: NUOPC layer generic components


The ROMS coupling interface with the ESMF/NUOPC library allows both driver and component methods of operation. In the driver method, it provides all the interfaces needed to couple to other ESM components including the executable driver, NUOPC-based generic ESM component services, model gridded components or NUOPC Model cap files, connectors between components for re-gridding source and destination fields, input scripts, and coupling metadata management. A NUOPC Model cap is a Fortran code layer that sits on top of the ESM component, making calls to the numerical kernel via the initialize, run, and finalize phases. Alternatively, in the component method, the NUOPC ROMS cap module is provided, and it can be adapted and incorporated into other NUOPC-based coupling systems, like the NOAA Environmental Modeling System (NEMS).

ROMS Coupling Framework Driver Mode.png

Figure 2: ROMS driver mode ESMF/NUOPC coupling framework


A prototype of the ROMS coupling framework based on the ESMF/NUOPC library is illustrated in Figure 2 showing the Driver, Models, and Connectors. The Driver controls all the aspects of the coupling between the ESM components and their connections: configuration, initialization, time-stepping sequence, data exchanges, and termination. The Models are the gridded data and gridded geophysical numerical kernels wrapped into a NUOPC cap file interface. The Connectors between ESM components execute the remapping and regridding between the source and destination fields. The interpolation is usually linear with extrapolation support in the vicinity of masked grid cells. In this project, the coupling framework will include the Atmosphere Model (WRF), the Ocean Model (ROMS), and the Data Model since the grids are incongruent. The Data Model is needed because WRF requires sea surface temperature (SST) on those grid points not covered by ROMS (see Figure X).


Explicit Vs. Semi-Implicit Run Sequence

DATA-ATM-ROMS Explicit Coupling.png   DATA-ATM-ROMS Semi-Implicit Avg Coupling.png
Explicit   Semi-Implicit, ATM Average
# Hurricane Irene Application (single time loop)

runSeq::
@240 # timeStep = 4 min interval
DATA -> WRF # DATA to WRF connector bw1.png
DATA
WRF -> ROMS # WRF to ROMS connector bw2.png
ROMS -> WRF # ROMS to WRF connector bw3.png
WRF bw4.png
ROMS bw5.png
@
::
 
# Hurricane Irene Application (single time loop)

runSeq::
@* # timeStep = wildcard (*)
DATA -> WRF # DATA to WRF connector bw1.png
DATA
ROMS -> WRF # ROMS to WRF connector bw2.png
WRF bw3.png
WRF -> ROMS # WRF to ROMS connector bw4.png
ROMS bw5.png
@
::
Atmosphere exports instantaneous fields   Atmosphere exports time-averaged fields

(Recommended for Conservation)