libsim Versione 7.2.6
|
◆ volgrid6d_import_from_file()
Import the content of a supported file (like grib or gdal-supported format) into an array of volgrid6d objects. This method imports a set of gridded fields from a file object into a suitable number of volgrid6d objects. The data are imported by creating a temporary gridinfo object, importing it into the volgrid6d object cloning the gaid's and then destroying the gridinfo, so it works similarly to volgrid6d_class::import_from_gridinfovv() method. For a detailed explanation of the anavar argument, see the documentation of volgrid6d_class::import_from_gridinfovv() method.
Definizione alla linea 1538 del file volgrid6d_class.F90. 1540 ENDIF
1541ENDIF
1542
1543DO ivar=1,nvar
1544! IF (c_e(var_coord_vol)) THEN
1545! IF (ivar == var_coord_vol) CYCLE ! skip coordinate variable in output
1546! ENDIF
1547 DO itimerange=1,ntimerange
1548 DO itime=1,ntime
1549! skip empty columns where possible, improve
1550 IF (c_e(levshift) .AND. c_e(levused)) THEN
1551 IF (.NOT.any(c_e( &
1552 volgrid6d_in%gaid(levshift+1:levshift+levused,itime,itimerange,ivar) &
1553 ))) cycle
1554 ENDIF
1555 DO ilevel = 1, min(inlevel,onlevel)
1556! if present gaid copy it
1557 IF (c_e(volgrid6d_in%gaid(ilevel,itime,itimerange,ivar)) .AND. .NOT. &
1558 c_e(volgrid6d_out%gaid(ilevel,itime,itimerange,ivar))) THEN
1559
1560 IF (optio_log(clone)) THEN
1561 CALL copy(volgrid6d_in%gaid(ilevel,itime,itimerange,ivar),&
1562 volgrid6d_out%gaid(ilevel,itime,itimerange,ivar))
1563#ifdef DEBUG
1564 CALL l4f_category_log(volgrid6d_in%category,l4f_debug, &
1565 "cloning gaid, level "//t2c(ilevel))
1566#endif
1567 ELSE
1568 volgrid6d_out%gaid(ilevel,itime,itimerange,ivar) = &
1569 volgrid6d_in%gaid(ilevel,itime,itimerange,ivar)
1570 ENDIF
1571 ENDIF
1572 ENDDO
1573! if out level are more, we have to clone anyway
1574 DO ilevel = min(inlevel,onlevel) + 1, onlevel
1575 IF (c_e(volgrid6d_in%gaid(inlevel,itime,itimerange,ivar)) .AND. .NOT. &
1576 c_e(volgrid6d_out%gaid(ilevel,itime,itimerange,ivar))) then
1577
1578 CALL copy(volgrid6d_in%gaid(inlevel,itime,itimerange,ivar),&
1579 volgrid6d_out%gaid(ilevel,itime,itimerange,ivar))
|