libsim Versione 7.2.6

◆ volgrid6dv_transform()

subroutine volgrid6dv_transform ( type(transform_def), intent(in) this,
type(griddim_def), intent(in), optional griddim,
type(volgrid6d), dimension(:), intent(inout) volgrid6d_in,
type(volgrid6d), dimension(:), pointer volgrid6d_out,
type(vol7d_level), dimension(:), intent(in), optional lev_out,
type(volgrid6d), intent(in), optional volgrid6d_coord_in,
real, dimension(:,:), intent(in), optional maskgrid,
real, dimension(:), intent(in), optional maskbounds,
logical, intent(in), optional clone,
logical, intent(in), optional decode,
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. According to the input data and to the transformation type, the output array may have of one or more volgrid6d elements on different grids.

Parametri
[in]thisobject specifying the abstract transformation
[in]griddimgriddim specifying the output grid (required by most transformation types)
[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)
volgrid6d_outtransformed object, it is a non associated pointer to an array of volgrid6d objects which will be allocated by the method
[in]lev_outvol7d_level object defining target vertical grid
[in]volgrid6d_coord_inobject providing time constant input vertical coordinate for some kind of vertical interpolations
[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 subtype 'maskfill')
[in]maskboundsarray of boundary values for defining a subset of valid points where the values of maskgrid are within the first and last value of maskbounds (for transformation type 'metamorphosis:maskfill')
[in]cloneif provided and .TRUE. , clone the gaid's from volgrid6d_in to volgrid6d_out
[in]decodeif provided and .FALSE. the data volume is not allocated, but work is performed on grid_id's
[in]categoryappendappend this suffix to log4fortran namespace category

Definizione alla linea 2132 del file volgrid6d_class.F90.

2134!! is created internally and it does not require preliminary
2135!! initialisation.
2136SUBROUTINE volgrid6d_v7d_transform(this, volgrid6d_in, vol7d_out, v7d, &
2137 maskgrid, maskbounds, networkname, noconvert, find_index, categoryappend)
2138TYPE(transform_def),INTENT(in) :: this !< object specifying the abstract transformation
2139TYPE(volgrid6d),INTENT(inout) :: volgrid6d_in !< object to be transformed, it is not modified, despite the INTENT(inout)
2140TYPE(vol7d),INTENT(out) :: vol7d_out !< transformed object, it does not requires initialisation
2141TYPE(vol7d),INTENT(in),OPTIONAL :: v7d !< object containing a list of points over which transformation has to be done (required by some transformation types)
2142REAL,INTENT(in),OPTIONAL :: maskgrid(:,:) !< 2D 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')
2143REAL,INTENT(in),OPTIONAL :: maskbounds(:) !< array of boundary values for defining subareas from the values of \a maskgrid, the number of subareas is SIZE(maskbounds) - 1, if not provided a default based on extreme values of \a makgrid is used
2144CHARACTER(len=*),OPTIONAL,INTENT(in) :: networkname !< set the output network name in vol7d_out (default='generic')
2145LOGICAL,OPTIONAL,INTENT(in) :: noconvert !< do not try to match variable and convert values during transform
2146PROCEDURE(basic_find_index),POINTER,OPTIONAL :: find_index
2147CHARACTER(len=*),INTENT(in),OPTIONAL :: categoryappend !< append this suffix to log4fortran namespace category
2148
2149type(grid_transform) :: grid_trans
2150INTEGER :: ntime, ntimerange, nlevel, nvar, nana, time_definition, nnetwork, stallo
2151INTEGER :: itime, itimerange, inetwork
2152TYPE(datetime),ALLOCATABLE :: validitytime(:,:)
2153INTEGER,ALLOCATABLE :: point_index(:)
2154TYPE(vol7d) :: v7d_locana
2155
2156#ifdef DEBUG
2157call l4f_category_log(volgrid6d_in%category,l4f_debug,"start volgrid6d_v7d_transform")
2158#endif
2159
2160call vg6d_wind_unrot(volgrid6d_in)
2161

Generated with Doxygen.