|
◆ arrayof_gridinfo_delete()
subroutine arrayof_gridinfo_delete |
( |
type(arrayof_gridinfo) |
this, |
|
|
logical, intent(in), optional |
nodestroy, |
|
|
logical, intent(in), optional |
nodealloc |
|
) |
| |
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 580 del file gridinfo_class.F90.
586 SUBROUTINE gridinfo_export_gribapi(this, gaid)
587 TYPE(gridinfo_def), INTENT(inout) :: this
588 INTEGER, INTENT(in) :: gaid
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)
|