| 1 | file README.io_esmf |
|---|
| 2 | Tom Henderson 10/10/06 |
|---|
| 3 | |
|---|
| 4 | This version of WRF has been tested with ESMF 2.2.0rp1. Since ESMF interfaces |
|---|
| 5 | are still changing with each new release, it is quite likely that this version |
|---|
| 6 | of WRF will not work with other versions of ESMF. |
|---|
| 7 | |
|---|
| 8 | NOTE: ESMF 3.0.0 is available at the time of this writing. However, |
|---|
| 9 | ESMF 3.0.0 fails to build with IBM's xlf 10.1 compiler. (The ESMF core |
|---|
| 10 | team expects this problem to be resolved by a later release of xlf.) |
|---|
| 11 | Therefore WRF was not tested with ESMF 3.0.0. |
|---|
| 12 | |
|---|
| 13 | New environment variables ESMFLIB and ESMFINC may be set to trigger |
|---|
| 14 | build using a separately installed ESMF library instead of the default |
|---|
| 15 | library embedded in external/esmf_time_f90/. These new environment variables |
|---|
| 16 | must be set to point to library and module paths for the separately |
|---|
| 17 | installed ESMF library before WRF "configure" is run. For example, an |
|---|
| 18 | installation of ESMF on bluesky built with default ESMF settings in |
|---|
| 19 | /home/bluesky/hender/esmf requires the following settings: |
|---|
| 20 | ESMFLIB /home/bluesky/hender/esmf/lib/libO/AIX.default.32.default |
|---|
| 21 | ESMFINC /home/bluesky/hender/esmf/mod/modO/AIX.default.32.default |
|---|
| 22 | (Note that the portions of the pathnames following |
|---|
| 23 | "/home/bluesky/hender/esmf/" are defined by ESMF and described in the ESMF |
|---|
| 24 | documentation.) |
|---|
| 25 | |
|---|
| 26 | When ESMFLIB and ESMFINC are set, a new main program is built in |
|---|
| 27 | main/wrf_SST_ESMF.exe. This program is a sample coupled application in |
|---|
| 28 | which WRF is coupled to a very simple "data-ocean" component named SST via |
|---|
| 29 | a very simple coupler. While this is a functional example of coupling WRF |
|---|
| 30 | to another ESMF component, it should be considered *HIGHLY EXPERIMENTAL*. |
|---|
| 31 | The implementation is quite primitive and has severe limitations. |
|---|
| 32 | Most important, it is only possible to couple with another component that |
|---|
| 33 | uses the exact same grid as WRF due to limitations of ESMF at the time this |
|---|
| 34 | work was done. Also, the ESMF component only works with the DM-Parallel RSL |
|---|
| 35 | build and has only been tested on AIX. These and a large number of other |
|---|
| 36 | issues are described in external/io_esmf/TODO.list. |
|---|
| 37 | |
|---|
| 38 | Since external/io_esmf is an implementation of the WRF I/O and coupling |
|---|
| 39 | API (WRF IOAPI), ESMF coupling can be controlled by the user in the same |
|---|
| 40 | manner as other WRF I/O. Specifically, contents of ESMF import and export |
|---|
| 41 | states are defined in the Registry (see Registry.EM_SST for example) and |
|---|
| 42 | timing of coupling is defined in namelist.input. In the case of the WRF-SST |
|---|
| 43 | coupling example, the SST component simply reads SST values stored in a file |
|---|
| 44 | and sends it to WRF. Since the SST component also uses the WRF IOAPI and |
|---|
| 45 | the format and metadata of SST data files is compatible with the WRF IOAPI, |
|---|
| 46 | it is possible to switch from coupled operation to stand-alone operation (in |
|---|
| 47 | which WRF reads the SST data directly via auxinput5), simply by changing |
|---|
| 48 | the io_form in the namelist. |
|---|
| 49 | |
|---|
| 50 | This is a work-in-progress! |
|---|
| 51 | |
|---|