|
|
◆ v7d_volgrid6d_transform()
| subroutine volgrid6d_class::v7d_volgrid6d_transform |
( |
type(transform_def), intent(in) |
this, |
|
|
type(griddim_def), intent(in), optional |
griddim, |
|
|
type(vol7d), intent(inout) |
vol7d_in, |
|
|
type(volgrid6d), intent(out) |
volgrid6d_out, |
|
|
character(len=*), intent(in), optional |
networkname, |
|
|
type(grid_id), intent(in), optional |
gaid_template, |
|
|
character(len=*), intent(in), optional |
categoryappend |
|
) |
| |
|
private |
Performs the specified abstract transformation on the 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.
- Parametri
-
| [in] | this | object specifying the abstract transformation |
| [in] | griddim | griddim specifying the output grid (required by most transformation types) |
| [in,out] | vol7d_in | object to be transformed, it is not modified, despite the INTENT(inout) |
| [out] | volgrid6d_out | transformed object, it does not require initialisation |
| [in] | networkname | select the network to be processed from the vol7d input object, default the first network |
| [in] | gaid_template | the template (typically grib_api) to be associated with output data, it also helps in improving variable conversion |
| [in] | categoryappend | append this suffix to log4fortran namespace category |
Definizione alla linea 2625 del file volgrid6d_class.F90.
2626 IF ( PRESENT(vol7d_coord_in)) THEN 2627 IF ( ASSOCIATED(vol7d_coord_in%voldatir) .AND. & 2628 ASSOCIATED(vol7d_coord_in%dativar%r)) THEN 2631 IF ( SIZE(vol7d_coord_in%voldatir,2) /= 1 .OR. & 2632 SIZE(vol7d_coord_in%voldatir,4) /= 1 .OR. & 2633 SIZE(vol7d_coord_in%voldatir,6) /= 1) THEN 2634 CALL l4f_log(l4f_error, & 2635 'volume providing constant input vertical coordinate must have & 2636 &only 1 time, 1 timerange and 1 network') 2642 CALL get_val(this, output_levtype=output_levtype) 2643 vcoord_var = vol7d_var_new(vol7d_level_to_var(output_levtype)) 2644 IF (.NOT.c_e(vcoord_var)) THEN 2645 CALL l4f_log(l4f_error, & 2646 'requested output level type '//t2c(output_levtype%level1)// & 2647 ' does not correspond to any known physical variable for & 2648 &providing vertical coordinate') 2653 var_coord_in = index(vol7d_coord_in%dativar%r, vcoord_var) 2655 IF (var_coord_in <= 0) THEN 2656 CALL l4f_log(l4f_error, & 2657 'volume providing constant input vertical coordinate contains no & 2658 &real variables matching output level type '//t2c(output_levtype%level1)) 2662 CALL l4f_log(l4f_info, & 2663 'Coordinate for vertint found in coord volume at position '// & 2667 CALL get_val(this, input_levtype=input_levtype) 2669 (vol7d_coord_in%level(:)%level1 == input_levtype%level1) .AND. & 2670 (vol7d_coord_in%level(:)%level2 == input_levtype%level2) 2671 ulstart = firsttrue(mask_in) 2672 ulend = lasttrue(mask_in) 2673 IF (ulstart == 0 .OR. ulend == 0) THEN 2674 CALL l4f_log(l4f_error, & 2675 'coordinate file does not contain levels of type '// & 2676 t2c(input_levtype%level1)// '/'//t2c(input_levtype%level2)// & 2677 ' specified for input data')
|