1 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head> |
---|
2 | <meta http-equiv="Content-Language" content="en-us"> |
---|
3 | <meta name="GENERATOR" content="Microsoft FrontPage 5.0"> |
---|
4 | <meta name="ProgId" content="FrontPage.Editor.Document"> |
---|
5 | <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"><title>To integrate HDF5</title></head><body><big><big><b>Build and Install the HDF5-WRF IO Module</b></big></big><br> |
---|
6 | <br> |
---|
7 | There are two HDF5 WRF IO modules, <i>sequential</i> and <i>parallel.</i> The either or both modules can be configured as optional IO modules for WRF.<br> |
---|
8 | <br> |
---|
9 | The sequential HDF module (<i>io_hdf5</i>) uses the serial HDF5 library. The parallel |
---|
10 | HDF module (<i>io_phdf5</i>) uses parallel HDF5 (which requires MPI-IO).<br> |
---|
11 | <br> |
---|
12 | The installation for the two modules is similar.<br> |
---|
13 | <br> |
---|
14 | <big><b>Prerequisites</b></big><br> |
---|
15 | <br> |
---|
16 | <b>WRF 1.3</b><br> |
---|
17 | <br> |
---|
18 | The HDF5 WRF IO modules require Version 1.3 of WRF. Information and downloads are available at:<br> |
---|
19 | |
---|
20 | <blockquote><a href="http://www.mmm.ucar.edu/wrf/users/user_main.html">http://www.mmm.ucar.edu/wrf/users/user_main.html</a><br> |
---|
21 | </blockquote> |
---|
22 | <br> |
---|
23 | <b>HDF5-1.6 .2 or later</b><br> |
---|
24 | <br> |
---|
25 | The HDF5 WRF IO modules require HDF5-1.6.2 or more recent. The parallel HDF5 |
---|
26 | WRF module requires parallel HDF5 (which requires MPI IO). <br> |
---|
27 | <br> |
---|
28 | Installing HDF5<br> |
---|
29 | <blockquote> |
---|
30 | </blockquote> |
---|
31 | <ol> |
---|
32 | <li>To obtain |
---|
33 | HDF5, download from to <a href="http://hdf.ncsa.uiuc.edu/HDF5/release/obtain5.html"> |
---|
34 | http://hdf.ncsa.uiuc.edu/HDF5/release/obtain5.html</a>. Install HDF5 according to the instructions. The HDF5 library must have he Fortran 90 interface installed. <br><br> |
---|
35 | For the sequential WRF module, SZIP compression can be enabled. </li> |
---|
36 | <li> |
---|
37 | For the parallel WRF module, parallel HDF5 must be installed (this requires MPI-IO). <br> |
---|
38 | Set the environment variable PHDF5 = <<path where phdf5 is installed>>. |
---|
39 | |
---|
40 | </li> |
---|
41 | |
---|
42 | <li>For the sequential HDF WRF IO module, either serial or parallel HDF must be installed.<br> |
---|
43 | The HDF library may be installed with the optional SZIP compression enabled. <br> |
---|
44 | Set the environment variable HDF5 = <<path where hdf5 is installed>>. |
---|
45 | |
---|
46 | <br> |
---|
47 | </li> |
---|
48 | </ol> |
---|
49 | <br> |
---|
50 | <big><b>Platforms</b></big><br> |
---|
51 | <p><small><small><font size="5"><small><small>This prototype has been tested |
---|
52 | on a few platforms. The HDF WRF IO modules should work on any platform that |
---|
53 | WRF3.1 and HDF5 support, although the details of the configuration may need |
---|
54 | to be worked out.<br> |
---|
55 | </small></small></font></small></small></p> |
---|
56 | <table cellpadding="2" cellspacing="2" border="1" width="100%"> |
---|
57 | <tbody> |
---|
58 | <tr> |
---|
59 | <td valign="top"><b>Module<br> |
---|
60 | </b></td> |
---|
61 | <td valign="top"><b>Platforms<br> |
---|
62 | </b></td> |
---|
63 | <td valign="top"><b>Notes<br> |
---|
64 | </b></td> |
---|
65 | </tr> |
---|
66 | <tr> |
---|
67 | <td valign="top">Sequential <br> |
---|
68 | </td> |
---|
69 | <td valign="top"><small><small><font size="5"><small><small> |
---|
70 | NCSA IBM P690</small></small></font></small></small>.<br> |
---|
71 | <small><small><font size="5"><small><small> NCAR IBM SP3 </small></small></font></small></small><br> |
---|
72 | <small><small><font size="5"><small><small>PC Linux </small></small></font></small></small>with PGI Fortran 90 Compiler, Vers. 4<br> |
---|
73 | <small><small><font size="5"><small><small>SGI IRIX6.5-64 bi</small></small></font></small></small>t<br> |
---|
74 | </td> |
---|
75 | <td valign="top">To date, WRF3.1 does not work on Linux with PGF, version 5.<br> |
---|
76 | </td> |
---|
77 | </tr> |
---|
78 | <tr> |
---|
79 | <td valign="top">Parallel<br> |
---|
80 | </td> |
---|
81 | <td valign="top"><small><small><font size="5"><small><small> |
---|
82 | NCSA IBM P690</small></small></font></small></small>.<br> |
---|
83 | |
---|
84 | <small><small><font size="5"><small><small> NCAR IBM SP3 </small></small></font></small></small><br> |
---|
85 | </td> |
---|
86 | <td valign="top"><br> |
---|
87 | </td> |
---|
88 | </tr> |
---|
89 | </tbody> |
---|
90 | </table> |
---|
91 | <br> |
---|
92 | <br> |
---|
93 | <big><b>Installation of the HDF5 WRF IO Modules</b></big><br> |
---|
94 | <br> |
---|
95 | The HDF5 WRF IO modules are used by adding it to a standard WRF configuration. This process has four main steps<br> |
---|
96 | <ol> |
---|
97 | <li>Downoad the HDF WRF IO module(s)</li><li>Add the HDF5 WRF IO module(s) as an "extern" module</li> |
---|
98 | |
---|
99 | <li>Modifying relevant files in the WRF distribution</li> |
---|
100 | <li>Compile WRF following the usual procedures<br> |
---|
101 | </li> |
---|
102 | |
---|
103 | </ol> |
---|
104 | The parallel, sequential, or both may be configured.<br> |
---|
105 | <br> |
---|
106 | <b>1. Download the WRD-HDF5 IO modules</b><br> |
---|
107 | <br> |
---|
108 | The HDF WRF IO modules are available from:<br> |
---|
109 | <ul> |
---|
110 | <li>sequential: <a href="ftp://ftp.ncsa.uiuc.edu/HDF/pub/outgoing/wrf-hdf5-modules/io_hdf5.tar"> |
---|
111 | ftp://ftp.ncsa.uiuc.edu/HDF/pub/outgoing/wrf-hdf5-modules/io_hdf5.tar</a></li> |
---|
112 | <li>parallel: |
---|
113 | <a href="ftp://ftp.ncsa.uiuc.edu/HDF/pub/outgoing/wrf-hdf5-modules/io_phdf5.tar"> |
---|
114 | ftp://ftp.ncsa.uiuc.edu/HDF/pub/outgoing/wrf-hdf5-modules/io_phdf5.tar</a><br> |
---|
115 | </li> |
---|
116 | </ul> |
---|
117 | <blockquote><p></p> |
---|
118 | </blockquote> |
---|
119 | <p><b><small> |
---|
120 | <font size="4"><small>2. Add WRF-HDF5 IO module(s) to the WRF source</small></font></small></b></p> |
---|
121 | |
---|
122 | |
---|
123 | <p> |
---|
124 | The HDF5 WRF IO modules are added as sub-directories in the 'external' directory of the WRF source.<br> |
---|
125 | </p> |
---|
126 | <blockquote><blockquote> |
---|
127 | |
---|
128 | |
---|
129 | <p> cd external;<br> |
---|
130 | tar xvf io_hdf5.tar<br> |
---|
131 | tar xvf io_phdf5.tar<br> |
---|
132 | </p> |
---|
133 | </blockquote></blockquote> |
---|
134 | |
---|
135 | <p> |
---|
136 | </p> |
---|
137 | |
---|
138 | <table cellpadding="2" cellspacing="2" border="1" width="90%" align="center"> |
---|
139 | |
---|
140 | |
---|
141 | <tbody> |
---|
142 | <tr> |
---|
143 | <td valign="top">contents of the sequential HDF WRF IO module:<br> |
---|
144 | <br> |
---|
145 | ./io_hdf5<br> ./io_hdf5/wrf-hdf5.F90<br> ./io_hdf5/wrf_status_codes.h<br> ./io_hdf5/Makefile<br> ./io_hdf5/wrf-hdf5attr.F90<br> ./io_hdf5/wrf-hdf5support.F90<br> ./io_hdf5/wrf_io_flags.h<br> |
---|
146 | </td> |
---|
147 | </tr> |
---|
148 | </tbody> |
---|
149 | |
---|
150 | </table> |
---|
151 | |
---|
152 | |
---|
153 | <br> |
---|
154 | |
---|
155 | <br> |
---|
156 | |
---|
157 | |
---|
158 | |
---|
159 | <table cellpadding="2" cellspacing="2" border="1" width="90%" align="center"> |
---|
160 | |
---|
161 | |
---|
162 | <tbody> |
---|
163 | <tr> |
---|
164 | <td valign="top">contents of the sequential HDF WRF IO module:<br> |
---|
165 | <br> |
---|
166 | ./io_phdf5/<br> ./io_phdf5/Makefile<br> ./io_phdf5/wrf_status_codes.h<br> ./io_phdf5/wrf-phdf5attr.F90<br> ./io_phdf5/wrf-phdf5support.F90<br> ./io_phdf5/wrf_io_flags.h<br> ./io_phdf5/wrf-phdf5.F90<br> |
---|
167 | </td> |
---|
168 | </tr> |
---|
169 | </tbody> |
---|
170 | |
---|
171 | </table> |
---|
172 | |
---|
173 | |
---|
174 | <br> |
---|
175 | |
---|
176 | |
---|
177 | <p><b><small><small><font size="5"><small><small>Design note:</small></small></font></small></small></b></p> |
---|
178 | |
---|
179 | <p><small><small><font size="5"><small><small>In the sequential HDF5 WRF |
---|
180 | IO modules, arrays larger thatn 8096 bytes are compressed by default. In |
---|
181 | this case, the HDF5 dataset is configured to use the shuffle filter plus deflate |
---|
182 | (GZIP) compression, with compression level 6. <br> |
---|
183 | </small></small></font></small></small></p> |
---|
184 | |
---|
185 | |
---|
186 | <p><small><small><font size="5"><small><small>In the current prototype, there is no option in the namelist for |
---|
187 | users to change this default. To modify this behavior, it is necessary to modify the source code.</small></small></font><br> |
---|
188 | <font size="5"><small><small><br> |
---|
189 | <i>To disable compression:</i></small></small></font></small></small></p> |
---|
190 | |
---|
191 | |
---|
192 | |
---|
193 | <blockquote> |
---|
194 | <p><small><font size="5"><small><small>Edit</small></small></font><font size="4"><small> the file '</small></font></small><small><font size="4"><small>wrf/external/io_hdf5/</small></font></small><small><font size="4"><small>wrf-hdf5.F90</small></font></small><small><font size="4"><small>'<br> |
---|
195 | </small></font></small></p> |
---|
196 | <p><small><font size="4"><small>Comment out the lines: </small></font></small></p> |
---|
197 | <p><small><font face="Arial" size="4"><small> |
---|
198 | call h5pset_shuffle_f(crp_list,hdf5err) </small></font></small></p> |
---|
199 | <p><small><font size="4"><small> |
---|
200 | and </small></font></small></p> |
---|
201 | <p><small><font size="4" face="Arial"><small> |
---|
202 | call h5pset_deflate_f(crp_list,6,hdf5err) </small></font></small></p> |
---|
203 | </blockquote> |
---|
204 | |
---|
205 | |
---|
206 | |
---|
207 | |
---|
208 | |
---|
209 | |
---|
210 | |
---|
211 | |
---|
212 | |
---|
213 | <p><i><small><small><font size="5"><small><small>To use SZIP compression instead:</small></small></font></small></small></i></p> |
---|
214 | |
---|
215 | |
---|
216 | <blockquote> |
---|
217 | <p><small><font size="4"><small>For SZIP information and downloads, see the szip at |
---|
218 | <a href="http://hdf.ncsa.uiuc.edu/doc_resource/SZIP/"> |
---|
219 | http://hdf.ncsa.uiuc.edu/doc_resource/SZIP/</a>.<br> |
---|
220 | </small></font></small></p> |
---|
221 | <p><small><font size="4"><small>Edit the file 'wrf/external/io_hdf5/</small></font></small><small><font size="4"><small>wrf-hdf5.F90'.</small></font></small></p> |
---|
222 | <p><small><font size="4"><small>Comment out the lines: </small></font></small></p> |
---|
223 | <p><small><font face="Arial" size="4"><small> |
---|
224 | call h5pset_shuffle_f(crp_list,hdf5err) </small></font></small></p> |
---|
225 | <p><small><font size="4"><small> |
---|
226 | and </small></font></small></p> |
---|
227 | <p><small><font size="4" face="Arial"><small> |
---|
228 | call h5pset_deflate_f(crp_list,6,hdf5err) </small></font></small></p> |
---|
229 | <p><small><font size="4"><small>Uncomment the line: |
---|
230 | </small></font></small></p> |
---|
231 | <p><small><font size="4"><small> |
---|
232 | <font face="Arial">call |
---|
233 | h5pset_szip_f(crp_list,H5_SZIP_AK13_OM_F+H5_SZIP_NN_OM_F,8,hdf5err)</font><br> |
---|
234 | </small></font></small></p> |
---|
235 | <p><small><font size="4"><small>Change the value |
---|
236 | of the parameters in the function <i>h5pset_szip_f</i> if necessary.</small></font></small> See the SZIP documentation for more information about the parameters.<br> |
---|
237 | </p> |
---|
238 | </blockquote> |
---|
239 | |
---|
240 | |
---|
241 | |
---|
242 | |
---|
243 | |
---|
244 | |
---|
245 | |
---|
246 | |
---|
247 | |
---|
248 | |
---|
249 | |
---|
250 | |
---|
251 | |
---|
252 | |
---|
253 | |
---|
254 | |
---|
255 | |
---|
256 | <p><br> |
---|
257 | </p> |
---|
258 | <p><font size="4"><b><small>3. Modifications to WRF files</small></b><br> |
---|
259 | </font></p> |
---|
260 | |
---|
261 | <p><font size="4"><small>In order to add a new IO module to WRF, several |
---|
262 | files in the WRF source code must be changed. The following files need to be |
---|
263 | modified:<br> |
---|
264 | </small></font></p> |
---|
265 | <table cellpadding="2" cellspacing="2" border="1" width="50%" align="center"> |
---|
266 | <tbody> |
---|
267 | <tr> |
---|
268 | <td valign="top">WRFV1/configure<br> |
---|
269 | WRFV1/Registry/Registry<br> |
---|
270 | WRFV1/arch/Config.pl<br> |
---|
271 | WRFV1/arch/configure.defaults<br> |
---|
272 | WRFV1/frame/md_calls.m4<br> |
---|
273 | WRFV1/frame/module_io.F<br> |
---|
274 | WRFV1/share/module_io_wrf.F<br> |
---|
275 | WRFV1/external/Makefile<br> |
---|
276 | </td> |
---|
277 | </tr> |
---|
278 | </tbody> |
---|
279 | </table> |
---|
280 | <br> |
---|
281 | The exact changes depend on how WRF has been configured on the sytsem. <br> |
---|
282 | <p>Examples of the changes to the files of the WRF1.3 distribution are available at:<br> |
---|
283 | </p> |
---|
284 | <p> |
---|
285 | |
---|
286 | <a href="ftp://ftp.ncsa.uiuc.edu/HDF/pub/outgoing/wrf-hdf5-modules"> |
---|
287 | ftp://ftp.ncsa.uiuc.edu/HDF/pub/outgoing/wrf-hdf5-modules</a><br> |
---|
288 | </p> |
---|
289 | |
---|
290 | <blockquote> |
---|
291 | </blockquote> |
---|
292 | <p><i><b>WRF configuration files<br> |
---|
293 | </b></i> |
---|
294 | </p> |
---|
295 | <p>The 'configure' file must be updated to add the HDF5 and PHDF5 variables.<br> |
---|
296 | </p> |
---|
297 | <table cellpadding="2" cellspacing="2" border="1" align="center" width="90%"> |
---|
298 | <tbody> |
---|
299 | <tr> |
---|
300 | <td valign="top">*** ../WRFV1/configure Thu Feb 6 13:10:56 2003<br> |
---|
301 | --- ./WRFV1-with-hdf/configure Thu May 13 12:18:40 2004<br> |
---|
302 | ***************<br> |
---|
303 | *** 206,211 ****<br> |
---|
304 | --- 206,223 ----<br> |
---|
305 | echo "Will configure for use without NetCDF"<br> |
---|
306 | fi<br> |
---|
307 | <br> |
---|
308 | + if [ -n "$HDF5" ] ; then<br> |
---|
309 | + echo "Will use HDF5 in dir: $HDF5"<br> |
---|
310 | + else<br> |
---|
311 | + echo "Will configure for use without HDF5"<br> |
---|
312 | + fi<br> |
---|
313 | + <br> |
---|
314 | + if [ -n "$PHDF5" ] ; then<br> |
---|
315 | + echo "Will use PHDF5 in dir: $PHDF5"<br> |
---|
316 | + else<br> |
---|
317 | + echo "Will configure for use without PHDF5"<br> |
---|
318 | + fi<br> |
---|
319 | + <br> |
---|
320 | # if the uname command exists, give it a shot and see if<br> |
---|
321 | # we can narrow the choices; otherwise, spam 'em<br> |
---|
322 | os="ARCH"<br> |
---|
323 | ***************<br> |
---|
324 | *** 227,232 ****<br> |
---|
325 | <br> |
---|
326 | # Found perl, so proceed with configuration<br> |
---|
327 | if test -n "$PERL" ; then<br> |
---|
328 | ! $PERL arch/Config.pl -perl=$PERL -netcdf=$NETCDF -os=$os -mach=$mach<br> |
---|
329 | fi<br> |
---|
330 | <br> |
---|
331 | --- 239,244 ----<br> |
---|
332 | <br> |
---|
333 | # Found perl, so proceed with configuration<br> |
---|
334 | if test -n "$PERL" ; then<br> |
---|
335 | ! $PERL arch/Config.pl -perl=$PERL -netcdf=$NETCDF -hdf5=$HDF5 -phdf5=$PHDF5 -os=$os -mach=$mach<br> |
---|
336 | fi<br> |
---|
337 | <br> |
---|
338 | </td> |
---|
339 | </tr> |
---|
340 | </tbody> |
---|
341 | </table> |
---|
342 | <p>The file 'Registry/Registry' must be updated to add the HDF IO modules (<i>io_hdf5</i> and <i>io_phdf5</i>).<br> |
---|
343 | </p> |
---|
344 | <table cellpadding="2" cellspacing="2" border="1" width="90%" align="center"> |
---|
345 | <tbody> |
---|
346 | <tr> |
---|
347 | <td valign="top">*** ../WRFV1/Registry/Registry Wed Feb 12 09:28:28 2003<br> |
---|
348 | --- ./WRFV1-with-hdf/Registry/Registry Thu May 13 12:18:39 2004<br> |
---|
349 | ***************<br> |
---|
350 | *** 738,745 ****<br> |
---|
351 | # Four placeholders for additional packages (we can go beyond zzz <br> |
---|
352 | # but that will entail modifying frame/module_io.F and frame/md_calls.m4)<br> |
---|
353 | # Please note these are placeholders; HDF has not been implemented yet.<br> |
---|
354 | ! package io_hdf io_form_restart==3 - -<br> |
---|
355 | ! package io_xxx io_form_restart==4 - -<br> |
---|
356 | package io_yyy io_form_restart==5 - -<br> |
---|
357 | package io_zzz io_form_restart==6 - -<br> |
---|
358 | <br> |
---|
359 | --- 738,745 ----<br> |
---|
360 | # Four placeholders for additional packages (we can go beyond zzz <br> |
---|
361 | # but that will entail modifying frame/module_io.F and frame/md_calls.m4)<br> |
---|
362 | # Please note these are placeholders; HDF has not been implemented yet.<br> |
---|
363 | ! package io_hdf5 io_form_restart==3 - -<br> |
---|
364 | ! package io_phdf5 io_form_restart==4 - -<br> |
---|
365 | package io_yyy io_form_restart==5 - -<br> |
---|
366 | package io_zzz io_form_restart==6 - -<br> |
---|
367 | <br> |
---|
368 | </td> |
---|
369 | </tr> |
---|
370 | </tbody> |
---|
371 | </table> |
---|
372 | <p>The file 'arch/Config.pl' needs to be changed to add the code to use the HDF5 and PHDF5 variables.<br> |
---|
373 | </p> |
---|
374 | <table cellpadding="2" cellspacing="2" border="1" width="90%" align="center"> |
---|
375 | <tbody> |
---|
376 | <tr> |
---|
377 | <td valign="top">*** ../WRFV1/arch/Config.pl Fri Mar 16 12:06:46 2001<br> |
---|
378 | --- ./WRFV1-with-hdf/arch/Config.pl Thu May 13 12:18:37 2004<br> |
---|
379 | ***************<br> |
---|
380 | *** 7,12 ****<br> |
---|
381 | --- 7,14 ----<br> |
---|
382 | <br> |
---|
383 | $sw_perl_path = perl ;<br> |
---|
384 | $sw_netcdf_path = "" ;<br> |
---|
385 | + $sw_hdf5_path ="";<br> |
---|
386 | + $sw_phdf5_path=""; <br> |
---|
387 | $sw_os = "ARCH" ; # ARCH will match any<br> |
---|
388 | $sw_mach = "ARCH" ; # ARCH will match any<br> |
---|
389 | <br> |
---|
390 | ***************<br> |
---|
391 | *** 20,25 ****<br> |
---|
392 | --- 22,35 ----<br> |
---|
393 | {<br> |
---|
394 | $sw_netcdf_path = substr( $ARGV[0], 8 ) ;<br> |
---|
395 | }<br> |
---|
396 | + if ( substr( $ARGV[0], 1, 5 ) eq "hdf5=" )<br> |
---|
397 | + {<br> |
---|
398 | + $sw_hdf5_path = substr( $ARGV[0], 6 ) ;<br> |
---|
399 | + }<br> |
---|
400 | + if ( substr( $ARGV[0], 1, 6 ) eq "phdf5=" )<br> |
---|
401 | + {<br> |
---|
402 | + $sw_phdf5_path = substr( $ARGV[0], 7 ) ;<br> |
---|
403 | + }<br> |
---|
404 | if ( substr( $ARGV[0], 1, 3 ) eq "os=" )<br> |
---|
405 | {<br> |
---|
406 | $sw_os = substr( $ARGV[0], 4 ) ;<br> |
---|
407 | ***************<br> |
---|
408 | *** 89,94 ****<br> |
---|
409 | --- 99,106 ----<br> |
---|
410 | {<br> |
---|
411 | $_ =~ s/CONFIGURE_PERL_PATH/$sw_perl_path/g ;<br> |
---|
412 | $_ =~ s/CONFIGURE_NETCDF_PATH/$sw_netcdf_path/g ;<br> |
---|
413 | + $_ =~ s/CONFIGURE_HDF5_PATH/$sw_hdf5_path/g ;<br> |
---|
414 | + $_ =~ s/CONFIGURE_PHDF5_PATH/$sw_phdf5_path/g ;<br> |
---|
415 | if ( $sw_netcdf_path ) <br> |
---|
416 | { $_ =~ s/CONFIGURE_WRFIO_NF/wrfio_nf/g ;<br> |
---|
417 | $_ =~ s:CONFIGURE_NETCDF_FLAG:-DNETCDF: ;<br> |
---|
418 | ***************<br> |
---|
419 | *** 99,104 ****<br> |
---|
420 | --- 111,140 ----<br> |
---|
421 | $_ =~ s:CONFIGURE_NETCDF_FLAG::g ;<br> |
---|
422 | $_ =~ s:CONFIGURE_NETCDF_LIB_PATH::g ;<br> |
---|
423 | }<br> |
---|
424 | + <br> |
---|
425 | + if ( $sw_hdf5_path ) <br> |
---|
426 | + <br> |
---|
427 | + { $_ =~ s/CONFIGURE_WRFIO_HDF5/wrfio_hdf5/g ;<br> |
---|
428 | + $_ =~ s:CONFIGURE_HDF5_FLAG:-DHDF5: ;<br> |
---|
429 | + $_ =~ s:CONFIGURE_HDF5_LIB_PATH:-L../external/io_hdf5 -lwrfio_hdf5 -L$sw_hdf5_path/lib |
---|
430 | -lhdf5_fortran -lhdf5 -lm -lz -L$sw_hdf5_path/lib -lsz: ;<br> |
---|
431 | + }<br> |
---|
432 | + else <br> |
---|
433 | + { $_ =~ s/CONFIGURE_WRFIO_HDF5//g ;<br> |
---|
434 | + $_ =~ s:CONFIGURE_HDF5_FLAG::g ;<br> |
---|
435 | + $_ =~ s:CONFIGURE_HDF5_LIB_PATH::g ;<br> |
---|
436 | + }<br> |
---|
437 | + <br> |
---|
438 | + if ( $sw_phdf5_path ) <br> |
---|
439 | + <br> |
---|
440 | + { $_ =~ s/CONFIGURE_WRFIO_PHDF5/wrfio_phdf5/g ;<br> |
---|
441 | + $_ =~ s:CONFIGURE_PHDF5_FLAG:-DPHDF5: ;<br> |
---|
442 | + $_ =~ s:CONFIGURE_PHDF5_LIB_PATH:-L../external/io_phdf5 -lwrfio_phdf5 -L$sw_phdf5_path/lib -lhdf5_fortran -lhdf5 -lm -lz: ;<br> |
---|
443 | + }<br> |
---|
444 | + else <br> |
---|
445 | + { $_ =~ s/CONFIGURE_WRFIO_PHDF5//g ;<br> |
---|
446 | + $_ =~ s:CONFIGURE_PHDF5_FLAG::g ;<br> |
---|
447 | + $_ =~ s:CONFIGURE_PHDF5_LIB_PATH::g ;<br> |
---|
448 | + }<br> |
---|
449 | @machopts = ( @machopts, $_ ) ;<br> |
---|
450 | }<br> |
---|
451 | if ( substr( $_, 0, 5 ) eq "#ARCH" && $latchon == 0 )<br> |
---|
452 | <br> |
---|
453 | </td> |
---|
454 | </tr> |
---|
455 | </tbody> |
---|
456 | </table> |
---|
457 | <p>The file 'arch/configure.defauts' must be edited to reflect the configuration of the current system.<br> |
---|
458 | </p> |
---|
459 | <table cellpadding="2" cellspacing="2" border="1" width="90%" align="center"> |
---|
460 | <tbody> |
---|
461 | <tr> |
---|
462 | <td valign="top">*** ../WRFV1/arch/configure.defaults Fri Mar 28 14:08:48 2003<br> |
---|
463 | --- ./WRFV1-with-hdf/arch/configure.defaults Thu May 13 12:18:40 2004<br> |
---|
464 | ***************<br> |
---|
465 | *** 732,758 ****<br> |
---|
466 | <br> |
---|
467 | <br> |
---|
468 | ###########################################################<br> |
---|
469 | ! #ARCH AIX DM (RSL-IO, IBM-MPI)<br> |
---|
470 | #<br> |
---|
471 | DMPARALLEL = 1<br> |
---|
472 | ! SFC = xlf90_r<br> |
---|
473 | SCC = xlc_r<br> |
---|
474 | ! FC = mpxlf90_r<br> |
---|
475 | CC = mpcc_r<br> |
---|
476 | CFLAGS = -DNOUNDERSCORE -DWRF_RSL_IO -I../external/RSL/RSL -DDM_PARALLEL \<br> |
---|
477 | -DMAXDOM_MAKE=$(MAX_DOMAINS) -DMAXPROC_MAKE=$(MAX_PROC)<br> |
---|
478 | ! FCOPTIM = -O2 -qarch=auto -qmaxmem=32676<br> |
---|
479 | FCDEBUG = # -g -qfullpath<br> |
---|
480 | FCBASEOPTS = -qspill=20000 $(FCDEBUG)<br> |
---|
481 | FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)<br> |
---|
482 | ! INCLUDE_MODULES = -I../external/io_netcdf -I../external/io_int \<br> |
---|
483 | -I../frame -I../share -I../phys -I../inc<br> |
---|
484 | EXTRAMODULES = <br> |
---|
485 | ARCHFLAGS = -DWRF_RSL_IO -DRSL -DDM_PARALLEL -DIWORDSIZE=4 -DRWORDSIZE=4 \<br> |
---|
486 | ! -DLWORDSIZE=4 CONFIGURE_NETCDF_FLAG -DTRIEDNTRUE -DONLY_WRFMODEL_IO -DINTIO<br> |
---|
487 | PERL = perl<br> |
---|
488 | REGISTRY = Registry<br> |
---|
489 | ! LIB = CONFIGURE_NETCDF_LIB_PATH -L../external/RSL/RSL -lrsl -lmass \<br> |
---|
490 | -L../external/io_int -lwrfio_int \<br> |
---|
491 | ../frame/internal_header_util.o ../frame/pack_utils.o<br> |
---|
492 | LDFLAGS = -bmaxstack:256000000<br> |
---|
493 | --- 732,823 ----<br> |
---|
494 | <br> |
---|
495 | <br> |
---|
496 | ###########################################################<br> |
---|
497 | ! #ARCH AIX DM (RSL-IO, IBM-MPI)(PARALLEL HDF5)<br> |
---|
498 | #<br> |
---|
499 | DMPARALLEL = 1<br> |
---|
500 | ! SFC = xlf90_r <br> |
---|
501 | SCC = xlc_r<br> |
---|
502 | ! FC = mpxlf90_r <br> |
---|
503 | CC = mpcc_r<br> |
---|
504 | CFLAGS = -DNOUNDERSCORE -DWRF_RSL_IO -I../external/RSL/RSL -DDM_PARALLEL \<br> |
---|
505 | -DMAXDOM_MAKE=$(MAX_DOMAINS) -DMAXPROC_MAKE=$(MAX_PROC)<br> |
---|
506 | ! FCOPTIM = -O1 -qarch=auto -qmaxmem=-1<br> |
---|
507 | ! #FCOPTIM = -O2 <br> |
---|
508 | ! FCDEBUG = -g -qfullpath<br> |
---|
509 | ! FCBASEOPTS = -qspill=20000 $(FCDEBUG)<br> |
---|
510 | ! FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)<br> |
---|
511 | ! INCLUDE_MODULES = -I../external/io_netcdf -I../external/io_phdf5 -I../external/io_int \<br> |
---|
512 | ! -I../frame -I../share -I../phys -I../inc<br> |
---|
513 | ! EXTRAMODULES = <br> |
---|
514 | ! ARCHFLAGS = -DWRF_RSL_IO -DRSL -DDM_PARALLEL -DIWORDSIZE=4 -DRWORDSIZE=4 \<br> |
---|
515 | ! -DLWORDSIZE=4 CONFIGURE_NETCDF_FLAG CONFIGURE_PHDF5_FLAG -DTRIEDNTRUE -DONLY_WRFMODEL_IO -DINTIO<br> |
---|
516 | ! PERL = perl<br> |
---|
517 | ! REGISTRY = Registry<br> |
---|
518 | ! LIB = CONFIGURE_NETCDF_LIB_PATH CONFIGURE_PHDF5_LIB_PATH -L../external/RSL/RSL -lrsl -lmass \<br> |
---|
519 | ! -L../external/io_int -lwrfio_int \<br> |
---|
520 | ! ../frame/internal_header_util.o ../frame/pack_utils.o<br> |
---|
521 | ! LDFLAGS = -bmaxstack:256000000 -bmaxdata:0x80000000<br> |
---|
522 | ! CPP = /lib/cpp<br> |
---|
523 | ! CPPFLAGS = -I$(LIBINCLUDE) -C -P $(ARCHFLAGS) -I../external/RSL/RSL `cat ../inc/dm_comm_cpp_flags`<br> |
---|
524 | ! MAX_DOMAINS = 4<br> |
---|
525 | ! MAX_PROC = 1024<br> |
---|
526 | ! AR = ar ru<br> |
---|
527 | ! M4 = m4 -B 8000<br> |
---|
528 | ! RANLIB = ranlib<br> |
---|
529 | ! <br> |
---|
530 | ! externals : CONFIGURE_WRFIO_NF CONFIGURE_WRFIO_PHDF5 ../external/RSL/RSL/librsl.a wrfio_int<br> |
---|
531 | ! ( /bin/cp ../tools/gen_comms_warning ../tools/gen_comms.c ; cat ../external/RSL/gen_comms.c |
---|
532 | >> ../tools/gen_comms.c ; \<br> |
---|
533 | ! /bin/cp module_dm_warning module_dm.F ; cat ../external/RSL/module_dm.F >> module_dm.F )<br> |
---|
534 | ! <br> |
---|
535 | ! wrfio_nf : <br> |
---|
536 | ! ( cd ../external/io_netcdf ; make NETCDFPATH=CONFIGURE_NETCDF_PATH FC="$(SFC) |
---|
537 | $(FCDEBUG) -qarch=auto -qzerosize" ; /bin/cp wrf_io_flags.h wrf_status_codes.h |
---|
538 | ../../inc )<br> |
---|
539 | ! <br> |
---|
540 | ! wrfio_phdf5 : <br> |
---|
541 | ! ( cd ../external/io_phdf5 ; make PHDF5PATH=CONFIGURE_PHDF5_PATH FC="$(FC) |
---|
542 | $(FCDEBUG) -qarch=auto -qfree=F90 -qzerosize" ; /bin/cp wrf_io_flags.h wrf_status_codes.h |
---|
543 | ../../inc )<br> |
---|
544 | ! <br> |
---|
545 | ! wrfio_int : <br> |
---|
546 | ! ( cd ../external/io_int ; \<br> |
---|
547 | ! make CC=$(CC) FC="$(SFC) $(FCDEBUG) -qarch=auto -qzerosize" all diffwrf )<br> |
---|
548 | ! <br> |
---|
549 | ! ../external/RSL/RSL/librsl.a :<br> |
---|
550 | ! ( cd ../external/RSL/RSL ; make MAX_DOMAINS=$(MAX_DOMAINS) MAX_PROC=$(MAX_PROC) LEARN_BCAST=-DLEARN_BCAST sp2 )<br> |
---|
551 | ! <br> |
---|
552 | ! # compile these without high optimization to speed compile<br> |
---|
553 | ! mediation_force_domain.o : mediation_force_domain.F<br> |
---|
554 | ! mediation_interp_domain.o : mediation_interp_domain.F<br> |
---|
555 | ! <br> |
---|
556 | ! mediation_force_domain.o \<br> |
---|
557 | ! mediation_interp_domain.o :<br> |
---|
558 | ! $(RM) $@<br> |
---|
559 | ! sed /\!.\*\'/s/\'//g $*.F > $*.b<br> |
---|
560 | ! $(CPP) -I../inc $(CPPFLAGS) $*.b > $*.f<br> |
---|
561 | ! $(RM) $*.b<br> |
---|
562 | ! $(FC) -c $(FCBASEOPTS) $(MODULE_DIRS) $*.f<br> |
---|
563 | ! <br> |
---|
564 | ! ###########################################################<br> |
---|
565 | ! #ARCH AIX DM (RSL-IO, IBM-MPI)(SERIAL HDF5)<br> |
---|
566 | ! #<br> |
---|
567 | ! DMPARALLEL = 1<br> |
---|
568 | ! SFC = xlf90_r <br> |
---|
569 | ! SCC = xlc_r<br> |
---|
570 | ! FC = mpxlf90_r <br> |
---|
571 | ! CC = mpcc_r<br> |
---|
572 | ! CFLAGS = -DNOUNDERSCORE -DWRF_RSL_IO -I../external/RSL/RSL -DDM_PARALLEL \<br> |
---|
573 | ! -DMAXDOM_MAKE=$(MAX_DOMAINS) -DMAXPROC_MAKE=$(MAX_PROC)<br> |
---|
574 | ! FCOPTIM = -O1 -qarch=auto -qmaxmem=32676<br> |
---|
575 | ! #FCOPTIM = -O2 <br> |
---|
576 | FCDEBUG = # -g -qfullpath<br> |
---|
577 | FCBASEOPTS = -qspill=20000 $(FCDEBUG)<br> |
---|
578 | FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)<br> |
---|
579 | ! INCLUDE_MODULES = -I../external/io_netcdf -I../external/io_hdf5 -I../external/io_int \<br> |
---|
580 | -I../frame -I../share -I../phys -I../inc<br> |
---|
581 | EXTRAMODULES = <br> |
---|
582 | ARCHFLAGS = -DWRF_RSL_IO -DRSL -DDM_PARALLEL -DIWORDSIZE=4 -DRWORDSIZE=4 \<br> |
---|
583 | ! -DLWORDSIZE=4 CONFIGURE_NETCDF_FLAG CONFIGURE_HDF5_FLAG -DTRIEDNTRUE -DONLY_WRFMODEL_IO -DINTIO<br> |
---|
584 | PERL = perl<br> |
---|
585 | REGISTRY = Registry<br> |
---|
586 | ! LIB = CONFIGURE_NETCDF_LIB_PATH CONFIGURE_HDF5_LIB_PATH \<br> |
---|
587 | ! -L../external/RSL/RSL -lrsl -lmass \<br> |
---|
588 | -L../external/io_int -lwrfio_int \<br> |
---|
589 | ../frame/internal_header_util.o ../frame/pack_utils.o<br> |
---|
590 | LDFLAGS = -bmaxstack:256000000<br> |
---|
591 | ***************<br> |
---|
592 | *** 764,776 ****<br> |
---|
593 | M4 = m4 -B 8000<br> |
---|
594 | RANLIB = ranlib<br> |
---|
595 | <br> |
---|
596 | ! externals : CONFIGURE_WRFIO_NF ../external/RSL/RSL/librsl.a wrfio_int<br> |
---|
597 | ( /bin/cp ../tools/gen_comms_warning ../tools/gen_comms.c ; cat ../external/RSL/gen_comms.c |
---|
598 | >> ../tools/gen_comms.c ; \<br> |
---|
599 | /bin/cp module_dm_warning module_dm.F ; cat ../external/RSL/module_dm.F >> module_dm.F )<br> |
---|
600 | <br> |
---|
601 | wrfio_nf : <br> |
---|
602 | ( cd ../external/io_netcdf ; make NETCDFPATH=CONFIGURE_NETCDF_PATH FC="$(SFC) |
---|
603 | $(FCDEBUG) -qarch=auto -qzerosize" ; /bin/cp wrf_io_flags.h wrf_status_codes.h |
---|
604 | ../../inc )<br> |
---|
605 | <br> |
---|
606 | wrfio_int : <br> |
---|
607 | ( cd ../external/io_int ; \<br> |
---|
608 | make CC=$(CC) FC="$(SFC) $(FCDEBUG) -qarch=auto -qzerosize" all diffwrf )<br> |
---|
609 | --- 829,844 ----<br> |
---|
610 | M4 = m4 -B 8000<br> |
---|
611 | RANLIB = ranlib<br> |
---|
612 | <br> |
---|
613 | ! externals : CONFIGURE_WRFIO_NF CONFIGURE_WRFIO_HDF5 ../external/RSL/RSL/librsl.a wrfio_int<br> |
---|
614 | ( /bin/cp ../tools/gen_comms_warning ../tools/gen_comms.c ; cat ../external/RSL/gen_comms.c |
---|
615 | >> ../tools/gen_comms.c ; \<br> |
---|
616 | /bin/cp module_dm_warning module_dm.F ; cat ../external/RSL/module_dm.F >> module_dm.F )<br> |
---|
617 | <br> |
---|
618 | wrfio_nf : <br> |
---|
619 | ( cd ../external/io_netcdf ; make NETCDFPATH=CONFIGURE_NETCDF_PATH FC="$(SFC) |
---|
620 | $(FCDEBUG) -qarch=auto -qzerosize" ; /bin/cp wrf_io_flags.h wrf_status_codes.h |
---|
621 | ../../inc )<br> |
---|
622 | <br> |
---|
623 | + wrfio_hdf5 : <br> |
---|
624 | + ( cd ../external/io_hdf5 ; make HDF5PATH=CONFIGURE_HDF5_PATH FC="$(SFC) |
---|
625 | $(FCDEBUG) -qarch=auto -qfree=F90 -qzerosize" ; /bin/cp wrf_io_flags.h wrf_status_codes.h |
---|
626 | ../../inc )<br> |
---|
627 | + <br> |
---|
628 | wrfio_int : <br> |
---|
629 | ( cd ../external/io_int ; \<br> |
---|
630 | make CC=$(CC) FC="$(SFC) $(FCDEBUG) -qarch=auto -qzerosize" all diffwrf )<br> |
---|
631 | ***************<br> |
---|
632 | *** 1650,1663 ****<br> |
---|
633 | FCBASEOPTS = -byteswapio -Ktrap=fp -Mfree -tp p6 $(FCDEBUG)<br> |
---|
634 | FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)<br> |
---|
635 | ARCHFLAGS = -DDEREF_KLUDGE -DIO_DEREF_KLUDGE -DIWORDSIZE=4 -DRWORDSIZE=4 -DLWORDSIZE=4 \<br> |
---|
636 | ! CONFIGURE_NETCDF_FLAG \<br> |
---|
637 | -DTRIEDNTRUE -DONLY_WRFMODEL_IO<br> |
---|
638 | ! INCLUDE_MODULES = -module ../main -I../external/io_netcdf -I../external/io_int \<br> |
---|
639 | -I../frame -I../share -I../phys -I../inc<br> |
---|
640 | EXTRAMODULES = <br> |
---|
641 | PERL = perl<br> |
---|
642 | REGISTRY = Registry<br> |
---|
643 | ! LIB = CONFIGURE_NETCDF_LIB_PATH \<br> |
---|
644 | ../frame/internal_header_util.o ../frame/pack_utils.o<br> |
---|
645 | LDFLAGS =<br> |
---|
646 | CPP = /lib/cpp<br> |
---|
647 | --- 1718,1731 ----<br> |
---|
648 | FCBASEOPTS = -byteswapio -Ktrap=fp -Mfree -tp p6 $(FCDEBUG)<br> |
---|
649 | FCFLAGS = $(FCOPTIM) $(FCBASEOPTS)<br> |
---|
650 | ARCHFLAGS = -DDEREF_KLUDGE -DIO_DEREF_KLUDGE -DIWORDSIZE=4 -DRWORDSIZE=4 -DLWORDSIZE=4 \<br> |
---|
651 | ! CONFIGURE_NETCDF_FLAG CONFIGURE_HDF5_FLAG\<br> |
---|
652 | -DTRIEDNTRUE -DONLY_WRFMODEL_IO<br> |
---|
653 | ! INCLUDE_MODULES = -module ../main -I../external/io_netcdf -I../external/io_hdf5 -I../external/io_int \<br> |
---|
654 | -I../frame -I../share -I../phys -I../inc<br> |
---|
655 | EXTRAMODULES = <br> |
---|
656 | PERL = perl<br> |
---|
657 | REGISTRY = Registry<br> |
---|
658 | ! LIB = CONFIGURE_NETCDF_LIB_PATH CONFIGURE_HDF5_LIB_PATH \<br> |
---|
659 | ../frame/internal_header_util.o ../frame/pack_utils.o<br> |
---|
660 | LDFLAGS =<br> |
---|
661 | CPP = /lib/cpp<br> |
---|
662 | ***************<br> |
---|
663 | *** 1666,1672 ****<br> |
---|
664 | M4 = m4<br> |
---|
665 | RANLIB = ranlib<br> |
---|
666 | <br> |
---|
667 | ! externals : CONFIGURE_WRFIO_NF wrfio_int<br> |
---|
668 | ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )<br> |
---|
669 | <br> |
---|
670 | wrfio_nf : <br> |
---|
671 | --- 1734,1740 ----<br> |
---|
672 | M4 = m4<br> |
---|
673 | RANLIB = ranlib<br> |
---|
674 | <br> |
---|
675 | ! externals : CONFIGURE_WRFIO_NF CONFIGURE_WRFIO_HDF5 wrfio_int<br> |
---|
676 | ( /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F )<br> |
---|
677 | <br> |
---|
678 | wrfio_nf : <br> |
---|
679 | ***************<br> |
---|
680 | *** 1675,1680 ****<br> |
---|
681 | --- 1743,1754 ----<br> |
---|
682 | FFLAGS='$(FCFLAGS) -ICONFIGURE_NETCDF_PATH/include' ; \<br> |
---|
683 | /bin/cp wrf_io_flags.h wrf_status_codes.h ../../inc )<br> |
---|
684 | <br> |
---|
685 | + wrfio_hdf5 : <br> |
---|
686 | + ( cd ../external/io_hdf5 ; \<br> |
---|
687 | + make HDF5PATH=CONFIGURE_HDF5_PATH FC=$(FC) TRADFLAG="-traditional" \<br> |
---|
688 | + FFLAGS='$(FCFLAGS) -ICONFIGURE_HDF5_PATH/lib' ; \<br> |
---|
689 | + /bin/cp wrf_io_flags.h wrf_status_codes.h ../../inc )<br> |
---|
690 | + <br> |
---|
691 | wrfio_int : <br> |
---|
692 | ( cd ../external/io_int ; \<br> |
---|
693 | make CC=$(CC) FC="$(SFC) $(FCDEBUG) $(FCBASEOPTS)" \<br> |
---|
694 | </td> |
---|
695 | </tr> |
---|
696 | </tbody> |
---|
697 | </table> |
---|
698 | <p><br> |
---|
699 | |
---|
700 | </p> |
---|
701 | <blockquote> |
---|
702 | <ul> |
---|
703 | </ul><p></p> |
---|
704 | </blockquote> |
---|
705 | <p><i>Modifications of source code inside WRF</i><b><br> |
---|
706 | </b></p> |
---|
707 | <p>The<i> io_hdf5</i> and/or<i> io_phdf5</i> modules must be added to the WRF source. In addition, the WRF source must be modified in a few places.<br> |
---|
708 | </p> |
---|
709 | <p>The 'frame/md_calls.m4' must be modified to recognize the HDF modules.<br> |
---|
710 | </p> |
---|
711 | <blockquote> |
---|
712 | </blockquote> |
---|
713 | <table cellpadding="2" cellspacing="2" border="1" width="90%" align="center"> |
---|
714 | <tbody> |
---|
715 | <tr> |
---|
716 | <td valign="top">*** ../WRFV1/frame/md_calls.m4 Mon Dec 10 18:10:43 2001<br> |
---|
717 | --- ./WRFV1-with-hdf/frame/md_calls.m4 Thu May 13 12:18:44 2004<br> |
---|
718 | ***************<br> |
---|
719 | *** 70,78 ****<br> |
---|
720 | CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )<br> |
---|
721 | ENDIF<br> |
---|
722 | #endif<br> |
---|
723 | ! #ifdef HDF<br> |
---|
724 | ! CASE ( IO_HDF )<br> |
---|
725 | ! CALL ext_hdf_$1_$2_$6_$3$4 ( Hndl, Element, ifelse($6,td,`DateStr,') ifelse($2,var,`Varname,') Data, &<br> |
---|
726 | ifelse($4,char,,`locCount, ifelse($1,get,`Outcount,')') Status )<br> |
---|
727 | #endif<br> |
---|
728 | #ifdef XXX<br> |
---|
729 | --- 70,99 ----<br> |
---|
730 | CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )<br> |
---|
731 | ENDIF<br> |
---|
732 | #endif<br> |
---|
733 | ! #ifdef HDF5<br> |
---|
734 | ! CASE ( IO_HDF5 )<br> |
---|
735 | ! IF ( multi_files(io_form) .OR. wrf_dm_on_monitor() ) THEN<br> |
---|
736 | ! CALL ext_hdf5_$1_$2_$6_$3$4 ( Hndl, Element, ifelse($6,td,`DateStr,') ifelse($2,var,`Varname,') Data, &<br> |
---|
737 | ! ifelse($4,char,,`locCount, ifelse($1,get,`Outcount,')') Status )<br> |
---|
738 | ! ENDIF <br> |
---|
739 | ! IF ( .NOT. multi_files(io_form) ) THEN<br> |
---|
740 | ! ifelse($1,get,ifelse($3,integer,`CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )'))<br> |
---|
741 | ! ifelse($1,get,ifelse($3,integer,`CALL wrf_dm_bcast_bytes( Data, IWORDSIZE*locCount )'))<br> |
---|
742 | ! ifelse($1,get,ifelse($3,real, `CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )'))<br> |
---|
743 | ! ifelse($1,get,ifelse($3,real, `CALL wrf_dm_bcast_bytes( Data, RWORDSIZE*locCount )'))<br> |
---|
744 | ! ifelse($1,get,ifelse($3,logical,`CALL wrf_dm_bcast_bytes( locCount, IWORDSIZE )'))<br> |
---|
745 | ! ifelse($1,get,ifelse($3,logical,`CALL wrf_dm_bcast_bytes( Data, LWORDSIZE*locCount )'))<br> |
---|
746 | ! ifelse($1,get,ifelse($4,char, `len_of_str = LEN(Data)'))<br> |
---|
747 | ! ifelse($1,get,ifelse($4,char, `CALL wrf_dm_bcast_bytes( len_of_str, IWORDSIZE )'))<br> |
---|
748 | ! ifelse($1,get,ifelse($4,char, `CALL wrf_dm_bcast_string( Data, len_of_str )'))<br> |
---|
749 | ! CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )<br> |
---|
750 | ! ENDIF<br> |
---|
751 | ! <br> |
---|
752 | ! <br> |
---|
753 | ! #endif<br> |
---|
754 | ! #ifdef PHDF5<br> |
---|
755 | ! CASE ( IO_PHDF5 )<br> |
---|
756 | ! CALL ext_phdf5_$1_$2_$6_$3$4 ( Hndl, Element, ifelse($6,td,`DateStr,') ifelse($2,var,`Varname,') Data, &<br> |
---|
757 | ifelse($4,char,,`locCount, ifelse($1,get,`Outcount,')') Status )<br> |
---|
758 | #endif<br> |
---|
759 | #ifdef XXX<br> |
---|
760 | <br> |
---|
761 | </td> |
---|
762 | </tr> |
---|
763 | </tbody> |
---|
764 | </table> |
---|
765 | <p><br> |
---|
766 | The 'frame/module_io.F' file must be modified to add code to call the HDF5 modules if selected.<br> |
---|
767 | </p> |
---|
768 | <table cellpadding="2" cellspacing="2" border="1" width="90%" align="center"> |
---|
769 | <tbody> |
---|
770 | <tr> |
---|
771 | <td valign="top">*** ../WRFV1/frame/module_io.F Tue Dec 3 14:10:48 2002<br> |
---|
772 | --- ./WRFV1-with-hdf/frame/module_io.F Thu May 13 12:18:45 2004<br> |
---|
773 | ***************<br> |
---|
774 | *** 34,39 ****<br> |
---|
775 | --- 34,48 ----<br> |
---|
776 | #ifdef NETCDF<br> |
---|
777 | CALL ext_ncd_ioinit( SysDepInfo, Status )<br> |
---|
778 | #endif<br> |
---|
779 | + <br> |
---|
780 | + #ifdef HDF5<br> |
---|
781 | + CALL ext_hdf5_ioinit(SysDepInfo, Status)<br> |
---|
782 | + #endif<br> |
---|
783 | + <br> |
---|
784 | + #ifdef PHDF5<br> |
---|
785 | + CALL ext_phdf5_ioinit(SysDepInfo, Status)<br> |
---|
786 | + #endif<br> |
---|
787 | + <br> |
---|
788 | END SUBROUTINE wrf_ioinit<br> |
---|
789 | <br> |
---|
790 | !--- ioexit<br> |
---|
791 | ***************<br> |
---|
792 | *** 47,52 ****<br> |
---|
793 | --- 56,70 ----<br> |
---|
794 | #ifdef NETCDF<br> |
---|
795 | CALL ext_ncd_ioexit( Status )<br> |
---|
796 | #endif<br> |
---|
797 | + <br> |
---|
798 | + #ifdef HDF5<br> |
---|
799 | + CALL ext_hdf5_ioexit(Status)<br> |
---|
800 | + #endif<br> |
---|
801 | + <br> |
---|
802 | + #ifdef PHDF5<br> |
---|
803 | + CALL ext_phdf5_ioexit(Status)<br> |
---|
804 | + #endif<br> |
---|
805 | + <br> |
---|
806 | IF ( use_output_servers() ) CALL ext_quilt_ioexit( Status )<br> |
---|
807 | END SUBROUTINE<br> |
---|
808 | <br> |
---|
809 | ***************<br> |
---|
810 | *** 134,139 ****<br> |
---|
811 | --- 152,179 ----<br> |
---|
812 | CALL ext_hdf_open_for_write_begin ( FileName , Comm_compute, Comm_io, SysDepInfo, &<br> |
---|
813 | Hndl , Status )<br> |
---|
814 | #endif<br> |
---|
815 | + #ifdef HDF5<br> |
---|
816 | + CASE ( IO_HDF5 )<br> |
---|
817 | + IF ( multi_files(io_form) .OR. wrf_dm_on_monitor() ) THEN<br> |
---|
818 | + IF ( multi_files(io_form) ) THEN<br> |
---|
819 | + CALL wrf_get_myproc ( myproc )<br> |
---|
820 | + CALL append_to_filename ( LocFilename , FileName , myproc, 4 )<br> |
---|
821 | + ELSE<br> |
---|
822 | + LocFilename = FileName<br> |
---|
823 | + ENDIF<br> |
---|
824 | + CALL ext_hdf5_open_for_write_begin ( LocFileName , Comm_compute, Comm_io, SysDepInfo, &<br> |
---|
825 | + Hndl , Status )<br> |
---|
826 | + ENDIF<br> |
---|
827 | + IF ( .NOT. multi_files(io_form) ) THEN<br> |
---|
828 | + CALL wrf_dm_bcast_bytes( Hndl, IWORDSIZE )<br> |
---|
829 | + CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )<br> |
---|
830 | + ENDIF<br> |
---|
831 | + #endif<br> |
---|
832 | + #ifdef PHDF5<br> |
---|
833 | + CASE ( IO_PHDF5 )<br> |
---|
834 | + CALL ext_phdf5_open_for_write_begin ( FileName , Comm_compute, Comm_io, SysDepInfo, &<br> |
---|
835 | + Hndl , Status )<br> |
---|
836 | + #endif<br> |
---|
837 | #ifdef XXX<br> |
---|
838 | CASE ( IO_XXX )<br> |
---|
839 | CALL ext_xxx_open_for_write_begin ( FileName , Comm_compute, Comm_io, SysDepInfo, &<br> |
---|
840 | ***************<br> |
---|
841 | *** 214,219 ****<br> |
---|
842 | --- 254,270 ----<br> |
---|
843 | CASE ( IO_HDF )<br> |
---|
844 | CALL ext_hdf_open_for_write_commit ( Hndl , Status )<br> |
---|
845 | #endif<br> |
---|
846 | + #ifdef HDF5<br> |
---|
847 | + CASE ( IO_HDF5 )<br> |
---|
848 | + IF ( multi_files(io_form) .OR. wrf_dm_on_monitor() ) THEN<br> |
---|
849 | + CALL ext_hdf5_open_for_write_commit ( Hndl , Status )<br> |
---|
850 | + ENDIF<br> |
---|
851 | + IF ( .NOT. multi_files(io_form) ) CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )<br> |
---|
852 | + #endif<br> |
---|
853 | + #ifdef PHDF5<br> |
---|
854 | + CASE ( IO_PHDF5 )<br> |
---|
855 | + CALL ext_phdf5_open_for_write_commit ( Hndl , Status )<br> |
---|
856 | + #endif<br> |
---|
857 | #ifdef XXX<br> |
---|
858 | CASE ( IO_XXX )<br> |
---|
859 | CALL ext_xxx_open_for_write_commit ( Hndl , Status )<br> |
---|
860 | ***************<br> |
---|
861 | *** 316,321 ****<br> |
---|
862 | --- 367,388 ----<br> |
---|
863 | CALL ext_hdf_open_for_read ( FileName , Comm_compute, Comm_io, SysDepInfo, &<br> |
---|
864 | Hndl , Status )<br> |
---|
865 | #endif<br> |
---|
866 | + #ifdef HDF5<br> |
---|
867 | + CASE ( IO_HDF5 )<br> |
---|
868 | + IF ( multi_files(io_form) .OR. wrf_dm_on_monitor() ) THEN<br> |
---|
869 | + CALL ext_hdf5_open_for_read ( FileName , Comm_compute, Comm_io, SysDepInfo, &<br> |
---|
870 | + Hndl , Status )<br> |
---|
871 | + ENDIF<br> |
---|
872 | + IF ( .NOT. multi_files(io_form) ) THEN<br> |
---|
873 | + CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )<br> |
---|
874 | + CALL wrf_dm_bcast_bytes( Hndl, IWORDSIZE )<br> |
---|
875 | + ENDIF<br> |
---|
876 | + #endif<br> |
---|
877 | + #ifdef PHDF5<br> |
---|
878 | + CASE ( IO_PHDF5 )<br> |
---|
879 | + CALL ext_phdf5_open_for_read ( FileName , Comm_compute, Comm_io, SysDepInfo, &<br> |
---|
880 | + Hndl , Status )<br> |
---|
881 | + #endif<br> |
---|
882 | #ifdef XXX<br> |
---|
883 | CASE ( IO_XXX )<br> |
---|
884 | CALL ext_xxx_open_for_read ( FileName , Comm_compute, Comm_io, SysDepInfo, &<br> |
---|
885 | ***************<br> |
---|
886 | *** 420,425 ****<br> |
---|
887 | --- 487,502 ----<br> |
---|
888 | CASE ( IO_HDF )<br> |
---|
889 | CALL ext_hdf_inquire_opened ( Hndl, FileName , FileStatus, Status )<br> |
---|
890 | #endif<br> |
---|
891 | + #ifdef HDF5<br> |
---|
892 | + CASE ( IO_HDF5 )<br> |
---|
893 | + IF (wrf_dm_on_monitor()) CALL ext_hdf5_inquire_opened ( Hndl, FileName , FileStatus, Status )<br> |
---|
894 | + CALL wrf_dm_bcast_bytes( FileStatus, IWORDSIZE )<br> |
---|
895 | + CALL wrf_dm_bcast_bytes( Status , IWORDSIZE )<br> |
---|
896 | + #endif<br> |
---|
897 | + #ifdef PHDF5<br> |
---|
898 | + CASE ( IO_PHDF5 )<br> |
---|
899 | + CALL ext_phdf5_inquire_opened ( Hndl, FileName , FileStatus, Status )<br> |
---|
900 | + #endif<br> |
---|
901 | #ifdef XXX<br> |
---|
902 | CASE ( IO_XXX )<br> |
---|
903 | CALL ext_xxx_inquire_opened ( Hndl, FileName , FileStatus, Status )<br> |
---|
904 | ***************<br> |
---|
905 | *** 486,491 ****<br> |
---|
906 | --- 563,578 ----<br> |
---|
907 | CASE ( IO_HDF )<br> |
---|
908 | CALL ext_hdf_inquire_filename ( Hndl, FileName , FileStatus, Status )<br> |
---|
909 | #endif<br> |
---|
910 | + #ifdef HDF5<br> |
---|
911 | + CASE ( IO_HDF5 )<br> |
---|
912 | + IF (wrf_dm_on_monitor()) CALL ext_hdf5_inquire_filename ( Hndl, FileName , FileStatus, Status )<br> |
---|
913 | + CALL wrf_dm_bcast_bytes( FileStatus, IWORDSIZE )<br> |
---|
914 | + CALL wrf_dm_bcast_bytes( Status , IWORDSIZE )<br> |
---|
915 | + #endif<br> |
---|
916 | + #ifdef PHDF5<br> |
---|
917 | + CASE ( IO_PHDF5 )<br> |
---|
918 | + CALL ext_phdf5_inquire_filename ( Hndl, FileName , FileStatus, Status )<br> |
---|
919 | + #endif<br> |
---|
920 | #ifdef XXX<br> |
---|
921 | CASE ( IO_XXX )<br> |
---|
922 | CALL ext_xxx_inquire_filename ( Hndl, FileName , FileStatus, Status )<br> |
---|
923 | ***************<br> |
---|
924 | *** 607,612 ****<br> |
---|
925 | --- 694,708 ----<br> |
---|
926 | CASE ( IO_HDF )<br> |
---|
927 | CALL ext_ncd_ioclose( Hndl, Status )<br> |
---|
928 | #endif<br> |
---|
929 | + #ifdef HDF5<br> |
---|
930 | + CASE ( IO_HDF5 )<br> |
---|
931 | + IF ( multi_files(io_form) .OR. wrf_dm_on_monitor() ) CALL ext_hdf5_ioclose( Hndl, Status )<br> |
---|
932 | + CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )<br> |
---|
933 | + #endif<br> |
---|
934 | + #ifdef PHDF5<br> |
---|
935 | + CASE ( IO_PHDF5 )<br> |
---|
936 | + CALL ext_phdf5_ioclose( Hndl, Status )<br> |
---|
937 | + #endif<br> |
---|
938 | #ifdef XXX<br> |
---|
939 | CASE ( IO_XXX )<br> |
---|
940 | CALL ext_xxx_ioclose( Hndl, Status )<br> |
---|
941 | ***************<br> |
---|
942 | *** 675,680 ****<br> |
---|
943 | --- 771,790 ----<br> |
---|
944 | CASE ( IO_HDF )<br> |
---|
945 | CALL ext_hdf_get_next_time( Hndl, DateStr, Status )<br> |
---|
946 | #endif<br> |
---|
947 | + #ifdef HDF5<br> |
---|
948 | + CASE ( IO_HDF5 )<br> |
---|
949 | + IF ( multi_files(io_form) .OR. wrf_dm_on_monitor() ) CALL ext_hdf5_get_next_time( Hndl, DateStr, Status )<br> |
---|
950 | + IF ( .NOT. multi_files(io_form) ) THEN<br> |
---|
951 | + CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )<br> |
---|
952 | + len_of_str = LEN(DateStr)<br> |
---|
953 | + CALL wrf_dm_bcast_bytes( len_of_str, IWORDSIZE )<br> |
---|
954 | + CALL wrf_dm_bcast_string ( DateStr , len_of_str )<br> |
---|
955 | + ENDIF<br> |
---|
956 | + #endif<br> |
---|
957 | + #ifdef PHDF5<br> |
---|
958 | + CASE ( IO_PHDF5 )<br> |
---|
959 | + CALL ext_phdf5_get_next_time( Hndl, DateStr, Status )<br> |
---|
960 | + #endif<br> |
---|
961 | #ifdef XXX<br> |
---|
962 | CASE ( IO_XXX )<br> |
---|
963 | CALL ext_xxx_get_next_time( Hndl, DateStr, Status )<br> |
---|
964 | ***************<br> |
---|
965 | *** 742,747 ****<br> |
---|
966 | --- 852,866 ----<br> |
---|
967 | CASE ( IO_HDF )<br> |
---|
968 | CALL ext_hdf_set_time( Hndl, DateStr, Status )<br> |
---|
969 | #endif<br> |
---|
970 | + #ifdef HDF5<br> |
---|
971 | + CASE ( IO_HDF5 )<br> |
---|
972 | + IF ( multi_files(io_form) .OR. wrf_dm_on_monitor() ) CALL ext_hdf5_set_time( Hndl, DateStr, Status )<br> |
---|
973 | + CALL wrf_dm_bcast_bytes( Status, IWORDSIZE )<br> |
---|
974 | + #endif<br> |
---|
975 | + #ifdef PHDF5<br> |
---|
976 | + CASE ( IO_PHDF5 )<br> |
---|
977 | + CALL ext_phdf5_set_time( Hndl, DateStr, Status )<br> |
---|
978 | + #endif<br> |
---|
979 | #ifdef XXX<br> |
---|
980 | CASE ( IO_XXX )<br> |
---|
981 | CALL ext_xxx_set_time( Hndl, DateStr, Status )<br> |
---|
982 | ***************<br> |
---|
983 | *** 875,880 ****<br> |
---|
984 | --- 994,1002 ----<br> |
---|
985 | #ifdef HDF<br> |
---|
986 | EXTERNAL ext_hdf_read_field<br> |
---|
987 | #endif<br> |
---|
988 | + #ifdef HDF5<br> |
---|
989 | + EXTERNAL ext_hdf5_read_field<br> |
---|
990 | + #endif<br> |
---|
991 | #ifdef XXX<br> |
---|
992 | EXTERNAL ext_xxx_read_field<br> |
---|
993 | #endif<br> |
---|
994 | ***************<br> |
---|
995 | *** 911,916 ****<br> |
---|
996 | --- 1033,1058 ----<br> |
---|
997 | PatchStart , PatchEnd , &<br> |
---|
998 | Status )<br> |
---|
999 | #endif<br> |
---|
1000 | + #ifdef HDF5<br> |
---|
1001 | + CASE ( IO_HDF5 )<br> |
---|
1002 | + CALL call_pkg_and_dist ( ext_hdf5_read_field, multi_files(io_form), &<br> |
---|
1003 | + Hndl , DateStr , VarName , Field , FieldType , Comm , IOComm , &<br> |
---|
1004 | + DomainDesc , bdy_mask, MemoryOrder , Stagger , DimNames , &<br> |
---|
1005 | + DomainStart , DomainEnd , &<br> |
---|
1006 | + MemoryStart , MemoryEnd , &<br> |
---|
1007 | + PatchStart , PatchEnd , &<br> |
---|
1008 | + Status )<br> |
---|
1009 | + #endif<br> |
---|
1010 | + #ifdef PHDF5 <br> |
---|
1011 | + CASE (IO_PHDF5)<br> |
---|
1012 | + CALL ext_phdf5_read_field ( &<br> |
---|
1013 | + Hndl , DateStr , VarName , Field , FieldType , Comm , IOComm , &<br> |
---|
1014 | + DomainDesc , MemoryOrder , Stagger , DimNames , &<br> |
---|
1015 | + DomainStart , DomainEnd , &<br> |
---|
1016 | + MemoryStart , MemoryEnd , &<br> |
---|
1017 | + PatchStart , PatchEnd , &<br> |
---|
1018 | + Status )<br> |
---|
1019 | + #endif<br> |
---|
1020 | #ifdef XXX<br> |
---|
1021 | CASE ( IO_XXX )<br> |
---|
1022 | CALL call_pkg_and_dist ( ext_xxx_read_field, multi_files(io_form), &<br> |
---|
1023 | ***************<br> |
---|
1024 | *** 994,999 ****<br> |
---|
1025 | --- 1136,1144 ----<br> |
---|
1026 | #ifdef HDF<br> |
---|
1027 | EXTERNAL ext_hdf_write_field<br> |
---|
1028 | #endif<br> |
---|
1029 | + #ifdef HDF5<br> |
---|
1030 | + EXTERNAL ext_hdf5_write_field<br> |
---|
1031 | + #endif<br> |
---|
1032 | #ifdef XXX<br> |
---|
1033 | EXTERNAL ext_xxx_write_field<br> |
---|
1034 | #endif<br> |
---|
1035 | ***************<br> |
---|
1036 | *** 1028,1033 ****<br> |
---|
1037 | --- 1173,1198 ----<br> |
---|
1038 | PatchStart , PatchEnd , &<br> |
---|
1039 | Status )<br> |
---|
1040 | #endif<br> |
---|
1041 | + #ifdef HDF5<br> |
---|
1042 | + CASE ( IO_HDF5 )<br> |
---|
1043 | + CALL collect_fld_and_call_pkg ( ext_hdf5_write_field, multi_files(io_form), &<br> |
---|
1044 | + Hndl , DateStr , VarName , Field , FieldType , Comm , IOComm , &<br> |
---|
1045 | + DomainDesc , bdy_mask, MemoryOrder , Stagger , DimNames , &<br> |
---|
1046 | + DomainStart , DomainEnd , &<br> |
---|
1047 | + MemoryStart , MemoryEnd , &<br> |
---|
1048 | + PatchStart , PatchEnd , &<br> |
---|
1049 | + Status )<br> |
---|
1050 | + #endif<br> |
---|
1051 | + #ifdef PHDF5<br> |
---|
1052 | + CASE ( IO_PHDF5 )<br> |
---|
1053 | + CALL ext_phdf5_write_field ( &<br> |
---|
1054 | + Hndl , DateStr , VarName , Field , FieldType , Comm , IOComm , &<br> |
---|
1055 | + DomainDesc , MemoryOrder , Stagger , DimNames , &<br> |
---|
1056 | + DomainStart , DomainEnd , &<br> |
---|
1057 | + MemoryStart , MemoryEnd , &<br> |
---|
1058 | + PatchStart , PatchEnd , &<br> |
---|
1059 | + Status )<br> |
---|
1060 | + #endif<br> |
---|
1061 | #ifdef XXX<br> |
---|
1062 | CASE ( IO_XXX )<br> |
---|
1063 | CALL collect_fld_and_call_pkg ( ext_xxx_write_field, multi_files(io_form), &<br> |
---|
1064 | ***************<br> |
---|
1065 | *** 1115,1120 ****<br> |
---|
1066 | --- 1280,1293 ----<br> |
---|
1067 | DomainStart , DomainEnd , &<br> |
---|
1068 | Status )<br> |
---|
1069 | #endif<br> |
---|
1070 | + #ifdef HDF5<br> |
---|
1071 | + CASE ( IO_HDF5 )<br> |
---|
1072 | + write(*,*) "NOT IMPLEMENT at HDF5" <br> |
---|
1073 | + ! CALL ext_hdf5_get_var_info ( Hndl , VarName , NDim , &<br> |
---|
1074 | + ! MemoryOrder , Stagger , &<br> |
---|
1075 | + ! DomainStart , DomainEnd , &<br> |
---|
1076 | + ! Status )<br> |
---|
1077 | + #endif<br> |
---|
1078 | #ifdef XXX<br> |
---|
1079 | CASE ( IO_XXX )<br> |
---|
1080 | CALL ext_xxx_get_var_info ( Hndl , VarName , NDim , &<br> |
---|
1081 | <br> |
---|
1082 | </td> |
---|
1083 | </tr> |
---|
1084 | </tbody> |
---|
1085 | </table> |
---|
1086 | <p><br> |
---|
1087 | The 'share/module_io.F' file must be modified to recognize the HDF5 options for IO.<br> |
---|
1088 | </p> |
---|
1089 | <table cellpadding="2" cellspacing="2" border="1" width="90%" align="center"> |
---|
1090 | <tbody> |
---|
1091 | <tr> |
---|
1092 | <td valign="top">*** ../WRFV1/share/module_io_wrf.F Tue Feb 18 14:26:22 2003<br> |
---|
1093 | --- ./WRFV1-with-hdf/share/module_io_wrf.F Thu May 13 12:18:46 2004<br> |
---|
1094 | ***************<br> |
---|
1095 | *** 1032,1037 ****<br> |
---|
1096 | --- 1032,1079 ----<br> |
---|
1097 | ,Status )<br> |
---|
1098 | ENDIF<br> |
---|
1099 | <br> |
---|
1100 | + IF (io_form .EQ. IO_HDF5) THEN<br> |
---|
1101 | + CALL wrf_put_var_ti_char( &<br> |
---|
1102 | + DataHandle & ! DataHandle<br> |
---|
1103 | + ,"description" & ! Element<br> |
---|
1104 | + ,Var & ! Data Name<br> |
---|
1105 | + ,Desc & ! Data<br> |
---|
1106 | + ,Status )<br> |
---|
1107 | + CALL wrf_put_var_ti_char( &<br> |
---|
1108 | + DataHandle & ! DataHandle<br> |
---|
1109 | + ,"units" & ! Element<br> |
---|
1110 | + ,Var & ! Data Name<br> |
---|
1111 | + ,Units & ! Data<br> |
---|
1112 | + ,Status )<br> |
---|
1113 | + CALL wrf_put_var_ti_char( &<br> |
---|
1114 | + DataHandle & ! DataHandle<br> |
---|
1115 | + ,"stagger" & ! Element<br> |
---|
1116 | + ,Var & ! Data Name<br> |
---|
1117 | + ,Stagger & ! Data<br> |
---|
1118 | 4/ Build WRF<br> |
---|
1119 | <br> |
---|
1120 | + ,Status )<br> |
---|
1121 | + ENDIF<br> |
---|
1122 | + <br> |
---|
1123 | + IF (io_form .EQ. IO_PHDF5) THEN<br> |
---|
1124 | + CALL wrf_put_var_ti_char( &<br> |
---|
1125 | + DataHandle & ! DataHandle<br> |
---|
1126 | + ,"description" & ! Element<br> |
---|
1127 | + ,Var & ! Data Name<br> |
---|
1128 | + ,Desc & ! Data<br> |
---|
1129 | + ,Status )<br> |
---|
1130 | + CALL wrf_put_var_ti_char( &<br> |
---|
1131 | + DataHandle & ! DataHandle<br> |
---|
1132 | + ,"units" & ! Element<br> |
---|
1133 | + ,Var & ! Data Name<br> |
---|
1134 | + ,Units & ! Data<br> |
---|
1135 | + ,Status )<br> |
---|
1136 | + CALL wrf_put_var_ti_char( &<br> |
---|
1137 | + DataHandle & ! DataHandle<br> |
---|
1138 | + ,"stagger" & ! Element<br> |
---|
1139 | + ,Var & ! Data Name<br> |
---|
1140 | + ,Stagger & ! Data<br> |
---|
1141 | + ,Status )<br> |
---|
1142 | + ENDIF<br> |
---|
1143 | + <br> |
---|
1144 | IF ( wrf_at_debug_level(300) ) THEN<br> |
---|
1145 | WRITE(wrf_err_message,*) debug_message,' Status = ',Status<br> |
---|
1146 | CALL wrf_message ( TRIM(wrf_err_message) )<br> |
---|
1147 | <br> |
---|
1148 | </td> |
---|
1149 | </tr> |
---|
1150 | </tbody> |
---|
1151 | </table> |
---|
1152 | <p>The 'Makefile' for the 'external' directory must be updated to build the new IO modules.<br> |
---|
1153 | </p> |
---|
1154 | <table cellpadding="2" cellspacing="2" border="1" width="90%" align="center"> |
---|
1155 | <tbody> |
---|
1156 | <tr> |
---|
1157 | <td valign="top">*** ../WRFV1/external/Makefile Mon Dec 10 18:07:21 2001<br> |
---|
1158 | --- ./WRFV1-with-hdf/external/Makefile Thu May 13 12:18:38 2004<br> |
---|
1159 | ***************<br> |
---|
1160 | *** 3,12 ****<br> |
---|
1161 | ( cd RSL/RSL ; make clean )<br> |
---|
1162 | ( cd io_netcdf ; make clean )<br> |
---|
1163 | ( cd io_int ; make clean )<br> |
---|
1164 | <br> |
---|
1165 | superclean : clean<br> |
---|
1166 | /bin/rm -f RSL/RSL/librsl.a RSL/RSL/rsl.inc<br> |
---|
1167 | /bin/rm -f io_netcdf/libwrfio_nf.a io_netcdf/diffwrf io_netcdf/*.o io_netcdf/*.f \<br> |
---|
1168 | io_int/libwrfio_int.a io_int/diffwrf */*.mod<br> |
---|
1169 | ! <br> |
---|
1170 | ! <br> |
---|
1171 | --- 3,14 ----<br> |
---|
1172 | ( cd RSL/RSL ; make clean )<br> |
---|
1173 | ( cd io_netcdf ; make clean )<br> |
---|
1174 | ( cd io_int ; make clean )<br> |
---|
1175 | + (cd io_hdf5; make clean)<br> |
---|
1176 | + (cd io_phdf5; make clean)<br> |
---|
1177 | <br> |
---|
1178 | superclean : clean<br> |
---|
1179 | /bin/rm -f RSL/RSL/librsl.a RSL/RSL/rsl.inc<br> |
---|
1180 | /bin/rm -f io_netcdf/libwrfio_nf.a io_netcdf/diffwrf io_netcdf/*.o io_netcdf/*.f \<br> |
---|
1181 | io_int/libwrfio_int.a io_int/diffwrf */*.mod<br> |
---|
1182 | ! /bin/rm -f io_phdf5/*.a io_phdf5/*.o *.f *.mod<br> |
---|
1183 | ! /bin/rm -f io_hdf5/*.a io_hdf5/*.o *.f *.mod<br> |
---|
1184 | <br> |
---|
1185 | <br> |
---|
1186 | </td> |
---|
1187 | </tr> |
---|
1188 | </tbody> |
---|
1189 | </table> |
---|
1190 | |
---|
1191 | |
---|
1192 | <p><b><small> |
---|
1193 | <font size="4"><small></small></font></small></b><br> |
---|
1194 | </p> |
---|
1195 | <p><i>Last Modified: 17 May 2004 </i></p> |
---|
1196 | <blockquote> |
---|
1197 | <blockquote> |
---|
1198 | |
---|
1199 | <p> </p> |
---|
1200 | </blockquote> |
---|
1201 | |
---|
1202 | </blockquote> |
---|
1203 | |
---|
1204 | |
---|
1205 | <br> |
---|
1206 | <br> |
---|
1207 | </body></html> |
---|