| 318 | |
| 319 | |
| 320 | void H5DRMLoadPattern::do_intitialization() |
| 321 | { |
| 322 | Domain *theDomain = this->getDomain(); |
| 323 | |
| 324 | if (theDomain == 0) |
| 325 | { |
| 326 | return; |
| 327 | } |
| 328 | |
| 329 | if (MPI_local_rank == 0) |
| 330 | { |
| 331 | H5DRMout << "initializing - filename : " << dataset_fname << "\n"; |
| 332 | } |
| 333 | |
| 334 | //=========================================================================== |
| 335 | // Open the specified file for read only |
| 336 | //=========================================================================== |
| 337 | hid_t file_access_plist = H5Pcreate(H5P_FILE_ACCESS); |
| 338 | |
| 339 | |
| 340 | ih5_fname = H5Fopen(dataset_fname.c_str(), H5F_ACC_RDONLY, file_access_plist); |
| 341 | |
| 342 | if (ih5_fname < 0) |
| 343 | { |
| 344 | H5DRMerror << "Error opening HDF5 file: " << dataset_fname << endl; |
| 345 | return; |
| 346 | } |
| 347 | |
| 348 | |
| 349 | //=========================================================================== |
| 350 | // MAP DRM data to local domain |
| 351 | //=========================================================================== |
| 352 | |
| 353 | H5DRMout << "Initialize" << endln; |
| 354 | |
| 355 | ID internal; |
| 356 | Matrix xyz; |
| 357 | Vector drmbox_x0; |
| 358 | read_double_dataset_into_vector(ih5_fname, "DRM_Metadata/drmbox_x0", drmbox_x0); |
| 359 | read_double_dataset_into_matrix(ih5_fname, "DRM_Data/xyz", xyz); |
| 360 | read_int_dataset_into_id(ih5_fname, "DRM_Data/internal", internal); |
| 361 | read_int_dataset_into_id(ih5_fname, "DRM_Data/data_location", station_id2data_pos); |
| 362 | read_scalar_double_dataset_into_double(ih5_fname, "DRM_Metadata/drmbox_xmax", drmbox_xmax); |
| 363 | read_scalar_double_dataset_into_double(ih5_fname, "DRM_Metadata/drmbox_xmin", drmbox_xmin); |
| 364 | read_scalar_double_dataset_into_double(ih5_fname, "DRM_Metadata/drmbox_ymax", drmbox_ymax); |
| 365 | read_scalar_double_dataset_into_double(ih5_fname, "DRM_Metadata/drmbox_ymin", drmbox_ymin); |
| 366 | read_scalar_double_dataset_into_double(ih5_fname, "DRM_Metadata/drmbox_zmax", drmbox_zmax); |
| 367 | read_scalar_double_dataset_into_double(ih5_fname, "DRM_Metadata/drmbox_zmin", drmbox_zmin); |
| 368 | read_scalar_double_dataset_into_double(ih5_fname, "DRM_Metadata/dt", dt); |
| 369 | read_scalar_double_dataset_into_double(ih5_fname, "DRM_Metadata/tstart", tstart); |
| 370 | read_scalar_double_dataset_into_double(ih5_fname, "DRM_Metadata/tend", tend); |
| 371 | |
| 372 | N_timesteps = int((tend - tstart) / dt); |
| 373 | |
| 374 | last_integration_time = theDomain->getCurrentTime(); |
| 375 | |
| 376 | int NDRM_points = xyz.noRows(); |
| 377 |
nothing calls this directly
no test coverage detected