libsim  Versione8.0.0

◆ export_to_gridinfov()

subroutine volgrid6d_class::export_to_gridinfov ( type(volgrid6d), intent(inout)  this,
type(arrayof_gridinfo), intent(inout)  gridinfov,
type(grid_id), intent(in), optional  gaid_template,
logical, intent(in), optional  clone 
)
private

Export a volgrid6d object to an arrayof_gridinfo object.

The multidimensional volgrid6d structure is serialized into a one-dimensional array of gridinfo_def objects, which is allocated to the proper size if not already allocated, or it is extended keeping the old data if any.

Parametri
[in,out]thisvolume to be exported
[in,out]gridinfovoutput array of gridinfo_def objects
[in]gaid_templategrid_id template to be used for output data replacing the one contained in this
[in]cloneif provided and .TRUE., clone the grid_id included in this rather than making a shallow copy

Definizione alla linea 1472 del file volgrid6d_class.F90.

1472 type(volgrid6d), INTENT(in) :: volgrid6d_in ! oggetto da trasformare
1473 type(volgrid6d), INTENT(inout) :: volgrid6d_out ! oggetto trasformato; deve essere completo (init, alloc, alloc_vol)
1474 TYPE(vol7d_level),INTENT(in),OPTIONAL :: lev_out(:) ! vol7d_level object defining target vertical grid, for vertical interpolations
1475 INTEGER,INTENT(in),OPTIONAL :: var_coord_vol ! index of variable defining vertical coordinate values in input volume
1476 LOGICAL,INTENT(in),OPTIONAL :: clone ! se fornito e \c .TRUE., clona i gaid da volgrid6d_in a volgrid6d_out
1477 
1478 INTEGER :: ntime, ntimerange, inlevel, onlevel, nvar, &
1479  itime, itimerange, ilevel, ivar, levshift, levused, lvar_coord_vol, spos
1480 REAL,POINTER :: voldatiin(:,:,:), voldatiout(:,:,:), coord_3d_in(:,:,:)
1481 TYPE(vol7d_level) :: output_levtype
1482 LOGICAL,ALLOCATABLE :: zlist(:)
1483 
1484 
1485 #ifdef DEBUG
1486 call l4f_category_log(volgrid6d_in%category,l4f_debug,"start volgrid6d_transform_compute")
1487 #endif
1488 
1489 ntime=0
1490 ntimerange=0
1491 inlevel=0
1492 onlevel=0
1493 nvar=0
1494 lvar_coord_vol = optio_i(var_coord_vol)
1495 
1496 if (associated(volgrid6d_in%time))then
1497  ntime=size(volgrid6d_in%time)
1498  volgrid6d_out%time=volgrid6d_in%time
1499 end if
1500 
1501 if (associated(volgrid6d_in%timerange))then
1502  ntimerange=size(volgrid6d_in%timerange)
1503  volgrid6d_out%timerange=volgrid6d_in%timerange
1504 end if
1505 
1506 IF (ASSOCIATED(volgrid6d_in%level))THEN
1507  inlevel=SIZE(volgrid6d_in%level)
1508 ENDIF
1509 IF (PRESENT(lev_out)) THEN
1510  onlevel=SIZE(lev_out)
1511  volgrid6d_out%level=lev_out
1512 ELSE IF (ASSOCIATED(volgrid6d_in%level))THEN
1513  onlevel=SIZE(volgrid6d_in%level)
1514  volgrid6d_out%level=volgrid6d_in%level

Generated with Doxygen.