[2759] | 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> |
---|