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