source: trunk/WRF.COMMON/WRFV3/external/io_esmf/README.io_esmf

Last change on this file was 2759, checked in by aslmd, 2 years ago

adding unmodified code from WRFV3.0.1.1, expurged from useless data +1M size

File size: 4.3 KB
Line 
1file README.io_esmf
2Tom Henderson                                          03/08/07
3
4
5GENERAL NOTES
6
7This version of WRF has been tested with ESMF 2.2.0rp1 and with ESMF 2.2.2r. 
8Since ESMF interfaces are still evolving, it is possible that this version of
9WRF will not work with newer versions of ESMF. 
10
11New environment variables ESMFLIB and ESMFINC may be set to trigger
12build using a separately installed ESMF library instead of the default
13library embedded in external/esmf_time_f90/.  These new environment variables
14must be set to point to library and module paths for the separately
15installed ESMF library before WRF "configure" is run.  For example, an
16installation of ESMF on bluesky built with default ESMF settings in
17/home/bluesky/hender/esmf requires the following settings: 
18  ESMFLIB /home/bluesky/hender/esmf/lib/libO/AIX.default.32.default
19  ESMFINC /home/bluesky/hender/esmf/mod/modO/AIX.default.32.default
20(Note that the portions of the pathnames following
21"/home/bluesky/hender/esmf/" are defined by ESMF and described in the ESMF
22documentation.) 
23
24When ESMFLIB and ESMFINC are set, a new main program is built in
25main/wrf_SST_ESMF.exe.  This program is a sample coupled application in
26which WRF is coupled to a very simple "data-ocean" component named SST via
27a very simple coupler.  While this is a functional example of coupling WRF
28to another ESMF component, it should be considered *HIGHLY EXPERIMENTAL*. 
29The implementation is quite primitive and has severe limitations. 
30Most important, it is only possible to couple with another component that
31uses the exact same grid as WRF due to limitations of ESMF at the time this
32work was originally done.  Also, the ESMF component only works with the
33DM-Parallel RSL build and has only been tested on AIX.  These and a large
34number of other issues are described in external/io_esmf/TODO.list. 
35
36Since external/io_esmf is an implementation of the WRF I/O and coupling
37API (WRF IOAPI), ESMF coupling can be controlled by the user in the same
38manner as other WRF I/O.  Specifically, contents of ESMF import and export
39states are defined in the Registry (see Registry.EM_SST for example) and
40timing of coupling is defined in namelist.input.  In the case of the WRF-SST
41coupling example, the SST component simply reads SST values stored in a file
42and sends it to WRF.  Since the SST component also uses the WRF IOAPI and
43the format and metadata of SST data files is compatible with the WRF IOAPI,
44it is possible to switch from coupled operation to stand-alone operation (in
45which WRF reads the SST data directly via auxinput5), simply by changing
46the io_form in the namelist.  A test that can be run to validate this claim
47can be found in test/em_esmf_exp (see test/em_esmf_exp/README_WRF_CPL_SST.txt).
48
49This is a work-in-progress! 
50
51
52NOTES ABOUT THE EVENT LOOP FOR WRF+CPL+SST
53
54The event loop (time-stepping loop) in the ESMF driver program in
55main/wrf_SST_ESMF.F is a serial analog of concurrent coupling performed using
56the Model Coupling Environment Library (MCEL) by Michalakes and Bettencourt
57(http://www.mmm.ucar.edu/wrf/WG2/Tigers/IOAPI/index.html).  Specifically,
58the "read" of the WRF ImportState and the "write" of the WRF ExportState both
59occur during subroutine med_before_solve_io() which is called before the main
60WRF solver (which advances a domain by one time-step).  This approach is
61suitable for "loose" coupling in which precise time synchronization between
62components is not critical.  Such "loose" coupling is appropriate for some
63ocean-atmosphere systems.  The WRF+CPL+SST event loop contains the following
64steps: 
65 - SST run phase 1
66 - CPL SST to WRF
67 - CPL WRF to SST
68 - WRF run
69 - SST run phase 2
70However, coupling of components that require more precise synchronization,
71such as land-atmosphere coupling, requires "tighter" coupling.  Also, it is
72not always convenient to split a component into multiple run phases (or
73multiple components).  A more suitable event loop for this case might contain
74the following steps: 
75 - LAND run
76 - CPL LAND to WRF
77 - WRF run
78 - CPL WRF to LAND
79This requires modifying WRF so the "output" calls that "write" the WRF
80ExportState occur in subroutine med_after_solve_io() in file
81share/mediation_integrate.F. 
82We plan to make this modification in a future revision of WRF and allow users
83to control where the WRF ExportState is set at run-time via a namelist
84variable. 
85
Note: See TracBrowser for help on using the repository browser.