source: trunk/WRF.COMMON/WRFV2/external/io_esmf/TODO.list

Last change on this file was 11, checked in by aslmd, 14 years ago

spiga@svn-planeto:ajoute le modele meso-echelle martien

File size: 7.7 KB
Line 
1TODO.list
2Tom Henderson                                                           5/19/06
3
4WRF-ESMF TODO LIST: 
5
6
7WRF-ESMF is still new and experimental and has many limitations.  Many of
8these are mentioned in the task list that follows. 
9
10
11"X" == "DONE" 
12
13The "ESMF" referred to below is version 2.2.0rp1. 
14
15+ Design and Implementation:
16   - Get rid of masses of "DEBUG" code. 
17   - Fix ESMF+RSL_LITE.  Currently, only ESMF+RSL works. 
18       Patch and memory extents differ between RSL and RSL_LITE, see
19       /users/hender/Tasks/WRF_ESMF/RSL_LITE_broken/README for details.  This
20       is almost certainly the underlying cause of the problem given the
21       evil hackery in the current implementation of io_esmf. 
22   - Finish sequence diagram for the coupling interactions in
23     /users/hender/Tasks/WRF_ESMF/SequenceDiagram.txt ...
24   - Upgrade SST component so it can run on a subset of processors. 
25       This requires breaking the domdesc dependence for SST so SST can be
26       run on fewer processes.  SST will need to call wrf_dm_patch_domain(),
27       probably modified to avoid dependence on TYPE(domain) and certainly
28       modified to avoid dependence on head_grid. 
29   - Upgrade external/io_esmf/ so more data types are supported. 
30   - Upgrade external/io_esmf/ so 3D arrays are supported (just loop over "K"
31     at first with hard-coded names like "U_k_1", "U_k_2", etc.).  Then
32     switch to ESMF for this once it can do it.  (Can ESMF do this now?  Check.) 
33   - Extend external/io_esmf/ (etc.) so more than one I/O stream can be used
34     for ESMF coupling.  This would involve nested import and export states. 
35   - Exchange staggered 2D grids and test-validate (x, y, and z staggerings). 
36     Current hacked implementation should be able to handle this for
37     horizontal staggerings, but need to test in case bugs are lurking... 
38   - Upgrade external/io_esmf/ so metadata is exchanged correctly.  Right now,
39     metadata is ignored.  This would allow sharing of metadata and simplify
40     implementation of components that were aware of WRF metadata.  Ultimately,
41     CF would be the right thing here... 
42   - Fix output formatting so DOMAIN_TIME_TEST works the same way
43     both with and without ESMF. 
44   - Fix ext_esmf_ioclose so it actually destroys ESMF objects again.  This
45     is #ifdef'd out at the moment due to difficulties with destruction.  (At
46     present, ESMF requires users to deallocate anything they allocate, but
47     provides no introspection so a user can figure out if who allocated
48     something.  This leads to obfuscation of implementations...) 
49   X Make WRF-ESMF build recognize ESMF environment variables?
50     Could remove stanzas from arch/configure.defaults and avoid lots
51     of duplication and documentation.
52   - If possible, upgrade WRF ESMF component to get number of MPI tasks from
53     VM instead of from MPI.  This may be tricky or even impractical due to
54     startup issues... 
55   - CF conventions: 
56     * Numerous tasks here, not really a "WRF-ESMF" issue, but related... 
57         Will there be CF conventions for startTime, stopTime, timeStep,
58         couplingInterval?
59   - Other ESMF bugs/issues: 
60     * Rip out the current hacks for grid creation in external/io_esmf/ once
61       ESMF can support WRF map projections.  Use the "sieve" method of
62       io_mcel.  This will take a bit of work... 
63     * Restore ESMF_LogErr calls once ESMF fixes them so they no longer
64       truncate all of our messages (trivial for us...). 
65        * Ask when ESMF_LogErr will allow us to specify LUN.  This will
66          make it easier for us to use this utility. 
67     * Upgrade external/io_esmf/ to avoid manual CICO once ESMF can mimic WRF
68       memory layouts. 
69     * Index ordering is hard-coded.  Fix this once ESMF supports it and
70       connect to "MemoryOrder" argument. 
71     * Take a look at my list of reported ESMF bugs and add any I haven't
72       reported. 
73     * Calls to ESMF_LogSet in main/wrf_ESMFApp.F cause core dumps -- why? 
74     * Calls to ESMF_ArraySpecSet() in external/io_esmf/ quietly do the wrong
75       thing.  Why?  Once they work, uncomment this code to avoid
76       per-data-type duplication of hard-coded alternative (gaaak).  See
77       string DOESNOTWORK. 
78     * ESMF cannot handle "extra" rows-columns implied by horizontal
79       staggering for regional models like WRF.  Upgrade once ESMF supports
80       this. 
81       * Re-connect "Stagger" argument to ESMF "horzrelloc" argument. 
82         Uncomment this code in external/io_esmf/. 
83       * Until then, maybe use nested ESMF_States to handle it.  This is ugly
84         though because there are no conventions for such a thing so it will
85         introduce dependencies with other components.  Balaji's recent
86         proposal to standardize grid metadata within CF would be useful
87         if we go this way. 
88     * Why can I specify start indices in the call to
89       ESMF_GridDistribute[Vector]() but not in the call to ESMF_GridSet() ?
90     * Remove implementation of WRFU_TimeIntervalDIVQuot in
91       external/io_esmf/module_esmf_extensions.F90 once ESMF supports this
92       directly. 
93     * Lack of sane (or any) iterators for ESMF_State and other container
94       classes leads to nasty user code... 
95     * Lack of adherence to Orthodox Canonical Form leads to really nasty
96       user code (so much for "best practices"...) 
97     * Many others... 
98   - Misc. bugs/issues:
99     * Investigate odd debug prints from med_hist_out, output_wrf, input_wrf
100        med_hist_out : opening sstout_d01_000000 for writing.  86
101          I think the "86" should be "0"
102        output_wrf: fid,filestate =  2 65
103          I think the "65" should be "0"
104        input_wrf: fid,filestate =  3 804370368
105          I think the "804370368" should be something else...
106     * Find out why one new message now appears in stdout (weird). 
107         This happens with a "no-esmf" build and with an "esmf" build. 
108           INPUT LANDUSE = USGS
109           LANDUSE TYPE = USGS FOUND 24  CATEGORIES 2  SEASONS WATER CATEGORY =  16  SNOW CATEGORY =  24
110     * Replace hand-coded checks of "rc" with use of new ESMF error handler to
111       streamline code. 
112         See /loquat2/hender/Tasks/WRF_ESMF/ESMF_FieldFromUserEx.F90
113         See /loquat2/hender/Tasks/WRF_ESMF/UserCodeMod.F90
114     * See if "#ifndef ESMFIO" hack can be removed from share/input_wrf.F. 
115     * Verify that findSymbol.rb generates module_symbols.F90 as claimed
116       in the comment block in external/io_esmf/module_symbols_util.F90. 
117       Update comments if needed. 
118       * Upgrade findSymbol.rb to track all usage starting at @old_module
119         and exclude any symbols that are not found in the use-tree.
120       * Better yet, get rid of external/*/module_symbols_util.F90 altogether
121         as encapsulation moves to module_domain. 
122     * Rip out WRF_CHEM from set_timekeeping.F and test...
123+ Upgrade to ESMF 2.2.2r+
124   - Add an ESMF_LOG_NONE option to the "defaultLogType" argument
125     of ESMF_Initialize() to turn off ESMF's default error logging. 
126   - Add an ESMF_KEEPMPI option to the "terminationflag" argument
127     of ESMF_Finalize() to allow ESMF finalization without MPI
128     shutdown.  Then clean up the current shutdown mess. 
129+ Documentation:
130   - General description of and guidelines for coupling WRF with another
131     ESMF component.
132   X Description of WRF-CPL-SST "demo"
133     X Description of SST and CPL demo components
134     * Sequence diagram of component interactions
135     X Limitations of demo
136     * How to extend the demo
137+ Testing
138   - Add WRF-CPL-SST tests to regtest.csh. 
139     * Generate jun01 sst warming data set and work with Dave to add new
140       "ESMF_SST" tests to regtest.csh. 
141
Note: See TracBrowser for help on using the repository browser.