|
◆ arrayof_gridinfo_delete()
subroutine, private gridinfo_class::arrayof_gridinfo_delete |
( |
type(arrayof_gridinfo) |
this, |
|
|
logical, intent(in), optional |
nodestroy, |
|
|
logical, intent(in), optional |
nodealloc |
|
) |
| |
|
private |
Destructor for finalizing an array object.
If defined, calls the destructor for every element of the array object; finally it deallocates all the space occupied.
- Parametri
-
| this | array object to be destroyed |
| this | if provided and .TRUE. , the destructor possibily defined for the TYPE(gridinfo_def) is not called for every deleted object, may be useful if the objects to be deleted have been copied to another instance of arrayof_gridinfo and continue their life there |
[in] | nodealloc | if provided and .TRUE. , the space reserved for the array is not deallocated, thus the values are retained, while the array pointer is nullified, this means that the caller must have previously assigned the pointer contents thisarray to another pointer to prevent memory leaks |
Definizione alla linea 589 del file gridinfo_class.F90.
590 TYPE(conv_func) :: c_func 591 REAL, ALLOCATABLE :: tmparr(:,:) 594 CALL volgrid6d_var_normalize(this%var, c_func, grid_id_new(grib_api_id=gaid)) 595 IF (this%var == volgrid6d_var_miss) THEN 596 CALL l4f_log(l4f_error, & 597 'A suitable variable has not been found in table when converting template') 600 IF (c_func /= conv_func_miss) THEN 601 tmparr = decode_gridinfo(this) 602 CALL compute(c_func, tmparr) 603 CALL encode_gridinfo(this, tmparr) 606 CALL unnormalize_gridinfo(this) 608 CALL time_export_gribapi(this%time, gaid, this%timerange) 609 CALL timerange_export_gribapi(this%timerange, gaid, this%time) 610 CALL level_export_gribapi(this%level, gaid) 611 CALL var_export_gribapi(this%var, gaid) 613 END SUBROUTINE gridinfo_export_gribapi 616 SUBROUTINE time_import_gribapi(this,gaid) 617 TYPE(datetime), INTENT(out) :: this 618 INTEGER, INTENT(in) :: gaid 620 INTEGER :: EditionNumber, ttimeincr, tprocdata, centre, p2g, p2, unit, status 621 CHARACTER(len=9) :: date 622 CHARACTER(len=10) :: time 624 CALL grib_get(gaid, 'GRIBEditionNumber',editionnumber) 626 IF (editionnumber == 1 .OR. editionnumber == 2) THEN 628 CALL grib_get(gaid, 'dataDate',date ) 629 CALL grib_get(gaid, 'dataTime',time(:5) ) 631 CALL init(this,simpledate=date(:8)//time(:4)) 633 IF (editionnumber == 2) THEN 635 CALL grib_get(gaid, 'typeOfProcessedData',tprocdata,status) 636 CALL grib_get(gaid, 'typeOfTimeIncrement',ttimeincr,status) 637 IF (ttimeincr == 255) ttimeincr = 2 640 IF (status == grib_success .AND. ttimeincr == 1) THEN
|