libsim  Versione 7.2.6

◆ volgrid6dv_v7d_transform()

subroutine volgrid6dv_v7d_transform ( type(transform_def), intent(in)  this,
type(volgrid6d), dimension(:), intent(inout)  volgrid6d_in,
type(vol7d), intent(out)  vol7d_out,
type(vol7d), intent(in), optional  v7d,
real, dimension(:,:), intent(in), optional  maskgrid,
real, dimension(:), intent(in), optional  maskbounds,
character(len=*), intent(in), optional  networkname,
logical, intent(in), optional  noconvert,
procedure(basic_find_index), optional, pointer  find_index,
character(len=*), intent(in), optional  categoryappend 
)

Performs the specified abstract transformation on the arrays of data provided.

The abstract transformation is specified by this parameter; the corresponding specifical transformation (grid_transform object) is created and destroyed internally. The output transformed object is created internally and it does not require preliminary initialisation. The transformation performed on each element of the input volgrid6d array object is merged into a single vol7d output object.

Parametri
[in]thisobject specifying the abstract transformation
[in,out]volgrid6d_inobject to be transformed, it is an array of volgrid6d objects, each of which will be transformed, it is not modified, despite the INTENT(inout)
[out]vol7d_outtransformed object, it does not require initialisation
[in]v7dobject containing a list of points over which transformation has to be done (required by some transformation types)
[in]maskgrid2D field to be used for defining subareas according to its values, it must have the same shape as the field to be interpolated (for transformation type 'maskinter')
[in]maskboundsarray of boundary values for defining subareas from the values of maskgrid, the number of subareas is SIZE(maskbounds) - 1, if not provided a default based on extreme values of makgrid is used
[in]networknameset the output network name in vol7d_out (default='generic')
[in]noconvertdo not try to match variable and convert values during transform
[in]categoryappendappend this suffix to log4fortran namespace category

Definizione alla linea 2466 del file volgrid6d_class.F90.

2468 CALL delete(grid_trans)
2469 
2470 END SUBROUTINE v7d_volgrid6d_transform
2471 
2472 
2473 ! Internal method for performing sparse point to sparse point computations
2474 SUBROUTINE v7d_v7d_transform_compute(this, vol7d_in, vol7d_out, lev_out, &
2475  var_coord_vol)
2476 TYPE(grid_transform),INTENT(in) :: this ! oggetto di trasformazione per grigliato
2477 type(vol7d), INTENT(in) :: vol7d_in ! oggetto da trasformare
2478 type(vol7d), INTENT(inout) :: vol7d_out ! oggetto trasformato
2479 TYPE(vol7d_level),INTENT(in),OPTIONAL :: lev_out(:) ! vol7d_level object defining target vertical grid, for vertical interpolations
2480 INTEGER,INTENT(in),OPTIONAL :: var_coord_vol ! index of variable defining vertical coordinate values in input volume
2481 
2482 INTEGER :: itime, itimerange, ilevel, ivar, inetwork, &
2483  levshift, levused, lvar_coord_vol, spos
2484 REAL,ALLOCATABLE :: coord_3d_in(:,:,:)
2485 TYPE(vol7d_level) :: output_levtype
2486 
2487 lvar_coord_vol = optio_i(var_coord_vol)
2488 vol7d_out%time(:) = vol7d_in%time(:)
2489 vol7d_out%timerange(:) = vol7d_in%timerange(:)
2490 IF (PRESENT(lev_out)) THEN
2491  vol7d_out%level(:) = lev_out(:)
2492 ELSE
2493  vol7d_out%level(:) = vol7d_in%level(:)

Generated with Doxygen.