|
◆ volgrid6dv_v7d_transform()
subroutine volgrid6d_class::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, |
|
|
character(len=*), intent(in), optional |
categoryappend |
|
) |
| |
|
private |
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] | this | object specifying the abstract transformation |
[in,out] | volgrid6d_in | object 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_out | transformed object, it does not require initialisation |
[in] | v7d | object containing a list of points over which transformation has to be done (required by some transformation types) |
[in] | 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') |
[in] | maskbounds | array 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] | networkname | set the output network name in vol7d_out (default='generic') |
[in] | noconvert | do not try to match variable and convert values during transform |
[in] | categoryappend | append this suffix to log4fortran namespace category |
Definizione alla linea 2438 del file volgrid6d_class.F90.
2438 vol7d_out%level(:) = lev_out(:) 2440 vol7d_out%level(:) = vol7d_in%level(:) 2442 vol7d_out%network(:) = vol7d_in%network(:) 2443 IF ( ASSOCIATED(vol7d_in%dativar%r)) THEN 2444 vol7d_out%dativar%r(:) = vol7d_in%dativar%r(:) 2446 CALL get_val(this, levshift=levshift, levused=levused) 2448 IF ( c_e(lvar_coord_vol)) THEN 2449 CALL get_val(this%trans, output_levtype=output_levtype) 2450 IF (output_levtype%level1 == 103 .OR. output_levtype%level1 == 108) THEN 2451 spos = firsttrue(vol7d_in%level(:) == vol7d_level_new(1)) 2453 CALL l4f_log(l4f_error, & 2454 'output level '// t2c(output_levtype%level1)// & 2455 ' requested, but height/press of surface not provided in volume') 2457 IF (.NOT. c_e(levshift) .AND. .NOT. c_e(levused)) THEN 2458 CALL l4f_log(l4f_error, & 2459 'internal inconsistence, levshift and levused undefined when they should be') 2461 ALLOCATE(coord_3d_in( SIZE(vol7d_in%ana),1, SIZE(vol7d_in%level))) Functions that return a trimmed CHARACTER representation of the input variable.
|